module ADIWG::Mdtranslator::Readers::SbJson::Extent
Public Class Methods
unpack(extentId, hResponseObj)
click to toggle source
# File lib/adiwg/mdtranslator/readers/sbJson/modules/module_extent.rb, line 18 def self.unpack(extentId, hResponseObj) begin extentAdd = "http://www.sciencebase.gov/catalog/extent/#{extentId}?format=geojson" web_contents = open(extentAdd, :read_timeout => 30) { |f| f.read } rescue => readErr hResponseObj[:readerExecutionMessages] << 'Failed reading ScienceBase extent - see following message(s):\n' hResponseObj[:readerExecutionMessages] << readErr.to_s.slice(0, 300) return {} else # parse geoJson file begin hGeoJson = JSON.parse(web_contents) rescue JSON::JSONError => parseErr hResponseObj[:readerExecutionMessages] << 'Parsing extent failed - see following message(s):\n' hResponseObj[:readerExecutionMessages] << parseErr.to_s.slice(0, 300) return {} end mdJson = { 'description' => 'Extent extracted from ScienceBase', 'geographicExtent' => [ { 'description' => 'Geographic Extent imported from USGS ScienceBase', 'containsData' => true, 'identifier' => { 'identifier' => '' }, 'geographicElement' => [] } ] } mdJson['geographicExtent'][0]['identifier']['identifier'] = extentId.to_s mdJson['geographicExtent'][0]['identifier']['namespace'] = 'gov.sciencebase.catalog' mdJson['geographicExtent'][0]['geographicElement'] << hGeoJson hExtent = ADIWG::Mdtranslator::Readers::MdJson::Extent.unpack(mdJson, hResponseObj) return hExtent end end