Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add support for sidd imagery #22

Merged
merged 1 commit into from
Oct 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would we like to standardize on 160 in other packages as the max line length?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only reason I did this is that there are some long regular expression strings in the XML parsing code. They look really ugly if they get broken up.

The black formatter still sets things to 125 which seems like a generally good practice. The only reason I set this here is because flake8 seems to be ignoring that excludes option so it was still complaining about the XML format files.

types: [file, python]

- repo: https://github.com/pre-commit/mirrors-autopep8
Expand Down
56 changes: 56 additions & 0 deletions schemas/sidd.xsdata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<Config xmlns="http://pypi.org/project/xsdata" version="23.5">
<Output maxLineLength="120" subscriptableTypes="false" unionType="false">
<Package>sidd.models</Package>
<Format repr="true" eq="true" order="false" unsafeHash="false" frozen="false" slots="false" kwOnly="false">dataclasses</Format>
<Structure>filenames</Structure>
<DocstringStyle>reStructuredText</DocstringStyle>
<FilterStrategy>allGlobals</FilterStrategy>
<RelativeImports>true</RelativeImports>
<CompoundFields defaultName="choice" forceDefaultName="false">false</CompoundFields>
<PostponedAnnotations>false</PostponedAnnotations>
<UnnestClasses>false</UnnestClasses>
<IgnorePatterns>false</IgnorePatterns>
<IncludeHeader>true</IncludeHeader>
</Output>
<Conventions>
<ClassName case="mixedPascalCase" safePrefix="type"/>
<FieldName case="snakeCase" safePrefix="value"/>
<ConstantName case="screamingSnakeCase" safePrefix="value"/>
<ModuleName case="snakeCase" safePrefix="mod"/>
<PackageName case="snakeCase" safePrefix="pkg"/>
</Conventions>
<Substitutions>
<Substitution type="module" search="schema_v1_0_0_2011_08_31" replace="v1_0_0"/>
<Substitution type="module" search="schema_v2_0_0_2019_05_31" replace="v2_0_0"/>
<Substitution type="module" search="schema_v3_0_0" replace="v3_0_0"/>
<!--
<Substitution type="module" search="schema_v1_0" replace="v1_0"/>
<Substitution type="class" search="CollectionInfoTypeCollectType" replace="CollectType"/>
<Substitution type="class" search="GeoDataTypeEarthModel" replace="EarthModel" />
<Substitution type="class" search="GridTypeImagePlane" replace="ImagePlane" />
<Substitution type="class" search="GridTypeType" replace="ImageGridType" />
<Substitution type="class" search="ImageDataTypePixelType" replace="ImagePixelType"/>
<Substitution type="class" search="ImageFormationTypeAzAutofocus" replace="AzAutofocus"/>
<Substitution type="class" search="ImageFormationTypeImageBeamComp" replace="ImageBeamComp"/>
<Substitution type="class" search="ImageFormationTypeImageFormAlgo" replace="ImageFormAlgo"/>
<Substitution type="class" search="ImageFormationTypeRgAutofocus" replace="RgAutofocus"/>
<Substitution type="class" search="ImageFormationTypeSTBeamComp" replace="STBeamComp"/>
<Substitution type="class" search="NoiseLevelNoiseLevelType" replace="NoiseLevelType"/>
<Substitution type="class" search="RadarModeModeType" replace="RadarModeType"/>
<Substitution type="class" search="RMATypeImageType" replace="RMAImageType" />
<Substitution type="class" search="RMATypeRMAlgoType" replace="RMAlgorithm" />
<Substitution type="class" search="SCPCOATypeSideOfTrack" replace="SideOfTrack" />
<Substitution type="field" search="VALUE_1$" replace="PLUS_ONE" />
<Substitution type="field" search="VALUE_1_1$" replace="MINUS_ONE" />
<Substitution type="field" search="RE32_F_IM32_F" replace="RE32F_IM32F" />
<Substitution type="field" search="RE16_I_IM16_I" replace="RE16I_IM16I" />
<Substitution type="field" search="AMP8_I_PHS8_I" replace="AMP8I_PHS8I" />
<Substitution type="field" search="VALUE_1_FRFC" replace="FRFC_1" />
<Substitution type="field" search="VALUE_2_FRLC" replace="FRLC_2" />
<Substitution type="field" search="VALUE_3_LRLC" replace="LRLC_3" />
<Substitution type="field" search="VALUE_4_LRFC" replace="LRFC_4" />
-->
</Substitutions>
<Extensions/>
</Config>
213 changes: 213 additions & 0 deletions schemas/sidd/SFA.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:SFA:1.2.0" targetNamespace="urn:SFA:1.2.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- OpenGIS® Implementation Specification for Geographic information - Simple feature access (SFA) v1.2.0
Based upon OGC document: OGC 06-103r3

Type Level 1 types (Feature Table 7.2.5)
Available types: Geometry, Point, Curve, LineString, Surface, Polygon, GeomCollection
Instantiable types: Point, LineString, Polygon, GeomCollection

Type Level 2 types (Feature Table 7.2.5)
Available types: Geometry, Point, Curve, LineString, Surface, Polygon, GeomCollection, MultiPoint, MultiCurve, MultiLineString, MultiSurface, MultiPolygon
Instantiable types: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon

