Module pyaurorax.search.conjunctions.classes.criteria_block

Class definition for a criteria block used for conjunction searches

Classes

class CustomLocationsCriteriaBlock (locations: List[Tuple[float, float]] = [])
Expand source code
class CustomLocationsCriteriaBlock:
    """
    Representation of a custom location criteria block used for conjunction searches. 

    Attributes:
        locations (List[Tuple[float, float]]): 
            List of locations to use in this criteria block. Location are 2-element tuples
            of (latitude, longitude). Latitude values must be between -90 and 90, and longitude
            values must be between -180 and 180. Optional, default is `[]`.
    """

    def __init__(self, locations: List[Tuple[float, float]] = []):
        self.locations = locations

    def __str__(self) -> str:
        return self.__repr__()

    def __repr__(self) -> str:
        return "CustomLocationsCriteriaBlock(locations=%s)" % (self.locations)

    def pretty_print(self):
        """
        A special print output for this class.
        """
        print("CustomLocationsCriteriaBlock:")
        print("  %-11s: %s" % ("locations", self.locations))

    def to_search_query_dict(self):
        query_dict = {}
        if (len(self.locations) > 0):
            query_dict["locations"] = []
            for location in self.locations:
                query_dict["locations"].append({
                    "lat": location[0],
                    "lon": location[1],
                })
        return query_dict

Representation of a custom location criteria block used for conjunction searches.

Attributes

locations : List[Tuple[float, float]]
List of locations to use in this criteria block. Location are 2-element tuples of (latitude, longitude). Latitude values must be between -90 and 90, and longitude values must be between -180 and 180. Optional, default is [].

Methods

def pretty_print(self)
Expand source code
def pretty_print(self):
    """
    A special print output for this class.
    """
    print("CustomLocationsCriteriaBlock:")
    print("  %-11s: %s" % ("locations", self.locations))

A special print output for this class.

def to_search_query_dict(self)
Expand source code
def to_search_query_dict(self):
    query_dict = {}
    if (len(self.locations) > 0):
        query_dict["locations"] = []
        for location in self.locations:
            query_dict["locations"].append({
                "lat": location[0],
                "lon": location[1],
            })
    return query_dict
class EventsCriteriaBlock (platforms: List[str] = [],
instrument_types: List[str] = [],
metadata_filters: MetadataFilter | None = None)
Expand source code
class EventsCriteriaBlock:
    """
    Representation of a event criteria block used for conjunction searches. 

    Attributes:
        platforms (List[str]): 
            List of platform strings to use in this criteria block. Optional, default is `[]`.

        instrument_types (List[str]): 
            List of instrument type strings to use in this criteria block. Optional, default is `[]`.

        metadata_filters (MetadataFilter): 
            The metadata filters to use in this criteria block. Optional, default is None.
    """

    def __init__(self, platforms: List[str] = [], instrument_types: List[str] = [], metadata_filters: Optional[MetadataFilter] = None):
        self.platforms = platforms
        self.instrument_types = instrument_types
        self.metadata_filters = metadata_filters

    def __str__(self) -> str:
        return self.__repr__()

    def __repr__(self) -> str:
        return "EventsCriteriaBlock(platforms=%s, instrument_types=%s, metadata_filters=%s)" % (
            self.platforms,
            self.instrument_types,
            self.metadata_filters,
        )

    def pretty_print(self):
        """
        A special print output for this class.
        """
        # set special strings
        max_len = 80
        metadata_filters_str = str(self.metadata_filters)
        if (len(metadata_filters_str) > max_len):
            metadata_filters_str = "%s...)" % (metadata_filters_str[0:max_len])

        # print
        print("EventsCriteriaBlock:")
        print("  %-18s: %s" % ("platforms", self.platforms))
        print("  %-18s: %s" % ("instrument_types", self.instrument_types))
        print("  %-18s: %s" % ("metadata_filters", metadata_filters_str))

Representation of a event criteria block used for conjunction searches.

Attributes

platforms : List[str]
List of platform strings to use in this criteria block. Optional, default is [].
instrument_types : List[str]
List of instrument type strings to use in this criteria block. Optional, default is [].
metadata_filters : MetadataFilter
The metadata filters to use in this criteria block. Optional, default is None.

