WebGeocalc Web API Documentation

This document describes the Web API interface to WebGeocalc. The API interface provides a way to perform information queries and invoke calculations in the same way the web browser client does. All requests and responses are processed through HTTP/HTTPS transactions. In addition, request URLS use a RESTful structure with JSON payloads and results.

Last updated 19-NOV-2018.

Contents

Javascript API Example

There is an HTML page available on the Geocalc server which serves as an example of how to call the web API: API Example Page (will open in a new window or tab).

Request Reference

All URLs listed here are relative to the context root for the WebGeocalc application. The context root will vary based on the server configuration. As of this writing, the context root for the API-enabled WebGeocalc installation at NAIF is https://wgc2.jpl.nasa.gov:8443/webgeocalc/api/.

For example, the relative URL for the request to list kernel sets is api/kernel-sets. To invoke this request at the main NAIF site, the complete URL would be https://wgc2.jpl.nasa.gov:8443/webgeocalc/api/kernel-sets.

Kernel Set Information Requests

This section describes those API requests for getting information about the available kernel sets on the WebGeocalc server.

URL: kernel-sets

Get list of kernel sets available on the server.

URL parametersNone
Request payloadNone
Response formatJSON with list of kernel set objects
Example request URLhttps://wgc2.jpl.nasa.gov:8443/webgeocalc/api/kernel-sets
Example response
{
  "status": "OK",
  "message": "The operation was successful.",
  "resultType": "KernelSetDetails",
  "items":[
    {
      "caption": "Solar System Kernels",
      "sclkId": "0",
      "description": "Generic kernels for planets, satellites, and some asteroids covering from 1950-01-01 to 2050-01-01.",
      "kernelSetId": "1",
      "missionId": "gen"
    },
    ...
  ]
}

URL: kernel-set/kernelSetId/bodies

Get list of bodies available in a kernel set.

URL parameterskernelSetId, an integer
Request payloadNone
Response formatJSON with list of body objects
Example request URLhttps://wgc2.jpl.nasa.gov:8443/webgeocalc/api/kernel-set/5/bodies
Example response
{
  "status": "OK",
  "message": "The operation was successful.", 
  "resultType": "BodyData",
  "items": [
    {
      "id": -82,
      "name": "CASSINI"
    },
    ...
  ]
}

URL: kernel-set/kernelSetId/frames

Get list of frames available in a kernel set.

URL parameterskernelSetId, an integer
Request payloadNone
Response formatJSON with list of frame objects
Example request URLhttps://wgc2.jpl.nasa.gov:8443/webgeocalc/api/kernel-set/5/frames
Example response
{
  "status": "OK",
  "message": "The operation was successful.",
  "resultType": "FrameData",
  "items": [
    {
      "id": -82905,
      "name": "CASSINI_KSO",
      "centerBodyID": 699,
      "frameClass": 5
    },
    ...
  ]
}

URL: kernel-set/kernelSetId/instruments

Get list of instruments available in a kernel set.

URL parameterskernelSetId, an integer
Request payloadNone
Response formatJSON with list of instrument objects
Example request URLhttps://wgc2.jpl.nasa.gov:8443/webgeocalc/api/kernel-set/5/instruments
Example response
{
  "status": "OK",
  "message": "The operation was successful.",
  "resultType": "InstrumentData", 
  "items": [
    {
      "id": -82898,
      "name": "CASSINI_CIRS_RAD"
    },
    ...
  ]
}

Calculation Requests

This section details the API requests used to invoke calculations and get their status or results.

URL: calculation/new

Starts a new calculation.

URL parametersNone
Request payloadJSON with calculation parameters
Response formatJSON with calculation creation status

Standard Request Payload Parameters

The payload JSON object that is sent as POST data needs the following standard parameters.

NameValue
calculationType The type of calculation to perform. One of the following:
kernels The kernels parameter must be an array of kernels or kernel sets. To specify a kernel set use an object like this:
     {
       "type": "KERNEL_SET",
       "id": "the kernel set ID, an integer"
     }
     

To specify an individual kernel, use an object like this:

     {
       "type": "KERNEL",
       "path": "the server path to the kernel"
     }
     
timeSystem One of the following:
  • UTC
  • TDB
  • TDT
  • SPACECRAFT_CLOCK

If SPACECRAFT_CLOCK is selected, then sclkId must also be provided.

timeFormat One of the following:
  • CALENDAR
  • JULIAN
  • SECONDS_PAST_J2000
  • SPACECRAFT_CLOCK_TICKS
  • SPACECRAFT_CLOCK_STRING

CALENDAR, JULIAN, and SECONDS_PAST_J2000 are applicable only when timeSystem is UTC, TDB, or TDT.

SPACECRAFT_CLOCK_STRING and SPACECRAFT_CLOCK_TICKS are applicable only when timeSystem is SPACECRAFT_CLOCK.

sclkIdThe SCLK ID. Only used if timeSystem is SPACECRAFT_CLOCK.
times An array of strings representing the time points that should be used in the calculation. E.g.
     "times": [
       "2000-01-01", 
       "2000-01-02"
     ],
      
Either this parameter or the intervals parameter must be supplied.
intervalsAn array of objects with startTime and endTime parameters, representing the time intervals used for the calculation. E.g.
     "intervals": [
       {
         "startTime": "2000-01-01",
         "endTime": "2000-01-02"
       }
     ],
   
Either this parameter or the times parameter must be supplied. If this parameter is used, timeStep must also be supplied.
timeStepThe time step/number of steps parameter used for time series or geometry finder calculations. This parameter is not used for time series calculations if the times parameter is supplied.
timeStepUnitsOne of the following:
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
  • EQUAL_INTERVALS
Only used if timeStep is supplied.

Additional Parameters for Geometry Finder Calculations

All of the calculation types starting with GF_ require these additional parameters:

NameDescription
outputDurationUnitsThe units for the duration column of each interval in the result window. One of:
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
shouldComplementWindowA flag indicating whether to complement the result window against the original search window before returning the result. One of:
  • true
  • false.
intervalAdjustmentAn indication whether to adjust the intervals by expansion or contraction. If specified, both intervalAdjustmentAmount and intervalAdjustmentAmountUnits must be specified. One of:
  • NO_ADJUSTMENT
  • EXPAND_INTERVALS
  • CONTRACT_INTERVALS
intervalAdjustmentAmountThe amount to adjust each interval endpoint.
intervalAdjustmentUnitsThe time units for the interval adjustment amount. One of:
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS
intervalFilteringWhether to filter out intervals smaller than a threshold. If specified, both intervalFilteringThreshold and intervalFilteringThresholdUnits must be specified. One of:
  • NO_FILTERING
  • FILTER_INTERVALS
intervalFilteringThresholdThe duration threshold value. All intervals shorter than this value will be removed from the result window.
intervalFilteringThresholdUnitsThe time unit for the interval filtering threshold. One of:
  • SECONDS
  • MINUTES
  • HOURS
  • DAYS

Additional Parameters for Specifying GF Conditions

