Module pyaurorax.search.availability
Retrieve availability information about data in the AuroraX search engine.
Expand source code
# Copyright 2024 University of Calgary
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""
Retrieve availability information about data in the AuroraX search engine.
"""
import datetime
from typing import Optional, List
from ._availability import ephemeris as func_ephemeris
from ._availability import data_products as func_data_products
from .classes.availability_result import AvailabilityResult
from ..sources.classes.data_source import FORMAT_DEFAULT
__all__ = ["AvailabilityManager", "AvailabilityResult"]
class AvailabilityManager:
"""
The AvailabilityManager object is initialized within every PyAuroraX object. It acts as a way to access
the submodules and carry over configuration information in the super class.
"""
def __init__(self, aurorax_obj):
self.__aurorax_obj = aurorax_obj
def ephemeris(self,
start: datetime.date,
end: datetime.date,
program: Optional[str] = None,
platform: Optional[str] = None,
instrument_type: Optional[str] = None,
source_type: Optional[str] = None,
owner: Optional[str] = None,
format: str = FORMAT_DEFAULT,
slow: bool = False) -> List[AvailabilityResult]:
"""
Retrieve information about the number of existing ephemeris records
Args:
start (datetime.date):
Start date to retrieve availability info for (inclusive)
end (datetime.date):
End date to retrieve availability info for (inclusive)
program (str):
Program name to filter sources by, defaults to `None`
platform (str):
Platform name to filter sources by, defaults to `None`
instrument_type (str):
Instrument type to filter sources by, defaults to `None`
source_type (str):
The data source type to filter for, defaults to `None`. Options are in
the pyaurorax.search.sources module, or at the top level using the
pyaurorax.search.SOURCE_TYPE_* variables.
owner (str):
Owner email address to filter sources by, defaults to `None`
format (str):
The format of the data sources returned, defaults to `FORMAT_FULL_RECORD`.
Other options are in the pyaurorax.search.sources module, or at the top level using
the pyaurorax.search.FORMAT_* variables.
slow (bool):
Query the data using a slower, but more accurate method, defaults to `False`
Returns:
Ephemeris availability information matching the requested parameters
Raises:
pyaurorax.exceptions.AuroraXAPIError: An API error was encountered
"""
return func_ephemeris(self.__aurorax_obj, start, end, program, platform, instrument_type, source_type, owner, format, slow)
def data_products(self,
start: datetime.date,
end: datetime.date,
program: Optional[str] = None,
platform: Optional[str] = None,
instrument_type: Optional[str] = None,
source_type: Optional[str] = None,
owner: Optional[str] = None,
format: Optional[str] = FORMAT_DEFAULT,
slow: Optional[bool] = False) -> List[AvailabilityResult]:
"""
Retrieve information about the number of existing data product records
Args:
start (datetime.date):
Start date to retrieve availability info for (inclusive)
end (datetime.date):
End date to retrieve availability info for (inclusive)
program (str):
Program name to filter sources by, defaults to `None`
platform (str):
Platform name to filter sources by, defaults to `None`
instrument_type (str):
Instrument type to filter sources by, defaults to `None`
source_type (str):
The data source type to filter for, defaults to `None`. Options are in
the pyaurorax.search.sources module, or at the top level using the
pyaurorax.search.SOURCE_TYPE_* variables.
owner (str):
Owner email address to filter sources by, defaults to `None`
format (str):
The format of the data sources returned, defaults to `FORMAT_FULL_RECORD`.
Other options are in the pyaurorax.search.sources module, or at the top level using
the pyaurorax.search.FORMAT_* variables.
slow (bool):
Query the data using a slower, but more accurate method, defaults to `False`
Returns:
Data product availability information matching the requested parameters
Raises:
pyaurorax.exceptions.AuroraXAPIError: An API error was encountered
"""
return func_data_products(self.__aurorax_obj, start, end, program, platform, instrument_type, source_type, owner, format, slow)
Sub-modules
pyaurorax.search.availability.classes
-
Class definitions used by the
availability
submodule
Classes
class AvailabilityManager (aurorax_obj)
-
The AvailabilityManager object is initialized within every PyAuroraX object. It acts as a way to access the submodules and carry over configuration information in the super class.
Expand source code
class AvailabilityManager: """ The AvailabilityManager object is initialized within every PyAuroraX object. It acts as a way to access the submodules and carry over configuration information in the super class. """ def __init__(self, aurorax_obj): self.__aurorax_obj = aurorax_obj def ephemeris(self, start: datetime.date, end: datetime.date, program: Optional[str] = None, platform: Optional[str] = None, instrument_type: Optional[str] = None, source_type: Optional[str] = None, owner: Optional[str] = None, format: str = FORMAT_DEFAULT, slow: bool = False) -> List[AvailabilityResult]: """ Retrieve information about the number of existing ephemeris records Args: start (datetime.date): Start date to retrieve availability info for (inclusive) end (datetime.date): End date to retrieve availability info for (inclusive) program (str): Program name to filter sources by, defaults to `None` platform (str): Platform name to filter sources by, defaults to `None` instrument_type (str): Instrument type to filter sources by, defaults to `None` source_type (str): The data source type to filter for, defaults to `None`. Options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.SOURCE_TYPE_* variables. owner (str): Owner email address to filter sources by, defaults to `None` format (str): The format of the data sources returned, defaults to `FORMAT_FULL_RECORD`. Other options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.FORMAT_* variables. slow (bool): Query the data using a slower, but more accurate method, defaults to `False` Returns: Ephemeris availability information matching the requested parameters Raises: pyaurorax.exceptions.AuroraXAPIError: An API error was encountered """ return func_ephemeris(self.__aurorax_obj, start, end, program, platform, instrument_type, source_type, owner, format, slow) def data_products(self, start: datetime.date, end: datetime.date, program: Optional[str] = None, platform: Optional[str] = None, instrument_type: Optional[str] = None, source_type: Optional[str] = None, owner: Optional[str] = None, format: Optional[str] = FORMAT_DEFAULT, slow: Optional[bool] = False) -> List[AvailabilityResult]: """ Retrieve information about the number of existing data product records Args: start (datetime.date): Start date to retrieve availability info for (inclusive) end (datetime.date): End date to retrieve availability info for (inclusive) program (str): Program name to filter sources by, defaults to `None` platform (str): Platform name to filter sources by, defaults to `None` instrument_type (str): Instrument type to filter sources by, defaults to `None` source_type (str): The data source type to filter for, defaults to `None`. Options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.SOURCE_TYPE_* variables. owner (str): Owner email address to filter sources by, defaults to `None` format (str): The format of the data sources returned, defaults to `FORMAT_FULL_RECORD`. Other options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.FORMAT_* variables. slow (bool): Query the data using a slower, but more accurate method, defaults to `False` Returns: Data product availability information matching the requested parameters Raises: pyaurorax.exceptions.AuroraXAPIError: An API error was encountered """ return func_data_products(self.__aurorax_obj, start, end, program, platform, instrument_type, source_type, owner, format, slow)
Methods
def data_products(self, start: datetime.date, end: datetime.date, program: Optional[str] = None, platform: Optional[str] = None, instrument_type: Optional[str] = None, source_type: Optional[str] = None, owner: Optional[str] = None, format: Optional[str] = 'basic_info', slow: Optional[bool] = False) ‑> List[AvailabilityResult]
-
Retrieve information about the number of existing data product records
Args
start
:datetime.date
- Start date to retrieve availability info for (inclusive)
end
:datetime.date
- End date to retrieve availability info for (inclusive)
program
:str
- Program name to filter sources by, defaults to
None
platform
:str
- Platform name to filter sources by, defaults to
None
instrument_type
:str
- Instrument type to filter sources by, defaults to
None
source_type
:str
- The data source type to filter for, defaults to
None
. Options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.SOURCE_TYPE_* variables. owner
:str
- Owner email address to filter sources by, defaults to
None
format
:str
- The format of the data sources returned, defaults to
FORMAT_FULL_RECORD
. Other options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.FORMAT_* variables. slow
:bool
- Query the data using a slower, but more accurate method, defaults to
False
Returns
Data product availability information matching the requested parameters
Raises
AuroraXAPIError
- An API error was encountered
Expand source code
def data_products(self, start: datetime.date, end: datetime.date, program: Optional[str] = None, platform: Optional[str] = None, instrument_type: Optional[str] = None, source_type: Optional[str] = None, owner: Optional[str] = None, format: Optional[str] = FORMAT_DEFAULT, slow: Optional[bool] = False) -> List[AvailabilityResult]: """ Retrieve information about the number of existing data product records Args: start (datetime.date): Start date to retrieve availability info for (inclusive) end (datetime.date): End date to retrieve availability info for (inclusive) program (str): Program name to filter sources by, defaults to `None` platform (str): Platform name to filter sources by, defaults to `None` instrument_type (str): Instrument type to filter sources by, defaults to `None` source_type (str): The data source type to filter for, defaults to `None`. Options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.SOURCE_TYPE_* variables. owner (str): Owner email address to filter sources by, defaults to `None` format (str): The format of the data sources returned, defaults to `FORMAT_FULL_RECORD`. Other options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.FORMAT_* variables. slow (bool): Query the data using a slower, but more accurate method, defaults to `False` Returns: Data product availability information matching the requested parameters Raises: pyaurorax.exceptions.AuroraXAPIError: An API error was encountered """ return func_data_products(self.__aurorax_obj, start, end, program, platform, instrument_type, source_type, owner, format, slow)
def ephemeris(self, start: datetime.date, end: datetime.date, program: Optional[str] = None, platform: Optional[str] = None, instrument_type: Optional[str] = None, source_type: Optional[str] = None, owner: Optional[str] = None, format: str = 'basic_info', slow: bool = False) ‑> List[AvailabilityResult]
-
Retrieve information about the number of existing ephemeris records
Args
start
:datetime.date
- Start date to retrieve availability info for (inclusive)
end
:datetime.date
- End date to retrieve availability info for (inclusive)
program
:str
- Program name to filter sources by, defaults to
None
platform
:str
- Platform name to filter sources by, defaults to
None
instrument_type
:str
- Instrument type to filter sources by, defaults to
None
source_type
:str
- The data source type to filter for, defaults to
None
. Options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.SOURCE_TYPE_* variables. owner
:str
- Owner email address to filter sources by, defaults to
None
format
:str
- The format of the data sources returned, defaults to
FORMAT_FULL_RECORD
. Other options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.FORMAT_* variables. slow
:bool
- Query the data using a slower, but more accurate method, defaults to
False
Returns
Ephemeris availability information matching the requested parameters
Raises
AuroraXAPIError
- An API error was encountered
Expand source code
def ephemeris(self, start: datetime.date, end: datetime.date, program: Optional[str] = None, platform: Optional[str] = None, instrument_type: Optional[str] = None, source_type: Optional[str] = None, owner: Optional[str] = None, format: str = FORMAT_DEFAULT, slow: bool = False) -> List[AvailabilityResult]: """ Retrieve information about the number of existing ephemeris records Args: start (datetime.date): Start date to retrieve availability info for (inclusive) end (datetime.date): End date to retrieve availability info for (inclusive) program (str): Program name to filter sources by, defaults to `None` platform (str): Platform name to filter sources by, defaults to `None` instrument_type (str): Instrument type to filter sources by, defaults to `None` source_type (str): The data source type to filter for, defaults to `None`. Options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.SOURCE_TYPE_* variables. owner (str): Owner email address to filter sources by, defaults to `None` format (str): The format of the data sources returned, defaults to `FORMAT_FULL_RECORD`. Other options are in the pyaurorax.search.sources module, or at the top level using the pyaurorax.search.FORMAT_* variables. slow (bool): Query the data using a slower, but more accurate method, defaults to `False` Returns: Ephemeris availability information matching the requested parameters Raises: pyaurorax.exceptions.AuroraXAPIError: An API error was encountered """ return func_ephemeris(self.__aurorax_obj, start, end, program, platform, instrument_type, source_type, owner, format, slow)
class AvailabilityResult (data_source: DataSource, available_data_products: Optional[Dict] = None, available_ephemeris: Optional[Dict] = None)
-
Class definition for data availability information
Attributes
data_source
:DataSource
- the data source that the records are associated with
available_ephemeris
:Dict
- the ephemeris availability information
available_data_products
:Dict
- the data product availability information
Expand source code
@dataclass class AvailabilityResult: """ Class definition for data availability information Attributes: data_source (pyaurorax.search.DataSource): the data source that the records are associated with available_ephemeris (Dict): the ephemeris availability information available_data_products (Dict): the data product availability information """ data_source: DataSource available_data_products: Optional[Dict] = None available_ephemeris: Optional[Dict] = None
Class variables
var available_data_products : Optional[Dict]
var available_ephemeris : Optional[Dict]
var data_source : DataSource