Methods

def pretty_print(self)
Expand source code
def pretty_print(self):
    """
    A special print output for this class.
    """
    # set special strings
    max_len = 80
    metadata_filters_str = str(self.metadata_filters)
    if (len(metadata_filters_str) > max_len):
        metadata_filters_str = "%s...)" % (metadata_filters_str[0:max_len])

    # print
    print("EventsCriteriaBlock:")
    print("  %-18s: %s" % ("platforms", self.platforms))
    print("  %-18s: %s" % ("instrument_types", self.instrument_types))
    print("  %-18s: %s" % ("metadata_filters", metadata_filters_str))

A special print output for this class.

class GroundCriteriaBlock (programs: List[str] = [],
platforms: List[str] = [],
instrument_types: List[str] = [],
metadata_filters: MetadataFilter | None = None)
Expand source code
class GroundCriteriaBlock:
    """
    Representation of a ground criteria block used for conjunction searches. 

    Attributes:
        programs (List[str]): 
            List of program strings to use in this criteria block. Optional, default is `[]`.
        
        platforms (List[str]): 
            List of platform strings to use in this criteria block. Optional, default is `[]`.

        instrument_types (List[str]): 
            List of instrument type strings to use in this criteria block. Optional, default is `[]`.

        metadata_filters (MetadataFilter): 
            The metadata filters to use in this criteria block. Optional, default is None.
    """

    def __init__(self,
                 programs: List[str] = [],
                 platforms: List[str] = [],
                 instrument_types: List[str] = [],
                 metadata_filters: Optional[MetadataFilter] = None):
        self.programs = programs
        self.platforms = platforms
        self.instrument_types = instrument_types
        self.metadata_filters = metadata_filters

    def __str__(self) -> str:
        return self.__repr__()

    def __repr__(self) -> str:
        return "GroundCriteriaBlock(programs=%s, platforms=%s, instrument_types=%s, metadata_filters=%s)" % (
            self.programs,
            self.platforms,
            self.instrument_types,
            self.metadata_filters,
        )

    def pretty_print(self):
        """
        A special print output for this class.
        """
        # set special strings
        max_len = 80
        metadata_filters_str = str(self.metadata_filters)
        if (len(metadata_filters_str) > max_len):
            metadata_filters_str = "%s...)" % (metadata_filters_str[0:max_len])

        # print
        print("GroundCriteriaBlock:")
        print("  %-18s: %s" % ("programs", self.programs))
        print("  %-18s: %s" % ("platforms", self.platforms))
        print("  %-18s: %s" % ("instrument_types", self.instrument_types))
        print("  %-18s: %s" % ("metadata_filters", metadata_filters_str))

Representation of a ground criteria block used for conjunction searches.

Attributes

programs : List[str]
List of program strings to use in this criteria block. Optional, default is [].
platforms : List[str]
List of platform strings to use in this criteria block. Optional, default is [].
instrument_types : List[str]
List of instrument type strings to use in this criteria block. Optional, default is [].
metadata_filters : MetadataFilter
The metadata filters to use in this criteria block. Optional, default is None.

Methods

def pretty_print(self)
Expand source code
def pretty_print(self):
    """
    A special print output for this class.
    """
    # set special strings
    max_len = 80
    metadata_filters_str = str(self.metadata_filters)
    if (len(metadata_filters_str) > max_len):
        metadata_filters_str = "%s...)" % (metadata_filters_str[0:max_len])

    # print
    print("GroundCriteriaBlock:")
    print("  %-18s: %s" % ("programs", self.programs))
    print("  %-18s: %s" % ("platforms", self.platforms))
    print("  %-18s: %s" % ("instrument_types", self.instrument_types))
    print("  %-18s: %s" % ("metadata_filters", metadata_filters_str))

A special print output for this class.