In addition, all scalar GF calculations (GF_COORDINATE_SEARCH, GF_ANGULAR_SEPARATION_SEARCH, GF_DISTANCE_SEARCH, GF_SUB_POINT_SEARCH, and GF_SURFACE_INTERCEPT_POINT_SEARCH) require the user to specify a condition to test during the search. This condition is a Javascript object with several parameters.

NameDescription
coordinateSystemThe name of the coordinate system in which to evaluate the coordinate. Only required for GF_COORDINATE_SEARCH, GF_SUB_POINT_SEARCH, and GF_SURFACE_INTERCEPT_POINT_SEARCH. One of:
  • RECTANGULAR
  • RA/DEC
  • LATITUDINAL (planetocentric)
  • CYLINDRICAL
  • SPHERICAL
  • GEODETIC
  • PLANETOGRAPHIC
coordinateThe name of the SPICE coordinate to search on. Only needed for GF_COORDINATE_SEARCH, GF_SUB_POINT_SEARCH, and GF_SURFACE_INTERCEPT_POINT_SEARCH. One of:
  • X
  • Y
  • Z
  • LONGITUDE
  • LATITUDE
  • COLATITUDE
  • RIGHT ASCENSION
  • DECLINATION
  • RANGE
  • RADIUS
  • ALTITUDE
This coordinate must be appropriate for the coordinateSystem. See the SPICE API call gfpos() for more information.
relationalConditionThe relationship for the test. One of:
  • =
  • <
  • >
  • RANGE
  • ABSMAX
  • ABSMIN
  • LOCMAX
  • LOCMIN
If RANGE is used, then upperLimit is also required. For all but RANGE, see the documentation for the SPICE API call gfpos().
referenceValueThe value to compare against, or the lower value of a range. Only needed if relationalCondition is not ABSMAX, ABSMIN, LOCMAX, or LOCMIN.
upperLimitThe upper limit of a range. Only needed if relationalCondition is RANGE.
adjustmentValueThe adjustment value to apply for ABSMIN and ABSMAX searches. Required if relationalCondition is ABSMIN or ABSMAX. See the documentation for gfpos() for more details.

For example, here is a sample condition for GF_COORDINATE_SEARCH:

"condition": {
  "coordinateSystem": "RA/DEC",
  "coordinate": "DECLINATION",
  "relationalCondition": "<",
  "referenceValue:" -5
}

For other searches, the coordinateSystem and coordinate are implied. For example, here is a condition for GF_DISTANCE_SEARCH:

"condition": {
  "relationalCondition": "ABSMIN",
  "adjustmentValue": 1000
}

Additional Calculation-Specific Parameters

See the details for each calculation type and the parameter reference for information about other parameters:

Example Calculation Request

Example Request URLhttps://wgc2.jpl.nasa.gov:8443/webgeocalc/api/calculation/new
Example Post Data
{
  "calculationType": "STATE_VECTOR",
  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 1
    }
  ],
  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "intervals": [
    {
      "startTime": "2000-01-01",
      "endTime": "2000-01-02"
    }
  ],
  "timeStep": 30,
  "timeStepUnits": "MINUTES",
  "target": "SUN",
  "observer": "EARTH",
  "referenceFrame": "J2000",
  "aberrationCorrection": "NONE",
  "stateRepresentation": "RA_DEC"
}
Example Response
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "0788aba2-d4e5-4028-9ef1-4867ad5385e0",
  "result": {
    "phase": "COMPLETE",
    "progress": 0
  }
}

URL: calculation/id

Gets the status of a calculation.

URL parameterscalculationId, a string
Request payloadNone
Response formatJSON with calculation status

Example Calculation Status Request

Example request URLhttps://wgc2.jpl.nasa.gov:8443/webgeocalc/api/calculation/0788aba2-d4e5-4028-9ef1-4867ad5385e0
Example response
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "0788aba2-d4e5-4028-9ef1-4867ad5385e0",
  "result": {
    "phase": "COMPLETE",
    "progress": 0
  }
}

URL: calculation/id/results

Gets the results of a calculation.

URL parameterscalculationId, a string
Request payloadNone
Response formatJSON with calculation results

Example Calculation Results Request

Example request URLhttps://wgc2.jpl.nasa.gov:8443/webgeocalc/api/calculation/0788aba2-d4e5-4028-9ef1-4867ad5385e0
Example response
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "0788aba2-d4e5-4028-9ef1-4867ad5385e0",
  "columns": [
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Right Ascension (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "RIGHT_ASCENSION"
    },
    ...
    {
      "name": "Light Time (s)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "LIGHT_TIME"
    }
  ],
  "rows": [
    [
      "2000-01-01 00:00:00.000000 UTC",
      280.73666816,
      -23.07197828,
      147104359.15044397,
      0.0000127884715,
      8.74255781e-7,
      -0.01659221,
      30.29084386,
      "2000-01-01 00:00:00.000000 UTC",
      490.6873246
    ],
    ...
    [
      "2000-01-02 00:00:00.000000 UTC",
      281.84100169,
      -22.99260787,
      147103258.34983575,
      0.0000127745341,
      9.62949471e-7,
      -0.00894244,
      30.29324424,
      "2000-01-02 00:00:00.000000 UTC",
      490.68365272
    ]
  ]
}

Calculation Reference

This section describes the available calculation types, specified using the parameter calculationType, and the parameters expected by each calculation.

STATE_VECTOR

Calculates the position of one body relative to another, calculated in a desired reference frame.

Standard parameters:

Additional parameters required:

NameDescription
targetThe target body name or ID
observerThe observing body name or ID
referenceFrameThe reference frame name
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S
stateRepresentationOne of:
  • RECTANGULAR
  • RA_DEC
  • LATITUDINAL (planetocentric)
  • PLANETODETIC
  • PLANETOGRAPHIC
  • CYLINDRICAL
  • SPHERICAL

Example STATE_VECTOR Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "times": [ 
    "2012-10-19T08:24:00.000"
  ],
  "timeStep": 1,
  "timeStepUnits": "SECONDS",

  "calculationType": "STATE_VECTOR",
  "target": "CASSINI",
  "observer": "SATURN",
  "referenceFrame": "IAU_SATURN",
  "aberrationCorrection": "NONE",
  "stateRepresentation": "PLANETOGRAPHIC"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "2312e51f-1593-4e72-834b-86e4fb3beca5",
  "columns": [
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Longitude (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "LONGITUDE"
    },
    {
      "name": "Latitude (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "LATITUDE"
    },
    {
      "name": "Altitude (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "ALTITUDE"
    },
    {
      "name": "d Longitude/dt (deg/s)",
      "type": "NUMBER",
      "units": "deg/s",
      "outputID": "D_LONGITUDE_DT"
    },
    {
      "name": "d Latitude/dt (deg/s)",
      "type": "NUMBER",
      "units": "deg/s",
      "outputID": "D_LATITUDE_DT"
    },
    {
      "name": "d Altitude/dt (km/s)",
      "type": "NUMBER",
      "units": "km/s",
      "outputID": "D_ALTITUDE_DT"
    },
    {
      "name": "Speed (km/s)",
      "type": "NUMBER",
      "units": "km/s",
      "outputID": "SPEED"
    },
    {
      "name": "Time at Target",
      "type": "DATE",
      "units": "",
      "outputID": "TIME_AT_TARGET"
    },
    {
      "name": "Light Time (s)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "LIGHT_TIME"
    }
  ],
  "rows": [
    [
      "2012-10-19 08:24:00.000000 UTC",
      46.18900522,
      21.26337134,
      694259.8921163,
      0.00888655,
      -0.00031533,
      4.77080305,
      109.34997994,
      "2012-10-19 08:24:00.000000 UTC",
      2.51438831
    ]
  ]
}

