Skip to content

API

Main Implementation

Target Ambiguity Ratio Analysis: Distributed (DTAR) and Point Target (PTAR) Ratios

Attributes

Classes

Functions:

point_target_ambiguity_ratio_analysis

Python
point_target_ambiguity_ratio_analysis(product: QualityInputProduct, point_targets: list[PointTarget], config: AmbiguityRatioConfig | None = None) -> list[PointTargetAmbiguityRatioDataOutput]

Function to compute the Point Target Ambiguity Ratio (PTAR) analysis on selected Point Target locations.

Parameters:

Name Type Description Default
product QualityInputProduct

object satisfying the QualityInputProduct protocol

required
point_targets list[PointTarget]

list of point targets locations, as PointTarget objects

required
config AmbiguityRatioConfig | None

configuration parameters, by default None

None

Returns:

Type Description
list[PointTargetAmbiguityRatioDataOutput]

ambiguity ratio results for each target location

distributed_target_ambiguity_ratio_analysis

Python
distributed_target_ambiguity_ratio_analysis(product: QualityInputProduct, roi_centers: list[tuple[int, int]], config: AmbiguityRatioConfig | None = None) -> list[DistributedTargetAmbiguityRatioDataOutput]

Function to compute the Distributed Target Ambiguity Ratio (DTAR) analysis on selected locations.

Parameters:

Name Type Description Default
product QualityInputProduct

object satisfying the QualityInputProduct protocol

required
roi_centers list[tuple[int, int]]

roi centers pixel coordinates where to compute the DTAR analysis, (range pixel index, azimuth pixel index)

required
config AmbiguityRatioConfig | None

configuration parameters, by default None

None

Returns:

Type Description
list[DistributedTargetAmbiguityRatioDataOutput]

ambiguity ratio results for each target location

Distributed and Point Target Ambiguity Ratio support functions

Attributes

AmbiguityRatioComputingFunction module-attribute

Python
AmbiguityRatioComputingFunction = Callable[[npt.NDArray[np.floating], npt.NDArray[np.floating], npt.NDArray[np.floating], AmbiguityRatioConfig], float]

Classes

Functions:

compute_ambiguities_locations

Python
compute_ambiguities_locations(channel_data: ChannelData, point_target_xyz_coords: NDArray[floating], point_target_azimuth_time: PreciseDateTime, point_target_range_time: float, doppler_rate: float, prf: float, burst: int) -> tuple[tuple[float, float], tuple[float, float], float, float]

Compute right and left ambiguities location in pixels.

Parameters:

Name Type Description Default
channel_data ChannelData

current product channel data object

required
point_target_xyz_coords NDArray[floating]

ECEF xyz point target nominal coordinates

required
point_target_azimuth_time PreciseDateTime

azimuth time for point target location

required
point_target_range_time float

range time for point target location

required
doppler_rate float

doppler rate

required
prf float

sensor prf

required
burst int

current burst

required

Returns:

Type Description
tuple[float, float]

left ambiguity location in pixels, (azimuth, range)

tuple[float, float]]

right ambiguity location in pixels, (azimuth, range)

float

azimuth time delta

float

range time delta

ptar_computing_function_wrapper

Python
ptar_computing_function_wrapper(point_target_roi: NDArray[floating], right_ambiguity_roi: NDArray[floating], left_ambiguity_roi: NDArray[floating], config: AmbiguityRatioConfig) -> float

Point Target Ambiguity Ratio computing function wrapper for dependency injection.

Parameters:

Name Type Description Default
point_target_roi NDArray[floating]

raster data portion centered on the point target location

required
right_ambiguity_roi NDArray[floating]

raster data portion centered on the point target right ambiguity

required
left_ambiguity_roi NDArray[floating]

raster data portion centered on the point target left ambiguity

required
config AmbiguityRatioConfig

ambiguity ratio computation configuration parameters

required

Returns:

Type Description
float

PTAR in decibel

dtar_computing_function_wrapper

Python
dtar_computing_function_wrapper(point_target_roi: NDArray[floating], right_ambiguity_roi: NDArray[floating], left_ambiguity_roi: NDArray[floating], config: AmbiguityRatioConfig) -> float

Distributed Target Ambiguity Ratio computing function wrapper for dependency injection.

Parameters:

Name Type Description Default
point_target_roi NDArray[floating]

raster data portion centered on the target location

required
right_ambiguity_roi NDArray[floating]

raster data portion centered on the target right ambiguity