Type Level 3 types (Feature Table 7.2.5)
Available types: Geometry, Point, Curve, LineString, Surface, Polygon, GeomCollection, MultiPoint , MultiCurve, MultiLineString, MultiSurface, MultiPolygon
Instantiable types: Point, LineString, Polygon, GeomCollection, MultiPoint, MultiLineString, MultiPolygon
-->
<xs:complexType name="GeometryType" abstract="true"/>
<xs:complexType name="PointType">
<xs:complexContent>
<xs:extension base="GeometryType">
<xs:sequence>
<xs:element name="X" type="xs:double"/>
<xs:element name="Y" type="xs:double"/>
<xs:element name="Z" type="xs:double" minOccurs="0"/>
<xs:element name="M" type="xs:double" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CurveType" abstract="true">
<xs:complexContent>
<xs:extension base="GeometryType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LineStringType" abstract="true">
<xs:complexContent>
<xs:extension base="CurveType">
<xs:sequence>
<xs:element name="Vertex" type="PointType" minOccurs="2" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LineType">
<xs:complexContent>
<xs:extension base="LineStringType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="LinearRingType">
<xs:complexContent>
<xs:extension base="LineStringType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SurfaceType" abstract="true">
<xs:complexContent>
<xs:extension base="GeometryType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PolygonType">
<xs:complexContent>
<xs:extension base="SurfaceType">
<xs:sequence>
<xs:element name="Ring" type="LinearRingType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TriangleType">
<xs:complexContent>
<xs:extension base="PolygonType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="PolyhedralSurfaceType">
<xs:complexContent>
<xs:extension base="SurfaceType">
<xs:sequence>
<xs:element name="Patch" type="PolygonType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TriangulatedIrregularNetworkType">
<xs:complexContent>
<xs:extension base="PolyhedralSurfaceType">
<xs:sequence>
<!-- note that the spec has this object named as "patch" but it cannot be since it inherits from PolyhedralSurface which already has patch elements"-->
<xs:element name="TriangularPatch" type="TriangleType" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="GeometryCollectionType" abstract="true">
<xs:complexContent>
<xs:extension base="GeometryType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MultiPointType">
<xs:complexContent>
<xs:extension base="GeometryCollectionType">
<xs:sequence>
<xs:element name="Vertex" type="PointType" minOccurs="2" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MultiCurveType" abstract="true">
<xs:complexContent>
<xs:extension base="GeometryCollectionType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MultiLineStringType">
<xs:complexContent>
<xs:extension base="MultiCurveType">
<xs:sequence>
<xs:element name="Element" type="LineType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MultiSurfaceType" abstract="true">
<xs:complexContent>
<xs:extension base="GeometryCollectionType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="MultiPolygonType">
<xs:complexContent>
<xs:extension base="MultiSurfaceType">
<xs:sequence>
<xs:element name="Element" type="PolygonType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- Reference System Definition -->
<xs:complexType name="UNITType">
<xs:sequence>
<xs:element name="UnitName" type="xs:string"/>
<xs:element name="ConversionFactor" type="xs:double"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PrimeMeridianType">
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Longitude" type="xs:double"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SpheriodType">
<xs:sequence>
<xs:element name="SpheriodName" type="xs:string"/>
<xs:element name="SemiMajorAxis" type="xs:double"/>
<xs:element name="InverseFlattening" type="xs:double"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ParameterType">
<xs:sequence>
<xs:element name="ParameterName" type="xs:string"/>
<xs:element name="Value" type="xs:double"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ProjectionType">
<xs:sequence>
<xs:element name="ProjectionName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DatumType">
<xs:sequence>
<xs:element name="Spheroid" type="SpheriodType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GeocentricCoordinateSystemType">
<xs:sequence>
<xs:element name="Csname" type="xs:string"/>
<xs:element name="Datum" type="DatumType"/>
<xs:element name="PrimeMeridian" type="PrimeMeridianType"/>
<xs:element name="LinearUnit" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GeographicCoordinateSystemType">
<xs:sequence>
<xs:element name="Csname" type="xs:string"/>
<xs:element name="Datum" type="DatumType"/>
<xs:element name="PrimeMeridian" type="PrimeMeridianType"/>
<xs:element name="AngularUnit" type="xs:string"/>
<xs:element name="LinearUnit" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ProjectedCoordinateSystemType">
<xs:sequence>
<xs:element name="Csname" type="xs:string"/>
<xs:element name="GeographicCoordinateSystem" type="GeographicCoordinateSystemType"/>
<xs:element name="Projection" type="ProjectionType"/>
<xs:element name="Parameter" type="ParameterType" minOccurs="0"/>
<xs:element name="LinearUnit" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AbstractReferenceSystemType" abstract="true">
<xs:choice>
<xs:element name="ProjectedCoordinateSystem" type="ProjectedCoordinateSystemType"/>
<xs:element name="GeographicCoordinateSystem" type="GeographicCoordinateSystemType"/>
<xs:element name="GeocentricCoordinateSystem" type="GeocentricCoordinateSystemType"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="ReferenceSystemType">
<xs:complexContent>
<xs:extension base="AbstractReferenceSystemType">
<xs:sequence>
<xs:element name="AxisName" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
Loading