ANGULAR_SEPARATION

Calculates the angular separation of two bodies as seen by an observer body. This calculation requires these parameters:

Standard parameters:

Additional parameters required:

NameDescription
target1The target body name or ID of the first body
shape1The shape to use for the first body. One of:
  • POINT
  • SPHERE
target2The target body name or ID of the second body
shape2The shape to use for the second body. One of:
  • POINT
  • SPHERE
observerThe observing body name or ID
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S

Example ANGULAR_SEPARATION Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL",
      "path": "pds/wgc/kernels/lsk/naif0012.tls"
    },
    {
      "type": "KERNEL",
      "path": "pds/wgc/kernels/spk/de430.bsp"
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "times": [ 
    "2012-10-19T08:24:00.000"
  ],
  "timeStep": 1,
  "timeStepUnits": "SECONDS",

  "calculationType": "ANGULAR_SEPARATION",
  "target1": "VENUS",
  "shape1": "POINT",
  "target2": "MERCURY",
  "shape2": "POINT",
  "observer": "SUN",
  "aberrationCorrection": "NONE"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "963c48d7-c7d9-48ed-b97c-b3e2ff021e29",
  "columns": [
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Angular Separation (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "ANGULAR_SEPARATION"
    }
  ],
  "rows": [
    [
      "2012-10-19 08:24:00.000000 UTC",
      175.17111606
    ]
  ]
}

ANGULAR_SIZE

Calculates the angular size of a target as seen by an observer.

Standard parameters:

Additional parameters required:

NameDescription
targetThe target body name or ID
observerThe observing body name or ID
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S

Example ANGULAR_SIZE Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "times": [ 
    "2012-10-19T08:24:00.000"
  ],
  "timeStep": 1,
  "timeStepUnits": "SECONDS",

  "calculationType": "ANGULAR_SIZE",
  "target": "ENCELADUS",
  "observer": "CASSINI",
  "aberrationCorrection": "CN+S"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "5343f13a-b13b-4d35-9dc5-d20462e64f01",
  "columns": [
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Angular Size (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "ANGULAR_SIZE"
    }
  ],
  "rows": [
    [
      "2012-10-19 08:24:00.000000 UTC",
      0.03037939
    ]
  ]
}

FRAME_TRANSFORMATION

Calculate the transformation from one reference frame (Frame 1) to another reference frame (Frame 2).

Standard parameters:

Additional parameters required:

NameDescription
frame1The first reference frame name
frame2The second reference frame name
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • XLT
  • CN
  • XCN
timeLocationThe frame for the input times. Only needed if aberrationCorrection is not NONE. One of:
  • frame1
  • frame2.
orientationRepresentationThe representation of the result transformation. One of:
  • EULER_ANGLES
  • ANGLE_AND_AXIS
  • SPICE_QUATERNION
  • OTHER_QUATERNION
  • MATRIX_ROW_BY_ROW
  • MATRIX_FLAGGED
  • MATRIX_ALL_ONE_ROW
axis1The first axis for Euler angle rotation. Only needed if orientationRepresentation is EULER_ANGLES. One of:
  • X
  • Y
  • Z
axis2The second axis for Euler angle rotation. Only needed if orientationRepresentation is EULER_ANGLES. One of:
  • X
  • Y
  • Z
axis3The third axis for Euler angle rotation. Only needed if orientationRepresentation is EULER_ANGLES. One of:
  • X
  • Y
  • Z
angularUnitsThe angular units used for the angle of rotation. Only needed if orientationRepresentation is EULER_ANGLES or ANGLE_AND_AXIS. One of:
  • deg
  • rad
angularVelocityRepresentationThe representation of angular velocity in the output. One of:
  • NOT_INCLUDED
  • VECTOR_IN_FRAME1
  • VECTOR_IN_FRAME2
  • EULER_ANGLE_DERIVATIVES
  • MATRIX
angularVelocityUnitsThe units for the angular velocity. Only needed if angularVelocityRepresention is one of VECTOR_IN_FRAME1, VECTOR_IN_FRAME2, or EULER_ANGLE_DERIVATIVES. One of:
  • deg/s
  • rad/s
  • RPM
  • Unitary (Unit vector, only applicable for VECTOR_IN_FRAME1 and VECTOR_IN_FRAME2)

Example FRAME_TRANSFORMATION Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "times": [ 
    "2012-10-19T08:24:00.000"
  ],
  "timeStep": 1,
  "timeStepUnits": "SECONDS",

  "calculationType": "FRAME_TRANSFORMATION",
  "frame1": "IAU_SATURN",
  "frame2": "IAU_ENCELADUS",
  "aberrationCorrection": "NONE",
  "timeLocation": "FRAME1",
  "orientationRepresentation": "EULER_ANGLES",
  "axis1": "X",
  "axis2": "Y",
  "axis3": "Z",
  "angularUnits": "deg",
  "angularVelocityRepresentation": "VECTOR_IN_FRAME1",
  "angularVelocityUnits": "deg/s"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "798f7427-c87f-4579-92ab-68d2c9ab95e1",
  "columns": [
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Angle 3 (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "ANGLE3"
    },
    {
      "name": "Angle 2 (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "ANGLE2"
    },
    {
      "name": "Angle 1 (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "ANGLE1"
    },
    {
      "name": "AV X (deg/s)",
      "type": "NUMBER",
      "units": "deg/s",
      "outputID": "AV_X"
    },
    {
      "name": "AV Y (deg/s)",
      "type": "NUMBER",
      "units": "deg/s",
      "outputID": "AV_Y"
    },
    {
      "name": "AV Z (deg/s)",
      "type": "NUMBER",
      "units": "deg/s",
      "outputID": "AV_Z"
    },
    {
      "name": "AV Magnitude (deg/s)",
      "type": "NUMBER",
      "units": "deg/s",
      "outputID": "AV_MAG"
    }
  ],
  "rows": [
    [
      "2012-10-19 08:24:00.000000 UTC",
      -20.58940104,
      0.01874004,
      0.00136319,
      9.94596495e-7,
      -7.23492228e-8,
      -0.00634331,
      0.00634331
    ]
  ]
}

ILLUMINATION_ANGLES

Calculate the emission, phase and solar incidence angles at a point on a target as seen from an observer.

Standard parameters:

Additional parameters required:

NameDescription
targetThe target body name or ID
shape1The shape to use for the target body. One of:
  • ELLIPSOID
  • DSK
targetFrameThe target body-fixed reference frame name
observerThe observing body name or ID
coordinateRepresentationOne of:
  • LATITUDINAL (planetocentric)
  • PLANETODETIC
  • PLANETOGRAPHIC
latitudeLatitude of the surface point, in degrees, from -90 to +90.
longitudeLongitude of the surface point, in degrees, from -180 to +180.
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S

