diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index ee1e4e9..2da2e33 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -24,7 +24,7 @@ repos:
rev: 6.0.0
hooks:
- id: flake8
- args: ["--ignore=E203,W503,W605", "--max-line-length=125"]
+ args: ["--ignore=E203,W503,W605", "--max-line-length=160", "--extend-exclude=src/aws/osml/formats"]
types: [file, python]
- repo: https://github.com/pre-commit/mirrors-autopep8
diff --git a/schemas/sidd.xsdata.xml b/schemas/sidd.xsdata.xml
new file mode 100644
index 0000000..5e774ef
--- /dev/null
+++ b/schemas/sidd.xsdata.xml
@@ -0,0 +1,56 @@
+
+
+ <xsd:schema xmlns="...my namespace name..." targetNamespace="...my
+ namespace name..." xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:ism="urn:us:gov:ic:ism"> ... <xsd:import
+ namespace="urn:us:gov:ic:ism schemaLocation="IC-ISM.xsd" />
+ Version
+ Version
+
The actual text of a notice.
+ """ + + class Meta: + namespace = "urn:us:gov:ic:ism:13" + + poc_type: List[CVEnumISMPocTypeValues] = field( + default_factory=list, + metadata={ + "name": "pocType", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + + +@dataclass +class NoticeBaseType: + """Base type for Notices. + + Does not include any attributes.
+ """ + + notice_text: List[NoticeText] = field( + default_factory=list, + metadata={ + "name": "NoticeText", + "type": "Element", + "namespace": "urn:us:gov:ic:ism:13", + "min_occurs": 1, + }, + ) + + +@dataclass +class NoticeExternalType(NoticeBaseType): + """ +A single Notice that may consist of 1 or more NoticeText + for use when the notice refers to something external.
+ """ + + notice_type: List[CVEnumISMNoticeValues] = field( + default_factory=list, + metadata={ + "name": "noticeType", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + notice_reason: Optional[str] = field( + default=None, + metadata={ + "name": "noticeReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 2048, + }, + ) + notice_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "noticeDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + unregistered_notice_type: Optional[str] = field( + default=None, + metadata={ + "name": "unregisteredNoticeType", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 2048, + }, + ) + external_notice: bool = field( + init=False, + default=True, + metadata={ + "name": "externalNotice", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + }, + ) + classification: Optional[CVEnumISMClassificationAll] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "ownerProducer", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + joint: Optional[bool] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "SCIcontrols", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}", + "tokens": True, + }, + ) + saridentifier: List[str] = field( + default_factory=list, + metadata={ + "name": "SARIdentifier", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}", + "tokens": True, + }, + ) + atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "atomicEnergyMarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))", + "tokens": True, + }, + ) + dissemination_controls: List[CVEnumISMDissemValues] = field( + default_factory=list, + metadata={ + "name": "disseminationControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "displayOnlyTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceOpen", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceProtected", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "releasableTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "nonICmarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI", + "tokens": True, + }, + ) + classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "classifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + compilation_reason: Optional[str] = field( + default=None, + metadata={ + "name": "compilationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + derivatively_classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "derivativelyClassifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + classification_reason: Optional[str] = field( + default=None, + metadata={ + "name": "classificationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 4096, + }, + ) + non_uscontrols: List[CVEnumISMNonUSControlsValues] = field( + default_factory=list, + metadata={ + "name": "nonUSControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + derived_from: Optional[str] = field( + default=None, + metadata={ + "name": "derivedFrom", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "declassDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + declass_event: Optional[str] = field( + default=None, + metadata={ + "name": "declassEvent", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_exception: Optional[CVEnumISM25X] = field( + default=None, + metadata={ + "name": "declassException", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + + +@dataclass +class NoticeType(NoticeBaseType): + """ +A single Notice that may consist of 1 or more + NoticeText
+ """ + + notice_type: List[CVEnumISMNoticeValues] = field( + default_factory=list, + metadata={ + "name": "noticeType", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + notice_reason: Optional[str] = field( + default=None, + metadata={ + "name": "noticeReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 2048, + }, + ) + notice_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "noticeDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + unregistered_notice_type: Optional[str] = field( + default=None, + metadata={ + "name": "unregisteredNoticeType", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 2048, + }, + ) + external_notice: Optional[bool] = field( + default=None, + metadata={ + "name": "externalNotice", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + classification: Optional[CVEnumISMClassificationAll] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "ownerProducer", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + joint: Optional[bool] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "SCIcontrols", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}", + "tokens": True, + }, + ) + saridentifier: List[str] = field( + default_factory=list, + metadata={ + "name": "SARIdentifier", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}", + "tokens": True, + }, + ) + atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "atomicEnergyMarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))", + "tokens": True, + }, + ) + dissemination_controls: List[CVEnumISMDissemValues] = field( + default_factory=list, + metadata={ + "name": "disseminationControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "displayOnlyTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceOpen", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceProtected", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "releasableTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "nonICmarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI", + "tokens": True, + }, + ) + classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "classifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + compilation_reason: Optional[str] = field( + default=None, + metadata={ + "name": "compilationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + derivatively_classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "derivativelyClassifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + classification_reason: Optional[str] = field( + default=None, + metadata={ + "name": "classificationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 4096, + }, + ) + non_uscontrols: List[CVEnumISMNonUSControlsValues] = field( + default_factory=list, + metadata={ + "name": "nonUSControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + derived_from: Optional[str] = field( + default=None, + metadata={ + "name": "derivedFrom", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "declassDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + declass_event: Optional[str] = field( + default=None, + metadata={ + "name": "declassEvent", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_exception: Optional[CVEnumISM25X] = field( + default=None, + metadata={ + "name": "declassException", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + + +@dataclass +class Notice(NoticeType): + """ +A single Notice that may consist of 1 or more + NoticeText
+ """ + + class Meta: + namespace = "urn:us:gov:ic:ism:13" + + +@dataclass +class NoticeExternal(NoticeExternalType): + """ +A single Notice that may consist of 1 or more NoticeText + for use when the notice refers to something external.
+ """ + + class Meta: + namespace = "urn:us:gov:ic:ism:13" + + +@dataclass +class NoticeExternalListType: + """ +A list of Notices
+ """ + + notice_external: List[NoticeExternal] = field( + default_factory=list, + metadata={ + "name": "NoticeExternal", + "type": "Element", + "namespace": "urn:us:gov:ic:ism:13", + "min_occurs": 1, + }, + ) + classification: Optional[CVEnumISMClassificationAll] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + }, + ) + owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "ownerProducer", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + joint: Optional[bool] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "SCIcontrols", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}", + "tokens": True, + }, + ) + saridentifier: List[str] = field( + default_factory=list, + metadata={ + "name": "SARIdentifier", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}", + "tokens": True, + }, + ) + atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "atomicEnergyMarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))", + "tokens": True, + }, + ) + dissemination_controls: List[CVEnumISMDissemValues] = field( + default_factory=list, + metadata={ + "name": "disseminationControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "displayOnlyTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceOpen", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceProtected", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "releasableTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "nonICmarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI", + "tokens": True, + }, + ) + classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "classifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + compilation_reason: Optional[str] = field( + default=None, + metadata={ + "name": "compilationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + derivatively_classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "derivativelyClassifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + classification_reason: Optional[str] = field( + default=None, + metadata={ + "name": "classificationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 4096, + }, + ) + non_uscontrols: List[CVEnumISMNonUSControlsValues] = field( + default_factory=list, + metadata={ + "name": "nonUSControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + derived_from: Optional[str] = field( + default=None, + metadata={ + "name": "derivedFrom", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "declassDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + declass_event: Optional[str] = field( + default=None, + metadata={ + "name": "declassEvent", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_exception: Optional[CVEnumISM25X] = field( + default=None, + metadata={ + "name": "declassException", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + + +@dataclass +class NoticeListType: + """ +A list of Notices
+ """ + + notice: List[Notice] = field( + default_factory=list, + metadata={ + "name": "Notice", + "type": "Element", + "namespace": "urn:us:gov:ic:ism:13", + "min_occurs": 1, + }, + ) + classification: Optional[CVEnumISMClassificationAll] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + }, + ) + owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "ownerProducer", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + joint: Optional[bool] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "SCIcontrols", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}", + "tokens": True, + }, + ) + saridentifier: List[str] = field( + default_factory=list, + metadata={ + "name": "SARIdentifier", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}", + "tokens": True, + }, + ) + atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "atomicEnergyMarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))", + "tokens": True, + }, + ) + dissemination_controls: List[CVEnumISMDissemValues] = field( + default_factory=list, + metadata={ + "name": "disseminationControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "displayOnlyTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceOpen", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceProtected", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "releasableTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "nonICmarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI", + "tokens": True, + }, + ) + classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "classifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + compilation_reason: Optional[str] = field( + default=None, + metadata={ + "name": "compilationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + derivatively_classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "derivativelyClassifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + classification_reason: Optional[str] = field( + default=None, + metadata={ + "name": "classificationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 4096, + }, + ) + non_uscontrols: List[CVEnumISMNonUSControlsValues] = field( + default_factory=list, + metadata={ + "name": "nonUSControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + derived_from: Optional[str] = field( + default=None, + metadata={ + "name": "derivedFrom", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "declassDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + declass_event: Optional[str] = field( + default=None, + metadata={ + "name": "declassEvent", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_exception: Optional[CVEnumISM25X] = field( + default=None, + metadata={ + "name": "declassException", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + + +@dataclass +class NoticeExternalList(NoticeExternalListType): + class Meta: + namespace = "urn:us:gov:ic:ism:13" + + +@dataclass +class NoticeList(NoticeListType): + class Meta: + namespace = "urn:us:gov:ic:ism:13" diff --git a/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/__init__.py b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/__init__.py new file mode 100644 index 0000000..63a499c --- /dev/null +++ b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/__init__.py @@ -0,0 +1,6 @@ +"""This file was generated by xsdata, v23.8, on 2023-10-05 09:58:35 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +# nothing here diff --git a/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/__init__.py b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/__init__.py new file mode 100644 index 0000000..493cab8 --- /dev/null +++ b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/__init__.py @@ -0,0 +1,16 @@ +"""This file was generated by xsdata, v23.8, on 2023-10-05 09:59:45 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from .cvenum_ismcatfgiopen import CVEnumISMCATFGIOpenValuesvalue +from .cvenum_ismcatfgiprotected import CVEnumISMCATFGIProtectedValuesvalue +from .cvenum_ismcatowner_producer import CVEnumISMCATOwnerProducerValuesvalue +from .cvenum_ismcatrel_to import CVEnumISMCATRelToValuesvalue + +__all__ = [ + "CVEnumISMCATFGIOpenValuesvalue", + "CVEnumISMCATFGIProtectedValuesvalue", + "CVEnumISMCATOwnerProducerValuesvalue", + "CVEnumISMCATRelToValuesvalue", +] diff --git a/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatfgiopen.py b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatfgiopen.py new file mode 100644 index 0000000..6a51a93 --- /dev/null +++ b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatfgiopen.py @@ -0,0 +1,620 @@ +"""This file was generated by xsdata, v23.8, on 2023-10-05 09:59:45 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from enum import Enum + +__NAMESPACE__ = "urn:us:gov:ic:cvenum:ismcat:fgiopen" + + +class CVEnumISMCATFGIOpenValuesvalue(Enum): + """ + :cvar ABW: Aruba + :cvar AFG: Islamic Republic of Afghanistan + :cvar AGO: Republic of Angola + :cvar AIA: Anguilla + :cvar ALB: Republic of Albania + :cvar AND: Principality of Andorra + :cvar ARE: United Arab Emirates + :cvar ARG: Argentine Republic + :cvar ARM: Republic of Armenia + :cvar ASM: Territory of American Samoa + :cvar ATA: Antarctica + :cvar ATF: French Southern and Antarctic Lands + :cvar ATG: Antigua and Barbuda + :cvar AUS: Commonwealth of Australia + :cvar AUT: Republic of Austria + :cvar AX1: Unknown + :cvar AX2: Guantanamo Bay Naval Base + :cvar AZE: Republic of Azerbaijan + :cvar BDI: Republic of Burundi + :cvar BEL: Kingdom of Belgium + :cvar BEN: Republic of Benin + :cvar BES: Bonaire, Sint Eustatius, and Saba + :cvar BFA: Burkina Faso + :cvar BGD: People's Republic of Bangladesh + :cvar BGR: Republic of Bulgaria + :cvar BHR: Kingdom of Bahrain + :cvar BHS: Commonwealth of The Bahamas + :cvar BIH: Bosnia and Herzegovina + :cvar BLM: Saint Barthelemy + :cvar BLR: Republic of Belarus + :cvar BLZ: Belize + :cvar BMU: Bermuda + :cvar BOL: Plurinational State of Bolivia + :cvar BRA: Federative Republic of Brazil + :cvar BRB: Barbados + :cvar BRN: Brunei Darussalam + :cvar BTN: Kingdom of Bhutan + :cvar BVT: Bouvet Island + :cvar BWA: Republic of Botswana + :cvar CAF: Central African Republic + :cvar CAN: Canada + :cvar CCK: Territory of Cocos (Keeling) Islands + :cvar CHE: Swiss Confederation + :cvar CHL: Republic of Chile + :cvar CHN: People's Republic of China + :cvar CIV: Republic of CƓte d'Ivoire + :cvar CMR: Republic of Cameroon + :cvar COD: Democratic Republic of the Congo + :cvar COG: Republic of the Congo + :cvar COK: Cook Islands + :cvar COL: Republic of Colombia + :cvar COM: Union of the Comoros + :cvar CPT: Clipperton Island + :cvar CPV: Republic of Cape Verde + :cvar CRI: Republic of Costa Rica + :cvar CUB: Republic of Cuba + :cvar CUW: CuraƧao + :cvar CXR: Territory of Christmas Island + :cvar CYM: Cayman Islands + :cvar CYP: Republic of Cyprus + :cvar CZE: Czech Republic + :cvar DEU: Federal Republic of Germany + :cvar DGA: Diego Garcia + :cvar DJI: Republic of Djibouti + :cvar DMA: Commonwealth of Dominica + :cvar DNK: Kingdom of Denmark + :cvar DOM: Dominican Republic + :cvar DZA: People's Democratic Republic of Algeria + :cvar ECU: Republic of Ecuador + :cvar EGY: Arab Republic of Egypt + :cvar ERI: State of Eritrea + :cvar ESH: Western Sahara + :cvar ESP: Kingdom of Spain + :cvar EST: Republic of Estonia + :cvar ETH: Federal Democratic Republic of Ethiopia + :cvar FIN: Republic of Finland + :cvar FJI: Republic of Fiji + :cvar FLK: Falkland Islands (Islas Malvinas) + :cvar FRA: French Republic + :cvar FRO: Faroe Islands + :cvar FSM: Federated States of Micronesia + :cvar GAB: Gabonese Republic + :cvar GBR: United Kingdom of Great Britain and Northern Ireland + :cvar GEO: Georgia + :cvar GGY: Bailiwick of Guernsey + :cvar GHA: Republic of Ghana + :cvar GIB: Gibraltar + :cvar GIN: Republic of Guinea + :cvar GLP: Department of Guadeloupe + :cvar GMB: Republic of The Gambia + :cvar GNB: Republic of Guinea-Bissau + :cvar GNQ: Republic of Equatorial Guinea + :cvar GRC: Hellenic Republic + :cvar GRD: Grenada + :cvar GRL: Greenland + :cvar GTM: Republic of Guatemala + :cvar GUF: Department of Guiana + :cvar GUM: Territory of Guam + :cvar GUY: Co-operative Republic of Guyana + :cvar HKG: Hong Kong Special Administrative Region + :cvar HMD: Territory of Heard Island and McDonald Islands + :cvar HND: Republic of Honduras + :cvar HRV: Republic of Croatia + :cvar HTI: Republic of Haiti + :cvar HUN: Hungary + :cvar IDN: Republic of Indonesia + :cvar IMN: Isle of Man + :cvar IND: Republic of India + :cvar IOT: British Indian Ocean Territory + :cvar IRL: Ireland + :cvar IRN: Islamic Republic of Iran + :cvar IRQ: Republic of Iraq + :cvar ISL: Republic of Iceland + :cvar ISR: State of Israel + :cvar ITA: Italian Republic + :cvar JAM: Jamaica + :cvar JEY: Bailiwick of Jersey + :cvar JOR: Hashemite Kingdom of Jordan + :cvar JPN: Japan + :cvar KAZ: Republic of Kazakhstan + :cvar KEN: Republic of Kenya + :cvar KGZ: Kyrgyz Republic + :cvar KHM: Kingdom of Cambodia + :cvar KIR: Republic of Kiribati + :cvar KNA: Federation of Saint Kitts and Nevis + :cvar KOR: Republic of Korea + :cvar KWT: State of Kuwait + :cvar LAO: Lao People's Democratic Republic + :cvar LBN: Lebanese Republic + :cvar LBR: Republic of Liberia + :cvar LBY: Libya + :cvar LCA: Saint Lucia + :cvar LIE: Principality of Liechtenstein + :cvar LKA: Democratic Socialist Republic of Sri Lanka + :cvar LSO: Kingdom of Lesotho + :cvar LTU: Republic of Lithuania + :cvar LUX: Grand Duchy of Luxembourg + :cvar LVA: Republic of Latvia + :cvar MAC: Macau Special Administrative Region + :cvar MAF: Saint Martin + :cvar MAR: Kingdom of Morocco + :cvar MCO: Principality of Monaco + :cvar MDA: Republic of Moldova + :cvar MDG: Republic of Madagascar + :cvar MDV: Republic of Maldives + :cvar MEX: United Mexican States + :cvar MHL: Republic of the Marshall Islands + :cvar MKD: Republic of Macedonia + :cvar MLI: Republic of Mali + :cvar MLT: Republic of Malta + :cvar MMR: Union of Burma + :cvar MNE: Montenegro + :cvar MNG: Mongolia + :cvar MNP: Commonwealth of the Northern Mariana Islands + :cvar MOZ: Republic of Mozambique + :cvar MRT: Islamic Republic of Mauritania + :cvar MSR: Montserrat + :cvar MTQ: Department of Martinique + :cvar MUS: Republic of Mauritius + :cvar MWI: Republic of Malawi + :cvar MYS: Malaysia + :cvar MYT: Department of Mayotte + :cvar NAM: Republic of Namibia + :cvar NCL: New Caledonia + :cvar NER: Republic of the Niger + :cvar NFK: Territory of Norfolk Island + :cvar NGA: Federal Republic of Nigeria + :cvar NIC: Republic of Nicaragua + :cvar NIU: Niue + :cvar NLD: Kingdom of the Netherlands + :cvar NOR: Kingdom of Norway + :cvar NPL: Federal Democratic Republic of Nepal + :cvar NRU: Republic of Nauru + :cvar NZL: New Zealand + :cvar OMN: Sultanate of Oman + :cvar PAK: Islamic Republic of Pakistan + :cvar PAN: Republic of Panama + :cvar PCN: Pitcairn, Henderson, Ducie, and Oeno Islands + :cvar PER: Republic of Peru + :cvar PHL: Republic of the Philippines + :cvar PLW: Republic of Palau + :cvar PNG: Independent State of Papua New Guinea + :cvar POL: Republic of Poland + :cvar PRI: Commonwealth of Puerto Rico + :cvar PRK: Democratic People's Republic of Korea + :cvar PRT: Portuguese Republic + :cvar PRY: Republic of Paraguay + :cvar PSE: Palestinian Territory + :cvar PYF: French Polynesia + :cvar QAT: State of Qatar + :cvar REU: Department of Reunion + :cvar ROU: Romania + :cvar RUS: Russian Federation + :cvar RWA: Republic of Rwanda + :cvar SAU: Kingdom of Saudi Arabia + :cvar SDN: Republic of the Sudan + :cvar SEN: Republic of Senegal + :cvar SGP: Republic of Singapore + :cvar SGS: South Georgia and South Sandwich Islands + :cvar SHN: Saint Helena, Ascension, and Tristan da Cunha + :cvar SLB: Solomon Islands + :cvar SLE: Republic of Sierra Leone + :cvar SLV: Republic of El Salvador + :cvar SMR: Republic of San Marino + :cvar SOM: Somalia, Federal Republic of + :cvar SPM: Territorial Collectivity of Saint Pierre and Miquelon + :cvar SRB: Republic of Serbia + :cvar SSD: Republic of South Sudan + :cvar STP: Democratic Republic of Sao Tome and Principe + :cvar SUR: Republic of Suriname + :cvar SVK: Slovak Republic + :cvar SVN: Republic of Slovenia + :cvar SWE: Kingdom of Sweden + :cvar SWZ: Kingdom of Swaziland + :cvar SXM: Sint Maarten + :cvar SYC: Republic of Seychelles + :cvar SYR: Syrian Arab Republic + :cvar TCA: Turks and Caicos Islands + :cvar TCD: Republic of Chad + :cvar TGO: Togolese Republic + :cvar THA: Kingdom of Thailand + :cvar TJK: Republic of Tajikistan + :cvar TKL: Tokelau + :cvar TKM: Turkmenistan + :cvar TLS: Democratic Republic of Timor-Leste + :cvar TON: Kingdom of Tonga + :cvar TTO: Republic of Trinidad and Tobago + :cvar TUN: Tunisian Republic + :cvar TUR: Republic of Turkey + :cvar TUV: Tuvalu + :cvar TWN: Taiwan + :cvar TZA: United Republic of Tanzania + :cvar UGA: Republic of Uganda + :cvar UKR: Ukraine + :cvar URY: Oriental Republic of Uruguay + :cvar UZB: Republic of Uzbekistan + :cvar VAT: State of the Vatican City + :cvar VCT: Saint Vincent and the Grenadines + :cvar VEN: Bolivarian Republic of Venezuela + :cvar VGB: Virgin Islands, British + :cvar VIR: United States Virgin Islands + :cvar VNM: Socialist Republic of Vietnam + :cvar VUT: Republic of Vanuatu + :cvar WLF: Wallis and Futuna + :cvar WSM: Independent State of Samoa + :cvar XAC: Territory of Ashmore and Cartier Islands + :cvar XAZ: Entity 1 + :cvar XBI: Bassas da India + :cvar XBK: Baker Island + :cvar XCR: Entity 2 + :cvar XCS: Coral Sea Islands Territory + :cvar XCY: Entity 3 + :cvar XEU: Europa Island + :cvar XGL: Glorioso Islands + :cvar XGZ: Gaza Strip + :cvar XHO: Howland Island + :cvar XJA: Johnston Atoll + :cvar XJM: Jan Mayen + :cvar XJN: Juan de Nova Island + :cvar XJV: Jarvis Island + :cvar XKM: Entity 4 + :cvar XKN: Entity 5 + :cvar XKR: Kingman Reef + :cvar XKS: Republic of Kosovo + :cvar XMW: Midway Islands + :cvar XNV: Navassa Island + :cvar XPL: Palmyra Atoll + :cvar XPR: Paracel Islands + :cvar XQP: Etorofu, Habomai, Kunashiri, and Shikotan Islands + :cvar XQZ: Akrotiri + :cvar XSP: Spratly Islands + :cvar XSV: Svalbard + :cvar XTR: Tromelin Island + :cvar XWB: West Bank + :cvar XWK: Wake Island + :cvar XXD: Dhekelia + :cvar XXX: No Man's Land + :cvar YEM: Republic of Yemen + :cvar ZAF: Republic of South Africa + :cvar ZMB: Republic of Zambia + :cvar ZWE: Republic of Zimbabwe + :cvar ACGU: FOUR EYES + :cvar APFS: Suppressed + :cvar BWCS: Biological Weapons Convention States + :cvar CFCK: ROK/US Combined Forces Command, Korea + :cvar CMFC: Combined Maritime Forces Central + :cvar CMFP: Cooperative Maritime Forces Pacific + :cvar CPMT: Civilian Protection Monitoring Team for Sudan + :cvar CTOC: Countering Transnational Organized Crime + :cvar CWCS: Chemical Weapons Convention States + :cvar FVEY: FIVE EYES + :cvar GCTF: Global Counter-Terrorism Forces + :cvar GMIF: Global Maritime Interception Forces + :cvar ISAF: International Security Assistance Force for Afghanistan + :cvar KFOR: Stabilization Forces in Kosovo + :cvar MLEC: Multi-Lateral Enduring Contingency + :cvar NACT: North African Counter-Terrorism Forces + :cvar NATO: North Atlantic Treaty Organization + :cvar NCFE: NATO Convention Armed Forces in Europe + :cvar OSTY: Open Skies Treaty + :cvar SPAA: Suppressed + :cvar TEYE: THREE EYES + :cvar UNCK: United Nations Command, Korea + """ + + ABW = "ABW" + AFG = "AFG" + AGO = "AGO" + AIA = "AIA" + ALB = "ALB" + AND = "AND" + ARE = "ARE" + ARG = "ARG" + ARM = "ARM" + ASM = "ASM" + ATA = "ATA" + ATF = "ATF" + ATG = "ATG" + AUS = "AUS" + AUT = "AUT" + AX1 = "AX1" + AX2 = "AX2" + AZE = "AZE" + BDI = "BDI" + BEL = "BEL" + BEN = "BEN" + BES = "BES" + BFA = "BFA" + BGD = "BGD" + BGR = "BGR" + BHR = "BHR" + BHS = "BHS" + BIH = "BIH" + BLM = "BLM" + BLR = "BLR" + BLZ = "BLZ" + BMU = "BMU" + BOL = "BOL" + BRA = "BRA" + BRB = "BRB" + BRN = "BRN" + BTN = "BTN" + BVT = "BVT" + BWA = "BWA" + CAF = "CAF" + CAN = "CAN" + CCK = "CCK" + CHE = "CHE" + CHL = "CHL" + CHN = "CHN" + CIV = "CIV" + CMR = "CMR" + COD = "COD" + COG = "COG" + COK = "COK" + COL = "COL" + COM = "COM" + CPT = "CPT" + CPV = "CPV" + CRI = "CRI" + CUB = "CUB" + CUW = "CUW" + CXR = "CXR" + CYM = "CYM" + CYP = "CYP" + CZE = "CZE" + DEU = "DEU" + DGA = "DGA" + DJI = "DJI" + DMA = "DMA" + DNK = "DNK" + DOM = "DOM" + DZA = "DZA" + ECU = "ECU" + EGY = "EGY" + ERI = "ERI" + ESH = "ESH" + ESP = "ESP" + EST = "EST" + ETH = "ETH" + FIN = "FIN" + FJI = "FJI" + FLK = "FLK" + FRA = "FRA" + FRO = "FRO" + FSM = "FSM" + GAB = "GAB" + GBR = "GBR" + GEO = "GEO" + GGY = "GGY" + GHA = "GHA" + GIB = "GIB" + GIN = "GIN" + GLP = "GLP" + GMB = "GMB" + GNB = "GNB" + GNQ = "GNQ" + GRC = "GRC" + GRD = "GRD" + GRL = "GRL" + GTM = "GTM" + GUF = "GUF" + GUM = "GUM" + GUY = "GUY" + HKG = "HKG" + HMD = "HMD" + HND = "HND" + HRV = "HRV" + HTI = "HTI" + HUN = "HUN" + IDN = "IDN" + IMN = "IMN" + IND = "IND" + IOT = "IOT" + IRL = "IRL" + IRN = "IRN" + IRQ = "IRQ" + ISL = "ISL" + ISR = "ISR" + ITA = "ITA" + JAM = "JAM" + JEY = "JEY" + JOR = "JOR" + JPN = "JPN" + KAZ = "KAZ" + KEN = "KEN" + KGZ = "KGZ" + KHM = "KHM" + KIR = "KIR" + KNA = "KNA" + KOR = "KOR" + KWT = "KWT" + LAO = "LAO" + LBN = "LBN" + LBR = "LBR" + LBY = "LBY" + LCA = "LCA" + LIE = "LIE" + LKA = "LKA" + LSO = "LSO" + LTU = "LTU" + LUX = "LUX" + LVA = "LVA" + MAC = "MAC" + MAF = "MAF" + MAR = "MAR" + MCO = "MCO" + MDA = "MDA" + MDG = "MDG" + MDV = "MDV" + MEX = "MEX" + MHL = "MHL" + MKD = "MKD" + MLI = "MLI" + MLT = "MLT" + MMR = "MMR" + MNE = "MNE" + MNG = "MNG" + MNP = "MNP" + MOZ = "MOZ" + MRT = "MRT" + MSR = "MSR" + MTQ = "MTQ" + MUS = "MUS" + MWI = "MWI" + MYS = "MYS" + MYT = "MYT" + NAM = "NAM" + NCL = "NCL" + NER = "NER" + NFK = "NFK" + NGA = "NGA" + NIC = "NIC" + NIU = "NIU" + NLD = "NLD" + NOR = "NOR" + NPL = "NPL" + NRU = "NRU" + NZL = "NZL" + OMN = "OMN" + PAK = "PAK" + PAN = "PAN" + PCN = "PCN" + PER = "PER" + PHL = "PHL" + PLW = "PLW" + PNG = "PNG" + POL = "POL" + PRI = "PRI" + PRK = "PRK" + PRT = "PRT" + PRY = "PRY" + PSE = "PSE" + PYF = "PYF" + QAT = "QAT" + REU = "REU" + ROU = "ROU" + RUS = "RUS" + RWA = "RWA" + SAU = "SAU" + SDN = "SDN" + SEN = "SEN" + SGP = "SGP" + SGS = "SGS" + SHN = "SHN" + SLB = "SLB" + SLE = "SLE" + SLV = "SLV" + SMR = "SMR" + SOM = "SOM" + SPM = "SPM" + SRB = "SRB" + SSD = "SSD" + STP = "STP" + SUR = "SUR" + SVK = "SVK" + SVN = "SVN" + SWE = "SWE" + SWZ = "SWZ" + SXM = "SXM" + SYC = "SYC" + SYR = "SYR" + TCA = "TCA" + TCD = "TCD" + TGO = "TGO" + THA = "THA" + TJK = "TJK" + TKL = "TKL" + TKM = "TKM" + TLS = "TLS" + TON = "TON" + TTO = "TTO" + TUN = "TUN" + TUR = "TUR" + TUV = "TUV" + TWN = "TWN" + TZA = "TZA" + UGA = "UGA" + UKR = "UKR" + URY = "URY" + UZB = "UZB" + VAT = "VAT" + VCT = "VCT" + VEN = "VEN" + VGB = "VGB" + VIR = "VIR" + VNM = "VNM" + VUT = "VUT" + WLF = "WLF" + WSM = "WSM" + XAC = "XAC" + XAZ = "XAZ" + XBI = "XBI" + XBK = "XBK" + XCR = "XCR" + XCS = "XCS" + XCY = "XCY" + XEU = "XEU" + XGL = "XGL" + XGZ = "XGZ" + XHO = "XHO" + XJA = "XJA" + XJM = "XJM" + XJN = "XJN" + XJV = "XJV" + XKM = "XKM" + XKN = "XKN" + XKR = "XKR" + XKS = "XKS" + XMW = "XMW" + XNV = "XNV" + XPL = "XPL" + XPR = "XPR" + XQP = "XQP" + XQZ = "XQZ" + XSP = "XSP" + XSV = "XSV" + XTR = "XTR" + XWB = "XWB" + XWK = "XWK" + XXD = "XXD" + XXX = "XXX" + YEM = "YEM" + ZAF = "ZAF" + ZMB = "ZMB" + ZWE = "ZWE" + ACGU = "ACGU" + APFS = "APFS" + BWCS = "BWCS" + CFCK = "CFCK" + CMFC = "CMFC" + CMFP = "CMFP" + CPMT = "CPMT" + CTOC = "CTOC" + CWCS = "CWCS" + FVEY = "FVEY" + GCTF = "GCTF" + GMIF = "GMIF" + ISAF = "ISAF" + KFOR = "KFOR" + MLEC = "MLEC" + NACT = "NACT" + NATO = "NATO" + NCFE = "NCFE" + OSTY = "OSTY" + SPAA = "SPAA" + TEYE = "TEYE" + UNCK = "UNCK" diff --git a/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatfgiprotected.py b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatfgiprotected.py new file mode 100644 index 0000000..8bd2e65 --- /dev/null +++ b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatfgiprotected.py @@ -0,0 +1,620 @@ +"""This file was generated by xsdata, v23.8, on 2023-10-05 09:59:45 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from enum import Enum + +__NAMESPACE__ = "urn:us:gov:ic:cvenum:ismcat:fgiprotected" + + +class CVEnumISMCATFGIProtectedValuesvalue(Enum): + """ + :cvar FGI: Foreign Government Information + :cvar ABW: Aruba + :cvar AFG: Islamic Republic of Afghanistan + :cvar AGO: Republic of Angola + :cvar AIA: Anguilla + :cvar ALB: Republic of Albania + :cvar AND: Principality of Andorra + :cvar ARE: United Arab Emirates + :cvar ARG: Argentine Republic + :cvar ARM: Republic of Armenia + :cvar ASM: Territory of American Samoa + :cvar ATA: Antarctica + :cvar ATF: French Southern and Antarctic Lands + :cvar ATG: Antigua and Barbuda + :cvar AUS: Commonwealth of Australia + :cvar AUT: Republic of Austria + :cvar AX2: Guantanamo Bay Naval Base + :cvar AZE: Republic of Azerbaijan + :cvar BDI: Republic of Burundi + :cvar BEL: Kingdom of Belgium + :cvar BEN: Republic of Benin + :cvar BES: Bonaire, Sint Eustatius, and Saba + :cvar BFA: Burkina Faso + :cvar BGD: People's Republic of Bangladesh + :cvar BGR: Republic of Bulgaria + :cvar BHR: Kingdom of Bahrain + :cvar BHS: Commonwealth of The Bahamas + :cvar BIH: Bosnia and Herzegovina + :cvar BLM: Saint Barthelemy + :cvar BLR: Republic of Belarus + :cvar BLZ: Belize + :cvar BMU: Bermuda + :cvar BOL: Plurinational State of Bolivia + :cvar BRA: Federative Republic of Brazil + :cvar BRB: Barbados + :cvar BRN: Brunei Darussalam + :cvar BTN: Kingdom of Bhutan + :cvar BVT: Bouvet Island + :cvar BWA: Republic of Botswana + :cvar CAF: Central African Republic + :cvar CAN: Canada + :cvar CCK: Territory of Cocos (Keeling) Islands + :cvar CHE: Swiss Confederation + :cvar CHL: Republic of Chile + :cvar CHN: People's Republic of China + :cvar CIV: Republic of CƓte d'Ivoire + :cvar CMR: Republic of Cameroon + :cvar COD: Democratic Republic of the Congo + :cvar COG: Republic of the Congo + :cvar COK: Cook Islands + :cvar COL: Republic of Colombia + :cvar COM: Union of the Comoros + :cvar CPT: Clipperton Island + :cvar CPV: Republic of Cape Verde + :cvar CRI: Republic of Costa Rica + :cvar CUB: Republic of Cuba + :cvar CUW: CuraƧao + :cvar CXR: Territory of Christmas Island + :cvar CYM: Cayman Islands + :cvar CYP: Republic of Cyprus + :cvar CZE: Czech Republic + :cvar DEU: Federal Republic of Germany + :cvar DGA: Diego Garcia + :cvar DJI: Republic of Djibouti + :cvar DMA: Commonwealth of Dominica + :cvar DNK: Kingdom of Denmark + :cvar DOM: Dominican Republic + :cvar DZA: People's Democratic Republic of Algeria + :cvar ECU: Republic of Ecuador + :cvar EGY: Arab Republic of Egypt + :cvar ERI: State of Eritrea + :cvar ESH: Western Sahara + :cvar ESP: Kingdom of Spain + :cvar EST: Republic of Estonia + :cvar ETH: Federal Democratic Republic of Ethiopia + :cvar FIN: Republic of Finland + :cvar FJI: Republic of Fiji + :cvar FLK: Falkland Islands (Islas Malvinas) + :cvar FRA: French Republic + :cvar FRO: Faroe Islands + :cvar FSM: Federated States of Micronesia + :cvar GAB: Gabonese Republic + :cvar GBR: United Kingdom of Great Britain and Northern Ireland + :cvar GEO: Georgia + :cvar GGY: Bailiwick of Guernsey + :cvar GHA: Republic of Ghana + :cvar GIB: Gibraltar + :cvar GIN: Republic of Guinea + :cvar GLP: Department of Guadeloupe + :cvar GMB: Republic of The Gambia + :cvar GNB: Republic of Guinea-Bissau + :cvar GNQ: Republic of Equatorial Guinea + :cvar GRC: Hellenic Republic + :cvar GRD: Grenada + :cvar GRL: Greenland + :cvar GTM: Republic of Guatemala + :cvar GUF: Department of Guiana + :cvar GUM: Territory of Guam + :cvar GUY: Co-operative Republic of Guyana + :cvar HKG: Hong Kong Special Administrative Region + :cvar HMD: Territory of Heard Island and McDonald Islands + :cvar HND: Republic of Honduras + :cvar HRV: Republic of Croatia + :cvar HTI: Republic of Haiti + :cvar HUN: Hungary + :cvar IDN: Republic of Indonesia + :cvar IMN: Isle of Man + :cvar IND: Republic of India + :cvar IOT: British Indian Ocean Territory + :cvar IRL: Ireland + :cvar IRN: Islamic Republic of Iran + :cvar IRQ: Republic of Iraq + :cvar ISL: Republic of Iceland + :cvar ISR: State of Israel + :cvar ITA: Italian Republic + :cvar JAM: Jamaica + :cvar JEY: Bailiwick of Jersey + :cvar JOR: Hashemite Kingdom of Jordan + :cvar JPN: Japan + :cvar KAZ: Republic of Kazakhstan + :cvar KEN: Republic of Kenya + :cvar KGZ: Kyrgyz Republic + :cvar KHM: Kingdom of Cambodia + :cvar KIR: Republic of Kiribati + :cvar KNA: Federation of Saint Kitts and Nevis + :cvar KOR: Republic of Korea + :cvar KWT: State of Kuwait + :cvar LAO: Lao People's Democratic Republic + :cvar LBN: Lebanese Republic + :cvar LBR: Republic of Liberia + :cvar LBY: Libya + :cvar LCA: Saint Lucia + :cvar LIE: Principality of Liechtenstein + :cvar LKA: Democratic Socialist Republic of Sri Lanka + :cvar LSO: Kingdom of Lesotho + :cvar LTU: Republic of Lithuania + :cvar LUX: Grand Duchy of Luxembourg + :cvar LVA: Republic of Latvia + :cvar MAC: Macau Special Administrative Region + :cvar MAF: Saint Martin + :cvar MAR: Kingdom of Morocco + :cvar MCO: Principality of Monaco + :cvar MDA: Republic of Moldova + :cvar MDG: Republic of Madagascar + :cvar MDV: Republic of Maldives + :cvar MEX: United Mexican States + :cvar MHL: Republic of the Marshall Islands + :cvar MKD: Republic of Macedonia + :cvar MLI: Republic of Mali + :cvar MLT: Republic of Malta + :cvar MMR: Union of Burma + :cvar MNE: Montenegro + :cvar MNG: Mongolia + :cvar MNP: Commonwealth of the Northern Mariana Islands + :cvar MOZ: Republic of Mozambique + :cvar MRT: Islamic Republic of Mauritania + :cvar MSR: Montserrat + :cvar MTQ: Department of Martinique + :cvar MUS: Republic of Mauritius + :cvar MWI: Republic of Malawi + :cvar MYS: Malaysia + :cvar MYT: Department of Mayotte + :cvar NAM: Republic of Namibia + :cvar NCL: New Caledonia + :cvar NER: Republic of the Niger + :cvar NFK: Territory of Norfolk Island + :cvar NGA: Federal Republic of Nigeria + :cvar NIC: Republic of Nicaragua + :cvar NIU: Niue + :cvar NLD: Kingdom of the Netherlands + :cvar NOR: Kingdom of Norway + :cvar NPL: Federal Democratic Republic of Nepal + :cvar NRU: Republic of Nauru + :cvar NZL: New Zealand + :cvar OMN: Sultanate of Oman + :cvar PAK: Islamic Republic of Pakistan + :cvar PAN: Republic of Panama + :cvar PCN: Pitcairn, Henderson, Ducie, and Oeno Islands + :cvar PER: Republic of Peru + :cvar PHL: Republic of the Philippines + :cvar PLW: Republic of Palau + :cvar PNG: Independent State of Papua New Guinea + :cvar POL: Republic of Poland + :cvar PRI: Commonwealth of Puerto Rico + :cvar PRK: Democratic People's Republic of Korea + :cvar PRT: Portuguese Republic + :cvar PRY: Republic of Paraguay + :cvar PSE: Palestinian Territory + :cvar PYF: French Polynesia + :cvar QAT: State of Qatar + :cvar REU: Department of Reunion + :cvar ROU: Romania + :cvar RUS: Russian Federation + :cvar RWA: Republic of Rwanda + :cvar SAU: Kingdom of Saudi Arabia + :cvar SDN: Republic of the Sudan + :cvar SEN: Republic of Senegal + :cvar SGP: Republic of Singapore + :cvar SGS: South Georgia and South Sandwich Islands + :cvar SHN: Saint Helena, Ascension, and Tristan da Cunha + :cvar SLB: Solomon Islands + :cvar SLE: Republic of Sierra Leone + :cvar SLV: Republic of El Salvador + :cvar SMR: Republic of San Marino + :cvar SOM: Somalia, Federal Republic of + :cvar SPM: Territorial Collectivity of Saint Pierre and Miquelon + :cvar SRB: Republic of Serbia + :cvar SSD: Republic of South Sudan + :cvar STP: Democratic Republic of Sao Tome and Principe + :cvar SUR: Republic of Suriname + :cvar SVK: Slovak Republic + :cvar SVN: Republic of Slovenia + :cvar SWE: Kingdom of Sweden + :cvar SWZ: Kingdom of Swaziland + :cvar SXM: Sint Maarten + :cvar SYC: Republic of Seychelles + :cvar SYR: Syrian Arab Republic + :cvar TCA: Turks and Caicos Islands + :cvar TCD: Republic of Chad + :cvar TGO: Togolese Republic + :cvar THA: Kingdom of Thailand + :cvar TJK: Republic of Tajikistan + :cvar TKL: Tokelau + :cvar TKM: Turkmenistan + :cvar TLS: Democratic Republic of Timor-Leste + :cvar TON: Kingdom of Tonga + :cvar TTO: Republic of Trinidad and Tobago + :cvar TUN: Tunisian Republic + :cvar TUR: Republic of Turkey + :cvar TUV: Tuvalu + :cvar TWN: Taiwan + :cvar TZA: United Republic of Tanzania + :cvar UGA: Republic of Uganda + :cvar UKR: Ukraine + :cvar URY: Oriental Republic of Uruguay + :cvar UZB: Republic of Uzbekistan + :cvar VAT: State of the Vatican City + :cvar VCT: Saint Vincent and the Grenadines + :cvar VEN: Bolivarian Republic of Venezuela + :cvar VGB: Virgin Islands, British + :cvar VIR: United States Virgin Islands + :cvar VNM: Socialist Republic of Vietnam + :cvar VUT: Republic of Vanuatu + :cvar WLF: Wallis and Futuna + :cvar WSM: Independent State of Samoa + :cvar XAC: Territory of Ashmore and Cartier Islands + :cvar XAZ: Entity 1 + :cvar XBI: Bassas da India + :cvar XBK: Baker Island + :cvar XCR: Entity 2 + :cvar XCS: Coral Sea Islands Territory + :cvar XCY: Entity 3 + :cvar XEU: Europa Island + :cvar XGL: Glorioso Islands + :cvar XGZ: Gaza Strip + :cvar XHO: Howland Island + :cvar XJA: Johnston Atoll + :cvar XJM: Jan Mayen + :cvar XJN: Juan de Nova Island + :cvar XJV: Jarvis Island + :cvar XKM: Entity 4 + :cvar XKN: Entity 5 + :cvar XKR: Kingman Reef + :cvar XKS: Republic of Kosovo + :cvar XMW: Midway Islands + :cvar XNV: Navassa Island + :cvar XPL: Palmyra Atoll + :cvar XPR: Paracel Islands + :cvar XQP: Etorofu, Habomai, Kunashiri, and Shikotan Islands + :cvar XQZ: Akrotiri + :cvar XSP: Spratly Islands + :cvar XSV: Svalbard + :cvar XTR: Tromelin Island + :cvar XWB: West Bank + :cvar XWK: Wake Island + :cvar XXD: Dhekelia + :cvar XXX: No Man's Land + :cvar YEM: Republic of Yemen + :cvar ZAF: Republic of South Africa + :cvar ZMB: Republic of Zambia + :cvar ZWE: Republic of Zimbabwe + :cvar ACGU: FOUR EYES + :cvar APFS: Suppressed + :cvar BWCS: Biological Weapons Convention States + :cvar CFCK: ROK/US Combined Forces Command, Korea + :cvar CMFC: Combined Maritime Forces Central + :cvar CMFP: Cooperative Maritime Forces Pacific + :cvar CPMT: Civilian Protection Monitoring Team for Sudan + :cvar CTOC: Countering Transnational Organized Crime + :cvar CWCS: Chemical Weapons Convention States + :cvar FVEY: FIVE EYES + :cvar GCTF: Global Counter-Terrorism Forces + :cvar GMIF: Global Maritime Interception Forces + :cvar ISAF: International Security Assistance Force for Afghanistan + :cvar KFOR: Stabilization Forces in Kosovo + :cvar MLEC: Multi-Lateral Enduring Contingency + :cvar NACT: North African Counter-Terrorism Forces + :cvar NATO: North Atlantic Treaty Organization + :cvar NCFE: NATO Convention Armed Forces in Europe + :cvar OSTY: Open Skies Treaty + :cvar SPAA: Suppressed + :cvar TEYE: THREE EYES + :cvar UNCK: United Nations Command, Korea + """ + + FGI = "FGI" + ABW = "ABW" + AFG = "AFG" + AGO = "AGO" + AIA = "AIA" + ALB = "ALB" + AND = "AND" + ARE = "ARE" + ARG = "ARG" + ARM = "ARM" + ASM = "ASM" + ATA = "ATA" + ATF = "ATF" + ATG = "ATG" + AUS = "AUS" + AUT = "AUT" + AX2 = "AX2" + AZE = "AZE" + BDI = "BDI" + BEL = "BEL" + BEN = "BEN" + BES = "BES" + BFA = "BFA" + BGD = "BGD" + BGR = "BGR" + BHR = "BHR" + BHS = "BHS" + BIH = "BIH" + BLM = "BLM" + BLR = "BLR" + BLZ = "BLZ" + BMU = "BMU" + BOL = "BOL" + BRA = "BRA" + BRB = "BRB" + BRN = "BRN" + BTN = "BTN" + BVT = "BVT" + BWA = "BWA" + CAF = "CAF" + CAN = "CAN" + CCK = "CCK" + CHE = "CHE" + CHL = "CHL" + CHN = "CHN" + CIV = "CIV" + CMR = "CMR" + COD = "COD" + COG = "COG" + COK = "COK" + COL = "COL" + COM = "COM" + CPT = "CPT" + CPV = "CPV" + CRI = "CRI" + CUB = "CUB" + CUW = "CUW" + CXR = "CXR" + CYM = "CYM" + CYP = "CYP" + CZE = "CZE" + DEU = "DEU" + DGA = "DGA" + DJI = "DJI" + DMA = "DMA" + DNK = "DNK" + DOM = "DOM" + DZA = "DZA" + ECU = "ECU" + EGY = "EGY" + ERI = "ERI" + ESH = "ESH" + ESP = "ESP" + EST = "EST" + ETH = "ETH" + FIN = "FIN" + FJI = "FJI" + FLK = "FLK" + FRA = "FRA" + FRO = "FRO" + FSM = "FSM" + GAB = "GAB" + GBR = "GBR" + GEO = "GEO" + GGY = "GGY" + GHA = "GHA" + GIB = "GIB" + GIN = "GIN" + GLP = "GLP" + GMB = "GMB" + GNB = "GNB" + GNQ = "GNQ" + GRC = "GRC" + GRD = "GRD" + GRL = "GRL" + GTM = "GTM" + GUF = "GUF" + GUM = "GUM" + GUY = "GUY" + HKG = "HKG" + HMD = "HMD" + HND = "HND" + HRV = "HRV" + HTI = "HTI" + HUN = "HUN" + IDN = "IDN" + IMN = "IMN" + IND = "IND" + IOT = "IOT" + IRL = "IRL" + IRN = "IRN" + IRQ = "IRQ" + ISL = "ISL" + ISR = "ISR" + ITA = "ITA" + JAM = "JAM" + JEY = "JEY" + JOR = "JOR" + JPN = "JPN" + KAZ = "KAZ" + KEN = "KEN" + KGZ = "KGZ" + KHM = "KHM" + KIR = "KIR" + KNA = "KNA" + KOR = "KOR" + KWT = "KWT" + LAO = "LAO" + LBN = "LBN" + LBR = "LBR" + LBY = "LBY" + LCA = "LCA" + LIE = "LIE" + LKA = "LKA" + LSO = "LSO" + LTU = "LTU" + LUX = "LUX" + LVA = "LVA" + MAC = "MAC" + MAF = "MAF" + MAR = "MAR" + MCO = "MCO" + MDA = "MDA" + MDG = "MDG" + MDV = "MDV" + MEX = "MEX" + MHL = "MHL" + MKD = "MKD" + MLI = "MLI" + MLT = "MLT" + MMR = "MMR" + MNE = "MNE" + MNG = "MNG" + MNP = "MNP" + MOZ = "MOZ" + MRT = "MRT" + MSR = "MSR" + MTQ = "MTQ" + MUS = "MUS" + MWI = "MWI" + MYS = "MYS" + MYT = "MYT" + NAM = "NAM" + NCL = "NCL" + NER = "NER" + NFK = "NFK" + NGA = "NGA" + NIC = "NIC" + NIU = "NIU" + NLD = "NLD" + NOR = "NOR" + NPL = "NPL" + NRU = "NRU" + NZL = "NZL" + OMN = "OMN" + PAK = "PAK" + PAN = "PAN" + PCN = "PCN" + PER = "PER" + PHL = "PHL" + PLW = "PLW" + PNG = "PNG" + POL = "POL" + PRI = "PRI" + PRK = "PRK" + PRT = "PRT" + PRY = "PRY" + PSE = "PSE" + PYF = "PYF" + QAT = "QAT" + REU = "REU" + ROU = "ROU" + RUS = "RUS" + RWA = "RWA" + SAU = "SAU" + SDN = "SDN" + SEN = "SEN" + SGP = "SGP" + SGS = "SGS" + SHN = "SHN" + SLB = "SLB" + SLE = "SLE" + SLV = "SLV" + SMR = "SMR" + SOM = "SOM" + SPM = "SPM" + SRB = "SRB" + SSD = "SSD" + STP = "STP" + SUR = "SUR" + SVK = "SVK" + SVN = "SVN" + SWE = "SWE" + SWZ = "SWZ" + SXM = "SXM" + SYC = "SYC" + SYR = "SYR" + TCA = "TCA" + TCD = "TCD" + TGO = "TGO" + THA = "THA" + TJK = "TJK" + TKL = "TKL" + TKM = "TKM" + TLS = "TLS" + TON = "TON" + TTO = "TTO" + TUN = "TUN" + TUR = "TUR" + TUV = "TUV" + TWN = "TWN" + TZA = "TZA" + UGA = "UGA" + UKR = "UKR" + URY = "URY" + UZB = "UZB" + VAT = "VAT" + VCT = "VCT" + VEN = "VEN" + VGB = "VGB" + VIR = "VIR" + VNM = "VNM" + VUT = "VUT" + WLF = "WLF" + WSM = "WSM" + XAC = "XAC" + XAZ = "XAZ" + XBI = "XBI" + XBK = "XBK" + XCR = "XCR" + XCS = "XCS" + XCY = "XCY" + XEU = "XEU" + XGL = "XGL" + XGZ = "XGZ" + XHO = "XHO" + XJA = "XJA" + XJM = "XJM" + XJN = "XJN" + XJV = "XJV" + XKM = "XKM" + XKN = "XKN" + XKR = "XKR" + XKS = "XKS" + XMW = "XMW" + XNV = "XNV" + XPL = "XPL" + XPR = "XPR" + XQP = "XQP" + XQZ = "XQZ" + XSP = "XSP" + XSV = "XSV" + XTR = "XTR" + XWB = "XWB" + XWK = "XWK" + XXD = "XXD" + XXX = "XXX" + YEM = "YEM" + ZAF = "ZAF" + ZMB = "ZMB" + ZWE = "ZWE" + ACGU = "ACGU" + APFS = "APFS" + BWCS = "BWCS" + CFCK = "CFCK" + CMFC = "CMFC" + CMFP = "CMFP" + CPMT = "CPMT" + CTOC = "CTOC" + CWCS = "CWCS" + FVEY = "FVEY" + GCTF = "GCTF" + GMIF = "GMIF" + ISAF = "ISAF" + KFOR = "KFOR" + MLEC = "MLEC" + NACT = "NACT" + NATO = "NATO" + NCFE = "NCFE" + OSTY = "OSTY" + SPAA = "SPAA" + TEYE = "TEYE" + UNCK = "UNCK" diff --git a/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatowner_producer.py b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatowner_producer.py new file mode 100644 index 0000000..304220c --- /dev/null +++ b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatowner_producer.py @@ -0,0 +1,622 @@ +"""This file was generated by xsdata, v23.8, on 2023-10-05 09:59:45 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from enum import Enum + +__NAMESPACE__ = "urn:us:gov:ic:cvenum:ismcat:ownerproducer" + + +class CVEnumISMCATOwnerProducerValuesvalue(Enum): + """ + :cvar FGI: Foreign Government Information + :cvar ABW: Aruba + :cvar AFG: Islamic Republic of Afghanistan + :cvar AGO: Republic of Angola + :cvar AIA: Anguilla + :cvar ALB: Republic of Albania + :cvar AND: Principality of Andorra + :cvar ARE: United Arab Emirates + :cvar ARG: Argentine Republic + :cvar ARM: Republic of Armenia + :cvar ASM: Territory of American Samoa + :cvar ATA: Antarctica + :cvar ATF: French Southern and Antarctic Lands + :cvar ATG: Antigua and Barbuda + :cvar AUS: Commonwealth of Australia + :cvar AUT: Republic of Austria + :cvar AX2: Guantanamo Bay Naval Base + :cvar AZE: Republic of Azerbaijan + :cvar BDI: Republic of Burundi + :cvar BEL: Kingdom of Belgium + :cvar BEN: Republic of Benin + :cvar BES: Bonaire, Sint Eustatius, and Saba + :cvar BFA: Burkina Faso + :cvar BGD: People's Republic of Bangladesh + :cvar BGR: Republic of Bulgaria + :cvar BHR: Kingdom of Bahrain + :cvar BHS: Commonwealth of The Bahamas + :cvar BIH: Bosnia and Herzegovina + :cvar BLM: Saint Barthelemy + :cvar BLR: Republic of Belarus + :cvar BLZ: Belize + :cvar BMU: Bermuda + :cvar BOL: Plurinational State of Bolivia + :cvar BRA: Federative Republic of Brazil + :cvar BRB: Barbados + :cvar BRN: Brunei Darussalam + :cvar BTN: Kingdom of Bhutan + :cvar BVT: Bouvet Island + :cvar BWA: Republic of Botswana + :cvar CAF: Central African Republic + :cvar CAN: Canada + :cvar CCK: Territory of Cocos (Keeling) Islands + :cvar CHE: Swiss Confederation + :cvar CHL: Republic of Chile + :cvar CHN: People's Republic of China + :cvar CIV: Republic of CƓte d'Ivoire + :cvar CMR: Republic of Cameroon + :cvar COD: Democratic Republic of the Congo + :cvar COG: Republic of the Congo + :cvar COK: Cook Islands + :cvar COL: Republic of Colombia + :cvar COM: Union of the Comoros + :cvar CPT: Clipperton Island + :cvar CPV: Republic of Cape Verde + :cvar CRI: Republic of Costa Rica + :cvar CUB: Republic of Cuba + :cvar CUW: CuraƧao + :cvar CXR: Territory of Christmas Island + :cvar CYM: Cayman Islands + :cvar CYP: Republic of Cyprus + :cvar CZE: Czech Republic + :cvar DEU: Federal Republic of Germany + :cvar DGA: Diego Garcia + :cvar DJI: Republic of Djibouti + :cvar DMA: Commonwealth of Dominica + :cvar DNK: Kingdom of Denmark + :cvar DOM: Dominican Republic + :cvar DZA: People's Democratic Republic of Algeria + :cvar ECU: Republic of Ecuador + :cvar EGY: Arab Republic of Egypt + :cvar ERI: State of Eritrea + :cvar ESH: Western Sahara + :cvar ESP: Kingdom of Spain + :cvar EST: Republic of Estonia + :cvar ETH: Federal Democratic Republic of Ethiopia + :cvar FIN: Republic of Finland + :cvar FJI: Republic of Fiji + :cvar FLK: Falkland Islands (Islas Malvinas) + :cvar FRA: French Republic + :cvar FRO: Faroe Islands + :cvar FSM: Federated States of Micronesia + :cvar GAB: Gabonese Republic + :cvar GBR: United Kingdom of Great Britain and Northern Ireland + :cvar GEO: Georgia + :cvar GGY: Bailiwick of Guernsey + :cvar GHA: Republic of Ghana + :cvar GIB: Gibraltar + :cvar GIN: Republic of Guinea + :cvar GLP: Department of Guadeloupe + :cvar GMB: Republic of The Gambia + :cvar GNB: Republic of Guinea-Bissau + :cvar GNQ: Republic of Equatorial Guinea + :cvar GRC: Hellenic Republic + :cvar GRD: Grenada + :cvar GRL: Greenland + :cvar GTM: Republic of Guatemala + :cvar GUF: Department of Guiana + :cvar GUM: Territory of Guam + :cvar GUY: Co-operative Republic of Guyana + :cvar HKG: Hong Kong Special Administrative Region + :cvar HMD: Territory of Heard Island and McDonald Islands + :cvar HND: Republic of Honduras + :cvar HRV: Republic of Croatia + :cvar HTI: Republic of Haiti + :cvar HUN: Hungary + :cvar IDN: Republic of Indonesia + :cvar IMN: Isle of Man + :cvar IND: Republic of India + :cvar IOT: British Indian Ocean Territory + :cvar IRL: Ireland + :cvar IRN: Islamic Republic of Iran + :cvar IRQ: Republic of Iraq + :cvar ISL: Republic of Iceland + :cvar ISR: State of Israel + :cvar ITA: Italian Republic + :cvar JAM: Jamaica + :cvar JEY: Bailiwick of Jersey + :cvar JOR: Hashemite Kingdom of Jordan + :cvar JPN: Japan + :cvar KAZ: Republic of Kazakhstan + :cvar KEN: Republic of Kenya + :cvar KGZ: Kyrgyz Republic + :cvar KHM: Kingdom of Cambodia + :cvar KIR: Republic of Kiribati + :cvar KNA: Federation of Saint Kitts and Nevis + :cvar KOR: Republic of Korea + :cvar KWT: State of Kuwait + :cvar LAO: Lao People's Democratic Republic + :cvar LBN: Lebanese Republic + :cvar LBR: Republic of Liberia + :cvar LBY: Libya + :cvar LCA: Saint Lucia + :cvar LIE: Principality of Liechtenstein + :cvar LKA: Democratic Socialist Republic of Sri Lanka + :cvar LSO: Kingdom of Lesotho + :cvar LTU: Republic of Lithuania + :cvar LUX: Grand Duchy of Luxembourg + :cvar LVA: Republic of Latvia + :cvar MAC: Macau Special Administrative Region + :cvar MAF: Saint Martin + :cvar MAR: Kingdom of Morocco + :cvar MCO: Principality of Monaco + :cvar MDA: Republic of Moldova + :cvar MDG: Republic of Madagascar + :cvar MDV: Republic of Maldives + :cvar MEX: United Mexican States + :cvar MHL: Republic of the Marshall Islands + :cvar MKD: Republic of Macedonia + :cvar MLI: Republic of Mali + :cvar MLT: Republic of Malta + :cvar MMR: Union of Burma + :cvar MNE: Montenegro + :cvar MNG: Mongolia + :cvar MNP: Commonwealth of the Northern Mariana Islands + :cvar MOZ: Republic of Mozambique + :cvar MRT: Islamic Republic of Mauritania + :cvar MSR: Montserrat + :cvar MTQ: Department of Martinique + :cvar MUS: Republic of Mauritius + :cvar MWI: Republic of Malawi + :cvar MYS: Malaysia + :cvar MYT: Department of Mayotte + :cvar NAM: Republic of Namibia + :cvar NCL: New Caledonia + :cvar NER: Republic of the Niger + :cvar NFK: Territory of Norfolk Island + :cvar NGA: Federal Republic of Nigeria + :cvar NIC: Republic of Nicaragua + :cvar NIU: Niue + :cvar NLD: Kingdom of the Netherlands + :cvar NOR: Kingdom of Norway + :cvar NPL: Federal Democratic Republic of Nepal + :cvar NRU: Republic of Nauru + :cvar NZL: New Zealand + :cvar OMN: Sultanate of Oman + :cvar PAK: Islamic Republic of Pakistan + :cvar PAN: Republic of Panama + :cvar PCN: Pitcairn, Henderson, Ducie, and Oeno Islands + :cvar PER: Republic of Peru + :cvar PHL: Republic of the Philippines + :cvar PLW: Republic of Palau + :cvar PNG: Independent State of Papua New Guinea + :cvar POL: Republic of Poland + :cvar PRI: Commonwealth of Puerto Rico + :cvar PRK: Democratic People's Republic of Korea + :cvar PRT: Portuguese Republic + :cvar PRY: Republic of Paraguay + :cvar PSE: Palestinian Territory + :cvar PYF: French Polynesia + :cvar QAT: State of Qatar + :cvar REU: Department of Reunion + :cvar ROU: Romania + :cvar RUS: Russian Federation + :cvar RWA: Republic of Rwanda + :cvar SAU: Kingdom of Saudi Arabia + :cvar SDN: Republic of the Sudan + :cvar SEN: Republic of Senegal + :cvar SGP: Republic of Singapore + :cvar SGS: South Georgia and South Sandwich Islands + :cvar SHN: Saint Helena, Ascension, and Tristan da Cunha + :cvar SLB: Solomon Islands + :cvar SLE: Republic of Sierra Leone + :cvar SLV: Republic of El Salvador + :cvar SMR: Republic of San Marino + :cvar SOM: Somalia, Federal Republic of + :cvar SPM: Territorial Collectivity of Saint Pierre and Miquelon + :cvar SRB: Republic of Serbia + :cvar SSD: Republic of South Sudan + :cvar STP: Democratic Republic of Sao Tome and Principe + :cvar SUR: Republic of Suriname + :cvar SVK: Slovak Republic + :cvar SVN: Republic of Slovenia + :cvar SWE: Kingdom of Sweden + :cvar SWZ: Kingdom of Swaziland + :cvar SXM: Sint Maarten + :cvar SYC: Republic of Seychelles + :cvar SYR: Syrian Arab Republic + :cvar TCA: Turks and Caicos Islands + :cvar TCD: Republic of Chad + :cvar TGO: Togolese Republic + :cvar THA: Kingdom of Thailand + :cvar TJK: Republic of Tajikistan + :cvar TKL: Tokelau + :cvar TKM: Turkmenistan + :cvar TLS: Democratic Republic of Timor-Leste + :cvar TON: Kingdom of Tonga + :cvar TTO: Republic of Trinidad and Tobago + :cvar TUN: Tunisian Republic + :cvar TUR: Republic of Turkey + :cvar TUV: Tuvalu + :cvar TWN: Taiwan + :cvar TZA: United Republic of Tanzania + :cvar UGA: Republic of Uganda + :cvar UKR: Ukraine + :cvar URY: Oriental Republic of Uruguay + :cvar USA: United States of America + :cvar UZB: Republic of Uzbekistan + :cvar VAT: State of the Vatican City + :cvar VCT: Saint Vincent and the Grenadines + :cvar VEN: Bolivarian Republic of Venezuela + :cvar VGB: Virgin Islands, British + :cvar VIR: United States Virgin Islands + :cvar VNM: Socialist Republic of Vietnam + :cvar VUT: Republic of Vanuatu + :cvar WLF: Wallis and Futuna + :cvar WSM: Independent State of Samoa + :cvar XAC: Territory of Ashmore and Cartier Islands + :cvar XAZ: Entity 1 + :cvar XBI: Bassas da India + :cvar XBK: Baker Island + :cvar XCR: Entity 2 + :cvar XCS: Coral Sea Islands Territory + :cvar XCY: Entity 3 + :cvar XEU: Europa Island + :cvar XGL: Glorioso Islands + :cvar XGZ: Gaza Strip + :cvar XHO: Howland Island + :cvar XJA: Johnston Atoll + :cvar XJM: Jan Mayen + :cvar XJN: Juan de Nova Island + :cvar XJV: Jarvis Island + :cvar XKM: Entity 4 + :cvar XKN: Entity 5 + :cvar XKR: Kingman Reef + :cvar XKS: Republic of Kosovo + :cvar XMW: Midway Islands + :cvar XNV: Navassa Island + :cvar XPL: Palmyra Atoll + :cvar XPR: Paracel Islands + :cvar XQP: Etorofu, Habomai, Kunashiri, and Shikotan Islands + :cvar XQZ: Akrotiri + :cvar XSP: Spratly Islands + :cvar XSV: Svalbard + :cvar XTR: Tromelin Island + :cvar XWB: West Bank + :cvar XWK: Wake Island + :cvar XXD: Dhekelia + :cvar XXX: No Man's Land + :cvar YEM: Republic of Yemen + :cvar ZAF: Republic of South Africa + :cvar ZMB: Republic of Zambia + :cvar ZWE: Republic of Zimbabwe + :cvar ACGU: FOUR EYES + :cvar APFS: Suppressed + :cvar BWCS: Biological Weapons Convention States + :cvar CFCK: ROK/US Combined Forces Command, Korea + :cvar CMFC: Combined Maritime Forces Central + :cvar CMFP: Cooperative Maritime Forces Pacific + :cvar CPMT: Civilian Protection Monitoring Team for Sudan + :cvar CTOC: Countering Transnational Organized Crime + :cvar CWCS: Chemical Weapons Convention States + :cvar FVEY: FIVE EYES + :cvar GCTF: Global Counter-Terrorism Forces + :cvar GMIF: Global Maritime Interception Forces + :cvar ISAF: International Security Assistance Force for Afghanistan + :cvar KFOR: Stabilization Forces in Kosovo + :cvar MLEC: Multi-Lateral Enduring Contingency + :cvar NACT: North African Counter-Terrorism Forces + :cvar NATO: North Atlantic Treaty Organization + :cvar NCFE: NATO Convention Armed Forces in Europe + :cvar OSTY: Open Skies Treaty + :cvar SPAA: Suppressed + :cvar TEYE: THREE EYES + :cvar UNCK: United Nations Command, Korea + """ + + FGI = "FGI" + ABW = "ABW" + AFG = "AFG" + AGO = "AGO" + AIA = "AIA" + ALB = "ALB" + AND = "AND" + ARE = "ARE" + ARG = "ARG" + ARM = "ARM" + ASM = "ASM" + ATA = "ATA" + ATF = "ATF" + ATG = "ATG" + AUS = "AUS" + AUT = "AUT" + AX2 = "AX2" + AZE = "AZE" + BDI = "BDI" + BEL = "BEL" + BEN = "BEN" + BES = "BES" + BFA = "BFA" + BGD = "BGD" + BGR = "BGR" + BHR = "BHR" + BHS = "BHS" + BIH = "BIH" + BLM = "BLM" + BLR = "BLR" + BLZ = "BLZ" + BMU = "BMU" + BOL = "BOL" + BRA = "BRA" + BRB = "BRB" + BRN = "BRN" + BTN = "BTN" + BVT = "BVT" + BWA = "BWA" + CAF = "CAF" + CAN = "CAN" + CCK = "CCK" + CHE = "CHE" + CHL = "CHL" + CHN = "CHN" + CIV = "CIV" + CMR = "CMR" + COD = "COD" + COG = "COG" + COK = "COK" + COL = "COL" + COM = "COM" + CPT = "CPT" + CPV = "CPV" + CRI = "CRI" + CUB = "CUB" + CUW = "CUW" + CXR = "CXR" + CYM = "CYM" + CYP = "CYP" + CZE = "CZE" + DEU = "DEU" + DGA = "DGA" + DJI = "DJI" + DMA = "DMA" + DNK = "DNK" + DOM = "DOM" + DZA = "DZA" + ECU = "ECU" + EGY = "EGY" + ERI = "ERI" + ESH = "ESH" + ESP = "ESP" + EST = "EST" + ETH = "ETH" + FIN = "FIN" + FJI = "FJI" + FLK = "FLK" + FRA = "FRA" + FRO = "FRO" + FSM = "FSM" + GAB = "GAB" + GBR = "GBR" + GEO = "GEO" + GGY = "GGY" + GHA = "GHA" + GIB = "GIB" + GIN = "GIN" + GLP = "GLP" + GMB = "GMB" + GNB = "GNB" + GNQ = "GNQ" + GRC = "GRC" + GRD = "GRD" + GRL = "GRL" + GTM = "GTM" + GUF = "GUF" + GUM = "GUM" + GUY = "GUY" + HKG = "HKG" + HMD = "HMD" + HND = "HND" + HRV = "HRV" + HTI = "HTI" + HUN = "HUN" + IDN = "IDN" + IMN = "IMN" + IND = "IND" + IOT = "IOT" + IRL = "IRL" + IRN = "IRN" + IRQ = "IRQ" + ISL = "ISL" + ISR = "ISR" + ITA = "ITA" + JAM = "JAM" + JEY = "JEY" + JOR = "JOR" + JPN = "JPN" + KAZ = "KAZ" + KEN = "KEN" + KGZ = "KGZ" + KHM = "KHM" + KIR = "KIR" + KNA = "KNA" + KOR = "KOR" + KWT = "KWT" + LAO = "LAO" + LBN = "LBN" + LBR = "LBR" + LBY = "LBY" + LCA = "LCA" + LIE = "LIE" + LKA = "LKA" + LSO = "LSO" + LTU = "LTU" + LUX = "LUX" + LVA = "LVA" + MAC = "MAC" + MAF = "MAF" + MAR = "MAR" + MCO = "MCO" + MDA = "MDA" + MDG = "MDG" + MDV = "MDV" + MEX = "MEX" + MHL = "MHL" + MKD = "MKD" + MLI = "MLI" + MLT = "MLT" + MMR = "MMR" + MNE = "MNE" + MNG = "MNG" + MNP = "MNP" + MOZ = "MOZ" + MRT = "MRT" + MSR = "MSR" + MTQ = "MTQ" + MUS = "MUS" + MWI = "MWI" + MYS = "MYS" + MYT = "MYT" + NAM = "NAM" + NCL = "NCL" + NER = "NER" + NFK = "NFK" + NGA = "NGA" + NIC = "NIC" + NIU = "NIU" + NLD = "NLD" + NOR = "NOR" + NPL = "NPL" + NRU = "NRU" + NZL = "NZL" + OMN = "OMN" + PAK = "PAK" + PAN = "PAN" + PCN = "PCN" + PER = "PER" + PHL = "PHL" + PLW = "PLW" + PNG = "PNG" + POL = "POL" + PRI = "PRI" + PRK = "PRK" + PRT = "PRT" + PRY = "PRY" + PSE = "PSE" + PYF = "PYF" + QAT = "QAT" + REU = "REU" + ROU = "ROU" + RUS = "RUS" + RWA = "RWA" + SAU = "SAU" + SDN = "SDN" + SEN = "SEN" + SGP = "SGP" + SGS = "SGS" + SHN = "SHN" + SLB = "SLB" + SLE = "SLE" + SLV = "SLV" + SMR = "SMR" + SOM = "SOM" + SPM = "SPM" + SRB = "SRB" + SSD = "SSD" + STP = "STP" + SUR = "SUR" + SVK = "SVK" + SVN = "SVN" + SWE = "SWE" + SWZ = "SWZ" + SXM = "SXM" + SYC = "SYC" + SYR = "SYR" + TCA = "TCA" + TCD = "TCD" + TGO = "TGO" + THA = "THA" + TJK = "TJK" + TKL = "TKL" + TKM = "TKM" + TLS = "TLS" + TON = "TON" + TTO = "TTO" + TUN = "TUN" + TUR = "TUR" + TUV = "TUV" + TWN = "TWN" + TZA = "TZA" + UGA = "UGA" + UKR = "UKR" + URY = "URY" + USA = "USA" + UZB = "UZB" + VAT = "VAT" + VCT = "VCT" + VEN = "VEN" + VGB = "VGB" + VIR = "VIR" + VNM = "VNM" + VUT = "VUT" + WLF = "WLF" + WSM = "WSM" + XAC = "XAC" + XAZ = "XAZ" + XBI = "XBI" + XBK = "XBK" + XCR = "XCR" + XCS = "XCS" + XCY = "XCY" + XEU = "XEU" + XGL = "XGL" + XGZ = "XGZ" + XHO = "XHO" + XJA = "XJA" + XJM = "XJM" + XJN = "XJN" + XJV = "XJV" + XKM = "XKM" + XKN = "XKN" + XKR = "XKR" + XKS = "XKS" + XMW = "XMW" + XNV = "XNV" + XPL = "XPL" + XPR = "XPR" + XQP = "XQP" + XQZ = "XQZ" + XSP = "XSP" + XSV = "XSV" + XTR = "XTR" + XWB = "XWB" + XWK = "XWK" + XXD = "XXD" + XXX = "XXX" + YEM = "YEM" + ZAF = "ZAF" + ZMB = "ZMB" + ZWE = "ZWE" + ACGU = "ACGU" + APFS = "APFS" + BWCS = "BWCS" + CFCK = "CFCK" + CMFC = "CMFC" + CMFP = "CMFP" + CPMT = "CPMT" + CTOC = "CTOC" + CWCS = "CWCS" + FVEY = "FVEY" + GCTF = "GCTF" + GMIF = "GMIF" + ISAF = "ISAF" + KFOR = "KFOR" + MLEC = "MLEC" + NACT = "NACT" + NATO = "NATO" + NCFE = "NCFE" + OSTY = "OSTY" + SPAA = "SPAA" + TEYE = "TEYE" + UNCK = "UNCK" diff --git a/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatrel_to.py b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatrel_to.py new file mode 100644 index 0000000..7c7ec48 --- /dev/null +++ b/src/aws/osml/formats/sidd/models/external/ism_v13/schema/ismcat/cvegenerated/cvenum_ismcatrel_to.py @@ -0,0 +1,620 @@ +"""This file was generated by xsdata, v23.8, on 2023-10-05 09:59:45 + +Generator: DataclassGenerator +See: https://xsdata.readthedocs.io/ +""" +from enum import Enum + +__NAMESPACE__ = "urn:us:gov:ic:cvenum:ismcat:relto" + + +class CVEnumISMCATRelToValuesvalue(Enum): + """ + :cvar USA: United States + :cvar ABW: Aruba + :cvar AFG: Islamic Republic of Afghanistan + :cvar AGO: Republic of Angola + :cvar AIA: Anguilla + :cvar ALB: Republic of Albania + :cvar AND: Principality of Andorra + :cvar ARE: United Arab Emirates + :cvar ARG: Argentine Republic + :cvar ARM: Republic of Armenia + :cvar ASM: Territory of American Samoa + :cvar ATA: Antarctica + :cvar ATF: French Southern and Antarctic Lands + :cvar ATG: Antigua and Barbuda + :cvar AUS: Commonwealth of Australia + :cvar AUT: Republic of Austria + :cvar AX2: Guantanamo Bay Naval Base + :cvar AZE: Republic of Azerbaijan + :cvar BDI: Republic of Burundi + :cvar BEL: Kingdom of Belgium + :cvar BEN: Republic of Benin + :cvar BES: Bonaire, Sint Eustatius, and Saba + :cvar BFA: Burkina Faso + :cvar BGD: People's Republic of Bangladesh + :cvar BGR: Republic of Bulgaria + :cvar BHR: Kingdom of Bahrain + :cvar BHS: Commonwealth of The Bahamas + :cvar BIH: Bosnia and Herzegovina + :cvar BLM: Saint Barthelemy + :cvar BLR: Republic of Belarus + :cvar BLZ: Belize + :cvar BMU: Bermuda + :cvar BOL: Plurinational State of Bolivia + :cvar BRA: Federative Republic of Brazil + :cvar BRB: Barbados + :cvar BRN: Brunei Darussalam + :cvar BTN: Kingdom of Bhutan + :cvar BVT: Bouvet Island + :cvar BWA: Republic of Botswana + :cvar CAF: Central African Republic + :cvar CAN: Canada + :cvar CCK: Territory of Cocos (Keeling) Islands + :cvar CHE: Swiss Confederation + :cvar CHL: Republic of Chile + :cvar CHN: People's Republic of China + :cvar CIV: Republic of CƓte d'Ivoire + :cvar CMR: Republic of Cameroon + :cvar COD: Democratic Republic of the Congo + :cvar COG: Republic of the Congo + :cvar COK: Cook Islands + :cvar COL: Republic of Colombia + :cvar COM: Union of the Comoros + :cvar CPT: Clipperton Island + :cvar CPV: Republic of Cape Verde + :cvar CRI: Republic of Costa Rica + :cvar CUB: Republic of Cuba + :cvar CUW: CuraƧao + :cvar CXR: Territory of Christmas Island + :cvar CYM: Cayman Islands + :cvar CYP: Republic of Cyprus + :cvar CZE: Czech Republic + :cvar DEU: Federal Republic of Germany + :cvar DGA: Diego Garcia + :cvar DJI: Republic of Djibouti + :cvar DMA: Commonwealth of Dominica + :cvar DNK: Kingdom of Denmark + :cvar DOM: Dominican Republic + :cvar DZA: People's Democratic Republic of Algeria + :cvar ECU: Republic of Ecuador + :cvar EGY: Arab Republic of Egypt + :cvar ERI: State of Eritrea + :cvar ESH: Western Sahara + :cvar ESP: Kingdom of Spain + :cvar EST: Republic of Estonia + :cvar ETH: Federal Democratic Republic of Ethiopia + :cvar FIN: Republic of Finland + :cvar FJI: Republic of Fiji + :cvar FLK: Falkland Islands (Islas Malvinas) + :cvar FRA: French Republic + :cvar FRO: Faroe Islands + :cvar FSM: Federated States of Micronesia + :cvar GAB: Gabonese Republic + :cvar GBR: United Kingdom of Great Britain and Northern Ireland + :cvar GEO: Georgia + :cvar GGY: Bailiwick of Guernsey + :cvar GHA: Republic of Ghana + :cvar GIB: Gibraltar + :cvar GIN: Republic of Guinea + :cvar GLP: Department of Guadeloupe + :cvar GMB: Republic of The Gambia + :cvar GNB: Republic of Guinea-Bissau + :cvar GNQ: Republic of Equatorial Guinea + :cvar GRC: Hellenic Republic + :cvar GRD: Grenada + :cvar GRL: Greenland + :cvar GTM: Republic of Guatemala + :cvar GUF: Department of Guiana + :cvar GUM: Territory of Guam + :cvar GUY: Co-operative Republic of Guyana + :cvar HKG: Hong Kong Special Administrative Region + :cvar HMD: Territory of Heard Island and McDonald Islands + :cvar HND: Republic of Honduras + :cvar HRV: Republic of Croatia + :cvar HTI: Republic of Haiti + :cvar HUN: Hungary + :cvar IDN: Republic of Indonesia + :cvar IMN: Isle of Man + :cvar IND: Republic of India + :cvar IOT: British Indian Ocean Territory + :cvar IRL: Ireland + :cvar IRN: Islamic Republic of Iran + :cvar IRQ: Republic of Iraq + :cvar ISL: Republic of Iceland + :cvar ISR: State of Israel + :cvar ITA: Italian Republic + :cvar JAM: Jamaica + :cvar JEY: Bailiwick of Jersey + :cvar JOR: Hashemite Kingdom of Jordan + :cvar JPN: Japan + :cvar KAZ: Republic of Kazakhstan + :cvar KEN: Republic of Kenya + :cvar KGZ: Kyrgyz Republic + :cvar KHM: Kingdom of Cambodia + :cvar KIR: Republic of Kiribati + :cvar KNA: Federation of Saint Kitts and Nevis + :cvar KOR: Republic of Korea + :cvar KWT: State of Kuwait + :cvar LAO: Lao People's Democratic Republic + :cvar LBN: Lebanese Republic + :cvar LBR: Republic of Liberia + :cvar LBY: Libya + :cvar LCA: Saint Lucia + :cvar LIE: Principality of Liechtenstein + :cvar LKA: Democratic Socialist Republic of Sri Lanka + :cvar LSO: Kingdom of Lesotho + :cvar LTU: Republic of Lithuania + :cvar LUX: Grand Duchy of Luxembourg + :cvar LVA: Republic of Latvia + :cvar MAC: Macau Special Administrative Region + :cvar MAF: Saint Martin + :cvar MAR: Kingdom of Morocco + :cvar MCO: Principality of Monaco + :cvar MDA: Republic of Moldova + :cvar MDG: Republic of Madagascar + :cvar MDV: Republic of Maldives + :cvar MEX: United Mexican States + :cvar MHL: Republic of the Marshall Islands + :cvar MKD: Republic of Macedonia + :cvar MLI: Republic of Mali + :cvar MLT: Republic of Malta + :cvar MMR: Union of Burma + :cvar MNE: Montenegro + :cvar MNG: Mongolia + :cvar MNP: Commonwealth of the Northern Mariana Islands + :cvar MOZ: Republic of Mozambique + :cvar MRT: Islamic Republic of Mauritania + :cvar MSR: Montserrat + :cvar MTQ: Department of Martinique + :cvar MUS: Republic of Mauritius + :cvar MWI: Republic of Malawi + :cvar MYS: Malaysia + :cvar MYT: Department of Mayotte + :cvar NAM: Republic of Namibia + :cvar NCL: New Caledonia + :cvar NER: Republic of the Niger + :cvar NFK: Territory of Norfolk Island + :cvar NGA: Federal Republic of Nigeria + :cvar NIC: Republic of Nicaragua + :cvar NIU: Niue + :cvar NLD: Kingdom of the Netherlands + :cvar NOR: Kingdom of Norway + :cvar NPL: Federal Democratic Republic of Nepal + :cvar NRU: Republic of Nauru + :cvar NZL: New Zealand + :cvar OMN: Sultanate of Oman + :cvar PAK: Islamic Republic of Pakistan + :cvar PAN: Republic of Panama + :cvar PCN: Pitcairn, Henderson, Ducie, and Oeno Islands + :cvar PER: Republic of Peru + :cvar PHL: Republic of the Philippines + :cvar PLW: Republic of Palau + :cvar PNG: Independent State of Papua New Guinea + :cvar POL: Republic of Poland + :cvar PRI: Commonwealth of Puerto Rico + :cvar PRK: Democratic People's Republic of Korea + :cvar PRT: Portuguese Republic + :cvar PRY: Republic of Paraguay + :cvar PSE: Palestinian Territory + :cvar PYF: French Polynesia + :cvar QAT: State of Qatar + :cvar REU: Department of Reunion + :cvar ROU: Romania + :cvar RUS: Russian Federation + :cvar RWA: Republic of Rwanda + :cvar SAU: Kingdom of Saudi Arabia + :cvar SDN: Republic of the Sudan + :cvar SEN: Republic of Senegal + :cvar SGP: Republic of Singapore + :cvar SGS: South Georgia and South Sandwich Islands + :cvar SHN: Saint Helena, Ascension, and Tristan da Cunha + :cvar SLB: Solomon Islands + :cvar SLE: Republic of Sierra Leone + :cvar SLV: Republic of El Salvador + :cvar SMR: Republic of San Marino + :cvar SOM: Somalia, Federal Republic of + :cvar SPM: Territorial Collectivity of Saint Pierre and Miquelon + :cvar SRB: Republic of Serbia + :cvar SSD: Republic of South Sudan + :cvar STP: Democratic Republic of Sao Tome and Principe + :cvar SUR: Republic of Suriname + :cvar SVK: Slovak Republic + :cvar SVN: Republic of Slovenia + :cvar SWE: Kingdom of Sweden + :cvar SWZ: Kingdom of Swaziland + :cvar SXM: Sint Maarten + :cvar SYC: Republic of Seychelles + :cvar SYR: Syrian Arab Republic + :cvar TCA: Turks and Caicos Islands + :cvar TCD: Republic of Chad + :cvar TGO: Togolese Republic + :cvar THA: Kingdom of Thailand + :cvar TJK: Republic of Tajikistan + :cvar TKL: Tokelau + :cvar TKM: Turkmenistan + :cvar TLS: Democratic Republic of Timor-Leste + :cvar TON: Kingdom of Tonga + :cvar TTO: Republic of Trinidad and Tobago + :cvar TUN: Tunisian Republic + :cvar TUR: Republic of Turkey + :cvar TUV: Tuvalu + :cvar TWN: Taiwan + :cvar TZA: United Republic of Tanzania + :cvar UGA: Republic of Uganda + :cvar UKR: Ukraine + :cvar URY: Oriental Republic of Uruguay + :cvar UZB: Republic of Uzbekistan + :cvar VAT: State of the Vatican City + :cvar VCT: Saint Vincent and the Grenadines + :cvar VEN: Bolivarian Republic of Venezuela + :cvar VGB: Virgin Islands, British + :cvar VIR: United States Virgin Islands + :cvar VNM: Socialist Republic of Vietnam + :cvar VUT: Republic of Vanuatu + :cvar WLF: Wallis and Futuna + :cvar WSM: Independent State of Samoa + :cvar XAC: Territory of Ashmore and Cartier Islands + :cvar XAZ: Entity 1 + :cvar XBI: Bassas da India + :cvar XBK: Baker Island + :cvar XCR: Entity 2 + :cvar XCS: Coral Sea Islands Territory + :cvar XCY: Entity 3 + :cvar XEU: Europa Island + :cvar XGL: Glorioso Islands + :cvar XGZ: Gaza Strip + :cvar XHO: Howland Island + :cvar XJA: Johnston Atoll + :cvar XJM: Jan Mayen + :cvar XJN: Juan de Nova Island + :cvar XJV: Jarvis Island + :cvar XKM: Entity 4 + :cvar XKN: Entity 5 + :cvar XKR: Kingman Reef + :cvar XKS: Republic of Kosovo + :cvar XMW: Midway Islands + :cvar XNV: Navassa Island + :cvar XPL: Palmyra Atoll + :cvar XPR: Paracel Islands + :cvar XQP: Etorofu, Habomai, Kunashiri, and Shikotan Islands + :cvar XQZ: Akrotiri + :cvar XSP: Spratly Islands + :cvar XSV: Svalbard + :cvar XTR: Tromelin Island + :cvar XWB: West Bank + :cvar XWK: Wake Island + :cvar XXD: Dhekelia + :cvar XXX: No Man's Land + :cvar YEM: Republic of Yemen + :cvar ZAF: Republic of South Africa + :cvar ZMB: Republic of Zambia + :cvar ZWE: Republic of Zimbabwe + :cvar ACGU: FOUR EYES + :cvar APFS: Suppressed + :cvar BWCS: Biological Weapons Convention States + :cvar CFCK: ROK/US Combined Forces Command, Korea + :cvar CMFC: Combined Maritime Forces Central + :cvar CMFP: Cooperative Maritime Forces Pacific + :cvar CPMT: Civilian Protection Monitoring Team for Sudan + :cvar CTOC: Countering Transnational Organized Crime + :cvar CWCS: Chemical Weapons Convention States + :cvar FVEY: FIVE EYES + :cvar GCTF: Global Counter-Terrorism Forces + :cvar GMIF: Global Maritime Interception Forces + :cvar ISAF: International Security Assistance Force for Afghanistan + :cvar KFOR: Stabilization Forces in Kosovo + :cvar MLEC: Multi-Lateral Enduring Contingency + :cvar NACT: North African Counter-Terrorism Forces + :cvar NATO: North Atlantic Treaty Organization + :cvar NCFE: NATO Convention Armed Forces in Europe + :cvar OSTY: Open Skies Treaty + :cvar SPAA: Suppressed + :cvar TEYE: THREE EYES + :cvar UNCK: United Nations Command, Korea + """ + + USA = "USA" + ABW = "ABW" + AFG = "AFG" + AGO = "AGO" + AIA = "AIA" + ALB = "ALB" + AND = "AND" + ARE = "ARE" + ARG = "ARG" + ARM = "ARM" + ASM = "ASM" + ATA = "ATA" + ATF = "ATF" + ATG = "ATG" + AUS = "AUS" + AUT = "AUT" + AX2 = "AX2" + AZE = "AZE" + BDI = "BDI" + BEL = "BEL" + BEN = "BEN" + BES = "BES" + BFA = "BFA" + BGD = "BGD" + BGR = "BGR" + BHR = "BHR" + BHS = "BHS" + BIH = "BIH" + BLM = "BLM" + BLR = "BLR" + BLZ = "BLZ" + BMU = "BMU" + BOL = "BOL" + BRA = "BRA" + BRB = "BRB" + BRN = "BRN" + BTN = "BTN" + BVT = "BVT" + BWA = "BWA" + CAF = "CAF" + CAN = "CAN" + CCK = "CCK" + CHE = "CHE" + CHL = "CHL" + CHN = "CHN" + CIV = "CIV" + CMR = "CMR" + COD = "COD" + COG = "COG" + COK = "COK" + COL = "COL" + COM = "COM" + CPT = "CPT" + CPV = "CPV" + CRI = "CRI" + CUB = "CUB" + CUW = "CUW" + CXR = "CXR" + CYM = "CYM" + CYP = "CYP" + CZE = "CZE" + DEU = "DEU" + DGA = "DGA" + DJI = "DJI" + DMA = "DMA" + DNK = "DNK" + DOM = "DOM" + DZA = "DZA" + ECU = "ECU" + EGY = "EGY" + ERI = "ERI" + ESH = "ESH" + ESP = "ESP" + EST = "EST" + ETH = "ETH" + FIN = "FIN" + FJI = "FJI" + FLK = "FLK" + FRA = "FRA" + FRO = "FRO" + FSM = "FSM" + GAB = "GAB" + GBR = "GBR" + GEO = "GEO" + GGY = "GGY" + GHA = "GHA" + GIB = "GIB" + GIN = "GIN" + GLP = "GLP" + GMB = "GMB" + GNB = "GNB" + GNQ = "GNQ" + GRC = "GRC" + GRD = "GRD" + GRL = "GRL" + GTM = "GTM" + GUF = "GUF" + GUM = "GUM" + GUY = "GUY" + HKG = "HKG" + HMD = "HMD" + HND = "HND" + HRV = "HRV" + HTI = "HTI" + HUN = "HUN" + IDN = "IDN" + IMN = "IMN" + IND = "IND" + IOT = "IOT" + IRL = "IRL" + IRN = "IRN" + IRQ = "IRQ" + ISL = "ISL" + ISR = "ISR" + ITA = "ITA" + JAM = "JAM" + JEY = "JEY" + JOR = "JOR" + JPN = "JPN" + KAZ = "KAZ" + KEN = "KEN" + KGZ = "KGZ" + KHM = "KHM" + KIR = "KIR" + KNA = "KNA" + KOR = "KOR" + KWT = "KWT" + LAO = "LAO" + LBN = "LBN" + LBR = "LBR" + LBY = "LBY" + LCA = "LCA" + LIE = "LIE" + LKA = "LKA" + LSO = "LSO" + LTU = "LTU" + LUX = "LUX" + LVA = "LVA" + MAC = "MAC" + MAF = "MAF" + MAR = "MAR" + MCO = "MCO" + MDA = "MDA" + MDG = "MDG" + MDV = "MDV" + MEX = "MEX" + MHL = "MHL" + MKD = "MKD" + MLI = "MLI" + MLT = "MLT" + MMR = "MMR" + MNE = "MNE" + MNG = "MNG" + MNP = "MNP" + MOZ = "MOZ" + MRT = "MRT" + MSR = "MSR" + MTQ = "MTQ" + MUS = "MUS" + MWI = "MWI" + MYS = "MYS" + MYT = "MYT" + NAM = "NAM" + NCL = "NCL" + NER = "NER" + NFK = "NFK" + NGA = "NGA" + NIC = "NIC" + NIU = "NIU" + NLD = "NLD" + NOR = "NOR" + NPL = "NPL" + NRU = "NRU" + NZL = "NZL" + OMN = "OMN" + PAK = "PAK" + PAN = "PAN" + PCN = "PCN" + PER = "PER" + PHL = "PHL" + PLW = "PLW" + PNG = "PNG" + POL = "POL" + PRI = "PRI" + PRK = "PRK" + PRT = "PRT" + PRY = "PRY" + PSE = "PSE" + PYF = "PYF" + QAT = "QAT" + REU = "REU" + ROU = "ROU" + RUS = "RUS" + RWA = "RWA" + SAU = "SAU" + SDN = "SDN" + SEN = "SEN" + SGP = "SGP" + SGS = "SGS" + SHN = "SHN" + SLB = "SLB" + SLE = "SLE" + SLV = "SLV" + SMR = "SMR" + SOM = "SOM" + SPM = "SPM" + SRB = "SRB" + SSD = "SSD" + STP = "STP" + SUR = "SUR" + SVK = "SVK" + SVN = "SVN" + SWE = "SWE" + SWZ = "SWZ" + SXM = "SXM" + SYC = "SYC" + SYR = "SYR" + TCA = "TCA" + TCD = "TCD" + TGO = "TGO" + THA = "THA" + TJK = "TJK" + TKL = "TKL" + TKM = "TKM" + TLS = "TLS" + TON = "TON" + TTO = "TTO" + TUN = "TUN" + TUR = "TUR" + TUV = "TUV" + TWN = "TWN" + TZA = "TZA" + UGA = "UGA" + UKR = "UKR" + URY = "URY" + UZB = "UZB" + VAT = "VAT" + VCT = "VCT" + VEN = "VEN" + VGB = "VGB" + VIR = "VIR" + VNM = "VNM" + VUT = "VUT" + WLF = "WLF" + WSM = "WSM" + XAC = "XAC" + XAZ = "XAZ" + XBI = "XBI" + XBK = "XBK" + XCR = "XCR" + XCS = "XCS" + XCY = "XCY" + XEU = "XEU" + XGL = "XGL" + XGZ = "XGZ" + XHO = "XHO" + XJA = "XJA" + XJM = "XJM" + XJN = "XJN" + XJV = "XJV" + XKM = "XKM" + XKN = "XKN" + XKR = "XKR" + XKS = "XKS" + XMW = "XMW" + XNV = "XNV" + XPL = "XPL" + XPR = "XPR" + XQP = "XQP" + XQZ = "XQZ" + XSP = "XSP" + XSV = "XSV" + XTR = "XTR" + XWB = "XWB" + XWK = "XWK" + XXD = "XXD" + XXX = "XXX" + YEM = "YEM" + ZAF = "ZAF" + ZMB = "ZMB" + ZWE = "ZWE" + ACGU = "ACGU" + APFS = "APFS" + BWCS = "BWCS" + CFCK = "CFCK" + CMFC = "CMFC" + CMFP = "CMFP" + CPMT = "CPMT" + CTOC = "CTOC" + CWCS = "CWCS" + FVEY = "FVEY" + GCTF = "GCTF" + GMIF = "GMIF" + ISAF = "ISAF" + KFOR = "KFOR" + MLEC = "MLEC" + NACT = "NACT" + NATO = "NATO" + NCFE = "NCFE" + OSTY = "OSTY" + SPAA = "SPAA" + TEYE = "TEYE" + UNCK = "UNCK" diff --git a/src/aws/osml/formats/sidd/models/sfa.py b/src/aws/osml/formats/sidd/models/sfa.py new file mode 100644 index 0000000..99d7838 --- /dev/null +++ b/src/aws/osml/formats/sidd/models/sfa.py @@ -0,0 +1,481 @@ +"""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 typing import List, Optional + +__NAMESPACE__ = "urn:SFA:1.2.0" + + +@dataclass +class GeometryType: + pass + + +@dataclass +class ParameterType: + parameter_name: Optional[str] = field( + default=None, + metadata={ + "name": "ParameterName", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + value: Optional[float] = field( + default=None, + metadata={ + "name": "Value", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + + +@dataclass +class PrimeMeridianType: + name: Optional[str] = field( + default=None, + metadata={ + "name": "Name", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + longitude: Optional[float] = field( + default=None, + metadata={ + "name": "Longitude", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + + +@dataclass +class ProjectionType: + projection_name: Optional[str] = field( + default=None, + metadata={ + "name": "ProjectionName", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + + +@dataclass +class SpheriodType: + spheriod_name: Optional[str] = field( + default=None, + metadata={ + "name": "SpheriodName", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + semi_major_axis: Optional[float] = field( + default=None, + metadata={ + "name": "SemiMajorAxis", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + inverse_flattening: Optional[float] = field( + default=None, + metadata={ + "name": "InverseFlattening", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + + +@dataclass +class UNITType: + unit_name: Optional[str] = field( + default=None, + metadata={ + "name": "UnitName", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + conversion_factor: Optional[float] = field( + default=None, + metadata={ + "name": "ConversionFactor", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + + +@dataclass +class CurveType(GeometryType): + pass + + +@dataclass +class DatumType: + spheroid: Optional[SpheriodType] = field( + default=None, + metadata={ + "name": "Spheroid", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + + +@dataclass +class GeometryCollectionType(GeometryType): + pass + + +@dataclass +class PointType(GeometryType): + x: Optional[float] = field( + default=None, + metadata={ + "name": "X", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + y: Optional[float] = field( + default=None, + metadata={ + "name": "Y", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + z: Optional[float] = field( + default=None, + metadata={ + "name": "Z", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + }, + ) + m: Optional[float] = field( + default=None, + metadata={ + "name": "M", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + }, + ) + + +@dataclass +class SurfaceType(GeometryType): + pass + + +@dataclass +class GeocentricCoordinateSystemType: + csname: Optional[str] = field( + default=None, + metadata={ + "name": "Csname", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + datum: Optional[DatumType] = field( + default=None, + metadata={ + "name": "Datum", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + prime_meridian: Optional[PrimeMeridianType] = field( + default=None, + metadata={ + "name": "PrimeMeridian", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + linear_unit: Optional[str] = field( + default=None, + metadata={ + "name": "LinearUnit", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + + +@dataclass +class GeographicCoordinateSystemType: + csname: Optional[str] = field( + default=None, + metadata={ + "name": "Csname", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + datum: Optional[DatumType] = field( + default=None, + metadata={ + "name": "Datum", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + prime_meridian: Optional[PrimeMeridianType] = field( + default=None, + metadata={ + "name": "PrimeMeridian", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + angular_unit: Optional[str] = field( + default=None, + metadata={ + "name": "AngularUnit", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + linear_unit: Optional[str] = field( + default=None, + metadata={ + "name": "LinearUnit", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + }, + ) + + +@dataclass +class LineStringType(CurveType): + vertex: List[PointType] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "min_occurs": 2, + }, + ) + + +@dataclass +class MultiCurveType(GeometryCollectionType): + pass + + +@dataclass +class MultiPointType(GeometryCollectionType): + vertex: List[PointType] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "min_occurs": 2, + }, + ) + + +@dataclass +class MultiSurfaceType(GeometryCollectionType): + pass + + +@dataclass +class LineType(LineStringType): + pass + + +@dataclass +class LinearRingType(LineStringType): + pass + + +@dataclass +class ProjectedCoordinateSystemType: + csname: Optional[str] = field( + default=None, + metadata={ + "name": "Csname", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + geographic_coordinate_system: Optional[GeographicCoordinateSystemType] = field( + default=None, + metadata={ + "name": "GeographicCoordinateSystem", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + projection: Optional[ProjectionType] = field( + default=None, + metadata={ + "name": "Projection", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + parameter: Optional[ParameterType] = field( + default=None, + metadata={ + "name": "Parameter", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + }, + ) + linear_unit: Optional[str] = field( + default=None, + metadata={ + "name": "LinearUnit", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "required": True, + }, + ) + + +@dataclass +class AbstractReferenceSystemType: + projected_coordinate_system: Optional[ProjectedCoordinateSystemType] = field( + default=None, + metadata={ + "name": "ProjectedCoordinateSystem", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + }, + ) + geographic_coordinate_system: Optional[GeographicCoordinateSystemType] = field( + default=None, + metadata={ + "name": "GeographicCoordinateSystem", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + }, + ) + geocentric_coordinate_system: Optional[GeocentricCoordinateSystemType] = field( + default=None, + metadata={ + "name": "GeocentricCoordinateSystem", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + }, + ) + + +@dataclass +class MultiLineStringType(MultiCurveType): + element: List[LineType] = field( + default_factory=list, + metadata={ + "name": "Element", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + }, + ) + + +@dataclass +class PolygonType(SurfaceType): + ring: List[LinearRingType] = field( + default_factory=list, + metadata={ + "name": "Ring", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "min_occurs": 1, + }, + ) + + +@dataclass +class MultiPolygonType(MultiSurfaceType): + element: List[PolygonType] = field( + default_factory=list, + metadata={ + "name": "Element", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + }, + ) + + +@dataclass +class PolyhedralSurfaceType(SurfaceType): + patch: List[PolygonType] = field( + default_factory=list, + metadata={ + "name": "Patch", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "min_occurs": 1, + }, + ) + + +@dataclass +class ReferenceSystemType(AbstractReferenceSystemType): + axis_name: List[str] = field( + default_factory=list, + metadata={ + "name": "AxisName", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "min_occurs": 1, + }, + ) + + +@dataclass +class TriangleType(PolygonType): + pass + + +@dataclass +class TriangulatedIrregularNetworkType(PolyhedralSurfaceType): + triangular_patch: List[TriangleType] = field( + default_factory=list, + metadata={ + "name": "TriangularPatch", + "type": "Element", + "namespace": "urn:SFA:1.2.0", + "min_occurs": 1, + }, + ) diff --git a/src/aws/osml/formats/sidd/models/sicommon_types.py b/src/aws/osml/formats/sidd/models/sicommon_types.py new file mode 100644 index 0000000..362a357 --- /dev/null +++ b/src/aws/osml/formats/sidd/models/sicommon_types.py @@ -0,0 +1,1526 @@ +"""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 + +from xsdata.models.datatype import XmlDateTime + +__NAMESPACE__ = "urn:SICommon:0.1" + + +@dataclass +class AngleMagnitudeType: + angle: Optional[float] = field( + default=None, + metadata={ + "name": "Angle", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + "min_inclusive": -180.0, + "max_inclusive": 180.0, + }, + ) + magnitude: Optional[float] = field( + default=None, + metadata={ + "name": "Magnitude", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + +@dataclass +class ArrayDoubleType: + value: Optional[float] = field( + default=None, + metadata={ + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class CollectIdentifierType(Enum): + MONOSTATIC = "MONOSTATIC" + BISTATIC = "BISTATIC" + + +@dataclass +class ComplexType: + real: Optional[float] = field( + default=None, + metadata={ + "name": "Real", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + imag: Optional[float] = field( + default=None, + metadata={ + "name": "Imag", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + +class CornerStringType(Enum): + VALUE_1_FRFC = "1:FRFC" + VALUE_2_FRLC = "2:FRLC" + VALUE_3_LRLC = "3:LRLC" + VALUE_4_LRFC = "4:LRFC" + + +class ErrorFrameType(Enum): + ECF = "ECF" + RIC_ECF = "RIC_ECF" + RIC_ECI = "RIC_ECI" + + +class GammaZeroSFIncidenceMapType(Enum): + APPILED = "APPILED" + NOT_APPLIED = "NOT_APPLIED" + + +@dataclass +class ImageCreationType: + application: Optional[str] = field( + default=None, + metadata={ + "name": "Application", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "DateTime", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + site: Optional[str] = field( + default=None, + metadata={ + "name": "Site", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + profile: Optional[str] = field( + default=None, + metadata={ + "name": "Profile", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + +@dataclass +class LLHType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + hae: Optional[float] = field( + default=None, + metadata={ + "name": "HAE", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + +@dataclass +class LatLonCornerType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "min_inclusive": 1, + "max_inclusive": 4, + }, + ) + + +@dataclass +class LatLonHAECornerType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + hae: Optional[float] = field( + default=None, + metadata={ + "name": "HAE", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "min_inclusive": 1, + "max_inclusive": 4, + }, + ) + + +@dataclass +class LatLonType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + +@dataclass +class LatLonVertexType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class LineType: + endpoint: List["LineType.Endpoint"] = field( + default_factory=list, + metadata={ + "name": "Endpoint", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "min_occurs": 2, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + @dataclass + class Endpoint: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class ModeIdentifierType(Enum): + SPOTLIGHT = "SPOTLIGHT" + STRIPMAP = "STRIPMAP" + DYNAMIC_STRIPMAP = "DYNAMIC STRIPMAP" + SCANSAR = "SCANSAR" + + +@dataclass +class ParameterType: + value: str = field( + default="", + metadata={ + "required": True, + }, + ) + name: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class PolarizationType(Enum): + V = "V" + H = "H" + RHC = "RHC" + LHC = "LHC" + OTHER = "OTHER" + + +@dataclass +class PolyCoef1DType: + value: Optional[float] = field( + default=None, + metadata={ + "required": True, + }, + ) + exponent1: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class PolyCoef2DType: + value: Optional[float] = field( + default=None, + metadata={ + "required": True, + }, + ) + exponent1: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + exponent2: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class PolygonType: + vertex: List["PolygonType.Vertex"] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "min_occurs": 3, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + @dataclass + class Vertex: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class RangeAzimuthType: + """ + Represents range and azimuth. + + :ivar range: Range dimension. + :ivar azimuth: Azimuth dimension. + """ + + range: Optional[float] = field( + default=None, + metadata={ + "name": "Range", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + azimuth: Optional[float] = field( + default=None, + metadata={ + "name": "Azimuth", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + +@dataclass +class RowColDoubleType: + row: Optional[float] = field( + default=None, + metadata={ + "name": "Row", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + col: Optional[float] = field( + default=None, + metadata={ + "name": "Col", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + +@dataclass +class RowColIntType: + row: Optional[int] = field( + default=None, + metadata={ + "name": "Row", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + col: Optional[int] = field( + default=None, + metadata={ + "name": "Col", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + +@dataclass +class RowColVertexType: + row: Optional[int] = field( + default=None, + metadata={ + "name": "Row", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + col: Optional[int] = field( + default=None, + metadata={ + "name": "Col", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class SigmaZeroSFIncidenceMapType(Enum): + APPLIED = "APPLIED" + NOT_APPLIED = "NOT_APPLIED" + + +@dataclass +class XYZType: + x: Optional[float] = field( + default=None, + metadata={ + "name": "X", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + y: Optional[float] = field( + default=None, + metadata={ + "name": "Y", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + z: Optional[float] = field( + default=None, + metadata={ + "name": "Z", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + +@dataclass +class ErrorStatisticsType: + composite_scp: Optional["ErrorStatisticsType.CompositeSCP"] = field( + default=None, + metadata={ + "name": "CompositeSCP", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + components: Optional["ErrorStatisticsType.Components"] = field( + default=None, + metadata={ + "name": "Components", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + additional_parms: Optional["ErrorStatisticsType.AdditionalParms"] = field( + default=None, + metadata={ + "name": "AdditionalParms", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + @dataclass + class CompositeSCP: + rg_az_err: Optional["ErrorStatisticsType.CompositeSCP.RgAzErr"] = field( + default=None, + metadata={ + "name": "RgAzErr", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + row_col_err: Optional["ErrorStatisticsType.CompositeSCP.RowColErr"] = field( + default=None, + metadata={ + "name": "RowColErr", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + @dataclass + class RgAzErr: + rg: Optional[float] = field( + default=None, + metadata={ + "name": "Rg", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + az: Optional[float] = field( + default=None, + metadata={ + "name": "Az", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + rg_az: Optional[float] = field( + default=None, + metadata={ + "name": "RgAz", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + @dataclass + class RowColErr: + row: Optional[float] = field( + default=None, + metadata={ + "name": "Row", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + col: Optional[float] = field( + default=None, + metadata={ + "name": "Col", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + row_col: Optional[float] = field( + default=None, + metadata={ + "name": "RowCol", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + @dataclass + class Components: + pos_vel_err: Optional["ErrorStatisticsType.Components.PosVelErr"] = field( + default=None, + metadata={ + "name": "PosVelErr", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + radar_sensor: Optional["ErrorStatisticsType.Components.RadarSensor"] = field( + default=None, + metadata={ + "name": "RadarSensor", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + tropo_error: Optional["ErrorStatisticsType.Components.TropoError"] = field( + default=None, + metadata={ + "name": "TropoError", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + iono_error: Optional["ErrorStatisticsType.Components.IonoError"] = field( + default=None, + metadata={ + "name": "IonoError", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + @dataclass + class PosVelErr: + frame: Optional[ErrorFrameType] = field( + default=None, + metadata={ + "name": "Frame", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p1: Optional[float] = field( + default=None, + metadata={ + "name": "P1", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p2: Optional[float] = field( + default=None, + metadata={ + "name": "P2", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p3: Optional[float] = field( + default=None, + metadata={ + "name": "P3", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + v1: Optional[float] = field( + default=None, + metadata={ + "name": "V1", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + v2: Optional[float] = field( + default=None, + metadata={ + "name": "V2", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + v3: Optional[float] = field( + default=None, + metadata={ + "name": "V3", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + corr_coefs: Optional["ErrorStatisticsType.Components.PosVelErr.CorrCoefs"] = field( + default=None, + metadata={ + "name": "CorrCoefs", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + position_decorr: Optional["ErrorStatisticsType.Components.PosVelErr.PositionDecorr"] = field( + default=None, + metadata={ + "name": "PositionDecorr", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + @dataclass + class CorrCoefs: + p1_p2: Optional[float] = field( + default=None, + metadata={ + "name": "P1P2", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p1_p3: Optional[float] = field( + default=None, + metadata={ + "name": "P1P3", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p1_v1: Optional[float] = field( + default=None, + metadata={ + "name": "P1V1", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p1_v2: Optional[float] = field( + default=None, + metadata={ + "name": "P1V2", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p1_v3: Optional[float] = field( + default=None, + metadata={ + "name": "P1V3", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p2_p3: Optional[float] = field( + default=None, + metadata={ + "name": "P2P3", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p2_v1: Optional[float] = field( + default=None, + metadata={ + "name": "P2V1", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p2_v2: Optional[float] = field( + default=None, + metadata={ + "name": "P2V2", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p2_v3: Optional[float] = field( + default=None, + metadata={ + "name": "P2V3", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p3_v1: Optional[float] = field( + default=None, + metadata={ + "name": "P3V1", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p3_v2: Optional[float] = field( + default=None, + metadata={ + "name": "P3V2", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + p3_v3: Optional[float] = field( + default=None, + metadata={ + "name": "P3V3", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + v1_v2: Optional[float] = field( + default=None, + metadata={ + "name": "V1V2", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + v1_v3: Optional[float] = field( + default=None, + metadata={ + "name": "V1V3", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + v2_v3: Optional[float] = field( + default=None, + metadata={ + "name": "V2V3", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + @dataclass + class PositionDecorr: + corr_coef_zero: Optional[float] = field( + default=None, + metadata={ + "name": "CorrCoefZero", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + decorr_rate: Optional[float] = field( + default=None, + metadata={ + "name": "DecorrRate", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + @dataclass + class RadarSensor: + range_bias: Optional[float] = field( + default=None, + metadata={ + "name": "RangeBias", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + clock_freq_sf: Optional[float] = field( + default=None, + metadata={ + "name": "ClockFreqSF", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + transmit_freq_sf: Optional[float] = field( + default=None, + metadata={ + "name": "TransmitFreqSF", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + range_bias_decorr: Optional["ErrorStatisticsType.Components.RadarSensor.RangeBiasDecorr"] = field( + default=None, + metadata={ + "name": "RangeBiasDecorr", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + @dataclass + class RangeBiasDecorr: + corr_coef_zero: Optional[float] = field( + default=None, + metadata={ + "name": "CorrCoefZero", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + decorr_rate: Optional[float] = field( + default=None, + metadata={ + "name": "DecorrRate", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + @dataclass + class TropoError: + tropo_range_vertical: Optional[float] = field( + default=None, + metadata={ + "name": "TropoRangeVertical", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + tropo_range_slant: Optional[float] = field( + default=None, + metadata={ + "name": "TropoRangeSlant", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + tropo_range_decorr: Optional["ErrorStatisticsType.Components.TropoError.TropoRangeDecorr"] = field( + default=None, + metadata={ + "name": "TropoRangeDecorr", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + @dataclass + class TropoRangeDecorr: + corr_coef_zero: Optional[float] = field( + default=None, + metadata={ + "name": "CorrCoefZero", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + decorr_rate: Optional[float] = field( + default=None, + metadata={ + "name": "DecorrRate", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + @dataclass + class IonoError: + iono_range_vertical: Optional[float] = field( + default=None, + metadata={ + "name": "IonoRangeVertical", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + iono_range_rate_vertical: Optional[float] = field( + default=None, + metadata={ + "name": "IonoRangeRateVertical", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + iono_rg_rg_rate_cc: Optional[float] = field( + default=None, + metadata={ + "name": "IonoRgRgRateCC", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + iono_range_vert_decorr: Optional["ErrorStatisticsType.Components.IonoError.IonoRangeVertDecorr"] = field( + default=None, + metadata={ + "name": "IonoRangeVertDecorr", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + @dataclass + class IonoRangeVertDecorr: + corr_coef_zero: Optional[float] = field( + default=None, + metadata={ + "name": "CorrCoefZero", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + decorr_rate: Optional[float] = field( + default=None, + metadata={ + "name": "DecorrRate", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + @dataclass + class AdditionalParms: + parameter: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Parameter", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "min_occurs": 1, + }, + ) + + +@dataclass +class LLHCornerStringType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + hae: Optional[float] = field( + default=None, + metadata={ + "name": "HAE", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + index: Optional[CornerStringType] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class LatLonCornerStringType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + index: Optional[CornerStringType] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class Poly1DType: + coef: List[PolyCoef1DType] = field( + default_factory=list, + metadata={ + "name": "Coef", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "min_occurs": 1, + }, + ) + order1: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class Poly2DType: + coef: List[PolyCoef2DType] = field( + default_factory=list, + metadata={ + "name": "Coef", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "min_occurs": 1, + }, + ) + order1: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + order2: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class RadarModeType: + mode_type: Optional[ModeIdentifierType] = field( + default=None, + metadata={ + "name": "ModeType", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + mode_id: Optional[str] = field( + default=None, + metadata={ + "name": "ModeID", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + +@dataclass +class ReferencePointType: + """ + The reference point. + + :ivar ecef: The XYZ ECEF (units = m) reference point. + :ivar point: The row and column (units = pixels) which maps to the ECEF point. + :ivar name: Used for implementation specific signifier for the reference point. + """ + + ecef: Optional[XYZType] = field( + default=None, + metadata={ + "name": "ECEF", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + point: Optional[RowColDoubleType] = field( + default=None, + metadata={ + "name": "Point", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + name: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass +class ValidDataType: + vertex: List[RowColVertexType] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "min_occurs": 3, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class XYZAttributeType(XYZType): + name: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass +class CollectionInfoType: + collector_name: Optional[str] = field( + default=None, + metadata={ + "name": "CollectorName", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + illuminator_name: Optional[str] = field( + default=None, + metadata={ + "name": "IlluminatorName", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + core_name: Optional[str] = field( + default=None, + metadata={ + "name": "CoreName", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + collect_type: Optional[CollectIdentifierType] = field( + default=None, + metadata={ + "name": "CollectType", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + radar_mode: Optional[RadarModeType] = field( + default=None, + metadata={ + "name": "RadarMode", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + classification: Optional[str] = field( + default=None, + metadata={ + "name": "Classification", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + country_code: List[str] = field( + default_factory=list, + metadata={ + "name": "CountryCode", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + parameter: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Parameter", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + +@dataclass +class RadiometricType: + noise_poly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "NoisePoly", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + rcssfpoly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "RCSSFPoly", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + beta_zero_sfpoly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "BetaZeroSFPoly", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + sigma_zero_sfpoly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "SigmaZeroSFPoly", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + sigma_zero_sfincidence_map: Optional[SigmaZeroSFIncidenceMapType] = field( + default=None, + metadata={ + "name": "SigmaZeroSFIncidenceMap", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + gamma_zero_sfpoly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "GammaZeroSFPoly", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + gamma_zero_sfincidence_map: Optional[GammaZeroSFIncidenceMapType] = field( + default=None, + metadata={ + "name": "GammaZeroSFIncidenceMap", + "type": "Element", + "namespace": "urn:SICommon:0.1", + }, + ) + + +@dataclass +class XYZPolyType: + x: Optional[Poly1DType] = field( + default=None, + metadata={ + "name": "X", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + y: Optional[Poly1DType] = field( + default=None, + metadata={ + "name": "Y", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + z: Optional[Poly1DType] = field( + default=None, + metadata={ + "name": "Z", + "type": "Element", + "namespace": "urn:SICommon:0.1", + "required": True, + }, + ) + + +@dataclass +class XYZPolyAttributeType(XYZPolyType): + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) diff --git a/src/aws/osml/formats/sidd/models/sicommon_types_v1_0.py b/src/aws/osml/formats/sidd/models/sicommon_types_v1_0.py new file mode 100644 index 0000000..4f41cfe --- /dev/null +++ b/src/aws/osml/formats/sidd/models/sicommon_types_v1_0.py @@ -0,0 +1,1823 @@ +"""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 + +from xsdata.models.datatype import XmlDateTime + +__NAMESPACE__ = "urn:SICommon:1.0" + + +@dataclass +class AngleMagnitudeType: + angle: Optional[float] = field( + default=None, + metadata={ + "name": "Angle", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + "min_inclusive": -180.0, + "max_inclusive": 180.0, + }, + ) + magnitude: Optional[float] = field( + default=None, + metadata={ + "name": "Magnitude", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +@dataclass +class AngleZeroToExclusive360MagnitudeType: + angle: Optional[float] = field( + default=None, + metadata={ + "name": "Angle", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + "min_inclusive": 0.0, + "max_exclusive": 360.0, + }, + ) + magnitude: Optional[float] = field( + default=None, + metadata={ + "name": "Magnitude", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +@dataclass +class ArrayDoubleType: + value: Optional[float] = field( + default=None, + metadata={ + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class CollectIdentifierType(Enum): + MONOSTATIC = "MONOSTATIC" + BISTATIC = "BISTATIC" + + +@dataclass +class ComplexType: + real: Optional[float] = field( + default=None, + metadata={ + "name": "Real", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + imag: Optional[float] = field( + default=None, + metadata={ + "name": "Imag", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +class CornerStringType(Enum): + VALUE_1_FRFC = "1:FRFC" + VALUE_2_FRLC = "2:FRLC" + VALUE_3_LRLC = "3:LRLC" + VALUE_4_LRFC = "4:LRFC" + + +class ErrorFrameType(Enum): + ECF = "ECF" + RIC_ECF = "RIC_ECF" + RIC_ECI = "RIC_ECI" + + +@dataclass +class ImageCreationType: + application: Optional[str] = field( + default=None, + metadata={ + "name": "Application", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "DateTime", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + site: Optional[str] = field( + default=None, + metadata={ + "name": "Site", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + profile: Optional[str] = field( + default=None, + metadata={ + "name": "Profile", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + +@dataclass +class LLHType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + hae: Optional[float] = field( + default=None, + metadata={ + "name": "HAE", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +@dataclass +class LatLonCornerType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "min_inclusive": 1, + "max_inclusive": 4, + }, + ) + + +@dataclass +class LatLonHAECornerType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + hae: Optional[float] = field( + default=None, + metadata={ + "name": "HAE", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + "min_inclusive": 1, + "max_inclusive": 4, + }, + ) + + +@dataclass +class LatLonRestrictionType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + "min_inclusive": -90.0, + "max_inclusive": 90.0, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + "min_inclusive": -180.0, + "max_inclusive": 180.0, + }, + ) + + +@dataclass +class LatLonType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +@dataclass +class LatLonVertexType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class LineType: + endpoint: List["LineType.Endpoint"] = field( + default_factory=list, + metadata={ + "name": "Endpoint", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "min_occurs": 2, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + @dataclass + class Endpoint: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class ModeIdentifierType(Enum): + SPOTLIGHT = "SPOTLIGHT" + STRIPMAP = "STRIPMAP" + DYNAMIC_STRIPMAP = "DYNAMIC STRIPMAP" + SCANSAR = "SCANSAR" + + +class NoiseLevelNoiseLevelType(Enum): + ABSOLUTE = "ABSOLUTE" + RELATIVE = "RELATIVE" + + +@dataclass +class ParameterType: + value: str = field( + default="", + metadata={ + "required": True, + }, + ) + name: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class Polarization1Typevalue(Enum): + V = "V" + H = "H" + X = "X" + Y = "Y" + S = "S" + E = "E" + RHC = "RHC" + LHC = "LHC" + OTHER = "OTHER" + UNKNOWN = "UNKNOWN" + SEQUENCE = "SEQUENCE" + + +@dataclass +class PolyCoef1DType: + value: Optional[float] = field( + default=None, + metadata={ + "required": True, + }, + ) + exponent1: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class PolyCoef2DType: + value: Optional[float] = field( + default=None, + metadata={ + "required": True, + }, + ) + exponent1: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + exponent2: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class PolygonType: + vertex: List["PolygonType.Vertex"] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "min_occurs": 3, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + @dataclass + class Vertex: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class RadiometricTypeSigmaZeroSFIncidenceMap(Enum): + APPLIED = "APPLIED" + NOT_APPLIED = "NOT_APPLIED" + + +@dataclass +class RangeAzimuthType: + """ + Represents range and azimuth. + + :ivar range: Range dimension. + :ivar azimuth: Azimuth dimension. + """ + + range: Optional[float] = field( + default=None, + metadata={ + "name": "Range", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + azimuth: Optional[float] = field( + default=None, + metadata={ + "name": "Azimuth", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +@dataclass +class RowColDoubleType: + row: Optional[float] = field( + default=None, + metadata={ + "name": "Row", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + col: Optional[float] = field( + default=None, + metadata={ + "name": "Col", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +@dataclass +class RowColIntType: + row: Optional[int] = field( + default=None, + metadata={ + "name": "Row", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + col: Optional[int] = field( + default=None, + metadata={ + "name": "Col", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +@dataclass +class RowColVertexType: + row: Optional[int] = field( + default=None, + metadata={ + "name": "Row", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + col: Optional[int] = field( + default=None, + metadata={ + "name": "Col", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class XYZType: + x: Optional[float] = field( + default=None, + metadata={ + "name": "X", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + y: Optional[float] = field( + default=None, + metadata={ + "name": "Y", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + z: Optional[float] = field( + default=None, + metadata={ + "name": "Z", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +@dataclass +class ErrorStatisticsType: + composite_scp: Optional["ErrorStatisticsType.CompositeSCP"] = field( + default=None, + metadata={ + "name": "CompositeSCP", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + components: Optional["ErrorStatisticsType.Components"] = field( + default=None, + metadata={ + "name": "Components", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + unmodeled: Optional["ErrorStatisticsType.Unmodeled"] = field( + default=None, + metadata={ + "name": "Unmodeled", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + additional_parms: Optional["ErrorStatisticsType.AdditionalParms"] = field( + default=None, + metadata={ + "name": "AdditionalParms", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + @dataclass + class CompositeSCP: + rg: Optional[float] = field( + default=None, + metadata={ + "name": "Rg", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + az: Optional[float] = field( + default=None, + metadata={ + "name": "Az", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + rg_az: Optional[float] = field( + default=None, + metadata={ + "name": "RgAz", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + @dataclass + class Components: + pos_vel_err: Optional["ErrorStatisticsType.Components.PosVelErr"] = field( + default=None, + metadata={ + "name": "PosVelErr", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + radar_sensor: Optional["ErrorStatisticsType.Components.RadarSensor"] = field( + default=None, + metadata={ + "name": "RadarSensor", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + tropo_error: Optional["ErrorStatisticsType.Components.TropoError"] = field( + default=None, + metadata={ + "name": "TropoError", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + iono_error: Optional["ErrorStatisticsType.Components.IonoError"] = field( + default=None, + metadata={ + "name": "IonoError", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + @dataclass + class PosVelErr: + frame: Optional[ErrorFrameType] = field( + default=None, + metadata={ + "name": "Frame", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p1: Optional[float] = field( + default=None, + metadata={ + "name": "P1", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p2: Optional[float] = field( + default=None, + metadata={ + "name": "P2", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p3: Optional[float] = field( + default=None, + metadata={ + "name": "P3", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + v1: Optional[float] = field( + default=None, + metadata={ + "name": "V1", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + v2: Optional[float] = field( + default=None, + metadata={ + "name": "V2", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + v3: Optional[float] = field( + default=None, + metadata={ + "name": "V3", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + corr_coefs: Optional["ErrorStatisticsType.Components.PosVelErr.CorrCoefs"] = field( + default=None, + metadata={ + "name": "CorrCoefs", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + position_decorr: Optional["ErrorStatisticsType.Components.PosVelErr.PositionDecorr"] = field( + default=None, + metadata={ + "name": "PositionDecorr", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + @dataclass + class CorrCoefs: + p1_p2: Optional[float] = field( + default=None, + metadata={ + "name": "P1P2", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p1_p3: Optional[float] = field( + default=None, + metadata={ + "name": "P1P3", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p1_v1: Optional[float] = field( + default=None, + metadata={ + "name": "P1V1", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p1_v2: Optional[float] = field( + default=None, + metadata={ + "name": "P1V2", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p1_v3: Optional[float] = field( + default=None, + metadata={ + "name": "P1V3", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p2_p3: Optional[float] = field( + default=None, + metadata={ + "name": "P2P3", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p2_v1: Optional[float] = field( + default=None, + metadata={ + "name": "P2V1", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p2_v2: Optional[float] = field( + default=None, + metadata={ + "name": "P2V2", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p2_v3: Optional[float] = field( + default=None, + metadata={ + "name": "P2V3", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p3_v1: Optional[float] = field( + default=None, + metadata={ + "name": "P3V1", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p3_v2: Optional[float] = field( + default=None, + metadata={ + "name": "P3V2", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + p3_v3: Optional[float] = field( + default=None, + metadata={ + "name": "P3V3", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + v1_v2: Optional[float] = field( + default=None, + metadata={ + "name": "V1V2", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + v1_v3: Optional[float] = field( + default=None, + metadata={ + "name": "V1V3", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + v2_v3: Optional[float] = field( + default=None, + metadata={ + "name": "V2V3", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + @dataclass + class PositionDecorr: + corr_coef_zero: Optional[float] = field( + default=None, + metadata={ + "name": "CorrCoefZero", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + decorr_rate: Optional[float] = field( + default=None, + metadata={ + "name": "DecorrRate", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + @dataclass + class RadarSensor: + range_bias: Optional[float] = field( + default=None, + metadata={ + "name": "RangeBias", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + clock_freq_sf: Optional[float] = field( + default=None, + metadata={ + "name": "ClockFreqSF", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + transmit_freq_sf: Optional[float] = field( + default=None, + metadata={ + "name": "TransmitFreqSF", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + range_bias_decorr: Optional["ErrorStatisticsType.Components.RadarSensor.RangeBiasDecorr"] = field( + default=None, + metadata={ + "name": "RangeBiasDecorr", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + @dataclass + class RangeBiasDecorr: + corr_coef_zero: Optional[float] = field( + default=None, + metadata={ + "name": "CorrCoefZero", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + decorr_rate: Optional[float] = field( + default=None, + metadata={ + "name": "DecorrRate", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + @dataclass + class TropoError: + tropo_range_vertical: Optional[float] = field( + default=None, + metadata={ + "name": "TropoRangeVertical", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + tropo_range_slant: Optional[float] = field( + default=None, + metadata={ + "name": "TropoRangeSlant", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + tropo_range_decorr: Optional["ErrorStatisticsType.Components.TropoError.TropoRangeDecorr"] = field( + default=None, + metadata={ + "name": "TropoRangeDecorr", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + @dataclass + class TropoRangeDecorr: + corr_coef_zero: Optional[float] = field( + default=None, + metadata={ + "name": "CorrCoefZero", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + decorr_rate: Optional[float] = field( + default=None, + metadata={ + "name": "DecorrRate", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + @dataclass + class IonoError: + iono_range_vertical: Optional[float] = field( + default=None, + metadata={ + "name": "IonoRangeVertical", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + iono_range_rate_vertical: Optional[float] = field( + default=None, + metadata={ + "name": "IonoRangeRateVertical", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + iono_rg_rg_rate_cc: Optional[float] = field( + default=None, + metadata={ + "name": "IonoRgRgRateCC", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + iono_range_vert_decorr: Optional["ErrorStatisticsType.Components.IonoError.IonoRangeVertDecorr"] = field( + default=None, + metadata={ + "name": "IonoRangeVertDecorr", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + @dataclass + class IonoRangeVertDecorr: + corr_coef_zero: Optional[float] = field( + default=None, + metadata={ + "name": "CorrCoefZero", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + decorr_rate: Optional[float] = field( + default=None, + metadata={ + "name": "DecorrRate", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + @dataclass + class Unmodeled: + xrow: Optional[float] = field( + default=None, + metadata={ + "name": "Xrow", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + ycol: Optional[float] = field( + default=None, + metadata={ + "name": "Ycol", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + xrow_ycol: Optional[float] = field( + default=None, + metadata={ + "name": "XrowYcol", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + unmodeled_decorr: Optional["ErrorStatisticsType.Unmodeled.UnmodeledDecorr"] = field( + default=None, + metadata={ + "name": "UnmodeledDecorr", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + @dataclass + class UnmodeledDecorr: + xrow: Optional["ErrorStatisticsType.Unmodeled.UnmodeledDecorr.Xrow"] = field( + default=None, + metadata={ + "name": "Xrow", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + ycol: Optional["ErrorStatisticsType.Unmodeled.UnmodeledDecorr.Ycol"] = field( + default=None, + metadata={ + "name": "Ycol", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + @dataclass + class Xrow: + corr_coef_zero: Optional[float] = field( + default=None, + metadata={ + "name": "CorrCoefZero", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + decorr_rate: Optional[float] = field( + default=None, + metadata={ + "name": "DecorrRate", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + @dataclass + class Ycol: + corr_coef_zero: Optional[float] = field( + default=None, + metadata={ + "name": "CorrCoefZero", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + decorr_rate: Optional[float] = field( + default=None, + metadata={ + "name": "DecorrRate", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + @dataclass + class AdditionalParms: + parameter: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Parameter", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "min_occurs": 1, + }, + ) + + +@dataclass +class GeoInfoType: + desc: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Desc", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + point: Optional[LatLonRestrictionType] = field( + default=None, + metadata={ + "name": "Point", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + line: Optional[LineType] = field( + default=None, + metadata={ + "name": "Line", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + polygon: Optional[PolygonType] = field( + default=None, + metadata={ + "name": "Polygon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + geo_info: List["GeoInfoType"] = field( + default_factory=list, + metadata={ + "name": "GeoInfo", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + name: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class LLHCornerStringType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + hae: Optional[float] = field( + default=None, + metadata={ + "name": "HAE", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + index: Optional[CornerStringType] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class LatLonCornerStringType: + lat: Optional[float] = field( + default=None, + metadata={ + "name": "Lat", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + lon: Optional[float] = field( + default=None, + metadata={ + "name": "Lon", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + index: Optional[CornerStringType] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class MatchInfoType: + num_match_types: Optional[int] = field( + default=None, + metadata={ + "name": "NumMatchTypes", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + match_type: List["MatchInfoType.MatchType"] = field( + default_factory=list, + metadata={ + "name": "MatchType", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "min_occurs": 1, + }, + ) + + @dataclass + class MatchType: + type_id: Optional[str] = field( + default=None, + metadata={ + "name": "TypeID", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + current_index: Optional[int] = field( + default=None, + metadata={ + "name": "CurrentIndex", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + num_match_collections: Optional[int] = field( + default=None, + metadata={ + "name": "NumMatchCollections", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + match_collection: List["MatchInfoType.MatchType.MatchCollection"] = field( + default_factory=list, + metadata={ + "name": "MatchCollection", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + @dataclass + class MatchCollection: + core_name: Optional[str] = field( + default=None, + metadata={ + "name": "CoreName", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + match_index: Optional[int] = field( + default=None, + metadata={ + "name": "MatchIndex", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + parameter: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Parameter", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class Poly1DType: + coef: List[PolyCoef1DType] = field( + default_factory=list, + metadata={ + "name": "Coef", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "min_occurs": 1, + }, + ) + order1: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class Poly2DType: + coef: List[PolyCoef2DType] = field( + default_factory=list, + metadata={ + "name": "Coef", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "min_occurs": 1, + }, + ) + order1: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + order2: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class RadarModeType: + mode_type: Optional[ModeIdentifierType] = field( + default=None, + metadata={ + "name": "ModeType", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + mode_id: Optional[str] = field( + default=None, + metadata={ + "name": "ModeID", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + +@dataclass +class ReferencePointType: + """ + The reference point. + + :ivar ecef: The XYZ ECEF (units = m) reference point. + :ivar point: The row and column (units = pixels) which maps to the ECEF point. + :ivar name: Used for implementation specific signifier for the reference point. + """ + + ecef: Optional[XYZType] = field( + default=None, + metadata={ + "name": "ECEF", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + point: Optional[RowColDoubleType] = field( + default=None, + metadata={ + "name": "Point", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + name: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass +class ValidDataType: + vertex: List[RowColVertexType] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "min_occurs": 3, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class XYZAttributeType(XYZType): + name: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + }, + ) + + +@dataclass +class CollectionInfoType: + collector_name: Optional[str] = field( + default=None, + metadata={ + "name": "CollectorName", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + illuminator_name: Optional[str] = field( + default=None, + metadata={ + "name": "IlluminatorName", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + core_name: Optional[str] = field( + default=None, + metadata={ + "name": "CoreName", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + collect_type: Optional[CollectIdentifierType] = field( + default=None, + metadata={ + "name": "CollectType", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + radar_mode: Optional[RadarModeType] = field( + default=None, + metadata={ + "name": "RadarMode", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + classification: Optional[str] = field( + default=None, + metadata={ + "name": "Classification", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + country_code: List[str] = field( + default_factory=list, + metadata={ + "name": "CountryCode", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + parameter: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Parameter", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + +@dataclass +class GeoInfo(GeoInfoType): + class Meta: + namespace = "urn:SICommon:1.0" + + +@dataclass +class RadiometricType: + noise_level: Optional["RadiometricType.NoiseLevel"] = field( + default=None, + metadata={ + "name": "NoiseLevel", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + noise_poly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "NoisePoly", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + rcssfpoly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "RCSSFPoly", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + sigma_zero_sfpoly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "SigmaZeroSFPoly", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + beta_zero_sfpoly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "BetaZeroSFPoly", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + sigma_zero_sfincidence_map: Optional[RadiometricTypeSigmaZeroSFIncidenceMap] = field( + default=None, + metadata={ + "name": "SigmaZeroSFIncidenceMap", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + gamma_zero_sfpoly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "GammaZeroSFPoly", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + @dataclass + class NoiseLevel: + noise_level_type: Optional[NoiseLevelNoiseLevelType] = field( + default=None, + metadata={ + "name": "NoiseLevelType", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + noise_poly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "NoisePoly", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +@dataclass +class XYZPolyType: + x: Optional[Poly1DType] = field( + default=None, + metadata={ + "name": "X", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + y: Optional[Poly1DType] = field( + default=None, + metadata={ + "name": "Y", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + z: Optional[Poly1DType] = field( + default=None, + metadata={ + "name": "Z", + "type": "Element", + "namespace": "urn:SICommon:1.0", + "required": True, + }, + ) + + +@dataclass +class XYZPolyAttributeType(XYZPolyType): + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) diff --git a/src/aws/osml/formats/sidd/models/sidd_v1_0_0.py b/src/aws/osml/formats/sidd/models/sidd_v1_0_0.py new file mode 100644 index 0000000..da2f8ba --- /dev/null +++ b/src/aws/osml/formats/sidd/models/sidd_v1_0_0.py @@ -0,0 +1,2016 @@ +"""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" + + +@dataclass +class AcheivedResolutionType: + """ + Finest achievable resolution parameters. + """ + + +@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, + }, + ) + + +@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, + }, + ) + + +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" + + +@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, + }, + ) + + +@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, + }, + ) + + +class MagnificationMethodType(Enum): + """ + Default ELT magnification method for this data. + """ + + NEAREST_NEIGHBOR = "NEAREST_NEIGHBOR" + BILINEAR = "BILINEAR" + LAGRANGE = "LAGRANGE" + + +@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, + }, + ) + + +class PixelType(Enum): + MONO8_I = "MONO8I" + MONO8_LU = "MONO8LU" + MONO16_I = "MONO16I" + RGB8_LU = "RGB8LU" + RGB24_I = "RGB24I" + + +@dataclass +class ProcessorInformationType: + """ + :ivar application: Software application name and version number. + :ivar processing_date_time: Date and time defined in Coordinated Universal Time (UTC). The seconds should be + followed by a Z to indicate UTC. + :ivar site: Creation location of product. + :ivar profile: Product-specific profile applied during product processing. + """ + + application: Optional[str] = field( + default=None, + metadata={ + "name": "Application", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "required": True, + }, + ) + processing_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "ProcessingDateTime", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "required": True, + }, + ) + site: Optional[str] = field( + default=None, + metadata={ + "name": "Site", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "required": True, + }, + ) + profile: Optional[str] = field( + default=None, + metadata={ + "name": "Profile", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + }, + ) + + +@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", + }, + ) + + +@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, + }, + ) + + +@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, + }, + ) + + +@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", + }, + ) + + +@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", + }, + ) + + +@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", + }, + ) + + +@dataclass +class FootprintType: + vertex: List[LatLonVertexType] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "min_occurs": 4, + "max_occurs": 4, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class GeographicInformationType: + """ + :ivar country_code: Country identifier for this geographic region. + :ivar security_info: Specifies classification level or special handling designators for this geographic + region + :ivar geographic_info_extension: Implementation specific geographic information. + """ + + country_code: List[str] = field( + default_factory=list, + metadata={ + "name": "CountryCode", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + }, + ) + security_info: Optional[str] = field( + default=None, + metadata={ + "name": "SecurityInfo", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + }, + ) + geographic_info_extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "GeographicInfoExtension", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + }, + ) + + +@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, + }, + ) + + +@dataclass +class InputROIType: + """ + ROI representing portion of input data used to make this product. + + :ivar size: Number of rows and columns extracted from the input. + :ivar upper_left: The upper-left pixel extracted from the input. + """ + + size: Optional[RowColIntType] = field( + default=None, + metadata={ + "name": "Size", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "required": True, + }, + ) + upper_left: Optional[RowColIntType] = field( + default=None, + metadata={ + "name": "UpperLeft", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "required": True, + }, + ) + + +@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", + }, + ) + + +@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", + }, + ) + + +@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", + }, + ) + + +@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", + }, + ) + + +@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, + }, + ) + + +@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", + }, + ) + + +@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, + }, + ) + + +@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", + }, + ) + + +@dataclass +class ExploitationFeaturesCollectionInformationType: + """ + General collection information. + + :ivar sensor_name: The name of the sensor. + :ivar radar_mode: Radar collection mode. The ModeType refers to the collection type [SPOTLIGHT, STRIPMAP, + DYNAMIC STRIPMAP]. The optional ModeID is used to represent system-specific mode identifiers. + :ivar collection_date_time: Collection date and time defined in Coordinated Universal Time (UTC). The seconds + should be followed by a Z to indicate UTC. + :ivar local_date_time: Date and time defined in local time. + :ivar collection_duration: The duration of the collection (units = seconds). + :ivar resolution: Uniformly-weighted resolution (range and azimuth) processed in the slant plane. + :ivar input_roi: ROI representing portion of input data used to make this product. + :ivar polarization: Transmit and receive polarization. + """ + + sensor_name: Optional[str] = field( + default=None, + metadata={ + "name": "SensorName", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "required": True, + }, + ) + radar_mode: Optional[RadarModeType] = field( + default=None, + metadata={ + "name": "RadarMode", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "required": True, + }, + ) + collection_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CollectionDateTime", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "required": True, + }, + ) + local_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "LocalDateTime", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + }, + ) + collection_duration: Optional[float] = field( + default=None, + metadata={ + "name": "CollectionDuration", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "required": True, + }, + ) + resolution: Optional[RangeAzimuthType] = field( + default=None, + metadata={ + "name": "Resolution", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + }, + ) + input_roi: Optional[InputROIType] = field( + default=None, + metadata={ + "name": "InputROI", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + }, + ) + polarization: List[TxRcvPolarizationType] = field( + default_factory=list, + metadata={ + "name": "Polarization", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + }, + ) + + +@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", + }, + ) + + +@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, + }, + ) + + +@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, + }, + ) + + +@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", + }, + ) + + +@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, + }, + ) + + +@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", + }, + ) + + +@dataclass +class TargetInformationType: + """ + :ivar identifier: Target may have one or more identifiers. Examples: names, BE numbers, etc. Use the "name" + attribute to describe what this is. + :ivar footprint: Target footprint as defined by polygonal shape. + :ivar target_information_extension: Generic extension. Could be used to indicate type of target, terrain, + etc. + """ + + identifier: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Identifier", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + "min_occurs": 1, + }, + ) + footprint: Optional[FootprintType] = field( + default=None, + metadata={ + "name": "Footprint", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + }, + ) + target_information_extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "TargetInformationExtension", + "type": "Element", + "namespace": "urn:SIDD:1.0.0", + }, + ) + + +@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, + }, + ) + + +@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", + }, + ) + + +@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", + }, + ) + + +@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", + }, + ) + + +@dataclass +class GeographicProjectionType(MeasurableProjectionType): + """ + Geographic mapping of the pixel grid. + """ + + +@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, + }, + ) + + +@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", + }, + ) + + +@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, + }, + ) + + @dataclass + class Collection(ExploitationFeaturesCollectionType): + identifier: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@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, + }, + ) + + +@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. + """ + + class Meta: + namespace = "urn:SIDD:1.0.0" + + 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", + }, + ) diff --git a/src/aws/osml/formats/sidd/models/sidd_v2_0_0.py b/src/aws/osml/formats/sidd/models/sidd_v2_0_0.py new file mode 100644 index 0000000..20426c7 --- /dev/null +++ b/src/aws/osml/formats/sidd/models/sidd_v2_0_0.py @@ -0,0 +1,3467 @@ +"""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_v13.schema.ism.cvegenerated.cvenum_ism25_x import CVEnumISM25X +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismatomic_energy_markings import ( + CVEnumISMatomicEnergyMarkingsValuesvalue, +) +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismclassification_all import CVEnumISMClassificationAll +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismcomplies_with import CVEnumISMCompliesWithValues +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismdissem import CVEnumISMDissemValues +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismexempt_from import CVEnumISMExemptFromValues +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismnon_ic import CVEnumISMNonICValuesvalue +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismnon_uscontrols import CVEnumISMNonUSControlsValues +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismnotice import CVEnumISMNoticeValues +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismscicontrols import CVEnumISMSCIControlsValuesvalue +from .external.ism_v13.schema.ismcat.cvegenerated.cvenum_ismcatfgiopen import CVEnumISMCATFGIOpenValuesvalue +from .external.ism_v13.schema.ismcat.cvegenerated.cvenum_ismcatfgiprotected import CVEnumISMCATFGIProtectedValuesvalue +from .external.ism_v13.schema.ismcat.cvegenerated.cvenum_ismcatowner_producer import CVEnumISMCATOwnerProducerValuesvalue +from .external.ism_v13.schema.ismcat.cvegenerated.cvenum_ismcatrel_to import CVEnumISMCATRelToValuesvalue +from .sfa import LinearRingType, LineType, MultiLineStringType, MultiPointType, MultiPolygonType, PointType +from .sfa import PolygonType as SfaPolygonType +from .sfa import PolyhedralSurfaceType, ReferenceSystemType +from .sicommon_types_v1_0 import ( + AngleMagnitudeType, + CornerStringType, + ErrorStatisticsType, + GeoInfo, + LatLonType, + LatLonVertexType, + MatchInfoType, + ParameterType, + Polarization1Typevalue, + Poly2DType, + RadarModeType, + RadiometricType, + RangeAzimuthType, + ReferencePointType, + RowColDoubleType, + RowColIntType, + RowColVertexType, + XYZPolyType, + XYZType, +) + +__NAMESPACE__ = "urn:SIDD:2.0.0" + + +@dataclass +class AccuracyType: + horizontal: List[float] = field( + default_factory=list, + metadata={ + "name": "Horizontal", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + vertical: List[float] = field( + default_factory=list, + metadata={ + "name": "Vertical", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + + +@dataclass +class AcheivedResolutionType: + """ + Finest achievable resolution parameters. + """ + + +@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:2.0.0", + "required": True, + }, + ) + date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Date", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + clip_max: Optional[int] = field( + default=None, + metadata={ + "name": "ClipMax", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class DRAOverrides: + """ + :ivar subtractor: Subtractor value used to reduce haze in the image. Range: [0.0 to 2047.0] + :ivar multiplier: Multiplier value used to reduce haze in the image. Range: [0.0 to 2047.0] + """ + + subtractor: Optional[float] = field( + default=None, + metadata={ + "name": "Subtractor", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + multiplier: Optional[float] = field( + default=None, + metadata={ + "name": "Multiplier", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class DRAParameters: + """ + :ivar pmin: DRA clip low point. This is the cumulative histogram percentage value that defines the lower end- + point of the dynamic range to be displayed. Range: [0.0 to 1.0] + :ivar pmax: DRA clip high point. This is the cumulative histogram percentage value that defines the upper + end-point of the dynamic range to be displayed. Range: [0.0 to 1.0] + :ivar emin_modifier: The pixel value corresponding to the Pmin percentage poitn in the image histogram. + Range: [0.0 to 1.0]/ + :ivar emax_modifier: The pixel value corresponding to the Pmax percentage poitn in the image histogram. + Range: [0.0 to 1.0]/ + """ + + pmin: Optional[float] = field( + default=None, + metadata={ + "name": "Pmin", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + pmax: Optional[float] = field( + default=None, + metadata={ + "name": "Pmax", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + emin_modifier: Optional[float] = field( + default=None, + metadata={ + "name": "EminModifier", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + emax_modifier: Optional[float] = field( + default=None, + metadata={ + "name": "EmaxModifier", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +class DownsamplingMethodType(Enum): + DECIMATE = "DECIMATE" + MAX_PIXEL = "MAX PIXEL" + AVERAGE = "AVERAGE" + NEAREST_NEIGHBOR = "NEAREST NEIGHBOR" + BILINEAR = "BILINEAR" + LAGRANGE = "LAGRANGE" + + +class EarthModelType(Enum): + """Identifies the earth model used for latitude, longitude and height + parameters. + + All height values are Height Above The Ellipsoid (HAE). + """ + + WGS_84 = "WGS_84" + + +class EqualizationAlgorithmType(Enum): + VALUE_1_DLUT = "1DLUT" + + +@dataclass +class FilterBankCoefType: + coef: List["FilterBankCoefType.Coef"] = field( + default_factory=list, + metadata={ + "name": "Coef", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + num_phasings: Optional[int] = field( + default=None, + metadata={ + "name": "numPhasings", + "type": "Attribute", + "required": True, + }, + ) + num_points: Optional[int] = field( + default=None, + metadata={ + "name": "numPoints", + "type": "Attribute", + "required": True, + }, + ) + + @dataclass + class Coef: + value: Optional[float] = field( + default=None, + metadata={ + "required": True, + }, + ) + phasing: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + point: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class FilterDatabaseNameType(Enum): + BILINEAR = "BILINEAR" + CUBIC = "CUBIC" + LAGRANGE = "LAGRANGE" + NEAREST_NEIGHBOR = "NEAREST NEIGHBOR" + + +@dataclass +class FilterKernelCoefType: + coef: List["FilterKernelCoefType.Coef"] = field( + default_factory=list, + metadata={ + "name": "Coef", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + num_rows: Optional[int] = field( + default=None, + metadata={ + "name": "numRows", + "type": "Attribute", + "required": True, + }, + ) + num_cols: Optional[int] = field( + default=None, + metadata={ + "name": "numCols", + "type": "Attribute", + "required": True, + }, + ) + + @dataclass + class Coef: + value: Optional[float] = field( + default=None, + metadata={ + "required": True, + }, + ) + row: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + col: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class FilterOperationType(Enum): + CONVOLUTION = "CONVOLUTION" + CORRELATION = "CORRELATION" + + +class GeopositioningTypeCoordinateSystemType(Enum): + GCS = "GCS" + UTM = "UTM" + + +class GeopositioningTypeGeodeticDatum(Enum): + WORLD_GEODETIC_SYSTEM_1984 = "World Geodetic System 1984" + + +class GeopositioningTypeReferenceEllipsoid(Enum): + WORLD_GEODETIC_SYSTEM_1984 = "World Geodetic System 1984" + + +class GeopositioningTypeSoundingDatum(Enum): + MEAN_SEA_LEVEL = "Mean Sea Level" + + +class GeopositioningTypeVerticalDatum(Enum): + MEAN_SEA_LEVEL = "Mean Sea Level" + + +@dataclass +class LayerType: + """ + :ivar bitrate: The bit rate target associated with the layer. It may happen that the bit rate was not + achieved due to data characteristics. Note: for JPEG 2000 numerically lossless quality, the bit rate for + the final layer is an expected value, based on performance. + :ivar index: + """ + + bitrate: Optional[float] = field( + default=None, + metadata={ + "name": "Bitrate", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@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, + }, + ) + + +@dataclass +class LookupTableType: + """ + :ivar value: + :ivar lut: Size of LUT. + """ + + value: List[int] = field( + default_factory=list, + metadata={ + "tokens": True, + }, + ) + lut: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class MeasurementTypeARPFlag(Enum): + """ + :cvar REALTIME: Based on ephemeries at time of collect + :cvar PREDICTED: Based on predicted ephemeries (i.e. pre-collect) + :cvar POST_PROCESSED: Ephemeris has been refined after data collection + """ + + REALTIME = "REALTIME" + PREDICTED = "PREDICTED" + POST_PROCESSED = "POST PROCESSED" + + +class PixelType(Enum): + MONO8_I = "MONO8I" + MONO8_LU = "MONO8LU" + MONO16_I = "MONO16I" + RGB8_LU = "RGB8LU" + RGB24_I = "RGB24I" + + +@dataclass +class PredefinedLookupType: + """ + :ivar database_name: Database name of LUT to use. + :ivar remap_family: Index specifying the remap family. + :ivar remap_member: Index specifying the member for the remap family. + """ + + database_name: Optional[str] = field( + default=None, + metadata={ + "name": "DatabaseName", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + remap_family: Optional[int] = field( + default=None, + metadata={ + "name": "RemapFamily", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + remap_member: Optional[int] = field( + default=None, + metadata={ + "name": "RemapMember", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class ProcessorInformationType: + """ + :ivar application: Software application name and version number. + :ivar processing_date_time: Date and time defined in Coordinated Universal Time (UTC). The seconds should be + followed by a Z to indicate UTC. + :ivar site: Creation location of product. + :ivar profile: Product-specific profile applied during product processing. + """ + + application: Optional[str] = field( + default=None, + metadata={ + "name": "Application", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + processing_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "ProcessingDateTime", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + site: Optional[str] = field( + default=None, + metadata={ + "name": "Site", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + profile: Optional[str] = field( + default=None, + metadata={ + "name": "Profile", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +class RangeAdjustmentAlgorithmType(Enum): + """ + Algorithm used for dynamic range adjustment. + """ + + AUTO = "AUTO" + MANUAL = "MANUAL" + NONE = "NONE" + + +class RenderingIntentType(Enum): + PERCEPTUAL = "PERCEPTUAL" + SATURATION = "SATURATION" + RELATIVE = "RELATIVE" + ABSOLUTE = "ABSOLUTE" + + +class ShadowDirectionType(Enum): + """ + Descirbes the shadow direciton relative to the pixels in the file. + """ + + UP = "UP" + DOWN = "DOWN" + LEFT = "LEFT" + RIGHT = "RIGHT" + ARBITRARY = "ARBITRARY" + + +@dataclass +class AnnotationObjectType: + """ + Geometrical representation of the annotation. + """ + + point: Optional[PointType] = field( + default=None, + metadata={ + "name": "Point", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + line: Optional[LineType] = field( + default=None, + metadata={ + "name": "Line", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + linear_ring: Optional[LinearRingType] = field( + default=None, + metadata={ + "name": "LinearRing", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + polygon: Optional[SfaPolygonType] = field( + default=None, + metadata={ + "name": "Polygon", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + polyhedral_surface: Optional[PolyhedralSurfaceType] = field( + default=None, + metadata={ + "name": "PolyhedralSurface", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + multi_polygon: Optional[MultiPolygonType] = field( + default=None, + metadata={ + "name": "MultiPolygon", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + multi_line_string: Optional[MultiLineStringType] = field( + default=None, + metadata={ + "name": "MultiLineString", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + multi_point: Optional[MultiPointType] = field( + default=None, + metadata={ + "name": "MultiPoint", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class BankCustomType: + filter_coefficients: Optional[FilterBankCoefType] = field( + default=None, + metadata={ + "name": "FilterCoefficients", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + + +@dataclass +class ColorManagementModuleType: + """ + Parameters describing the Color Management Module (CMM). + + :ivar rendering_intent: + :ivar source_profile: Name of sensor profile in ICC Profile database. + :ivar display_profile: Name of display profile in ICC Profile database. + :ivar iccprofile_signature: Valid ICC profile signature. + """ + + rendering_intent: Optional[RenderingIntentType] = field( + default=None, + metadata={ + "name": "RenderingIntent", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + source_profile: Optional[str] = field( + default=None, + metadata={ + "name": "SourceProfile", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + display_profile: Optional[str] = field( + default=None, + metadata={ + "name": "DisplayProfile", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + iccprofile_signature: Optional[str] = field( + default=None, + metadata={ + "name": "ICCProfileSignature", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class DynamicRangeAdjustmentType: + """ + Parameter describing DRA. + + :ivar algorithm_type: Algorithm used for dynamic range adjustment. + :ivar band_stats_source: Indicates which band to use in computing statistics for DRA. Valid range = 1 to + NumBands. + :ivar draparameters: + :ivar draoverrides: + """ + + algorithm_type: Optional[RangeAdjustmentAlgorithmType] = field( + default=None, + metadata={ + "name": "AlgorithmType", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + band_stats_source: Optional[int] = field( + default=None, + metadata={ + "name": "BandStatsSource", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + draparameters: Optional[DRAParameters] = field( + default=None, + metadata={ + "name": "DRAParameters", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + draoverrides: Optional[DRAOverrides] = field( + default=None, + metadata={ + "name": "DRAOverrides", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class ExploitationFeaturesCollectionGeometryType: + """Key geometry parameters independent of product processing. + + All values computed at the center time of the full collection. + + :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 positive, right- + look is negative. + :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 doppler_cone_angle: The angle between the velocity vector and the radar line-of-sight vector. Also + known as the slant plane squint 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:2.0.0", + }, + ) + slope: Optional[float] = field( + default=None, + metadata={ + "name": "Slope", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_inclusive": 0.0, + "max_inclusive": 90.0, + }, + ) + squint: Optional[float] = field( + default=None, + metadata={ + "name": "Squint", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_inclusive": -180.0, + "max_inclusive": 180.0, + }, + ) + graze: Optional[float] = field( + default=None, + metadata={ + "name": "Graze", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_inclusive": 0.0, + "max_inclusive": 90.0, + }, + ) + tilt: Optional[float] = field( + default=None, + metadata={ + "name": "Tilt", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_inclusive": -180.0, + "max_inclusive": 180.0, + }, + ) + doppler_cone_angle: Optional[float] = field( + default=None, + metadata={ + "name": "DopplerConeAngle", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_inclusive": 0.0, + "max_exclusive": 180.0, + }, + ) + extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Extension", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class ExploitationFeaturesCollectionPhenomenologyType: + """Phenomenology related to both the geometry and the final product processing. + + All values computed at the center time of the full collection. + + :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:2.0.0", + }, + ) + layover: Optional[AngleMagnitudeType] = field( + default=None, + metadata={ + "name": "Layover", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + multi_path: Optional[float] = field( + default=None, + metadata={ + "name": "MultiPath", + "type": "Element", + "namespace": "urn:SIDD:2.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:2.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:2.0.0", + }, + ) + + +@dataclass +class GeographicCoordinatesType: + """ + Describes the Local Geographic Coordinate system linking row/column to the + absolute geographic coordinate (lat/lon) + + :ivar longitude_density: Pixel ground spacing in E/W direction that is the number of pixels or element + intervals in 360 degrees. + :ivar latitude_density: Pixel ground spacing in N/S direction that is the number of pixels or element + intervals in 360 degrees. + :ivar reference_origin: Northwest corner Latitude/Longitude - product NW corner + """ + + longitude_density: Optional[float] = field( + default=None, + metadata={ + "name": "LongitudeDensity", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + latitude_density: Optional[float] = field( + default=None, + metadata={ + "name": "LatitudeDensity", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + reference_origin: Optional[LatLonType] = field( + default=None, + metadata={ + "name": "ReferenceOrigin", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class GeometricChipType: + """Contains information related to downstream chipping of the product. + + There is only one instance, and the instance is updated with respect to the full image parameters. For + example, if an image is chipped out of a smaller chip, the new chip needs to be updated to the original full + image corners. Since this relationship is linear, bi-linear interpolation is sufficient to determine an + arbitrary chip coordinate in terms of the original full image coordinates. Chipping is typically done using + an exploitation tool, and should not be done in the initial product creation. + + :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:2.0.0", + "required": True, + }, + ) + original_upper_left_coordinate: Optional[RowColDoubleType] = field( + default=None, + metadata={ + "name": "OriginalUpperLeftCoordinate", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + original_upper_right_coordinate: Optional[RowColDoubleType] = field( + default=None, + metadata={ + "name": "OriginalUpperRightCoordinate", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + original_lower_left_coordinate: Optional[RowColDoubleType] = field( + default=None, + metadata={ + "name": "OriginalLowerLeftCoordinate", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + original_lower_right_coordinate: Optional[RowColDoubleType] = field( + default=None, + metadata={ + "name": "OriginalLowerRightCoordinate", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class GeopositioningType: + """ + Describes the absolute coordinate system to which the data is referenced. + + :ivar coordinate_system_type: + :ivar geodetic_datum: + :ivar reference_ellipsoid: + :ivar vertical_datum: + :ivar sounding_datum: + :ivar false_origin: Z values false origin + :ivar utmgrid_zone_number: Gride zone number, required for UTM, not include for GCS. (4 character field) + Values: +001 to +060 (northern hemisphere) -001 to -060 (southern hemisphere) + """ + + coordinate_system_type: Optional[GeopositioningTypeCoordinateSystemType] = field( + default=None, + metadata={ + "name": "CoordinateSystemType", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + geodetic_datum: Optional[GeopositioningTypeGeodeticDatum] = field( + default=None, + metadata={ + "name": "GeodeticDatum", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + reference_ellipsoid: Optional[GeopositioningTypeReferenceEllipsoid] = field( + default=None, + metadata={ + "name": "ReferenceEllipsoid", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + vertical_datum: Optional[GeopositioningTypeVerticalDatum] = field( + default=None, + metadata={ + "name": "VerticalDatum", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + sounding_datum: Optional[GeopositioningTypeSoundingDatum] = field( + default=None, + metadata={ + "name": "SoundingDatum", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + false_origin: Optional[int] = field( + default=None, + metadata={ + "name": "FalseOrigin", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + utmgrid_zone_number: Optional[int] = field( + default=None, + metadata={ + "name": "UTMGridZoneNumber", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class ImageCornersType: + """Parameters apply to image corners of the product projected to the same + height as the SCP. + + These corners are an approximate geographic location that is not intended for analytical use. + + :ivar icp: Image Corner Point (ICP) data for the 4 corners in product. ICPs indexed x = 1, 2, 3, 4, + clockwise. + """ + + icp: List["ImageCornersType.ICP"] = field( + default_factory=list, + metadata={ + "name": "ICP", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 4, + "max_occurs": 4, + }, + ) + + @dataclass + class ICP(LatLonType): + index: Optional[CornerStringType] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class InputROIType: + """ + ROI representing portion of input data used to make this product. + + :ivar size: Number of rows and columns extracted from the input. + :ivar upper_left: The upper-left pixel extracted from the input. + """ + + size: Optional[RowColIntType] = field( + default=None, + metadata={ + "name": "Size", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + upper_left: Optional[RowColIntType] = field( + default=None, + metadata={ + "name": "UpperLeft", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class KernelCustomType: + filter_coefficients: Optional[FilterKernelCoefType] = field( + default=None, + metadata={ + "name": "FilterCoefficients", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class LUTInfoType: + lutvalues: List[LookupTableType] = field( + default_factory=list, + metadata={ + "name": "LUTValues", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + num_luts: Optional[int] = field( + default=None, + metadata={ + "name": "numLuts", + "type": "Attribute", + "required": True, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class LayerInfoType: + """Original Layer Information. + + The following fileds repeat for all layers in (0, 1, ..., numLayers - 1). + The default number of layers per tile in original image out of the original processor. + + :ivar layer: Layer Index Number indicates the number of layers being described. Layers are numbered from 0 to + (numLayers - 1). + :ivar num_layers: + """ + + layer: List[LayerType] = field( + default_factory=list, + metadata={ + "name": "Layer", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + num_layers: Optional[int] = field( + default=None, + metadata={ + "name": "numLayers", + "type": "Attribute", + "required": True, + }, + ) + + +@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_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:2.0.0", + "required": True, + }, + ) + remap_parameter: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "RemapParameter", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class Orientation: + """ + Parameters describing the default orientation of the product. + + :ivar shadow_direction: Descirbes the shadow direciton relative to the pixels in the file. + """ + + shadow_direction: Optional[ShadowDirectionType] = field( + default=None, + metadata={ + "name": "ShadowDirection", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class PolygonType: + """Indicates the full image includes both valid data and some zero filled + pixels. + + Simple convex polygon enclosed the valid data (may include some zero filled pixels for simplification). + Vertices in clockwise order. + + :ivar vertex: Vertices indexed n = 1, 2, ..., NumVertices. NumVertices >= 3. Vertex 1 is determined by (1) + minimum row index, (2) minimum column index if 2 vertices with minimum row index, 1st and last vertices + are connected to form the polygon. + :ivar size: + """ + + vertex: List[LatLonVertexType] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 3, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class PositionalAccuracyType: + """ + Describes the horizontal and vertical point and regional information for the + DED. + + :ivar num_regions: Number of positional accuracy regions. + :ivar absolute_accuracy: + :ivar point_to_point_accuracy: + """ + + num_regions: Optional[int] = field( + default=None, + metadata={ + "name": "NumRegions", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + absolute_accuracy: Optional[AccuracyType] = field( + default=None, + metadata={ + "name": "AbsoluteAccuracy", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + point_to_point_accuracy: Optional[AccuracyType] = field( + default=None, + metadata={ + "name": "PointToPointAccuracy", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class PredefinedFilterType: + database_name: Optional[FilterDatabaseNameType] = field( + default=None, + metadata={ + "name": "DatabaseName", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + filter_family: Optional[int] = field( + default=None, + metadata={ + "name": "FilterFamily", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + filter_member: Optional[int] = field( + default=None, + metadata={ + "name": "FilterMember", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class ProcTxRcvPolarizationType: + """ + :ivar tx_polarization_proc: Polarization transmit type + :ivar rcv_polarization_proc: Receive polarization type + """ + + tx_polarization_proc: Optional[Union[str, Polarization1Typevalue]] = field( + default=None, + metadata={ + "name": "TxPolarizationProc", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + "pattern": r"OTHER.*", + }, + ) + rcv_polarization_proc: Optional[Union[str, Polarization1Typevalue]] = field( + default=None, + metadata={ + "name": "RcvPolarizationProc", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + "pattern": r"OTHER.*", + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + applied_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "AppliedDateTime", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + interpolation_method: Optional[str] = field( + default=None, + metadata={ + "name": "InterpolationMethod", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + descriptor: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Descriptor", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + module_parameter: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "ModuleParameter", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + processing_module: List["ProcessingModuleType"] = field( + default_factory=list, + metadata={ + "name": "ProcessingModule", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@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: + :ivar ismcatcesversion: + :ivar resource_element: + :ivar complies_with: + :ivar create_date: + :ivar exempt_from: + :ivar classification: + :ivar owner_producer: + :ivar joint: + :ivar scicontrols: + :ivar saridentifier: + :ivar atomic_energy_markings: + :ivar dissemination_controls: + :ivar display_only_to: + :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 notice_type: + :ivar notice_reason: + :ivar notice_date: + :ivar unregistered_notice_type: + :ivar external_notice: + """ + + security_extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "SecurityExtension", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + desversion: Optional[str] = field( + default=None, + metadata={ + "name": "DESVersion", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + "max_length": 256, + }, + ) + ismcatcesversion: Optional[str] = field( + default=None, + metadata={ + "name": "ISMCATCESVersion", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + "max_length": 256, + }, + ) + resource_element: Optional[bool] = field( + default=None, + metadata={ + "name": "resourceElement", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + }, + ) + complies_with: List[CVEnumISMCompliesWithValues] = field( + default_factory=list, + metadata={ + "name": "compliesWith", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + "tokens": True, + }, + ) + create_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "createDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + }, + ) + exempt_from: List[CVEnumISMExemptFromValues] = field( + default_factory=list, + metadata={ + "name": "exemptFrom", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + classification: Optional[CVEnumISMClassificationAll] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + }, + ) + owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "ownerProducer", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + joint: Optional[bool] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "SCIcontrols", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}", + "tokens": True, + }, + ) + saridentifier: List[str] = field( + default_factory=list, + metadata={ + "name": "SARIdentifier", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}", + "tokens": True, + }, + ) + atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "atomicEnergyMarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))", + "tokens": True, + }, + ) + dissemination_controls: List[CVEnumISMDissemValues] = field( + default_factory=list, + metadata={ + "name": "disseminationControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "displayOnlyTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceOpen", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceProtected", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "releasableTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "nonICmarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI", + "tokens": True, + }, + ) + classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "classifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + compilation_reason: Optional[str] = field( + default=None, + metadata={ + "name": "compilationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + derivatively_classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "derivativelyClassifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + classification_reason: Optional[str] = field( + default=None, + metadata={ + "name": "classificationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 4096, + }, + ) + non_uscontrols: List[CVEnumISMNonUSControlsValues] = field( + default_factory=list, + metadata={ + "name": "nonUSControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + derived_from: Optional[str] = field( + default=None, + metadata={ + "name": "derivedFrom", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "declassDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + declass_event: Optional[str] = field( + default=None, + metadata={ + "name": "declassEvent", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_exception: Optional[CVEnumISM25X] = field( + default=None, + metadata={ + "name": "declassException", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + notice_type: List[CVEnumISMNoticeValues] = field( + default_factory=list, + metadata={ + "name": "noticeType", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + notice_reason: Optional[str] = field( + default=None, + metadata={ + "name": "noticeReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 2048, + }, + ) + notice_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "noticeDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + unregistered_notice_type: Optional[str] = field( + default=None, + metadata={ + "name": "unregisteredNoticeType", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 2048, + }, + ) + external_notice: Optional[bool] = field( + default=None, + metadata={ + "name": "externalNotice", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + col_unit_vector: Optional[XYZType] = field( + default=None, + metadata={ + "name": "ColUnitVector", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@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. + """ + + tx_polarization: Optional[Union[str, Polarization1Typevalue]] = field( + default=None, + metadata={ + "name": "TxPolarization", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + "pattern": r"OTHER.*", + }, + ) + rcv_polarization: Optional[Union[str, Polarization1Typevalue]] = field( + default=None, + metadata={ + "name": "RcvPolarization", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + "pattern": r"OTHER.*", + }, + ) + rcv_polarization_offset: Optional[float] = field( + default=None, + metadata={ + "name": "RcvPolarizationOffset", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_inclusive": -180.0, + "max_inclusive": 180.0, + }, + ) + + +@dataclass +class ValidDataType: + """Indicates the full image includes both valid data and some zero filled + pixels. + + Simple convex polygon enclosed the valid data (may include some zero filled pixels for simplification). + Vertices in clockwise order. + + :ivar vertex: Vertices indexed n = 1, 2, ..., NumVertices. NumVertices >= 3. Vertex 1 is determined by (1) + minimum row index, (2) minimum column index if 2 vertices with minimum row index, 1st and last vertices + are connected to form the polygon. + :ivar size: + """ + + vertex: List[RowColVertexType] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 3, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + spatial_reference_system: Optional[ReferenceSystemType] = field( + default=None, + metadata={ + "name": "SpatialReferenceSystem", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + object_value: List[AnnotationObjectType] = field( + default_factory=list, + metadata={ + "name": "Object", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + + +@dataclass +class ColorSpaceTransformType: + """ + :ivar color_management_module: Parameters describing the Color Management Module (CMM). + """ + + color_management_module: Optional[ColorManagementModuleType] = field( + default=None, + metadata={ + "name": "ColorManagementModule", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class CustomLookupType: + lutinfo: Optional[LUTInfoType] = field( + default=None, + metadata={ + "name": "LUTInfo", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class DigitalElevationDataType: + """ + This block describes the Digital ElevatioNData when it is included with the + SIDD product. + + :ivar geographic_coordinates: Describes the Local Geographic Coordinate system linking row/column to the + absolute geographic coordinate (lat/lon) + :ivar geopositioning: Describes the absolute coordinate system to which the data is referenced. + :ivar positional_accuracy: Describes the horizontal and vertical point and regional information for the DED. + :ivar null_value: + """ + + geographic_coordinates: Optional[GeographicCoordinatesType] = field( + default=None, + metadata={ + "name": "GeographicCoordinates", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + geopositioning: Optional[GeopositioningType] = field( + default=None, + metadata={ + "name": "Geopositioning", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + positional_accuracy: Optional[PositionalAccuracyType] = field( + default=None, + metadata={ + "name": "PositionalAccuracy", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + null_value: Optional[int] = field( + default=None, + metadata={ + "name": "NullValue", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@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:2.0.0", + }, + ) + processing_event: List[ProcessingEventType] = field( + default_factory=list, + metadata={ + "name": "ProcessingEvent", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class ExploitationFeaturesCollectionInformationType: + """ + General collection information. + + :ivar sensor_name: The name of the sensor. + :ivar radar_mode: Radar collection mode. The ModeType refers to the collection type [SPOTLIGHT, STRIPMAP, + DYNAMIC STRIPMAP]. The optional ModeID is used to represent system-specific mode identifiers. + :ivar collection_date_time: Collection date and time defined in Coordinated Universal Time (UTC). The seconds + should be followed by a Z to indicate UTC. + :ivar local_date_time: Date and time defined in local time. + :ivar collection_duration: The duration of the collection (units = seconds). + :ivar resolution: Uniformly-weighted resolution (range and azimuth) processed in the slant plane. + :ivar input_roi: ROI representing portion of input data used to make this product. + :ivar polarization: Transmit and receive polarization. + """ + + sensor_name: Optional[str] = field( + default=None, + metadata={ + "name": "SensorName", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + radar_mode: Optional[RadarModeType] = field( + default=None, + metadata={ + "name": "RadarMode", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + collection_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CollectionDateTime", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + local_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "LocalDateTime", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + collection_duration: Optional[float] = field( + default=None, + metadata={ + "name": "CollectionDuration", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + resolution: Optional[RangeAzimuthType] = field( + default=None, + metadata={ + "name": "Resolution", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + input_roi: Optional[InputROIType] = field( + default=None, + metadata={ + "name": "InputROI", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + polarization: List[TxRcvPolarizationType] = field( + default_factory=list, + metadata={ + "name": "Polarization", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class ExploitationFeaturesProductType: + """ + Metadata regarding the product. + + :ivar resolution: Uniformly-weighted resolution projected into the Earth Tangent Plane (ETP). + :ivar ellipticity: Ellipticity of the 2D-IPR at the ORP, measured in the Earth Geodetic Tangent Plane (EGTP). + Ellipticity is the ratio of the IPR ellipse's major axis to minor axis. + :ivar polarization: Describes the processed transmit and receive polarizations for the product. + :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:2.0.0", + "required": True, + }, + ) + ellipticity: Optional[float] = field( + default=None, + metadata={ + "name": "Ellipticity", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + polarization: List[ProcTxRcvPolarizationType] = field( + default_factory=list, + metadata={ + "name": "Polarization", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + north: Optional[float] = field( + default=None, + metadata={ + "name": "North", + "type": "Element", + "namespace": "urn:SIDD:2.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:2.0.0", + }, + ) + + +@dataclass +class FilterBankType: + predefined: Optional[PredefinedFilterType] = field( + default=None, + metadata={ + "name": "Predefined", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + custom: Optional[BankCustomType] = field( + default=None, + metadata={ + "name": "Custom", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class FilterKernelType: + predefined: Optional[PredefinedFilterType] = field( + default=None, + metadata={ + "name": "Predefined", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + custom: Optional[KernelCustomType] = field( + default=None, + metadata={ + "name": "Custom", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class GeoDataType: + """ + This block describes the geographic coordinates of the region covered by the + image. + + :ivar earth_model: Identifies the earth model used for latitude, longitude and height parameters. All height + values are Height Above The Ellipsoid (HAE). + :ivar image_corners: Parameters apply to image corners of the product projected to the same height as the + SCP. These corners are an approximate geographic location that is not intended for analytical use. + :ivar valid_data: Indicates the full image includes both valid data and some zero filled pixels. Simple + convex polygon enclosed the valid data (may include some zero filled pixels for simplification). Vertices + in clockwise order. + :ivar geo_info: Parameters describing geographic features. Note: the GeoInfo block may be used as a block + within itself. + """ + + earth_model: Optional[EarthModelType] = field( + default=None, + metadata={ + "name": "EarthModel", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + image_corners: Optional[ImageCornersType] = field( + default=None, + metadata={ + "name": "ImageCorners", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + valid_data: Optional[PolygonType] = field( + default=None, + metadata={ + "name": "ValidData", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + geo_info: List[GeoInfo] = field( + default_factory=list, + metadata={ + "name": "GeoInfo", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + +@dataclass +class J2KSubtype: + """ + :ivar num_wavelet_levels: The default number of wavelet decompositionlevels performed per tile in the + original image out of the processors. + :ivar num_bands: The number of spectral bands in the original image out of the processors. + :ivar layer_info: Original Layer Information. The following fileds repeat for all layers in (0, 1, ..., + numLayers - 1). The default number of layers per tile in original image out of the original processor. + """ + + num_wavelet_levels: Optional[int] = field( + default=None, + metadata={ + "name": "NumWaveletLevels", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + num_bands: Optional[int] = field( + default=None, + metadata={ + "name": "NumBands", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + layer_info: Optional[LayerInfoType] = field( + default=None, + metadata={ + "name": "LayerInfo", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + time_coapoly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "TimeCOAPoly", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + row_col_to_lon: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "RowColToLon", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + row_col_to_alt: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "RowColToAlt", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + lat_lon_to_row: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "LatLonToRow", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + lat_lon_to_col: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "LatLonToCol", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + classification: Optional[ProductClassificationType] = field( + default=None, + metadata={ + "name": "Classification", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + product_name: Optional[str] = field( + default=None, + metadata={ + "name": "ProductName", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + product_class: Optional[str] = field( + default=None, + metadata={ + "name": "ProductClass", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + product_type: Optional[str] = field( + default=None, + metadata={ + "name": "ProductType", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + product_creation_extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "ProductCreationExtension", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class ProductProcessingType: + """ + Computed metadata regarding one or more of the input collections and final + product. + + :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:2.0.0", + "min_occurs": 1, + }, + ) + + +@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:2.0.0", + }, + ) + monochrome_display_remap: Optional[MonochromeDisplayRemapType] = field( + default=None, + metadata={ + "name": "MonochromeDisplayRemap", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class AnnotationsType: + """ + :ivar annotation: Annotation Object. + """ + + annotation: List[AnnotationType] = field( + default_factory=list, + metadata={ + "name": "Annotation", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + curvature_radius: Optional[float] = field( + default=None, + metadata={ + "name": "CurvatureRadius", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + geometry: Optional[ExploitationFeaturesCollectionGeometryType] = field( + default=None, + metadata={ + "name": "Geometry", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + phenomenology: Optional[ExploitationFeaturesCollectionPhenomenologyType] = field( + default=None, + metadata={ + "name": "Phenomenology", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class FilterType: + filter_name: Optional[str] = field( + default=None, + metadata={ + "name": "FilterName", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + filter_kernel: Optional[FilterKernelType] = field( + default=None, + metadata={ + "name": "FilterKernel", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + filter_bank: Optional[FilterBankType] = field( + default=None, + metadata={ + "name": "FilterBank", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + operation: Optional[FilterOperationType] = field( + default=None, + metadata={ + "name": "Operation", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class GeographicProjectionType(MeasurableProjectionType): + """ + Geographic mapping of the pixel grid. + """ + + +@dataclass +class J2KType: + """ + :ivar original: + :ivar parsed: Conditional fields that exist only for parsed images. + """ + + original: Optional[J2KSubtype] = field( + default=None, + metadata={ + "name": "Original", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + parsed: Optional[J2KSubtype] = field( + default=None, + metadata={ + "name": "Parsed", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class NewLookupTableType: + lutname: Optional[str] = field( + default=None, + metadata={ + "name": "LUTName", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + predefined: Optional[PredefinedLookupType] = field( + default=None, + metadata={ + "name": "Predefined", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + custom: Optional[CustomLookupType] = field( + default=None, + metadata={ + "name": "Custom", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@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:2.0.0", + "required": True, + }, + ) + + +@dataclass +class BandEqualizationType: + """ + Band equalization ensures that real-world neutral colors have equal digital + count values (i.e. are represented as neutral colors) across the dynamic range + of the imaged scene. + + :ivar algorithm: Allowed values: 1DLUT + :ivar band_lut: + """ + + algorithm: Optional[EqualizationAlgorithmType] = field( + default=None, + metadata={ + "name": "Algorithm", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + band_lut: List["BandEqualizationType.BandLUT"] = field( + default_factory=list, + metadata={ + "name": "BandLUT", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + + @dataclass + class BandLUT(NewLookupTableType): + k: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class CompressionType: + """ + Contains information regarding any compression that has occured to the image + data. + + :ivar j2_k: Block describing details of JPEG 2000 compression. + """ + + j2_k: Optional[J2KType] = field( + default=None, + metadata={ + "name": "J2K", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@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:2.0.0", + "min_occurs": 1, + }, + ) + product: List[ExploitationFeaturesProductType] = field( + default_factory=list, + metadata={ + "name": "Product", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + + @dataclass + class Collection(ExploitationFeaturesCollectionType): + identifier: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@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 in pixels. + :ivar arpflag: Flag indicating whether ARP polynomial is based on the best available ("collect time" or + "predicted") ephemeris. + :ivar arppoly: Center of aperture polynomial (units = m) based upon time into the collect. + :ivar valid_data: Indicates the full image includes both valid data and some zero filled pixels. Simple + convex polygon enclosed the valid data (may include some zero filled pixels for simplification). Vertices + in clockwise order. + """ + + polynomial_projection: Optional[PolynomialProjectionType] = field( + default=None, + metadata={ + "name": "PolynomialProjection", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + geographic_projection: Optional[GeographicProjectionType] = field( + default=None, + metadata={ + "name": "GeographicProjection", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + plane_projection: Optional[PlaneProjectionType] = field( + default=None, + metadata={ + "name": "PlaneProjection", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + cylindrical_projection: Optional[CylindricalProjectionType] = field( + default=None, + metadata={ + "name": "CylindricalProjection", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + pixel_footprint: Optional[RowColIntType] = field( + default=None, + metadata={ + "name": "PixelFootprint", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + arpflag: Optional[MeasurementTypeARPFlag] = field( + default=None, + metadata={ + "name": "ARPFlag", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + arppoly: Optional[XYZPolyType] = field( + default=None, + metadata={ + "name": "ARPPoly", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + valid_data: Optional[ValidDataType] = field( + default=None, + metadata={ + "name": "ValidData", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class RRDSType: + """ + :ivar downsampling_method: Algorithm used to perform RRDS downsampling + :ivar anti_alias: Only included if DownSamplingMethod=DECIMET + :ivar interpolation: Only included if DownSamplingMethod=DECIMET + """ + + downsampling_method: Optional[DownsamplingMethodType] = field( + default=None, + metadata={ + "name": "DownsamplingMethod", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + anti_alias: Optional[FilterType] = field( + default=None, + metadata={ + "name": "AntiAlias", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + interpolation: Optional[FilterType] = field( + default=None, + metadata={ + "name": "Interpolation", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class ScalingType: + """ + :ivar anti_alias: Anti-Alias Filter used for scaling. Refer to program-specific documentation for population + guidance + :ivar interpolation: Interpolation Filter used for scaling. Refer to program-specific documentation for + population guidance. + """ + + anti_alias: Optional[FilterType] = field( + default=None, + metadata={ + "name": "AntiAlias", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + interpolation: Optional[FilterType] = field( + default=None, + metadata={ + "name": "Interpolation", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class SharpnessEnhancementType: + """ + :ivar modular_transfer_function_compensation: Note: If defining a custom Filter, it must be no larger than + 5x5. + :ivar modular_transfer_function_enhancement: Note: If defining a custom Filter, it must be no larger than + 5x5. + """ + + modular_transfer_function_compensation: Optional[FilterType] = field( + default=None, + metadata={ + "name": "ModularTransferFunctionCompensation", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + modular_transfer_function_enhancement: Optional[FilterType] = field( + default=None, + metadata={ + "name": "ModularTransferFunctionEnhancement", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class GeometricTransformType: + """ + :ivar scaling: + :ivar orientation: Parameters describing the default orientation of the product + """ + + scaling: Optional[ScalingType] = field( + default=None, + metadata={ + "name": "Scaling", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + orientation: Optional[Orientation] = field( + default=None, + metadata={ + "name": "Orientation", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + + +@dataclass +class ProductGenerationOptionsType: + """ + Performs several key actions on an image to prepare it for necessary additional + processing to achieve the desired output product. + + :ivar band_equalization: Band equalization ensures that real-world neutral colors have equal digital count + values (i.e. are represented as neutral colors) across the dynamic range of the imaged scene. + :ivar modular_transfer_function_restoration: Filter must be no larger than 15x15. + :ivar data_remapping: Data remapping refers to the specific need to convert the data of incoming, expanded or + uncompressed image band data to non-mapped image data. + :ivar asymmetric_pixel_correction: + """ + + band_equalization: Optional[BandEqualizationType] = field( + default=None, + metadata={ + "name": "BandEqualization", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + modular_transfer_function_restoration: Optional[FilterType] = field( + default=None, + metadata={ + "name": "ModularTransferFunctionRestoration", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + data_remapping: Optional[NewLookupTableType] = field( + default=None, + metadata={ + "name": "DataRemapping", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + asymmetric_pixel_correction: Optional[FilterType] = field( + default=None, + metadata={ + "name": "AsymmetricPixelCorrection", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@dataclass +class InteractiveProcessingType: + """ + :ivar geometric_transform: The geometric transform element is used to perform various geometric distortions + to each band of image data. These distortions include image chipping, scaling, rotation, shearing, etc. + :ivar sharpness_enhancement: + :ivar color_space_transform: + :ivar dynamic_range_adjustment: Specifies the recommended ELT DRA overrides + :ivar tonal_transfer_curve: The 1-D LUT element uses one or more 1-D LUTs to stretch or compress tome data in + valorous regions within a digital image's dynamic range. 1-D LUT can be implemented using a Tonal + Transfer Curve (TTC). There are 12 families of TTCs: Range = [0,11]. There are 64 members for each + family: Range=[0, 63]. + :ivar band: + """ + + geometric_transform: Optional[GeometricTransformType] = field( + default=None, + metadata={ + "name": "GeometricTransform", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + sharpness_enhancement: Optional[SharpnessEnhancementType] = field( + default=None, + metadata={ + "name": "SharpnessEnhancement", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + color_space_transform: Optional[ColorSpaceTransformType] = field( + default=None, + metadata={ + "name": "ColorSpaceTransform", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + dynamic_range_adjustment: Optional[DynamicRangeAdjustmentType] = field( + default=None, + metadata={ + "name": "DynamicRangeAdjustment", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + tonal_transfer_curve: Optional[NewLookupTableType] = field( + default=None, + metadata={ + "name": "TonalTransferCurve", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + band: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class NonInteractiveProcessingType: + """ + :ivar product_generation_options: Performs several key actions on an image to prepare it for necessary + additional processing to achieve the desired output product. + :ivar rrds: Creates a set of sub-sampled versions of an image to provide processing chains with quick access + to lower mangification values for faster computation speeds and performance. + :ivar band: + """ + + product_generation_options: Optional[ProductGenerationOptionsType] = field( + default=None, + metadata={ + "name": "ProductGenerationOptions", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + rrds: Optional[RRDSType] = field( + default=None, + metadata={ + "name": "RRDS", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + band: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@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 num_bands: Number of bands contained in the image. Populate with the number of bands present after + remapping. For example an 8-bit RGB image (RGBLU) this should be populated with 3. + :ivar default_band_display: Indicates which band to display by default. Valid range = 1 to NumBands. + :ivar non_interactive_processing: + :ivar interactive_processing: + :ivar display_extension: Optional extensible parameters used to support profile-specific needs related to + product display. Predefined filter types. + """ + + pixel_type: Optional[PixelType] = field( + default=None, + metadata={ + "name": "PixelType", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + num_bands: Optional[int] = field( + default=None, + metadata={ + "name": "NumBands", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "required": True, + }, + ) + default_band_display: Optional[int] = field( + default=None, + metadata={ + "name": "DefaultBandDisplay", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + non_interactive_processing: List[NonInteractiveProcessingType] = field( + default_factory=list, + metadata={ + "name": "NonInteractiveProcessing", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + interactive_processing: List[InteractiveProcessingType] = field( + default_factory=list, + metadata={ + "name": "InteractiveProcessing", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + "min_occurs": 1, + }, + ) + display_extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "DisplayExtension", + "type": "Element", + "namespace": "urn:SIDD:2.0.0", + }, + ) + + +@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 geo_data: 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 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 match_info: Information about other collections that are matched to the current collection. The current + collection is the collection from which this SIDD product was generated. + :ivar compression: Contains information regarding any compression that has occured to the image data. + :ivar digital_elevation_data: This block describes the Digital ElevatioNData when it is included with the + SIDD product. + :ivar product_processing: Contains metadata related to algorithms used during product generation. + :ivar annotations: List of annotations for the imagery. + """ + + class Meta: + namespace = "urn:SIDD:2.0.0" + + 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, + }, + ) + geo_data: Optional[GeoDataType] = field( + default=None, + metadata={ + "name": "GeoData", + "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, + }, + ) + 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", + }, + ) + match_info: Optional[MatchInfoType] = field( + default=None, + metadata={ + "name": "MatchInfo", + "type": "Element", + }, + ) + compression: Optional[CompressionType] = field( + default=None, + metadata={ + "name": "Compression", + "type": "Element", + }, + ) + digital_elevation_data: Optional[DigitalElevationDataType] = field( + default=None, + metadata={ + "name": "DigitalElevationData", + "type": "Element", + }, + ) + product_processing: Optional[ProductProcessingType] = field( + default=None, + metadata={ + "name": "ProductProcessing", + "type": "Element", + }, + ) + annotations: Optional[AnnotationsType] = field( + default=None, + metadata={ + "name": "Annotations", + "type": "Element", + }, + ) diff --git a/src/aws/osml/formats/sidd/models/sidd_v3_0_0.py b/src/aws/osml/formats/sidd/models/sidd_v3_0_0.py new file mode 100644 index 0000000..002367f --- /dev/null +++ b/src/aws/osml/formats/sidd/models/sidd_v3_0_0.py @@ -0,0 +1,3454 @@ +"""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_v13.schema.ism.cvegenerated.cvenum_ism25_x import CVEnumISM25X +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismatomic_energy_markings import ( + CVEnumISMatomicEnergyMarkingsValuesvalue, +) +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismclassification_all import CVEnumISMClassificationAll +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismcomplies_with import CVEnumISMCompliesWithValues +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismdissem import CVEnumISMDissemValues +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismexempt_from import CVEnumISMExemptFromValues +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismnon_ic import CVEnumISMNonICValuesvalue +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismnon_uscontrols import CVEnumISMNonUSControlsValues +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismnotice import CVEnumISMNoticeValues +from .external.ism_v13.schema.ism.cvegenerated.cvenum_ismscicontrols import CVEnumISMSCIControlsValuesvalue +from .external.ism_v13.schema.ismcat.cvegenerated.cvenum_ismcatfgiopen import CVEnumISMCATFGIOpenValuesvalue +from .external.ism_v13.schema.ismcat.cvegenerated.cvenum_ismcatfgiprotected import CVEnumISMCATFGIProtectedValuesvalue +from .external.ism_v13.schema.ismcat.cvegenerated.cvenum_ismcatowner_producer import CVEnumISMCATOwnerProducerValuesvalue +from .external.ism_v13.schema.ismcat.cvegenerated.cvenum_ismcatrel_to import CVEnumISMCATRelToValuesvalue +from .sfa import LinearRingType, LineType, MultiLineStringType, MultiPointType, MultiPolygonType, PointType +from .sfa import PolygonType as SfaPolygonType +from .sfa import PolyhedralSurfaceType, ReferenceSystemType +from .sicommon_types_v1_0 import ( + AngleZeroToExclusive360MagnitudeType, + CornerStringType, + ErrorStatisticsType, + GeoInfo, + LatLonType, + LatLonVertexType, + MatchInfoType, + ParameterType, + Polarization1Typevalue, + Poly2DType, + RadarModeType, + RadiometricType, + RangeAzimuthType, + ReferencePointType, + RowColDoubleType, + RowColIntType, + RowColVertexType, + XYZPolyType, + XYZType, +) + +__NAMESPACE__ = "urn:SIDD:3.0.0" + + +@dataclass +class AccuracyType: + horizontal: List[float] = field( + default_factory=list, + metadata={ + "name": "Horizontal", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + vertical: List[float] = field( + default_factory=list, + metadata={ + "name": "Vertical", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + + +@dataclass +class AcheivedResolutionType: + """ + Finest achievable resolution parameters. + """ + + +@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:3.0.0", + "required": True, + }, + ) + date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "Date", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + clip_max: Optional[int] = field( + default=None, + metadata={ + "name": "ClipMax", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class DRAOverrides: + """ + :ivar subtractor: Subtractor value used to reduce haze in the image. Range: [0.0 to 2047.0] + :ivar multiplier: Multiplier value used to reduce haze in the image. Range: [0.0 to 2047.0] + """ + + subtractor: Optional[float] = field( + default=None, + metadata={ + "name": "Subtractor", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + multiplier: Optional[float] = field( + default=None, + metadata={ + "name": "Multiplier", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class DRAParameters: + """ + :ivar pmin: DRA clip low point. This is the cumulative histogram percentage value that defines the lower end- + point of the dynamic range to be displayed. Range: [0.0 to 1.0] + :ivar pmax: DRA clip high point. This is the cumulative histogram percentage value that defines the upper + end-point of the dynamic range to be displayed. Range: [0.0 to 1.0] + :ivar emin_modifier: The pixel value corresponding to the Pmin percentage poitn in the image histogram. + Range: [0.0 to 1.0]/ + :ivar emax_modifier: The pixel value corresponding to the Pmax percentage poitn in the image histogram. + Range: [0.0 to 1.0]/ + """ + + pmin: Optional[float] = field( + default=None, + metadata={ + "name": "Pmin", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + pmax: Optional[float] = field( + default=None, + metadata={ + "name": "Pmax", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + emin_modifier: Optional[float] = field( + default=None, + metadata={ + "name": "EminModifier", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + emax_modifier: Optional[float] = field( + default=None, + metadata={ + "name": "EmaxModifier", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +class DownsamplingMethodType(Enum): + DECIMATE = "DECIMATE" + MAX_PIXEL = "MAX PIXEL" + AVERAGE = "AVERAGE" + NEAREST_NEIGHBOR = "NEAREST NEIGHBOR" + BILINEAR = "BILINEAR" + LAGRANGE = "LAGRANGE" + + +class EarthModelType(Enum): + """Identifies the earth model used for latitude, longitude and height + parameters. + + All height values are Height Above The Ellipsoid (HAE). + """ + + WGS_84 = "WGS_84" + + +class EqualizationAlgorithmType(Enum): + VALUE_1_DLUT = "1DLUT" + + +@dataclass +class FilterBankCoefType: + coef: List["FilterBankCoefType.Coef"] = field( + default_factory=list, + metadata={ + "name": "Coef", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + num_phasings: Optional[int] = field( + default=None, + metadata={ + "name": "numPhasings", + "type": "Attribute", + "required": True, + }, + ) + num_points: Optional[int] = field( + default=None, + metadata={ + "name": "numPoints", + "type": "Attribute", + "required": True, + }, + ) + + @dataclass + class Coef: + value: Optional[float] = field( + default=None, + metadata={ + "required": True, + }, + ) + phasing: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + point: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class FilterDatabaseNameType(Enum): + BILINEAR = "BILINEAR" + CUBIC = "CUBIC" + LAGRANGE = "LAGRANGE" + NEAREST_NEIGHBOR = "NEAREST NEIGHBOR" + + +@dataclass +class FilterKernelCoefType: + coef: List["FilterKernelCoefType.Coef"] = field( + default_factory=list, + metadata={ + "name": "Coef", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + num_rows: Optional[int] = field( + default=None, + metadata={ + "name": "numRows", + "type": "Attribute", + "required": True, + }, + ) + num_cols: Optional[int] = field( + default=None, + metadata={ + "name": "numCols", + "type": "Attribute", + "required": True, + }, + ) + + @dataclass + class Coef: + value: Optional[float] = field( + default=None, + metadata={ + "required": True, + }, + ) + row: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + col: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class FilterOperationType(Enum): + CONVOLUTION = "CONVOLUTION" + CORRELATION = "CORRELATION" + + +class GeopositioningTypeCoordinateSystemType(Enum): + GCS = "GCS" + UTM = "UTM" + + +class GeopositioningTypeGeodeticDatum(Enum): + WORLD_GEODETIC_SYSTEM_1984 = "World Geodetic System 1984" + + +class GeopositioningTypeReferenceEllipsoid(Enum): + WORLD_GEODETIC_SYSTEM_1984 = "World Geodetic System 1984" + + +class GeopositioningTypeSoundingDatum(Enum): + MEAN_SEA_LEVEL = "Mean Sea Level" + + +class GeopositioningTypeVerticalDatum(Enum): + MEAN_SEA_LEVEL = "Mean Sea Level" + + +@dataclass +class LayerType: + """ + :ivar bitrate: The bit rate target associated with the layer. It may happen that the bit rate was not + achieved due to data characteristics. Note: for JPEG 2000 numerically lossless quality, the bit rate for + the final layer is an expected value, based on performance. + :ivar index: + """ + + bitrate: Optional[float] = field( + default=None, + metadata={ + "name": "Bitrate", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + index: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@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, + }, + ) + + +@dataclass +class LookupTableType: + """ + :ivar value: + :ivar lut: Size of LUT. + """ + + value: List[int] = field( + default_factory=list, + metadata={ + "tokens": True, + }, + ) + lut: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +class MeasurementTypeARPFlag(Enum): + """ + :cvar REALTIME: Based on ephemeries at time of collect + :cvar PREDICTED: Based on predicted ephemeries (i.e. pre-collect) + :cvar POST_PROCESSED: Ephemeris has been refined after data collection + """ + + REALTIME = "REALTIME" + PREDICTED = "PREDICTED" + POST_PROCESSED = "POST PROCESSED" + + +class PixelType(Enum): + MONO8_I = "MONO8I" + MONO8_LU = "MONO8LU" + MONO16_I = "MONO16I" + RGB8_LU = "RGB8LU" + RGB24_I = "RGB24I" + + +@dataclass +class PredefinedLookupType: + """ + :ivar database_name: Database name of LUT to use. + :ivar remap_family: Index specifying the remap family. + :ivar remap_member: Index specifying the member for the remap family. + """ + + database_name: Optional[str] = field( + default=None, + metadata={ + "name": "DatabaseName", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + remap_family: Optional[int] = field( + default=None, + metadata={ + "name": "RemapFamily", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + remap_member: Optional[int] = field( + default=None, + metadata={ + "name": "RemapMember", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class ProcessorInformationType: + """ + :ivar application: Software application name and version number. + :ivar processing_date_time: Date and time defined in Coordinated Universal Time (UTC). The seconds should be + followed by a Z to indicate UTC. + :ivar site: Creation location of product. + :ivar profile: Product-specific profile applied during product processing. + """ + + application: Optional[str] = field( + default=None, + metadata={ + "name": "Application", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + processing_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "ProcessingDateTime", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + site: Optional[str] = field( + default=None, + metadata={ + "name": "Site", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + profile: Optional[str] = field( + default=None, + metadata={ + "name": "Profile", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +class RangeAdjustmentAlgorithmType(Enum): + """ + Algorithm used for dynamic range adjustment. + """ + + AUTO = "AUTO" + MANUAL = "MANUAL" + NONE = "NONE" + + +class RenderingIntentType(Enum): + PERCEPTUAL = "PERCEPTUAL" + SATURATION = "SATURATION" + RELATIVE = "RELATIVE" + ABSOLUTE = "ABSOLUTE" + + +class ShadowDirectionType(Enum): + """ + Descirbes the shadow direciton relative to the pixels in the file. + """ + + UP = "UP" + DOWN = "DOWN" + LEFT = "LEFT" + RIGHT = "RIGHT" + ARBITRARY = "ARBITRARY" + + +@dataclass +class AnnotationObjectType: + """ + Geometrical representation of the annotation. + """ + + point: Optional[PointType] = field( + default=None, + metadata={ + "name": "Point", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + line: Optional[LineType] = field( + default=None, + metadata={ + "name": "Line", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + linear_ring: Optional[LinearRingType] = field( + default=None, + metadata={ + "name": "LinearRing", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + polygon: Optional[SfaPolygonType] = field( + default=None, + metadata={ + "name": "Polygon", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + polyhedral_surface: Optional[PolyhedralSurfaceType] = field( + default=None, + metadata={ + "name": "PolyhedralSurface", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + multi_polygon: Optional[MultiPolygonType] = field( + default=None, + metadata={ + "name": "MultiPolygon", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + multi_line_string: Optional[MultiLineStringType] = field( + default=None, + metadata={ + "name": "MultiLineString", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + multi_point: Optional[MultiPointType] = field( + default=None, + metadata={ + "name": "MultiPoint", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class BankCustomType: + filter_coefficients: Optional[FilterBankCoefType] = field( + default=None, + metadata={ + "name": "FilterCoefficients", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + + +@dataclass +class ColorManagementModuleType: + """ + Parameters describing the Color Management Module (CMM). + + :ivar rendering_intent: + :ivar source_profile: Name of sensor profile in ICC Profile database. + :ivar display_profile: Name of display profile in ICC Profile database. + :ivar iccprofile_signature: Valid ICC profile signature. + """ + + rendering_intent: Optional[RenderingIntentType] = field( + default=None, + metadata={ + "name": "RenderingIntent", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + source_profile: Optional[str] = field( + default=None, + metadata={ + "name": "SourceProfile", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + display_profile: Optional[str] = field( + default=None, + metadata={ + "name": "DisplayProfile", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + iccprofile_signature: Optional[str] = field( + default=None, + metadata={ + "name": "ICCProfileSignature", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class DynamicRangeAdjustmentType: + """ + Parameter describing DRA. + + :ivar algorithm_type: Algorithm used for dynamic range adjustment. + :ivar band_stats_source: Indicates which band to use in computing statistics for DRA. Valid range = 1 to + NumBands. + :ivar draparameters: + :ivar draoverrides: + """ + + algorithm_type: Optional[RangeAdjustmentAlgorithmType] = field( + default=None, + metadata={ + "name": "AlgorithmType", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + band_stats_source: Optional[int] = field( + default=None, + metadata={ + "name": "BandStatsSource", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + draparameters: Optional[DRAParameters] = field( + default=None, + metadata={ + "name": "DRAParameters", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + draoverrides: Optional[DRAOverrides] = field( + default=None, + metadata={ + "name": "DRAOverrides", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class ExploitationFeaturesCollectionGeometryType: + """Key geometry parameters independent of product processing. + + All values computed at the center time of the full collection. + + :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 positive, right- + look is negative. + :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 doppler_cone_angle: The angle between the velocity vector and the radar line-of-sight vector. Also + known as the slant plane squint 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:3.0.0", + "min_inclusive": 0.0, + "max_exclusive": 360.0, + }, + ) + slope: Optional[float] = field( + default=None, + metadata={ + "name": "Slope", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_inclusive": 0.0, + "max_inclusive": 90.0, + }, + ) + squint: Optional[float] = field( + default=None, + metadata={ + "name": "Squint", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_inclusive": -180.0, + "max_inclusive": 180.0, + }, + ) + graze: Optional[float] = field( + default=None, + metadata={ + "name": "Graze", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_inclusive": 0.0, + "max_inclusive": 90.0, + }, + ) + tilt: Optional[float] = field( + default=None, + metadata={ + "name": "Tilt", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_inclusive": -180.0, + "max_inclusive": 180.0, + }, + ) + doppler_cone_angle: Optional[float] = field( + default=None, + metadata={ + "name": "DopplerConeAngle", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_inclusive": 0.0, + "max_exclusive": 180.0, + }, + ) + extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Extension", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class ExploitationFeaturesCollectionPhenomenologyType: + """Phenomenology related to both the geometry and the final product processing. + + All values computed at the center time of the full collection. + + :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[AngleZeroToExclusive360MagnitudeType] = field( + default=None, + metadata={ + "name": "Shadow", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + layover: Optional[AngleZeroToExclusive360MagnitudeType] = field( + default=None, + metadata={ + "name": "Layover", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + multi_path: Optional[float] = field( + default=None, + metadata={ + "name": "MultiPath", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_inclusive": 0.0, + "max_exclusive": 360.0, + }, + ) + ground_track: Optional[float] = field( + default=None, + metadata={ + "name": "GroundTrack", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_inclusive": 0.0, + "max_exclusive": 360.0, + }, + ) + extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Extension", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class GeographicCoordinatesType: + """ + Describes the Local Geographic Coordinate system linking row/column to the + absolute geographic coordinate (lat/lon) + + :ivar longitude_density: Pixel ground spacing in E/W direction that is the number of pixels or element + intervals in 360 degrees. + :ivar latitude_density: Pixel ground spacing in N/S direction that is the number of pixels or element + intervals in 360 degrees. + :ivar reference_origin: Northwest corner Latitude/Longitude - product NW corner + """ + + longitude_density: Optional[float] = field( + default=None, + metadata={ + "name": "LongitudeDensity", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + latitude_density: Optional[float] = field( + default=None, + metadata={ + "name": "LatitudeDensity", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + reference_origin: Optional[LatLonType] = field( + default=None, + metadata={ + "name": "ReferenceOrigin", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class GeometricChipType: + """Contains information related to downstream chipping of the product. + + There is only one instance, and the instance is updated with respect to the full image parameters. For + example, if an image is chipped out of a smaller chip, the new chip needs to be updated to the original full + image corners. Since this relationship is linear, bi-linear interpolation is sufficient to determine an + arbitrary chip coordinate in terms of the original full image coordinates. Chipping is typically done using + an exploitation tool, and should not be done in the initial product creation. + + :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:3.0.0", + "required": True, + }, + ) + original_upper_left_coordinate: Optional[RowColDoubleType] = field( + default=None, + metadata={ + "name": "OriginalUpperLeftCoordinate", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + original_upper_right_coordinate: Optional[RowColDoubleType] = field( + default=None, + metadata={ + "name": "OriginalUpperRightCoordinate", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + original_lower_left_coordinate: Optional[RowColDoubleType] = field( + default=None, + metadata={ + "name": "OriginalLowerLeftCoordinate", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + original_lower_right_coordinate: Optional[RowColDoubleType] = field( + default=None, + metadata={ + "name": "OriginalLowerRightCoordinate", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class GeopositioningType: + """ + Describes the absolute coordinate system to which the data is referenced. + + :ivar coordinate_system_type: + :ivar geodetic_datum: + :ivar reference_ellipsoid: + :ivar vertical_datum: + :ivar sounding_datum: + :ivar false_origin: Z values false origin + :ivar utmgrid_zone_number: Gride zone number, required for UTM, not include for GCS. (4 character field) + Values: +001 to +060 (northern hemisphere) -001 to -060 (southern hemisphere) + """ + + coordinate_system_type: Optional[GeopositioningTypeCoordinateSystemType] = field( + default=None, + metadata={ + "name": "CoordinateSystemType", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + geodetic_datum: Optional[GeopositioningTypeGeodeticDatum] = field( + default=None, + metadata={ + "name": "GeodeticDatum", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + reference_ellipsoid: Optional[GeopositioningTypeReferenceEllipsoid] = field( + default=None, + metadata={ + "name": "ReferenceEllipsoid", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + vertical_datum: Optional[GeopositioningTypeVerticalDatum] = field( + default=None, + metadata={ + "name": "VerticalDatum", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + sounding_datum: Optional[GeopositioningTypeSoundingDatum] = field( + default=None, + metadata={ + "name": "SoundingDatum", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + false_origin: Optional[int] = field( + default=None, + metadata={ + "name": "FalseOrigin", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + utmgrid_zone_number: Optional[int] = field( + default=None, + metadata={ + "name": "UTMGridZoneNumber", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class ImageCornersType: + """Parameters apply to image corners of the product projected to the same + height as the SCP. + + These corners are an approximate geographic location that is not intended for analytical use. + + :ivar icp: Image Corner Point (ICP) data for the 4 corners in product. ICPs indexed x = 1, 2, 3, 4, + clockwise. + """ + + icp: List["ImageCornersType.ICP"] = field( + default_factory=list, + metadata={ + "name": "ICP", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 4, + "max_occurs": 4, + }, + ) + + @dataclass + class ICP(LatLonType): + index: Optional[CornerStringType] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class InputROIType: + """ + ROI representing portion of input data used to make this product. + + :ivar size: Number of rows and columns extracted from the input. + :ivar upper_left: The upper-left pixel extracted from the input. + """ + + size: Optional[RowColIntType] = field( + default=None, + metadata={ + "name": "Size", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + upper_left: Optional[RowColIntType] = field( + default=None, + metadata={ + "name": "UpperLeft", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class KernelCustomType: + filter_coefficients: Optional[FilterKernelCoefType] = field( + default=None, + metadata={ + "name": "FilterCoefficients", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class LUTInfoType: + lutvalues: List[LookupTableType] = field( + default_factory=list, + metadata={ + "name": "LUTValues", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + num_luts: Optional[int] = field( + default=None, + metadata={ + "name": "numLuts", + "type": "Attribute", + "required": True, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class LayerInfoType: + """Original Layer Information. + + The following fileds repeat for all layers in (0, 1, ..., numLayers - 1). + The default number of layers per tile in original image out of the original processor. + + :ivar layer: Layer Index Number indicates the number of layers being described. Layers are numbered from 0 to + (numLayers - 1). + :ivar num_layers: + """ + + layer: List[LayerType] = field( + default_factory=list, + metadata={ + "name": "Layer", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + num_layers: Optional[int] = field( + default=None, + metadata={ + "name": "numLayers", + "type": "Attribute", + "required": True, + }, + ) + + +@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_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:3.0.0", + "required": True, + }, + ) + remap_parameter: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "RemapParameter", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class Orientation: + """ + Parameters describing the default orientation of the product. + + :ivar shadow_direction: Descirbes the shadow direciton relative to the pixels in the file. + """ + + shadow_direction: Optional[ShadowDirectionType] = field( + default=None, + metadata={ + "name": "ShadowDirection", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class PolygonType: + """Indicates the full image includes both valid data and some zero filled + pixels. + + Simple convex polygon enclosed the valid data (may include some zero filled pixels for simplification). + Vertices in clockwise order. + + :ivar vertex: Vertices indexed n = 1, 2, ..., NumVertices. NumVertices >= 3. Vertex 1 is determined by (1) + minimum row index, (2) minimum column index if 2 vertices with minimum row index, 1st and last vertices + are connected to form the polygon. + :ivar size: + """ + + vertex: List[LatLonVertexType] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 3, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class PositionalAccuracyType: + """ + Describes the horizontal and vertical point and regional information for the + DED. + + :ivar num_regions: Number of positional accuracy regions. + :ivar absolute_accuracy: + :ivar point_to_point_accuracy: + """ + + num_regions: Optional[int] = field( + default=None, + metadata={ + "name": "NumRegions", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + absolute_accuracy: Optional[AccuracyType] = field( + default=None, + metadata={ + "name": "AbsoluteAccuracy", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + point_to_point_accuracy: Optional[AccuracyType] = field( + default=None, + metadata={ + "name": "PointToPointAccuracy", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class PredefinedFilterType: + database_name: Optional[FilterDatabaseNameType] = field( + default=None, + metadata={ + "name": "DatabaseName", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + filter_family: Optional[int] = field( + default=None, + metadata={ + "name": "FilterFamily", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + filter_member: Optional[int] = field( + default=None, + metadata={ + "name": "FilterMember", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class ProcTxRcvPolarizationType: + """ + :ivar tx_polarization_proc: Polarization transmit type + :ivar rcv_polarization_proc: Receive polarization type + """ + + tx_polarization_proc: Optional[Union[str, Polarization1Typevalue]] = field( + default=None, + metadata={ + "name": "TxPolarizationProc", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + "pattern": r"OTHER.*", + }, + ) + rcv_polarization_proc: Optional[Union[str, Polarization1Typevalue]] = field( + default=None, + metadata={ + "name": "RcvPolarizationProc", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + "pattern": r"OTHER.*", + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + applied_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "AppliedDateTime", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + interpolation_method: Optional[str] = field( + default=None, + metadata={ + "name": "InterpolationMethod", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + descriptor: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Descriptor", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + module_parameter: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "ModuleParameter", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + processing_module: List["ProcessingModuleType"] = field( + default_factory=list, + metadata={ + "name": "ProcessingModule", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@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: + :ivar ismcatcesversion: + :ivar resource_element: + :ivar complies_with: + :ivar create_date: + :ivar exempt_from: + :ivar classification: + :ivar owner_producer: + :ivar joint: + :ivar scicontrols: + :ivar saridentifier: + :ivar atomic_energy_markings: + :ivar dissemination_controls: + :ivar display_only_to: + :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 notice_type: + :ivar notice_reason: + :ivar notice_date: + :ivar unregistered_notice_type: + :ivar external_notice: + """ + + security_extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "SecurityExtension", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + desversion: Optional[str] = field( + default=None, + metadata={ + "name": "DESVersion", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + "max_length": 256, + }, + ) + ismcatcesversion: Optional[str] = field( + default=None, + metadata={ + "name": "ISMCATCESVersion", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + "max_length": 256, + }, + ) + resource_element: Optional[bool] = field( + default=None, + metadata={ + "name": "resourceElement", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + }, + ) + complies_with: List[CVEnumISMCompliesWithValues] = field( + default_factory=list, + metadata={ + "name": "compliesWith", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + "tokens": True, + }, + ) + create_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "createDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + }, + ) + exempt_from: List[CVEnumISMExemptFromValues] = field( + default_factory=list, + metadata={ + "name": "exemptFrom", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + classification: Optional[CVEnumISMClassificationAll] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + }, + ) + owner_producer: List[Union[str, CVEnumISMCATOwnerProducerValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "ownerProducer", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "required": True, + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + joint: Optional[bool] = field( + default=None, + metadata={ + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + scicontrols: List[Union[str, CVEnumISMSCIControlsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "SCIcontrols", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"KDK-BLFH-[A-Z0-9]{1,6}|KDK-IDIT-[A-Z0-9]{1,6}|KDK-KAND-[A-Z0-9]{1,6}|RSV-[A-Z0-9]{3}|SI-G-[A-Z]{4}|SI-[A-Z]{3}|SI-[A-Z]{3}-[A-Z]{4}", + "tokens": True, + }, + ) + saridentifier: List[str] = field( + default_factory=list, + metadata={ + "name": "SARIdentifier", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"[A-Z_0-9\-]{1,100}|[A-Z]{2,}|[A-Z]{2,}-[A-Z][A-Z0-9]+|[A-Z]{2,}-[A-Z][A-Z0-9]+-[A-Z0-9]{2,}", + "tokens": True, + }, + ) + atomic_energy_markings: List[Union[str, CVEnumISMatomicEnergyMarkingsValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "atomicEnergyMarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"RD-SG-((14)|(15)|(18)|(20))|FRD-SG-((14)|(15)|(18)|(20))", + "tokens": True, + }, + ) + dissemination_controls: List[CVEnumISMDissemValues] = field( + default_factory=list, + metadata={ + "name": "disseminationControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + display_only_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "displayOnlyTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_open: List[Union[str, CVEnumISMCATFGIOpenValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceOpen", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + fgisource_protected: List[Union[str, CVEnumISMCATFGIProtectedValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "FGIsourceProtected", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + releasable_to: List[Union[str, CVEnumISMCATRelToValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "releasableTo", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"NATO/[a-zA-Z\-_]", + "tokens": True, + }, + ) + non_icmarkings: List[Union[str, CVEnumISMNonICValuesvalue]] = field( + default_factory=list, + metadata={ + "name": "nonICmarkings", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "pattern": r"ACCM-[A-Z0-9\-_]{1,61}|NNPI", + "tokens": True, + }, + ) + classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "classifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + compilation_reason: Optional[str] = field( + default=None, + metadata={ + "name": "compilationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + derivatively_classified_by: Optional[str] = field( + default=None, + metadata={ + "name": "derivativelyClassifiedBy", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + classification_reason: Optional[str] = field( + default=None, + metadata={ + "name": "classificationReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 4096, + }, + ) + non_uscontrols: List[CVEnumISMNonUSControlsValues] = field( + default_factory=list, + metadata={ + "name": "nonUSControls", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + derived_from: Optional[str] = field( + default=None, + metadata={ + "name": "derivedFrom", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "declassDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + declass_event: Optional[str] = field( + default=None, + metadata={ + "name": "declassEvent", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 1024, + }, + ) + declass_exception: Optional[CVEnumISM25X] = field( + default=None, + metadata={ + "name": "declassException", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + notice_type: List[CVEnumISMNoticeValues] = field( + default_factory=list, + metadata={ + "name": "noticeType", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "tokens": True, + }, + ) + notice_reason: Optional[str] = field( + default=None, + metadata={ + "name": "noticeReason", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 2048, + }, + ) + notice_date: Optional[XmlDate] = field( + default=None, + metadata={ + "name": "noticeDate", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + unregistered_notice_type: Optional[str] = field( + default=None, + metadata={ + "name": "unregisteredNoticeType", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + "max_length": 2048, + }, + ) + external_notice: Optional[bool] = field( + default=None, + metadata={ + "name": "externalNotice", + "type": "Attribute", + "namespace": "urn:us:gov:ic:ism:13", + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + col_unit_vector: Optional[XYZType] = field( + default=None, + metadata={ + "name": "ColUnitVector", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@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. + """ + + tx_polarization: Optional[Union[str, Polarization1Typevalue]] = field( + default=None, + metadata={ + "name": "TxPolarization", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + "pattern": r"OTHER.*", + }, + ) + rcv_polarization: Optional[Union[str, Polarization1Typevalue]] = field( + default=None, + metadata={ + "name": "RcvPolarization", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + "pattern": r"OTHER.*", + }, + ) + rcv_polarization_offset: Optional[float] = field( + default=None, + metadata={ + "name": "RcvPolarizationOffset", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_inclusive": -180.0, + "max_inclusive": 180.0, + }, + ) + + +@dataclass +class ValidDataType: + """Indicates the full image includes both valid data and some zero filled + pixels. + + Simple convex polygon enclosed the valid data (may include some zero filled pixels for simplification). + Vertices in clockwise order. + + :ivar vertex: Vertices indexed n = 1, 2, ..., NumVertices. NumVertices >= 3. Vertex 1 is determined by (1) + minimum row index, (2) minimum column index if 2 vertices with minimum row index, 1st and last vertices + are connected to form the polygon. + :ivar size: + """ + + vertex: List[RowColVertexType] = field( + default_factory=list, + metadata={ + "name": "Vertex", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 3, + }, + ) + size: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + spatial_reference_system: Optional[ReferenceSystemType] = field( + default=None, + metadata={ + "name": "SpatialReferenceSystem", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + object_value: List[AnnotationObjectType] = field( + default_factory=list, + metadata={ + "name": "Object", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + + +@dataclass +class ColorSpaceTransformType: + """ + :ivar color_management_module: Parameters describing the Color Management Module (CMM). + """ + + color_management_module: Optional[ColorManagementModuleType] = field( + default=None, + metadata={ + "name": "ColorManagementModule", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class CustomLookupType: + lutinfo: Optional[LUTInfoType] = field( + default=None, + metadata={ + "name": "LUTInfo", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class DigitalElevationDataType: + """ + This block describes the Digital ElevatioNData when it is included with the + SIDD product. + + :ivar geographic_coordinates: Describes the Local Geographic Coordinate system linking row/column to the + absolute geographic coordinate (lat/lon) + :ivar geopositioning: Describes the absolute coordinate system to which the data is referenced. + :ivar positional_accuracy: Describes the horizontal and vertical point and regional information for the DED. + :ivar null_value: + """ + + geographic_coordinates: Optional[GeographicCoordinatesType] = field( + default=None, + metadata={ + "name": "GeographicCoordinates", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + geopositioning: Optional[GeopositioningType] = field( + default=None, + metadata={ + "name": "Geopositioning", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + positional_accuracy: Optional[PositionalAccuracyType] = field( + default=None, + metadata={ + "name": "PositionalAccuracy", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + null_value: Optional[int] = field( + default=None, + metadata={ + "name": "NullValue", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@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:3.0.0", + }, + ) + processing_event: List[ProcessingEventType] = field( + default_factory=list, + metadata={ + "name": "ProcessingEvent", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class ExploitationFeaturesCollectionInformationType: + """ + General collection information. + + :ivar sensor_name: The name of the sensor. + :ivar radar_mode: Radar collection mode. The ModeType refers to the collection type [SPOTLIGHT, STRIPMAP, + DYNAMIC STRIPMAP]. The optional ModeID is used to represent system-specific mode identifiers. + :ivar collection_date_time: Collection date and time defined in Coordinated Universal Time (UTC). The seconds + should be followed by a Z to indicate UTC. + :ivar local_date_time: Date and time defined in local time. + :ivar collection_duration: The duration of the collection (units = seconds). + :ivar resolution: Uniformly-weighted resolution (range and azimuth) processed in the slant plane. + :ivar input_roi: ROI representing portion of input data used to make this product. + :ivar polarization: Transmit and receive polarization. + """ + + sensor_name: Optional[str] = field( + default=None, + metadata={ + "name": "SensorName", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + radar_mode: Optional[RadarModeType] = field( + default=None, + metadata={ + "name": "RadarMode", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + collection_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "CollectionDateTime", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + local_date_time: Optional[XmlDateTime] = field( + default=None, + metadata={ + "name": "LocalDateTime", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + collection_duration: Optional[float] = field( + default=None, + metadata={ + "name": "CollectionDuration", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + resolution: Optional[RangeAzimuthType] = field( + default=None, + metadata={ + "name": "Resolution", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + input_roi: Optional[InputROIType] = field( + default=None, + metadata={ + "name": "InputROI", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + polarization: List[TxRcvPolarizationType] = field( + default_factory=list, + metadata={ + "name": "Polarization", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class ExploitationFeaturesProductType: + """ + Metadata regarding the product. + + :ivar resolution: Uniformly-weighted resolution projected into the Earth Tangent Plane (ETP). + :ivar ellipticity: Ellipticity of the 2D-IPR at the ORP, measured in the Earth Geodetic Tangent Plane (EGTP). + Ellipticity is the ratio of the IPR ellipse's major axis to minor axis. + :ivar polarization: Describes the processed transmit and receive polarizations for the product. + :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:3.0.0", + "required": True, + }, + ) + ellipticity: Optional[float] = field( + default=None, + metadata={ + "name": "Ellipticity", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + polarization: List[ProcTxRcvPolarizationType] = field( + default_factory=list, + metadata={ + "name": "Polarization", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + north: Optional[float] = field( + default=None, + metadata={ + "name": "North", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_inclusive": 0.0, + "max_exclusive": 360.0, + }, + ) + extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "Extension", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class FilterBankType: + predefined: Optional[PredefinedFilterType] = field( + default=None, + metadata={ + "name": "Predefined", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + custom: Optional[BankCustomType] = field( + default=None, + metadata={ + "name": "Custom", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class FilterKernelType: + predefined: Optional[PredefinedFilterType] = field( + default=None, + metadata={ + "name": "Predefined", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + custom: Optional[KernelCustomType] = field( + default=None, + metadata={ + "name": "Custom", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class GeoDataType: + earth_model: Optional[EarthModelType] = field( + default=None, + metadata={ + "name": "EarthModel", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + image_corners: Optional[ImageCornersType] = field( + default=None, + metadata={ + "name": "ImageCorners", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + valid_data: Optional[PolygonType] = field( + default=None, + metadata={ + "name": "ValidData", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + geo_info: List[GeoInfo] = field( + default_factory=list, + metadata={ + "name": "GeoInfo", + "type": "Element", + "namespace": "urn:SICommon:1.0", + }, + ) + + +@dataclass +class J2KSubtype: + """ + :ivar num_wavelet_levels: The default number of wavelet decompositionlevels performed per tile in the + original image out of the processors. + :ivar num_bands: The number of spectral bands in the original image out of the processors. + :ivar layer_info: Original Layer Information. The following fileds repeat for all layers in (0, 1, ..., + numLayers - 1). The default number of layers per tile in original image out of the original processor. + """ + + num_wavelet_levels: Optional[int] = field( + default=None, + metadata={ + "name": "NumWaveletLevels", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + num_bands: Optional[int] = field( + default=None, + metadata={ + "name": "NumBands", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + layer_info: Optional[LayerInfoType] = field( + default=None, + metadata={ + "name": "LayerInfo", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + time_coapoly: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "TimeCOAPoly", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + row_col_to_lon: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "RowColToLon", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + row_col_to_alt: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "RowColToAlt", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + lat_lon_to_row: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "LatLonToRow", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + lat_lon_to_col: Optional[Poly2DType] = field( + default=None, + metadata={ + "name": "LatLonToCol", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + classification: Optional[ProductClassificationType] = field( + default=None, + metadata={ + "name": "Classification", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + product_name: Optional[str] = field( + default=None, + metadata={ + "name": "ProductName", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + product_class: Optional[str] = field( + default=None, + metadata={ + "name": "ProductClass", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + product_type: Optional[str] = field( + default=None, + metadata={ + "name": "ProductType", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + product_creation_extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "ProductCreationExtension", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class ProductProcessingType: + """ + Computed metadata regarding one or more of the input collections and final + product. + + :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:3.0.0", + "min_occurs": 1, + }, + ) + + +@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:3.0.0", + }, + ) + monochrome_display_remap: Optional[MonochromeDisplayRemapType] = field( + default=None, + metadata={ + "name": "MonochromeDisplayRemap", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class AnnotationsType: + """ + :ivar annotation: Annotation Object. + """ + + annotation: List[AnnotationType] = field( + default_factory=list, + metadata={ + "name": "Annotation", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + curvature_radius: Optional[float] = field( + default=None, + metadata={ + "name": "CurvatureRadius", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + geometry: Optional[ExploitationFeaturesCollectionGeometryType] = field( + default=None, + metadata={ + "name": "Geometry", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + phenomenology: Optional[ExploitationFeaturesCollectionPhenomenologyType] = field( + default=None, + metadata={ + "name": "Phenomenology", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class FilterType: + filter_name: Optional[str] = field( + default=None, + metadata={ + "name": "FilterName", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + filter_kernel: Optional[FilterKernelType] = field( + default=None, + metadata={ + "name": "FilterKernel", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + filter_bank: Optional[FilterBankType] = field( + default=None, + metadata={ + "name": "FilterBank", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + operation: Optional[FilterOperationType] = field( + default=None, + metadata={ + "name": "Operation", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class GeographicProjectionType(MeasurableProjectionType): + """ + Geographic mapping of the pixel grid. + """ + + +@dataclass +class J2KType: + """ + :ivar original: + :ivar parsed: Conditional fields that exist only for parsed images. + """ + + original: Optional[J2KSubtype] = field( + default=None, + metadata={ + "name": "Original", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + parsed: Optional[J2KSubtype] = field( + default=None, + metadata={ + "name": "Parsed", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class NewLookupTableType: + lutname: Optional[str] = field( + default=None, + metadata={ + "name": "LUTName", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + predefined: Optional[PredefinedLookupType] = field( + default=None, + metadata={ + "name": "Predefined", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + custom: Optional[CustomLookupType] = field( + default=None, + metadata={ + "name": "Custom", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@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:3.0.0", + "required": True, + }, + ) + + +@dataclass +class BandEqualizationType: + """ + Band equalization ensures that real-world neutral colors have equal digital + count values (i.e. are represented as neutral colors) across the dynamic range + of the imaged scene. + + :ivar algorithm: Allowed values: 1DLUT + :ivar band_lut: + """ + + algorithm: Optional[EqualizationAlgorithmType] = field( + default=None, + metadata={ + "name": "Algorithm", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + band_lut: List["BandEqualizationType.BandLUT"] = field( + default_factory=list, + metadata={ + "name": "BandLUT", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + + @dataclass + class BandLUT(NewLookupTableType): + k: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class CompressionType: + """ + Contains information regarding any compression that has occured to the image + data. + + :ivar j2_k: Block describing details of JPEG 2000 compression. + """ + + j2_k: Optional[J2KType] = field( + default=None, + metadata={ + "name": "J2K", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@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:3.0.0", + "min_occurs": 1, + }, + ) + product: List[ExploitationFeaturesProductType] = field( + default_factory=list, + metadata={ + "name": "Product", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + + @dataclass + class Collection(ExploitationFeaturesCollectionType): + identifier: Optional[str] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@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 in pixels. + :ivar arpflag: Flag indicating whether ARP polynomial is based on the best available ("collect time" or + "predicted") ephemeris. + :ivar arppoly: Center of aperture polynomial (units = m) based upon time into the collect. + :ivar valid_data: Indicates the full image includes both valid data and some zero filled pixels. Simple + convex polygon enclosed the valid data (may include some zero filled pixels for simplification). Vertices + in clockwise order. + """ + + polynomial_projection: Optional[PolynomialProjectionType] = field( + default=None, + metadata={ + "name": "PolynomialProjection", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + geographic_projection: Optional[GeographicProjectionType] = field( + default=None, + metadata={ + "name": "GeographicProjection", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + plane_projection: Optional[PlaneProjectionType] = field( + default=None, + metadata={ + "name": "PlaneProjection", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + cylindrical_projection: Optional[CylindricalProjectionType] = field( + default=None, + metadata={ + "name": "CylindricalProjection", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + pixel_footprint: Optional[RowColIntType] = field( + default=None, + metadata={ + "name": "PixelFootprint", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + arpflag: Optional[MeasurementTypeARPFlag] = field( + default=None, + metadata={ + "name": "ARPFlag", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + arppoly: Optional[XYZPolyType] = field( + default=None, + metadata={ + "name": "ARPPoly", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + valid_data: Optional[ValidDataType] = field( + default=None, + metadata={ + "name": "ValidData", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class RRDSType: + """ + :ivar downsampling_method: Algorithm used to perform RRDS downsampling + :ivar anti_alias: Only included if DownSamplingMethod=DECIMET + :ivar interpolation: Only included if DownSamplingMethod=DECIMET + """ + + downsampling_method: Optional[DownsamplingMethodType] = field( + default=None, + metadata={ + "name": "DownsamplingMethod", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + anti_alias: Optional[FilterType] = field( + default=None, + metadata={ + "name": "AntiAlias", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + interpolation: Optional[FilterType] = field( + default=None, + metadata={ + "name": "Interpolation", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class ScalingType: + """ + :ivar anti_alias: Anti-Alias Filter used for scaling. Refer to program-specific documentation for population + guidance + :ivar interpolation: Interpolation Filter used for scaling. Refer to program-specific documentation for + population guidance. + """ + + anti_alias: Optional[FilterType] = field( + default=None, + metadata={ + "name": "AntiAlias", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + interpolation: Optional[FilterType] = field( + default=None, + metadata={ + "name": "Interpolation", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class SharpnessEnhancementType: + """ + :ivar modular_transfer_function_compensation: Note: If defining a custom Filter, it must be no larger than + 5x5. + :ivar modular_transfer_function_enhancement: Note: If defining a custom Filter, it must be no larger than + 5x5. + """ + + modular_transfer_function_compensation: Optional[FilterType] = field( + default=None, + metadata={ + "name": "ModularTransferFunctionCompensation", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + modular_transfer_function_enhancement: Optional[FilterType] = field( + default=None, + metadata={ + "name": "ModularTransferFunctionEnhancement", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class GeometricTransformType: + """ + :ivar scaling: + :ivar orientation: Parameters describing the default orientation of the product + """ + + scaling: Optional[ScalingType] = field( + default=None, + metadata={ + "name": "Scaling", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + orientation: Optional[Orientation] = field( + default=None, + metadata={ + "name": "Orientation", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + + +@dataclass +class ProductGenerationOptionsType: + """ + Performs several key actions on an image to prepare it for necessary additional + processing to achieve the desired output product. + + :ivar band_equalization: Band equalization ensures that real-world neutral colors have equal digital count + values (i.e. are represented as neutral colors) across the dynamic range of the imaged scene. + :ivar modular_transfer_function_restoration: Filter must be no larger than 15x15. + :ivar data_remapping: Data remapping refers to the specific need to convert the data of incoming, expanded or + uncompressed image band data to non-mapped image data. + :ivar asymmetric_pixel_correction: + """ + + band_equalization: Optional[BandEqualizationType] = field( + default=None, + metadata={ + "name": "BandEqualization", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + modular_transfer_function_restoration: Optional[FilterType] = field( + default=None, + metadata={ + "name": "ModularTransferFunctionRestoration", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + data_remapping: Optional[NewLookupTableType] = field( + default=None, + metadata={ + "name": "DataRemapping", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + asymmetric_pixel_correction: Optional[FilterType] = field( + default=None, + metadata={ + "name": "AsymmetricPixelCorrection", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@dataclass +class InteractiveProcessingType: + """ + :ivar geometric_transform: The geometric transform element is used to perform various geometric distortions + to each band of image data. These distortions include image chipping, scaling, rotation, shearing, etc. + :ivar sharpness_enhancement: + :ivar color_space_transform: + :ivar dynamic_range_adjustment: Specifies the recommended ELT DRA overrides + :ivar tonal_transfer_curve: The 1-D LUT element uses one or more 1-D LUTs to stretch or compress tome data in + valorous regions within a digital image's dynamic range. 1-D LUT can be implemented using a Tonal + Transfer Curve (TTC). There are 12 families of TTCs: Range = [0,11]. There are 64 members for each + family: Range=[0, 63]. + :ivar band: + """ + + geometric_transform: Optional[GeometricTransformType] = field( + default=None, + metadata={ + "name": "GeometricTransform", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + sharpness_enhancement: Optional[SharpnessEnhancementType] = field( + default=None, + metadata={ + "name": "SharpnessEnhancement", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + color_space_transform: Optional[ColorSpaceTransformType] = field( + default=None, + metadata={ + "name": "ColorSpaceTransform", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + dynamic_range_adjustment: Optional[DynamicRangeAdjustmentType] = field( + default=None, + metadata={ + "name": "DynamicRangeAdjustment", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + tonal_transfer_curve: Optional[NewLookupTableType] = field( + default=None, + metadata={ + "name": "TonalTransferCurve", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + band: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@dataclass +class NonInteractiveProcessingType: + """ + :ivar product_generation_options: Performs several key actions on an image to prepare it for necessary + additional processing to achieve the desired output product. + :ivar rrds: Creates a set of sub-sampled versions of an image to provide processing chains with quick access + to lower mangification values for faster computation speeds and performance. + :ivar band: + """ + + product_generation_options: Optional[ProductGenerationOptionsType] = field( + default=None, + metadata={ + "name": "ProductGenerationOptions", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + rrds: Optional[RRDSType] = field( + default=None, + metadata={ + "name": "RRDS", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + band: Optional[int] = field( + default=None, + metadata={ + "type": "Attribute", + "required": True, + }, + ) + + +@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 num_bands: Number of bands contained in the image. Populate with the number of bands present after + remapping. For example an 8-bit RGB image (RGBLU) this should be populated with 3. + :ivar default_band_display: Indicates which band to display by default. Valid range = 1 to NumBands. + :ivar non_interactive_processing: + :ivar interactive_processing: + :ivar display_extension: Optional extensible parameters used to support profile-specific needs related to + product display. Predefined filter types. + """ + + pixel_type: Optional[PixelType] = field( + default=None, + metadata={ + "name": "PixelType", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + num_bands: Optional[int] = field( + default=None, + metadata={ + "name": "NumBands", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "required": True, + }, + ) + default_band_display: Optional[int] = field( + default=None, + metadata={ + "name": "DefaultBandDisplay", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + non_interactive_processing: List[NonInteractiveProcessingType] = field( + default_factory=list, + metadata={ + "name": "NonInteractiveProcessing", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + interactive_processing: List[InteractiveProcessingType] = field( + default_factory=list, + metadata={ + "name": "InteractiveProcessing", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + "min_occurs": 1, + }, + ) + display_extension: List[ParameterType] = field( + default_factory=list, + metadata={ + "name": "DisplayExtension", + "type": "Element", + "namespace": "urn:SIDD:3.0.0", + }, + ) + + +@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 geo_data: Contains geographic data. + :ivar measurement: Contains the metadata necessary for performing measurements. + :ivar exploitation_features: Computed metadata regarding the input collections and final product. + :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 match_info: Information about other collections that are matched to the current collection. The current + collection is the collection from which this SIDD product was generated. + :ivar compression: Contains information regarding any compression that has occured to the image data. + :ivar digital_elevation_data: This block describes the Digital ElevatioNData when it is included with the + SIDD product. + :ivar product_processing: Contains metadata related to algorithms used during product generation. + :ivar annotations: List of annotations for the imagery. + """ + + class Meta: + namespace = "urn:SIDD:3.0.0" + + 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, + }, + ) + geo_data: Optional[GeoDataType] = field( + default=None, + metadata={ + "name": "GeoData", + "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, + }, + ) + 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", + }, + ) + match_info: Optional[MatchInfoType] = field( + default=None, + metadata={ + "name": "MatchInfo", + "type": "Element", + }, + ) + compression: Optional[CompressionType] = field( + default=None, + metadata={ + "name": "Compression", + "type": "Element", + }, + ) + digital_elevation_data: Optional[DigitalElevationDataType] = field( + default=None, + metadata={ + "name": "DigitalElevationData", + "type": "Element", + }, + ) + product_processing: Optional[ProductProcessingType] = field( + default=None, + metadata={ + "name": "ProductProcessing", + "type": "Element", + }, + ) + annotations: Optional[AnnotationsType] = field( + default=None, + metadata={ + "name": "Annotations", + "type": "Element", + }, + ) diff --git a/src/aws/osml/gdal/sensor_model_factory.py b/src/aws/osml/gdal/sensor_model_factory.py index 99cb28c..d92a3d5 100644 --- a/src/aws/osml/gdal/sensor_model_factory.py +++ b/src/aws/osml/gdal/sensor_model_factory.py @@ -14,6 +14,7 @@ from .rpc_sensor_model_builder import RPCSensorModelBuilder from .rsm_sensor_model_builder import RSMSensorModelBuilder from .sicd_sensor_model_builder import SICDSensorModelBuilder +from .sidd_sensor_model_builder import SIDDSensorModelBuilder from .xmltre_utils import get_tre_field_value @@ -188,8 +189,9 @@ def build(self) -> Optional[SensorModel]: xml_bytes = des_accessor.parse_field_value(xml_data_segment, "DESDATA", base64.b64decode) xml_str = xml_bytes.decode("utf-8") if "SIDD" in xml_str: - # This looks like a SIDD file. Skip for now - # SIDD images will contain SICD extensions but the SIDD should come first + # SIDD images will often contain SICD XML metadata as well but the SIDD should come first + # so we can stop processing other XML data segments + precision_sensor_model = SIDDSensorModelBuilder(sidd_xml=xml_str).build() break elif "SICD" in xml_str and SensorModelTypes.SICD in self.selected_sensor_model_types: precision_sensor_model = SICDSensorModelBuilder(sicd_xml=xml_str).build() diff --git a/src/aws/osml/gdal/sicd_sensor_model_builder.py b/src/aws/osml/gdal/sicd_sensor_model_builder.py index 37aba27..9d9ea5b 100644 --- a/src/aws/osml/gdal/sicd_sensor_model_builder.py +++ b/src/aws/osml/gdal/sicd_sensor_model_builder.py @@ -177,8 +177,12 @@ def from_dataclass(sicd: Union[sicd121.SICD, sicd130.SICD]) -> Optional[SensorMo sicd_sensor_model = SICDSensorModel( coord_converter=coord_converter, coa_projection_set=projection_set, - scp_arp=xyztype_to_ndarray(sicd.scpcoa.arppos), - scp_varp=xyztype_to_ndarray(sicd.scpcoa.arpvel), + u_spn=SICDSensorModel.compute_u_spn( + scp_ecf=scp_ecf, + scp_arp=xyztype_to_ndarray(sicd.scpcoa.arppos), + scp_varp=xyztype_to_ndarray(sicd.scpcoa.arpvel), + side_of_track=str(sicd.scpcoa.side_of_track.value), + ), side_of_track=str(sicd.scpcoa.side_of_track.value), u_gpn=ugpn, ) diff --git a/src/aws/osml/gdal/sidd_sensor_model_builder.py b/src/aws/osml/gdal/sidd_sensor_model_builder.py new file mode 100644 index 0000000..3151099 --- /dev/null +++ b/src/aws/osml/gdal/sidd_sensor_model_builder.py @@ -0,0 +1,136 @@ +import logging +from typing import Optional, Union + +from xsdata.formats.dataclass.parsers import XmlParser + +import aws.osml.formats.sidd.models.sidd_v1_0_0 as sidd100 +import aws.osml.formats.sidd.models.sidd_v2_0_0 as sidd200 +import aws.osml.formats.sidd.models.sidd_v3_0_0 as sidd300 + +from ..photogrammetry import ( + ChippedImageSensorModel, + ImageCoordinate, + PlaneProjectionSet, + SARImageCoordConverter, + SensorModel, + SICDSensorModel, + WorldCoordinate, +) +from .sensor_model_builder import SensorModelBuilder +from .sicd_sensor_model_builder import poly2d_to_native, xyzpoly_to_native, xyztype_to_ndarray + +logger = logging.getLogger(__name__) + + +class SIDDSensorModelBuilder(SensorModelBuilder): + """ + This builder is used to create sensor models for images that have SIDD metadata. The metadata is provided + as XML that conforms to the SIDD specifications. We intend to support multiple SIDD versions but the current + software was implemented using the v2.0.0 and v3.0.0 specifications. + + Note that the SIDD sensor models rely heavily on the SICD projections so the class of the returned model + will be a SICDSensorModel. Future versions may rename this to SISensorModel or SARSensorModel. + """ + + def __init__(self, sidd_xml: str): + """ + Construct the builder given the SIDD XML. + + :param sidd_xml: the XML string + """ + super().__init__() + self.sidd_xml = sidd_xml + + def build(self) -> Optional[SensorModel]: + """ + Attempt to build a precise SAR sensor model. This sensor model handles chipped images natively. + + :return: the sensor model; if available + """ + try: + if self.sidd_xml is None or len(self.sidd_xml) == 0: + return None + + parser = XmlParser() + sicd = parser.from_string(self.sidd_xml) + return SIDDSensorModelBuilder.from_dataclass(sicd) + except Exception as e: + logging.error("Exception caught attempting to build SIDD sensor model.", e) + return None + + @staticmethod + def from_dataclass(sidd: Union[sidd100.SIDD, sidd200.SIDD, sidd300.SIDD]) -> Optional[SensorModel]: + """ + This method constructs a SIDD sensor model from the python dataclasses generated when parsing the XML. If + the metadata shows that this is a chip then a ChippedImageSensorModel will be constructed to wrap the + SICDSensorModel used for the full image. + + :param sidd: the dataclass object constructed from the XML + :return: the sensor model; if available + """ + + plane_projection = sidd.measurement.plane_projection + scp_ecf = WorldCoordinate(xyztype_to_ndarray(plane_projection.reference_point.ecef)) + scp_pixel = ImageCoordinate([plane_projection.reference_point.point.col, plane_projection.reference_point.point.row]) + time_coa_poly = poly2d_to_native(plane_projection.time_coapoly) + arp_poly = xyzpoly_to_native(sidd.measurement.arppoly) + + u_row = xyztype_to_ndarray(plane_projection.product_plane.row_unit_vector) + u_col = xyztype_to_ndarray(plane_projection.product_plane.col_unit_vector) + coord_converter = SARImageCoordConverter( + scp_pixel=scp_pixel, + scp_ecf=scp_ecf, + u_row=u_row, + u_col=u_col, + row_ss=plane_projection.sample_spacing.row, + col_ss=plane_projection.sample_spacing.col, + first_pixel=ImageCoordinate([0, 0]), + ) + + projection_set = PlaneProjectionSet( + scp_ecf=scp_ecf, + image_plane_urow=u_row, + image_plane_ucol=u_col, + coa_time_poly=time_coa_poly, + arp_poly=arp_poly, + ) + + u_gpn = SICDSensorModel.compute_u_gpn(scp_ecf=scp_ecf, u_row=u_row, u_col=u_col) + + sidd_sensor_model = SICDSensorModel( + coord_converter=coord_converter, + coa_projection_set=projection_set, + u_spn=u_gpn, + u_gpn=u_gpn, + ) + + if sidd.downstream_reprocessing is None or sidd.downstream_reprocessing.geometric_chip is None: + return sidd_sensor_model + else: + # Since this SIDD image is a chip of a full image wrap the regular sensor model in a sensor model that + # will handle the conversions between the chipped image coordinates and the full image coordinates. + # This 4 corner transformation handles images that are cropped, rotated, and scaled, from the full + # SIDD image grid. + geo_chip = sidd.downstream_reprocessing.geometric_chip + chip_num_rows = geo_chip.chip_size.row + chip_num_cols = geo_chip.chip_size.col + + chipped_image_coords = [ + ImageCoordinate(coord) + for coord in [[0, 0], [chip_num_cols, 0], [chip_num_cols, chip_num_rows], [0, chip_num_rows]] + ] + full_image_coords = [ + ImageCoordinate([x.col, x.row]) + for x in [ + geo_chip.original_upper_left_coordinate, + geo_chip.original_upper_right_coordinate, + geo_chip.original_lower_right_coordinate, + geo_chip.original_lower_left_coordinate, + ] + ] + + return ChippedImageSensorModel( + full_image_coords, + chipped_image_coords, + sidd_sensor_model, + ) diff --git a/src/aws/osml/photogrammetry/sicd_sensor_model.py b/src/aws/osml/photogrammetry/sicd_sensor_model.py index 12decb7..7d2695c 100644 --- a/src/aws/osml/photogrammetry/sicd_sensor_model.py +++ b/src/aws/osml/photogrammetry/sicd_sensor_model.py @@ -975,9 +975,8 @@ def __init__( self, coord_converter: SARImageCoordConverter, coa_projection_set: COAProjectionSet, - scp_arp: np.ndarray, - scp_varp: np.ndarray, - side_of_track: str, + u_spn: np.ndarray, + side_of_track: str = "L", u_gpn: Optional[np.ndarray] = None, ): """ @@ -985,26 +984,44 @@ def __init__( :param coord_converter: converts coordinates between image grid and image plane :param coa_projection_set: projects image locations to the r/rdot contour - :param scp_arp: aperture reference point position - :param scp_varp: aperture reference point velocity - :param side_of_track: side of track imaged + :param u_spn: slant plane normal + :param side_of_track: side of track imaged, "L" or "R", default "L" :param u_gpn: optional unit normal for ground plane """ super().__init__() self.coa_projection_set = coa_projection_set self.coord_converter = coord_converter self.uvect_gpn = u_gpn - self.scp_arp = scp_arp - self.scp_varp = scp_varp + self.uvect_spn = u_spn self.side_of_track = side_of_track - self.uvect_spn = np.cross(scp_varp, coord_converter.scp_ecf.coordinate - scp_arp) - if side_of_track == "R": - self.uvect_spn *= -1.0 - self.uvect_spn /= np.linalg.norm(self.uvect_spn) - self.default_surface_projection = GroundPlaneRRDotSurfaceProjection(self.coord_converter.scp_ecf, self.uvect_gpn) + @staticmethod + def compute_u_spn(scp_ecf: WorldCoordinate, scp_arp: np.ndarray, scp_varp: np.ndarray, side_of_track: str) -> np.ndarray: + """ + This helper function computes the slant plane normal. + + :param scp_ecf: Scene Center Point position in ECF coordinates + :param scp_arp: aperture reference point position + :param scp_varp: aperture reference point velocity + :param side_of_track: side of track imaged + :return: unit vector for the slant plane normal + """ + u_spn = np.cross(scp_varp, scp_ecf.coordinate - scp_arp) + if side_of_track == "R": + u_spn *= -1.0 + u_spn /= np.linalg.norm(u_spn) + return u_spn + + @staticmethod + def compute_u_gpn(scp_ecf: WorldCoordinate, u_row: np.ndarray, u_col: np.ndarray) -> np.ndarray: + u_gpn = np.cross(u_row, u_col) + u_gpn /= np.linalg.norm(u_gpn) + if np.dot(u_gpn, scp_ecf.coordinate) < 0: + u_gpn *= -1 + return u_gpn + def image_to_world( self, image_coordinate: ImageCoordinate, diff --git a/test/aws/osml/formats/test_sidd_schemas.py b/test/aws/osml/formats/test_sidd_schemas.py new file mode 100644 index 0000000..5717613 --- /dev/null +++ b/test/aws/osml/formats/test_sidd_schemas.py @@ -0,0 +1,13 @@ +import unittest +from pathlib import Path + +from xsdata.formats.dataclass.parsers import XmlParser + +import aws.osml.formats.sidd.models.sidd_v2_0_0 as sidd2 + + +class TestSIDDFormats(unittest.TestCase): + def test_sidd_20(self): + sidd = XmlParser().from_path(Path("./test/data/sidd/example.sidd.xml")) + + assert isinstance(sidd, sidd2.SIDD) diff --git a/test/aws/osml/photogrammetry/test_sicd_sensor_model.py b/test/aws/osml/photogrammetry/test_sicd_sensor_model.py index ad7fe65..b16ecd7 100644 --- a/test/aws/osml/photogrammetry/test_sicd_sensor_model.py +++ b/test/aws/osml/photogrammetry/test_sicd_sensor_model.py @@ -63,8 +63,12 @@ def test_xrgycr(self): sicd_sensor_model = SICDSensorModel( coord_converter=coord_converter, coa_projection_set=projection_set, - scp_arp=xyztype_to_ndarray(sicd.scpcoa.arppos), - scp_varp=xyztype_to_ndarray(sicd.scpcoa.arpvel), + u_spn=SICDSensorModel.compute_u_spn( + scp_ecf=scp_ecf, + scp_arp=xyztype_to_ndarray(sicd.scpcoa.arppos), + scp_varp=xyztype_to_ndarray(sicd.scpcoa.arpvel), + side_of_track=str(sicd.scpcoa.side_of_track.value), + ), side_of_track=str(sicd.scpcoa.side_of_track.value), ) @@ -137,8 +141,12 @@ def test_rgzero_inca(self): sicd_sensor_model = SICDSensorModel( coord_converter=image_plane, coa_projection_set=projection_set, - scp_arp=xyztype_to_ndarray(sicd.scpcoa.arppos), - scp_varp=xyztype_to_ndarray(sicd.scpcoa.arpvel), + u_spn=SICDSensorModel.compute_u_spn( + scp_ecf=scp_ecf, + scp_arp=xyztype_to_ndarray(sicd.scpcoa.arppos), + scp_varp=xyztype_to_ndarray(sicd.scpcoa.arpvel), + side_of_track=str(sicd.scpcoa.side_of_track.value), + ), side_of_track=str(sicd.scpcoa.side_of_track.value), ) @@ -224,8 +232,12 @@ def test_rgazim_pfa(self): sicd_sensor_model = SICDSensorModel( coord_converter=image_plane, coa_projection_set=projection_set, - scp_arp=xyztype_to_ndarray(sicd.scpcoa.arppos), - scp_varp=xyztype_to_ndarray(sicd.scpcoa.arpvel), + u_spn=SICDSensorModel.compute_u_spn( + scp_ecf=scp_ecf, + scp_arp=xyztype_to_ndarray(sicd.scpcoa.arppos), + scp_varp=xyztype_to_ndarray(sicd.scpcoa.arpvel), + side_of_track=str(sicd.scpcoa.side_of_track.value), + ), side_of_track=str(sicd.scpcoa.side_of_track.value), u_gpn=ugpn, ) diff --git a/test/aws/osml/photogrammetry/test_sidd_sensor_model.py b/test/aws/osml/photogrammetry/test_sidd_sensor_model.py new file mode 100644 index 0000000..302bdf4 --- /dev/null +++ b/test/aws/osml/photogrammetry/test_sidd_sensor_model.py @@ -0,0 +1,70 @@ +import unittest +from math import radians +from pathlib import Path + +import numpy as np +from xsdata.formats.dataclass.parsers import XmlParser + +import aws.osml.formats.sidd.models.sidd_v2_0_0 as sidd200 +from aws.osml.gdal.sidd_sensor_model_builder import SIDDSensorModelBuilder +from aws.osml.photogrammetry import ( + ChippedImageSensorModel, + GeodeticWorldCoordinate, + ImageCoordinate, + SICDSensorModel, + geocentric_to_geodetic, +) + + +class TestSIDDSensorModel(unittest.TestCase): + def test_planar_projection(self): + sidd: sidd200.SIDD = XmlParser().from_path(Path("./test/data/sidd/example.sidd.xml")) + + sm = SIDDSensorModelBuilder.from_dataclass(sidd) + + assert sm is not None + assert isinstance(sm, SICDSensorModel) + + scp_image_coord = ImageCoordinate( + [ + sm.coord_converter.scp_pixel.x - sm.coord_converter.first_pixel.x, + sm.coord_converter.scp_pixel.y - sm.coord_converter.first_pixel.y, + ] + ) + scp_world_coord = geocentric_to_geodetic(sm.coord_converter.scp_ecf) + + assert np.allclose(scp_image_coord.coordinate, sm.world_to_image(scp_world_coord).coordinate, atol=1.0) + assert np.allclose(scp_world_coord.coordinate, sm.image_to_world(scp_image_coord).coordinate) + + num_cols = sidd.measurement.pixel_footprint.col + num_rows = sidd.measurement.pixel_footprint.row + for icp in sidd.geo_data.image_corners.icp: + world_location = GeodeticWorldCoordinate([radians(icp.lon), radians(icp.lat), scp_world_coord.elevation]) + if icp.index.value == "1:FRFC": + image_location = ImageCoordinate([0, 0]) + elif icp.index.value == "2:FRLC": + image_location = ImageCoordinate([num_cols, 0]) + elif icp.index.value == "3:LRLC": + image_location = ImageCoordinate([num_cols, num_rows]) + elif icp.index.value == "4:LRFC": + image_location = ImageCoordinate([0, num_rows]) + else: + raise ValueError(f"Unexpected ICP in test data {icp.index.value}") + + computed_world_location = sm.image_to_world(image_location) + computed_image_location = sm.world_to_image(world_location) + + assert np.allclose(computed_world_location.coordinate[0:2], world_location.coordinate[0:2], atol=0.000001) + assert np.allclose(computed_image_location.coordinate, image_location.coordinate, atol=0.5) + + def test_chipped_sidd(self): + sidd: sidd200.SIDD = XmlParser().from_path(Path("./test/data/sidd/example.sidd-chip.xml")) + + sm = SIDDSensorModelBuilder.from_dataclass(sidd) + assert sm is not None + assert isinstance(sm, ChippedImageSensorModel) + + coord_calculated_from_chip = sm.image_to_world(ImageCoordinate([0, 0])) + coord_calculated_from_full = sm.full_image_sensor_model.image_to_world(ImageCoordinate([512, 512])) + + assert np.allclose(coord_calculated_from_chip.coordinate, coord_calculated_from_full.coordinate) diff --git a/test/data/sidd/example.sidd-chip.xml b/test/data/sidd/example.sidd-chip.xml new file mode 100644 index 0000000..9dc79d1 --- /dev/null +++ b/test/data/sidd/example.sidd-chip.xml @@ -0,0 +1,544 @@ + +