Skip to content

ICEYE

Reader Interface

ICEYE product format reader.

Functions:

read_channel_metadata

Python
read_channel_metadata(file_path: Path | str, channel_id: str) -> support.ICEYEChannelMetadata

Reading channel metadata info and storing them in a ICEYEChannelMetadata dataclass.

The assumption here is that .xml files are associated ONLY to GRD, as reported in the official documentation while HDF5 file is SLC only

note: AUXILIARY .XML METADATA FILE OPTIONALLY AVAILABLE FOR SLC WILL NOT BE USED

Parameters:

Name Type Description Default
file_path Path | str

Path to the metadata file, could be an .xml (GRD) or a .h5 file (SLC)

required

Returns:

Type Description
ICEYEChannelMetadata

ICEYEChannelMetadata metadata dataclass

read_channel_data

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

Reading ICEYE data file. It can be a GeoTiff .tif file (for GRD products) or an HDF5 .h5 file (for SLC).

Parameters:

Name Type Description Default
raster_file str | Path

Path to GeoTiff .tif or HDF5 .h5 file

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 applied 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(pf_path: str | Path) -> support.ICEYEProduct

Open a ICEYE product.

Parameters:

Name Type Description Default
pf_path str | Path

Path to the ICEYE product

required

Returns:

Type Description
ICEYEProduct

ICEYEProduct object corresponding to the input ICEYE product

Utilities

ICEYE reader support module.

Classes

InvalidICEYEProduct

Bases: RuntimeError

Invalid ICEYE product

ICEYEProductLevel

Bases: Enum

ICEYE L1 product level

Attributes

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

ICEYEAcquisitionMode

Bases: Enum

ICEYE L1 acquisition modes

Attributes

SPOTLIGHT class-attribute instance-attribute
Python
SPOTLIGHT = 'spotlight'
STRIPMAP class-attribute instance-attribute
Python
STRIPMAP = 'stripmap'
TOPSAR class-attribute instance-attribute
Python
TOPSAR = 'scan'

ICEYEStateVectorsReferenceSystem

Bases: Enum

Orbit's state vectors reference system

Attributes

WGS84 class-attribute instance-attribute
Python
WGS84 = 'WGS84'

ICEYEOrbitProcessingLevel

Bases: Enum

Orbit's processing level type

Attributes

PREDICTED class-attribute instance-attribute
Python
PREDICTED = 'predicted'
RAPID class-attribute instance-attribute
Python
RAPID = 'rapid'
PRECISE class-attribute instance-attribute
Python
PRECISE = 'precise'
SCIENTIFIC class-attribute instance-attribute
Python
SCIENTIFIC = 'scientific'

ICEYEIncidenceAnglePolynomial dataclass

ICEYE Incidence Angle Polynomial

Attributes

incidence_angles class-attribute instance-attribute
Python
incidence_angles: list[ConversionFunction] | None = None
azimuth_reference_times class-attribute instance-attribute
Python
azimuth_reference_times: ndarray | None = None

Methods:

__init__
Python
__init__(incidence_angles: list[ConversionFunction] | None = None, azimuth_reference_times: ndarray | None = None) -> None
from_metadata staticmethod
Python
from_metadata(root: _Element | File) -> ICEYEIncidenceAnglePolynomial

Generating ICEYEIncidenceAnglePolynomial object directly from metadata xml node.

Evaluated polynomial gives Incidence Angle in deg.

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required

Returns:

Type Description
ICEYEIncidenceAnglePolynomial

polynomial for incidence angle computation

evaluate_incidence_angle
Python
evaluate_incidence_angle(azimuth_time: PreciseDateTime, range_pixels: ArrayLike) -> float

Compute incidence angle at given time.

Parameters:

Name Type Description Default
azimuth_time PreciseDateTime

azimuth time to select the proper polynomial to be used for conversion

required
range_pixels ArrayLike

range pixel index

required

Returns:

Type Description
float

incidence angle in degrees

ICEYEGeneralChannelInfo dataclass

ICEYE general channel info dataclass

Attributes

product_name instance-attribute
Python
product_name: str
channel_id instance-attribute
Python
channel_id: str
swath instance-attribute
Python
swath: str
product_level instance-attribute
Python
product_level: ICEYEProductLevel
polarization instance-attribute
Python
polarization: SARPolarization
projection instance-attribute
Python
projection: SARProjection
acquisition_mode instance-attribute
Python
acquisition_mode: ICEYEAcquisitionMode
acquisition_mode_std instance-attribute
Python
acquisition_mode_std: StandardSARAcquisitionMode
orbit_direction instance-attribute
Python
orbit_direction: OrbitDirection
signal_frequency instance-attribute
Python
signal_frequency: float
acq_start_time instance-attribute
Python
acq_start_time: PreciseDateTime
acq_stop_time instance-attribute
Python
acq_stop_time: PreciseDateTime

Methods:

__init__
Python
__init__(product_name: str, channel_id: str, swath: str, product_level: ICEYEProductLevel, polarization: SARPolarization, projection: SARProjection, acquisition_mode: ICEYEAcquisitionMode, acquisition_mode_std: StandardSARAcquisitionMode, orbit_direction: OrbitDirection, signal_frequency: float, acq_start_time: PreciseDateTime, acq_stop_time: PreciseDateTime) -> None
from_metadata staticmethod
Python
from_metadata(root: _Element | File, channel_id: str) -> ICEYEGeneralChannelInfo

