Skip to content

Satellites

SAR satellite configurations with orbital parameters, wavelengths, and imaging geometry.

SatelliteConfig

SatelliteConfig dataclass

SatelliteConfig(name: str, wavelength_m: float, band: str, incidence_deg: float, incidence_range: tuple, heading_asc_deg: float, heading_desc_deg: float, revisit_days: int, resolution_m: float, agency: str)

Configuration for a SAR satellite.

get_heading

get_heading(orbit: str = 'ascending') -> float

Get satellite heading for orbit direction.

Source code in src/eq_insar/constants.py
def get_heading(self, orbit: str = "ascending") -> float:
    """Get satellite heading for orbit direction."""
    if orbit.lower() in ["asc", "ascending"]:
        return self.heading_asc_deg
    elif orbit.lower() in ["desc", "descending"]:
        return self.heading_desc_deg
    else:
        raise ValueError(f"Unknown orbit: {orbit}. Use 'ascending' or 'descending'.")

Satellite Lookup

get_satellite

get_satellite(name: str) -> SatelliteConfig

Get satellite configuration by name.

PARAMETER DESCRIPTION
name

Satellite name (case-insensitive). Options: 'sentinel1', 'radarsat2', 'envisat', 'alos2', 'nisar', 'saocom', 'terrasar', 'cosmo', 'iceye'

TYPE: str

RETURNS DESCRIPTION
SatelliteConfig

Satellite configuration object

Source code in src/eq_insar/constants.py
def get_satellite(name: str) -> SatelliteConfig:
    """
    Get satellite configuration by name.

    Parameters
    ----------
    name : str
        Satellite name (case-insensitive). Options:
        'sentinel1', 'radarsat2', 'envisat', 'alos2', 'nisar',
        'saocom', 'terrasar', 'cosmo', 'iceye'

    Returns
    -------
    SatelliteConfig
        Satellite configuration object
    """
    name_lower = name.lower().replace("-", "").replace("_", "").replace(" ", "")

    # Handle common aliases
    aliases = {
        "s1": "sentinel1",
        "sentinel": "sentinel1",
        "rs2": "radarsat2",
        "radarsat": "radarsat2",
        "alos": "alos2",
        "palsar2": "alos2",
        "tsx": "terrasar",
        "tdx": "terrasar",
        "csk": "cosmo",
        "cosmoskymed": "cosmo",
    }

    name_lower = aliases.get(name_lower, name_lower)

    if name_lower not in SATELLITES:
        available = ", ".join(SATELLITES.keys())
        raise ValueError(f"Unknown satellite: {name}. Available: {available}")

    return SATELLITES[name_lower]

list_satellites

list_satellites() -> Dict[str, SatelliteConfig]

Return dictionary of all available satellite configurations.

Source code in src/eq_insar/constants.py
def list_satellites() -> Dict[str, SatelliteConfig]:
    """Return dictionary of all available satellite configurations."""
    return SATELLITES.copy()