Skip to content

EOS-04

Reader Interface

EOS04 product format reader.

Classes

Functions:

read_product_metadata

Python
read_product_metadata(xml_path: str | Path, channels: list[str]) -> dict[str, support.EOS04ChannelMetadata]

Reading EOS04 product channel metadata.

Parameters:

Name Type Description Default
xml_path str | Path

path to the annotation xml file

required
channels list[str]

channels ids for the current product

required

Returns:

Type Description
dict[str, EOS04ChannelMetadata]

dictionary of EOS04ChannelMetadata dataclasses as values, channel name as key

read_channel_data

Python
read_channel_data(raster_file: str | Path, block_to_read: list[int] | None = None, scaling_conversion: float = 1) -> np.ndarray

Reading EOS04 tif channel data file.

Parameters:

Name Type Description Default
raster_file str | Path

Path to .tif raster file to be read

required
block_to_read list[int] | None

data block to be read, to be specified as a list of 4 integers, in the form:

Text Only
0. first line to be read
1. first sample to be read
2. total number of lines to be read
3. total number of samples to be read

if None, the whole raster is read, by default None

None
scaling_conversion float

scaling conversion to be multiplied to the data read

1

Returns:

Type Description
ndarray

numpy array containing the data read from raster file, with shape (lines, samples)

open_product

Python
open_product(path: str | Path) -> support.EOS04Product

Open an EOS04 product.

Parameters:

Name Type Description Default
path str | Path

Path to the EOS04 product

required

Returns:

Type Description
EOS04Product

EOS04Product object corresponding to the input product

Utilities

EOS04 reader support module.

Attributes

RASTER_EXTENSION module-attribute

Python
RASTER_EXTENSION = '.tif'

METADATA_EXTENSION module-attribute

Python
METADATA_EXTENSION = '.xml'

Classes

InvalidEOS04Product

Bases: RuntimeError

Invalid EOS04 Product

EOS04TimeOrdering

Bases: Enum

EOS04 available Time Ordering

Attributes

INCREASING class-attribute instance-attribute
Python
INCREASING = auto()
DECREASING class-attribute instance-attribute
Python
DECREASING = auto()

EOS04AcquisitionMode

Bases: Enum

EOS04 Acquisition Modes

Attributes

SCANSAR class-attribute instance-attribute
Python
SCANSAR = 'SCANSAR'

EOS04ProductType

Bases: Enum

EOS04 Product Types

Attributes

SLC class-attribute instance-attribute
Python
SLC = 'SLC'
GRD class-attribute instance-attribute
Python
GRD = 'GROUND RANGE'

EOS04Attitude dataclass

EOS04 sensor's attitude

Attributes

num instance-attribute
Python
num: int
yaw instance-attribute
Python
yaw: ndarray
pitch instance-attribute
Python
pitch: ndarray
roll instance-attribute
Python
roll: ndarray
time_axis instance-attribute
Python
time_axis: ndarray
time_step instance-attribute
Python
time_step: float

Methods:

__init__
Python
__init__(num: int, yaw: ndarray, pitch: ndarray, roll: ndarray, time_axis: ndarray, time_step: float) -> None
from_metadata_node staticmethod
Python
from_metadata_node(attitude_information_node: _Element) -> EOS04Attitude

Generating EOS04Attitude object directly from metadata xml node.

Parameters:

Name Type Description Default
attitude_information_node _Element

AttitudeInformation xml node

required

Returns:

Type Description
EOS04Attitude

sensor's attitude dataclass

EOS04GeneralChannelInfo dataclass

EOS04 general channel info representation dataclass

Attributes

channel_id instance-attribute
Python
channel_id: str
product_name instance-attribute
Python
product_name: str
satellite instance-attribute
Python
satellite: str
swath instance-attribute
Python
swath: str
acq_start_time instance-attribute
Python
acq_start_time: PreciseDateTime
product_type instance-attribute
Python
product_type: EOS04ProductType
acquisition_mode instance-attribute
Python
acquisition_mode: EOS04AcquisitionMode
acquisition_mode_std instance-attribute
Python
acquisition_mode_std: StandardSARAcquisitionMode
polarization instance-attribute
Python
polarization: SARPolarization
projection instance-attribute
Python
projection: SARProjection
orbit_direction instance-attribute
Python
orbit_direction: OrbitDirection

