Skip to content

API Reference

Plugin Interface

EOS-4 SCT plugin interface.

Attributes

Classes

EOS04ProductPlugin

Plugin for EOS-04 product format

Attributes

version class-attribute instance-attribute
Python
version = __version__

Methods:

get_manager classmethod
Python
get_manager() -> type[SCTInputProduct]
get_detector classmethod
Python
get_detector() -> Callable[[str | Path], bool]
get_ale_corrector classmethod
Python
get_ale_corrector() -> ALECorrectionFunctionType

Protocol Implementation

EOS-04 format reader protocol-compliant wrapper for PERSEO-quality.

Classes

EOS04DopplerPolynomial

PERSEO-quality Doppler Function protocol compliant EOS04 doppler polynomial wrapper

Methods:

__init__
Python
__init__(evaluator: DopplerEvaluator) -> None
evaluate
Python
evaluate(azimuth_time: PreciseDateTime, range_time: float) -> float

Evaluate the Doppler Polynomial at given azimuth and range times.

Parameters:

Name Type Description Default
azimuth_time PreciseDateTime

azimuth time at which evaluate the polynomial

required
range_time float

range time at which evaluate the polynomial

required

Returns:

Type Description
float

doppler centroid at that time

EOS04ProductManager

SCTInputProduct protocol compliant EOS04 wrapper

Attributes

path property
Python
path: Path

Get product path

name property
Python
name: str

Get product name

footprint property
Python
footprint: Polygon

Get product footprint

channels_list property
Python
channels_list: list[str]

Get list of available channels for this product

Methods:

__init__
Python
__init__(path: str | Path, **kwargs) -> None
get_channel_data
Python
get_channel_data(channel_id: str) -> EOS04ChannelManager

Gathering all the information that are channel dependent and storing them in a protocol compliant object.

Parameters:

Name Type Description Default
channel_id int

selected channel identifier

required

Returns:

Type Description
EOS04ChannelManager

ChannelData-compliant object containing data corresponding to the selected channel

EOS04ChannelManager

PERSEO-quality ChannelData protocol compliant EOS04 channel wrapper

Attributes

sensor_name property
Python
sensor_name: str

Name of the sensor

swath_name property
Python
swath_name: str

Name of the swath being analyzed

channel_id property
Python
channel_id: str

Identifier of current channel data

prf property
Python
prf: float

Sensor Pulse Repetition Frequency (PRF)

range_step_m property
Python
range_step_m: float

Step along range direction, in meters

azimuth_step_s property
Python
azimuth_step_s: float

Step along azimuth direction, in seconds

projection property
Python
projection: SARProjection

Channel data projection

polarization property
Python
polarization: SARPolarization

Channel data polarization

acquisition_mode property
Python
acquisition_mode: SARAcquisitionMode

Channel data acquisition mode

orbit_direction property
Python
orbit_direction: SAROrbitDirection

Channel data orbit direction

image_type property
Python
image_type: SARImageType

Channel raster image type

sampling_constants property
Python
sampling_constants: SARSamplingFrequencies

Channel data signal sampling frequencies

looking_side property
Python
looking_side: SARSideLooking

Sensor look direction for this channel

carrier_frequency property
Python
carrier_frequency: float

Signal carrier frequency

mid_azimuth_time property
Python
mid_azimuth_time: PreciseDateTime

Azimuth time at half swath

trajectory property
Python
trajectory: Trajectory

Channel trajectory rx 3D curve

attitude property
Python
attitude: None

Channel attitude defined in ECEF Reference Frame

doppler_centroid property
Python
doppler_centroid: EOS04DopplerPolynomial

Channel doppler centroid polynomial wrapper

doppler_rate property
Python
doppler_rate: None

Channel doppler rate polynomial wrapper

mid_range_time property
Python
mid_range_time: float

Range time at half swath

range_axis property
Python
range_axis: ndarray

Range axis

slant_range_axis property
Python
slant_range_axis: ndarray

Range axis

azimuth_axis property
Python
azimuth_axis: ndarray

Azimuth axis, PreciseDateTime format

lines_per_burst property
Python
lines_per_burst: ndarray

Lines per burst, for each burst in the swath

radiometric_quantity property
Python
radiometric_quantity: ndarray

Product radiometric quantity

Methods:

__init__
Python
__init__(channel_metadata: EOS04ChannelMetadata, channel_raster_path: Path, channel_name: str) -> None

Creating a ChannelManager object compliant with the ChannelData protocol.

Parameters:

Name Type Description Default
channel_metadata EOS04ChannelMetadata

channel metadata dataclass for the current channel

required
channel_raster_path int

Path to the channel raster file

required
channel_name int

name of current channel

required
get_mid_burst_times
Python
get_mid_burst_times(burst: int) -> tuple[PreciseDateTime, float]