class SpaceCriteriaBlock (programs: List[str] = [],
platforms: List[str] = [],
instrument_types: List[str] = [],
hemisphere: List[Literal['northern', 'southern']] = [],
metadata_filters: MetadataFilter | None = None)
Expand source code
class SpaceCriteriaBlock:
    """
    Representation of a space criteria block used for conjunction searches. 

    Attributes:
        programs (List[str]): 
            List of program strings to use in this criteria block. Optional, default is `[]`.
        
        platforms (List[str]): 
            List of platform strings to use in this criteria block. Optional, default is `[]`.

        instrument_types (List[str]): 
            List of instrument type strings to use in this criteria block. Optional, default is `[]`.

        hemisphere (List[str]): 
            List of hemisphere strings to use in this criteria block. Valid values are 'northern' 
            or 'southern'. Optional, default is `[]`.

        metadata_filters (MetadataFilter): 
            The metadata filters to use in this criteria block. Optional, default is None.
    """

    def __init__(self,
                 programs: List[str] = [],
                 platforms: List[str] = [],
                 instrument_types: List[str] = [],
                 hemisphere: List[Literal["northern", "southern"]] = [],
                 metadata_filters: Optional[MetadataFilter] = None):
        self.programs = programs
        self.platforms = platforms
        self.instrument_types = instrument_types
        self.hemisphere = hemisphere
        self.metadata_filters = metadata_filters

    def __str__(self) -> str:
        return self.__repr__()

    def __repr__(self) -> str:
        return "SpaceCriteriaBlock(programs=%s, platforms=%s, instrument_types=%s, hemisphere=%s, metadata_filters=%s)" % (
            self.programs,
            self.platforms,
            self.instrument_types,
            self.hemisphere,
            self.metadata_filters,
        )

    def pretty_print(self):
        """
        A special print output for this class.
        """
        # set special strings
        max_len = 80
        metadata_filters_str = str(self.metadata_filters)
        if (len(metadata_filters_str) > max_len):
            metadata_filters_str = "%s...)" % (metadata_filters_str[0:max_len])

        # print
        print("SpaceCriteriaBlock:")
        print("  %-18s: %s" % ("programs", self.programs))
        print("  %-18s: %s" % ("platforms", self.platforms))
        print("  %-18s: %s" % ("instrument_types", self.instrument_types))
        print("  %-18s: %s" % ("hemisphere", self.hemisphere))
        print("  %-18s: %s" % ("metadata_filters", metadata_filters_str))

    def to_search_query_dict(self):
        query_dict = self.__dict__
        query_dict["ephemeris_metadata_filters"] = None if self.metadata_filters is None else self.metadata_filters.__dict__
        del query_dict["metadata_filters"]
        return query_dict

Representation of a space criteria block used for conjunction searches.

Attributes

programs : List[str]
List of program strings to use in this criteria block. Optional, default is [].
platforms : List[str]
List of platform strings to use in this criteria block. Optional, default is [].
instrument_types : List[str]
List of instrument type strings to use in this criteria block. Optional, default is [].
hemisphere : List[str]
List of hemisphere strings to use in this criteria block. Valid values are 'northern' or 'southern'. Optional, default is [].
metadata_filters : MetadataFilter
The metadata filters to use in this criteria block. Optional, default is None.

Methods

def pretty_print(self)
Expand source code
def pretty_print(self):
    """
    A special print output for this class.
    """
    # set special strings
    max_len = 80
    metadata_filters_str = str(self.metadata_filters)
    if (len(metadata_filters_str) > max_len):
        metadata_filters_str = "%s...)" % (metadata_filters_str[0:max_len])

    # print
    print("SpaceCriteriaBlock:")
    print("  %-18s: %s" % ("programs", self.programs))
    print("  %-18s: %s" % ("platforms", self.platforms))
    print("  %-18s: %s" % ("instrument_types", self.instrument_types))
    print("  %-18s: %s" % ("hemisphere", self.hemisphere))
    print("  %-18s: %s" % ("metadata_filters", metadata_filters_str))

A special print output for this class.

def to_search_query_dict(self)
Expand source code
def to_search_query_dict(self):
    query_dict = self.__dict__
    query_dict["ephemeris_metadata_filters"] = None if self.metadata_filters is None else self.metadata_filters.__dict__
    del query_dict["metadata_filters"]
    return query_dict