Methods:

__init__
Python
__init__(channel_id: str, product_name: str, satellite: str, swath: str, acq_start_time: PreciseDateTime, product_type: EOS04ProductType, acquisition_mode: EOS04AcquisitionMode, acquisition_mode_std: StandardSARAcquisitionMode, polarization: SARPolarization, projection: SARProjection, orbit_direction: OrbitDirection) -> None
from_metadata_node staticmethod
Python
from_metadata_node(source_attributes_node: _Element, product_type: str, channel_id: str) -> EOS04GeneralChannelInfo

Generating EOS04GeneralChannelInfo object directly from metadata xml nodes.

Parameters:

Name Type Description Default
source_attributes_node _Element

SourceAttributes metadata xml node

required
product_type str

product type

required
channel_id str

channel id

required

Returns:

Type Description
EOS04GeneralChannelInfo

general channel info dataclass

EOS04ChannelMetadata dataclass

EOS04 channel metadata xml file wrapper

Attributes

channel_id instance-attribute
Python
channel_id: str
general_info instance-attribute
Python
general_info: EOS04GeneralChannelInfo
orbit instance-attribute
Python
orbit: Trajectory
attitude instance-attribute
Python
attitude: EOS04Attitude
image_calibration_factor instance-attribute
Python
image_calibration_factor: float
image_radiometric_quantity instance-attribute
Python
image_radiometric_quantity: SARRadiometricQuantity
burst_info instance-attribute
Python
burst_info: BurstInfo
raster_info instance-attribute
Python
raster_info: RasterInfo
dataset_info instance-attribute
Python
dataset_info: DatasetInfo
swath_info instance-attribute
Python
swath_info: SwathInfo
sampling_constants instance-attribute
Python
sampling_constants: SARSamplingFrequencies
doppler_centroid_poly instance-attribute
Python
doppler_centroid_poly: DopplerEvaluator
doppler_rate_poly instance-attribute
Python
doppler_rate_poly: DopplerEvaluator
pulse instance-attribute
Python
pulse: PulseInfo
coordinate_conversions instance-attribute
Python
coordinate_conversions: CoordinatesConversions
state_vectors instance-attribute
Python
state_vectors: StateVectors

Methods:

__init__
Python
__init__(channel_id: str, general_info: EOS04GeneralChannelInfo, orbit: Trajectory, attitude: EOS04Attitude, image_calibration_factor: float, image_radiometric_quantity: SARRadiometricQuantity, burst_info: BurstInfo, raster_info: RasterInfo, dataset_info: DatasetInfo, swath_info: SwathInfo, sampling_constants: SARSamplingFrequencies, doppler_centroid_poly: DopplerEvaluator, doppler_rate_poly: DopplerEvaluator, pulse: PulseInfo, coordinate_conversions: CoordinatesConversions, state_vectors: StateVectors) -> None

EOS04FolderLayout

EOS04 file main directory architecture

Attributes

band_meta_file property
Python
band_meta_file: Path

Path to the BAND_META.txt file

metadata_file property
Python
metadata_file: Path

Path to the product.xml metadata file

Methods:

__init__
Python
__init__(path: Path) -> None

Definition of internal architecture of a EOS04 product folder.

Parameters:

Name Type Description Default
path Path

path to the EOS04 product base folder

required
get_slant_range_grid_file
Python
get_slant_range_grid_file(polarization: str | SARPolarization) -> Path

Retrieving the _L1_SlantRange_grid.txt file for the input polarization.

Parameters:

Name Type Description Default
polarization str | SARPolarization

polarization value

required

Returns:

Type Description
Path

Path to the _L1_SlantRange_grid.txt for the selected polarization

