Skip to content

API Reference

Plugin Interface

Biomass SCT plugin interface.

Attributes

Classes

BIOMASSProductPlugin

Plugin for BIOMASS 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

Biomass format reader protocol-compliant wrapper for PERSEO-quality.

Classes

DopplerPolynomialWrapper

Generic Polynomial wrapper used to interpolate Doppler data (Doppler Centroid or Rate)

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 at that time

BiomassL1ProductManager

Biomass product Manager class satisfying the QualityInputProduct protocol

Attributes

path property
Python
path: Path

Get product path

name property
Python
name: str

Get product name

channels_list property
Python
channels_list: list[int]

Get list of available channels for this product

footprint property
Python
footprint: Polygon

Get product scene footprint as a Shapely Polygon

Methods:

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

Get data and info referring to the selected channel

BiomassChannelManager

Channel Manager class satisfying the ChannelData protocol

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: int

Number corresponding to the 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 3D curve

attitude property
Python
attitude: Attitude | None

Channel attitude defined in ECEF Reference Frame

doppler_centroid property
Python
doppler_centroid: DopplerPolynomialWrapper | None

Channel doppler centroid polynomial wrapper

doppler_rate property
Python
doppler_rate: DopplerPolynomialWrapper | 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

Slant 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: SARRadiometricQuantity

Product radiometric quantity

Methods:

__init__
Python
__init__(product: BIOMASSL1Product, channel_num: int) -> None

Creating a ChannelManager object compliant with the ChannelData protocol.

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
tuple(PreciseDateTime, float)

azimuth and range mid burst times

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.

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 ChannelManager 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 = 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 = 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.

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.

read_data
Python
read_data(azimuth_index: int, range_index: int, 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 int

index of azimuth time in swath array

required
range_index int

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, data is provided with shape (samples, lines) by default the output radiometric quantity is BETA_NOUGHT, unless specified otherwise

Raises:

Type Description
AzimuthExceedsBoundariesError

azimuth index exceeds swath or burst boundaries

RangeExceedsBoundariesError

range index exceeds swath or burst boundaries

Functions:

raster_layout_from_metadata

Python
raster_layout_from_metadata(burst_info, raster_info) -> L1RasterLayout

Generating a L1RasterLayout from BurstInfo and RasterInfo metadata for the current channel.

Parameters:

Name Type Description Default
burst_info BurstInfo

channel BurstInfo

required
raster_info RasterInfo

channel RasterInfo

required

Returns:

Type Description
L1RasterLayout

raster layout of current Product Folder channel