Example ILLUMINATION_ANGLES Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "times": [ 
    "2012-10-19T08:24:00.000"
  ],
  "timeStep": 1,
  "timeStepUnits": "SECONDS",

  "calculationType": "ILLUMINATION_ANGLES",
  "target": "ENCELADUS",
  "shape1": "ELLIPSOID",
  "targetFrame": "IAU_ENCELADUS",
  "observer": "CASSINI",
  "coordinateRepresentation": "LATITUDINAL",
  "latitude": 0.0,
  "longitude": 0.0,
  "aberrationCorrection": "CN+S"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "af86f6eb-f415-4c99-9b55-95cf6bfaa011",
  "columns": [
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Incidence Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "INCIDENCE_ANGLE"
    },
    {
      "name": "Emission Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "EMISSION_ANGLE"
    },
    {
      "name": "Phase Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "PHASE_ANGLE"
    },
    {
      "name": "Observer Distance (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "OBSERVER_ALTITUDE"
    },
    {
      "name": "Time at Point",
      "type": "DATE",
      "units": "",
      "outputID": "TIME_AT_POINT"
    },
    {
      "name": "Light Time (s)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "LIGHT_TIME"
    }
  ],
  "rows": [
    [
      "2012-10-19 08:24:00.000000 UTC",
      24.78527742,
      25.56007298,
      1.00079007,
      967668.02765637,
      "2012-10-19 08:23:56.772207 UTC",
      3.2277931
    ]
  ]
}

SUB_SOLAR_POINT

Calculates the sub-solar point on a target as seen from an observer.

Standard parameters:

Additional parameters required:

NameDescription
targetThe target body name or ID
targetFrameThe target body-fixed reference frame name
observerThe observing body name or ID
subPointTypeThe method of finding the sub-solar point, as in the SPICE subslr() API call. One of:
  • Near point: ellipsoid
  • Intercept: ellipsoid
  • NADIR/DSK/UNPRIORITIZED
  • INTERCEPT/DSK/UNPRIORITIZED
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
stateRepresentationOne of:
  • RECTANGULAR
  • RA_DEC
  • LATITUDINAL (planetocentric)
  • PLANETODETIC
  • PLANETOGRAPHIC
  • CYLINDRICAL
  • SPHERICAL

Example SUB_SOLAR_POINT Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "times": [ 
    "2012-10-19T08:24:00.000"
  ],
  "timeStep": 1,
  "timeStepUnits": "SECONDS",

  "calculationType": "SUB_SOLAR_POINT",
  "target": "ENCELADUS",
  "targetFrame": "IAU_ENCELADUS",
  "observer": "CASSINI",
  "subPointType": "Near point: ellipsoid",
  "aberrationCorrection": "CN+S",
  "stateRepresentation": "RECTANGULAR"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "824e983c-f75f-4f49-89bd-b487a77da65c",
  "columns": [
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "X (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "X"
    },
    {
      "name": "Y (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "Y"
    },
    {
      "name": "Z (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "Z"
    },
    {
      "name": "Sub-Point Radius (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "SUB_POINT_RADIUS"
    },
    {
      "name": "Observer Distance (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "OBSERVER_ALTITUDE"
    },
    {
      "name": "Incidence Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "INCIDENCE_ANGLE"
    },
    {
      "name": "Emission Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "EMISSION_ANGLE"
    },
    {
      "name": "Phase Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "PHASE_ANGLE"
    },
    {
      "name": "Time at Point",
      "type": "DATE",
      "units": "",
      "outputID": "TIME_AT_POINT"
    },
    {
      "name": "Light Time (s)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "LIGHT_TIME"
    }
  ],
  "rows": [
    [
      "2012-10-19 08:24:00.000000 UTC",
      234.00550655,
      -77.32612213,
      67.42916937,
      255.50851089,
      967644.15493281,
      4.49798357e-15,
      0.99611862,
      0.99611862,
      "2012-10-19 08:23:56.772287 UTC",
      3.22771347
    ]
  ]
}

SUB_OBSERVER_POINT

Calculate the sub-observer point on a target as seen from an observer.

Standard parameters:

Additional parameters required:

NameDescription
targetThe target body name or ID
targetFrameThe target body-fixed reference frame name
observerThe observing body name or ID
subPointTypeThe method of finding the sub-observer point, as in the SPICE subpnt() API call. One of:
  • Near point: ellipsoid
  • Intercept: ellipsoid
  • NADIR/DSK/UNPRIORITIZED
  • INTERCEPT/DSK/UNPRIORITIZED
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S
stateRepresentationOne of:
  • RECTANGULAR
  • RA_DEC
  • LATITUDINAL (planetocentric)
  • PLANETODETIC
  • PLANETOGRAPHIC
  • CYLINDRICAL
  • SPHERICAL

Example SUB_OBSERVER_POINT Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "times": [ 
    "2012-10-19T08:24:00.000"
  ],
  "timeStep": 1,
  "timeStepUnits": "SECONDS",

  "calculationType": "SUB_OBSERVER_POINT",
  "target": "ENCELADUS",
  "targetFrame": "IAU_ENCELADUS",
  "observer": "CASSINI",
  "subPointType": "Near point: ellipsoid",
  "aberrationCorrection": "CN+S",
  "stateRepresentation": "RECTANGULAR"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "bcad1026-3535-4ec8-a8fe-3fe45d5d6e6f",
  "columns": [
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "X (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "X"
    },
    {
      "name": "Y (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "Y"
    },
    {
      "name": "Z (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "Z"
    },
    {
      "name": "Sub-Point Radius (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "SUB_POINT_RADIUS"
    },
    {
      "name": "Observer Distance (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "OBSERVER_ALTITUDE"
    },
    {
      "name": "Incidence Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "INCIDENCE_ANGLE"
    },
    {
      "name": "Emission Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "EMISSION_ANGLE"
    },
    {
      "name": "Phase Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "PHASE_ANGLE"
    },
    {
      "name": "Time at Point",
      "type": "DATE",
      "units": "",
      "outputID": "TIME_AT_POINT"
    },
    {
      "name": "Light Time (s)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "LIGHT_TIME"
    }
  ],
  "rows": [
    [
      "2012-10-19 08:24:00.000000 UTC",
      232.5831733,
      -81.40386728,
      67.35505213,
      255.45689491,
      967644.11734179,
      0.99586304,
      1.66981544e-12,
      0.99586304,
      "2012-10-19 08:23:56.772287 UTC",
      3.22771334
    ]
  ]
}

SURFACE_INTERCEPT_POINT

Calculate the intercept point of a vector or vectors on a target as seen from an observer.

Standard parameters:

Additional parameters required:

NameDescription
targetThe target body name or ID
shape1The shape to use for the target body, One of:
  • ELLIPSOID
  • DSK
targetFrameThe target body-fixed reference frame name
observerThe observing body name or ID
interceptVectorTypeType of vector to be used as the ray direction: the instrument boresight vector, the instrument field-of-view boundary vectors, an axis of the specified reference frame, a vector in the reference frame of the specified instrument, a vector in the specified reference frame. One of:
  • INSTRUMENT_BORESIGHT
  • INSTRUMENT_FOV_BOUNDARY_VECTORS
  • REFERENCE_FRAME_AXIS
  • VECTOR_IN_INSTRUMENT_FOV
  • VECTOR_IN_REFERENCE_FRAME