required
left_ambiguity_roi NDArray[floating]

raster data portion centered on the target left ambiguity

required
config AmbiguityRatioConfig

ambiguity ratio computation configuration parameters

required

Returns:

Type Description
float

DTAR in decibel

ambiguity_ratio_computation_core

Python
ambiguity_ratio_computation_core(channel_data: ChannelData, target_location: tuple[int, int], left_ambiguity_location: tuple[int, int], right_ambiguity_location: tuple[int, int], ambiguity_ratio_computing_function: AmbiguityRatioComputingFunction, config: AmbiguityRatioConfig) -> float

Computing Target Ambiguity Ratio given the coordinates of the target and its right and left ambiguities.

Parameters:

Name Type Description Default
channel_data ChannelData

current product channel data object

required
target_location tuple[int, int]

target location inside the raster in pixels, (azimuth_px, range_px)

required
left_ambiguity_location tuple[int, int]

left ambiguity location inside the raster in pixels, (azimuth_px, range_px)

required
right_ambiguity_location tuple[int, int]

right ambiguity location inside the raster in pixels, (azimuth_px, range_px)

required
ambiguity_ratio_computing_function AmbiguityRatioComputingFunction

function to be used to compute the target ambiguity ratio

required
config AmbiguityRatioConfig

ambiguity ratio computation configuration parameters

required

Returns:

Type Description
float

Ambiguity Ratio in decibel

are_ambiguities_inside_scene

Python
are_ambiguities_inside_scene(r_amb: tuple[float, float], l_amb: tuple[float, float], lines: int, samples: int) -> bool

Checking ambiguities are inside the scene.

Parameters:

Name Type Description Default
r_amb tuple[float, float]

right ambiguity positions, (az pixel, rng pixel)

required
l_amb tuple[float, float]

left ambiguity positions, (az pixel, rng pixel)

required
lines int

number of lines in the scene

required
samples int

number of samples in the scene

required

Returns:

Type Description
bool

True if ambiguities inside the scene, False otherwise

Functions to generate plots for Target Ambiguity Ratio Analysis

Attributes

CMAP module-attribute

Python
CMAP = 'inferno'

Classes

Functions:

ambiguities_graphs

Python
ambiguities_graphs(data: list[PointTargetAmbiguityRatioDataOutput] | list[DistributedTargetAmbiguityRatioDataOutput], output_dir: str | Path) -> None

Target ambiguities and ambiguity ratio graphical representation.

Parameters:

Name Type Description Default
data list[PointTargetAmbiguityRatioDataOutput] | list[DistributedTargetAmbiguityRatioDataOutput]

list of ambiguity analysis results

required
output_dir str | Path

output directory where to save the plots

required

ambiguities_graphs_core

Python
ambiguities_graphs_core(data: PointTargetAmbiguityRatioDataOutput | DistributedTargetAmbiguityRatioDataOutput, output_dir: Path, tar_type: str) -> None

Utilities

Definition of Target Ambiguity Ratio Analysis configuration

Classes

AmbiguityRatioConfig dataclass

Configuration for Target Ambiguity Ratio computation

Attributes

interpolation_factor class-attribute instance-attribute
Python
interpolation_factor: int = 8
cropping_size class-attribute instance-attribute
Python
cropping_size: tuple[int, int] = (128, 128)

Methods:

__init__
Python
__init__(interpolation_factor: int = 8, cropping_size: tuple[int, int] = (128, 128)) -> None
from_dict classmethod
Python
from_dict(arg: dict) -> AmbiguityRatioConfig

Creating a AmbiguityRatioConfig object by conversion from a dictionary.

Args: arg (dict): dictionary with keys equal to the AmbiguityRatioConfig ones

Returns: AmbiguityRatioConfig: AmbiguityRatioConfig object

Definition of Target Ambiguity Analysis specific dataclasses

Classes

AmbiguityRatioProductGeneralInfo dataclass

General info for the analyzed product

Attributes

product instance-attribute
Python
product: str
channel instance-attribute
Python
channel: str
swath instance-attribute
Python
swath: str
polarization instance-attribute
Python
polarization: str
sensor instance-attribute
Python
sensor: str
product_type instance-attribute
Python
product_type: str
acquisition_mode instance-attribute
Python
acquisition_mode: str
orbit_direction instance-attribute
Python
orbit_direction: str
acquisition_start_time instance-attribute
Python
acquisition_start_time: datetime

Methods:

__init__
Python
__init__(product: str, channel: str, swath: str, polarization: str, sensor: str, product_type: str, acquisition_mode: str, orbit_direction: str, acquisition_start_time: datetime) -> None

AmbiguityRatioCoreInfo dataclass

Output core results for single Target Ambiguity Ratio Analysis

Attributes

burst class-attribute instance-attribute
Python
burst: int | None = None
roi_size_azimuth class-attribute instance-attribute
Python
roi_size_azimuth: int | None = None
roi_size_range class-attribute instance-attribute
Python
roi_size_range: int | None = None
azimuth_time_delta class-attribute instance-attribute
Python
azimuth_time_delta: float | None = None
range_time_delta class-attribute instance-attribute
Python
range_time_delta: float | None = None
left_ambiguity_azimuth_pixel class-attribute instance-attribute
Python
left_ambiguity_azimuth_pixel: ndarray | None = None
left_ambiguity_range_pixel class-attribute instance-attribute
Python
left_ambiguity_range_pixel: ndarray | None = None
right_ambiguity_azimuth_pixel class-attribute instance-attribute
Python
right_ambiguity_azimuth_pixel: ndarray | None = None
right_ambiguity_range_pixel class-attribute instance-attribute
Python
right_ambiguity_range_pixel: ndarray | None = None
ambiguity_ratio_db class-attribute instance-attribute
Python
ambiguity_ratio_db: float | None = None
target_image class-attribute instance-attribute
Python
target_image: ndarray | None = None
right_ambiguity_image class-attribute instance-attribute
Python
right_ambiguity_image: ndarray | None = None
left_ambiguity_image class-attribute instance-attribute
Python
left_ambiguity_image: ndarray | None = None

Methods:

__init__
Python
__init__(burst: int | None = None, roi_size_azimuth: int | None = None, roi_size_range: int | None = None, azimuth_time_delta: float | None = None, range_time_delta: float | None = None, left_ambiguity_azimuth_pixel: ndarray | None = None, left_ambiguity_range_pixel: ndarray | None = None, right_ambiguity_azimuth_pixel: ndarray | None = None, right_ambiguity_range_pixel: ndarray | None = None, ambiguity_ratio_db: float | None = None, target_image: ndarray | None = None, right_ambiguity_image: ndarray | None = None, left_ambiguity_image: ndarray | None = None) -> None

AmbiguityRatioTargetInfo dataclass

Bases: AmbiguityRatioCoreInfo

Output results for single Point Target Ambiguity Ratio Analysis

Attributes

target_name class-attribute instance-attribute
Python
target_name: str | None = None
target_nominal_coordinates class-attribute instance-attribute
Python
target_nominal_coordinates: ndarray | None = None
target_azimuth_pixel class-attribute instance-attribute
Python
target_azimuth_pixel: float | None = None
target_range_pixel class-attribute instance-attribute
Python
target_range_pixel: float | None = None
burst class-attribute instance-attribute
Python
burst: int | None = None
roi_size_azimuth class-attribute instance-attribute
Python
roi_size_azimuth: int | None = None
roi_size_range class-attribute instance-attribute
Python
roi_size_range: int | None = None
azimuth_time_delta class-attribute instance-attribute
Python
azimuth_time_delta: float | None = None
range_time_delta class-attribute instance-attribute
Python
range_time_delta: float | None = None
left_ambiguity_azimuth_pixel class-attribute instance-attribute
Python
left_ambiguity_azimuth_pixel: ndarray | None = None
left_ambiguity_range_pixel class-attribute instance-attribute
Python
left_ambiguity_range_pixel: ndarray | None = None
right_ambiguity_azimuth_pixel class-attribute instance-attribute
Python
right_ambiguity_azimuth_pixel: ndarray | None = None
right_ambiguity_range_pixel class-attribute instance-attribute
Python
right_ambiguity_range_pixel: ndarray | None = None
ambiguity_ratio_db class-attribute instance-attribute
Python
ambiguity_ratio_db: float | None = None
target_image class-attribute instance-attribute
Python
target_image: ndarray | None = None
right_ambiguity_image class-attribute instance-attribute
Python
right_ambiguity_image: ndarray | None = None
left_ambiguity_image class-attribute instance-attribute
Python
left_ambiguity_image: ndarray | None = None

Methods:

__init__
Python
__init__(burst: int | None = None, roi_size_azimuth: int | None = None, roi_size_range: int | None = None, azimuth_time_delta: float | None = None, range_time_delta: float | None = None, left_ambiguity_azimuth_pixel: ndarray | None = None, left_ambiguity_range_pixel: ndarray | None = None, right_ambiguity_azimuth_pixel: ndarray | None = None, right_ambiguity_range_pixel: ndarray | None = None, ambiguity_ratio_db: float | None = None, target_image: ndarray | None = None, right_ambiguity_image: ndarray | None = None, left_ambiguity_image: ndarray | None = None, target_name: str | None = None, target_nominal_coordinates: ndarray | None = None, target_azimuth_pixel: float | None = None, target_range_pixel: float | None = None) -> None

AmbiguityRatioROIInfo dataclass

Bases: AmbiguityRatioCoreInfo

Output results for single Distributed Target Ambiguity Ratio Analysis

Attributes

roi_name class-attribute instance-attribute
Python
roi_name: str | None = None
roi_center_ground_point_coordinates class-attribute instance-attribute
Python
roi_center_ground_point_coordinates: ndarray | None = None
roi_center_azimuth_pixel class-attribute instance-attribute
Python
roi_center_azimuth_pixel: float | None = None
roi_center_range_pixel class-attribute instance-attribute
Python
roi_center_range_pixel: float | None = None
burst class-attribute instance-attribute
Python
burst: int | None = None
roi_size_azimuth class-attribute instance-attribute
Python
roi_size_azimuth: int | None = None
roi_size_range class-attribute instance-attribute
Python
roi_size_range: int | None = None
azimuth_time_delta class-attribute instance-attribute
Python
azimuth_time_delta: float | None = None
range_time_delta class-attribute instance-attribute
Python
range_time_delta: float | None = None
left_ambiguity_azimuth_pixel class-attribute instance-attribute
Python
left_ambiguity_azimuth_pixel: ndarray | None = None
left_ambiguity_range_pixel class-attribute instance-attribute
Python
left_ambiguity_range_pixel: ndarray | None = None
right_ambiguity_azimuth_pixel class-attribute instance-attribute
Python
right_ambiguity_azimuth_pixel: ndarray | None = None
right_ambiguity_range_pixel class-attribute instance-attribute
Python
right_ambiguity_range_pixel: ndarray | None = None
ambiguity_ratio_db class-attribute instance-attribute
Python
ambiguity_ratio_db: float | None = None
target_image class-attribute instance-attribute
Python
target_image: ndarray | None = None
right_ambiguity_image class-attribute instance-attribute
Python
right_ambiguity_image: ndarray | None = None
left_ambiguity_image class-attribute instance-attribute
Python
left_ambiguity_image: ndarray | None = None

Methods:

__init__
Python
__init__(burst: int | None = None, roi_size_azimuth: int | None = None, roi_size_range: int | None = None, azimuth_time_delta: float | None = None, range_time_delta: float | None = None, left_ambiguity_azimuth_pixel: ndarray | None = None, left_ambiguity_range_pixel: ndarray | None = None, right_ambiguity_azimuth_pixel: ndarray | None = None, right_ambiguity_range_pixel: ndarray | None = None, ambiguity_ratio_db: float | None = None, target_image: ndarray | None = None, right_ambiguity_image: ndarray | None = None, left_ambiguity_image: ndarray | None = None, roi_name: str | None = None, roi_center_ground_point_coordinates: ndarray | None = None, roi_center_azimuth_pixel: float | None = None, roi_center_range_pixel: float | None = None) -> None

PointTargetAmbiguityRatioDataOutput dataclass

Storing data for Point Target Ambiguity Ratio Analysis graphs

Attributes

general_info class-attribute instance-attribute
Python
general_info: AmbiguityRatioProductGeneralInfo | None = None
targets_info class-attribute instance-attribute
Python
targets_info: list[AmbiguityRatioTargetInfo] | None = None

Methods:

__init__
Python
__init__(general_info: AmbiguityRatioProductGeneralInfo | None = None, targets_info: list[AmbiguityRatioTargetInfo] | None = None) -> None

DistributedTargetAmbiguityRatioDataOutput dataclass

Storing data for Distributed Target Ambiguity Ratio Analysis graphs

Attributes

general_info class-attribute instance-attribute
Python
general_info: AmbiguityRatioProductGeneralInfo | None = None
roi_info class-attribute instance-attribute
Python
roi_info: list[AmbiguityRatioROIInfo] | None = None

Methods:

__init__
Python
__init__(general_info: AmbiguityRatioProductGeneralInfo | None = None, roi_info: list[AmbiguityRatioROIInfo] | None = None) -> None