get_beam_raster_file
Python
get_beam_raster_file(polarization: str | SARPolarization, beam: int, product_type: EOS04ProductType) -> Path

Retrieving the raster file for the selected polarization and beam number.

Parameters:

Name Type Description Default
polarization str | SARPolarization

polarization value

required
beam int

selected beam number

required
product_type EOS04ProductType

product type

required

Returns:

Type Description
Path

Path to the beam raster file

EOS04Product

EOS04 Product

Attributes

acquisition_time property
Python
acquisition_time: PreciseDateTime

Acquisition start time for this product

metadata_file property
Python
metadata_file: Path

Returning the Path to the product metadata file

channels_number property
Python
channels_number: int

Returning the number of channels for this product

channels_list property
Python
channels_list: list[str]

Returning the list of channels in terms of SwathID (beam-polarization)

footprint property
Python
footprint: tuple[float, float, float, float]

Product footprint as tuple of (min lat, max lat, min lon, max lon)

Methods:

__init__
Python
__init__(path: str | Path) -> None
get_raster_file_from_channel_name
Python
get_raster_file_from_channel_name(channel_name: str) -> Path

Get raster file path associated to input channel name.

Parameters:

Name Type Description Default
channel_name str

selected channel name

required

Returns:

Type Description
Path

raster file path

Functions:

compose_channel_name

Python
compose_channel_name(polarization: SARPolarization, beam: int) -> str

Composing channel name from polarization and beam.

Parameters:

Name Type Description Default
polarization SARPolarization

channel polarization

required
beam int

channel beam

required

Returns:

Type Description
str

channel name, as B{beam}_POL

unpack_channel_name

Python
unpack_channel_name(channel_name: str) -> tuple[int, SARPolarization]

Recovering beam id and polarization value from channel name.

Parameters:

Name Type Description Default
channel_name str

channel name string

required

Returns:

Type Description
int

channel beam id

SARPolarization

channel polarization

raster_info_from_metadata_nodes

Python
raster_info_from_metadata_nodes(image_generation_parameters_node: _Element, image_attributes_node: _Element, beam_id: int, polarization: SARPolarization, product_type: EOS04ProductType) -> RasterInfo

Creating a RasterInfo metadata element from xml node.

Parameters:

Name Type Description Default
image_generation_parameters_node _Element

ImageGenerationParameters metadata xml node

required
image_attributes_node _Element

ImageAttributes metadata xml node

required
beam_id int

swath beam id

required
product_type EOS04ProductType

product type

required

Returns:

Type Description
RasterInfo

RasterInfo metadata object

burst_info_from_metadata

Python
burst_info_from_metadata(image_generation_parameters_node: _Element, polarization: SARPolarization, beam_id: int, raster_info: RasterInfo, product_type: EOS04ProductType) -> BurstInfo

Generating BurstInfo object directly from metadata.

Parameters:

Name Type Description Default
image_generation_parameters_node _Element

ImageGenerationParameters xml node

required
polarization SARPolarization

product acquisition mode

required
beam_id int

channel beam id

required
raster_info RasterInfo

product RasterInfo

required
product_type EOS04ProductType

product type

required

Returns:

Type Description
BurstInfo

burst info dataclass

dataset_info_from_metadata_node

Python
dataset_info_from_metadata_node(source_attributes_node: _Element, projection: SARProjection) -> DatasetInfo

Creating a DatasetInfo metadata element from safe xml nodes.

Parameters:

Name Type Description Default
source_attributes_node _Element

SourceAttributes metadata xml node

required
projection SARProjection

product projection

required

Returns:

Type Description
DatasetInfo

DatasetInfo metadata object

swath_info_from_metadata

Python
swath_info_from_metadata(image_generation_parameters_node: _Element, polarization: SARPolarization, beam: int, product_type: EOS04ProductType) -> SwathInfo

Creating a SwathInfo metadata object from metadata file.

Parameters:

Name Type Description Default
image_generation_parameters_node _Element

