class NativeFormatDecoder(xml.Decoder): identifier = xml.Parameter("EOID/text()") begin_time = xml.Parameter("BeginTime/text()", type=parse_iso8601) end_time = xml.Parameter("EndTime/text()", type=parse_iso8601) polygons = xml.Parameter("Footprint/Polygon", type=parse_polygon_xml, num="+")
class EOOMFormatDecoder(xml.Decoder): identifier = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:identifier/text()", type=str, num=1) begin_time = xml.Parameter("om:phenomenonTime/gml:TimePeriod/gml:beginPosition/text()", type=parse_iso8601, num=1) end_time = xml.Parameter("om:phenomenonTime/gml:TimePeriod/gml:endPosition/text()", type=parse_iso8601, num=1) polygons = xml.Parameter("om:featureOfInterest/eop:Footprint/eop:multiExtentOf/gml:MultiSurface/gml:surfaceMember/gml:Polygon", type=parse_polygon_xml, num="+") namespaces = nsmap
class InspireFormatDecoder(xml.Decoder): identifier = xml.Parameter("gmd:fileIdentifier/gco:CharacterString/text()", type=str, num=1) begin_time = xml.Parameter("gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage/gmd:source/gmd:LI_Source/gmd:sourceExtent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition/text()", type=parse_iso8601, num=1) end_time = xml.Parameter("gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage/gmd:source/gmd:LI_Source/gmd:sourceExtent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:endPosition/text()", type=parse_iso8601, num=1) footprint = xml.Parameter("gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_BoundingPolygon/gmd:polygon/gml:LineString/gml:posList/text()", type=parse_line_string, num=1) namespaces = nsmap
class WCS20DescribeEOCoverageSetXMLDecoder(xml.Decoder, SectionsMixIn): eo_ids = xml.Parameter("wcseo:eoId/text()", num="+", locator="eoid") subsets = xml.Parameter("wcs:DimensionTrim", type=parse_subset_xml, num="*") containment = xml.Parameter("wcseo:containment/text()", type=containment_enum, locator="containment") count = xml.Parameter("@count", type=pos_int, num="?", default=MAXSIZE, locator="count") sections = xml.Parameter("wcseo:sections/wcseo:section/text()", type=sections_enum, num="*", locator="sections") namespaces = nsmap
class WCS20GetCapabilitiesXMLDecoder(xml.Decoder, SectionsMixIn): sections = xml.Parameter("ows:Sections/ows:Section/text()", num="*", default=["all"]) updatesequence = xml.Parameter("@updateSequence", num="?") acceptversions = xml.Parameter("ows:AcceptVersions/ows:Version/text()", num="*") acceptformats = xml.Parameter("ows:AcceptFormats/ows:OutputFormat/text()", num="*", default=["text/xml"]) acceptlanguages = xml.Parameter("ows:AcceptLanguages/ows:Language/text()", num="*") namespaces = nsmap
class WCS20GetEOCoverageSetXMLDecoder(xml.Decoder): eo_ids = xml.Parameter("/wcseo:EOID/text()", num="+", locator="eoid") subsets = xml.Parameter("/wcs:DimensionTrim", type=parse_subset_xml, num="*") containment = xml.Parameter("/wcseo:containment/text()", type=containment_enum, locator="containment") count = xml.Parameter("/@count", type=pos_int, num="?", default=sys.maxint, locator="count") format = xml.Parameter("/wcs:format/text()", type=parse_format, num=1, locator="format") namespaces = nsmap
class OWSCommonXMLDecoder(xml.Decoder): service = xml.Parameter("@service", type=upper, num="?") version = xml.Parameter("@version", type=parse_version_string, num="?") request = xml.Parameter("local-name()", type=upper) acceptversions = xml.Parameter( "ows10:AcceptVersions/ows10:Version/text() " "| ows11:AcceptVersions/ows11:Version/text() " "| ows20:AcceptVersions/ows20:Version/text()", type=parse_version_string, num="*") namespaces = nsmap
class EOOMCollectionMetadataDecoder(EOOMNamespaceMixIn, xml.Decoder): spectral_range = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/ eop:wavelengthInformation/eop:WavelengthInformation/eop:spectralRange/text()", type=str, num="?") wavelengths = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/ eop:wavelengthInformation/eop:WavelengthInformation/eop:discreteWavelengths/text()", type=str, num="?") platform = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:platform/eop:Platform/eop:shortName/text()", type=str, num="?") platform_serial_identifier = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:platform/eop:Platform/eop:serialIdentifier/text()", type=str, num="?") instrument = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:instrument/eop:Instrument/eop:shortName/text()", type=str, num="?") sensor_type = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/eop:sensorType/text()", type=str, num="?") composite_type = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:compositeType/text()", type=str, num="?") processing_level = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:processingLevel/text()", type=str, num="?") orbit_type = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:platform/eop:Platform/eop:orbitType/text()", type=str, num="?")
class WCS10GetCapabilitiesXMLDecoder(xml.Decoder): sections = xml.Parameter("/ows:Sections/ows:Section/text()", num="*") updatesequence = xml.Parameter("/@updateSequence", num="?") acceptversions = xml.Parameter("/ows:AcceptVersions/ows:Version/text()", num="*") acceptformats = xml.Parameter("/ows:AcceptFormats/ows:OutputFormat/text()", num="*", default=["text/xml"]) acceptlanguages = xml.Parameter("/ows:AcceptLanguages/ows:Language/text()", num="*") # TODO: find suitable place in XML to pass CQL queries cql = None namespaces = nsmap
class WPS10GetCapabilitiesXMLDecoder(xml.Decoder): """ WPS 1.0 DescribeProcess HTTP/POST XML request decoder. """ #pylint: disable=too-few-public-methods #acceptversions = xml.Parameter("/ows:AcceptVersions/ows:Version/text()", num="*") language = xml.Parameter("/ows:AcceptLanguages/ows:Language/text()", num="*") namespaces = nsmap
class SiteFormatDecoder(xml.Decoder): identifier = xml.Parameter("siteName/text()", type=str, num=1) latitude = xml.Parameter("siteLatitude/text()", type=float, num=1) longitude = xml.Parameter("siteLongitude/text()", type=float, num=1) elevation = xml.Parameter("siteElevation/text()", type=float, num=1) size = xml.Parameter("count(data)", type=int, num=1) start_times = xml.Parameter("data/timeStart/text()", type=parse_iso8601, num="+") end_times = xml.Parameter("data/timeEnd/text()", type=parse_iso8601, num="+")
class WCS20GeoTIFFEncodingExtensionXMLDecoder(xml.Decoder): compression = xml.Parameter("wcs:Extension/geotiff:parameters/geotiff:compression/text()", num="?", type=compression_enum, locator="geotiff:compression") jpeg_quality = xml.Parameter("wcs:Extension/geotiff:parameters/geotiff:jpeg_quality/text()", num="?", type=int, locator="geotiff:jpeg_quality") predictor = xml.Parameter("wcs:Extension/geotiff:parameters/geotiff:predictor/text()", num="?", type=predictor_enum, locator="geotiff:predictor") interleave = xml.Parameter("wcs:Extension/geotiff:parameters/geotiff:interleave/text()", num="?", type=interleave_enum, locator="geotiff:interleave") tiling = xml.Parameter("wcs:Extension/geotiff:parameters/geotiff:tiling/text()", num="?", type=boolean, locator="geotiff:tiling") tileheight = xml.Parameter("wcs:Extension/geotiff:parameters/geotiff:tileheight/text()", num="?", type=parse_multiple_16, locator="geotiff:tileheight") tilewidth = xml.Parameter("wcs:Extension/geotiff:parameters/geotiff:tilewidth/text()", num="?", type=parse_multiple_16, locator="geotiff:tilewidth") namespaces = NameSpaceMap( ns_wcs, NameSpace("http://www.opengis.net/gmlcov/geotiff/1.0", "geotiff") )
class WPS10ExecuteXMLDecoder(xml.Decoder): """ WPS 1.0 POST/XML Execute request decoder class. """ identifier = xml.Parameter("ows:Identifier/text()") _inputs = xml.Parameter("wps:DataInputs/wps:Input", type=_parse_input, num="*", default=[]) _response_form = xml.Parameter("wps:ResponseForm", type=_parse_response_form, num="?") @property def response_form(self): """ Get the unified response form object. """ resp_form = self._response_form return resp_form if resp_form is not None else ResponseDocument() @property def inputs(self): """ Get the raw data inputs as a dictionary. """ return dict(self._inputs) namespaces = nsmap
class GSCFormatDecoder(xml.Decoder): namespaces = nsmap identifier = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:identifier/text()", type=str, num=1) begin_time = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:validTime/gml:TimePeriod/gml:beginPosition/text()", type=parse_iso8601, num=1) end_time = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:validTime/gml:TimePeriod/gml:endPosition/text()", type=parse_iso8601, num=1) polygons = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:target/eop:Footprint/gml:multiExtentOf/gml:MultiSurface/gml:surfaceMembers/gml:Polygon", type=parse_polygon_xml, num="+") @property def footprint(self): return MultiPolygon(*self.polygons)
class DimapGeneralFormat11Decoder(xml.Decoder): identifier = xml.Parameter("Dataset_Id/DATASET_NAME/text()") begin_time = xml.Parameter("Production/DATASET_PRODUCTION_DATE/text()", type=parse_date_or_datetime_11, num="?") end_time = xml.Parameter("Production/DATASET_PRODUCTION_DATE/text()", type=parse_date_or_datetime_11, num="?") footprint = xml.Parameter("Dataset_Frame", type=parse_footprint_11, num="?") size = xml.Parameter("Raster_Dimensions", type=parse_size_11, num="?") geotransform = xml.Parameter("Geoposition/Geoposition_Insert", type=parse_geotransform_11, num="?") projection = xml.Parameter("Coordinate_Reference_System/Horizontal_CS", type=parse_projection_11, num="?") # TODO
class WCS11GetCoverageXMLDecoder(xml.Decoder): coverage_id = xml.Parameter("ows:Identifier/text()", type=str, num=1) boundingbox = xml.Parameter("wcs:DomainSubset/ows:BoundingBox", type=parse_bbox_xml, num=1) format = xml.Parameter("wcs:Output/@format", num=1) gridcs = xml.Parameter("wcs:Output/wcs:GridCRS/wcs:GridCS/text()", num="?") gridbasecrs = xml.Parameter( "wcs:Output/wcs:GridCRS/wcs:GridBaseCRS/text()", num="?") gridtype = xml.Parameter("wcs:Output/wcs:GridCRS/wcs:GridType/text()", num="?") gridorigin = xml.Parameter("wcs:Output/wcs:GridCRS/wcs:GridOrigin/text()", type=parse_origin_xml, num="?") gridoffsets = xml.Parameter( "wcs:Output/wcs:GridCRS/wcs:GridOffsets/text()", type=parse_offsets_xml, num="?") # TODO #interpolation = xml.Parameter("wcs:RangeSubset/wcs:InterpolationType/text()", num="?") #fields = xml.Parameter("wcs:RangeSubset/ows:Identifier/text()", num="*") namespaces = nsmap
class DimapGeneralFormat20Decoder(xml.Decoder): identifier = xml.Parameter("Dataset_Identification/DATASET_ID/text()")
class WCS20GetCoverageXMLDecoder(xml.Decoder): coverage_id = xml.Parameter("wcs:CoverageId/text()", num=1, locator="coverageid") subsets = xml.Parameter("wcs:DimensionTrim", type=parse_subset_xml, num="*", locator="subset") scalefactor = xml.Parameter( "wcs:Extension/scal:ScaleByFactor/scal:scaleFactor/text()", type=float, num="?", locator="scalefactor") scaleaxes = xml.Parameter( "wcs:Extension/scal:ScaleByAxesFactor/scal:ScaleAxis", type=parse_scaleaxis_xml, num="*", default=(), locator="scaleaxes") scalesize = xml.Parameter( "wcs:Extension/scal:ScaleToSize/scal:TargetAxisSize", type=parse_scalesize_xml, num="*", default=(), locator="scalesize") scaleextent = xml.Parameter( "wcs:Extension/scal:ScaleToExtent/scal:TargetAxisExtent", type=parse_scaleextent_xml, num="*", default=(), locator="scaleextent") rangesubset = xml.Parameter("wcs:Extension/rsub:RangeSubset", type=parse_range_subset_xml, num="?", locator="rangesubset") format = xml.Parameter("wcs:format/text()", num="?", locator="format") subsettingcrs = xml.Parameter("wcs:Extension/crs:subsettingCrs/text()", num="?", locator="subsettingcrs") outputcrs = xml.Parameter("wcs:Extension/crs:outputCrs/text()", num="?", locator="outputcrs") mediatype = xml.Parameter("wcs:mediaType/text()", num="?", locator="mediatype") interpolation = xml.Parameter( "wcs:Extension/int:Interpolation/int:globalInterpolation/text()", type=parse_interpolation, num="?", locator="interpolation") namespaces = nsmap
class EOOMProductMetadataDecoder(EOOMNamespaceMixIn, xml.Decoder): parent_identifier = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:parentIdentifier/text()", type=str, num="?") production_status = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:status/text()", type=str, num="?") acquisition_type = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:acquisitionType/text()", type=str, num="?") orbit_number = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:orbitNumber/text()", type=str, num="?") orbit_direction = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:orbitDirection/text()", type=str, num="?") track = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:wrsLongitudeGrid/text()", type=str, num="?") frame = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:wrsLatitudeGrid/text()", type=str, num="?") swath_identifier = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/eop:swathIdentifier/text()", type=str, num="?") product_version = xml.Parameter("om:result/eop:EarthObservationResult/eop:product/eop:ProductInformation/eop:version/text()", type=str, num="?") product_quality_status = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:productQualityDegradation/text()", type=str, num="?") product_quality_degradation_tag = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:productQualityDegradationTag/text()", type=str, num="?") processor_name = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:processorName/text()", type=str, num="?") processing_center = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetadata/eop:processing/eop:ProcessingInformation/eop:processingCenter/text()", type=str, num="?") processing_date = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetadata/eop:processing/eop:ProcessingInformation/eop:processingDate/text()", type=parse_iso8601, num="?") sensor_mode = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/eop:operationalMode/text()", type=str, num="?") archiving_center = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:archivedIn/eop:ArchivingInformation/eop:archivingCenter/text()", type=str, num="?") processing_mode = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:ProcessingMode/text()", type=str, num="?") creation_date = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:creationDate/text()", type=parse_iso8601, num="?")
class WCS20DescribeCoverageXMLDecoder(xml.Decoder): coverage_ids = xml.Parameter("wcs:CoverageId/text()", num="+") namespaces = nsmap
class EOOMExtraMetadataDecoder(EOOMNamespaceMixIn, xml.Decoder): modification_date = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:modificationDate/text()", type=parse_iso8601, num="?") # TODO: get this into models # resolution = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/eop:resolution/text()", type=str, num="?") cloud_cover = xml.Parameter("om:result/opt:EarthObservationResult/opt:cloudCoverPercentage/text()|om:result/atm:EarthObservationResult/atm:cloudCoverPercentage/text()", type=float, num="?") snow_cover = xml.Parameter("om:result/opt:EarthObservationResult/opt:snowCoverPercentage/text()|om:result/atm:EarthObservationResult/atm:snowCoverPercentage/text()", type=float, num="?") lowest_location = xml.Parameter("atm:EarthObservation/om:resultOf/atm:EarthObservationResult/atm:dataLayers/atm:DataLayer/atm:lowestLocation/text()", type=float, num="?") highest_location = xml.Parameter("atm:EarthObservation/om:resultOf/atm:EarthObservationResult/atm:dataLayers/atm:DataLayer/atm:highestLocation/text()", type=float, num="?") acquisition_station = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:downlinkedTo/eop:DownlinkInformation/eop:acquisitionStation/text()", type=str, num="?") availability_time = xml.Parameter("om:resultTime/gml:TimeInstant/gml:timePosition/text()", type=parse_iso8601, num="?") acquisition_sub_type = xml.Parameter("eop:metaDataProperty/eop:EarthObservationMetaData/eop:acquisitionSubType/text()", type=str, num="?") start_time_from_ascending_node = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:startTimeFromAscendingNode/text()", type=int, num="?") completion_time_from_ascending_node = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:completionTimeFromAscendingNode/text()", type=int, num="?") illumination_azimuth_angle = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:illuminationAzimuthAngle/text()", type=float, num="?") illumination_zenith_angle = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:illuminationZenithAngle/text()", type=float, num="?") illumination_elevation_angle = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:illuminationElevationAngle/text()", type=float, num="?") polarisation_mode = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:polarisationMode/text()", type=str, num="?") polarization_channels = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:polarisationChannels/text()", type=str, num="?") antenna_look_direction = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:antennaLookDirection/text()", type=str, num="?") minimum_incidence_angle = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:minimumIncidenceAngle/text()", type=float, num="?") maximum_incidence_angle = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:maximumIncidenceAngle/text()", type=float, num="?") across_track_incidence_angle = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/opt:Acquisition/eop:acrossTrackIncidenceAngle/text()", type=float, num="?") along_track_incidence_angle = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/opt:Acquisition/eop:alongTrackIncidenceAngle/text()", type=float, num="?") doppler_frequency = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:dopplerFrequency/text()", type=float, num="?") incidence_angle_variation = xml.Parameter("om:procedure/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:incidenceAngleVariation/text()", type=float, num="?")
class WPS10DescribeProcessXMLDecoder(xml.Decoder): """ WPS 1.0 DescribeProcess HTTP/POST XML request decoder. """ #pylint: disable=too-few-public-methods identifiers = xml.Parameter("ows:Identifier/text()", num="+") namespaces = nsmap
class GMLFeatureDecoder(xml.Decoder): identifiers = xml.Parameter("//identifier/text()", num="*")
class WCS11DescribeCoverageXMLDecoder(xml.Decoder): coverage_ids = xml.Parameter("wcs:Identifier/text()", num="+") namespaces = nsmap
class GSCFormatExtendedDecoder(xml.Decoder): namespaces = nsmap identifier = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:identifier/text()", type=str, num="?") parent_identifier = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:parentIdentifier/text()", type=str, num="?") production_status = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:status/text()", type=str, num="?") acquisition_type = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:acquisitionType/text()", type=str, num="?") orbit_number = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/opt:Acquisition/eop:orbitNumber/text()", type=int, num="?") orbit_direction = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/opt:Acquisition/eop:orbitDirection/text()", type=str, num="?") swath_identifier = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/eop:swathIdentifier/text()", type=str, num="?") product_version = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:resultOf/eop:EarthObservationResult/eop:product/eop:ProductInformation/eop:version/text()", type=float, num="?") product_quality_status = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:resultOf/eop:EarthObservationMetaData/eop:productQualityStatus/text()", type=str, num="?") product_quality_degradation_tag = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:productQualityDegradationTag/text()", type=str, num="?") processing_center = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:processingCenter/text()", type=str, num="?") creation_date = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:creationDate/text()", type=str, num="?") # insertion into catalog modification_date = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:modificationDate/text()", type=str, num="?") # last modification in catalog processing_date = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:processingDate/text()", type=str, num="?") sensor_mode = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:sensor/eop:Sensor/eop:operationalMode/text()", type=str, num="?") archiving_center = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:archivedIn/eop:ArchivingInformation/eop:archivingCenter/text()", type=str, num="?") processing_mode = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:processing/eop:ProcessingInformation/eop:processingMode/text()", type=str, num="?") # acquisition type metadata acquisition_station = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:downlinkedTo/eop:DownlinkInformation/eop:acquisitionStation/text()", type=str, num="?") acquisition_sub_type = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:acquisitionSubType/text()", type=str, num="?") start_time_from_ascending_node = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:startTimeFromAscendingNode/text()", type=str, num="?") completion_time_from_ascending_node = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/eop:Acquisition/eop:completionTimeFromAscendingNode/text()", type=str, num="?") illumination_azimuth_angle = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/opt:Acquisition/opt:illuminationAzimuthAngle/text()", type=float, num="?") illumination_zenith_angle = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/opt:Acquisition/opt:illuminationZenithAngle/text()", type=float, num="?") illumination_elevation_angle = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/opt:Acquisition/opt:illuminationElevationAngle/text()", type=float, num="?") across_track_incidence_angle = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/opt:Acquisition/eop:acrossTrackIncidenceAngle/text()", type=float, num="?") along_track_incidence_angle = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/opt:Acquisition/eop:alongTrackIncidenceAngle/text()", type=float, num="?") polarisation_mode = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:polarisationMode/text()", type=str, num="?") polarization_channels = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:polarisationChannels/text()", type=str, num="?") antenna_look_direction = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:antennaLookDirection/text()", type=str, num="?") minimum_incidence_angle = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:minimumIncidenceAngle/text()", type=float, num="?") maximum_incidence_angle = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:maximumIncidenceAngle/text()", type=float, num="?") # for SAR acquisitions doppler_frequency = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:dopplerFrequency/text()", type=float, num="?") incidence_angle_variation = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:using/eop:EarthObservationEquipment/eop:acquisitionParameters/sar:Acquisition/sar:incidenceAngleVariation/text()", type=float, num="?") # for OPT/ALT cloud_cover = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:resultOf/opt:EarthObservationResult/opt:cloudCoverPercentage/text()", type=float, num="?") snow_cover = xml.Parameter( "(gsc:sar_metadata|gsc:opt_metadata)/gml:resultOf/opt:EarthObservationResult/opt:snowCoverPercentage/text()", type=float, num="?")