18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# 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
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
|