interceptInstrumentThe instrument name or ID. Required only if interceptVectorType is INSTRUMENT_BORESIGHT, INSTRUMENT_FOV_BOUNDARY_VECTORS, or VECTOR_IN_INSTRUMENT_FOV.
interceptFrameThe vector's reference frame name. Required only if interceptVectorType is REFERENCE_FRAME_AXIS or VECTOR_IN_REFERENCE_FRAME.
interceptFrameAxisThe intercept frame axis. Required only if interceptVectorType is REFERENCE_FRAME_AXIS. One of:
  • X
  • Y
  • Z
interceptVectorXThe X intercept vector coordinate. If interceptVectorType is VECTOR_IN_INSTRUMENT_FOV or VECTOR_IN_REFERENCE_FRAME, then either all three of interceptVectorX, interceptVectorY, and interceptVectorZ must be provided, or both interceptVectorRA and interceptVectorDec.
interceptVectorYThe Y intercept vector coordinate.
interceptVectorZThe Z intercept vector coordinate.
interceptVectorRAThe right ascension intercept vector coordinate.
interceptVectorDecThe declination intercept vector coordinate.
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S
stateRepresentationOne of:
  • RECTANGULAR
  • RA_DEC
  • LATITUDINAL (planetocentric)
  • PLANETODETIC
  • PLANETOGRAPHIC
  • CYLINDRICAL
  • SPHERICAL

Example SURFACE_INTERCEPT_POINT Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "times": [ 
    "2012-10-14T00:00:00"
  ],
  "timeStep": 1,
  "timeStepUnits": "SECONDS",

  "calculationType": "SURFACE_INTERCEPT_POINT",
  "target": "SATURN",
  "shape1": "ELLIPSOID",
  "targetFrame": "IAU_SATURN",
  "observer": "CASSINI",
  "interceptVectorType": "INSTRUMENT_BORESIGHT",
  "interceptInstrument": "CASSINI_ISS_NAC",
  "interceptFrame": "",
  "interceptFrameAxis": "",
  "interceptVectorX": "",
  "interceptVectorY": "",
  "interceptVectorZ": "",
  "interceptVectorRA": "",
  "interceptVectorDec": "",
  "aberrationCorrection": "NONE",
  "stateRepresentation": "LATITUDINAL"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "9575c09e-6634-4765-8264-21e565a479d6",
  "columns": [
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Longitude (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "LONGITUDE"
    },
    {
      "name": "Latitude (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "LATITUDE"
    },
    {
      "name": "Intercept Radius (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "INTERCEPT_RADIUS"
    },
    {
      "name": "Observer Distance (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "OBSERVER_ALTITUDE"
    },
    {
      "name": "Incidence Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "INCIDENCE_ANGLE"
    },
    {
      "name": "Emission Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "EMISSION_ANGLE"
    },
    {
      "name": "Phase Angle (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "PHASE_ANGLE"
    },
    {
      "name": "Time at Point",
      "type": "DATE",
      "units": "",
      "outputID": "TIME_AT_POINT"
    },
    {
      "name": "Light Time (s)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "LIGHT_TIME"
    }
  ],
  "rows": [
    [
      "2012-10-14 00:00:00.000000 UTC",
      98.7675609,
      -38.69027976,
      57739.95803153,
      1831047.67987589,
      123.05323675,
      5.8567773,
      123.77530312,
      "2012-10-14 00:00:00.000000 UTC",
      6.10771763
    ]
  ]
}

OSCULATING_ELEMENTS

Calculate the osculating elements of the orbit of a target body around a central body. The orbit may be elliptical, parabolic, or hyperbolic.

Standard parameters:

Additional parameters required:

NameDescription
orbitingBodyThe SPICE body name or ID for the orbiting body.
centerBodyThe SPICE body name or ID for the body that is the center of motion.
referenceFrameThe reference frame name.

Example OSCULATING_ELEMENTS Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 1
    },
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "times": [ 
    "2012-10-19T08:24:00.000"
  ],
  "timeStep": 1,
  "timeStepUnits": "SECONDS",

  "calculationType": "OSCULATING_ELEMENTS",
  "orbitingBody": "CASSINI",
  "centerBody": "SATURN",
  "referenceFrame": "J2000"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "178cf91a-f59a-442d-b44f-6b2bb3e213ee",
  "columns": [
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Perifocal distance (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "PERIFOCAL_DISTANCE"
    },
    {
      "name": "Eccentricity",
      "type": "NUMBER",
      "units": "",
      "outputID": "ECCENTRICITY"
    },
    {
      "name": "Inclination (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "INCLINATION"
    },
    {
      "name": "Ascending node longitude (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "ASCENDING_NODE_LONGITUDE"
    },
    {
      "name": "Argument of periapse (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "ARGUMENT_OF_PERIAPSE"
    },
    {
      "name": "Mean anomaly (deg)",
      "type": "NUMBER",
      "units": "deg",
      "outputID": "MEAN_ANOMALY_AT_EPOCH"
    },
    {
      "name": "Orbiting body range (km)",
      "type": "NUMBER",
      "units": "km",
      "outputID": "ORBITING_BODY_RANGE"
    },
    {
      "name": "Orbiting body speed (km/s)",
      "type": "NUMBER",
      "units": "km/s",
      "outputID": "ORBITING_BODY_SPEED"
    },
    {
      "name": "Period (s)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "PERIOD"
    },
    {
      "name": "Central Body GM (km^3/s^2)",
      "type": "NUMBER",
      "units": "km^3/s^2",
      "outputID": "CENTER_BODY_GM"
    }
  ],
  "rows": [
    [
      "2012-10-19 08:24:00.000000 UTC",
      474789.03917271,
      0.70348463,
      38.18727034,
      223.98123058,
      71.59474487,
      14.65461204,
      753794.65101401,
      8.77222231,
      2067101.2236748,
      37931207.49865224
    ]
  ]
}

GF_COORDINATE_SEARCH

Find time intervals when a coordinate of an observer-target position vector satisfies a condition.

Standard parameters:

GF standard parameters:

Additional parameters required:

NameDescription
targetThe target body name or ID
observerThe observing body name or ID
referenceFrameThe reference frame name
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S
conditionThe coordinate condition to search for. See specifying conditions for more information.

Example GF_COORDINATE_SEARCH Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "intervals": [
    {
      "startTime": "2012-10-19T07:00:00",
      "endTime": "2012-10-19T09:00:00"
    }
  ],
  "timeStep": 1,
  "timeStepUnits": "MINUTES",

  "calculationType": "GF_COORDINATE_SEARCH",
  "target": "ENCELADUS",
  "observer": "CASSINI",
  "referenceFrame": "CASSINI_ISS_NAC",
  "aberrationCorrection": "NONE",

  "outputDurationUnits": "SECONDS",
  "shouldComplementWindow": false,
  "intervalAdjustment": "EXPAND_INTERVALS",
  "intervalAdjustmentAmount": 1.0,
  "intervalAdjustmentUnits": "SECONDS",
  "intervalFiltering": "FILTER_INTERVALS",
  "intervalFilteringThreshold": 1.0,
  "intervalFilteringThresholdUnits": "MINUTES",

  "condition": {
    "coordinateSystem": "SPHERICAL",
    "coordinate": "COLATITUDE",
    "relationalCondition": "<",
    "referenceValue": 0.25,
    "upperLimit": "",
    "adjustmentValue": ""
  }

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "f3327213-79c5-43c9-aa4e-e8cc6844c8ac",
  "columns": [
    {
      "name": "Start Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Stop Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Duration (secs)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "DURATION"
    }
  ],
  "rows": [
    [
      "2012-10-19 07:42:59.633339 UTC",
      "2012-10-19 08:39:33.749463 UTC",
      3394.11612415
    ]
  ]
}

