module ADIWG::Mdtranslator::Readers::MdJson::ProjectionParameters
Public Class Methods
unpack(hProjection, responseObj, inContext = nil)
click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_projectionParameters.rb, line 20 def self.unpack(hProjection, responseObj, inContext = nil) @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson # return nil object if input is empty if hProjection.empty? @MessagePath.issueWarning(650, responseObj, inContext) return nil end # instance classes needed in script intMetadataClass = InternalMetadata.new intProjection = intMetadataClass.newProjection outContext = 'projection parameters' outContext = inContext + ' ' + outContext unless inContext.nil? # projection parameters - projection identifier {identifier} (required) # add name to identifier object if hProjection.has_key?('projectionIdentifier') unless hProjection['projectionIdentifier'].empty? hProjectionId = hProjection['projectionIdentifier'] hReturn = Identifier.unpack(hProjectionId, responseObj, outContext) unless hReturn.nil? if hProjectionId.has_key?('name') unless hProjectionId['name'] == '' hReturn[:name] = hProjectionId['name'] end end intProjection[:projectionIdentifier] = hReturn end end end if intProjection[:projectionIdentifier].empty? @MessagePath.issueError(651, responseObj, inContext) end # projection parameters - grid system identifier {identifier} # add name to identifier object if hProjection.has_key?('gridIdentifier') unless hProjection['gridIdentifier'].empty? hGridSystemId = hProjection['gridIdentifier'] hReturn = Identifier.unpack(hProjection['gridIdentifier'], responseObj, outContext) unless hReturn.nil? if hGridSystemId.has_key?('name') unless hGridSystemId['name'] == '' hReturn[:name] = hGridSystemId['name'] end end intProjection[:gridIdentifier] = hReturn end end end # projection parameters - zone if hProjection.has_key?('gridZone') unless hProjection['gridZone'] == '' intProjection[:gridZone] = hProjection['gridZone'] end end # projection parameters - standard parallel 1 if hProjection.has_key?('standardParallel1') unless hProjection['standardParallel1'] == '' intProjection[:standardParallel1] = hProjection['standardParallel1'] end end # projection parameters - standard parallel 2 if hProjection.has_key?('standardParallel2') unless hProjection['standardParallel2'] == '' intProjection[:standardParallel2] = hProjection['standardParallel2'] end end # projection parameters - longitude of central meridian if hProjection.has_key?('longitudeOfCentralMeridian') unless hProjection['longitudeOfCentralMeridian'] == '' intProjection[:longitudeOfCentralMeridian] = hProjection['longitudeOfCentralMeridian'] end end # projection parameters - latitude of projection origin if hProjection.has_key?('latitudeOfProjectionOrigin') unless hProjection['latitudeOfProjectionOrigin'] == '' intProjection[:latitudeOfProjectionOrigin] = hProjection['latitudeOfProjectionOrigin'] end end # projection parameters - false easting if hProjection.has_key?('falseEasting') unless hProjection['falseEasting'] == '' intProjection[:falseEasting] = hProjection['falseEasting'] end end # projection parameters - false northing if hProjection.has_key?('falseNorthing') unless hProjection['falseNorthing'] == '' intProjection[:falseNorthing] = hProjection['falseNorthing'] end end # projection parameters - false easting northing units if hProjection.has_key?('falseEastingNorthingUnits') unless hProjection['falseEastingNorthingUnits'] == '' intProjection[:falseEastingNorthingUnits] = hProjection['falseEastingNorthingUnits'] end end # projection parameters - scale factor at equator if hProjection.has_key?('scaleFactorAtEquator') unless hProjection['scaleFactorAtEquator'] == '' intProjection[:scaleFactorAtEquator] = hProjection['scaleFactorAtEquator'] end end # projection parameters - height of prospective point above surface if hProjection.has_key?('heightOfProspectivePointAboveSurface') unless hProjection['heightOfProspectivePointAboveSurface'] == '' intProjection[:heightOfProspectivePointAboveSurface] = hProjection['heightOfProspectivePointAboveSurface'] end end # projection parameters - longitude of projection center if hProjection.has_key?('longitudeOfProjectionCenter') unless hProjection['longitudeOfProjectionCenter'] == '' intProjection[:longitudeOfProjectionCenter] = hProjection['longitudeOfProjectionCenter'] end end # projection parameters - latitude of projection center if hProjection.has_key?('latitudeOfProjectionCenter') unless hProjection['latitudeOfProjectionCenter'] == '' intProjection[:latitudeOfProjectionCenter] = hProjection['latitudeOfProjectionCenter'] end end # projection parameters - scale factor at center line if hProjection.has_key?('scaleFactorAtCenterLine') unless hProjection['scaleFactorAtCenterLine'] == '' intProjection[:scaleFactorAtCenterLine] = hProjection['scaleFactorAtCenterLine'] end end # projection parameters - scale factor at meridian if hProjection.has_key?('scaleFactorAtCentralMeridian') unless hProjection['scaleFactorAtCentralMeridian'] == '' intProjection[:scaleFactorAtCentralMeridian] = hProjection['scaleFactorAtCentralMeridian'] end end # projection parameters - straight vertical longitude from pole if hProjection.has_key?('straightVerticalLongitudeFromPole') unless hProjection['straightVerticalLongitudeFromPole'] == '' intProjection[:straightVerticalLongitudeFromPole] = hProjection['straightVerticalLongitudeFromPole'] end end # projection parameters - scale factor at projection origin if hProjection.has_key?('scaleFactorAtProjectionOrigin') unless hProjection['scaleFactorAtProjectionOrigin'] == '' intProjection[:scaleFactorAtProjectionOrigin] = hProjection['scaleFactorAtProjectionOrigin'] end end # projection parameters - azimuth angle if hProjection.has_key?('azimuthAngle') unless hProjection['azimuthAngle'] == '' intProjection[:azimuthAngle] = hProjection['azimuthAngle'] end end # projection parameters - azimuth measure point longitude if hProjection.has_key?('azimuthMeasurePointLongitude') unless hProjection['azimuthMeasurePointLongitude'] == '' intProjection[:azimuthMeasurePointLongitude] = hProjection['azimuthMeasurePointLongitude'] end end # projection parameters - oblique line points [] {obliqueLinePoint} if hProjection.has_key?('obliqueLinePoint') aItems = hProjection['obliqueLinePoint'] aItems.each do |item| hReturn = ObliqueLinePoint.unpack(item, responseObj, outContext) unless hReturn.nil? intProjection[:obliqueLinePoints] << hReturn end end end # projection parameters - landsat number if hProjection.has_key?('landsatNumber') unless hProjection['landsatNumber'] == '' intProjection[:landsatNumber] = hProjection['landsatNumber'] end end # projection parameters - landsat path if hProjection.has_key?('landsatPath') unless hProjection['landsatPath'] == '' intProjection[:landsatPath] = hProjection['landsatPath'] end end # projection parameters - local projection [] {local} if hProjection.has_key?('local') unless hProjection['local'].empty? hReturn = LocalProjection.unpack(hProjection['local'], responseObj, outContext) unless hReturn.nil? intProjection[:local] = hReturn end end end return intProjection end