Compute mid azimuth and range times for a given burst.

Returns:

Type Description
PreciseDateTime

azimuth mid burst time

float

range mid burst time

get_steering_rate
Python
get_steering_rate(azimuth_time: PreciseDateTime, burst: int) -> float

Compute steering rate at a given azimuth time and for a given burst.

Parameters:

Name Type Description Default
azimuth_time PreciseDateTime

azimuth time

required
burst int

burst corresponding to the input time

required

Returns:

Type Description
float

azimuth steering rate

get_location_data
Python
get_location_data(azimuth_time: PreciseDateTime, range_time: float) -> LocationData

Generating a LocationData object containing data and info derived from the current NovaSAR1ChannelManager and declined to the specific azimuth and range times selected.

Parameters:

Name Type Description Default
azimuth_time PreciseDateTime

selected azimuth time

required
range_time float

selected range time

required

Returns:

Type Description
LocationData

LocationData instance related to the selected location

pixel_to_times_conversion
Python
pixel_to_times_conversion(azimuth_index: float, range_index: float, burst: int = None) -> tuple[PreciseDateTime, float]

Converting input raster pixel coordinates (azimuth_index and range index) to corresponding absolute times, azimuth and range.

Parameters:

Name Type Description Default
azimuth_index float

azimuth pixel index, subpixel precision

required
range_index float

range pixel index, subpixel precision

required
burst int

burst index, by default None

None

Returns:

Type Description
PreciseDateTime

azimuth time

float

range time

times_to_pixel_conversion
Python
times_to_pixel_conversion(azimuth_time: PreciseDateTime, range_time: float, burst: int = None) -> tuple[float, float]

Converting azimuth and range times to raster image pixels indexes with subpixel precision.

Parameters:

Name Type Description Default
azimuth_time PreciseDateTime

azimuth time

required
range_time float

range time

required
burst int

burst number corresponding to these times

None

Returns:

Type Description
float

pixel corresponding to azimuth time

float

pixel corresponding to range time

ground_points_to_burst_association
Python
ground_points_to_burst_association(coordinates: ArrayLike) -> list[list[int] | None]

Determining the burst (or bursts) where the input coordinates lie. If no association can be found (i.e. the point is not visible in the scene), None is returned.

Parameters:

Name Type Description Default
coordinates ArrayLike

array of coordinates, in the form (N, 3)

required

Returns:

Type Description
list[list[int] | None]

list containing the burst association for each input point, None if no association was found

times_to_burst_association
Python
times_to_burst_association(azimuth_times: ArrayLike) -> list[int]

Associate the right burst to a given input time point. This function returns 1 association for each input time. Associating time only to the first burst containing it.

Parameters:

Name Type Description Default
azimuth_times ArrayLike

azimuth time array in PreciseDateTime format

required

Returns:

Type Description
list[int]

burst associated with a given time

Raises:

Type Description
CoordinatesOutOfBounds

if input time exceeds tme boundaries of the swath

pixel_to_burst_association
Python
pixel_to_burst_association(azimuth_px_indexes: ArrayLike) -> list[int]

Associate the azimuth pixel value to the right burst. This function returns 1 association for each input time.

Parameters:

Name Type Description Default
azimuth_px_indexes ArrayLike

azimuth pixel indexes array

required

Returns:

Type Description
list[int]

burst associated with a given pixel index

Raises:

Type Description
CoordinatesOutOfBounds

if input time exceeds tme boundaries of the swath

read_data
Python
read_data(azimuth_index: float, range_index: float, cropping_size: tuple[int, int] = (150, 150), output_radiometric_quantity: SARRadiometricQuantity = SARRadiometricQuantity.BETA_NOUGHT, burst: int | None = None) -> np.ndarray

Extracting the swath portion centered to the provided target position and of size cropping_size by cropping_size. Target position is provided via its azimuth and range indexes in the swath array.

Parameters:

Name Type Description Default
azimuth_index float

index of azimuth time in swath array

required
range_index float

index of range time in swath array

required
cropping_size tuple[int, int]

size in pixel of the swath portion to be read (number of samples, number of lines), by default (150, 150)

(150, 150)
output_radiometric_quantity SARRadiometricQuantity

selected output radiometric quantity to convert the read data to, if needed, by default SARRadiometricQuantity.BETA_NOUGHT

BETA_NOUGHT
burst int

if burst is provided, the roi extraction gives error if the boundaries exceed the burst boundaries, by default None

None

Returns:

Type Description
ndarray

cropped swath array centered to the input target coordinates, output array is (samples, lines) by default the output radiometric quantity is BETA_NOUGHT, unless specified otherwise

Raises:

Type Description
AzimuthExceedsBoundariesError

azimuth index exceeds swath boundaries

RangeExceedsBoundariesError

range index exceeds swath boundaries