Generating ICEYEGeneralChannelInfo object directly from metadata.

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required
channel_id str

channel id

required

Returns:

Type Description
ICEYEGeneralChannelInfo

general channel info dataclass

ICEYEChannelMetadata dataclass

ICEYE channel metadata dataclass

Attributes

general_info instance-attribute
Python
general_info: ICEYEGeneralChannelInfo
orbit instance-attribute
Python
orbit: Trajectory
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
incidence_angles_poly instance-attribute
Python
incidence_angles_poly: ICEYEIncidenceAnglePolynomial
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__(general_info: ICEYEGeneralChannelInfo, orbit: Trajectory, 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, incidence_angles_poly: ICEYEIncidenceAnglePolynomial, pulse: PulseInfo, coordinate_conversions: CoordinatesConversions, state_vectors: StateVectors) -> None

ICEYEProduct

ICEYE product object

Attributes

acquisition_time property
Python
acquisition_time: PreciseDateTime

Acquisition start time for this product

data_list property
Python
data_list: list[Path]

Returning the list of raster data files of ICEYE product

channels_number property
Python
channels_number: int

Returning the number of channels of ICEYE product

channels_list property
Python
channels_list: list[str]

Returning the list of channels

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

ICEYE Product init from directory path.

Parameters:

Name Type Description Default
path str | Path

path to ICEYE product

required
get_files_from_channel_name
Python
get_files_from_channel_name(channel_name: str) -> list[Path]

Get files associated to a given channel name.

GRD channels will return a list of two paths: .xml metadata file, .tif GeoTiff raster file

SLC channels will return a list of a single path: .h5 HDF5 file

Parameters:

Name Type Description Default
channel_name str

channel id name

required

Returns:

Type Description
list[Path]

path to grd/slc files

Functions:

raster_info_from_metadata

Python
raster_info_from_metadata(root: _Element | File) -> RasterInfo

Creating a RasterInfo metadata object from metadata file.

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required

Returns:

Type Description
RasterInfo

RasterInfo metadata object

burst_info_from_metadata

Python
burst_info_from_metadata(raster_info: RasterInfo) -> BurstInfo

Generating BurstInfo object directly from metadata.

Parameters:

Name Type Description Default
raster_info RasterInfo

product raster info

required

Returns:

Type Description
BurstInfo

burst info dataclass

dataset_info_from_metadata

Python
dataset_info_from_metadata(root: _Element | File) -> DatasetInfo

Creating a DatasetInfo metadata object from metadata file.

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required

Returns:

Type Description
DatasetInfo

DatasetInfo metadata object

swath_info_from_metadata

Python
swath_info_from_metadata(root: _Element | File) -> SwathInfo

Creating a SwathInfo metadata object from metadata file.

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required

Returns:

Type Description
SwathInfo

SwathInfo metadata object

state_vectors_from_metadata

Python
state_vectors_from_metadata(root: _Element | File) -> StateVectors

Generating StateVectors object directly from product metadata.

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required

Returns:

Type Description
StateVectors

orbit's state vectors dataclass

sampling_constants_from_metadata

Python
sampling_constants_from_metadata(root: _Element | File) -> SARSamplingFrequencies

Creating a SARSamplingFrequencies metadata object from metadata file.

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required

Returns:

Type Description
SARSamplingFrequencies

SARSamplingFrequencies metadata object

pulse_info_from_metadata

Python
pulse_info_from_metadata(root: _Element | File) -> PulseInfo

Creating a PulseInfo metadata object from metadata.

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required

Returns:

Type Description
PulseInfo

PulseInfo metadata object

doppler_centroid_poly_from_metadata

Python
doppler_centroid_poly_from_metadata(root: _Element | File, raster_info: RasterInfo) -> DopplerEvaluator

Creating a DopplerEvaluator doppler centroid polynomial wrapper from metadata.

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required
raster_info RasterInfo

channel raster info

required

Returns:

Type Description
DopplerEvaluator

DopplerEvaluator dataclass for Doppler Centroid polynomial

doppler_rate_poly_from_metadata

Python
doppler_rate_poly_from_metadata(root: _Element | File, raster_info: RasterInfo) -> DopplerEvaluator

Creating a DopplerEvaluator doppler rate vector polynomial wrapper from metadata.

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required
raster_info RasterInfo

channel raster info

required

Returns:

Type Description
DopplerEvaluator

DopplerEvaluator dataclass for Doppler Rate polynomial

calibration_factor_and_radiometric_quantity_from_metadata

Python
calibration_factor_and_radiometric_quantity_from_metadata(root: _Element | File) -> tuple[float, SARRadiometricQuantity]

Image calibration factor and radiometric quantity from metadata file.

SLC case: binary image * calibration factor = beta nought

GRD case: binary image (already sigma nought) * calibration factor = sigma nought

Parameters:

Name Type Description Default
root _Element | File

metadata root object

required

Returns:

Type Description
tuple[float, SARRadiometricQuantity]

image calibration factor, radiometric quantity

coordinates_conversions_from_metadata

Python
coordinates_conversions_from_metadata(root: _Element | File) -> 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
root _Element | File

metadata root object

required

Returns:

Type Description
CoordinatesConversions

polynomial for coordinate conversion dataclass

is_iceye_product

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

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

Conditions to be met for basic validity: - path exists - path is a directory - valid channels (GRD and/or SLC) can be found

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