Skip to content

Gemini XML to Topcat Metadata Conversion

felix edited this page Jul 13, 2017 · 1 revision

Raw XML To JSON mappings

Element XML Element Mapping
'ID':'...' <gmd:fileIdentifier><gco:CharacterString>
'Title':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:citation><gmd:CI_Citation><gmd:title><gco:CharacterString>
'Abstract':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:abstract><gco:CharacterString>
'TopicCategory': '...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:topicCategory><gmd:MD_TopicCategoryCode>
'Keywords': [{'Value':'...', 'Vocab':'...'}] 'Value': <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:descriptiveKeywords><gmd:MD_Keywords><gmd:keyword><gco:CharacterString>
Vocab': <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:descriptiveKeywords><gmd:MD_Keywords><gmd:thesaurusName><gmd:CI_Citation><gmd:title><gco:CharacterString>
'TemporalExtent': {'Begin':'yyyy-mm-ddTHH:MM:SS', 'End':'yyyy-mm-ddTHH:MM:SS'} 'Begin': <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:extent><gmd:EX_Extent><gmd:temporalElement><gmd:EX_TemporalExtent><gmd:extent><gml:TimePeriod><gml:beginPosition>
'End': <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:extent><gmd:EX_Extent><gmd:temporalElement><gmd:EX_TemporalExtent><gmd:extent><gml:TimePeriod><gml:endPosition>
'DatasetReferenceDate':'yyyy-mm-ddTHH:MM:SS' gmd:dateStampgco:DateTime
'Lineage':'...' <gmd:dataQualityInfo<gmd:DQ_DataQuality><gmd:lineage><gmd:LI_Lineage><gmd:statement><gco:CharacterString>
'SpatialResolution':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:spatialResolution><gmd:MD_Resolution><gmd:distance><gco:Distance>
'ResourceLocator':'...' S3 Location of data file Not from XML Import
'AdditionalInformationSource':'...' Currently Blank link to metadata catalog / CSW?
'DataFormat' <gmd:distributionInfo><gmd:MD_Distribution><gmd:distributionFormat><gmd:MD_Format><gmd:name><gco:CharacterString>
'ResponsibleOrganisation': { Start Of Responsible Organisation Tag
'Name':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:pointOfContact><gmd:CI_ResponsibleParty><gmd:organisationName><gco:CharacterString>
'Role':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:pointOfContact><gmd:CI_ResponsibleParty><gmd:role><gmd:CI_RoleCode>
'Email':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:pointOfContact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:electronicMailAddress><gco:CharacterString>
'Telephone':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:pointOfContact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:phone><gmd:CI_Telephone><gmd:voice><gco:CharacterString>
'Website':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:pointOfContact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:onlineResource><gmd:CI_OnlineResource><gmd:linkage><gmd:URL>
Address': { Start of Address Tag
'DeliveryPoint':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:pointOfContact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:deliveryPoint><gco:CharacterString>
'City':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:pointOfContact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:city><gco:CharacterString>
'PostalCode':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:pointOfContact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:postalCode><gco:CharacterString>
'Country':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:pointOfContact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:country><gco:CharacterString> }
} End of Address Tag
} End of Responsible Party Tag
'LimitationsOnPublicAccess':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:resourceConstraints><gmd:MD_LegalConstraints><gmd:otherConstraints><gco:CharacterString>
'UseConstraints':'...' <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:resourceConstraints><gmd:MD_Constraints><gmd:useConstraints><gco:CharacterString>
'Copyright':'...' Currently Blank
'SpatialReferenceSystem':'...' <gmd:referenceSystemInfo><gmd:MD_ReferenceSystem><gmd:referenceSystemIdentifier><gmd:RS_Identifier><gmd:code><gco:CharacterString>
'Extent': { 'Value': 'urn:ogc:def:crs:EPSG::4326', 'Vocab': 'http://www.epsg-registry.org/' } Currently Static as we are always using a WGS84 extent
'MetadataDate':' 'yyyy-mm-ddTHH:MM:SS' Generated Time of metadata creation
'MetadataPointOfContact': { Start Of Responsible Organisation Tag
'Name':'...' <gmd:contact><gmd:CI_ResponsibleParty><gmd:organisationName><gco:CharacterString>
'Role':'...' <gmd:contact><gmd:CI_ResponsibleParty><gmd:role><gmd:CI_RoleCode>
'Email':'...' <gmd:contact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:electronicMailAddress><gco:CharacterString>
'Telephone':'...' <gmd:contact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:phone><gmd:CI_Telephone><gmd:voice><gco:CharacterString>
'Website':'...' <gmd:contact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:onlineResource><gmd:CI_OnlineResource><gmd:linkage><gmd:URL>
'Address': { Start Of Address Tag
'DeliveryPoint':'...' <gmd:contact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:deliveryPoint><gco:CharacterString>
'City':'...' <gmd:contact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:city><gco:CharacterString>
'PostalCode':'...' <gmd:contact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:postalCode><gco:CharacterString>
'Country':'...' <gmd:contact><gmd:CI_ResponsibleParty><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:country><gco:CharacterString>
} End Of Address Tag
} End of Contact Tag
'ResourceType':'...' gmd:hierarchyLevelgmd:MD_ScopeCode
'BoundingBox': { Start Of Bounding Box Tag
'North':float <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:extent><gmd:EX_Extent><gmd:geographicElement><gmd:EX_GeographicBoundingBox><gmd:northBoundLatitude><gco:Decimal>
'South':float <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:extent><gmd:EX_Extent><gmd:geographicElement><gmd:EX_GeographicBoundingBox><gmd:southBoundLatitude><gco:Decimal>
'East':float <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:extent><gmd:EX_Extent><gmd:geographicElement><gmd:EX_GeographicBoundingBox><eastBoundLongitude><gco:Decimal>
'West':float <gmd:identificationInfo><gmd:MD_DataIdentification><gmd:extent><gmd:EX_Extent><gmd:geographicElement><gmd:EX_GeographicBoundingBox><westBoundLongitude><gco:Decimal>
} End Of Bounding Box Tag
'RawMetadata': '...' Raw XML String with whitespace removed

