require 'voruby/resources/vodataservice/loader' module VORuby module Resources module VODataServiceCoverage module V0_2 # Forward declarations class Coverage < CoverageType; end class SpatialType; end class Spatial < SpatialType; end class RegionType; end class Region < RegionType; end class AllSky < RegionType; end class CoordFrameType; end class CoordFrame < CoordFrameType; end class CoordRangeType < RegionType; end class CircleRegionType < RegionType; end class CircleRegion < CirlceRegionType; end class PositionType; end class CenterPosition < PositionType; end class SpatialResolution; end class RegionOfRegard; end class TemporalType; end class Temporal < TemporalType; end class StartTime; end class EndTime; end class TemporalResolution; end class SpectralType; end class Spectral < SpectralType; end class WavebandType; end class Waveband < WavebandType; end class WavelengthRangeType; end class WavelengthRange < WavelengthRangeType; end class SpectralResolution; end class MinMaxRange; end # Extent of the content of the resource over space, time, and frequency. class Coverage; end class CoverageType include XML::Mapping object_node :spatial, 'Spatial', :class => Spatial, :optional => true object_node :spectral, 'Spectral', :class => Spectral, :optional => true object_node :temporal, 'Temporal', :class => Temporal, :optional => true end # The spatial coverage of a resource. class Spatial; end class SpatialType include XML::Mapping object_node :spatial_resolution, 'SpatialResolution', :class => SpatialResolution, :optional => true object_node :region_of_regard, 'RegionOfRegard', :class => RegionOfRegard, :optional => true array_node :regions, 'Region', :class => Region, :optional => true, :default_value => [] end # A coverage area of the sky. class Region; end class RegionType include XML::Mapping end # A coverage area covering the entire sky. class AllSky; end # A coordinate system frame. class CoordFrame; end class CoordFrameType include XML::Mapping text_enumeration_node :value, '', :optional => false, :choices => ['ICRS', 'FK5', 'FK4', 'ECL', 'GAL', 'SGAL'] end # A coverage area of the sky characterized by a range of longitude and latitude. class CoordRange; end class CoordRangeType object_node :coord_frame, 'CoordFrame', :class => CoordFrame, :optional => false object_node :long, 'long', :class => MinMaxRange, :optional => false object_node :lat, 'lat', :class => MinMaxRange, :optional => false end class MinMaxRange require XML::Mapping numeric_node :min, 'min', :optional => false numeric_node :max, 'max', :optional => false end # A coverage area of the sky characterized by a central position and angular radius. class CircleRegion; end class CircleRegionType numeric_node :radius, 'radius', :optional => false object_node :coord_frame, 'CoordFrame', :class => CoordFrame, :optional => false object_node :center_position, 'CenterPosition', :class => CenterPosition, :optional => false end # The position of the center of some region of the sky. class CenterPosition; end class PositionType include XML::Mapping numeric_node :long, 'long', :optional => false numeric_node :lat, 'lat', :optional => false end # The spatial (angular) resolution that is typical of the observations of interest, in decimal degrees. class SpatialResolution include XML::Mapping numeric_node :value, '', :optional => false end # The intrinsic size scale, given in arcseconds, associated with data items contained in a resource. class RegionOfRegard include XML::Mapping numeric_node :value, '', :optional => false end # The temporal coverage of a resource. class Temporal; end class TemporalType include XML::Mapping object_node :start_time, 'StartTime', :class => StartTime, :optional => true object_node :end_time, 'EndTime', :class => EndTime, :optional => true object_node :temporal_resolution, 'TemporalResolution', :class => TemporalResolution, :optional => true end # The earliest temporal coverage of the resource. class StartTime include XML::Mapping date_time_node :value, '', :optional => false end # The latest temporal coverage of the resource. class EndTime include XML::Mapping date_time_node :value, '', :optional => false end # The temporal resolution that is typical of the observations of interest, in seconds. class TemporalResolution include XML::Mapping numeric_node :value, '', :optional => false end # The spectral coverage of a resource. class Spectral; end class SpectralType include XML::Mapping object_node :wavelength_range, 'WavelengthRange', :class => WavelengthRange, :optional => true object_node :spectral_resolution, 'SpectralResolution', :class => SpectralResolution, :optional => true array_node :wavebands, 'Waveband', :class => Waveband, :optional => true, :default_value => [] end # A named spectral region of the electro-magnetic spectrum. class Waveband; end class WavebandType include XML::Mapping text_enumeration_node :value, '', :optional => false, :choices => ['Radio', 'Millimeter', 'Infrared', 'Optical', 'UV', 'EUV', 'X-ray', 'Gamma-ray'] end # A range of the electro-magnetic spectrum specified by a lower and upper wavelength limit. class WavelengthRange; end class WavelengthRangeType include XML::Mapping numeric_node :min, 'min', :optional => false numeric_node :max, 'max', :optional => false end # The spectral resolution that is typical of the observations of interest, given as a ratio of the wavelength # width (delta-lambda) to the observing wavelength (lambda). class SpectralResolution include XML::Mapping numeric_node :value, '', :optional => false end end end end end