Coverage GeoJSON File

Output GEOGEN Coverage files are in GeoJSON format, and contain an additional coverage member. It always contains the following members:

coverage (object):

coverage JSON object describing common properties of the observations coverage. This object is a GeoJSON foreign member, which means that it is not part of the GeoJSON format specification, and therefore not read by standard GeoJSON APIs or applications.

type (string):

GeoJSON object type, always equal to FeatureCollection.

features (array):

List GeoJSON feature objects, representing coverage observations.

The following figure shows the relationship between GeoJSON objects and their mapping with the GEOGEN concepts of coverage, observation, footprint, and geometry parameters:

../_images/coverage_geojson_model.png

About GeoJSON

GeoJSON is a format for encoding a variety of geographic data structures using JSON. A GeoJSON object may represent a region of space (a Geometry), a spatially bounded entity (a Feature), or a list of Features (a FeatureCollection). GeoJSON supports the following geometry types: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection. Features in GeoJSON contain a Geometry object and additional properties, and a FeatureCollection contains a list of Feature.

The coordinate reference system for all GeoJSON coordinates is a geographic coordinate reference system, using the World Geodetic System 1984 (WGS 84) datum, with longitude and latitude units of decimal degrees.

coverage

JSON object describing the observations coverage common properties. It includes the following members:

target_name (string)

NAIF body name of the observed target.

target_id (number)

NAIF body ID of the observed target.

target_frame (string)

SPICE body-fixed reference frame of the observed target.

surface_model (object)

surface_model JSON object describing the surface model of the target.

antimeridian_split (boolean)

Boolean flag indicating whether or not observations footprints geometry has been split when crossing the target body antimeridian.

instrument_host_id (string)

Instrument host identifier common to all observations.

instrument_id (string)

Instrument identifier common to all observations.

product_type (string)

Data product type common to all observations.

Example:

"coverage": {
  "target_name": "MARS",
  "target_id": 499,
  "target_frame": "IAU_MARS",
  "surface_model": {
    "type": "ELLIPSOID",
    "a_axis_radius": 3396.19,
    "b_axis_radius": 3396.19,
    "c_axis_radius": 3376.2
  },
  "antimeridian_split": true,
  "instrument_host_id": "MEX",
  "instrument_id": "HRSC",
  "product_type": "RDR"
}

surface_model

JSON object describing the surface model of the target, to be used as datum for instead of the standard GeoJSON WGS 84 datum. It has the following members:

type (string)

Type of surface model: either ELLIPSOID or DSK/UNPRIORITIZED.

If type is ELLIPSOID, it contains the following members:

a_axis_radius (number)

Semi-axes length (km) of the ellipsoid along X-axis of target body-fixed reference frame.

b_axis_radius (number)

Semi-axes length (km) of the ellipsoid along Y-axis of target body-fixed reference frame.

c_axis_radius (number)

Semi-axes length (km) of the ellipsoid along Z-axis of target body-fixed reference frame.

Example:

"surface_model": {
  "type": "ELLIPSOID",
  "a_axis_radius": 3396.19,
  "b_axis_radius": 3396.19,
  "c_axis_radius": 3376.2
}

If type is DSK/UNPRIORITIZED, it contains the following member:

dsk_file (string or array)

DSK filename or list of DSK filenames used for computation of observed target points. When there are more than one DSK files, the last one in the list is the one used as surface model.

Examples:

"surface_model": {
  "type": "DSK/UNPRIORITIZED",
  "dsk_file": [
    "PHOBOS_M003_GAS_V01.BDS",
    "phobos_2014_09_22.bds"
  ]
}
"surface_model": {
  "type": "DSK/UNPRIORITIZED",
  "dsk_file": "ROS_LU_M003_OSPCLAM_N_V1.BDS"
}

feature

GeoJSON feature that represents an observation. It contains the following members:

type (string)

GeoJSON object type, always equal to Feature.

bbox (array)

Boundary box coordinates range of the observation footprint geometry listed in the following order: westernmost longitude, minimum latitude, easternmost longitude, maximum latitude. Values are identical to the westernmost_longitude, minimum_latitude, easternmost_longitude, and maximum_latitude observation geometry parameters stored as properties. For IN-SITU detector type, this member value is null.

geometry (object)