Brief Explanation of Metadata

{
  "ID": "bc24a058-3488-4929-b81a-517ab41bf529", // UUID should match the database ID given to the product,
  "Title": "S1A_IW_GRDH_1SSV_20160817T105358_20160817T105423_012639_013D5D_68E8.SAFE", // Should match the folder in S3
  "Abstract": "Simple Abstract, should be mostly generic across these products",
  "TopicCategory": "A UK Gemini Topic Category"
  "Keywords": [{"Value":"", "Vocab":""}, ...], // A list of keywords with an associated Vocabularly
  "TemporalExtent": {"Begin": "20160817T105358", "End": "20160817T105423"}, // Timestamps for beginning and end of capture
  "DatasetReferenceDate": "20170131T101523", // Timestamp for when this product was created
  "Lineage": "Lineage Description, should be mostly generic across these products",
  "SpatialResoultion": "10", // The spatial resolution of the data, should be the same across these products barring a new process
  "ResourceLocator": "URL to the data on S3",
  "AdditionalInformationSource": "URL to any additional metadata for this product",
  "DataFormat": "GeoTIFF",
  "ResponsibleOrganisation": {"Name":"...", "Role":"...", "Email":"...", "Telephone":"...", "Website":"...", "Address":{"DeliveryPoint":"...", "City":"...", "PostalCode":"...", "Country":"..."}},
  "LimitationsOnPublicAccess": "Any limitations of public access or use",
  "UseConstraints": "Any constraints on the use of this data",
  "Copyright": "Copyright information",
  "SpatialReferenceSystem": "The spatial reference system of this data as a OGC urn identifier",
  "Extent": {"Value": "urn:ogc:def:crs:EPSG::4326", "Vocab": "http://www.epsg-registry.org/"}, //Info about the spatial ref of the bounding box
  "BoundingBox": {"North":"...", "South":"...", "East":"...", "West":"..."}, //Lat/Long bounds of the data
  "MetadataDate": "20170131T101523", // Creation Timestamp for this metadata entry
  "MetadataPointOfContact": {"Name":"...", "Role":"...", "Email":"...", "Telephone":"...", "Website":"...", "Address":{"DeliveryPoint":"...", "City":"...", "PostalCode":"...", "Country":"..."}},
  "ResourceType": "dataset",
  "RawMetadata": "Raw Metadata XML dump"
}
Clone this wiki locally