GF_ANGULAR_SEPARATION_SEARCH

Find time intervals when the angle between two bodies, as seen by an observer, satisfies a condition.

Standard parameters:

GF standard parameters:

Additional parameters required:

NameDescription
target1The first target body name or ID
shape1The shape type to use for the first target. One of:
  • POINT
  • SPHERE
target2The second target body name or ID
shape2The shape type to use for the second target. One of:
  • POINT
  • SPHERE
observerThe observing body name or ID
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S
conditionThe condition to search for. See specifying conditions for more information.

Example GF_ANGULAR_SEPARATION_SEARCH Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "intervals": [
    {
      "startTime": "2012-10-19T07:00:00",
      "endTime": "2012-10-19T09:00:00"
    }
  ],
  "timeStep": 1,
  "timeStepUnits": "MINUTES",

  "calculationType": "GF_ANGULAR_SEPARATION_SEARCH",
  "target1": "SATURN",
  "shape1": "POINT",
  "target2": "ENCELADUS",
  "shape2": "POINT",
  "observer": "CASSINI",
  "aberrationCorrection": "NONE",

  "outputDurationUnits": "SECONDS",
  "shouldComplementWindow": false,
  "intervalAdjustment": "EXPAND_INTERVALS",
  "intervalAdjustmentAmount": 1.0,
  "intervalAdjustmentUnits": "SECONDS",
  "intervalFiltering": "FILTER_INTERVALS",
  "intervalFilteringThreshold": 1.0,
  "intervalFilteringThresholdUnits": "MINUTES",

  "condition": {
    "relationalCondition": ">",
    "referenceValue": 7.0,
    "upperLimit": "",
    "adjustmentValue": ""
  }

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "c1713f67-5d1b-4ffb-b691-52e9a3c77596",
  "columns": [
    {
      "name": "Start Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Stop Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Duration (secs)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "DURATION"
    }
  ],
  "rows": [
    [
      "2012-10-19 08:17:41.782732 UTC",
      "2012-10-19 09:00:01.000000 UTC",
      2539.21726751
    ]
  ]
}

GF_DISTANCE_SEARCH

Find time intervals when the distance between a target and observer satisfies a condition.

Standard parameters:

GF standard parameters:

Additional parameters required:

NameDescription
targetThe target body name or ID
observerThe observing body name or ID
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S
conditionThe condition to search for. See specifying conditions for more information.

Example GF_DISTANCE_SEARCH Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "intervals": [
    {
      "startTime": "2012-10-19T07:00:00",
      "endTime": "2012-10-19T09:00:00"
    }
  ],
  "timeStep": 1,
  "timeStepUnits": "MINUTES",

  "calculationType": "GF_DISTANCE_SEARCH",
  "target": "ENCELADUS",
  "observer": "CASSINI",
  "aberrationCorrection": "NONE",

  "outputDurationUnits": "SECONDS",
  "shouldComplementWindow": false,
  "intervalAdjustment": "EXPAND_INTERVALS",
  "intervalAdjustmentAmount": 1.0,
  "intervalAdjustmentUnits": "SECONDS",
  "intervalFiltering": "FILTER_INTERVALS",
  "intervalFilteringThreshold": 1.0,
  "intervalFilteringThresholdUnits": "MINUTES",

  "condition": {
    "relationalCondition": "<",
    "referenceValue": 960000.0,
    "upperLimit": "",
    "adjustmentValue": ""
  }

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "a7f661f7-1792-42ba-bd13-c9437a2032e0",
  "columns": [
    {
      "name": "Start Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Stop Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Duration (secs)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "DURATION"
    }
  ],
  "rows": [
    [
      "2012-10-19 06:59:59.000000 UTC",
      "2012-10-19 07:35:59.695642 UTC",
      2160.6956417
    ]
  ]
}

GF_SUB_POINT_SEARCH

Find time intervals when a coordinate of the sub-observer point on a target satisfies a condition.

Standard parameters:

GF standard parameters:

Additional parameters required:

NameDescription
targetThe target body name or ID
targetFrameThe target body-fixed frame name
observerThe observing body name or ID
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S
subPointTypeThe method of finding the sub-observer point, as in the SPICE gfsubc() API call. One of:
  • Near point: ellipsoid
  • Intercept: ellipsoid
conditionThe coordinate condition to search for. See specifying conditions for more information.

Example GF_SUB_POINT_SEARCH Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "intervals": [
    {
      "startTime": "2012-10-19T07:00:00",
      "endTime": "2012-10-19T09:00:00"
    }
  ],
  "timeStep": 1,
  "timeStepUnits": "MINUTES",

  "calculationType": "GF_SUB_POINT_SEARCH",
  "target": "ENCELADUS",
  "targetFrame": "IAU_ENCELADUS",
  "observer": "CASSINI",
  "aberrationCorrection": "NONE",
  "subPointType": "Near point: ellipsoid",

  "outputDurationUnits": "SECONDS",
  "shouldComplementWindow": false,
  "intervalAdjustment": "EXPAND_INTERVALS",
  "intervalAdjustmentAmount": 1.0,
  "intervalAdjustmentUnits": "SECONDS",
  "intervalFiltering": "FILTER_INTERVALS",
  "intervalFilteringThreshold": 1.0,
  "intervalFilteringThresholdUnits": "MINUTES",

  "condition": {
    "coordinateSystem": "LATITUDINAL",
    "coordinate": "LATITUDE",
    "relationalCondition": "<",
    "referenceValue": 15.0,
    "upperLimit": "",
    "adjustmentValue": ""
  }

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "26cb3e18-0f85-4cec-aaa4-3c2187469260",
  "columns": [
    {
      "name": "Start Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Stop Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Duration (secs)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "DURATION"
    }
  ],
  "rows": [
    [
      "2012-10-19 08:58:13.550321 UTC",
      "2012-10-19 09:00:01.000000 UTC",
      107.44967914
    ]
  ]
}

GF_OCCULTATION_SEARCH

Find time intervals when an observer sees one target occulted by, or in transit across, another.

Standard parameters:

GF standard parameters:

Additional parameters required:

NameDescription
occultationTypeType of occultation to be considered in the calculation. Transits are considered to be a type of occultation. One of:
  • ANY
  • FULL
  • ANNULAR
  • PARTIAL
target1The SPICE numeric name or ID of the front body.
shape1The geometric model used to represent the shape of the front body. One of:
  • POINT
  • ELLIPSOID
  • DSK
