Command line interface

Some entry points are available through the command line interface.

Kernel sets

List all the available kernel sets available on the WebGeoCalc API:

$ wgc-kernels --all

 - Solar System Kernels: (id: 1)
 - Latest Leapseconds Kernel: (id: 2)
 ...
 - Cassini Huygens: (id: 5)
 ...
 - SPICE Class -- Binary PCK Lesson Kernels (Earth): (id: 39)

Search a kernel by name or id:

$ wgc-kernels --kernel 'Cassini Huygens'

 - Cassini Huygens: (id: 5)

$ wgc-kernels --kernel Cassini

Too many kernel sets contains 'Cassini' in their names:
 - Cassini Huygens
 - SPICE Class -- CASSINI Remote Sensing Lesson Kernels

Search multiple kernels at once (name and id can be mixed):

$ wgc-kernels --kernel 5 Solar

 - Cassini Huygens: (id: 5)
 - Solar System Kernels: (id: 1)

The query can also be performed on the ESA WGC instance wiht the api keyword:

$ wgc-kernels --api esa --kernel 'OPS  --     Rosetta'

 - OPS  --     Rosetta               -- Operational: (id: 6)

3-rd party WGC are also supported is the url is provided in the api keyword.

Bodies

List all the bodies for a specific kernel set (by id or by name):

$ wgc-bodies 'Cassini Huygens'

 - CASSINI: (id: -82)
 - CAS: (id: -82)
...
 - SOLAR SYSTEM BARYCENTER: (id: 0)

Search for a specific body in a kernel set:

$ wgc-bodies 'Cassini Huygens' --name Titan

 - TITAN: (id: 606)

$ wgc-bodies --api esa 'OPS  --     Rosetta' --name 67P

 - 67P/CHURYUMOV-GERASIMENKO (1969 R1): (id: 1000012)

Frames

List and search frames for a specific kernel set:

$ wgc-frames 'Cassini Huygens' --name Titan

 - CASSINI_MIMI_PROF_TITAN: (id: -82960)
 - CASSINI_TITAN_CENTERED: (id: -82953)
 - CASSINI_SZM_TITAN: (id: -82926)
 - IAU_TITAN: (id: 10044)
 - IAU_TITANIA: (id: 10058)

$ wgc-frames --api esa 'OPS  --     Rosetta' --name '67P/C'

 - 67P/C-G_CK: (id: -1000012000)
 - 67P/C-G_SPIN_SUN: (id: -226934)
 - 67P/C-G_SUN_SPIN: (id: -226933)
 - 67P/C-G_CSO: (id: -226912)
 - 67P/C-G_CSEQ: (id: -226910)
 - 67P/C-G_FIXED: (id: 1000012)

Instruments

List and search instruments for a specific kernel set:

$ wgc-instruments 'Cassini Huygens' --name ISS

 - CASSINI_ISS_WAC_RAD: (id: -82369)
 - CASSINI_ISS_NAC_RAD: (id: -82368)
 - CASSINI_ISS_WAC: (id: -82361)
 - CASSINI_ISS_NAC: (id: -82360)

$ wgc-instruments --api esa 'OPS  --     Rosetta' --name 'NAVCAM'

 - ROS_NAVCAM-B: (id: -226180)
 - ROS_NAVCAM-A: (id: -226170)

Calculations

The command line can submit generic and specific calculation directly with the command line interface:

$ wgc-calculation --help
usage: wgc-calculation [-h] [--quiet] [--payload] [--dry-run]
                    [--KEY [VALUE [VALUE ...]]]

Submit generic calculation to the WebGeoCalc API

optional arguments:
-h, --help            show this help message and exit
--quiet, -q           Disable verbose output status.
--payload, -p         Display payload before the calculation results.
--dry-run, -d         Dry run. Show only the payload.
--KEY [VALUE [VALUE ...]]
                        Key parameter and its value(s).

Example:

$ wgc-calculation --payload \
                  --kernels 1 \
                  --times 2012-10-19T08:24:00.000 \
                  --calculation_type STATE_VECTOR \
                  --target CASSINI \
                  --observer SATURN \
                  --reference_frame IAU_SATURN \
                  --aberration_correction NONE \
                  --state_representation PLANETOGRAPHIC

API: https://wgc2.jpl.nasa.gov:8443/webgeocalc/api
Payload:
{
  kernels: [{'type': 'KERNEL_SET', 'id': 5}],
  times: ['2012-10-19T08:24:00.000'],
  calculationType: STATE_VECTOR,
  target: CASSINI,
  observer: SATURN,
  referenceFrame: IAU_SATURN,
  aberrationCorrection: NONE,
  stateRepresentation: PLANETOGRAPHIC,
  timeSystem: UTC,
  timeFormat: CALENDAR,
}

API status:
[Calculation submit] Status: COMPLETE (id: 37d10124-a65b-44fa-9489-6c0d28cf25d2)

Results:
DATE:
> 2012-10-19 08:24:00.000000 UTC
LONGITUDE:
> 46.18900522
LATITUDE:
> 21.26337134
ALTITUDE:
> 694259.8921163
D_LONGITUDE_DT:
> 0.00888655
D_LATITUDE_DT:
> -0.00031533
D_ALTITUDE_DT:
> 4.77080305
SPEED:
> 109.34997994
TIME_AT_TARGET:
> 2012-10-19 08:24:00.000000 UTC
LIGHT_TIME:
> 2.51438831

The key parameter can be in underscore_case or camelCase. Multiple values can be inserted after the key (with <space> or , separator), as well as duplicated keys. Use single (') or double (") quotes if the value contains spaces. Assignation with = sign can also be used:

$ wgc-state-vector --dry-run \
                   --kernels 1 5 \
                   --times 2012-10-19T09:00:00 \
                   --times '2012-10-19T10:00:00' \
                   --target=CASSINI \
                   --observer = SATURN \
                   --referenceFrame "IAU_SATURN"

API: https://wgc2.jpl.nasa.gov:8443/webgeocalc/api
Payload:
{
  kernels: [{'type': 'KERNEL_SET', 'id': 1}, {'type': 'KERNEL_SET', 'id': 5}],
  times: ['2012-10-19T09:00:00', '2012-10-19T10:00:00'],
  target: CASSINI,
  observer: SATURN,
  referenceFrame: IAU_SATURN,
  calculationType: STATE_VECTOR,
  aberrationCorrection: CN,
  stateRepresentation: RECTANGULAR,
  timeSystem: UTC,
  timeFormat: CALENDAR,
}

Here is the list of all the calculation entry points available on the CLI:

  • wgc-calculation

  • wgc-state-vector

  • wgc-angular-separation

  • wgc-angular-size

  • wgc-frame-transformation

  • wgc-illumination-angles

  • wgc-subsolar-point

  • wgc-subobserver-point

  • wgc-surface-intercept-point

  • wgc-osculating-elements

  • wgc-time-conversion

All the calculation entry point accept an optional api attribute to submit the query to a custom endpoint. If WGC_URL global environment variable is defined, it will be used as the default endpoint. If it is not the case, the endpoint will fall back in JPL WGC endpoint.