GeoJSON geometry object describing the geometry of an observation footprint.

properties (object)

GeoJSON object describing properties of the feature, which correspond to the observation geometry parameters defined in geogen.coverage.GeometryParameters. For example:

"properties": {
    "product_id": "HG859_0004_SR2.IMG",
    "dataset_id": "MEX-M-HRSC-3-RDR",
    "start_time": "2017-04-24T16:43:29.297",
    "stop_time": "2017-04-24T16:43:29.297",
    "reference_time": "2017-04-24T16:43:29.297",
    "center_latitude": -5.178419170342002,
    "center_longitude": -0.011343211000912621,
    "antimeridian_crossing": false,
    "npole_crossing": false,
    "spole_crossing": false,
    "westernmost_longitude": -0.068635,
    "easternmost_longitude": 0.045889,
    "minimum_latitude": -5.235159,
    "maximum_latitude": -5.12173,
    "local_true_solar_time": "14:30:41",
    "solar_longitude": 354.5633272555151,
    "sub_solar_latitude": -2.3114621515011304,
    "sub_solar_longitude": -37.685194093565364,
    "solar_distance": 230961447.82473174,
    "spacecraft_solar_distance": 230958255.54693577,
    "spacecraft_altitude": 696.2562067471191,
    "target_center_distance": 4092.1178044992553,
    "sub_spacecraft_latitude": -5.168604604277858,
    "sub_spacecraft_longitude": 1.0280916156585713,
    "sub_spacecraft_solar_zenith_angle": 38.73254533346514,
    "target_right_ascension": 120.39037985836394,
    "target_declination": 41.125120520269995,
    "sun_right_ascension": 258.5779756600134,
    "sun_declination": -23.952091280752747,
    "x_sc_sun_position": -41798935.05508965,
    "y_sc_sun_position": -206889137.60802373,
    "z_sc_sun_position": -93762729.45729305,
    "x_sc_sun_velocity": 19.454932219248207,
    "y_sc_sun_velocity": -3.3769005181030485,
    "z_sc_sun_velocity": -4.686613240282778,
    "x_sc_target_position": -1559.3978263569832,
    "y_sc_target_position": 2658.952022984886,
    "z_sc_target_position": 2691.4086803229097,
    "x_sc_target_velocity": -2.4262915031989776,
    "y_sc_target_velocity": 2.3570584302730477,
    "z_sc_target_velocity": -2.155872389664493,
    "min_incidence_angle": 37.63943903824614,
    "max_incidence_angle": 37.759110410287946,
    "min_emergence_angle": 5.740848562091582,
    "max_emergence_angle": 6.404818961235594,
    "min_phase_angle": 43.46996036655017,
    "max_phase_angle": 44.04400468321931,
    "min_slant_distance": 699.1624185518212,
    "max_slant_distance": 699.8766484165595,
    "min_tangent_altitude": 0.0,
    "max_tangent_altitude": 0.0,
    "min_spatial_resolution": 0.0063903445055636466,
    "max_spatial_resolution": 0.006396872566527354,
    "boresight_right_ascension": 120.39037985836394,
    "boresight_declination": 41.125120520269995,
    "boresight_target_angle": 5.031740726796068,
    "boresight_solar_elongation": 136.2434383603501
  }

geometry

GeoJSON Geometry object describing the geometry of an observation footprint. For IN-SITU detector type, this object is null, otherwise it contains the following members:

type (string)

Type of the geometry. For an observation footprint, it is restricted to the following types, depending on the GEOGEN detector type and on whether or not the footprint geometry has been split and is crossing the target body antimeridian: LineString, MultiLineString, Polygon or MultiPolygon:

No antimeridian split

Antimeridian split

not crossing

crossing

IN-SITU

null

null

null

POINT

LineString

LineString

MultiLineString

LINE / FRAME

Polygon

Polygon

MultiPolygon

coordinates (array)

List of position coordinates defining the geometry. The structure of the elements in this array is determined by the type of geometry. The first two elements of a position are longitude and latitude. Altitude or elevation is not included as an optional third element, as it is always 0 with respect to the datum defined in the surface_model JSON object.

Note

For FRAME detector’s limb observations, if the target body is not within the field-of-view, polygon coordinates are set to [] and bbox is set to [0.0, 0.0, 0.0, 0.0].