frame1The front body body-fixed frame name. Required if shape1 is ELLIPSOID, and ignored otherwise.
target2The SPICE numeric name or ID of the back body.
shape2The geometric model used to represent the shape of the back body. One of:
  • POINT
  • ELLIPSOID
  • DSK
frame2The back body body-fixed frame name. Required if shape1 is ELLIPSOID, and ignored otherwise.
observerThe observing body name or ID
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • CN
  • XLT
  • XCN

Example GF_OCCULTATION_SEARCH Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 1
    },
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "intervals": [
    {
      "startTime": "2017-08-21 15:00:00",
      "endTime": "2017-08-21 23:00:00"
    },
    {
      "startTime": "2017-08-22 15:00:00",
      "endTime": "2017-08-22 23:00:00"
    }
  ],
  "timeStep": 1,
  "timeStepUnits": "HOURS",

  "calculationType": "GF_OCCULTATION_SEARCH",
  "occultationType": "ANY",
  "target1": "MOON",
  "shape1": "ELLIPSOID",
  "frame1": "IAU_MOON",
  "target2": "EARTH",
  "shape2": "ELLIPSOID",
  "frame2": "IAU_EARTH",
  "observer": "SUN",
  "aberrationCorrection": "NONE",

  "outputDurationUnits": "SECONDS",
  "shouldComplementWindow": false,
  "intervalAdjustment": "EXPAND_INTERVALS",
  "intervalAdjustmentAmount": 1.0,
  "intervalAdjustmentUnits": "SECONDS",
  "intervalFiltering": "FILTER_INTERVALS",
  "intervalFilteringThreshold": 1.0,
  "intervalFilteringThresholdUnits": "MINUTES"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "093f1a8d-dbf0-4f5e-b826-79a1dc401339",
  "columns": [
    {
      "name": "Start Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Stop Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Duration (secs)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "DURATION"
    }
  ],
  "rows": [
    [
      "2017-08-21 16:17:50.138140 UTC",
      "2017-08-21 20:34:30.965976 UTC",
      15400.82783592
    ]
  ]
}

GF_SURFACE_INTERCEPT_POINT_SEARCH

Find time intervals when a coordinate of a surface intercept vector satisfies a condition.

Standard parameters:

GF standard parameters:

Additional parameters required:

NameDescription
targetThe target body name or ID
targetFrameThe target body-fixed reference frame name
observerThe observing body name or ID
interceptVectorTypeType of vector to be used as the ray direction: the instrument boresight vector, an axis of the specified reference frame, a vector in the reference frame of the specified instrument, a vector in the specified reference frame. One of:
  • INSTRUMENT_BORESIGHT
  • REFERENCE_FRAME_AXIS
  • VECTOR_IN_INSTRUMENT_FOV
  • VECTOR_IN_REFERENCE_FRAME
interceptInstrumentThe instrument name or ID. Required only if interceptVectorType is INSTRUMENT_BORESIGHT, or VECTOR_IN_INSTRUMENT_FOV.
interceptFrameThe vector's reference frame name. Required only if interceptVectorType is REFERENCE_FRAME_AXIS or VECTOR_IN_REFERENCE_FRAME.
interceptFrameAxisThe intercept frame axis. Required only if interceptVectorType is REFERENCE_FRAME_AXIS. One of:
  • X
  • Y
  • Z
interceptVectorXThe X intercept vector coordinate. If interceptVectorType is VECTOR_IN_INSTRUMENT_FOV or VECTOR_IN_REFERENCE_FRAME, then either all three of interceptVectorX, interceptVectorY, and interceptVectorZ must be provided, or both interceptVectorRA and interceptVectorDec.
interceptVectorYThe Y intercept vector coordinate.
interceptVectorZThe Z intercept vector coordinate.
interceptVectorRAThe right ascension intercept vector coordinate.
interceptVectorDecThe declination intercept vector coordinate.
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S
conditionThe coordinate condition to search for. See specifying conditions for more information.

Example GF_SURFACE_INTERCEPT_POINT_SEARCH Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "intervals": [
    {
      "startTime": "2012-10-13T18:00:00",
      "endTime": "2012-10-14T06:00:00"
    }
  ],
  "timeStep": 1,
  "timeStepUnits": "MINUTES",

  "calculationType": "GF_SURFACE_INTERCEPT_POINT_SEARCH",
  "target": "SATURN",
  "targetFrame": "IAU_SATURN",
  "observer": "CASSINI",
  "interceptVectorType": "INSTRUMENT_BORESIGHT",
  "interceptInstrument": "CASSINI_ISS_NAC",
  "interceptFrame": "CASSINI_ISS_NAC",
  "interceptFrameAxis": "Z",
  "interceptVectorX": 0.0,
  "interceptVectorY": 0.0,
  "interceptVectorZ": 1.0,
  "interceptVectorRA": 0.0,
  "interceptVectorDec": 90.0,
  "aberrationCorrection": "NONE",

  "outputDurationUnits": "SECONDS",
  "shouldComplementWindow": false,
  "intervalAdjustment": "EXPAND_INTERVALS",
  "intervalAdjustmentAmount": 1.0,
  "intervalAdjustmentUnits": "SECONDS",
  "intervalFiltering": "FILTER_INTERVALS",
  "intervalFilteringThreshold": 1.0,
  "intervalFilteringThresholdUnits": "MINUTES",

  "condition": {
    "coordinateSystem": "PLANETOGRAPHIC",
    "coordinate": "LONGITUDE",
    "relationalCondition": "RANGE",
    "referenceValue": 150.0,
    "upperLimit": 180.0,
    "adjustmentValue": ""
  }

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "cd0ba9b2-38dd-438e-9947-624828c836e8",
  "columns": [
    {
      "name": "Start Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Stop Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Duration (secs)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "DURATION"
    }
  ],
  "rows": [
    [
      "2012-10-13 20:40:08.098400 UTC",
      "2012-10-13 21:34:05.267972 UTC",
      3237.16957152
    ]
  ]
}

GF_TARGET_IN_INSTRUMENT_FOV_SEARCH

Find time intervals when a target intersects the space bounded by the field-of-view of an instrument.

Standard parameters:

GF standard parameters:

Additional parameters required:

NameDescription
instrumentThe SPICE numeric name or ID of the instrument.
targetThe SPICE numeric name or ID of the target.
shapeGeometric model used to represent the shape of the body. One of:
  • POINT
  • ELLIPSOID
targetFrameThe target body-fixed frame name.
observerThe SPICE numeric name or ID of the observing body.
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • LT
  • LT+S
  • CN
  • CN+S
  • XLT
  • XLT+S
  • XCN
  • XCN+S

