# Copyright 2023-2024 Amazon.com, Inc. or its affiliates.
"""This file was generated by xsdata, v23.8, on 2023-10-05 09:59:45
Generator: DataclassGenerator
See: https://xsdata.readthedocs.io/
"""
from dataclasses import dataclass, field
from enum import Enum
from typing import List, Optional, Union
from xsdata.models.datatype import XmlDate, XmlDateTime
from .external.ism.schema.cvegenerated.cvenum_ism25_x import CVEnumISM25X
from .external.ism.schema.cvegenerated.cvenum_ismclassification_all import CVEnumISMClassificationAll
from .external.ism.schema.cvegenerated.cvenum_ismcomplies_with import CVEnumISMCompliesWithValues
from .external.ism.schema.cvegenerated.cvenum_ismdissem import CVEnumISMDissemValuesvalue
from .external.ism.schema.cvegenerated.cvenum_ismfgiopen import CVEnumISMFGIOpenValues
from .external.ism.schema.cvegenerated.cvenum_ismfgiprotected import CVEnumISMFGIProtectedValues
from .external.ism.schema.cvegenerated.cvenum_ismnon_ic import CVEnumISMNonICValues
from .external.ism.schema.cvegenerated.cvenum_ismnon_uscontrols import CVEnumISMNonUSControlsValues
from .external.ism.schema.cvegenerated.cvenum_ismowner_producer import CVEnumISMOwnerProducerValues
from .external.ism.schema.cvegenerated.cvenum_ismrel_to import CVEnumISMRelToValues
from .external.ism.schema.cvegenerated.cvenum_ismscicontrols import CVEnumISMSCIControlsValuesvalue
from .external.ism.schema.cvegenerated.cvenum_ismsource_marked import CVEnumISMSourceMarked
from .sfa import (
LinearRingType,
LineType,
MultiLineStringType,
MultiPointType,
MultiPolygonType,
PointType,
PolygonType,
PolyhedralSurfaceType,
ReferenceSystemType,
)
from .sicommon_types import (
AngleMagnitudeType,
ErrorStatisticsType,
LatLonVertexType,
ParameterType,
PolarizationType,
Poly2DType,
RadarModeType,
RadiometricType,
RangeAzimuthType,
ReferencePointType,
RowColDoubleType,
RowColIntType,
XYZPolyType,
XYZType,
)
__NAMESPACE__ = "urn:SIDD:1.0.0"
[docs]
@dataclass
class AcheivedResolutionType:
"""
Finest achievable resolution parameters.
"""
[docs]
@dataclass
class ClassificationGuidanceType:
"""
Classification guidance authority (only if file is classified).
:ivar authority: Classifying authority.
:ivar date: Date that the authority was provided. Specified in YYYY-MM-DD.
"""
authority: Optional[str] = field(
default=None,
metadata={
"name": "Authority",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
date: Optional[XmlDate] = field(
default=None,
metadata={
"name": "Date",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
@dataclass
class DRAHistogramOverridesType:
"""
:ivar clip_min: Suggested override for the lower end-point of the display histogram in the ELT DRA
application. Referred to as Pmin in SIPS documentation.
:ivar clip_max: Suggested override for the upper end-point of the display histogram in the ELT DRA
application. Referred to as Pmax in SIPS documentation.
"""
clip_min: Optional[int] = field(
default=None,
metadata={
"name": "ClipMin",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
clip_max: Optional[int] = field(
default=None,
metadata={
"name": "ClipMax",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
class DecimationMethodType(Enum):
"""Default ELT decimation method for this data.
Also used as default for reduced resolution dataset generation (if applicable).
"""
NEAREST_NEIGHBOR = "NEAREST_NEIGHBOR"
BILINEAR = "BILINEAR"
BRIGHTEST_PIXEL = "BRIGHTEST_PIXEL"
LAGRANGE = "LAGRANGE"
[docs]
@dataclass
class Lookup3TableType:
"""
:ivar value:
:ivar size: Size of LUT
"""
value: List[str] = field(
default_factory=list,
metadata={
"pattern": r"([0-9]+),([0-9]+),([0-9]+)",
"tokens": True,
},
)
size: Optional[int] = field(
default=None,
metadata={
"type": "Attribute",
"required": True,
},
)
[docs]
@dataclass
class LookupTableType:
"""
:ivar value:
:ivar size: Size of LUT.
"""
value: List[int] = field(
default_factory=list,
metadata={
"tokens": True,
},
)
size: Optional[int] = field(
default=None,
metadata={
"type": "Attribute",
"required": True,
},
)
[docs]
class MagnificationMethodType(Enum):
"""
Default ELT magnification method for this data.
"""
NEAREST_NEIGHBOR = "NEAREST_NEIGHBOR"
BILINEAR = "BILINEAR"
LAGRANGE = "LAGRANGE"
[docs]
@dataclass
class MonitorCompensationAppliedType:
"""
Describes monitor compensation that may have been applied to the product during
processing.
:ivar gamma: Gamma value for monitor compensation pre-applied to the image.
:ivar xmin: Xmin value for monitor compensation pre-applied to the image.
"""
gamma: Optional[float] = field(
default=None,
metadata={
"name": "Gamma",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
xmin: Optional[float] = field(
default=None,
metadata={
"name": "XMin",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
class PixelType(Enum):
MONO8_I = "MONO8I"
MONO8_LU = "MONO8LU"
MONO16_I = "MONO16I"
RGB8_LU = "RGB8LU"
RGB24_I = "RGB24I"
[docs]
@dataclass
class AnnotationObjectType:
"""
Geometrical representation of the annotation.
"""
point: Optional[PointType] = field(
default=None,
metadata={
"name": "Point",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
line: Optional[LineType] = field(
default=None,
metadata={
"name": "Line",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
linear_ring: Optional[LinearRingType] = field(
default=None,
metadata={
"name": "LinearRing",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
polygon: Optional[PolygonType] = field(
default=None,
metadata={
"name": "Polygon",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
polyhedral_surface: Optional[PolyhedralSurfaceType] = field(
default=None,
metadata={
"name": "PolyhedralSurface",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
multi_polygon: Optional[MultiPolygonType] = field(
default=None,
metadata={
"name": "MultiPolygon",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
multi_line_string: Optional[MultiLineStringType] = field(
default=None,
metadata={
"name": "MultiLineString",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
multi_point: Optional[MultiPointType] = field(
default=None,
metadata={
"name": "MultiPoint",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class BaseProjectionType:
"""
:ivar reference_point: Reference point for the geometrical system.
"""
reference_point: Optional[ReferencePointType] = field(
default=None,
metadata={
"name": "ReferencePoint",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
@dataclass
class ColorDisplayRemapType:
"""
Object representing that the data requires color display.
:ivar remap_lut: LUT-base remap indicating that the color display is done through index-based color.
"""
remap_lut: Optional[Lookup3TableType] = field(
default=None,
metadata={
"name": "RemapLUT",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
@dataclass
class ExploitationFeaturesCollectionGeometryType:
"""
Key geometry parameters independent of product processing.
:ivar azimuth: Angle clockwise from north indicating the ETP line of sight vector.
:ivar slope: Angle between the ETP at scene center and the range vector perpendicular to the direction of
motion.
:ivar squint: Angle from the ground track to platform velocity vector at nadir. Left-look is negative, right-
look is positive.
:ivar graze: Angle between the ETP and the line of sight vector.
:ivar tilt: Angle between the ETP and the cross range vector. Also known as the twist angle.
:ivar extension: Exploitation feature extension related to geometry for a single input image
"""
azimuth: Optional[float] = field(
default=None,
metadata={
"name": "Azimuth",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
slope: Optional[float] = field(
default=None,
metadata={
"name": "Slope",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_inclusive": 0.0,
"max_inclusive": 90.0,
},
)
squint: Optional[float] = field(
default=None,
metadata={
"name": "Squint",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_inclusive": -180.0,
"max_inclusive": 180.0,
},
)
graze: Optional[float] = field(
default=None,
metadata={
"name": "Graze",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_inclusive": 0.0,
"max_inclusive": 90.0,
},
)
tilt: Optional[float] = field(
default=None,
metadata={
"name": "Tilt",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_inclusive": -180.0,
"max_inclusive": 180.0,
},
)
extension: List[ParameterType] = field(
default_factory=list,
metadata={
"name": "Extension",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class ExploitationFeaturesCollectionPhenomenologyType:
"""
Phenomenology related to both the geometry and the final product processing.
:ivar shadow: The phenomon where vertical objects occlude radar energy.
:ivar layover: The phenomenon where vertical objects appear as ground objects with the same range/range rate.
:ivar multi_path: This is a range dependent phenomenon which describes the energy from a single scatter
returned to the radar via more than one path and results in a nominally constant direction in the ETP.
:ivar ground_track: Counter-clockwise angle from increasing row direction to ground track at the center of
the image.
:ivar extension: Exploitation feature extension related to phenomenology for a single input image
"""
shadow: Optional[AngleMagnitudeType] = field(
default=None,
metadata={
"name": "Shadow",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
layover: Optional[AngleMagnitudeType] = field(
default=None,
metadata={
"name": "Layover",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
multi_path: Optional[float] = field(
default=None,
metadata={
"name": "MultiPath",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_inclusive": -180.0,
"max_inclusive": 180.0,
},
)
ground_track: Optional[float] = field(
default=None,
metadata={
"name": "GroundTrack",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_inclusive": -180.0,
"max_inclusive": 180.0,
},
)
extension: List[ParameterType] = field(
default_factory=list,
metadata={
"name": "Extension",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class ExploitationFeaturesProductType:
"""
Metadata regarding the product.
:ivar resolution: Uniformly-weighted resolution projected into the Earth Tangent Plane (ETP).
:ivar north: Counter-clockwise angle from increasing row direction to north at the center of the image.
:ivar extension: Exploitation feature extension for the end product
"""
resolution: Optional[RowColDoubleType] = field(
default=None,
metadata={
"name": "Resolution",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
north: Optional[float] = field(
default=None,
metadata={
"name": "North",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_inclusive": -180.0,
"max_inclusive": 180.0,
},
)
extension: List[ParameterType] = field(
default_factory=list,
metadata={
"name": "Extension",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class GeometricChipType:
"""
:ivar chip_size: Size of the chipped product in pixels.
:ivar original_upper_left_coordinate: Upper-left corner with respect to the original product.
:ivar original_upper_right_coordinate: Upper-right corner with respect to the original product.
:ivar original_lower_left_coordinate: Lower-left corner with respect to the original product.
:ivar original_lower_right_coordinate: Lower-right corner with respect to the original product.
"""
chip_size: Optional[RowColIntType] = field(
default=None,
metadata={
"name": "ChipSize",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
original_upper_left_coordinate: Optional[RowColDoubleType] = field(
default=None,
metadata={
"name": "OriginalUpperLeftCoordinate",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
original_upper_right_coordinate: Optional[RowColDoubleType] = field(
default=None,
metadata={
"name": "OriginalUpperRightCoordinate",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
original_lower_left_coordinate: Optional[RowColDoubleType] = field(
default=None,
metadata={
"name": "OriginalLowerLeftCoordinate",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
original_lower_right_coordinate: Optional[RowColDoubleType] = field(
default=None,
metadata={
"name": "OriginalLowerRightCoordinate",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
@dataclass
class MonochromeDisplayRemapType:
"""This remap works by taking the input space and using the LUT to map it to a
log space (for 8-bit only).
From the log space the C0 and Ch fields are applied to get to display-ready density space.
The density should then be rendered by the TTC and monitor comp.
This means that the default DRA should not apply anything besides the clip points.
If a different contrast/brightness is applied it should be done through modification of the clip points via DRA.
Examples:
Remap LUT Clips
=============================
PEDF PEDF->D 0,255
LLG LLG->A->LogA C0,Ch
Log N/A C0,Ch
NRL N/A 0,255 (Supposed to be display ready)
:ivar remap_type: Name of remap applied (for informational purposes only).
:ivar remap_lut: Lookup table for remap to log amplitude for display. Used during the "Product Generation
Option" portion of the SIPS display chain. Required for 8-bit data. Not to be used for 16-bit data.
:ivar remap_parameter: Textual remap parameter. Filled based upon remap type (for informational purposes
only). For example, if the data is linlog encoded a RemapParameter could be used to describe any
amplitude scaling that was performed prior to linlog encoding the data.
"""
remap_type: Optional[str] = field(
default=None,
metadata={
"name": "RemapType",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
remap_lut: Optional[LookupTableType] = field(
default=None,
metadata={
"name": "RemapLUT",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
remap_parameter: List[ParameterType] = field(
default_factory=list,
metadata={
"name": "RemapParameter",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class ProcessingEventType:
"""
:ivar application_name: Application which applied a modification.
:ivar applied_date_time: Date and time defined in Coordinated Universal Time (UTC). The seconds should be
followed by a Z to indicate UTC.
:ivar interpolation_method: Type of interpolation applied to the data.
:ivar descriptor: Descriptor for the processing event.
"""
application_name: Optional[str] = field(
default=None,
metadata={
"name": "ApplicationName",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
applied_date_time: Optional[XmlDateTime] = field(
default=None,
metadata={
"name": "AppliedDateTime",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
interpolation_method: Optional[str] = field(
default=None,
metadata={
"name": "InterpolationMethod",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
descriptor: List[ParameterType] = field(
default_factory=list,
metadata={
"name": "Descriptor",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class ProcessingModuleType:
"""
:ivar module_name: The name of the algorithm used in processing the product.
:ivar module_parameter: Parameters associated with the algorithm used in processing the product.
:ivar processing_module: ProcessingModule is a repeatable structure within itself to create an algorithm as a
subset of another algorithm.
"""
module_name: Optional[ParameterType] = field(
default=None,
metadata={
"name": "ModuleName",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
module_parameter: List[ParameterType] = field(
default_factory=list,
metadata={
"name": "ModuleParameter",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
processing_module: List["ProcessingModuleType"] = field(
default_factory=list,
metadata={
"name": "ProcessingModule",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class ProductClassificationType:
"""
The overall classification of the product.
:ivar security_extension: Extensible parameters used to support profile-specific needs related to product
security.
:ivar desversion: The version number of the DES. Should there be multiple specified in an instance document
the one at the root node is the one that will apply to the entire document.
:ivar resource_element:
:ivar create_date:
:ivar complies_with:
:ivar classification:
:ivar owner_producer:
:ivar scicontrols:
:ivar saridentifier:
:ivar dissemination_controls:
:ivar fgisource_open:
:ivar fgisource_protected:
:ivar releasable_to:
:ivar non_icmarkings:
:ivar classified_by:
:ivar compilation_reason:
:ivar derivatively_classified_by:
:ivar classification_reason:
:ivar non_uscontrols:
:ivar derived_from:
:ivar declass_date:
:ivar declass_event:
:ivar declass_exception:
:ivar type_of_exempted_source:
:ivar date_of_exempted_source:
"""
security_extension: List[ParameterType] = field(
default_factory=list,
metadata={
"name": "SecurityExtension",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
desversion: int = field(
init=False,
default=4,
metadata={
"name": "DESVersion",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"required": True,
},
)
resource_element: bool = field(
init=False,
default=True,
metadata={
"name": "resourceElement",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"required": True,
},
)
create_date: Optional[XmlDate] = field(
default=None,
metadata={
"name": "createDate",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"required": True,
},
)
complies_with: List[CVEnumISMCompliesWithValues] = field(
default_factory=list,
metadata={
"name": "compliesWith",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"tokens": True,
},
)
classification: Optional[CVEnumISMClassificationAll] = field(
default=None,
metadata={
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"required": True,
},
)
owner_producer: List[CVEnumISMOwnerProducerValues] = field(
default_factory=list,
metadata={
"name": "ownerProducer",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"required": True,
"tokens": True,
},
)
scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field(
default_factory=list,
metadata={
"name": "SCIcontrols",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"pattern": r"SI-G-[A-Z][A-Z][A-Z][A-Z]|SI-ECI-[A-Z][A-Z][A-Z]",
"tokens": True,
},
)
saridentifier: List[str] = field(
default_factory=list,
metadata={
"name": "SARIdentifier",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"pattern": r"SAR-[A-Z][A-Z][A-Z]?",
"tokens": True,
},
)
dissemination_controls: List[Union[str, CVEnumISMDissemValuesvalue]] = field(
default_factory=list,
metadata={
"name": "disseminationControls",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"pattern": r"RD-SG-[1-9][0-9]?|FRD-SG-[1-9][0-9]?",
"tokens": True,
},
)
fgisource_open: List[CVEnumISMFGIOpenValues] = field(
default_factory=list,
metadata={
"name": "FGIsourceOpen",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"tokens": True,
},
)
fgisource_protected: List[CVEnumISMFGIProtectedValues] = field(
default_factory=list,
metadata={
"name": "FGIsourceProtected",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"tokens": True,
},
)
releasable_to: List[CVEnumISMRelToValues] = field(
default_factory=list,
metadata={
"name": "releasableTo",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"tokens": True,
},
)
non_icmarkings: List[CVEnumISMNonICValues] = field(
default_factory=list,
metadata={
"name": "nonICmarkings",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"tokens": True,
},
)
classified_by: Optional[str] = field(
default=None,
metadata={
"name": "classifiedBy",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"max_length": 1024,
},
)
compilation_reason: Optional[str] = field(
default=None,
metadata={
"name": "compilationReason",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"max_length": 1024,
},
)
derivatively_classified_by: Optional[str] = field(
default=None,
metadata={
"name": "derivativelyClassifiedBy",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"max_length": 1024,
},
)
classification_reason: Optional[str] = field(
default=None,
metadata={
"name": "classificationReason",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"max_length": 4096,
},
)
non_uscontrols: List[CVEnumISMNonUSControlsValues] = field(
default_factory=list,
metadata={
"name": "nonUSControls",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"tokens": True,
},
)
derived_from: Optional[str] = field(
default=None,
metadata={
"name": "derivedFrom",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"max_length": 1024,
},
)
declass_date: Optional[XmlDate] = field(
default=None,
metadata={
"name": "declassDate",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
},
)
declass_event: Optional[str] = field(
default=None,
metadata={
"name": "declassEvent",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
"max_length": 1024,
},
)
declass_exception: Optional[CVEnumISM25X] = field(
default=None,
metadata={
"name": "declassException",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
},
)
type_of_exempted_source: Optional[CVEnumISMSourceMarked] = field(
default=None,
metadata={
"name": "typeOfExemptedSource",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
},
)
date_of_exempted_source: Optional[XmlDate] = field(
default=None,
metadata={
"name": "dateOfExemptedSource",
"type": "Attribute",
"namespace": "urn:us:gov:ic:ism",
},
)
[docs]
@dataclass
class ProductPlaneType:
"""
Plane definition for the product.
:ivar row_unit_vector: Unit vector of the plane defined to be aligned in the increasing row direction of the
product. (Defined as Rpgd in Design and Exploitation document)
:ivar col_unit_vector: Unit vector of the plane defined to be aligned in the increasing column direction of
the product. (Defined as Cpgd in Design and Exploitation document)
"""
row_unit_vector: Optional[XYZType] = field(
default=None,
metadata={
"name": "RowUnitVector",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
col_unit_vector: Optional[XYZType] = field(
default=None,
metadata={
"name": "ColUnitVector",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
@dataclass
class TxRcvPolarizationType:
"""
:ivar tx_polarization: Polarization transmit type
:ivar rcv_polarization: Receive polarization type
:ivar rcv_polarization_offset: Optional angle offset for the receive polarization defined at aperture center.
:ivar processed: Optional flag to describe whether this input polarization was used in processing the
product.
"""
tx_polarization: Optional[PolarizationType] = field(
default=None,
metadata={
"name": "TxPolarization",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
rcv_polarization: Optional[PolarizationType] = field(
default=None,
metadata={
"name": "RcvPolarization",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
rcv_polarization_offset: Optional[float] = field(
default=None,
metadata={
"name": "RcvPolarizationOffset",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_inclusive": -180.0,
"max_inclusive": 180.0,
},
)
processed: Optional[bool] = field(
default=None,
metadata={
"name": "Processed",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class AnnotationType:
"""
Single annotation.
:ivar identifier: Identifier for the annotation which idicates the type of object represented by this
annotation.
:ivar spatial_reference_system: Spatial reference system of the annotation. Assumed to be WGS-84 geographic
coordinate system if not specified with (lat, lon, h) units in (arc-sec, arc-sec, meters above
ellipsoid).
:ivar object_value: The geometrical representation of the annotation.
"""
identifier: Optional[str] = field(
default=None,
metadata={
"name": "Identifier",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
spatial_reference_system: Optional[ReferenceSystemType] = field(
default=None,
metadata={
"name": "SpatialReferenceSystem",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
object_value: List[AnnotationObjectType] = field(
default_factory=list,
metadata={
"name": "Object",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_occurs": 1,
},
)
[docs]
@dataclass
class DownstreamReprocessingType:
"""
:ivar geometric_chip: Contains information related to downstream chipping of the product.
:ivar processing_event: Contains information related to downstream processing of the product.
"""
geometric_chip: Optional[GeometricChipType] = field(
default=None,
metadata={
"name": "GeometricChip",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
processing_event: List[ProcessingEventType] = field(
default_factory=list,
metadata={
"name": "ProcessingEvent",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class GeographicCoverageType:
"""
:ivar georegion_identifier: Identifier for the georegion.
:ivar footprint: Estimated ground footprint of the product.
:ivar sub_region: Used to represent hierarchical decomposition into sub-regions.
:ivar geographic_info: Specifics about the georegion.
"""
georegion_identifier: List[ParameterType] = field(
default_factory=list,
metadata={
"name": "GeoregionIdentifier",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
footprint: Optional[FootprintType] = field(
default=None,
metadata={
"name": "Footprint",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
sub_region: List["GeographicCoverageType"] = field(
default_factory=list,
metadata={
"name": "SubRegion",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
geographic_info: Optional[GeographicInformationType] = field(
default=None,
metadata={
"name": "GeographicInfo",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class MeasurableProjectionType(BaseProjectionType):
"""
:ivar sample_spacing: Sample spacing in row and column.
:ivar time_coapoly: Time (units = seconds) at which center of aperture for a given pixel coordinate in the
product occurs.
"""
sample_spacing: Optional[RowColDoubleType] = field(
default=None,
metadata={
"name": "SampleSpacing",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
time_coapoly: Optional[Poly2DType] = field(
default=None,
metadata={
"name": "TimeCOAPoly",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
@dataclass
class PolynomialProjectionType(BaseProjectionType):
"""Polynomial pixel to ground.
Only used for sensor systems where the radar geometry parameters are not recorded.
:ivar row_col_to_lat: Polynomial that converts Row/Col to Latitude (degrees).
:ivar row_col_to_lon: Polynomial that converts Row/Col to Longitude (degrees).
:ivar row_col_to_alt: Polynomial that converts Row/Col to Altitude (meters above WGS-84 ellipsoid).
:ivar lat_lon_to_row: Polynomial that converts Latitude (degrees) and Longitude (degrees) to pixel row
location.
:ivar lat_lon_to_col: Polynomial that converts Latitude (degrees) and Longitude (degrees) to pixel column
location
"""
row_col_to_lat: Optional[Poly2DType] = field(
default=None,
metadata={
"name": "RowColToLat",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
row_col_to_lon: Optional[Poly2DType] = field(
default=None,
metadata={
"name": "RowColToLon",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
row_col_to_alt: Optional[Poly2DType] = field(
default=None,
metadata={
"name": "RowColToAlt",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
lat_lon_to_row: Optional[Poly2DType] = field(
default=None,
metadata={
"name": "LatLonToRow",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
lat_lon_to_col: Optional[Poly2DType] = field(
default=None,
metadata={
"name": "LatLonToCol",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
@dataclass
class ProductCreationType:
"""
Contains general information about product creation.
:ivar processor_information: Details regarding processor.
:ivar classification: The overall classification of the product.
:ivar product_name: The output product name defined by the processor.
:ivar product_class: Class of product. (examples: Dynamic Image, Amplitude Change Detection, Coherent Change
Detection, etc.).
:ivar product_type: Type of sub-product. (examples: Frame #, Reference, Match, etc.). This field is only
needed if there is a suite of associated products.
:ivar product_creation_extension: Extensible parameters used to support profile-specific needs related to
product creation.
"""
processor_information: Optional[ProcessorInformationType] = field(
default=None,
metadata={
"name": "ProcessorInformation",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
classification: Optional[ProductClassificationType] = field(
default=None,
metadata={
"name": "Classification",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
product_name: Optional[str] = field(
default=None,
metadata={
"name": "ProductName",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
product_class: Optional[str] = field(
default=None,
metadata={
"name": "ProductClass",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
product_type: Optional[str] = field(
default=None,
metadata={
"name": "ProductType",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
product_creation_extension: List[ParameterType] = field(
default_factory=list,
metadata={
"name": "ProductCreationExtension",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class ProductProcessingType:
"""
:ivar processing_module: Processing module to keep track of the name and any parameters associated with the
algorithms used to produce the SIDD.
"""
processing_module: List[ProcessingModuleType] = field(
default_factory=list,
metadata={
"name": "ProcessingModule",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_occurs": 1,
},
)
[docs]
@dataclass
class RemapChoiceType:
"""
:ivar color_display_remap: Information for proper color display of the data.
:ivar monochrome_display_remap: Information for proper monochrome display of the data.
"""
color_display_remap: Optional[ColorDisplayRemapType] = field(
default=None,
metadata={
"name": "ColorDisplayRemap",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
monochrome_display_remap: Optional[MonochromeDisplayRemapType] = field(
default=None,
metadata={
"name": "MonochromeDisplayRemap",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class AnnotationsType:
"""
:ivar annotation: Annotation Object.
"""
annotation: List[AnnotationType] = field(
default_factory=list,
metadata={
"name": "Annotation",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_occurs": 1,
},
)
[docs]
@dataclass
class CylindricalProjectionType(MeasurableProjectionType):
"""
Cylindrical mapping of the pixel grid.
:ivar stripmap_direction: Along stripmap direction
:ivar curvature_radius: Radius of Curvature defined at scene center. If not present, the radius of curvature
will be derived based upon the equations provided in the Design and Exploitation Document
"""
stripmap_direction: Optional[XYZType] = field(
default=None,
metadata={
"name": "StripmapDirection",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
curvature_radius: Optional[float] = field(
default=None,
metadata={
"name": "CurvatureRadius",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class ExploitationFeaturesCollectionType:
"""
:ivar information: General collection information.
:ivar geometry: Key geometry parameters independent of product processing.
:ivar phenomenology: Phenomenology related to both the geometry and the final product processing.
"""
information: Optional[ExploitationFeaturesCollectionInformationType] = field(
default=None,
metadata={
"name": "Information",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
geometry: Optional[ExploitationFeaturesCollectionGeometryType] = field(
default=None,
metadata={
"name": "Geometry",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
phenomenology: Optional[ExploitationFeaturesCollectionPhenomenologyType] = field(
default=None,
metadata={
"name": "Phenomenology",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class GeographicAndTargetType:
"""
:ivar geographic_coverage: Provides geographic coverage information.
:ivar target_information: Provides target specific geographic information.
"""
geographic_coverage: Optional[GeographicCoverageType] = field(
default=None,
metadata={
"name": "GeographicCoverage",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
target_information: List[TargetInformationType] = field(
default_factory=list,
metadata={
"name": "TargetInformation",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class GeographicProjectionType(MeasurableProjectionType):
"""
Geographic mapping of the pixel grid.
"""
[docs]
@dataclass
class PlaneProjectionType(MeasurableProjectionType):
"""
Planar representation of the pixel grid.
:ivar product_plane: Plane definition for the product.
"""
product_plane: Optional[ProductPlaneType] = field(
default=None,
metadata={
"name": "ProductPlane",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
@dataclass
class ProductDisplayType:
"""
Type for describing proper display of the derived product.
:ivar pixel_type: Defines the pixel type, based on enumeration and definition in Design and Exploitation
document.
:ivar remap_information: Information regarding the encoding of the pixel data. Used for 8-bit pixel types.
:ivar magnification_method: Recommended ELT magnification method for this data.
:ivar decimation_method: Recommended ELT decimation method for this data. Also used as default for reduced
resolution dataset generation (if applicable).
:ivar drahistogram_overrides: Recommended ELT DRA overrides.
:ivar monitor_compensation_applied: Describes monitor compensation that may have been applied to the product
during processing.
:ivar display_extension: Extensible parameters used to support profile-specific needs related to product
display.
"""
pixel_type: Optional[PixelType] = field(
default=None,
metadata={
"name": "PixelType",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
remap_information: Optional[RemapChoiceType] = field(
default=None,
metadata={
"name": "RemapInformation",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
magnification_method: Optional[MagnificationMethodType] = field(
default=None,
metadata={
"name": "MagnificationMethod",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
decimation_method: Optional[DecimationMethodType] = field(
default=None,
metadata={
"name": "DecimationMethod",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
drahistogram_overrides: Optional[DRAHistogramOverridesType] = field(
default=None,
metadata={
"name": "DRAHistogramOverrides",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
monitor_compensation_applied: Optional[MonitorCompensationAppliedType] = field(
default=None,
metadata={
"name": "MonitorCompensationApplied",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
display_extension: List[ParameterType] = field(
default_factory=list,
metadata={
"name": "DisplayExtension",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
[docs]
@dataclass
class ExploitationFeaturesType:
"""
Computed metadata regarding the collect.
:ivar collection: Metadata regarding one of the input collections.
:ivar product: Metadata regarding the product.
"""
collection: List["ExploitationFeaturesType.Collection"] = field(
default_factory=list,
metadata={
"name": "Collection",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"min_occurs": 1,
},
)
product: Optional[ExploitationFeaturesProductType] = field(
default=None,
metadata={
"name": "Product",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
@dataclass
class Collection(ExploitationFeaturesCollectionType):
identifier: Optional[str] = field(
default=None,
metadata={
"type": "Attribute",
"required": True,
},
)
[docs]
@dataclass
class MeasurementType:
"""
Geometric SAR information required for measurement/geolocation.
:ivar polynomial_projection: Polynomial pixel to ground. Only used for sensor systems where the radar
geometry parameters are not recorded.
:ivar geographic_projection: Geographic mapping of the pixel grid referred to as GGD in the Design and
Exploitation document.
:ivar plane_projection: Planar representation of the pixel grid referred to as PGD in the Design and
Exploitation document.
:ivar cylindrical_projection: Cylindrical mapping of the pixel grid referred to as CGD in the Design and
Exploitation document.
:ivar pixel_footprint: Size of the image.
:ivar arppoly: Center of aperture polynomial (units = m) based upon time into the collect.
"""
polynomial_projection: Optional[PolynomialProjectionType] = field(
default=None,
metadata={
"name": "PolynomialProjection",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
geographic_projection: Optional[GeographicProjectionType] = field(
default=None,
metadata={
"name": "GeographicProjection",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
plane_projection: Optional[PlaneProjectionType] = field(
default=None,
metadata={
"name": "PlaneProjection",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
cylindrical_projection: Optional[CylindricalProjectionType] = field(
default=None,
metadata={
"name": "CylindricalProjection",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
},
)
pixel_footprint: Optional[RowColIntType] = field(
default=None,
metadata={
"name": "PixelFootprint",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
arppoly: Optional[XYZPolyType] = field(
default=None,
metadata={
"name": "ARPPoly",
"type": "Element",
"namespace": "urn:SIDD:1.0.0",
"required": True,
},
)
[docs]
@dataclass
class SIDD:
"""
Root element of the SIDD document.
:ivar product_creation: Information related to processor, classification, and product type.
:ivar display: Contains information on the parameters needed to display the product in an exploitation tool.
:ivar geographic_and_target: Contains generic and extensible targeting and geographic region information.
:ivar measurement: Contains the metadata necessary for performing measurements.
:ivar exploitation_features: Computed metadata regarding the input collections and final product.
:ivar product_processing: Contains metadata related to algorithms used during product generation.
:ivar downstream_reprocessing: Contains metadata related to downstream processing of the product.
:ivar error_statistics: See SICD documentation for metadata definitions.
:ivar radiometric: Radiometric information about the product.
:ivar annotations: List of annotations for the imagery.
"""
product_creation: Optional[ProductCreationType] = field(
default=None,
metadata={
"name": "ProductCreation",
"type": "Element",
"required": True,
},
)
display: Optional[ProductDisplayType] = field(
default=None,
metadata={
"name": "Display",
"type": "Element",
"required": True,
},
)
geographic_and_target: Optional[GeographicAndTargetType] = field(
default=None,
metadata={
"name": "GeographicAndTarget",
"type": "Element",
"required": True,
},
)
measurement: Optional[MeasurementType] = field(
default=None,
metadata={
"name": "Measurement",
"type": "Element",
"required": True,
},
)
exploitation_features: Optional[ExploitationFeaturesType] = field(
default=None,
metadata={
"name": "ExploitationFeatures",
"type": "Element",
"required": True,
},
)
product_processing: Optional[ProductProcessingType] = field(
default=None,
metadata={
"name": "ProductProcessing",
"type": "Element",
},
)
downstream_reprocessing: Optional[DownstreamReprocessingType] = field(
default=None,
metadata={
"name": "DownstreamReprocessing",
"type": "Element",
},
)
error_statistics: Optional[ErrorStatisticsType] = field(
default=None,
metadata={
"name": "ErrorStatistics",
"type": "Element",
},
)
radiometric: Optional[RadiometricType] = field(
default=None,
metadata={
"name": "Radiometric",
"type": "Element",
},
)
annotations: Optional[AnnotationsType] = field(
default=None,
metadata={
"name": "Annotations",
"type": "Element",
},
)