ImageGenerationParameters xml node

required
polarization SARPolarization

product acquisition mode

required
beam int

channel beam id

required
product_type EOS04ProductType

product type

required

Returns:

Type Description
SwathInfo

SwathInfo metadata object

state_vectors_from_metadata

Python
state_vectors_from_metadata(orbit_information_node: _Element) -> StateVectors

Generating StateVectors object directly from product metadata.

Parameters:

Name Type Description Default
orbit_information_node _Element

OrbitInformation xml node

required

Returns:

Type Description
StateVectors

orbit's state vectors dataclass

sampling_constants_from_metadata

Python
sampling_constants_from_metadata(image_generation_parameters_node: _Element, raster_info: RasterInfo) -> SARSamplingFrequencies

Creating a SARSamplingFrequencies metadata object from metadata file.

Parameters:

Name Type Description Default
image_generation_parameters_node _Element

ImageGenerationParameters xml node

required
raster_info RasterInfo

product raster info

required

Returns:

Type Description
SARSamplingFrequencies

SARSamplingFrequencies metadata object

pulse_info_from_metadata_nodes

Python
pulse_info_from_metadata_nodes(source_attributes_node: _Element, samples_step: float) -> PulseInfo

Creating a PulseInfo dataclass from xml nodes.

Parameters:

Name Type Description Default
source_attributes_node _Element

SourceAttributes metadata xml node

required
samples_step float

raster info samples step

required

Returns:

Type Description
PulseInfo

PulseInfo dataclass

doppler_centroid_poly_from_metadata_node

Python
doppler_centroid_poly_from_metadata_node(image_generation_parameters_node: _Element, raster_info: RasterInfo) -> DopplerEvaluator

Creating a DopplerEvaluator doppler centroid polynomial wrapper from metadata.

Parameters:

Name Type Description Default
image_generation_parameters_node _Element

ImageGenerationParameters metadata xml node

required
raster_info RasterInfo

product raster info

required

Returns:

Type Description
DopplerEvaluator

DopplerEvaluator dataclass for Doppler Centroid polynomial

doppler_rate_poly_from_metadata_node

Python
doppler_rate_poly_from_metadata_node(image_generation_parameters_node: _Element, raster_info: RasterInfo) -> DopplerEvaluator

Creating a DopplerEvaluator doppler rate vector polynomial wrapper from metadata.

Parameters:

Name Type Description Default
image_generation_parameters_node _Element

ImageGenerationParameters metadata xml node

required
raster_info RasterInfo

product raster info

required

Returns:

Type Description
DopplerEvaluator

DopplerEvaluator dataclass for Doppler Rate polynomial

coordinates_conversions_from_metadata

Python
coordinates_conversions_from_metadata(image_generation_parameters_node: _Element, raster_info: RasterInfo) -> CoordinatesConversions

Generating CoordinatesConversions object from metadata.

About coefficients annotated in metadata:

Coefficients of polynomial fit to the "Ground to Slant Range" transform applied. Fixed along all image slices. Defined with respect to (slant range in m)/(pixel no.)^n where first pixel in line is 0.

Values output in order A0, A1, ..., An, in order of increasing degree. Polynomial to be evaluated is: A_0+ A_1 x + ... + A_n x^n where x is pixel number in the line, starting from 0.

Evaluated polynomial gives Slant Range in meters.

Parameters:

Name Type Description Default
image_generation_parameters_node _Element

ImageGenerationParameters metadata xml node

required
raster_info RasterInfo

product raster info

required

Returns:

Type Description
CoordinatesConversions

polynomial for coordinate conversion dataclass

is_eos04_product

Python
is_eos04_product(product: str | Path) -> bool

Check if input path corresponds to a valid EOS04 product, basic version.

Conditions to be met for basic validity: - path exists - path is a directory - metadata file exists - metadata basic info extraction works

Parameters:

Name Type Description Default
product str | Path

path to the product to be checked

required

Returns:

Type Description
bool

True if it is a valid product, else False