Example GF_TARGET_IN_INSTRUMENT_FOV_SEARCH Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "intervals": [
    {
      "startTime": "2012-10-19T07:00:00",
      "endTime": "2012-10-19T09:00:00"
    }
  ],
  "timeStep": 1,
  "timeStepUnits": "MINUTES",

  "calculationType": "GF_TARGET_IN_INSTRUMENT_FOV_SEARCH",
  "instrument": "CASSINI_ISS_NAC",
  "target": "ENCELADUS",
  "shape": "ELLIPSOID",
  "targetFrame": "IAU_ENCELADUS",
  "observer": "CASSINI",
  "aberrationCorrection": "CN+S",

  "outputDurationUnits": "SECONDS",
  "shouldComplementWindow": false,
  "intervalAdjustment": "EXPAND_INTERVALS",
  "intervalAdjustmentAmount": 1.0,
  "intervalAdjustmentUnits": "SECONDS",
  "intervalFiltering": "FILTER_INTERVALS",
  "intervalFilteringThreshold": 1.0,
  "intervalFilteringThresholdUnits": "MINUTES"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "7a9d0995-9f88-4b17-a810-faf3458d8d82",
  "columns": [
    {
      "name": "Start Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Stop Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Duration (secs)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "DURATION"
    }
  ],
  "rows": [
    [
      "2012-10-19 07:43:02.743464 UTC",
      "2012-10-19 08:39:30.177172 UTC",
      3387.43370879
    ]
  ]
}

GF_RAY_IN_FOV_SEARCH

Find time intervals when a specified ray is contained in the space bounded by an instrument's field-of-view.

Standard parameters:

GF standard parameters:

Additional parameters required:

NameDescription
instrumentThe SPICE numeric name or ID of the instrument.
observerThe SPICE numeric name or ID of the observing body.
interceptVectorTypeType of vector to be used as the ray direction: the instrument boresight vector, an axis of the specified reference frame, a vector in the reference frame of the specified instrument, a vector in the specified reference frame. One of:
  • INSTRUMENT_BORESIGHT
  • REFERENCE_FRAME_AXIS
  • VECTOR_IN_INSTRUMENT_FOV
  • VECTOR_IN_REFERENCE_FRAME
interceptInstrumentThe instrument name or ID. Required only if interceptVectorType is INSTRUMENT_BORESIGHT, or VECTOR_IN_INSTRUMENT_FOV.
interceptFrameThe vector's reference frame name. Required only if interceptVectorType is REFERENCE_FRAME_AXIS or VECTOR_IN_REFERENCE_FRAME.
interceptFrameAxisThe intercept frame axis. Required only if interceptVectorType is REFERENCE_FRAME_AXIS. One of:
  • X
  • Y
  • Z
interceptVectorXThe X intercept vector coordinate. If interceptVectorType is VECTOR_IN_INSTRUMENT_FOV or VECTOR_IN_REFERENCE_FRAME, then either all three of interceptVectorX, interceptVectorY, and interceptVectorZ must be provided, or both interceptVectorRA and interceptVectorDec.
interceptVectorYThe Y intercept vector coordinate.
interceptVectorZThe Z intercept vector coordinate.
interceptVectorRAThe right ascension intercept vector coordinate.
interceptVectorDecThe declination intercept vector coordinate.
aberrationCorrectionThe SPICE aberration correction string. One of:
  • NONE
  • S (currently does not work due to a bug)
  • XS (currently does not work due to a bug)

Example GF_RAY_IN_FOV_SEARCH Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "UTC",
  "timeFormat": "CALENDAR",
  "intervals": [
    {
      "startTime": "2012-10-19T07:00:00",
      "endTime": "2012-10-19T09:00:00"
    }
  ],
  "timeStep": 1,
  "timeStepUnits": "MINUTES",

  "calculationType": "GF_RAY_IN_FOV_SEARCH",
  "instrument": "CASSINI_ISS_NAC",
  "observer": "CASSINI",
  "interceptVectorType": "VECTOR_IN_REFERENCE_FRAME",
  "interceptInstrument": "",
  "interceptFrame": "J2000",
  "interceptFrameAxis": "",
  "interceptVectorRA": 208.0,
  "interceptVectorDec": -10.0,
  "aberrationCorrection": "NONE",

  "outputDurationUnits": "SECONDS",
  "shouldComplementWindow": false,
  "intervalAdjustment": "EXPAND_INTERVALS",
  "intervalAdjustmentAmount": 1.0,
  "intervalAdjustmentUnits": "SECONDS",
  "intervalFiltering": "FILTER_INTERVALS",
  "intervalFilteringThreshold": 1.0,
  "intervalFilteringThresholdUnits": "MINUTES"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "f9546e47-9666-4f84-9ae3-d2baddcc761e",
  "columns": [
    {
      "name": "Start Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Stop Time",
      "type": "DATE",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "Duration (secs)",
      "type": "NUMBER",
      "units": "s",
      "outputID": "DURATION"
    }
  ],
  "rows": [
    [
      "2012-10-19 07:56:33.919960 UTC",
      "2012-10-19 08:00:57.704818 UTC",
      263.78485787
    ]
  ]
}

TIME_CONVERSION

Convert times from one time system or format to another.

Standard parameters:

Additional parameters required:

NameDescription
outputTimeSystemThe time system for the result times. One of:
  • TDB
  • TDT
  • UTC
  • SPACECRAFT_CLOCK
If SPACECRAFT_CLOCK is selected, then outputSclkId must also be provided.
outputTimeFormatOne of:
  • CALENDAR_YMD
  • CALENDAR_DOY
  • JULIAN
  • SECONDS_PAST_J2000
  • SPACECRAFT_CLOCK_STRING
  • SPACECRAFT_CLOCK_TICKS
  • CUSTOM

CALENDAR_YMD, CALENDAR_DOY, JULIAN, SECONDS_PAST_J2000, and CUSTOM are applicable only when outputTimeSystem is TDB, TDT, or UTC.

SPACECRAFT_CLOCK_STRING and SPACECRAFT_CLOCK_TICKS are applicable only when outputTimeSystem is SPACECRAFT_CLOCK.

If CUSTOM is selected, then outputTimeCustomFormat must also be provided.

outputSclkIdThe output SCLK ID. Only used if outputTimeSystem is SPACECRAFT_CLOCK.
outputTimeCustomFormatA SPICE timout() format string. Only used if outputTimeFormat is CUSTOM.

Example TIME_CONVERSION Calculation

Example Post Data
{

  "kernels": [
    {
      "type": "KERNEL_SET",
      "id": 5
    }
  ],

  "timeSystem": "SPACECRAFT_CLOCK",
  "timeFormat": "SPACECRAFT_CLOCK_STRING",
  "sclkId": -82,
  "times": [ 
    "1/1729329441.042"
  ],
  "timeStep": 1,
  "timeStepUnits": "SECONDS",

  "calculationType": "TIME_CONVERSION",
  "outputTimeSystem": "UTC",
  "outputTimeFormat": "CALENDAR",
  "outputSclkId": "",
  "outputTimeCustomFormat": "YYYY Month DD HR:MN"

}
Example Results
{
  "status": "OK",
  "message": "The operation was successful.",
  "calculationId": "5218d94d-1e15-4c07-98c9-adeb26249336",
  "columns": [
    {
      "name": "SCLK string (ID=-82)",
      "type": "NUMBER",
      "units": "",
      "outputID": "DATE"
    },
    {
      "name": "UTC calendar date",
      "type": "DATE",
      "units": "",
      "outputID": "DATE2"
    }
  ],
  "rows": [
    [
      "1/1729329441.042",
      "2012-10-19 08:24:03.001344 UTC"
    ]
  ]
}

References

JSON

RESTful Web Services