# Copyright 2023-2024 Amazon.com, Inc. or its affiliates.
"""This file was generated by xsdata, v23.8, on 2023-10-05 09:59:45
Generator: DataclassGenerator
See: https://xsdata.readthedocs.io/
"""
from dataclasses import dataclass, field
from typing import List, Optional
__NAMESPACE__ = "urn:SFA:1.2.0"
[docs]
@dataclass
class GeometryType:
pass
[docs]
@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,
},
)
[docs]
@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,
},
)
[docs]
@dataclass
class ProjectionType:
projection_name: Optional[str] = field(
default=None,
metadata={
"name": "ProjectionName",
"type": "Element",
"namespace": "urn:SFA:1.2.0",
"required": True,
},
)
[docs]
@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,
},
)
[docs]
@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,
},
)
[docs]
@dataclass
class CurveType(GeometryType):
pass
[docs]
@dataclass
class DatumType:
spheroid: Optional[SpheriodType] = field(
default=None,
metadata={
"name": "Spheroid",
"type": "Element",
"namespace": "urn:SFA:1.2.0",
"required": True,
},
)
[docs]
@dataclass
class GeometryCollectionType(GeometryType):
pass
[docs]
@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",
},
)
[docs]
@dataclass
class SurfaceType(GeometryType):
pass
[docs]
@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,
},
)
[docs]
@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",
},
)
[docs]
@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,
},
)
[docs]
@dataclass
class MultiCurveType(GeometryCollectionType):
pass
[docs]
@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,
},
)
[docs]
@dataclass
class MultiSurfaceType(GeometryCollectionType):
pass
[docs]
@dataclass
class LineType(LineStringType):
pass
[docs]
@dataclass
class LinearRingType(LineStringType):
pass
[docs]
@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,
},
)
[docs]
@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",
},
)
[docs]
@dataclass
class MultiLineStringType(MultiCurveType):
element: List[LineType] = field(
default_factory=list,
metadata={
"name": "Element",
"type": "Element",
"namespace": "urn:SFA:1.2.0",
},
)
[docs]
@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,
},
)
[docs]
@dataclass
class MultiPolygonType(MultiSurfaceType):
element: List[PolygonType] = field(
default_factory=list,
metadata={
"name": "Element",
"type": "Element",
"namespace": "urn:SFA:1.2.0",
},
)
[docs]
@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,
},
)
[docs]
@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,
},
)
[docs]
@dataclass
class TriangleType(PolygonType):
pass
[docs]
@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,
},
)