Table of Contents
What's New in SPICE
Introduction
Version 67 --- January 2022
Summary
Acknowledgements
Environments
New Environments
Deprecated Environments
Complete List of Supported Environments
Scratch EK File Issue in Icy on PC/Windows
Optimization on PC Linux, Intel FORTRAN, 32bit
Need for Static System Libraries on Linux and OS-X
SPICELIB/CSPICE/Icy/Mice Additions and Updates
Zero-sized Generic Toolkit Version Identification File
Complete examples in Headers
Additional Sections in Icy and Mice Headers
New Switch Frames Class
New Dynamic Frame Family -- Product Frames
SCLK Subsystem Overhaul
Text PCK Extensions
Time System changes
CK Buffered Structure ID Limit
SPK Buffered Body ID Limit
New Tangent Point Routine
New Target Separation Routine
New TLE Evaluator Routine
New Azimuth and Elevation State Routine
New Azimuth and Elevation Conversion Routines
New Routine to Get FOV Parameters Using Instrument Name
Other New SPICELIB Interfaces
New CSPICE Wrapper Routines
New Icy Wrapper Routines and Global Parameter Scripts
New Mice Wrapper Routines and Global Parameter Scripts
NAIF IDs Document Update for Extended Asteroids ID Schema
Built-in NAIF ID Code/Name Definitions
Built-in Body-Fixed Frames
Updated Toolkit Application
MKDSK
Bug Fixes
SPICELIB -- DSKX02, DSKXSI
SPICELIB -- GETFOV
SPICELIB -- GFFOVE, GFRFOV, GFTFOV
SPICELIB -- SUBPNT
SPICELIB -- TIMOUT
SPICELIB -- TKFRAM
MKDSK
MSOPCK
Version 66 --- April 2017
Summary
Environments
New Environments
Deprecated Environments
Complete List of Supported Environments
Scratch EK File Issue in Icy on PC/Windows
Optimization on PC Linux, Intel FORTRAN, 32bit
Need for Static System Libraries on Linux and OS-X
SPICELIB/CSPICE/Icy/Mice Additions and Updates
The Digital Shape Kernel (DSK) Subsystem
DSK Loading and Run-time Binary Translation
High Level Routines Updated to Work with DSK Surfaces
New Limb Routine
New Terminator Routine
New Lon/Lat Grid to Surface Points Routine
New Illumination Routine with Visibility and Illumination Flags
New Surface Normal Routine
New DSK-Specific Surface Intercept Routines
New DSK Summary Routines
New Type 2 DSK Bulk Read Routines
New Surface Name/ID Mapping Routines
Status of the Alpha DSK Toolkit
New Alpha-DSK Backwards Compatibility Routines
New DSK Mid-Level, Low-Level, and Utility Routines
New DLA File Format and Routines
Other New SPICELIB Interfaces
Other New CSPICE Interfaces
Other New Icy and Mice Interfaces
SPK 10 Evaluator Update to Use Vallado Propagator
Text PCK-based Frames Performance Improvement
SPK Type 19, subtype 2
Built-in NAIF ID Code/Name Definitions
Built-in Body-Fixed Frames
New and Updated Toolkit Application
DSKBRIEF
MKDSK
DSKEXP
Bug Fixes
SPICELIB -- BODEUL, TISBOD
SPICELIB -- CKE05
SPICELIB -- KEEPER/UNLOAD
SPICELIB -- SUBPNT
SPICELIB -- XFMSTA
MKSPK
Version 65 --- July 2014
Summary
Environments
New Environments
Deprecated Environments
Complete List of Supported Environments
Scratch EK File Issue in Icy on PC/Windows
Optimization on PC Linux, Intel FORTRAN, 32bit
SPICELIB/CSPICE/Icy/Mice Additions and Updates
New Geometry Finder (GF) Routines
New SPK Constant Position/Velocity Observer/Target Routines
New Occultation and in FOV Condition Routines
New Illumination Angles Routines
New High-Level Frame Transformation Routine
New High-Level State Transformation Routine
Other New SPICELIB Interfaces
Other New CSPICE Interfaces
Other New Icy Interfaces
Other New Mice Interfaces
SPK Type 19
SPK Type 20
SPK Type 21
PCK Type 20
CK Type 6
SPKLTC
SPKW02, SPKW03, SPKW08, SPKW12
Speedup
Maximum Number of Loaded Kernels
Kernel Pool Double Precision Buffer Limit
CK Buffered Segment Limits
SPK Buffered Segment Limits
Built-in NAIF ID Code/Name Definitions
Built-in Body-Fixed Frames
Toolkit Applications Updates
BRIEF
CKBRIEF
FRMDIFF
MKSPK
MSOPCK
SPKDIFF
Bug Fixes
SPICELIB -- SPKBSR, CKBSR, PCKBSR
SPICELIB -- CKE05
SPICELIB -- CKMETA
SPICELIB -- DASA2L
SPICELIB -- CCIFRM
SPICELIB -- NEARPT
SPICELIB -- SPKEZ/SPKEZP
SPICELIB -- TIME CONVERSION
FRMDIFF
MKSPK
MSOPCK
Version 64 --- June 2010
Environments
New Environments
Complete List of Supported Environments
Dynamically Linked Executables
Lahey Memory Issue Related to File Opening/Closing
Scratch EK File Issue in Icy on PC/Windows
Geometry Finder (GF) Subsystem
SPICELIB High-Level GF APIs
CSPICE High-Level GF APIs
Icy and Mice High-Level GF APIs
SPICELIB/CSPICE/Icy/Mice
Kernel Pool Variable Name Length Check
CK Buffered Segment Limits
SPK Buffered Segment Limits
Kernel Pool Double Precision Buffer Limit
SCLK Coefficient Record Limit
CK writer quaternion magnitude check
New SPICELIB Interfaces
New CSPICE Interfaces
New Icy Interfaces
New Mice Interfaces
Built-in NAIF ID Code/Name Definitions
Documentation
Overwriting Input Arguments Not Allowed
Bug Fixes
Kernel Pool Watcher Deletion in TKFRAM
Frame Change in CKGP
ROTGET Dynamic Frame ID
ZZEKQCON Initialization Error
ZZEKRD03 Memory Violation Error
EK Strings Longer Than 1024 Characters
RETURN Mode Logic in Various Routines
Version 63 --- April 2009
Environments
New Environments
Complete List of Supported Environments
Lahey Memory Issue Related to File Opening/Closing
Scratch EK File Issue in Icy on PC/Windows
Geometry Finder (GF) Subsystem
SPICELIB High-Level GF APIs
CSPICE High-Level GF APIs
Icy and Mice High-Level GF APIs
SPICELIB/CSPICE/Icy/Mice
SURFPV/surfpv_c (SPICELIB/CSPICE only)
DVSEP/dvsep_c (SPICELIB/CSPICE only)
GETFOV
FURNSH
Improved Error Messages from PXFORM/SXFORM
Built-in NAIF ID Code/Name Definitions
Mice (MATLAB interface to CSPICE) Only
New Interfaces
New and Updated Applications
FRMDIFF
CKBRIEF
Documentation
Language Specific Required Reading Documents
CKBRIEF User's Guide
Bug Fixes
SINCPT, SRFXPT
POOL Watchers
Frame subsystem
Error handling
Non-printing Character Detection in Time System
MKSPK
CKBRIEF
Version 62 --- March 2008
Environments
New Environments
Complete List of Supported Environments
Use of -m32 Option
Lahey Memory Issue Related to File Opening/Closing
Scratch EK File Issue in Icy on PC/Windows
Mice
SPICELIB/CSPICE/Icy/Mice
New ``Surface Intercept'' routine SINCPT
New ``Illumination Angles'' routine ILUMIN
New ``Sub-observer Point'' routine SUBPNT
New ``Sub-solar Point'' Routine SUBSLR
Improvements of Aberration Corrected Velocity in the SPK Subsystem
New SPK Routines
New Binary PCK Coverage Routines PCKFRM and PCKCOV
New Routine WNCARD
New Routine EDTERM
SCLK Buffer Size Increase
TABs in Text Kernels
Built-in NAIF ID Code/Name Definitions
Icy (IDL interface to CSPICE) Only
New and Updated Interfaces
Documentation
Permuted Index for Icy and Mice
BRIEF User's Guide
Documentation on NAIF Web Server
BRIEF
CKBRIEF
MKSPK
SUBPT Cookbook
Bug Fixes
EV2LIN
HYPTOF
INELPL
RAXISA
SC01
SRFXPT
BRIEF
CKBRIEF
Header Updates
Version 61 --- December 2006
Rules Regarding Use of SPICE Components
Environments
New Environments
Deprecated Environments
Complete List of Supported Environments
Use of -fPIC/-KPIC Option
Lahey Memory Issue Related to File Opening/Closing
Scratch EK File Issue in Icy on PC/Windows
Documentation
New Applications
MSOPCK
SPKDIFF
SPICELIB/CSPICE/Icy
KCLEAR Routine
DAF Comment Area Routines
DAF-based Kernel Open Routines
DAFONW Routine
SPKW02, SPKW03, and SPKW05 Routines
Built-in NAIF ID Code/Name Definitions
CSPICE Only
New Wrappers
Icy (IDL interface to CSPICE) Only
New Interfaces
Bug Fixes
CKE05
ET2LST
UNLOAD
STR2ET
SURFPT
CHRONOS
Icy
MKSPK
Version 60 --- December 2005
Bug Fixes
Access to High Precision Binary Earth PCK
Version 59 --- November 2005
Rules Regarding Use of SPICE Components
Environments
New Environments
Supported Environments
Optimization for C/Icy environments
Lahey Memory Issue Related to File Opening/Closing
Scratch EK File Issue in Icy on PC/Windows
SPICELIB/CSPICE/Icy
Loading of Non-Native Text Kernels Files
Additional Testing
Deprecation of BODVAR in favor of BODVRD and BODVCD
``In Place'' Routines
SPK Segment Buffer Increase
EK Buffer Increased
Built-in NAIF ID Code/Name Definitions
Documentation
CSPICE
New Wrappers
Icy (Interactive Data Language interface to CSPICE)
Vectorization
New interfaces
Bug Fixes
Non-standard Use of Duplicate Arguments in FORTRAN
NEARPT
ET2LST
GETFOV
CKW03
INEDPL
INSRTC
String Parsing Routines
Version 58 --- January 2005
Environments
SPICELIB/CSPICE/Icy
Parameterized Dynamic Frames
CK/SPK Coverage Summary Routines
Planetographic Coordinate Conversion Routines
``L-sub-S'' Solar Longitude Routine
Built-in NAIF ID Code/Name Definitions
Documentation
CSPICE
New Wrappers
Icy (Interactive Data Language interface to CSPICE)
Vectorization
Windows
Other new interfaces
Bug Fixes
MKSPK Processing of TLE
MKSPK Adding Comments When Appending to Existing SPK
Icy/cspice_getfov
DVPOOL/dvpool_c/cspice_dvpool
CSPICE/kdata_c Function
FRINFO/frinfo_c/cspice_frinfo
Version 57 --- March 2004
Environments
Icy
SPICELIB/CSPICE
SRFXPT
Support for Satellite IDs in the Range 10000-99999
Detection of Non-native Text Files
Documentation
Built-in NAIF ID Code/Name Definitions
INSPEKT
TOBIN
Version 56 --- August 2003
Environments
SPICELIB/CSPICE
Documentation
Built-in NAIF ID Code/Name Definitions
CHRONOS
Bug Fixes
Reading Files with MAC-OSX Absoft FORTRAN Toolkit
DAS Scratch Files
Argument Checking in CSPICE Error Handling Functions
Version 55 --- March 2003
Environments
SPICELIB
SPKW01
DASCLS
SPKBSR
Kernel POOL
Type 1 SCLK
CSPICE
New CSPICE wrappers
Bug Fixes
Built-in NAIF ID Code/Name Definitions
DASCUD
OSCELT
CKE05
CKBRIEF
Version 54 --- December 2002
Mailing Lists
Environments
COOKBOOK Programs
New Built-in NAIF ID Code/Name Definitions
Documentation
Bug Fixes
Built-in Body-Fixed Frame for Pan
Surface Intercept Routine
DAS Writer Routines
CSPICE Cell Implementation
Body Name to Associated Frame Conversion Routine
CHRONOS
Version 53 --- September 2002
Environments
CSPICE
New CSPICE wrappers for cell, set, and windows routines
New CSPICE wrappers for sorting and searching routines
New CSPICE wrappers for string manipulation and parsing routines
SPICELIB
SPK Type 18
CK Type 5
BRIEF
COOKBOOK
Bug Fixes
ID-to-name Translation
Built-in Body-Fixed Frames
Binary architecture consistency check at run-time
Long/truncated lines in text kernel files
VMS Read-Only Access File Open Failure
Version 52 --- January 2002
Environments
SPICELIB
Run-Time Binary File Format Translation
Open File Limit Increase
SPK aberration corrections
Instrument Kernel Support
Kernel POOL
Jacobian routines
NAIF ID to Object Name Mapping
Documentation
CSPICE
New CSPICE wrappers for EK routines
Miscellaneous new CSPICE wrappers
CKBRIEF
COMMNT
MKSPK
VERSION
Bug Fixes
CK, PCK, and SPK segment buffering and selection
Const-qualification for various CSPICE interfaces
CSPICE function gcpool_c fixed
MOVED fix for Fortran PC Linux platform
EK query processing using LIKE operator and null values
EK time conversion
EK documentation
Source code clean-up
Version 51 --- April 2000
SPICELIB
Instrument Kernel Support
Binary Kernel Recognition
CK
SPK
Miscellaneous
MKSPK
SPKMERGE
Bug Fixes
Version 50 --- October 1999
CSPICE
Additions and Extensions to SPICE routines
Loading Kernels
Position Only Interface.
ID-codes
Kernel Pool Enhancements
Continuous Spacecraft Clocks
Bad FTP File Transfer Detection
CK Writer Enhancements
Bugs
SPICE Utility Programs
TOBIN
COMMNT
CKBRIEF
MKSPK
Documentation
Version 49 --- September 1998
Version 48 --- May 1998
Version 47 --- July 1997
Documentation
Software
SPK
Frames
Time
Bug Fixes
Version 46 --- January 1997
Documentation
Time
Version 45 --- October 1996
Version 44 --- August 1996
SPK Subsystem
Inspekt
Bug Fixes
Version 43 --- May 1996
Brief
Star Catalogs.
CHGIRF
BODTRN
Performance Improvements
Version 42 --- December 1995
Version 41 --- October 1995
Non-inertial Reference Frames
Top
What's New in SPICE
Top
Introduction
This document describes new and extended capabilities of the latest
version of the SPICE Toolkit. It also notes bug fixes. Each release of
the Toolkit is documented in a separate chapter that is titled with the
version of the Toolkit. The most recent version of the Toolkit is
documented first. The next most recent version is documented next, and
so on.
The Toolkit version changes described in this document are
Version 67 --- January 2022
Version 66 --- April 2017
Version 65 --- July 2014
Version 64 --- June 2010
Version 63 --- April 2009
Version 62 --- March 2008
Version 61 --- December 2006
Version 60 --- December 2005
Version 59 --- November 2005
Version 58 --- January 2005
Version 57 --- March 2004
Version 56 --- August 2003
Version 55 --- March 2003
Version 54 --- December 2002
Version 53 --- September 2002
Version 52 --- January 2002
Version 51 --- April 2000
Version 50 --- October 1999
Version 49 --- September 1998
Version 48 --- May 1998
Version 47 --- July 1997
Version 46 --- January 1997
Version 45 --- October 1996
Version 44 --- August 1996
Version 43 --- May 1996
Version 42 --- December 1995
Version 41 --- October 1995
Top
Version 67 --- January 2022
Top
Summary
This is a brief summary of what's new and updated in N0067, with the
details about each item provided later in this section:
-- support for one new environment (M1 Mac 64-bit C/clang)
-- termination of support for 16 environments, across all languages
-- complete examples in most high level API headers in all languages
-- extension of Icy and Mice headers to include all sections
-- new SWITCH frames class
-- new PRODUCT dynamic frames type
-- SCLK subsystem overhaul (increased efficiency for multiple clocks)
-- text PCK extensions (additional terms, synonym keywords)
-- Time subsystem extensions (allowing Z in ISO tags, TT and GPS time systems
support)
-- SPK and CK ID buffers capacity increase
-- new tangent point routine (TANGPT)
-- new target separation routine (TRGSEP)
-- new TLE evaluator routine based on Vallado 2006 (EVSGP4)
-- new azimuth and elevation family of routines
-- new get-FOV by instrument name routine (GETFVN)
-- 49 new CSPICE wrappers
-- new MKDSK polar cap generation capability
-- bug fixes in the Toolkit and utility programs
Top
Acknowledgements
The N0067 version of the toolkit includes substantial contributions by
ODC Space (https://www.odcspace.com) with the majority of new CSPICE,
Icy, and Mice wrappers, complete compilable/executable examples, and
documentation improvements produced by this company with the assistance
of its automated SPICE code and documentation conversion/production
tools developed under contract with NAIF/JPL.
Top
Environments
Top
New Environments
The SPICE Toolkit is now officially supported on this new environment:
CSPICE:
Mac/M1 OS-X clang / 64bit
Top
Deprecated Environments
The SPICE Toolkit is no longer supported on these environments:
FORTRAN Toolkit:
Mac/Intel OS-X GFORTRAN / 32bit
Mac/Intel OS-X Intel FORTRAN / 32bit
PC CYGWIN GFORTRAN / 32bit
Sun/Intel Solaris SUN FORTRAN / 32bit
Sun/Intel Solaris SUN FORTRAN / 64bit
CSPICE:
Mac/Intel OS-X Apple C / 32bit
PC CYGWIN gCC / 32bit
Sun/Intel Solaris SUN C / 32bit
Sun/Intel Solaris SUN C / 64bit
Icy:
PC Linux gCC / IDL 8.x / 32bit
PC Windows MS VS C / IDL 7.x / 32bit
Sun Solaris SUN C / IDL 7.x / 32bit
Sun Solaris gCC / IDL 7.x / 32bit
Sun Solaris gCC / IDL 7.x / 64bit
Sun/Intel Solaris SUN C / IDL 8.x / 64bit
Mice:
Sun Solaris SUN C / MATLAB 7.x / 64bit
Top
Complete List of Supported Environments
This is the complete list of environments on which the N0067 version of
the SPICE Toolkit is supported:
FORTRAN Toolkit:
Mac/Intel OS-X GFORTRAN / 64bit
Mac/Intel OS-X Intel FORTRAN / 64bit
PC CYGWIN GFORTRAN / 64bit
PC Linux GFORTRAN / 32bit
PC Linux GFORTRAN / 64bit
PC Linux Intel FORTRAN / 64bit
PC Linux Intel FORTRAN / 32bit
PC Linux g77 / 32bit
PC Windows Intel FORTRAN / 32bit
PC Windows Intel FORTRAN / 64bit
Sun Solaris SUN FORTRAN / 32bit
CSPICE:
Mac/Intel OS-X Apple C / 64bit
Mac/M1 OS-X clang / 64bit
PC CYGWIN gCC / 64bit
PC Linux gCC / 32bit
PC Linux gCC / 64bit
PC Windows MS VS C / 32bit
PC Windows MS VS C / 64bit
Sun Solaris SUN C / 32bit
Sun Solaris SUN C / 64bit
Sun Solaris gCC / 32bit
Sun Solaris gCC / 64bit
Icy:
Mac/Intel OS-X Apple C / IDL 8.x / 64bit
PC Linux gCC / IDL 8.x / 64bit
PC Windows MS VS C / IDL 8.x / 64bit
Mice:
Mac/Intel OS-X Apple C / MATLAB 9.x / 64bit
PC Linux gCC / MATLAB 9.x / 64bit
PC Windows MS VS C / MATLAB 9.x / 64bit
Top
Scratch EK File Issue in Icy on PC/Windows
The scratch EK file issue in Icy on PC/Windows described in the N0061
section of this document persists in the N0067_update_log version of the
Toolkit.
Top
Optimization on PC Linux, Intel FORTRAN, 32bit
Default optimization was turned off in the PC Linux, Intel FORTRAN,
32bit toolkit because of the bugs in the compiler versions available to
NAIF.
Top
Need for Static System Libraries on Linux and OS-X
Static system libraries needed to build statically-linked FORTRAN
toolkit executables on Linux and OS-X are frequently not included in
more modern versions of these operating systems. If a need to recompile
a Linux or an OS-X FORTRAN toolkit arises and the linking step performed
by mkprodct.csh build scripts fails with an error message indicating the
lack of needed static system libraries, users should install these
libraries as appropriate for their system before re-trying a recompile.
Top
SPICELIB/CSPICE/Icy/Mice Additions and Updates
Top
Zero-sized Generic Toolkit Version Identification File
All toolkit packages now include a zero-sized file identifying the
generic toolkit version, e.g. ``N0067'', located in the toolkit's top
directory .
Top
Complete examples in Headers
The Examples sections of the vast majority of SPICELIB and CSPICE
headers and nearly all Icy and Mice headers now contain one or more
complete compilable/executable examples using PDS-archived and/or
generic kernels from the NAIF server. The list of all kernels used in
the examples is available at:
https://naif.jpl.nasa.gov/naif/n0066_example_kernels.html
Top
Additional Sections in Icy and Mice Headers
The set of sections included in the Icy and Mice headers has been
extended to match that of SPICELIB and CSPICE headers by adding the
Parameters
Exceptions
Files
Restrictions
Literature_References
Author_and_Institution
sections.
The set of information provided in the headers of APIs present in all
four languages has been made consistent across all languages.
Top
New Switch Frames Class
The Frames Subsystem was extended to support a new class of frames,
``Switch Frames.'' Switch frames choose at run time other frames, called
``base frames,'' with which to align their orientation. Switch frames
``switch'' the base frames they align with as a function of time, using
a prioritized list of base frames and optional, associated time bounds;
this list is provided as part of the switch frame definition stored in a
text kernel.
Switch frames extend the flexibility of the SPICE frame subsystem by
allowing a user-defined frame to rely on different data sources at
different times.
Refer to the ``Switch Frames'' section of the Frames Required Reading
document, frames.req, for details.
Top
New Dynamic Frame Family -- Product Frames
The Dynamic Frames subsystem was extended to support a new frame family,
``Product Frames.'' Product frames may be thought of as a generalization
of TK (constant offset) frames. The orientation of a product frame
relative to a specified base frame is defined by a product of one or
more frame transformations, where each factor may be any transformation
computable by the SPICE frame subsystem.
Refer to the ``Product Frames'' section of the Frames Required Reading
document, frames.req, for details.
Top
SCLK Subsystem Overhaul
The SCLK Subsystem was substantially redesigned to efficiently support
interleaved time conversions involving multiple spacecraft clocks.
The maximum number of SCLK coefficient records that can be buffered
simultaneously has been increased from 50000 to 100000.
Top
Text PCK Extensions
The text PCK subsystem was extended to support optional use of phase
angle polynomials of up to cubic degree. Formerly these polynomials were
required to be linear.
The keywords
BODY<id code>_CONSTS_JED_EPOCH
BODY<id code>_CONSTS_REF_FRAME
are now recognized as synonyms of the respective keywords
BODY<id code>_CONSTANTS_JED_EPOCH
BODY<id code>_CONSTANTS_REF_FRAME
The new, shorter keywords enable use of ID codes that occupy 11
characters in string form.
Refer to the PCK Required Reading document, pck.req, for details.
Top
Time System changes
The Time system capabilities were extended:
-- to accept ISO-style UTC time string with trailing ``Z'', e.g.
2022-01-01T12:00:00.000Z, 2022-001T12:00:00.000Z, in all high level
routines that accept a UTC string on input -- STR2ET, TPARSE, UTC2ET.
-- to support ``TT'' as a synonym of ``TDT'' in the output template definition
in the TIMOUT routine that outputs time strings and in the uniform numeric
time conversion routine UNITIM.
-- to support GPS time in the uniform numeric time conversion routine UNITIM
Top
CK Buffered Structure ID Limit
The maximum number of CK structure IDs that can be buffered
simultaneously has been increased from 100 to 5000.
Top
SPK Buffered Body ID Limit
The maximum number of SPK body IDs that can be buffered simultaneously
has been increased from 200 to 10000.
Top
New Tangent Point Routine
The N0067 version offers a new routine to compute, for a given observer,
ray emanating from the observer, and target, the ``tangent point'' --
the point on the ray nearest to the target's surface, as well as the
point on the target's surface nearest to the tangent point:
TANGPT (SPICELIB)
tagnpt_c (CSPICE)
cspice_tagnpt (ICY and MICE)
Top
New Target Separation Routine
The N0067 version offers a new function to compute the angular
separation between two spherical or point objects as seen from a third
object:
TRGSEP (SPICELIB)
trgsep_c (CSPICE)
cspice_trgsep (ICY and MICE)
Top
New TLE Evaluator Routine
The N0067 version offers a new routine to evaluate NORAD two-line
element data for earth orbiting spacecraft based on the algorithms
published by Vallado et. al. (2006):
EVSGP4 (SPICELIB)
evsgp4_c (CSPICE)
cspice_evsgp4 (ICY and MICE)
Top
New Azimuth and Elevation State Routine
The N0067 version offers a new routine to compute the azimuth/elevation
coordinates of a specified target relative to an ``observer,'' where the
observer has constant position in a specified reference frame:
AZLCPO (SPICELIB)
azlcpo_c (CSPICE)
cspice_azlcpo (ICY and MICE)
Top
New Azimuth and Elevation Conversion Routines
The N0067 version offers new routines to convert between range, azimuth
and elevation and rectangular coordinates, and for computing the
Jacobian matrices of the transformation between their derivatives:
AZLREC DAZLDR (SPICELIB)
RECAZL DRDAZL (SPICELIB)
azlrec_c dazldr_c (CSPICE)
recazl_c drdazl_c (CSPICE)
cspice_azlrec cspice_dazldr (ICY and MICE)
cspice_recazl cspice_drdazl (ICY and MICE)
Top
New Routine to Get FOV Parameters Using Instrument Name
The N0067 version offers a new routine to retrieve the field-of-view
(FOV) parameters for an instrument specified by its name:
GETFVN (SPICELIB)
getfvn_c (CSPICE)
cspice_getfvn (ICY and MICE)
Top
Other New SPICELIB Interfaces
The following new miscellaneous APIs were added to SPICELIB:
REPML
Top
New CSPICE Wrapper Routines
The following 49 new wrapper APIs were added to CSPICE to make the set
of its APIs be more closely aligned with the set available in the
FORTRAN toolkit:
chbigr_c chbint_c chbval_c
ckfrot_c ckfxfm_c ckgr02_c
ckgr03_c ckmeta_c cknr02_c
cknr03_c clearc_c cleari_c
dafhsf_c dasadc_c dasadd_c
dasadi_c dashfs_c daslla_c
dasllc_c dasonw_c dasops_c
dasrdc_c dasrdd_c dasrdi_c
dasudc_c dasudd_c dasudi_c
daswbr_c dlabns_c dlaens_c
dlaopn_c dnearp_c ednmpt_c
edpnt_c filld_c filli_c
hrmesp_c invstm_c lgresp_c
lgrint_c moved_c nextwd_c
nthwd_c qderiv_c stlabx_c
tkfram_c tparch_c twovxf_c
vprojg_c
Top
New Icy Wrapper Routines and Global Parameter Scripts
The following 62 new wrapper APIs were added to Icy to make the set of
its APIs be more closely aligned with the set available in the CSPICE
toolkit:
cspice_bltfrm cspice_chbder cspice_chbigr
cspice_chbint cspice_chbval cspice_ckfrot
cspice_ckfxfm cspice_ckgr02 cspice_ckgr03
cspice_ckmeta cspice_cknr02 cspice_cknr03
cspice_dafhsf cspice_dafps cspice_dasadc
cspice_dasadd cspice_dasadi cspice_dashfs
cspice_daslla cspice_dasllc cspice_dasonw
cspice_dasops cspice_dasopw cspice_dasrdc
cspice_dasrdd cspice_dasrdi cspice_dasudc
cspice_dasudd cspice_dasudi cspice_daswbr
cspice_dlabbs cspice_dlabns cspice_dlaens
cspice_dlafps cspice_dlaopn cspice_dnearp
cspice_ednmpt cspice_edpnt cspice_hrmesp
cspice_hrmint cspice_invstm cspice_kplfrm
cspice_lgresp cspice_lgrind cspice_lgrint
cspice_nextwd cspice_nthwd cspice_oscltx
cspice_polyds cspice_qderiv cspice_repmc
cspice_repmct cspice_repmd cspice_repmf
cspice_repmi cspice_repmot cspice_stlabx
cspice_surfpv cspice_tkfram cspice_tparch
cspice_twovxf cspice_vprojg
The following global parameter scripts were added to Icy:
IcyDAS.pro IcyDLA.pro IcyDSK.pro
IcyDtl.pro IcyFrm.pro IcyGF.pro
IcyOsc.pro
For user convenience, the IcyUser.pro script includes all of these
global parameter scripts.
The following global parameter scripts were removed from Icy, with the
relevant parameters that they used to define moved to the new global
parameter scripts listed above:
DSKIcy02.pro DSKIcyUser.pro DSKtol.pro
Top
New Mice Wrapper Routines and Global Parameter Scripts
The following 95 new wrapper APIs were added to Mice to make the set of
its APIs be more closely aligned with the set available in the CSPICE
toolkit:
cspice_badkpv cspice_bltfrm cspice_chbder
cspice_chbigr cspice_chbint cspice_chbval
cspice_ckfrot cspice_ckfxfm cspice_ckgr02
cspice_ckgr03 cspice_cklpf cspice_ckmeta
cspice_cknr02 cspice_cknr03 cspice_ckupf
cspice_dafhsf cspice_dafps cspice_dafrs
cspice_dasadc cspice_dasadd cspice_dasadi
cspice_dashfs cspice_daslla cspice_dasllc
cspice_dasonw cspice_dasops cspice_dasopw
cspice_dasrdc cspice_dasrdd cspice_dasrdi
cspice_dasudc cspice_dasudd cspice_dasudi
cspice_daswbr cspice_dlabbs cspice_dlabns
cspice_dlaens cspice_dlafps cspice_dlaopn
cspice_dnearp cspice_dpmax cspice_dpmin
cspice_ednmpt cspice_edpnt cspice_expool
cspice_getelm cspice_getfat cspice_hrmesp
cspice_hrmint cspice_intmax cspice_intmin
cspice_invstm cspice_kplfrm cspice_ldpool
cspice_lgresp cspice_lgrind cspice_lgrint
cspice_nextwd cspice_nthwd cspice_oscltx
cspice_polyds cspice_prop2b cspice_qderiv
cspice_qdq2av cspice_qxq cspice_repmc
cspice_repmct cspice_repmd cspice_repmf
cspice_repmi cspice_repmot cspice_rotvec
cspice_scfmt cspice_scpart cspice_spkapo
cspice_spkez cspice_spkgeo cspice_spklef
cspice_spkssb cspice_spkuef cspice_spkw09
cspice_spkw10 cspice_spkw13 cspice_stelab
cspice_stlabx cspice_surfpv cspice_szpool
cspice_tipbod cspice_tisbod cspice_tkfram
cspice_tparch cspice_tparse cspice_twovxf
cspice_vprojg cspice_vupack
The following global parameter scripts were added to Mice:
MiceDAS.m MiceDLA.m MiceDSK.m
MiceDtl.m MiceFrm.m MiceGF.m
MiceOsc.m
For user convenience, the MiceUser.m script includes all of these global
parameter scripts.
The following global parameter scripts were removed from Mice, with the
relevant parameters that they used to define moved to the new global
parameter scripts listed above:
DLAMice.m DSKMice02.m DSKMiceUser.m
Top
NAIF IDs Document Update for Extended Asteroids ID Schema
The NAIF IDs Required Reading document, naif_ids.req, was updated to
describe the new extended asteroid NAIF ID schema providing for 8-9
digit asteroid IDs allowing for distinct style IDs for singular
asteroids and objects in multi-body asteroid systems (barycenters,
primary asteroids, satellite asteroids).
Refer to the ``Asteroids'' section of the document for details.
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to or changed in the Toolkit:
Spacecraft:
-652 MERCURY TRANSFER MODULE
-652 MTM
-652 BEPICOLOMBO MTM
-255 PSYC
-243 VIPER
-242 LUNAR TRAILBLAZER
-240 SMART LANDER FOR INVESTIGATING MOON
-240 SLIM
-239 MARTIAN MOONS EXPLORATION
-239 MMX
-210 LICIA
-210 LICIACUBE
-197 EXOMARS_LARA
-197 LARA
-174 EXM RSP RM
-174 EXM ROVER
-174 EXOMARS ROVER
-173 EXM RSP SP
-173 EXM SURFACE PLATFORM
-173 EXOMARS SP
-172 EXM RSP SCC
-172 EXM SPACECRAFT COMPOSITE
-172 EXOMARS SCC
-168 PERSEVERANCE
-168 MARS 2020
-168 MARS2020
-168 M2020
-164 LUNAR FLASHLIGHT
-156 ADITYA
-156 ADIT
-155 KPLO
-155 KOREAN PATHFINDER LUNAR ORBITER
-153 CH2L
-153 CHANDRAYAAN-2 LANDER
-152 CH2O
-152 CHANDRAYAAN-2 ORBITER
-148 DFLY
-148 DRAGONFLY
-135 DART
-135 DOUBLE ASTEROID REDIRECTION TEST
-119 MARS_ORBITER_MISSION_2
-119 MOM2
-96 PARKER SOLAR PROBE
-72 JNSB
-72 JANUS_B
-57 LUNAR ICECUBE
-45 JNSA
-45 JANUS_A
-43 IMAP
-39 LUNAR POLAR HYDROGEN MAPPER
-39 LUNAH-MAP
-37 HYB2
-37 HAYABUSA 2
-37 HAYABUSA2
-33 NEOS
-33 NEO SURVEYOR
DSN Stations:
399035 DSS-35
399036 DSS-36
399056 DSS-56
399069 DSS-69
Asteroids:
2000052 52_EUROPA
2000052 52 EUROPA
2162173 RYUGU
2486958 ARROKOTH
20000617 PATROCLUS_BARYCENTER
20000617 PATROCLUS BARYCENTER
20003548 EURYBATES_BARYCENTER
20003548 EURYBATES BARYCENTER
20011351 LEUCUS
20015094 POLYMELE
20021900 ORUS
20052246 DONALDJOHANSON
20065803 DIDYMOS_BARYCENTER
20065803 DIDYMOS BARYCENTER
120000617 MENOETIUS
120003548 QUETA
120065803 DIMORPHOS
920000617 PATROCLUS
920003548 EURYBATES
920065803 DIDYMOS
The following built-in NAIF ID code/name definitions have been removed
from the Toolkit:
-164 YOHKOH
-164 SOLAR-A
-135 DRTS-W
-69 PSYC
-54 ASTEROID RETRIEVAL MISSION
-54 ARM
The object name in the following built-in NAIF ID code/name definition
have been corrected from
519 MAGACLITE
to
519 MEGACLITE
Top
Built-in Body-Fixed Frames
The following built-in body-fixed frames were added to the list of
frames hard-coded in the Toolkit:
IAU_52_EUROPA
IAU_NIX
IAU_HYDRA
IAU_RYUGU
IAU_ARROKOTH
IAU_DIDYMOS_BARYCENTER
IAU_DIDYMOS
IAU_DIMORPHOS
IAU_DONALDJOHANSON
IAU_EURYBATES
IAU_EURYBATES_BARYCENTER
IAU_QUETA
IAU_POLYMELE
IAU_LEUCUS
IAU_ORUS
IAU_PATROCLUS_BARYCENTER
IAU_PATROCLUS
IAU_MENOETIUS
The frame name in the following built-in NAIF ID frame definition have
been corrected from
IAU_MAGACLITE
to
IAU_MEGACLITE
Top
Updated Toolkit Application
Top
MKDSK
The MKDSK program was updated to
-- replace rows at the poles, if present, with polar vertices, and create
polar caps using these vertices and the adjacent vertex rows.
-- store comment lines up to 255 characters longer
Refer to the MKDSK User's Guide, mkdsk.ug, for more information about
the program.
Top
Bug Fixes
Top
SPICELIB -- DSKX02, DSKXSI
The routine DSKX02 was updated to not return an intercept outside of the
segment boundaries by more than the allowed margin and not return an
invalid plate ID for such intercepts.
This bug fix corrected a bug in DSKXSI, which previously could return an
invalid plate ID obtained from DSKX02.
Top
SPICELIB -- GETFOV
This routine was updated to have the previously missing exception for
the boresight vector being the zero vector.
Top
SPICELIB -- GFFOVE, GFRFOV, GFTFOV
Two bugs affecting these routines were corrected: the inability to work
with wide-angle circular or elliptical fields of view at small
observer-target distances, and incorrect operation resulting from use of
non-unit-length boresight vectors. Bug fixes in entry points of the
routine ZZGFFVU corrected these problems.
Top
SPICELIB -- SUBPNT
This routine was updated to correct a bug that could cause it to fail
finding DSK data within the time bounds of a DSK segment.
Top
SPICELIB -- TIMOUT
This routine was updated to correctly calculate decimal values for the
HR.###... and MN.###... markers in the presence of the ::UTC+N:M and
::UTC-N:M meta tags.
Top
SPICELIB -- TKFRAM
This routine was updated to signal an error if name-based and ID-based
forms of any TKFRAME_ keyword are present in the POOL at the same time;
to always return FOUND = .FALSE. when it fails to fetch any frame
keywords from the POOL or for any other reason; and to always return
FRAME = 0 when it fails due to a frame being defined relative to itself
or due to an unrecognized _SPEC. In the case of any failures the routine
now return the identity matrix.
Top
MKDSK
MKDSK was updated so as to avoid creation of degenerate plates when
input height grid data sets included rows of vertices at polar
latitudes.
The program was updated to correctly compute the required number of
plates used for overflow detection.
Top
MSOPCK
The MSOPCK program was updated to fix a bug in the downsampling
algorithm that caused it to go into an indefinite loop when adjacent
points are close to 180 degrees apart.
Top
Version 66 --- April 2017
Top
Summary
This is a brief summary of what's new and updated in N0066, with the
details about each item provided later in this section:
-- new Digital Shape Kernel (DSK) subsystem supporting Type 2 (tessellated
plate model) shape data
-- new DAS linked array (DLA) file format subsystem supporting DSK
-- new surface name/ID mapping subsystem supporting DSK
-- run-time binary translation extended to work with DAS files
-- kernel loading subsystem updated to work with DSKs
-- binary file opening/closing management updated to work with DAS files
allowing access to up to 5000 DSKs at the same time
-- most existing high level geometry routines updated to work with both
ellipsoid and DSK surfaces
-- new limb and terminator routines supporting ellipsoid and DSK surfaces
-- new lon/lat grid to surface points routine supporting ellipsoid and DSK
surfaces
-- new illumination routine with visibility and illumination flags supporting
ellipsoid and DSK surfaces
-- new surface normal routine supporting ellipsoid and DSK surfaces
-- many new Mice wrappers
-- SPK 10 (two line elements) evaluator update to use the Vallado derived
propagator
-- text PCK-based frames performance improvement
-- new SPK Type 19 subtype 2
-- new DSK utility programs in generic toolkit -- DSKBRIEF, DSKEXP, MKDSK
-- bug fixes in Toolkit and utility programs
Top
Environments
Top
New Environments
No new environments were introduced for N0066.
Top
Deprecated Environments
The SPICE Toolkit is no longer supported on these environments:
Icy:
Mac/Intel OS-X Apple C / IDL 8.x / 32bit
Mice:
Mac/Intel OS-X Apple C / MATLAB 7.x / 32bit
PC Linux gCC / MATLAB 7.x / 32bit
PC Windows MS Visual C / MATLAB 7.x / 32bit
Top
Complete List of Supported Environments
This is the complete list of environments on which the N0066 version of
the SPICE Toolkit is supported:
FORTRAN Toolkit:
Mac/Intel OS-X GFORTRAN / 32bit
Mac/Intel OS-X GFORTRAN / 64bit
Mac/Intel OS-X Intel FORTRAN / 32bit
Mac/Intel OS-X Intel FORTRAN / 64bit
PC CYGWIN GFORTRAN / 32bit
PC CYGWIN GFORTRAN / 64bit
PC Linux GFORTRAN / 32bit
PC Linux GFORTRAN / 64bit
PC Linux Intel FORTRAN / 32bit
PC Linux Intel FORTRAN / 64bit
PC Linux g77 / 32bit
PC Windows Intel FORTRAN / 32bit
PC Windows Intel FORTRAN / 64bit
Sun Solaris SUN FORTRAN / 32bit
Sun/Intel Solaris SUN FORTRAN / 32bit
Sun/Intel Solaris SUN FORTRAN / 64bit
CSPICE:
Mac/Intel OS-X Apple C / 32bit
Mac/Intel OS-X Apple C / 64bit
PC CYGWIN gCC / 32bit
PC CYGWIN gCC / 64bit
PC Linux gCC / 32bit
PC Linux gCC / 64bit
PC Windows MS Visual C / 32bit
PC Windows MS Visual C / 64bit
Sun Solaris SUN C / 32bit
Sun Solaris SUN C / 64bit
Sun Solaris gCC / 32bit
Sun Solaris gCC / 64bit
Sun/Intel Solaris SUN C / 32bit
Sun/Intel Solaris SUN C / 64bit
Icy:
Mac/Intel OS-X Apple C / IDL 8.x / 64bit
PC Linux gCC / IDL 8.x / 32bit
PC Linux gCC / IDL 8.x / 64bit
PC Windows MS Visual C / IDL 7.x / 32bit
PC Windows MS Visual C / IDL 7.x / 64bit
Sun Solaris SUN C / IDL 7.x / 32bit
Sun Solaris gCC / IDL 7.x / 32bit
Sun Solaris gCC / IDL 7.x / 64bit
Sun/Intel Solaris SUN C / IDL 8.x / 64bit
Mice:
Mac/Intel OS-X Apple C / MATLAB 7.x / 64bit
PC Linux gCC / MATLAB 7.x / 64bit
PC Windows MS Visual C / MATLAB 7.x / 64bit
Sun Solaris SUN C / MATLAB 7.x / 64bit
Top
Scratch EK File Issue in Icy on PC/Windows
The scratch EK file issue in Icy on PC/Windows described in the N0061
section of this document persists in the N0066 version of the Toolkit.
Top
Optimization on PC Linux, Intel FORTRAN, 32bit
Default optimization was turned off in the PC Linux, Intel FORTRAN,
32bit toolkit because of the bugs in the compiler versions available to
NAIF.
Top
Need for Static System Libraries on Linux and OS-X
Static system libraries needed to build statically-linked FORTRAN
toolkit executables on Linux and OS-X are frequently not included in
more modern versions of these operating systems. If a need to recompile
a Linux or an OS-X FORTRAN toolkit arises and the linking step performed
by mkprodct.csh build scripts fails with an error message indicating the
lack of needed static system libraries, users should install these
libraries as appropriate for their system before re-trying a recompile.
Top
SPICELIB/CSPICE/Icy/Mice Additions and Updates
Top
The Digital Shape Kernel (DSK) Subsystem
The Digital Shape Kernel (DSK) is a new SPICE kernel type.
The DSK subsystem enables SPICE applications to access detailed
representations of shapes of extended objects, and conveniently use
those shape data in geometry calculations. The subsystem also provides
mechanisms for documenting and porting such data.
The DSK subsystem consists of the DSK file format, SPICE routines that
can access these files, utility programs, and documentation.
The DSK subsystem design allows for multiple mathematical
representations of shapes; each such representation is called a ``DSK
data type.'' Currently the only supported data type is DSK type 2, which
models shapes of objects as collections of triangular plates. Such shape
representations are also called ``tessellated plate models'' or
``triangular irregular networks'' (TINs).
Support for a data type that accommodates digital elevation models
(DEMs) is planned for release in a future SPICE Toolkit version.
High-level SPICE geometry APIs, when using DSK shape data, work
independently of the underlying DSK data type. SPICE also includes
lower-level, type-dependent DSK APIs, such as those for fetching DSK
type 2 plate and vertex data.
The DSK subsystem includes three new utility programs:
MKDSK
DSKBRIEF
DSKEXP
These utilities, respectively, enable SPICE users to make DSK files from
data in a variety of text formats, summarize the contents of DSK files,
and export data from binary DSK files to easily readable text files.
The previously existing SPICE utilities for comment area access and
binary-transfer format conversion
COMMNT
TOBIN
TOXFR
work with DSK files.
See the DSK Required Reading document, dsk.req, for further information.
Status of the prototype Alpha DSK Toolkit is discussed in a section
below.
Top
DSK Loading and Run-time Binary Translation
DSK files are ``loaded'' and ``unloaded'' just like other SPICE kernels.
SPICE-based user applications load DSK files for read access by calling
FURNSH (SPICELIB)
furnsh_c (CSPICE)
cspice_furnsh (ICY and MICE)
and unload them by calling
UNLOAD (SPICELIB)
unload_c (CSPICE)
cspice_unload (ICY and MICE)
or
KCLEAR (SPICELIB)
kclear_c (CSPICE)
cspice_kclear (ICY and MICE)
The names of DSK files to be loaded can be listed in a meta-kernel,
along with the names of other SPICE kernels.
Large DSK data sets will normally be partitioned into multiple DSK
files. These files can be named in a meta-kernel and loaded
simultaneously. The DSK subsystem will automatically select data as
needed from loaded DSK files.
Information on loaded DSKs---names of loaded kernels, file handles, and
names of meta-kernels referencing those DSKs---can be obtained by
calling
KTOTAL
KINFO
KDATA (SPICELIB)
ktotal_c
kinfo_c
kdata_c (CSPICE)
cspice_ktotal (ICY and MICE)
cspice_kinfo (ICY and MICE)
cspice_kdata (ICY and MICE)
DSK files use the SPICE DAS (Direct Access Segregated) architecture; DSK
files are a subclass of DAS files. The SPICE Toolkit has been upgraded
so that open and close operations on DAS files, along with DAF files,
are managed by a common subsystem. This subsystem allows up to 5000 DAS
and DAF files to be accessible for reading at the same time.
The SPICE Toolkit has been upgraded to support run-time translation of
DAS files: DAS files having ``big-endian'' binary file formats can be
read on ``little-endian'' host systems, and vice versa. It still is
necessary to convert DAS files to the host system's binary file format
if the files need to be writable. For larger DAS files, conversion to
the host format is still desirable to improve efficiency.
Top
High Level Routines Updated to Work with DSK Surfaces
The following high level geometry routines were updated to work with the
surface of a target body represented by a triaxial ellipsoid or by
topographic data provided by DSK files:
-- ray surface intercept routine:
SINCPT (SPICELIB)
sincpt_c (CSPICE)
cspice_sincpt (ICY and MICE)
-- sub-observer point routine:
SUBPNT (SPICELIB)
subpnt_c (CSPICE)
cspice_subpnt (ICY and MICE)
-- sub-solar point routine:
SUBSLR (SPICELIB)
subslr_c (CSPICE)
cspice_subslr (ICY and MICE)
-- solar illumination angles routine:
ILUMIN (SPICELIB)
ilumin_c (CSPICE)
cspice_ilumin (ICY and MICE)
-- arbitrary body illumination angles routine:
ILLUMG (SPICELIB)
illumg_c (CSPICE)
cspice_illumg (ICY and MICE)
-- occultation condition routine:
OCCULT (SPICELIB)
occult_c (CSPICE)
cspice_occult (ICY and MICE)
-- GF occultation finder routine:
GFOCLT (SPICELIB)
gfoclt_c (CSPICE)
cspice_gfoclt (ICY and MICE)
-- GF occultation finder routine, with interrupt and reporting:
GFOCCE (SPICELIB)
gfocce_c (CSPICE)
Top
New Limb Routine
The N0066 version offers a new routine to find limb points on a target
body, with the surface of the body represented by a triaxial ellipsoid
or by topographic data provided by DSK files:
LIMBPT (SPICELIB)
limbpt_c (CSPICE)
cspice_limbpt (ICY and MICE)
Top
New Terminator Routine
The N0066 version offers a new routine to find umbral or penumbral
terminator points on a target body, with the surface of the body
represented by a triaxial ellipsoid or by topographic data provided by
DSK files:
TERMPT (SPICELIB)
termpt_c (CSPICE)
cspice_termpt (ICY and MICE)
Top
New Lon/Lat Grid to Surface Points Routine
The N0066 version offers a new routine to map an array of planetocentric
longitude/latitude coordinate pairs to surface points on a specified
target body, with the surface of the body represented by a triaxial
ellipsoid or by topographic data provided by DSK files:
LATSRF (SPICELIB)
latsrf_c (CSPICE)
cspice_latsrf (ICY and MICE)
Top
New Illumination Routine with Visibility and Illumination Flags
The N0066 version offers a new routine to compute the illumination
angles -- phase, incidence, and emission -- at a specified point on a
target body and to return logical flags indicating whether the surface
point is visible from the observer's position and whether the surface
point is illuminated, with the target body's surface represented using
topographic data provided by DSK files, or by a reference ellipsoid:
ILLUMF (SPICELIB)
illumf_c (CSPICE)
cspice_illumf (ICY and MICE)
Top
New Surface Normal Routine
The N0066 version offers a new routine to map an array of surface points
on a specified target body to the corresponding unit length outward
surface normal vectors, with the surface of the target body represented
by a triaxial ellipsoid or by topographic data provided by DSK files:
SRFNRM (SPICELIB)
srfnrm_c (CSPICE)
cspice_srfnrm (ICY and MICE)
Top
New DSK-Specific Surface Intercept Routines
The N0066 version offers the following routines for computing ray
surface intercepts for surfaces modeled by DSK:
-- a new routine to compute ray-surface intercepts for a set of rays, using
data provided by multiple loaded DSK segments:
DSKXV (SPICELIB)
dskxv_c (CSPICE)
cspice_dskxv (ICY and MICE)
-- a new routine to compute a ray-surface intercept using data provided by
multiple loaded DSK segments, returning information about the source of the
data defining the surface on which the intercept was found:
DSKXSI (SPICELIB)
dskxsi_c (CSPICE)
cspice_dskxsi (ICY and MICE)
Top
New DSK Summary Routines
The N0066 version offers the following routines for getting a summary of
the DSK file contents from within a user's application:
-- a new routine to return the set of body ID codes of all objects for which
data are provided in a DSK file:
DSKOBJ (SPICELIB)
dskobj_c (CSPICE)
cspice_dskobj (ICY and MICE)
-- a new routine to return the set of surface ID codes for all surfaces
associated with a body in a DSK file:
DSKSRF (SPICELIB)
dsksrf_c (CSPICE)
cspice_dsksrf (ICY and MICE)
Top
New Type 2 DSK Bulk Read Routines
The N0066 version offers the following routines enabling retrieval of
plate and vertex data stored in Type 2 DSK segments:
-- a new routine to return plate model size parameters (plate count and vertex
count) for a type 2 DSK segment:
DSKZ02 (SPICELIB)
dskz02_c (CSPICE)
cspice_dskz02 (ICY and MICE)
-- a new routine to return triangular plates from a type 2 DSK segment:
DSKP02 (SPICELIB)
dskp02_c (CSPICE)
cspice_dskp02 (ICY and MICE)
-- a new routine to return vertices from a type 2 DSK segment:
DSKV02 (SPICELIB)
dskv02_c (CSPICE)
cspice_dskv02 (ICY and MICE)
Top
New Surface Name/ID Mapping Routines
Each set of shape data in a DSK file is associated with a specified
body. In order to efficiently and conveniently support simultaneous use
of multiple versions of shape data for a given body, the data have an
additional attribute called a ``surface ID.'' Surface IDs have
associated names.
The surface name/ID subsystem supports the DSK subsystem by providing
means to map between names and IDs of surfaces stored in DSK files. The
N0066 version offers the following surface name/ID mapping routines:
-- a new routine to translate a surface ID code, together with a body name, to
the corresponding surface name:
SRFCSS (SPICELIB)
srfcss_c (CSPICE)
cspice_srfcss (ICY and MICE)
-- a new routine to translate a surface string, together with a body name, to
the corresponding surface ID code:
SRFS2C (SPICELIB)
srfs2c_c (CSPICE)
cspice_srfs2c (ICY and MICE)
-- a new routine to translate a surface ID code, together with a body ID code,
to the corresponding surface name:
SRFC2S (SPICELIB)
srfc2s_c (CSPICE)
cspice_srfc2s (ICY and MICE)
-- a new routine to translate a surface string, together with a body ID code,
to the corresponding surface ID code:
SRFSCC (SPICELIB)
srfscc_c (CSPICE)
cspice_srfscc (ICY and MICE)
Top
Status of the Alpha DSK Toolkit
Alpha DSK Toolkit high-level ``pl02'' geometry software is now
deprecated. Users of the Alpha DSK Toolkit are encouraged to migrate
their application software to the new SPICE Toolkit APIs. In all cases,
Alpha DSK high-level geometry APIs have been superseded by SPICE APIs
with superior capabilities. In particular, the new APIs can seamlessly
work with data sets distributed across multiple DSK files.
However, for convenience of Alpha DSK Toolkit users, the Alpha DSK
geometry APIs are included in the SPICE Toolkit. There have been some
changes to the sets of header files referenced by the C versions of
those routines; other than that, the interfaces of the routines are
unchanged.
The Alpha versions of the DLA and DSK type 2 routines are also included
in the SPICE Toolkit and are considered official SPICE APIs. Aside from
the exceptions cited below, interfaces are unchanged from the Alpha
versions.
A few backward-compatibility violations do exist:
-- The calling sequence of the DSK type 2 writing routine DSKW02 has changed.
-- The routine DSKSGR is no longer provided.
The Alpha DSK versions of the utility programs MKDSK and DSKBRIEF have
been upgraded and are included in the SPICE Toolkit.
DSKBRIEF upgrades include:
-- The default display has been simplified. The old, detailed display can be
invoked using the -full option.
-- Multiple DSK files, and multiple segments within a DSK file, can be
summarized together.
-- Coverage bounds and coverage gaps can be displayed for multiple DSK files
or multiple segments within a file.
-- Names of supporting kernels that enable body, surface, and frame ID-to-name
translation can be provided on the command line.
MKDSK upgrades include:
-- The maximum output segment plate count has been increased to 32 million
plates on Linux, Mac, and Solaris/Intel environments and to 10 million
plates on Windows and Solaris/Sparc environments.
-- Height grid input data are now supported.
-- Latitudinal, planetodetic, and rectangular coordinate systems are
supported.
-- Voxel scales no longer need to be specified in the setup file; MKDSK will
calculate them automatically.
-- Execution speed of the program has been improved.
-- The user can command generation of a vertex-plate mapping.
-- Fixes of bugs in the setup file error handling code.
The DSK file format introduced in 2010 is unchanged and will remain
backward-compatible going forward. The only planned changes are
additions of new data types.
Run-time translation of old DSK files is now supported, as it is for all
DAS files.
Top
New Alpha-DSK Backwards Compatibility Routines
Solely for backwards compatibility reasons the N0066 version offers the
Type 2 DSK specific routines shown below that were a part of the
Alpha-DSK toolkit routine set. These routines are deprecated and
superseded by other DSK-enabled high-level routines. These routines are
not available in FORTRAN toolkits.
illum_pl02 illum_plid_pl02
limb_pl02 llgrid_pl02
subpt_pl02 subsol_pl02
term_pl02
cspice_illum_pl02 cspice_illum_plid_pl02
cspice_limb_pl02 cspice_llgrid_pl02
cspice_subpt_pl02 cspice_subsol_pl02
cspice_term_pl02
Top
New DSK Mid-Level, Low-Level, and Utility Routines
The following additional public DSK mid-level, low-level, and utility
routines are available in the N0066 toolkit:
DSKB02 DSKCLS DSKD02
DSKGD DSKGTL DSKI02
DSKMI2 DSKN02 DSKOPN
DSKRB2 DSKSTL DSKW02
DSKX02 PLTAR PLTEXP
PLTNP PLTNRM PLTVOL
dskb02_c dskcls_c dskd02_c
dskgd_c dskgtl_c dski02_c
dskmi2_c dskn02_c dskopn_c
dskrb2_c dskstl_c dskw02_c
dskx02_c pltar_c pltexp_c
pltnp_c pltnrm_c pltvol_c
cspice_dskb02 cspice_dskcls cspice_dskd02
cspice_dskgd cspice_dskgtl cspice_dski02
cspice_dskmi2 cspice_dskn02 cspice_dskopn
cspice_dskrb2 cspice_dskstl cspice_dskw02
cspice_dskx02 cspice_pltar cspice_pltexp
cspice_pltnp cspice_pltnrm cspice_pltvol
Top
New DLA File Format and Routines
SPICE DSK files are built upon an intermediate-level file format that
sits between the levels of the DSK and DAS formats: DAS Linked Array
(DLA). The DLA format enables applications to view DAS files as a
doubly-linked list of ``arrays,'' where each array consists of data
occupying three sequences of of contiguous DAS character, integer, and
double precision addresses.
The data in a DSK file are organized into one or more ``segments''; each
segment contains data for a specified body, spatial region and time
interval. DSK segments are implemented as DLA arrays.
DSK data type-dependent routines, such as those that fetch vertices from
a plate model, operate on DSK segments. DLA APIs are used to traverse
DSK files and locate DSK segments so that the segments can be referenced
by type-dependent DSK routines.
The following public DLA routines are available in the N0066 toolkit:
DLABBS DLABFS DLABNS
DLAENS DLAFNS DLAFPS
DLAOPN DLASSG
dlabbs_c dlabfs_c dlafns_c
dlafps_c
cspice_dlabfs cspice_dlafns
See the DLA Required Reading document, dla.req, for details. See the API
documentation of DSK type 2 routines and DLA routines for complete
example programs that demonstrate use of the routines.
Top
Other New SPICELIB Interfaces
The following new APIs were added to SPICELIB:
EDNMPT EDPNT INCNSG
INSANG NPSGPT OSCLTX
XDDA
Top
Other New CSPICE Interfaces
The following new APIs were added to CSPICE:
chbder_c cleard_c dasdc_c
dashfn_c dasopw_c dasrfr_c
hrmint_c lgrind_c oscltx_c
pckcls_c pckopn_c pckw02_c
polyds_c
Top
Other New Icy and Mice Interfaces
A few APIs were added to Icy and Mice to make the sets of Icy and Mice
routines be more closely aligned with the sets available in toolkits for
other languages:
cspice_bodfnd
cspice_ccifrm
cspice_dascls
cspice_dasec
cspice_dasopr
cspice_lspcn
cspice_pckcov
cspice_pckfrm
cspice_spkuds (ICY only)
cspice_srfrec
The following global parameter scripts were added to Icy:
DSKIcy02.pro
DSKIcyUser.pro
DSKtol.pro
The following global parameter scripts were added to Mice:
DSKMice02.m
DSKMiceUser.m
DSKtol.m
Top
SPK 10 Evaluator Update to Use Vallado Propagator
NAIF added a TLE propagator based on the algorithms published by Vallado
et. al. (2006).
Vallado, David, Crawford, Paul, Hujsak, Richard,
and Kelso, T.S. 2006. Revisiting Spacetrack Report #3. Paper
AIAA 2006-6753 presented at the AIAA/AAS Astrodynamics
Specialist Conference, August 21-24, 2006. Keystone, CO.
Starting with the toolkit version N0066 the SPK subsystem uses this new
propagator to evaluate TLE Type 10 SPKs. Note that because the routines
implementing the Vallado propagator use some leapsecond constants,
loading an LSK is now required in order to read any TLE Type 10 SPKs.
The Spacetrack #3 (Hoots 1980) based TLE propagation routines used in
Toolkit version N0065 and earlier remain part of the Toolkit.
Hoots, F. R., and Roehrich, R. L. 1980. "Models for
Propagation of the NORAD Element Sets." Spacetrack Report #3.
U.S. Air Force: Aerospace Defense Command.
Top
Text PCK-based Frames Performance Improvement
The SPICELIB routines TISBOD, TIPBOD, and BODMAT computing natural body
body-fixed frame orientations based on the text PCK data and used by the
SPICE frames subsystem were modified to significantly speed up their
execution. As with the N0065 speedup improvements, these changes have
been designed around the premise that the contents of the SPICELIB's
POOL data buffer are not frequently modified via loading/unloading
kernels or via direct POOL data insertion/deletion APIs during the
program execution. Applications that constantly alter the POOL will not
see any significant speedup and in some cases may even see a slight
performance degradation (no more that 5 percent).
Top
SPK Type 19, subtype 2
SPK type 19 subtype 2 has been provided to support accurate duplication
by the SPICE SPK subsystem of spacecraft ephemeris data used by the
European Space Agency (ESA) on the Mars Express, Rosetta, SMART-1 and
Venus Express missions. Subtype 2 supports Hermite interpolation of
6-element packets consisting of position and velocity data.
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to or changed in the Toolkit:
Spacecraft:
-28 JUPITER ICY MOONS EXPLORER
-28 JUICE
-49 LUCY
-62 EMM
-62 EMIRATES MARS MISSION
-65 MCOA
-65 MARCO-A
-66 MCOB
-66 MARCO-B
-68 MERCURY MAGNETOSPHERIC ORBITER
-68 MMO
-68 BEPICOLOMBO MMO
-69 PSYC
-76 CURIOSITY
-117 EDL DEMONSTRATOR MODULE
-117 EDM
-117 EXOMARS 2016 EDM
-121 MERCURY PLANETARY ORBITER
-121 MPO
-121 BEPICOLOMBO MPO
-143 TRACE GAS ORBITER
-143 TGO
-143 EXOMARS 2016 TGO
-152 CH2
-152 CHANDRAYAAN-2
-159 EURC
-159 EUROPA CLIPPER
-198 NASA-ISRO SAR MISSION
-198 NISAR
-301 HELIOS 1
-302 HELIOS 2
Satellites:
553 DIA
Asteroids:
2000016 PSYCHE
2101955 BENNU
The following built-in NAIF ID code/name definitions have been removed
from the Toolkit:
-159 EUROPA ORBITER
Top
Built-in Body-Fixed Frames
The following built-in body-fixed frame was added to the list of frames
hard-coded in the Toolkit:
IAU_BENNU
Top
New and Updated Toolkit Application
Top
DSKBRIEF
The DSKBRIEF program was added to the application set included in each
SPICE toolkit. This program summarizes the contents of a SPICE DSK
(digital shape kernel) file.
Compared to the Alpha-DSK version of the program DSKBRIEF upgrades
include:
-- The default display has been simplified. The old, detailed display can be
invoked using the -full option.
-- Multiple DSK files, and multiple segments within a DSK file, can be
summarized together.
-- Coverage bounds and coverage gaps can be displayed for multiple DSK files
or multiple segments within a file.
-- Names of supporting kernels that enable body, surface, and frame ID-to-name
translation can be provided on the command line.
Refer to the DSKBRIEF User's Guide, dskbrief.ug, for more information
about the program.
Top
MKDSK
The MKDSK program was added to the application set included in each
SPICE toolkit. This program creates a SPICE DSK (digital shape kernel)
file from a text file containing surface shape and size data.
Compared to the Alpha-DSK version of the program MDKSK upgrades include:
-- The maximum output segment plate count has been increased to 32 million
plates on Linux, Mac, and Solaris/Intel environments and to 10 million
plates on Windows and Solaris/Sparc environments.
-- Height grid input data are now supported.
-- Latitudinal, planetodetic, and rectangular coordinate systems are
supported.
-- Voxel scales no longer need to be specified in the setup file; MKDSK will
calculate them automatically.
-- Execution speed of the program has been improved.
-- The user can command generation of a vertex-plate mapping.
-- Fixes of bugs in the setup file error handling code.
Refer to the MKDSK User's Guide, mkdsk.ug, for more information about
the program.
Top
DSKEXP
The DSKEXP program was added to the application set included in each
SPICE toolkit. This program enables SPICE Toolkit users to ``export''
data from a DSK file to any of a variety of simple, easily parsed text
formats. This capability enables users to easily transform DSK files
into formats required by other applications; it also makes it easy to
inspect the data in a DSK file.
Refer to the DSKEXP User's Guide, dskexp.ug, for more information about
the program.
Top
Bug Fixes
Top
SPICELIB -- BODEUL, TISBOD
These routines were updated to increase the room in the internal buffer
to hold the maximum possible number of values of ``NUT_PREC_ANGLES''
consistent with the maximum possible numbers of values for other related
PCK parameters.
Top
SPICELIB -- CKE05
This routine was updated to update PRVPTR at the end of the quaternion
sequence check for Hermite subtypes.
Top
SPICELIB -- KEEPER/UNLOAD
This routine was updated to unload binary kernels via low-level unload
routines only when those kernels have just one entry in the KEEPER
database.
Top
SPICELIB -- SUBPNT
This routine was updated to correctly initialize the values of saved
input method in all cases.
Top
SPICELIB -- XFMSTA
This routine was updated to not allow conversions to and from geodetic
and planetographic coordinates for bodies with unequal equatorial radii.
Previously it allowed such conversions even though these types of
coordinates are not applicable to triaxial ellipsoids. In doing that it
arbitrarily picked the first and the third radii to compute a body's
flattening coefficient.
Top
MKSPK
The MKSPK program was updated to not drop every 500th line of the input
comment file to be written to the comment area and to correctly
substitute values into some error messages.
Top
Version 65 --- July 2014
Top
Summary
This is a brief summary of what's new and updated in N0065, with the
details about each item provided later in this section:
-- support for some new environments and termination of some old environments
-- new Geometry Finder (GF) interfaces -- illumination angle search, phase
angle search, user-defined binary quantity search
-- new high-level SPK APIs allowing one to specify the observer or target as a
location with a constant position and velocity rather than as an ephemeris
object
-- new high-level APIs that check for occultation and in-Field-Of-View (FOV)
conditions
-- new high-level illumination angle routines
-- new high-level reference frame transformation routine
-- new high-level coordinate system transformation routine for states
-- many Icy and Mice APIs that were formerly available only in SPICELIB and
CSPICE
-- new data types: SPK (19, 20, 21), PCK (20), and CK (6)
-- performance improvements in the range of 10-50 percent for some types of
use
-- ability to load up to 5000 kernels
-- increased buffers in the POOL and in SPK and CK segment search subsystems
-- new built-in body name/ID code mappings and body-fixed reference frames
-- a significant upgrade of utility SPKDIFF including the ability to sample
SPK data
-- updates to other toolkit utilities -- BRIEF, CKBRIEF, FRMDIFF, MKSPK,
MSOPCK
-- bug fixes in Toolkit and utility programs
Top
Environments
Top
New Environments
The SPICE Toolkit is now officially supported on these new environments:
FORTRAN Toolkit:
PC CYGWIN GFORTRAN / 32bit
PC CYGWIN GFORTRAN / 64bit
PC Linux Intel FORTRAN / 64bit
Sun/Intel Solaris SUN FORTRAN / 64bit
CSPICE:
PC CYGWIN gCC / 64bit
Icy:
Sun/Intel Solaris SUN C / IDL 8.x / 64bit
Top
Deprecated Environments
The SPICE Toolkit is no longer supported on these environments:
FORTRAN Toolkit:
Mac/PowerPC OS-X Absoft FORTRAN / 32bit
Mac/PowerPC OS-X g77 / 32bit
PC CYGWIN g77 / 32bit
PC Windows Compaq (Digital) FORTRAN / 32bit
PC Windows Lahey FORTRAN 95 / 32bit
CSPICE:
Mac/PowerPC OS-X Apple C / 32bit
Icy:
Mac/PowerPC OS-X Apple C / IDL 6.4 / 32bit
Mice:
Mac/PowerPC OS-X Apple C / MATLAB 7.x / 32bit
Top
Complete List of Supported Environments
This is the complete list of environments on which the N0065 version of
the SPICE Toolkit is supported:
FORTRAN Toolkit:
Mac/Intel OS-X GFORTRAN / 32bit
Mac/Intel OS-X GFORTRAN / 64bit
Mac/Intel OS-X Intel FORTRAN / 32bit
Mac/Intel OS-X Intel FORTRAN / 64bit
PC CYGWIN GFORTRAN / 32bit
PC CYGWIN GFORTRAN / 64bit
PC Linux GFORTRAN / 32bit
PC Linux GFORTRAN / 64bit
PC Linux Intel FORTRAN / 32bit
PC Linux Intel FORTRAN / 64bit
PC Linux g77 / 32bit
PC Windows Intel FORTRAN / 32bit
PC Windows Intel FORTRAN / 64bit
Sun Solaris SUN FORTRAN / 32bit
Sun/Intel Solaris SUN FORTRAN / 32bit
Sun/Intel Solaris SUN FORTRAN / 64bit
CSPICE:
Mac/Intel OS-X Apple C / 32bit
Mac/Intel OS-X Apple C / 64bit
PC CYGWIN gCC / 32bit
PC CYGWIN gCC / 64bit
PC Linux gCC / 32bit
PC Linux gCC / 64bit
PC Windows MS Visual C / 32bit
PC Windows MS Visual C / 64bit
Sun Solaris SUN C / 32bit
Sun Solaris SUN C / 64bit
Sun Solaris gCC / 32bit
Sun Solaris gCC / 64bit
Sun/Intel Solaris SUN C / 32bit
Sun/Intel Solaris SUN C / 64bit
Icy:
Mac/Intel OS-X Apple C / IDL 8.x / 32bit
Mac/Intel OS-X Apple C / IDL 8.x / 64bit
PC Linux gCC / IDL 8.x / 32bit
PC Linux gCC / IDL 8.x / 64bit
PC Windows MS Visual C / IDL 7.x / 32bit
PC Windows MS Visual C / IDL 7.x / 64bit
Sun Solaris SUN C / IDL 7.x / 32bit
Sun Solaris gCC / IDL 7.x / 32bit
Sun Solaris gCC / IDL 7.x / 64bit
Sun/Intel Solaris SUN C / IDL 8.x / 64bit
Mice:
Mac/Intel OS-X Apple C / MATLAB 7.x / 32bit
Mac/Intel OS-X Apple C / MATLAB 7.x / 64bit
PC Linux gCC / MATLAB 7.x / 32bit
PC Linux gCC / MATLAB 7.x / 64bit
PC Windows MS Visual C / MATLAB 7.x / 32bit
PC Windows MS Visual C / MATLAB 7.x / 64bit
Sun Solaris SUN C / MATLAB 7.x / 64bit
Top
Scratch EK File Issue in Icy on PC/Windows
The scratch EK file issue in Icy on PC/Windows described in the N0061
section of this document persists in the N0065 version of the Toolkit.
Top
Optimization on PC Linux, Intel FORTRAN, 32bit
The default optimization was turned off in the PC Linux, Intel FORTRAN,
32bit toolkit because of the bugs in the compiler versions available to
NAIF.
Top
SPICELIB/CSPICE/Icy/Mice Additions and Updates
Top
New Geometry Finder (GF) Routines
The N0065 version offers a number of additional SPICE Geometry Finder
(GF) subsystem interfaces.
-- A new routine to determine time intervals over which a specified constraint
on the observed phase, solar incidence, or emission angle at a specified
target body surface point is met:
GFILUM (SPICELIB)
gfilum_c (CSPICE)
cspice_gfilum (ICY and MICE)
-- A new routine to determine time intervals over which a specified constraint
on the phase angle between an illumination source, a target, and observer
body centers is met:
GFPA (SPICELIB)
gfpa_c (CSPICE)
cspice_gfpa (ICY and MICE)
-- A new routine to override the default GF convergence value used in the high
level GF routines:
GFSTOL (SPICELIB)
gfstol_c (CSPICE)
cspice_gfstol (ICY and MICE)
-- A new routine to perform a GF search on a user defined boolean quantity
(not available in ICY and MICE):
GFUDB (SPICELIB)
gfudb_c (CSPICE)
Top
New SPK Constant Position/Velocity Observer/Target Routines
The N0065 version offers four high-level SPK routines using a location
with a constant position or a constant velocity for either the observer
or the target.
-- A new routine to return the state of a specified target relative to an
observer, where the observer has constant position in a specified reference
frame. The observer's position is provided by the calling program rather
than by loaded SPK files:
SPKCPO (SPICELIB)
spkcpo_c (CSPICE)
cspice_spkcpo (ICY and MICE)
-- A new routine to return the state, relative to a specified observer, of a
target having constant position in a specified reference frame. The
target's position is provided by the calling program rather than by loaded
SPK files:
SPKCPT (SPICELIB)
spkcpt_c (CSPICE)
cspice_spkcpt (ICY and MICE)
-- A new routine to return the state of a specified target relative to an
observer, where the observer has constant velocity in a specified reference
frame. The observer's state is provided by the calling program rather than
by loaded SPK files:
SPKCVO (SPICELIB)
spkcvo_c (CSPICE)
cspice_spkcvo (ICY and MICE)
-- A new routine to return the state, relative to a specified observer, of a
target having constant velocity in a specified reference frame. The
target's state is provided by the calling program rather than by loaded SPK
files:
SPKCVT (SPICELIB)
spkcvt_c (CSPICE)
cspice_spkcvt (ICY and MICE)
Top
New Occultation and in FOV Condition Routines
The N0065 version offers three high-level routines that check for
occultation and in Field-Of-View (FOV) conditions.
-- A new routine to determine if a specified ray is within the field-of-view
(FOV) of a specified instrument at a given time:
FOVRAY (SPICELIB)
fovray_c (CSPICE)
cspice_fovray (ICY and MICE)
-- A new routine to determine if a specified ephemeris object is within the
field-of-view (FOV) of a specified instrument at a given time:
FOVTRG (SPICELIB)
fovtrg_c (CSPICE)
cspice_fovtrg (ICY and MICE)
-- A new routine to determine the occultation condition (not occulted,
partially, etc.) of one target relative to another target as seen by an
observer at a given time:
OCCULT (SPICELIB)
occult_c (CSPICE)
cspice_occult (ICY and MICE)
Top
New Illumination Angles Routines
The N0065 version offers two new high-level routines for computing
illumination angles.
-- A new routine to compute the illumination angles (phase, incidence, and
emission) at a specified surface point of a target body with the
illumination source ephemeris object specified by the caller:
ILLUMG (SPICELIB)
-- A new routine to compute the apparent phase angle for a target, observer,
illuminator set of ephemeris objects:
PHASEQ (SPICELIB)
phaseq_c (CSPICE)
cspice_phaseq (ICY and MICE)
Top
New High-Level Frame Transformation Routine
The N0065 version offers a new high-level frame transformation routine.
-- A new routine to return the 3x3 matrix that transforms position vectors
from one specified frame at a specified epoch to another specified frame at
another specified epoch:
PXFRM2 (SPICELIB)
pxfrm2_c (CSPICE)
cspice_pxfrm2 (ICY and MICE)
Top
New High-Level State Transformation Routine
The N0065 version offers a new high-level state transformation routine.
-- A new routine to transform a state between coordinate systems (rectangular,
cylindrical, latitudinal, spherical, geodetic planetographic):
XFMSTA (SPICELIB)
xfmsta_c (CSPICE)
cspice_xfmsta (ICY and MICE)
Top
Other New SPICELIB Interfaces
The following new APIs were added to SPICELIB:
BLTFRM CHBIGR KPLFRM
LJUCRS SEPOOL UDF
Top
Other New CSPICE Interfaces
The following new APIs were added to CSPICE:
bltfrm_c ccifrm_c dafgh_c
edterm_c eqncpv_c kplfrm_c
qcktrc_c spkpvn_c spksfs_c
trcdep_c trcnam_c udf_c
Top
Other New Icy Interfaces
A significant number of APIs were added to Icy to make the set of Icy
routines be more closely aligned with the sets available in toolkits for
other languages:
cspice_dafus cspice_dascls
cspice_dasopr cspice_dcyldr
cspice_dgeodr cspice_dlatdr
cspice_dpgrdr cspice_drdcyl
cspice_drdgeo cspice_drdlat
cspice_drdpgr cspice_drdsph
cspice_dsphdr cspice_edterm
cspice_eqncpv cspice_invort
cspice_spkpvn cspice_spksfs
cspice_spkw17
The following global parameter scripts were added to Icy:
IcyUser.pro
IcyOccult.pro
Top
Other New Mice Interfaces
A large number of APIs were added to Mice to make the set of Mice
routines be more closely aligned with the sets available in toolkits for
other languages:
cspice_cidfrm cspice_cnmfrm
cspice_dafac cspice_dafbbs
cspice_dafbfs cspice_dafcls
cspice_dafcs cspice_dafdc
cspice_dafec cspice_daffna
cspice_daffpa cspice_dafgda
cspice_dafgn cspice_dafgs
cspice_dafopr cspice_dafopw
cspice_dafus cspice_dcyldr
cspice_dgeodr cspice_dlatdr
cspice_dpgrdr cspice_drdcyl
cspice_drdgeo cspice_drdlat
cspice_drdpgr cspice_drdsph
cspice_dsphdr cspice_dvpool
cspice_edlimb cspice_edterm
cspice_frame cspice_frinfo
cspice_frmnam cspice_inedpl
cspice_inelpl cspice_inrypl
cspice_invort cspice_namfrm
cspice_npedln cspice_npelpt
cspice_nplnpt cspice_pjelpl
cspice_pl2nvc cspice_pl2nvp
cspice_pl2psv cspice_psv2pl
cspice_spkcls cspice_spkopn
cspice_spkpvn cspice_spksfs
cspice_spkw08 cspice_surfpt
cspice_timdef_get cspice_timdef_set
cspice_vprjp cspice_vprjpi
cspice_vproj
The following global parameter scripts were added to Mice:
MiceUser.m
MiceOccult.m
Top
SPK Type 19
SPK type 19 has been provided to support accurate duplication by the
SPICE SPK subsystem of spacecraft ephemeris data used by the European
Space Agency (ESA) on the Mars Express, Rosetta, SMART-1 and Venus
Express missions. SPK type 19 is an enhanced version of SPK type 18.
Type 19 enables creation of SPK files representing the same ephemerides
that can be represented using type 18, but containing far fewer
segments.
SPK Type 19 routines (available only in SPICELIB):
SPKE19 SPKR19 SPKS19
SPKW19
Top
SPK Type 20
SPK data type 20 contains Chebyshev polynomial coefficients for the
velocity of a body, relative to its center of motion, as a function of
time. This data type is provided to accurately represent ``EPM''
ephemerides developed by the Institute of Applied Astronomy (IAA),
Russian Academy of Sciences (RAS).
SPK Type 20 routines (available only in SPICELIB):
SPKE20 SPKR20 SPKS20
SPKW20
Top
SPK Type 21
SPK data type 21 contains extended Modified Difference Arrays (MDA),
also called ``difference lines.'' These data structures use the same
mathematical trajectory representation as SPK data type 1, but type 21
allows use of larger, higher-degree MDAs.
SPK Type 21 routines (available only in SPICELIB):
SPKE21 SPKR21 SPKS21
SPKW21
Top
PCK Type 20
PCK data type 20 contains Chebyshev polynomial coefficients for a
specified set of Euler angle rates of a body-fixed, body-centered
reference frame as a function of time.
This data type is provided to accurately represent ``EPM'' orientation
data developed by the Institute of Applied Astronomy (IAA), Russian
Academy of Sciences (RAS).
PCK Type 20 routines are available in SPICELIB:
PCKE20 PCKR20 PCKW20
PCK Type 20 writer function available in CSPICE:
spkw20_c
Top
CK Type 6
CK type 6 has been provided to support accurate duplication by the SPICE
CK subsystem of spacecraft attitude data used by the European Space
Agency (ESA) on the Mars Express, Rosetta, SMART-1 and Venus Express
missions.
CK type 6 is an enhanced version of CK type 5. Type 6 enables creation
of CK files representing the same attitude data that can be represented
using type 5, but containing far fewer segments.
CK Type 6 routines (available only in SPICELIB):
CKE06 CKGR06 CKMP06
CKNM06 CKR06 CKW06
Top
SPKLTC
SPKLTC is used by the SPK subsystem to compute light time-corrected
state vectors. SPKLTC was updated to ensure convergence when CN or XCN
light time corrections are used. For these correction choices, the new
algorithm also terminates early (after fewer than three iterations) when
convergence is attained.
Top
SPKW02, SPKW03, SPKW08, SPKW12
The segment writer routines SPKW02, SPKW03, SPKW08, and SPKW12 were
updated to check the input polynomial degree; the maximum allowed degree
was increased.
In these routines, there is now less strict error checking on the
consistency of the time bounds of the input record set (determined by
EPOCH1, STEP, and N) and the descriptor bounds FIRST and LAST. Now the
descriptor end time may extend slightly beyond the stop time of the last
input record.
Top
Speedup
A number of core SPICELIB routines were modified to speed up their
execution. Since most of these updates were in the body name/ID
translation and reference frames subsystems, their effect will be most
noticeable in programs that call high-level SPICE APIs that take body
and frame names as inputs, and in high level APIs that perform
operations with reference frames. On average users of these routines
should see speedups from 10 to 50 percent depending on what SPICE APIs
they call. Speed up will also be noticeable in loading meta-kernels with
large numbers of kernels (hundreds of kernels).
Note that much of the speedup has been designed around the premise that
the contents of the SPICELIB's POOL data buffer are not frequently
modified via loading/unloading kernels or via direct POOL data
insertion/deletion APIs during the program execution. Applications that
constantly alter the POOL will not see any significant speedup and in
some cases may even see a slight performance degradation (no more that 5
percent).
Top
Maximum Number of Loaded Kernels
The maximum number of kernels that can be loaded by FURNSH has been
increased from 1000 to 5000.
Top
Kernel Pool Double Precision Buffer Limit
The maximum number of keywords that can be stored in the kernel POOL has
been increased from 5003 to 26003. The maximum number of double
precision values that can be stored in the kernel POOL has been
increased from 200000 to 400000. The maximum number of character values
that can be stored in the kernel POOL has been increased from 4000 to
15000.
Top
CK Buffered Segment Limits
The maximum number of CK segments that can be buffered simultaneously
has been increased 50000 to 100000.
Top
SPK Buffered Segment Limits
The maximum number of SPK segments that can be buffered simultaneously
has been increased 50000 to 100000.
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to the Toolkit:
Spacecraft:
-750 SPRINT-AS
-189 NSYT
-189 INSIGHT
-170 JWST
-170 JAMES WEBB SPACE TELESCOPE
-144 SOLO
-144 SOLAR ORBITER
-96 SPP
-96 SOLAR PROBE PLUS
-64 ORX
-64 OSIRIS-REX
-54 ARM
-54 ASTEROID RETRIEVAL MISSION
-12 LADEE
-3 MOM
-3 MARS ORBITER MISSION
Planet Barycenter Aliases with ``_'':
0 SOLAR_SYSTEM_BARYCENTER
1 MERCURY_BARYCENTER
2 VENUS_BARYCENTER
3 EARTH_BARYCENTER
4 MARS_BARYCENTER
5 JUPITER_BARYCENTER
6 SATURN_BARYCENTER
7 URANUS_BARYCENTER
8 NEPTUNE_BARYCENTER
9 PLUTO_BARYCENTER
Satellites:
644 HYRROKKIN
904 KERBEROS
905 STYX
Comets:
1003228 C/2013 A1
1003228 SIDING SPRING
Asteroids:
2000002 PALLAS
2000511 DAVIDA
The following built-in NAIF ID code/name definitions have been removed
from the Toolkit:
-486 HERSCHEL
-489 PLANCK
-187 SOLAR PROBE
Top
Built-in Body-Fixed Frames
The following built-in body-fixed frames were added to the list of
frames hard-coded in the Toolkit:
IAU_CERES
IAU_PALLAS
IAU_LUTETIA
IAU_DAVIDA
IAU_STEINS
Top
Toolkit Applications Updates
Top
BRIEF
The BRIEF program was updated to sort tabular output by time when the
new command line option ``-s'' is specified.
Refer to the BRIEF User's Guide, brief.ug, for more information about
the program.
Top
CKBRIEF
The CKBRIEF program was updated to display a summary for all CK files to
be summarized as if the data were in a single CK file when the new
command line option ``-a'' is specified. The internal CKBRIEF buffers
were increased to allow the program to summarize CK files with larger
numbers of segments.
Refer to the CKBRIEF User's Guide, ckbrief.ug, for more information
about the program.
Top
FRMDIFF
The FRMDIFF program was updated to determine default coverage from
additional kernels if no primary kernels were provided (e.g. from the
set of kernels or a meta-kernel provided with ``-k'' option) and to
display the user-specified number of significant digits in numeric
output when the new command line option ``-s'' is specified.
Refer to the FRMDIFF User's Guide, frmdiff.ug, for more information
about the program.
Top
MKSPK
The MKSPK program was updated to process additional TLE-specific setup
keywords allowing user-specified output time coverage for TLE-based SPK,
to sort input TLEs, and to eliminate duplicate TLE sets from the input.
Refer to the MKSPK User's Guide, MKSPK.ug, for more information about
the program.
Top
MSOPCK
The MSOPCK program was updated to check the time order of the input data
when the new optional setup keyword CHECK_TIME_ORDER is specified.
Refer to the MSOPCK User's Guide, MSOPCK.ug, for more information about
the program.
Top
SPKDIFF
The SPKDIFF program has gone through a major upgrade to make its
functionality scope be similar to that of FRMDIFF, including the ability
to sample trajectory data from specified SPKs and SPK sets, the ability
to determine default coverage windows and work with SPKs and SPK sets
that have gaps in coverage, the ability to display SPK coverage and gap
summaries, and so on.
Refer to the SPKDIFF User's Guide, SPKDIFF.ug, for more information
about the program.
Top
Bug Fixes
Top
SPICELIB -- SPKBSR, CKBSR, PCKBSR
These routines were updated to correct a logic error, common to all
three routines, affecting their behavior in cases where their segment
buffers were too small to store all requested segment coverage
information.
Top
SPICELIB -- CKE05
The CKE05 routine was updated to no longer perform quaternion sign
adjustment for the Hermite subtypes (0 and 2). If a sign adjustment is
needed for quaternions belonging to a record of Hermite subtype, an
error is signaled. Sign adjustment is still performed for the Lagrange
subtypes.
Top
SPICELIB -- CKMETA
If a previously available CK_<ID>_SCLK or CK_<ID>_SPK
variable that was used to populate a saved value disappears, the CKMETA
routine now resets and returns the value based on the default rule
rather than keeping and returning the stale POOL-based saved value. The
routine now also deletes the kernel POOL watchers for the CK IDs that
were bumped from its local buffer.
Top
SPICELIB -- DASA2L
DASA2L was updated to correct an error that caused it to operate
inefficiently in certain cases where multiple DAS files were read in an
interleaved fashion. The routine was substantially re-written to improve
efficiency and clarity.
Top
SPICELIB -- CCIFRM
The CCIFRM logic was corrected to examine the built-in frames before
looking at the kernel POOL frames.
Top
SPICELIB -- NEARPT
The NEARPT routine now correctly computes an off-axis solution for the
case of a prolate ellipsoid and a viewing point on the interior long
axis.
Top
SPICELIB -- SPKEZ/SPKEZP
The SPKEZ and SPKEZP routines were updated to reject all aberration
corrections not supported by the SPK subsystem.
Top
SPICELIB -- TIME CONVERSION
A number of checks for invalid time string inputs were added to the time
conversion routines to signal an error rather that stopping the program
due to a memory violation.
Top
FRMDIFF
The FRMDIFF program was updated to signal an error in cases when a
computed matrix does not represent a rotation (e.g. for left-handed
frames.)
Top
MKSPK
The MKSPK program was updated to process input TLE lines with spacecraft
code left-padded with zeros to five digits. It was also updated to
adjust the longitude of the ascending node and argument of periapse for
the time of the nearest periapsis for elliptic orbit cases for type 15
inputs that are not given at the time of periapsis.
Top
MSOPCK
The MSOPCK program was updated to compute the clock rate to be stored in
type 2 output segments as the average rate for the input record
endpoints rather than the average rate computed by averaging all rate
values fetched from the loaded SCLK coefficient table.
The program's down-sampling end-point selection algorithm was changed to
not consider end-point quaternions that are close to 180 degrees apart
to prevent cases in which the quaternion and matrix interpolation
algorithms produce rotations in the opposite directions due to numerical
differences in their algorithms.
Top
Version 64 --- June 2010
Top
Environments
Top
New Environments
The SPICE Toolkit is now officially supported on these new environments:
FORTRAN Toolkit:
Mac/Intel OS-X GFORTRAN / 64bit
Mac/Intel OS-X Intel FORTRAN / 64bit
PC Linux GFORTRAN / 64bit
PC Windows Intel FORTRAN / 64bit
Sun/Intel Solaris SUN FORTRAN / 32bit
CSPICE:
Mac/Intel OS-X Apple C / 64bit
PC Windows MS Visual C / 64bit
Sun Solaris SUN C / 64bit
Sun/Intel Solaris SUN C / 32bit
Sun/Intel Solaris SUN C / 64bit
Icy:
Mac/Intel OS-X Apple C / IDL 7.x / 64bit
PC Windows MS Visual C / IDL 7.x / 64bit
Mice:
Mac/Intel OS-X Apple C / MATLAB 7.x / 64bit
PC Windows MS Visual C / MATLAB 7.x / 64bit
Sun/Intel Solaris SUN C / MATLAB 7.x / 64bit
Top
Complete List of Supported Environments
This is the complete list of environments on which the N0064 version of
the SPICE Toolkit is supported:
FORTRAN Toolkit:
Mac/Intel OS-X GFORTRAN / 32bit
Mac/Intel OS-X GFORTRAN / 64bit
Mac/Intel OS-X Intel FORTRAN / 32bit
Mac/Intel OS-X Intel FORTRAN / 64bit
Mac/PowerPC OS-X Absoft FORTRAN / 32bit
Mac/PowerPC OS-X g77 / 32bit
PC CYGWIN g77 / 32bit
PC Linux GFORTRAN / 32bit
PC Linux GFORTRAN / 64bit
PC Linux Intel FORTRAN / 32bit
PC Linux g77 / 32bit
PC Windows Compaq (Digital) FORTRAN / 32bit
PC Windows Intel FORTRAN / 32bit
PC Windows Intel FORTRAN / 64bit
PC Windows Lahey FORTRAN 95 / 32bit
Sun Solaris SUN FORTRAN / 32bit
Sun/Intel Solaris SUN FORTRAN / 32bit
CSPICE:
Mac/Intel OS-X Apple C / 32bit
Mac/Intel OS-X Apple C / 64bit
Mac/PowerPC OS-X Apple C / 32bit
PC CYGWIN gCC / 32bit
PC Linux gCC / 32bit
PC Linux gCC / 64bit
PC Windows MS Visual C / 32bit
PC Windows MS Visual C / 64bit
Sun Solaris SUN C / 32bit
Sun Solaris SUN C / 64bit
Sun Solaris gCC / 32bit
Sun Solaris gCC / 64bit
Sun/Intel Solaris SUN C / 32bit
Sun/Intel Solaris SUN C / 64bit
Icy:
Mac/Intel OS-X Apple C / IDL 7.x / 32bit
Mac/Intel OS-X Apple C / IDL 7.x / 64bit
Mac/PowerPC OS-X Apple C / IDL 6.4 / 32bit
PC Linux gCC / IDL 6.4 / 32bit
PC Linux gCC / IDL 6.4 / 64bit
PC Windows MS Visual C / IDL 7.x / 32bit
PC Windows MS Visual C / IDL 7.x / 64bit
Sun Solaris SUN C / IDL 7.x / 32bit
Sun Solaris gCC / IDL 7.x / 32bit
Sun Solaris gCC / IDL 7.x / 64bit
Mice:
Mac/Intel OS-X Apple C / MATLAB 7.x / 32bit
Mac/Intel OS-X Apple C / MATLAB 7.x / 64bit
Mac/PowerPC OS-X Apple C / MATLAB 7.x / 32bit
PC Linux gCC / MATLAB 7.x / 32bit
PC Linux gCC / MATLAB 7.x / 64bit
PC Windows MS Visual C / MATLAB 7.x / 32bit
PC Windows MS Visual C / MATLAB 7.x / 64bit
Sun/Intel Solaris SUN C / MATLAB 7.x / 64bit
Top
Dynamically Linked Executables
For some environments precompiled executables provided in the generic
Toolkit packages and additional utility program executables provided on
the Utilities page on the NAIF Web site
(http://naif.jpl.nasa.gov/naif/utilities.html) are dynamically linked
and, in order to run, require certain dynamic libraries, usually
provided with the compiler used to build the executables, to be
installed on the user's system. This applies to most Mac/OSX, PC/Linux
and Sun/Solaris environments.
Top
Lahey Memory Issue Related to File Opening/Closing
The Lahey memory issue related to file opening/closing described in the
N0061 section of this document persists in the N0064 version of the
Toolkit.
Top
Scratch EK File Issue in Icy on PC/Windows
The scratch EK file issue in Icy on PC/Windows described in the N0061
section of this document persists in the N0064 version of the Toolkit.
Top
Geometry Finder (GF) Subsystem
The N0064 version offers a number of additional SPICE Geometry Finder
(GF) subsystem interfaces.
Top
SPICELIB High-Level GF APIs
The following High-Level GF APIs were added to SPICELIB:
GFRR determines time intervals when a specified
constraint on the observer-target range rate
is met.
GFUDS performs a GF search on a user defined scalar
quantity. This API is supported by two
additional routines UDDC and UDDF.
Top
CSPICE High-Level GF APIs
The following High-Level GF APIs were added to CSPICE:
gfrr_c determines time intervals when a specified
constraint on the observer-target range rate
is met.
gfuds_c performs a GF search on a user defined scalar
quantity. This API is supported by two
additional functions uddc_c and uddf_c.
Top
Icy and Mice High-Level GF APIs
The following High-Level GF APIs were added to Icy and Mice:
cspice_gfrr determines time intervals when a specified
constraint on the observer-target range rate
is met.
Top
SPICELIB/CSPICE/Icy/Mice
Top
Kernel Pool Variable Name Length Check
The routines loading SPICE text kernel files now include a check on the
length of the kernel pool variable names. The error SPICE(BADVARNAME) is
signaled if the length of any variable provided in the text kernel file
exceeds 32 characters. Regardless of language, all Toolkits inherit this
behavior.
Top
CK Buffered Segment Limits
The maximum number of CK segments that can be buffered simultaneously
has been increased to 50000.
Top
SPK Buffered Segment Limits
The maximum number of SPK segments that can be buffered simultaneously
has been increased to 50000.
Top
Kernel Pool Double Precision Buffer Limit
The maximum number of double precision values that can be stored in the
kernel pool has been increased to 200000.
Top
SCLK Coefficient Record Limit
The maximum number of SCLK coefficient records that can be buffered has
been increased to 50000. This is also the limit on the number of
coefficient records that can be stored in an SCLK kernel.
Top
CK writer quaternion magnitude check
The quaternion magnitude check performed in the CK writers
CKW01 (ckw01_c in CSPICE) (cspice_ckw01 in Icy and Mice)
CKW02 (ckw02_c in CSPICE) (cspice_ckw02 in Icy and Mice)
CKW03 (ckw03_c in CSPICE) (cspice_ckw03 in Icy and Mice)
CKW05 (ckw05_c in CSPICE)
has been relaxed from checking for a magnitude ``close'' to 1 to simply
ensuring that the input quaternions are non-zero.
Top
New SPICELIB Interfaces
The following 3d and 6d vector APIs were added to SPICELIB:
dvnorm calculates the derivative of the norm of a
3-vector.
dhfa calculates the value of the time derivative
of the half angle of a spherical body given
a state vector and body radius.
The following auxiliary APIs were added to SPICELIB:
bodc2s translates a body ID code to either the
corresponding name, or if no name to ID code
mapping exists, the string representation
of the body ID value.
Top
New CSPICE Interfaces
The following 3d and 6d vector APIs were added to CSPICE:
ducrss_c computes the unit vector parallel to the
cross product of two 3-dimensional vectors,
and the derivative of this unit vector.
dvcrss_c computes the cross product of two
3-dimensional vectors and the derivative of
this cross product.
dvnorm_c calculates the derivative of the norm of a
3-vector.
The following lower-level DAF access APIs were added to CSPICE:
dafgsr_c reads a portion of the contents of a summary
record in a DAF file.
dafrfr_c reads the contents of the file record of
a DAF.
The following auxiliary APIs were added to CSPICE:
bodc2s_c translates a body ID code to either the
corresponding name, or if no name to ID code
mapping exists, the string representation
of the body ID value.
dp2hx_c converts a double precision number to an
equivalent character string using base 16
``scientific notation.''
hx2dp_c converts a string representing a double
precision number in a base 16 ``scientific
notation'' into its equivalent double
precision number.
Top
New Icy Interfaces
The following 3d and 6d vector APIs were added to Icy:
cspice_ducrss computes the unit vector parallel to the
cross product of two 3-dimensional vectors
and the derivative of this unit vector.
cspice_dvcrss computes the cross product of two
3-dimensional vectors and the derivative of
this cross product.
cspice_dvnorm calculates the derivative of the norm of a
3-vector.
cspice_dvsep calculates the time derivative of the
separation angle between states.
The following auxiliary APIs were added to Icy:
cspice_bodc2s translates a body ID code to either the
corresponding name or if no name to ID code
mapping exists, the string representation
of the body ID value.
cspice_dp2hx converts a double precision number to an
equivalent character string using base 16
``scientific notation.''
cspice_hx2dp converts a string representing a double
precision number in a base 16 ``scientific
notation'' into its equivalent double
precision number.
Top
New Mice Interfaces
The following 3d and 6d vector APIs were added to Mice:
cspice_ducrss computes the unit vector parallel to the
cross product of two 3-dimensional vectors
and the derivative of this unit vector.
cspice_dvcrss computes the cross product of two
3-dimensional vectors and the derivative of
this cross product.
cspice_dvdot computes the time derivative of the dot
product of two position vectors.
cspice_dvhat calculates the unit vector corresponding
to a state or states and the derivative of
the unit vector.
cspice_dvnorm calculates the derivative of the norm of a
3-vector.
cspice_dvsep calculates the time derivative of the
separation angle between states.
cspice_vnorm returns the magnitude of a double
precision, 3-dimensional array or set of
such arrays.
cspice_vperp calculates the component of a vector
perpendicular to a second vector.
The following EK-access APIs were added to Mice:
cspice_ekfind finds E-kernel data that satisfy a set of
constraints.
cspice_eknelt returns the number of elements in a
specified column entry in the current row.
cspice_ekgc returns an element of string (character)
data from a specified row in a specified
column of the set of rows matching
the previous cspice_ekfind query.
cspice_ekgd returns an element of double precision
data from a specified row in a specified
column of the set of rows matching
the previous cspice_ekfind query.
cspice_ekgi returns an element of integer
data from a specified row in a specified
column of the set of rows matching
the previous cspice_ekfind query.
The following time conversion APIs were added to Mice:
cspice_unitim returns the double precision value of
an input epoch converted from one uniform
time scale to another.
The following auxiliary APIs were added to Mice:
cspice_bodc2s translates a body ID code to either the
corresponding name, or if no name to ID code
mapping exists, the string representation
of the body ID value.
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to the Toolkit:
Spacecraft:
-5 AKATSUKI
-5 VCO
-121 BEPICOLOMBO
-177 GRAIL-A
-181 GRAIL-B
-202 MAVEN
-205 SOIL MOISTURE ACTIVE AND PASSIVE
-205 SMAP
-362 RADIATION BELT STORM PROBE A
-362 RBSP_A
-363 RADIATION BELT STORM PROBE B
-363 RBSP_B
Satellites:
550 HERSE
653 AEGAEON
Comets:
1000093 TEMPEL_1
Asteroids:
2000021 LUTETIA
2004179 TOUTATIS
Top
Documentation
Top
Overwriting Input Arguments Not Allowed
The following SPICELIB routines were designed to allow applications to
call them in such a way that input arguments could overwrite output
arguments. However, this usage is a violation of the Fortran 77
standard; it also causes failures in some environments when SPICELIB is
compiled with optimization (currently SPICELIB is optimized only for
Intel Fortran environments). So, the header documentation of affected
SPICELIB routines has been updated to not suggest this calling
technique. The affected routines are:
CYCLAD CYCLAI DUCRSS DVCRSS INVERT INVSTM MTXM
MTXV MXM MXMT MXV PACKAC PACKAD PACKAI
ROTMAT ROTVEC SAELGV UNORM UNORMG VADD VADDG
VCRSS VHATG VMINUG VMINUS VPROJ VPROJG VSCL
VSCLG VSUB VSUBG XPOSBL XPOSE XPOSEG
Top
Bug Fixes
Top
Kernel Pool Watcher Deletion in TKFRAM
The watcher deletion algorithm has been corrected to delete watchers
only when the variables they watch are dumped from the local buffer.
Top
Frame Change in CKGP
CKGP now computes the transformation from the requested frame to the
applicable CK segment's base frame via a call to REFCHG. Formerly CKGP
performed this transformation using FRMCHG, which required that angular
velocity data describing the relative motion of these frames be
available.
Top
ROTGET Dynamic Frame ID
ROTGET formerly passed the frame class ID rather than the frame ID to
private routine ZZDYNROT, which handles dynamic frame transformations.
Since by convention these IDs are identical for dynamic frames, the
error had no practical effect. The error has been corrected. The shadow
private routine ZZROTGT0 has been corrected as well. Note that the error
does not apply to the second-level private shadow routine ZZROTGT1.
Top
ZZEKQCON Initialization Error
The private routine ZZEKQCON could in some cases access uninitialized
variables when working with null column entries. This has been
corrected.
Top
ZZEKRD03 Memory Violation Error
The private routine ZZEKRD03 had a bug that caused it to overwrite local
memory. Prior to the N0064 version of SPICELIB, this error had been
benign on all supported platforms. The error has been corrected.
Top
EK Strings Longer Than 1024 Characters
Although the EK Required Reading states that variable-length strings in
EK columns are limited to 1024 characters in length, the EK writer
routines don't enforce this limit, and some users have created kernels
that violate the limit. Various routines that support EK query and fetch
operations had assumed that the limit was in effect and were subject to
substring boundary violations when these long strings were encountered.
In addition, the semantics of string comparisons for excessively long
strings were undefined.
A compromise solution was selected: EK routines that perform
variable-length EK column entry string comparisons now treat only the
first 1024 characters of strings as significant.
The following private routines were updated to effect this change:
ZZEKECMP
ZZEKFRX
ZZEKSCMP
ZZEKVMCH
This fix also corrects the substring boundary violations.
Top
RETURN Mode Logic in Various Routines
The following routines were corrected to ensure that they avoid making
branch decisions based on uninitialized data after encountering a SPICE
error while in RETURN mode:
ILUMIN
SPKAPO
SPKEZ
SUBPNT
SUBSLR
ZZSPKEZ0
ZZSPKEZ1
Top
Version 63 --- April 2009
Top
Environments
Top
New Environments
The SPICE Toolkit is now officially supported on these new environments:
FORTRAN Toolkit:
Mac/Intel OS-X GFORTRAN
PC Linux GFORTRAN
Icy:
PC Linux gCC / IDL 6.4 / 64bit
Sun Solaris gCC / IDL 6.4 / 64bit
Mice:
PC Linux gCC / MATLAB 7.x / 64bit
Top
Complete List of Supported Environments
This is the complete list of environments on which the N0063 version of
the SPICE Toolkit is supported:
FORTRAN Toolkit:
Mac/Intel OS-X Intel FORTRAN
Mac/Intel OS-X GFORTRAN
Mac/PowerPC OS-X Absoft FORTRAN
Mac/PowerPC OS-X g77
PC CYGWIN g77
PC Linux g77
PC Linux GFORTRAN
PC Linux Intel FORTRAN
PC Windows Compaq Visual (Digital) FORTRAN
PC Windows Intel FORTRAN
PC Windows Lahey FORTRAN 95
Sun Solaris SUN FORTRAN
CSPICE:
Mac/Intel OS-X Apple C
Mac/PowerPC OS-X Apple C
PC CYGWIN gCC
PC Linux gCC / 32bit
PC Linux gCC / 64bit
PC Windows MS Visual C
Sun Solaris gCC / 32bit
Sun Solaris gCC / 64bit
Sun Solaris SUN C
Icy:
Mac/Intel OS-X Apple C / IDL 6.4 / 32bit
Mac/PowerPC OS-X Apple C / IDL 6.4 / 32bit
PC Linux gCC / IDL 6.4 / 32bit
PC Linux gCC / IDL 6.4 / 64bit
PC Windows MS Visual C / IDL 6.4 / 32bit
Sun Solaris gCC / IDL 6.4 / 32bit
Sun Solaris gCC / IDL 6.4 / 64bit
Sun Solaris SUN C / IDL 6.4 / 32bit
Mice:
Mac/Intel OS-X Apple C / MATLAB 7.x / 32bit
Mac/PowerPC OS-X Apple C / MATLAB 7.x / 32bit
PC Linux gCC / MATLAB 7.x / 32bit
PC Linux gCC / MATLAB 7.x / 64bit
PC Windows MS Visual C / MATLAB 7.x / 32bit
Top
Lahey Memory Issue Related to File Opening/Closing
The Lahey memory issue related to file opening/closing described in the
N0061 section of this document still persists in the N0063 version of
the Toolkit.
Top
Scratch EK File Issue in Icy on PC/Windows
The scratch EK file issue in Icy on PC/Windows described in the N0061
section of this document still persists in the N0063 version of the
Toolkit.
Top
Geometry Finder (GF) Subsystem
The N0063 version offers the first official release of the initial set
of the SPICE Geometry Finder (GF) subsystem interfaces. The GF subsystem
answers questions such as:
-- find the time(s) or time span(s) when a selected orbital geometric
condition is "true" (e.g. a condition such as an occultation or transit)
-- find the time(s) or time span(s) when a specified geometric quantity, such
as range or phase angle, is within a specified range.
The GF Required Reading document, gf.req, provides a comprehensive
description of the GF subsystem and its high-, mid-, and low-level APIs
and includes numerous usage examples.
For your convenience, the language-specific high-level GF APIs included
in this release are listed in the three subsections below.
Top
SPICELIB High-Level GF APIs
SPICELIB High-Level GF APIs for finding times of events satisfying
numerical constraints are:
GFDIST determines time intervals when a specified
constraint on observer-target distance is met.
GFPOSC determines time intervals when a coordinate of an
observer-target position vector satisfies a
numerical constraint.
GFSEP determines time intervals when the angular
separation between the position vectors of two
target bodies relative to an observer satisfies a
numerical relationship.
GFSNTC determines time intervals when a coordinate of a
ray-surface intercept position vector satisfies a
numerical constraint.
GFSUBC determines time intervals when a coordinate of a
sub-observer point position vector satisfies a
numerical constraint.
SPICELIB High-Level GF APIs for finding times of events satisfying FOV
constraints are:
GFRFOV determines time intervals when a specified ray
intersects the space bounded by the field-of-view
(FOV) of a specified instrument.
GFTFOV determines time intervals when a specified
ephemeris object intersects the space bounded by
the field-of-view (FOV) of a specified
instrument.
SPICELIB High-Level GF APIs for finding times of occultations are:
GFOCLT determines time intervals when an observer sees
one target occulted by another.
Top
CSPICE High-Level GF APIs
CSPICE High-Level GF APIs for finding times of events satisfying
numerical constraints are:
gfdist_c determines time intervals when a specified
constraint on observer-target distance is met.
gfposc_c determines time intervals when a coordinate of an
observer-target position vector satisfies a
numerical constraint.
gfsep_c determines time intervals when the angular
separation between the position vectors of two
target bodies relative to an observer satisfies a
numerical relationship.
gfsntc_c determines time intervals when a coordinate of a
ray-surface intercept position vector satisfies a
numerical constraint.
gfsubc_c determines time intervals when a coordinate of a
sub-observer point position vector satisfies a
numerical constraint.
CSPICE High-Level GF APIs for finding times of events satisfying FOV
constraints are:
gfrfov_c determines time intervals when a specified ray
intersects the space bounded by the field-of-view
(FOV) of a specified instrument.
gftfov_c determines time intervals when a specified
ephemeris object intersects the space bounded by
the field-of-view (FOV) of a specified
instrument.
CSPICE High-Level GF APIs for finding times of occultations are:
gfoclt_c determines time intervals when an observer sees
one target occulted by another.
Top
Icy and Mice High-Level GF APIs
Icy and Mice High-Level GF APIs for finding times of events satisfying
numerical constraints are:
cspice_gfdist determines time intervals when a specified
constraint on observer-target distance is met.
cspice_gfposc determines time intervals when a coordinate of an
observer-target position vector satisfies a
numerical constraint.
cspice_gfsep determines time intervals when the angular
separation between the position vectors of two
target bodies relative to an observer satisfies a
numerical relationship.
cspice_gfsntc determines time intervals when a coordinate of a
ray-surface intercept position vector satisfies a
numerical constraint.
cspice_gfsubc determines time intervals when a coordinate of a
sub-observer point position vector satisfies a
numerical constraint.
Icy and Mice High-Level GF APIs for finding times of events satisfying
FOV constraints are:
cspice_gfrfov determines time intervals when a specified ray
intersects the space bounded by the field-of-view
(FOV) of a specified instrument.
cspice_gftfov determines time intervals when a specified
ephemeris object intersects the space bounded by
the field-of-view (FOV) of a specified
instrument.
Icy and Mice High-Level GF APIs for finding times of occultations are:
cspice_gfoclt determines time intervals when an observer sees
one target occulted by another.
Top
SPICELIB/CSPICE/Icy/Mice
Top
SURFPV/surfpv_c (SPICELIB/CSPICE only)
The SURFPV routine (surfpv_c in SPICE) finding the state (position and
velocity) of the surface intercept defined by a specified ray, ray
velocity, and ellipsoid was added to the Toolkit.
Top
DVSEP/dvsep_c (SPICELIB/CSPICE only)
The DVSEP function (dvsep_c in CSPICE) calculating the time derivative
of the separation angle between two input states was added to the
Toolkit.
Top
GETFOV
The header of the GETFOV routine (getfov_c in CSPICE, cspice_getfov in
Icy and Mice) was updated to provide a comprehensive specification of
the IK keywords used to define FOVs and to include more practical
examples of FOV definitions.
Top
FURNSH
The FURNSH routine (furnsh_c in CSPICE, cspice_furnsh in Icy and Mice)
was updated to support continued path values and to reject files with
names longer than 255 characters.
Top
Improved Error Messages from PXFORM/SXFORM
The formerly rather cryptic error messages ``There is insufficient
information available to transform from ... to frame ....'' generated by
PXFORM/SXFORM (pxform_c/sxform_c in CSPICE, cspice_pxform/cspice_sxform
in Icy and Mice) have been improved to provide more context and to
suggest what SPICE data may be missing.
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to the Toolkit:
Spacecraft:
-5 PLC
-5 PLANET-C
-68 MMO
-68 MERCURY MAGNETOSPHERIC ORBITER
-69 MPO
-69 MERCURY PLANETARY ORBITER
-140 EPOCH
-140 DIXI
Asteroids:
2002867 STEINS
Top
Mice (MATLAB interface to CSPICE) Only
Top
New Interfaces
NAIF added the following interfaces to Mice for this release:
cspice_cgv2el
cspice_el2cgv
cspice_lmpool
cspice_nvc2pl
cspice_nvp2pl
cspice_saelgv
cspice_vrotv
cspice_wncard
cspice_wnsumd
cspice_wnvald
Top
New and Updated Applications
Top
FRMDIFF
The FRMDIFF program was added to the application set included in each
SPICE toolkit. This program samples orientation of a reference frame
known to SPICE or computes differences between orientations of two
reference frames known to SPICE, and either displays this orientation or
these differences, or shows statistics about it or them.
Refer to the FRMDIFF User's Guide, frmdiff.ug, for more information
about the program.
Top
CKBRIEF
The CKBRIEF program was updated to display names of the frames
associated with CK IDs when the new command line option ``-n'' is
specified. The help information that the program displays when the
command line option ``-h'' is specified was updated for clarity and
contents.
Top
Documentation
Top
Language Specific Required Reading Documents
The following Required Reading documents have been adapted for Icy and
Mice:
gf.req
frames.req
kernel.req
naif_ids.req
time.req
windows.req
Top
CKBRIEF User's Guide
The CKBRIEF User's Guide, ckbrief.ug, was fully rewritten to describe
new features added to the program and to provide examples illustrating
all aspects of the program's functionality.
Top
Bug Fixes
Top
SINCPT, SRFXPT
The routines SINCPT and SRFXPT were modified to not perform the quick
test for non-intersection when observer-target distance is less than
target's maximum radius.
Top
POOL Watchers
A new POOL entry point DWPOOL (delete watch from pool) has been added.
This routine deletes a specified agent from all POOL data structures
that associate kernel variables and agents.
Watcher overflow detection logic has been corrected in SWPOOL.
In the following routines, watched kernel variables are no longer
considered to be buffered when a lookup of one of these variables fails:
BODC2N (via changes to ZZBODTRN)
BODDEF (via changes to ZZBODTRN)
BODN2C (via changes to ZZBODTRN)
SCPART
SCTYPE
SCTK01 (SC01 entry point)
SCFM01 (SC01 entry point)
SCTE01 (SC01 entry point)
SCET01 (SC01 entry point)
SCEC01 (SC01 entry point)
TTRANS
UNITIM
Top
Frame subsystem
TKFRAM has been updated to use DWPOOL when it deletes a frame
specification from its internal buffer; this corrects a bug that caused
the watcher system to overflow when a large number of TK frame
specifications were used.
Top
Error handling
OUTMSG has been updated so that it correctly displays very long strings
that have been substituted into the long error message.
Top
Non-printing Character Detection in Time System
The low-level time string parser routines called by STR2ET (str2et_c in
CSPICE, cspice_str2et in Icy and Mice), UTC2ET (utc2et_c in CSPICE,
cspice_utc2et in Icy and Mice), and TPARSE (tparse_c in CSPICE,
cspice_tparse in Icy and Mice) were updated to detect non-printing
characters with ASCII codes greater than 126.
Top
MKSPK
The program was updated to prevent signaling an error due to round off
in the computed time step when creating Type 8 or Type 12 SPK files.
Top
CKBRIEF
Two bugs in CKRBIEF were fixed: hanging up when no value is provided
after the ``-f'' option and displaying a warning message and an
incomplete summary in case of an insufficient buffer space. In the
latter case the program now displays an error message.
Top
Version 62 --- March 2008
Top
Environments
Top
New Environments
The SPICE Toolkit is now officially supported on this new environment:
FORTRAN Toolkit:
PC Linux Intel FORTRAN
Top
Complete List of Supported Environments
This is the complete list of environments on which the N0062 version of
the SPICE Toolkit is supported:
FORTRAN Toolkit:
Mac/Intel OS-X Intel FORTRAN
Mac/PowerPC OS-X Absoft FORTRAN
Mac/PowerPC OS-X g77
PC CYGWIN g77
PC Linux g77
PC Linux Intel FORTRAN
PC Windows Compaq Visual (Digital) FORTRAN
PC Windows Intel FORTRAN
PC Windows Lahey FORTRAN 95
Sun Solaris SUN FORTRAN
CSPICE:
Mac/Intel OS-X Apple C
Mac/PowerPC OS-X Apple C
PC CYGWIN gCC
PC Linux gCC / 32bit
PC Linux gCC / 64bit
PC Windows MS Visual C
Sun Solaris gCC / 32bit
Sun Solaris gCC / 64bit
Sun Solaris SUN C
Icy:
Mac/Intel OS-X Apple C / IDL 6.4 / 32bit
Mac/PowerPC OS-X Apple C / IDL 6.4 / 32bit
PC Linux gCC / IDL 6.4 / 32bit
PC Windows MS Visual C / IDL 6.4 / 32bit
Sun Solaris gCC / IDL 6.4 / 32bit
Sun Solaris SUN C / IDL 6.4 / 32bit
Mice:
Mac/Intel OS-X Apple C / MATLAB 7.x / 32bit
Mac/PowerPC OS-X Apple C / MATLAB 7.x / 32bit
PC Linux gCC / MATLAB 7.x / 32bit
PC Windows MS Visual C / MATLAB 7.x / 32bit
Top
Use of -m32 Option
The CSPICE library provided with the CSPICE, Icy, and Mice toolkits for
PC / Linux / gCC / 32bit environment compiles with the -m32 option to
produce 32bit code when recompiled on a 64bit PC.
Top
Lahey Memory Issue Related to File Opening/Closing
The Lahey memory issue related to file opening/closing described in the
N0061 section of this document still persists in the N0062 version of
the Toolkit.
Top
Scratch EK File Issue in Icy on PC/Windows
The scratch EK file issue in Icy on PC/Windows described in the N0061
section of this document still persists in the N0062 version of the
Toolkit.
Top
Mice
The N0062 version offers the first official release of Mice, the ANSI
based interface between the MATLAB environment, a product of Mathworks,
Inc. (http://www.mathworks.com), and the CSPICE library. If you
downloaded a Mice package, refer to ``mice.req'' document and to the
Mice HTML documentation pointed to by ``doc/html/index.html'' for more
details.
Top
SPICELIB/CSPICE/Icy/Mice
Top
New ``Surface Intercept'' routine SINCPT
Given an observer and a direction vector defining a ray, the new routine
SINCPT (sincpt_c in CSPICE, cspice_sincpt in Icy and Mice) computes the
surface intercept of the ray on a target body at a specified epoch,
optionally corrected for light time and stellar aberration. This routine
supersedes SRFXPT (srfxpt_c, cspice_srfxpt), which does not have an
input argument for the target body-fixed frame name.
Top
New ``Illumination Angles'' routine ILUMIN
The new routine ILUMIN (ilumin_c in CSPICE, cspice_ilumin in Icy and
Mice) finds the illumination angles (phase, solar incidence, and
emission) at a specified surface point of a target body. This routine
supersedes ILLUM (illum_c, cspice_illum), which doesn't have an input
argument for the target body-fixed frame name.
Top
New ``Sub-observer Point'' routine SUBPNT
The new routine SUBPNT (subpnt_c in CSPICE, cspice_subpnt in Icy and
Mice) computes the rectangular coordinates of the sub-observer point on
a target body at a specified epoch, optionally corrected for light time
and stellar aberration. This routine supersedes SUBPT (subpt_c,
cspice_subpt), which does not have an input argument for the target
body-fixed frame name.
Top
New ``Sub-solar Point'' Routine SUBSLR
The new routine SUBSLR (subslr_c in CSPICE, cspice_subslr in Icy and
Mice) computes the rectangular coordinates of the sub-solar point on a
target body at a specified epoch, optionally corrected for light time
and stellar aberration. This routine supersedes SUBSOL (subsol_c,
cspice_subsol), which does not have an input argument for the target
body-fixed frame name.
Top
Improvements of Aberration Corrected Velocity in the SPK Subsystem
NAIF has upgraded the algorithms used by the SPICE Toolkit's SPK
subsystem to improve the accuracy of certain velocity results returned
by that subsystem. The new algorithms improve the accuracy of velocities
that are corrected for light time alone, or both light time and stellar
aberration. The new algorithms use the same non-relativistic models for
aberration corrections as do the current SPK algorithms, but the new
implementations of the velocity calculations are more accurate.
The changes improve the accuracy of certain derived quantities,
including range rates and times of periapse or apoapse, when aberration
corrections are used. These changes improve current SPICE computations
as well as being necessary for implementation of the upcoming geometric
event finding subsystem.
The changes do not affect the computation of aberration-corrected
position vectors, nor do they affect uncorrected (``geometric'') states
(position and velocity).
A few examples of the magnitudes of improvements afforded by the new
algorithms are shown below. All velocities are inertially referenced.
-- Range rate of the light time corrected position of the Moon as seen from
the DSN station DSS-25: 1 cm/sec
-- Range rate of the light time and stellar aberration corrected position of
the Moon as seen from DSS-25: 13 cm/sec
-- Range rate of the light time corrected position of Mars as seen from
DSS-25: 55 cm/sec
-- Range rate of the light time and stellar aberration corrected position of
Mars as seen from DSS-25: 1.6 m/sec
-- Range rate of the light time corrected position of Cassini as seen from
DSS-25: 9 cm/sec
-- Range rate of the light time and stellar aberration corrected position of
Cassini as seen from DSS-25: 3.4 m/sec
-- Velocity of the Neptune barycenter, as seen from DSS-25, corrected for
light time: 25 cm/sec
-- Velocity of the Neptune barycenter, as seen from DSS-25, corrected for
light time and stellar aberration: 400 m/sec
Negative effects of the changes are
-- Velocity computations using stellar aberration corrections are slower; the
extent of the effect varies considerably depending on the inputs to the
computations, but tests indicate that some common computations would be
slower by a factor of 2.
But take note: since computation of aberration-corrected states is
usually a small fraction of the computational workload of SPICE-based
applications, the effect on the speed of SPICE-based applications is
very small, and in a majority of cases would likely not be discernible
at all.
Also note, the effect on speed of an application that simply ``reads''
state vectors from an SPK file is nil since aberration corrections are
not used for this purpose.
-- Using the upgraded algorithms would change outputs of some SPICE-based user
applications. In these situations, a user's regression tests could be
affected.
-- If a user's application counts on the specific, current implementation of
velocity aberration corrections, a problem could occur.
NAIF believes any possible negative consequences are outweighed by the
benefits of improved accuracy.
Below we briefly describe the differences between the old and new
aberration correction algorithms.
The previous SPK light time correction algorithms introduce errors by
ignoring the rate of change of light time with respect to time. This
occurs in two places:
-- In computation of light-time corrected velocity referenced to inertial
reference frames
-- In computation of light-time corrected velocity referenced to non-inertial
reference frames centered at an object other than the observer.
The new light time algorithms correct both of these errors.
SPICE supports stellar aberration correction only when light time
correction is used as well.
Previously, the velocity returned when light time and stellar aberration
corrections were used is identical to that returned when only light time
correction is used.
The new algorithm computes light time and stellar aberration-corrected
velocity as the derivative with respect to time of light time and
stellar aberration-corrected position.
Top
New SPK Routines
To support improvements to the SPK subsystem described above, three new
SPK routines were added (described below). In most cases SPICE users
would not call one of these routines, using the high-level APIs SPKEZR
or SPKEZ instead. For the N0062 release these routines are available
only in SPICELIB and CSPICE.
-
SPKACS
-
The new routine SPKACS (spkacs_c in CSPICE) returns the state (position
and velocity) of a target body relative to an observer, optionally
corrected for light time and stellar aberration, expressed relative to
an inertial reference frame.
-
SPKAPS
-
Given the state and acceleration of an observer relative to the solar
system barycenter, the new routine SPKAPS (spkaps_c in CSPICE) returns
the state (position and velocity) of a target body relative to the
observer, optionally corrected for light time and stellar aberration.
All input and output vectors are expressed relative to an inertial
reference frame.
-
SPKLTC
-
The new routine SPKLTC (spkltc_c in CSPICE) returns the state (position
and velocity) of a target body relative to an observer, optionally
corrected for light time, expressed relative to an inertial reference
frame.
Top
New Binary PCK Coverage Routines PCKFRM and PCKCOV
The new PCK coverage determination routine PCKCOV (pckcov_c in CSPICE)
provides an API with which an application can find the time period(s)
during which a specified binary PCK file provides data for a specified
reference frame. The coverage information is a set of disjoint time
intervals returned in a SPICE ``window'' data structure.
The new PCK routine PCKFRM (pckfrm_c in CSPICE) provides an API via
which an application can find the set of reference frames for which a
specified binary PCK file contains data. The coverage information is
returned in a SPICE ``set'' data structure.
For the N0062 release these routines are available only in SPICELIB and
CSPICE.
Top
New Routine WNCARD
The new routine WNCARD (wncard_c in CSPICE, cspice_wncard in Icy)
returns the cardinality -- number of intervals -- of a SPICE ``window''
data structure.
For the N0062 release this routine is available only in SPICELIB,
CSPICE, and Icy.
Top
New Routine EDTERM
The new routine EDTERM computes a set of points on the umbral or
penumbral terminator of a specified target body, where the target shape
is modeled as an ellipsoid.
For the N0062 release this routine is available only in SPICELIB.
Top
SCLK Buffer Size Increase
The sizes of the internal buffers in the SCLK subsystem have been
increased to allow SCLK kernels to include up to 9,999 partitions.
Top
TABs in Text Kernels
The low level routines called by the SPICE kernel loader routine FURNSH
were modified to ignore TAB characters present in text kernels files on
all supported environments.
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to the Toolkit:
Spacecraft:
-18 LCROSS
-29 NEXT
-86 CH1
-86 CHANDRAYAAN-1
-131 KAGUYA
-140 EPOXI
-151 CHANDRA
-187 SOLAR PROBE
Satellites:
636 AEGIR
637 BEBHIONN
638 BERGELMIR
639 BESTLA
640 FARBAUTI
641 FENRIR
642 FORNJOT
643 HATI
644 HYROKKIN
645 KARI
646 LOGE
647 SKOLL
648 SURTUR
649 ANTHE
650 JARNSAXA
651 GREIP
652 TARQEQ
809 HALIMEDE
810 PSAMATHE
811 SAO
812 LAOMEDEIA
813 NESO
The following built-in NAIF ID code/name definitions for Jovian system
satellites have been modified to conform to the current name/body
mapping:
Satellites:
540 MNEME
541 AOEDE
542 THELXINOE
543 ARCHE
544 KALLICHORE
545 HELIKE
546 CARPO
547 EUKELADE
548 CYLLENE
549 KORE
The following provisional default NAIF ID code/name definitions have
been removed:
Spacecraft:
-172 SPACETECH-3 COMBINER
-174 PLUTO-KUIPER EXPRESS
-175 PLUTO-KUIPER EXPRESS SIMULATION
-205 SPACETECH-3 COLLECTOR
Satellites:
514 1979J2
515 1979J1
516 1979J3
610 1980S1
611 1980S3
612 1980S6
613 1980S13
614 1980S25
615 1980S28
616 1980S27
617 1980S26
706 1986U7
707 1986U8
708 1986U9
709 1986U4
710 1986U6
711 1986U3
712 1986U1
713 1986U2
714 1986U5
715 1985U1
718 1986U10
901 1978P1
The spelling in the following built-in NAIF ID code/name definitions
have been corrected:
Satellites:
MAGACLITE to MEGACLITE
The following built-in objects have been renamed:
Spacecraft:
STV-1 to STV51
STV-2 to STV52
STV-3 to STV53
Satellites:
ERRIAPO to ERRIAPUS
Top
Icy (IDL interface to CSPICE) Only
Top
New and Updated Interfaces
NAIF added the following interfaces to Icy for this release:
cspice_getelm
cspice_spkw10
cspice_wncard
cspice_subpnt
cspice_subslr
cspice_dafac
cspice_dafdc
cspice_dafec
cspice_subpnt
cspice_subslr
cspice_sincpt
These Icy interfaces now process vectorized arguments:
cspice_etcal
cspice_furnsh
cspice_unload
These Interfaces have been removed from Icy:
cspice_spkw15
cspice_spkw17
Top
Documentation
Top
Permuted Index for Icy and Mice
The permuted index documents have been added to the ASCII and HTML
documentation sets provided with the Icy and Mice Toolkits.
Top
BRIEF User's Guide
The BRIEF User's Guide, brief.ug, was fully rewritten to describe new
features added to the program and to provide examples illustrating all
aspects of the program's functionality.
Top
Documentation on NAIF Web Server
The documentation provided in the generic SPICE, CSPICE, Icy and Mice
Toolkits is now also available at this URL on the NAIF Web server:
http://naif.jpl.nasa.gov/naif/documentation.html
Top
BRIEF
The BRIEF utility program was modified to:
-- summarize binary PCK files
-- summarize SPK files provided in meta-kernels
-- display times as calendar UTC (``-utc'' option), day-of-year UTC
(``-utcdoy'' option), and ET seconds (``-etsec'' option)
-- detect attempts to summarize unsupported kernel types (CK, EK, transfer
format kernels, etc.)
The program's help and usage displays as well as the formats of the
summary reports were improved. The internal buffers holding summary
information were increased to allow summarizing SPK files or file sets
containing up to 100,000 bodies.
Top
CKBRIEF
The CKBRIEF utility program was modified to:
-- summarize CK files provided in meta-kernels
-- detect attempts to summarize unsupported kernel types (SPK, binary PCK, EK,
transfer format kernels, etc.)
The program's help and usage displays were improved. The internal
buffers holding summary information were increased to allow summarizing
CK files containing up to 100,000 segments.
Top
MKSPK
The capability to accept time tags given as ET seconds past J2000 was
added to the program. The TIME_WRAPPER setup keyword must be set to the
special value '# ETSECONDS' to make the program recognize and process
such time tags.
Top
SUBPT Cookbook
The cookbook program SUBPT was updated to illustrate use of the new
``sub-observer point'' routine SUBPNT.
Top
Bug Fixes
Top
EV2LIN
Corrected error in the calculation of the C4 term due to typographic
error in expression.
Top
HYPTOF
An error in the HYPTOF routine affecting cases of evaluating elements of
a hyperbolic trajectory with a very large eccentricity with respect to a
small body (low gravity) has been fixed.
Top
INELPL
The routine's specification and behavior have been updated so the
routine now returns a meaningful result for the case of an ellipse
consisting of a single point.
Also, in the degenerate case where the input ellipse is a line segment
of positive length, and this segment intersects the plane, the number of
intersection points is set to 1 rather than 2.
Top
RAXISA
Minor edit to the ANGLE declaration strictly identifying the constant as
a double. This change eliminates an occasional compiler warning.
Top
SC01
The routine was fixed to correctly insert spaces between fields when the
output field delimiter is blank.
Top
SRFXPT
The routine was corrected to no longer apply the light time improvement
logic in near-miss cases when a geometric solution is requested via
ABCORR.
Top
BRIEF
A number of bugs were fixed in the BRIEF utility program in the course
of the modifications described above. The two most significant of these
bugs were hanging up when no value was provided after ``-from'',
``-to'',``-at'', and ``-f'' options, and a logic expression error
causing the program's crash on the Intel FORTRAN environments.
Top
CKBRIEF
The bug causing an unsolicited grouping display on some C environments
was fixed.
Top
Header Updates
A number of formatting problems, typos, and errors in examples were
fixed in the SPICE, CSPICE, and Icy headers.
Top
Version 61 --- December 2006
Top
Rules Regarding Use of SPICE Components
The rules regarding use of SPICE components have been updated to reflect
the new ITAR clearance for the SPICE toolkit, documentation and data.
Please see the RULES page of the NAIF website:
http://naif.jpl.nasa.gov/naif/rules.html for details.
Top
Environments
Top
New Environments
The SPICE Toolkit is now officially supported on these new environments:
FORTRAN Toolkit:
Mac/Intel OS-X Intel FORTRAN
PC Windows Intel FORTRAN
CSPICE:
Mac/Intel OS-X Apple C
Sun Solaris gCC/64bit
Icy:
Mac/Intel OS-X Apple C / IDL 6.3
Top
Deprecated Environments
The SPICE Toolkit is no longer supported on these environments:
FORTRAN Toolkit:
HP UX-10 HP FORTRAN
Vax VMS Digital FORTRAN
CSPICE:
HP UX-10 HP C
Top
Complete List of Supported Environments
This is the complete list of environments on which the N0061 version of
the SPICE Toolkit is supported:
FORTRAN Toolkit:
Mac/Intel OS-X Intel FORTRAN
Mac/PowerPC OS-X Absoft FORTRAN
Mac/PowerPC OS-X g77
PC CYGWIN g77
PC Linux g77
PC Windows Compaq Visual (Digital) FORTRAN
PC Windows Intel FORTRAN
PC Windows Lahey FORTRAN 95
Sun Solaris SUN FORTRAN
CSPICE:
Mac/Intel OS-X Apple C
Mac/PowerPC OS-X Apple C
PC CYGWIN gCC
PC Linux gCC
PC Linux gCC/64bit
PC Windows Microsoft Visual C
Sun Solaris gCC
Sun Solaris gCC/64bit
Sun Solaris SUN C
Icy:
Mac/Intel OS-X Apple C / IDL 6.3
Mac/PowerPC OS-X Apple C / IDL 6.3
PC Linux gCC / IDL 6.3
PC Windows Microsoft Visual C / IDL 6.3
Sun Solaris gCC / IDL 6.3
Sun Solaris SUN C / IDL 6.3
Top
Use of -fPIC/-KPIC Option
The CSPICE library provided with the CSPICE and Icy toolkits is now
compiled with the -fPIC or -KPIC option resulting in
position-independent code, suitable for dynamic linking all environments
that support it.
Top
Lahey Memory Issue Related to File Opening/Closing
Users of Lahey FORTRAN under the Windows operating systems should be
aware that the F95 compiler allocates a small amount of memory, in
connection with the process of using file OPEN and INQUIRE statements,
that it might not free at the end of the file manipulation process.
Since the simple opening of a binary kernel file can involve multiple
OPEN and INQUIRE statements, the result of this allocation is that if
the user were to open many (e.g. 100 or more) kernel files, an
application program could sequester memory that would not be freed as
expected. A virtual memory error message such as "A work area cannot be
reserved because of insufficient area" may result from this situation.
This can adversely affect the stability of the Windows operating system,
even after the user program is terminated.
We believe that this behavior affects all versions of SPICELIB,
including the N61 version. We are working with Lahey to resolve this
issue.
Top
Scratch EK File Issue in Icy on PC/Windows
An issue may exist when using EK scratch files from IDL under Microsoft
Windows. The cspice_ekcls call may fail to delete the scratch file
created by the cspice_ekops call. This file normally has a name style
similar to tmp.Fxxxxx. You can manually delete the file only after you
close the IDL application.
This problem does not affect use of the file or cause any known
instability to Icy.
Top
Documentation
Starting with N0061 every SPICE toolkit package comes with a complete
set of HTML documentation consisting of:
-- brief introduction to the SPICE system
-- overview of specifics of SPICE implementation for a given language (for
CSPICE and Icy only)
-- description of the Toolkit package layout and contents
-- language specific summary of Most Used SPICE APIs by category
-- complete reference guide for all public APIs, derived from the source
headers and provided with an alphabetical index
-- Permuted Index of all public APIs
-- complete set of Required Reading documents, provided with an index
-- complete set of User's Guide documents, provided with an index
All HTML documents in this set are cross-hyperlinked -- every instance
of an API name in Required Reading, index or other documents is linked
to the API HTML page derived from its source code header; every
reference to a Required Reading document in the API HTML pages, indexes
and other documents is linked to the Required Reading's HTML page, and
so on. In some cases HTML pages are also linked to the actual source
code modules, specifically from the Permuted Index document and from the
bottom of each of the each individual API pages.
The top level index file
doc/html/index.html
provides a single entry point to all HTML documentation.
While the CSPICE and Icy set of individual API HTML pages contains a
page for each of the public routines, the SPICELIB (Fortran) set does
not provide HTML pages for about 30 routines that are different on
different environments. NAIF omitted them in this Toolkit version due to
some technical difficulties in assembling the Toolkit packages and will
try to fix this situation in the next release of the Toolkit.
Also, the SPICELIB HTML documentation set does not include links to a
small set of APIs that have names that are either common words (POS,
FRAME, ROTATE, RETURN) or terms (J2000, B1950) commonly used in the
SPICE documentation.
Top
New Applications
Top
MSOPCK
The MSOPCK program was added to the application set included in each
SPICE toolkit. This program converts attitude data provided in a text
file as UTC, SCLK, or ET-tagged quaternions, Euler angles, or matrices,
optionally accompanied by angular velocities, into a type 1, 2, or 3
SPICE C-kernel.
Refer to the MSOPCK User's Guide, msopck.ug, for more information about
the program.
Note: an earlier version of this program has been available in some
mission-specific Toolkits and through the NAIF website. We recommend
users replace that older version with this one.
Top
SPKDIFF
The SPKDIFF program was added to the application set included in each
SPICE toolkit. This program computes differences between geometric
states obtained from two SPK files and either displays these differences
or shows statistics about them.
Refer to the SPKDIFF User's Guide, spkdiff.ug, for more information
about the program.
Note: SPPKDIFF replaces a predecessor program named CMPSPK that had
limited distribution.
Top
SPICELIB/CSPICE/Icy
Top
KCLEAR Routine
A call to KCLEAR unloads all files loaded via FURNSH and clears the
kernel pool.
Calling KCLEAR at the end of an Icy-based IDL script ensures that
kernels loaded during script execution won't contaminate results from
Icy-based scripts run subsequently during the same IDL session.
Top
DAF Comment Area Routines
The former support library routines DAFAC, DAFDC, and DAFEC have been
moved into SPICELIB. These routines provide comment area access for
DAF-based files, such as SPK, CK, and binary PCK files. DAFAC appends to
the contents of a DAF's comment area text provided in a buffer. DAFDC
deletes all comments from the comment area. DAFEC extracts the contents
of the comment area into a buffer.
These routines are available in SPICELIB and CSPICE; they are not yet
supported in Icy.
Top
DAF-based Kernel Open Routines
The routines CKOPN, PCKOPN, and SPKOPN, which open new CK, binary PCK
and SPK kernels respectively, now are able to reserve a caller-specified
amount of space in the new file's comment area at the time of file
creation. This allows faster comment addition when comments must be
added after the kernel contains a large amount of data, since the data
need not be shifted to make room in the comment area.
The calling sequences of these routines have not changed. The routines'
input argument NCOMCH was previously disregarded; it now specifies the
amount of comment area space to reserve.
This change applies to SPICELIB, CSPICE, and Icy.
Top
DAFONW Routine
The routine DAFONW, which opens a new DAF, now initializes the DAF
comment area when comment area records are reserved. The comment records
are null-padded as before, but now the first character of the comment
area is initialized with the ``end-of-comments'' character. This
provides a correctly initialized empty comment area that can be accessed
by SPICE routines and utilities. Formerly this initialization had to be
carried out by the calling program.
This change supports the capability of reserving space in the comment
area now provided by the higher-level kernel opening routines CKOPN,
PCKOPN, and SPKOPN.
Top
SPKW02, SPKW03, and SPKW05 Routines
The restriction that the input reference frame should be inertial has
been removed from SPK Type 2, 3 and 5 writer routines SPKW02, SPKW03 and
SPKW05. Any application that calls there routines, including the MKSPK
program, can now create a type 2, 3, or 5 SPK file with data given with
respect to a non-inertial frame.
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to the Toolkit:
Spacecraft:
-61 JUNO
-76 MSL
-76 MARS SCIENCE LABORATORY
-85 LRO
-85 LUNAR RECON ORBITER
-85 LUNAR RECONNAISSANCE ORBITER
-212 STV-1
-213 STV-2
-214 STV-3
Satellites:
540 ARCHE
541 EUKELADE
546 HELIKE
547 AOEDE
548 HEGEMONE
551 KALLICHORE
553 CYLLENE
560 CARPO
561 MNEME
635 DAPHNIS
722 FRANCISCO
723 MARGARET
724 FERDINAND
725 PERDITA
726 MAB
727 CUPID
902 NIX
903 HYDRA
The following provisional name/ID mappings for the Jovian system
satellites were replaced or removed from the Toolkit:
539 'HEGEMONE' JXXXIX
540 'MNEME' JXL
541 'AOEDE' JXLI
542 'THELXINOE' JXLII
543 'ARCHE' JXLIII
544 'KALLICHORE' JXLIV
545 'HELIKE' JXLV
546 'CARPO' JXLVI
547 'EUKELADE' JXLVII
548 'CYLLENE' JXLVIII
The new mapping leaves the IDs 539, 542-545, 549, 550, 552, 554-559
unassigned.
The following name spelling correction has also been made:
632 METHODE to METHONE
Top
CSPICE Only
Top
New Wrappers
The following interfaces to SPICE routines were added to CSPICE in this
release:
dafac_c dafdc_c dafec_c
dafgda_c dascls_c dasopr_c
kclear_c
Top
Icy (IDL interface to CSPICE) Only
Top
New Interfaces
NAIF added the following new Icy interfaces for this release:
cspice_appndd cspice_appndi cspice_badkpv
cspice_dafgda cspice_dascls cspice_dasopr
cspice_inter cspice_kclear cspice_valid
Top
Bug Fixes
Top
CKE05
Several functional changes were made to the CK type 5 evaluator CKE05.
These changes affect all CK type 5 subtypes EXCEPT subtype 1, which is
used by the Mars Express, Rosetta, Venus Express, and SMART-1 missions.
These changes are not expected to affect current SPICE users.
First change: the evaluator now assumes that input rate information,
whether in the form of quaternion derivatives or angular velocity
vectors, has units of radians/second. This makes the routine's interface
consistent with SPICE conventions. This change affects subtypes 0, 2,
and 3.
Second change: the evaluator no longer attempts to improve interpolation
of quaternion derivatives by negating, if necessary, the derivatives
provided in the input record. This places on C-kernel creators the
burden of determining correct quaternion derivatives suitable for
Hermite interpolation. This decision was made because the selection
functionality cannot be implemented in a completely reliable way for the
case where the derivatives have very small magnitude (which in practice
is not a rare case). Quaternions themselves still WILL be negated if
necessary for correct Hermite interpolation. This change affects
subtypes 0 and 2.
Top
ET2LST
The bug for bodies with retrograde rotation causing the local time to
flow backwards has been fixed. The local time for all types of bodies
now progresses as expected -- midnight, increasing AM hours, noon,
increasing PM hours, next midnight, and so on.
Top
UNLOAD
The bug causing incorrect meta-kernel unloading was fixed. Formerly some
sequences of FURNSH and UNLOAD calls could cause UNLOAD to become unable
to unload meta-kernels correctly: in some cases, kernels referenced by
the meta-kernels were not unloaded when they should have been.
Top
STR2ET
Two bugs were fixed. The first bug caused the routine to return
incorrect results in some cases on calls following calls for which a
time zone was specified. The second bug caused the routine to generate a
memory violation exception for blank input strings on some environments
(HP).
Top
SURFPT
The ray's surface intercept is now always set to the ray's vertex when
the vertex is on the ellipsoid's surface. Formerly, for inward-pointing
direction vectors, the ray's point of egress from the ellipsoid was
selected as the intercept.
The new functionality is consistent with the routine's documentation,
which claims that the intercept closest to the ray's vertex is selected.
Top
CHRONOS
Two bugs were fixed. The first bug caused slightly incorrect computation
of the mean local second duration, which could have resulted in a leap
in the LST SOL counting. For landed Martian missions this bug would have
exhibited itself after approximately SOL 2100. The second bug prohibited
conversion from and to LST for local times a few seconds before
midnight, in the 23:59:00-23:59:59 range.
The important side effect of correcting the first bug is that due to the
fact that LST is returned with integer local seconds the result of any
conversion from and to LST differs slightly -- by less that 1 second --
from the same conversion done by the previous versions of the program.
Top
Icy
The bug causing a cascade of 'zzerror_c' strings prefixed to error
strings has been fixed.
Top
MKSPK
The bug causing the 8th input equinoctial element (DMPN/DT) to be
assigned to the 8th (DMPN/DT) and 9th (DNOD/DT) equinoctial elements
stored in the output SPK file when the first six equinoctial elements
were derived from input states or classical elements was fixed.
Top
Version 60 --- December 2005
The sole purpose of this version is to fix the bug described below. In
all other aspects the N0060 Toolkit is the same as the N0059 Toolkit.
Top
Bug Fixes
Top
Access to High Precision Binary Earth PCK
On December 13, 2005, a significant bug was found in the Fortran, C, and
IDL N0059 SPICE Toolkits: this bug results in corruption of data read
from high precision binary earth PCK files.
A second, probably rarely encountered, effect of the bug is that data
will be corrupted when read directly from routine TISBOD (tisbod_c in
CSPICE, cspice_tisbod in Icy), in cases where the input reference frame
name doesn't match the frame associated with the data in the source PCK.
This bug has been fixed in the N0060 Toolkit.
Top
Version 59 --- November 2005
Top
Rules Regarding Use of SPICE Components
The rules regarding use of SPICE components, already very minimal, have
been further relaxed and better articulated. Please see the RULES page
of the NAIF website: http://naif.jpl.nasa.gov/naif/rules.html for
details.
Top
Environments
Top
New Environments
The SPICE Toolkit is now officially supported on Sun/Solaris/64bit gcc
environment.
Top
Supported Environments
This is the complete list of environments on which the N0059 version of
the SPICE Toolkit is supported:
FORTRAN Toolkit:
HP UX-10 HP FORTRAN
Macintosh OS-X Absoft FORTRAN
Macintosh OS-X g77
PC CYGWIN g77
PC Linux g77
PC Windows Compaq Visual (Digital) FORTRAN
PC Windows Lahey FORTRAN 95
Sun Solaris SUN FORTRAN
Vax VMS Digital FORTRAN
CSPICE:
HP UX HP C
Macintosh OS-X Apple C
PC CYGWIN gCC
PC Linux gCC
PC Windows Microsoft Visual C
Sun Solaris SUN C
Sun Solaris gCC
Sun Solaris gCC/64bit
Icy:
Macintosh OS-X Apple C / IDL 6.2
PC Linux gCC / IDL 6.2
PC Windows Microsoft Visual C / IDL 6.2
Sun Solaris SUN C / IDL 6.2
Sun Solaris gCC / IDL 6.2
Top
Optimization for C/Icy environments
Optimization -O2 or equivalent is now used to compile CSPICE for all
supported C and Icy environments.
Top
Lahey Memory Issue Related to File Opening/Closing
Users of Lahey FORTRAN under the Windows operating systems should be
aware that the F95 compiler allocates a small amount of memory, in
connection with the process of using file OPEN and INQUIRE statements,
that it might not free at the end of the file manipulation process.
Since the simple opening of a binary kernel file can involve multiple
OPEN and INQUIRE statements, the result of this allocation is that if
the user were to open many (e.g. 100 or more) kernel files, an
application program could sequester memory that would not be freed as
expected. A virtual memory error message such as "A work area cannot be
reserved because of insufficient area" may result from this situation.
This can adversely affect the stability of the Windows operating system,
even after the user program is terminated.
We believe that this behavior affects all versions of SPICELIB,
including the soon to be released N59 version. We are working with Lahey
to resolve this issue.
Top
Scratch EK File Issue in Icy on PC/Windows
An issue may exist when using EK scratch files from IDL under Microsoft
Windows. The cspice_ekcls call may fail to delete the scratch file
created by the cspice_ekops call. This file normally has a name style
similar to tmp.Fxxxxx. You can manually delete the file only after you
close the IDL application.
This problem does not affect use of the file or cause any known
instability to Icy.
Top
SPICELIB/CSPICE/Icy
Top
Loading of Non-Native Text Kernels Files
Starting with this version of the toolkit, the CSPICE and Icy text
kernel loaders, furnsh_c/cspice_furnsh and ldpool_c/cspice_ldpool, can
read and parse non-native text files. Unfortunately this capability
cannot be provided in FORTRAN instances of the Toolkit.
Please be aware the CSPICE text file reader, rdtext_c, does not possess
the capability to read non-native text files.
Top
Additional Testing
A large amount of additional testing of existing SPICE interfaces and
capabilities was performed during preparation of this version of the
toolkit. This testing uncovered a small number of bugs, all of which
have been fixed for this release (see Section ``Bug Fixes'' below.)
Top
Deprecation of BODVAR in favor of BODVRD and BODVCD
Routine BODVAR has been deprecated due to deficiency of its interface
and a possibility that it may cause memory violation when used to
retrieve data for incorrectly formed text kernel keywords. Routines
BODVCD and BODVRD should be used instead of it.
Top
``In Place'' Routines
A number of routines parallel to existing interfaces but utilizing the
same argument for both input and output were added to SPICELIB (FORTRAN
Toolkit). These routines are:
cyacip.for
cyadip.for
cyaiip.for
vhatip.for
vsclip.for
xpsgip.for
Top
SPK Segment Buffer Increase
The SPK segment buffer size was increased to 30,000 to allow more
efficient read access to SPK files containing a large number of
segments, such as SPK files produced by ESA's Mars Express project.
Top
EK Buffer Increased
Buffers facilitating EK access have been increased to provide more
efficient read access to EK files containing a large numbers of records,
such as EK files produced by the Cassini project.
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to the Toolkit:
Spacecraft:
-98 NEW HORIZONS
-248 VENUS EXPRESS, VEX
-500 RSAT, SELENE Relay Satellite, SELENE Rstar, Rstar
-502 VSAT, SELENE VLBI Radio Satellite,
SELENE VRAD Satellite, SELENE Vstar
Asteroids:
2025143 ITOKAWA
Satellites:
539 HEGEMONE
540 MNEME
541 AOEDE
542 THELXINOE
543 ARCHE
544 KALLICHORE
545 HELIKE
546 CARPO
547 EUKELADE
548 CYLLENE
631 NARVI
632 METHODE
633 PALLENE
634 POLYDEUCES
Ground Stations:
399064 DSS-64
Top
Documentation
The PCK Required Reading document has been revised.
Top
CSPICE
Top
New Wrappers
The following interfaces to SPICE routines were added to CSPICE in this
release:
bodvcd_c.c
qdq2av_c.c
qxq_c.c
srfrec_c.c
Top
Icy (Interactive Data Language interface to CSPICE)
Top
Vectorization
NAIF modified the function of several Icy routines to support vectorized
variables (in the IDL sense) as input and output.
cspice_illum cspice_insrtd cspice_insrti cspice_oscelt
cspice_sce2c cspice_srfrec cspice_srfxpt cspice_subpt
cspice_removd cspice_removi
Top
New interfaces
NAIF added the following new Icy interfaces for this release:
cspice_bodvcd cspice_diff cspice_insrtd cspice_insrti
cspice_qdq2av cspice_qxq cspice_removd cspice_removi
cspice_sdiff cspice_set cspice_srfrec cspice_union
Top
Bug Fixes
Top
Non-standard Use of Duplicate Arguments in FORTRAN
A large number of SPICELIB routines has been revised to eliminate
non-standard use of duplicate arguments in calls to other routines.
Though this use did not pose any problems or cause any errors in the
earlier Toolkit versions, it prevented use of optimization on some
environments. With these changes optimization is now used in building
all CSPICE and Icy Toolkits.
Top
NEARPT
A bug related to the scale of transverse component of error vector was
corrected for the exterior point case.
Top
ET2LST
The treatment of planetographic longitude has been updated to be
consistent with the SPICE planetographic / rectangular coordinate
conversion routines. The effect of this change is that the default sense
of positive longitude for the moon is now east; also, the default sense
of positive planetographic longitude now may be overridden for any body.
Top
GETFOV
A bug causing incorrect computation of the boundary vectors for a
rectangular FOV specified using the angular extents method has been
fixed. In the previous versions for cases when the reference vector was
provided as a non-unit vector and/or was non-perpendicular to the
specified boresight the boundary vectors returned by the routine were
computed incorrectly.
Top
CKW03
A check verifying that the start time of the first interval is the same
as the time of the first pointing instance has been added.
Top
INEDPL
Error detection for the case of invalid input plane was added.
Top
INSRTC
The routine was changed in such way that when the item to be inserted
would, after truncation to the set's string length, match an item
already in the set, no insertion is performed. Previously the truncated
string was inserted, corrupting the set.
Top
String Parsing Routines
Routines lparse.for, lparsm.for, and lparss.for were modified to avoid
out-of-range substring bounds conditions.
Top
Version 58 --- January 2005
Top
Environments
The SPICE Toolkit is now officially supported on PC/CYGWIN/g77 and
PC/CYGWIN/gCC environments and no longer supported on SGI and DEC Alpha
computers.
This is the complete list of environments on which the N0058 version of
the SPICE Toolkit is supported:
FORTRAN Toolkit:
HP UX HP FORTRAN
Macintosh OS-X Absoft FORTRAN
Macintosh OS-X g77
PC CYGWIN g77
PC Linux g77
PC Windows Compaq Visual (Digital) FORTRAN
PC Windows Lahey FORTRAN 95
Sun Solaris SUN FORTRAN
Vax VMS Digital FORTRAN
CSPICE:
HP UX HP C
Macintosh OS-X Apple C
PC CYGWIN gCC
PC Linux gCC
PC Windows Microsoft Visual C
Sun Solaris SUN C
Sun Solaris gCC
Icy:
Macintosh OS-X Apple C / IDL 6.1
PC Linux gCC / IDL 6.1
PC Windows Microsoft Visual C / IDL 6.1
Sun Solaris SUN C / IDL 6.1
Sun Solaris gCC / IDL 6.1
Top
SPICELIB/CSPICE/Icy
Top
Parameterized Dynamic Frames
The SPICE frame system now supports parameterized dynamic frames: frames
for which orientation is based on dynamic directions computed using
SPICE kernel data (SPKs, CK, PCKs), on mathematical models implemented
in SPICE routines, or on formulas defined in frame kernels.
Parameterized dynamic frames are grouped into ``families'' according to
the method by which they're defined.
Currently supported dynamic frame families are:
-- Two-vector frames: these are defined by pairs of vectors. The vectors may
be position vectors, velocity vectors, observer-target near point vectors,
or constant vectors.
-- Mean equator and equinox of date frames.
-- True equator and equinox of date frames.
-- Mean ecliptic and equinox of date frames.
-- Euler frames: these are defined by angles specified as polynomial functions
of time.
Currently ``of date'' frames are supported only for the earth.
The Frames Required Reading documents the new capability and contains
numerous examples of dynamic frame kernel definitions.
Top
CK/SPK Coverage Summary Routines
The new CK and SPK coverage determination routines CKCOV and SPKCOV
provide an API via which an application can find the time periods for
which a specified CK or SPK file provides data for, respectively, an
instrument or body of interest. The coverage information is a set of
disjoint time intervals returned in a SPICE ``window'' data structure.
The new CK and SPK routines CKOBJ and SPKOBJ provide an API via which an
application can find the set of instruments or bodies for which,
respectively, a specified CK or SPK file contains data. The coverage
information is returned in a SPICE ``set'' data structure.
These new APIs are supported by SPICELIB, CSPICE, and Icy.
Top
Planetographic Coordinate Conversion Routines
The new planetographic coordinate conversion routines RECPGR and PGRREC
support conversion between rectangular and planetographic coordinates.
The planetographic Jacobian matrix routines DRDPGR and DPGRDR provide
the derivative matrices for these transformations (used for coordinate
transformations of velocities).
These new APIs are supported by SPICELIB, CSPICE, and Icy.
Top
``L-sub-S'' Solar Longitude Routine
The new routine LSPCN computes the planetocentric longitude of the sun
(often called ``L-sub-S'' or ``Ls'') for a specified body and time. This
quantity is typically used as an approximate ``time of year'' indicator.
The new API is supported by SPICELIB, CSPICE, and Icy.
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to the Toolkit:
Spacecraft:
-84 PHOENIX
-130 HAYABUSA
-131 SELENE
-203 DAWN
-238 SMART-1, S1, SM1, SMART1
-486 HERSCHEL
-489 PLANCK
Comets:
1000012 CHURYUMOV-GERASIMENKO
67P/CHURYUMOV-GERASIMENKO (1969 R1)
Stations:
399049 DSS-49
399055 DSS-55
398989 NOTO
Top
Documentation
FRAMES.REQ has been re-structured and augmented with an extensive
description and examples of the new parameterized dynamic frames family.
Top
CSPICE
Top
New Wrappers
The following new miscellaneous interfaces to SPICE routines were added
to CSPICE in this release:
bods2c_c.c dafopw_c.c dafps_c.c dafrs_c.c
Top
Icy (Interactive Data Language interface to CSPICE)
Top
Vectorization
NAIF modified the function of several Icy routines to support vectorized
variables (in the IDL sense) as input and output.
cspice_cylrec cspice_deltet cspice_et2lst cspice_et2utc
cspice_georec cspice_latrec cspice_pxform cspice_pgrrec
cspice_radrec cspice_reccyl cspice_recgeo cspice_reclat
cspice_recpgr cspice_recrad cspice_recsph cspice_scdecd
cspice_scencd cspice_scs2e cspice_sphrec cspice_spkezr
cspice_spkpos cspice_str2et cspice_sxform cspice_timout
Top
Windows
Icy now includes interfaces to the full set of CSPICE window routines.
cspice_wnelmd cspice_wnincd cspice_wnreld cspice_wncomd
cspice_wncond cspice_wndifd cspice_wnexpd cspice_wnextd
cspice_wnfetd cspice_wnfild cspice_wnfltd cspice_wninsd
cspice_wnintd cspice_wnsumd cspice_wnunid cspice_wnvald
Top
Other new interfaces
The following new miscellaneous interfaces to SPICE routines were added
to Icy in this release:
cspice_bods2c cspice_card cspice_celli cspice_celld
cspice_dafopw cspice_dafrs cspice_deltet cspice_et2lst
cspice_pgrrec cspice_recpgr cspice_scard cspice_size
cspice_spkcov cspice_spkobj cspice_ssize
Top
Bug Fixes
Top
MKSPK Processing of TLE
A MKSPK bug causing the program to process improperly formatted TLE
files without signaling an error and producing output SPK containing bad
data was fixed.
Top
MKSPK Adding Comments When Appending to Existing SPK
A MKSPK bug causing the program, in some rare circumstances, to signal
an error when adding comments to an existing SPK file was fixed.
Top
Icy/cspice_getfov
A bug that caused the interface to fail to release allocated memory when
the FRAMEMISSING error signaled was fixed.
Top
DVPOOL/dvpool_c/cspice_dvpool
A bug causing the DVPOOL routine to not delete a specified kernel pool
variable in some cases was fixed.
Top
CSPICE/kdata_c Function
A number of typos in the example provided in the header of the routine
were corrected.
Top
FRINFO/frinfo_c/cspice_frinfo
A bug causing the FRINFO routine to treat any frame with a negative ID
code and a frame definition not provided in the kernel pool as a
CK-based frame was fixed. Now, instead of returning ``manufactured''
attributes of a CK-based frame, the routine will generate an error for
such inputs.
Top
Version 57 --- March 2004
Top
Environments
The N0057 version of the SPICE Toolkit is supported on the same
environments as version N0056.
Top
Icy
The N0057 version offers the first official release of Icy, the
interface to the CSPICE library from Interactive Data Language (IDL), a
product of Research Systems, Inc. (RSI, http://www.rsi.com). If Icy was
provided with this package, refer to ``icy.req'' document and to the Icy
HTML documentation pointed to by ``doc/html/index.html'' for more
details.
Top
SPICELIB/CSPICE
Top
SRFXPT
This new routine computes the surface intercept point of a specified ray
on a target body at a specified epoch, optionally corrected for light
time and stellar aberration. Its purpose is the same as for the SPICE
routine SURFPT but unlike SURFPT is provides a much more flexible
interface and computes geometry adjusted for light time and stellar
aberration to the surface point rather than to the center of the target
body. Therefore for most cases this routine makes SURFPT obsolete.
Currently SRFXPT supports only the ellipsoid shape for target bodies but
in the future it may be extended to support digital terrain models.
Top
Support for Satellite IDs in the Range 10000-99999
NAIF PCK data access routines have been modified to recognize satellites
with IDs in the 10000-99999 range.
Top
Detection of Non-native Text Files
The SPICE data loading mechanism was extended to detect and prohibit
loading text kernel files containing lines terminated with EOF
character(s) non-native to the platform on which the Toolkit was
compiled. If a non-native EOL terminator is detected in the first 132
characters of a text kernel, the execution is stopped and an error
message is displayed. This feature does not work with files that are
smaller that 132 bytes or have the first line longer that 132
characters.
Top
Documentation
The Toolkit may now optionally include documentation in HTML format. It
is provided in the ``doc/html'' subdirectory and is pointed to by the
top level index file
doc/html/index.html
The headers of a few additional most often used routines have been
revised to correct technical errors and grammar and/or spelling, improve
clarity, and improve examples.
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to the Toolkit:
Spacecraft:
-79 SPITZER
Asteroids:
2000216 KLEOPATRA
Top
INSPEKT
INSPEKT was updated to generate comma-delimited reports. This output
format can be set using the ``SET FORMAT DELIMITED ...'' command. See
INSPEKT on-line help for more details.
Top
TOBIN
TOBIN was modified to detect and prohibit processing input transfer
files containing lines terminated with EOF character(s) non-native to
the platform on which the Toolkit was compiled.
Top
Version 56 --- August 2003
Top
Environments
The N0056 version of the SPICE Toolkit is supported on the same
environments as version N0055 except the following ``Classic'' Mac
environments:
Macintosh MacOS9 Absoft FORTRAN
Macintosh MacOS9 Metrowerks Codewarrior C
Contact NAIF if you wish to obtain the Toolkit for these two deprecated
environments.
Top
SPICELIB/CSPICE
Top
Documentation
The headers of 20+ of the most often used routines have been revised for
one or more of the following reasons:
-- to correct technical errors,
-- to add pertinent new information,
-- to correct grammar and/or spelling,
Top
Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to the Toolkit:
Spacecraft:
-74 MRO
-74 MARS RECON ORBITER
-130 MUSES-C
-142 TERRA
-154 AQUA
-159 EUROPA ORBITER
-172 SPACETECH-3 COMBINER
-188 MUSES-B
-190 SIM
-198 INTEGRAL
-205 SPACETECH-3 COLLECTOR
-234 STEREO AHEAD
-235 STEREO BEHIND
-253 OPPORTUNITY
-254 SPIRIT
Tracking Stations:
398990 NEW NORCIA
Jovian satellites:
528 AUTONOE
529 THYONE
530 HERMIPPE
531 AITNE
532 EURYDOME
533 EUANTHE
534 EUPORIE
535 ORTHOSIE
536 SPONDE
537 KALE
538 PASITHEE
Saturnian satellites:
619 YMIR
620 PAALIAQ
621 TARVOS
622 IJIRAQ
623 SUTTUNG
624 KIVIUQ
625 MUNDILFARI
626 ALBIORIX
627 SKADI
628 ERRIAPO
629 SIARNAQ
630 THRYM
Uranian satellites:
718 PROSPERO
719 SETEBOS
720 STEPHANO
721 TRINCULO
Top
CHRONOS
CHRONOS utility program has been modified to allow loading kernel files
using FURNSH kernel pool keywords and to accept all setup information
from the command line.
Top
Bug Fixes
Top
Reading Files with MAC-OSX Absoft FORTRAN Toolkit
Low level read routines were fixed to make sure that the OSX Absoft
FORTRAN SPICE toolkit can read files not owned by the user.
Top
DAS Scratch Files
DASCLS routine has been modified to call the routine flushing DAS
buffers before closing scratch DAS files. Failing to free the buffers
caused write errors on HP/FORTRAN systems.
Top
Argument Checking in CSPICE Error Handling Functions
The errprt_c, errdev_c, and erract_c functions were updated to diagnose
invalid operation keyword input.
Top
Version 55 --- March 2003
Top
Environments
The N0055 version of the SPICE Toolkit is supported on the same
environments as version N0054.
Top
SPICELIB
Top
SPKW01
SPK type 1 writer routine has been added.
Top
DASCLS
Scratch files no longer have their buffered portions flushed and are no
longer segregated before before being closed. This change speeds up the
close operation.
Top
SPKBSR
Segment buffer size was increased from 2000 to 10000 to improve
efficiency when handling SPK files with large number of segments.
Top
Kernel POOL
The buffer that stores distinct numeric data items from the text kernel
files was increased. The new buffer size is 20000, which is the maximum
total number of values for all numeric scalar and array pool variables
together.
Top
Type 1 SCLK
The buffer that stores Type 1 SCLK coefficients was increased. The new
buffer size is 10000.
Top
CSPICE
Top
New CSPICE wrappers
Wrappers dasac_c and dasec_c have been added to CSPICE. These support
DAS file comment area access.
Top
Bug Fixes
Top
Built-in NAIF ID Code/Name Definitions
The following built-in NAIF ID code/name definitions have been corrected
to match official MER name-ID mapping:
-253 was MER-A, now MER-1
-254 was MER-B, now MER-2
MER-A and MER-B names are no longer supported by the Toolkit.
Top
DASCUD
DASCUD has been fixed so that it writes a new, empty cluster directory
record at the correct location. This corrects an error introduced by a
bug fix in N0054.
Top
OSCELT
OSCELT has been fixed so that it computes the argument of periapse
correctly when the inclination is zero or 180 degrees. The mean anomaly
computation has been corrected so that it works for circular and
near-circular orbits. The computation of inclination has been changed to
use ATAN2 for improved accuracy. Code that could generate arithmetic
exceptions was corrected. Several new error checks have been added.
Top
CKE05
Angular velocity computations for subtypes 0 and 1 have been changed to
make them compatible with those used by the MEX/Rosetta attitude file
interpolation algorithms.
Top
CKBRIEF
CKBRIEF has been updated to retrieve and display interpolation interval
information from Type 2 CK files correctly in all cases.
Top
Version 54 --- December 2002
Top
Mailing Lists
NAIF has created 2 mailing lists, ``Spice_announce''
http://naif.jpl.nasa.gov/mailman/listinfo/spice_announce
and ``Spice_discussion''
http://naif.jpl.nasa.gov/mailman/listinfo/spice_discussion
``Spice_announce'' is intended to provide notification of important
developments such as a new toolkit release. Posting will generally be
limited to members of the NAIF team. If you feel you have an important
announcement that would be suitable for this list, you may send email to
the list, but it will be reviewed by the NAIF team before dissemination.
``Spice_discussion'' is meant to provide a forum for discussion among
SPICE users. Posting on this list is encouraged, however we also
encourage you to limit mail traffic to the entire list. Extended
discussions are often best carried out with a limited distribution list.
Both lists require registration, allow access to an archive of prior
postings and allow the user to choose whether to receive individual
postings or a daily digest.
Top
Environments
The N0054 version of the SPICE Toolkit is supported on the same
environments as version N0053.
Top
COOKBOOK Programs
FORTRAN and C versions of the COOKBOOK programs have been made more
consistent in implementation and behavior. User's Guide documents for
COOKBOOK programs have been updated and are now delivered with both
FORTRAN and C toolkits. The FSTSPK COOKBOOK program has been deprecated
and is no longer delivered.
Top
New Built-in NAIF ID Code/Name Definitions
The following new built-in NAIF ID code/name definitions have been added
to the toolkit:
Spacecraft:
-226 ROSETTA
Jovian satellites:
517 CALLIRRHOE
518 THEMISTO
519 MAGACLITE
520 TAYGETE
521 CHALDENE
522 HARPALYKE
523 KALYKE
524 IOCASTE
525 ERINOME
526 ISONOE
527 PRAXIDIKE
Top
Documentation
User's Guide documents for TOBIN, TOXFR and VERSION utility programs
have been added to the toolkit documentation.
Top
Bug Fixes
Top
Built-in Body-Fixed Frame for Pan
Definition of the built-in body-fixed frame for PAN (IAU_PAN) has been
updated to point to the correct PCK values used to compute its rotation.
In the previous version of the toolkit it was pointing to PANDORA's
rotation constants.
Top
Surface Intercept Routine
The surface intercept routine SURFPT/surfpt_c has been re-implemented to
reduce loss of precision.
Top
DAS Writer Routines
DAS utility routine DASCUD has been fixed to ensure that DAS file
structure is correct when files are closed without data segregation.
Previously it was possible for unsegregated files to have an invalid
final forward directory pointer. Note: this problem could not occur in
E-kernels created by SPICE utility programs or using the SPICE EK API
routines.
Top
CSPICE Cell Implementation
The CELLINIT macro has been updated so that it doesn't modify data added
to character cells prior to cell initialization. This enables population
of uninitialized character cells via macro calls.
Top
Body Name to Associated Frame Conversion Routine
The routine CNMFRM retrieving the reference frame name for a specified
body name has been fixed so a TK frame specified by name and designated
as an object's preferred frame via kernel pool assignments is found, and
so that the correct name of this frame is returned.
Top
CHRONOS
CHRONOS has been updated to make sure that the iterative search for the
nearest local midnight converges in all cases. It has also been updated
to use the maximum system allowed file name length on VAX and DEC Alpha
environments.
Top
Version 53 --- September 2002
Top
Environments
The N0053 version of the SPICE Toolkit is supported in the following
environments:
PC Linux g77
PC Windows Compaq Visual (Digital) FORTRAN
PC Windows Lahey FORTRAN 95
PC Linux gCC
PC Windows Microsoft Visual C++
Sun Solaris FORTRAN
Sun Solaris Native C
Sun Solaris gCC
HP UX HP FORTRAN
HP UX HP C
Macintosh MacOS Absoft FORTRAN
Macintosh MacOS Metrowerks Codewarrior C
Macintosh OS-X g77
Macintosh OS-X Absoft FORTRAN
Macintosh OS-X Apple C
SGI IRIX N32/O32 FORTRAN
SGI IRIX MIPS C (N32/O32 ABIs)
DEC Alpha Digital Unix Digital FORTRAN
DEC Alpha Digital Unix Digital C
Vax VMS Digital FORTRAN
The PC/Linux/g77 version previously supported the alternative ``fort77''
compiler. This is no longer the case. Contact NAIF if you need support
for this compiler.
The Macintosh OS-X environments are new.
Top
CSPICE
Top
New CSPICE wrappers for cell, set, and windows routines
The complete set of C wrappers duplicating cell, sets, and windows
capabilities existing in FORTRAN SPICE has been added to CSPICE.
Top
New CSPICE wrappers for sorting and searching routines
The following new CSPICE wrappers implementing sorting and searching
capabilities have been added:
bscho*_c.c
bsrch*_c.c
esrchc_c.c
isordv_c.c
isrch*_c.c
lstle*_c.c
lstlt*_c.c
order*_c.c
reord*_c.c
shell*_c.c
Top
New CSPICE wrappers for string manipulation and parsing routines
The following new CSPICE wrappers for string manipulation and parsing
capabilities have been added:
cpos*_c.c
pos*_c.c
ncpos*_c.c
kxtrct_c.c
lpars*_c.c
lx4*_c.c
lxqstr_c.c
repm*_c.c
Top
SPICELIB
Top
SPK Type 18
A new SPK type (Type 18) has been added. This incorporates ESA/ESOC
model for a spacecraft ephemeris.
Top
CK Type 5
A new CK type (Type 5) has been added. This incorporates ESA/ESOC model
for a spacecraft attitude data.
Top
BRIEF
BRIEF utility has been updated to allow summarizing SPKs containing
ephemerides for up to 20,000 distinct bodies.
Top
COOKBOOK
COOKBOOK programs have been updated to use the highest level routines
currently available in SPICE -- FURNSH, SUBPT, etc.
Top
Bug Fixes
Top
ID-to-name Translation
SPICE's ID-to-name mapping subsystem has been updated to provide
consistent behavior across all of its interfaces. It now correctly
processes duplicate ID-to-name mapping assignments provided via text
kernel files. Refer to the NAIF_IDS Required Reading for more details.
Top
Built-in Body-Fixed Frames
Missing body-fixed frames -- IAU_PAN, IAU_GASPRA, IAU_IDA, and IAU_EROS
-- have been added to the built-in frame set.
Top
Binary architecture consistency check at run-time
Binary file format consistency check has been implemented at run time to
verify that the toolkit prepared specifically for a platform with one
binary file format has not been compiled/used on a platform with another
binary file format.
Top
Long/truncated lines in text kernel files
The text kernel file reader has been modified to correctly process
truncated string value assignments.
Top
VMS Read-Only Access File Open Failure
A bug in the DAF system preventing users on VMS systems from loading
SPK, CK and binary PCK files with the read-only attribute(*) has been
fixed.
Top
Version 52 --- January 2002
Top
Environments
The N0052 version of the SPICE Toolkit is supported on the following
environments:
PC Linux G77
PC Windows Compaq Visual (Digital) Fortran
PC Windows Lahey Fortran 95
PC Linux GCC
PC Windows Microsoft Visual C++
Sun Solaris Fortran
Sun Solaris Native C
Sun Solaris GCC
HP UX HP Fortran
HP UX HP C
Macintosh MacOS Absoft Fortran
Macintosh MacOS Metrowerks Codewarrior C
SGI IRIX N32/O32 Fortran
SGI IRIX MIPS C (N32/O32 ABIs)
DEC Alpha Digital Unix Digital Fortran
DEC Alpha Digital Unix Digital C
Vax VMS Digital Fortran
The N0052 version of the SPICE Toolkit is no longer supported on the
following environments:
PC Windows Lahey F77L3
PC Windows Microsoft Powerstation Fortran 1.x
PC Windows Microsoft Powerstation Fortran 4.x
Sun SunOS Fortran
Macintosh MacOS Language Systems Fortran
Next Nextstep Absoft Fortran
Next Nextstep GCC
Contact NAIF if you wish to obtain the Toolkit for one or more of these
deprecated environments.
Top
SPICELIB
Top
Run-Time Binary File Format Translation
The most popular supported systems (including Macintosh, PC, and UNIX
platforms) are now capable of accessing data in binary SPICE kernel
files from other platforms directly without using transfer format. But
note that binary files from other platforms are only available for read
access. See the Convert User's Guide for specifics and details.
Top
Open File Limit Increase
The sum of loaded SPK, CK, and binary PCK files, all of which are
implemented using the DAF file architecture, may now reach 1000.
Previous versions of the toolkit restricted the number of loaded DAFs to
20. But caution: loading large numbers of files may impact system
performance.
Top
SPK aberration corrections
SPK readers can now perform aberration corrections for transmitted, as
well as received, radiation. This feature makes it simple to compute the
direction in which radiation must be emitted in order to reach a
specified target.
The headers of the SPK readers have been expanded to explain aberration
corrections in greater detail.
Top
Instrument Kernel Support
GETFOV was extended to compute boundary corners from FOV definitions in
the kernel pool utilizing the new ANGLES specification. See GETFOV's or
getfov_c's header for details.
Top
Kernel POOL
The buffers that store text kernel data were increased. The new maximums
are:
Maximum Number of Variables 5003
Maximum Number of Distinct Numeric Data Items 10000 (*)
Maximum Number of Character Strings 4000 (**)
(*) This is the maximum total number of values for all numeric scalar
and array pool variables together. (**) This is the maximum total number
of values for all character scalar and array pool variables together.
These changes allow the kernel pool to hold substantially more data than
previous versions of the SPICE toolkit, which became necessary due to
the increasing use of such SPICE components as IK and FK utilizing the
POOL as the data repository and access mechanism.
Top
Jacobian routines
Routines have been added for computing the Jacobians of the
transformations between rectangular and the following coordinate
systems:
cylindrical
geodetic
latitudinal
spherical
The Jacobian routines support transformation of velocities between these
coordinate systems. See the headers of the following SPICELIB
routines/CSPICE functions for more information:
DCYLDR/dcyldr_c
DGEODR/dgeodr_c
DLATDR/dlatdr_c
DSPHDR/dsphdr_c
DRDCYL/drdcyl_c
DRDGEO/drdgeo_c
DRDLAT/drdlat_c
DRDSPH/drdsph_c
Top
NAIF ID to Object Name Mapping
The NAIF IDs for the following missions has been added to the set of IDs
built into SPICE:
CONTOUR
LUNAR-A
DRTS-WC
MARS EXPRESS
DEEP IMPACT
STARLIGHT
MER
Top
Documentation
DAS and EK Required Reading documents have been added to the SPICE
Toolkit.
The CONVERT User's Guide has been updated to reflect new run-time binary
file format translation capability.
The FRAMES Required Reading has been updated to include inertial frame
information formerly contained in the NAIF_IDS Required Reading.
The NAIF_IDS Required Reading has been updated to reflect new Toolkit
capability, through which the NAIF ID to name mappings can be defined
using text kernel files.
The MKSPK User's Guide has been updated to add clarity throughout.
The ERROR, PCK, ROTATIONS, SPK, and TIME Required Reading documents have
all been improved.
Top
CSPICE
Top
New CSPICE wrappers for EK routines
CSPICE wrappers have been added to support record-oriented EK
manipulation, including record-oriented writing, updating, and reading.
CSPICE wrappers have been added to provide summary capabilities for
loaded EK tables.
Top
Miscellaneous new CSPICE wrappers
Some new CSPICE wrappers have been added:
frmnam_c
inelpl_c
namfrm_c
Top
CKBRIEF
A capability to display a separate record for each interpolation
interval in each segment of a Type 2 or Type 3 CK file has been added to
the program. This capability is implemented using the ``-dump'' command
line option.
Top
COMMNT
An inconsistency between the program's functionality in interactive and
command line modes has been fixed. The maximum length of a comment line
that can be added to and extracted from the comments in either mode is
now the same and is equal to 1000 characters.
Top
MKSPK
The program was modified to allow appending new data segments to an
existing SPK file.
Top
VERSION
The interface of this utility program has been extended: a command line
parameter causing the program to display additional library information
has been added. See ``version -help'' for details.
Top
Bug Fixes
Top
CK, PCK, and SPK segment buffering and selection
Several bugs have been corrected in the modules CKBSR, PCKBSR, and
SPKBSR. These bug fixes enable users to load more segments than can be
buffered at once by these modules. However, the best run-time speed is
still obtained when all segments of a given kernel type can be buffered.
The current segment buffer sizes are:
CK: 4000 segments
SPK: 2000 segments
PCK: 100 segments
Top
Const-qualification for various CSPICE interfaces
A number of CSPICE function interfaces have been updated to add
const-qualification of input arrays. This fix enhances compatibility
with C++ applications.
Top
CSPICE function gcpool_c fixed
This routine did not properly trim trailing blanks from values in its
output array.
Top
MOVED fix for Fortran PC Linux platform
In some cases the routine MOVED incorrectly copied double precision
numbers whose values were assigned via EQUIVALENCE statements with pairs
of integers. This could happen when the integer bit patterns did not
correspond to valid double precision numbers. This problem prevented
correct manipulation of some DAF segment descriptors.
Top
EK query processing using LIKE operator and null values
Null values could be returned in some rare circumstances when a query
employed the LIKE operator to compare scalar string column entries
against a specified string value, and a null column entry was compared.
Top
EK time conversion
The EK time parsing code handled SCLK values incorrectly when the string
``SCLK'' appeared in the name of the clock.
Top
EK documentation
Various headers have been updated to indicate that query-and-fetch
operations and EK fast writer operations may not be interleaved.
Top
Source code clean-up
Miscellaneous problems triggering annoying but insignificant compilation
warnings have been fixed. Various files have had TAB characters removed.
Others have had final newline characters added.
Top
Version 51 --- April 2000
Top
SPICELIB
Top
Instrument Kernel Support
The routine GETFOV was added to the Toolkit. It returns information
describing the shape, size, boresight, and orientation of the field of
view for traditional remote sensing instruments.
Top
Binary Kernel Recognition
The routine GETFAT was upgraded to use a more robust algorithm for
identifying the type (SPK or CK) of inadequately labeled binary kernels.
This modification is critical for Mars project SPICE customers who wish
to use the SPICELIB utility FURNSH when loading binary kernels.
Top
CK
A new representation for the orientation of spacecraft structures has
been added to the C-kernel system. C-kernel data type 04 provides a
flexible and compact method for representing the attitude of structures
by using Chebyshev polynomials to fit orientation data or models.
Top
SPK
Two new representations for position and velocity of objects have been
added to the SPK system. Types 12 and 13 provide for the Hermite
interpolation of states from series of state vectors. See the SPK
Required Reading for further details.
Top
Miscellaneous
The list of names recognized by BODTRN was enhanced to support the
identification of the "Cluster" spacecraft (1,2,3 and 4) as well as the
Pluto-Kuiper Express spacecraft and simulation.
Top
MKSPK
The utility program MKSPK has been added to the general release of the
SPICE Toolkit. This allows SPICE customers to more easily generate SPK
files from tabular ephemeris information. See the User's Guide
(mkspk.ug) for details on the use of MKSPK.
Top
SPKMERGE
The program was upgraded to correct an "infinite loop" that existed in
rare cases on some platforms.
Top
Bug Fixes
Although it is unlikely that most users will notice any difference, a
number of minor bug corrections have been incorporated:
-- The kernel pool software was modified to detect and handle string
specifications that are too long to be stored in the kernel pool.
-- The time parsing software (used by STR2ET) was enhanced so that erroneous
long strings will be diagnosed as erroneous and no longer cause a run-time
error.
Top
Version 50 --- October 1999
Top
CSPICE
Version 50 of the SPICE Toolkit includes a C language edition of the
Toolkit. This provides a C language interface to the Toolkit and
duplicates the FORTRAN capabilities. SPICE users interested in a C
version of the Toolkit should specifically request the CSPICE version.
Moreover, C users should read the document "CSPICE User's Guide" which
addresses issues regarding the translation of the FORTRAN Toolkit to C.
Top
Additions and Extensions to SPICE routines
Top
Loading Kernels
The new routine FURNSH provides a single uniform interface for loading
all SPICE kernels. In addition, the new interface allows you create a
"meta-kernel" listing which SPICE kernels should be loaded. When this
"meta-kernel" is supplied to FURNSH, all listed kernels will be loaded
into the appropriate SPICE subsystems. It is anticipated that this new
interface will substantially ease the problem of managing and loading
SPICE kernels.
In addition to the routine FURNSH several related routines are provided
to assist with the run-time management of kernels loaded through the
FURNSH interface.
-
KTOTAL
-
returns the number of kernels that are currently available to your
program as a result of previous calls to FURNSH and UNLOAD.
-
KDATA
-
provides an interface for retrieving (in order of their specification
through FURNSH) kernels that are active in your application.
-
KINFO
-
allows you to retrieve information about a loaded kernel using the name
of that kernel.
-
UNLOAD
-
provides an interface for unloading kernels that have been loaded via
the routine FURNSH.
FORTRAN users should consult the header for the routine KEEPER for
details on the use of these routines. C users should see the specific
files furnsh_c.c, ktotal_c.c, kdata_c.c, kinfo_c.c and unload_c.c
Top
Position Only Interface.
The Frames and SPK subsystems have been extended to provide a "position
only" interface. The user level routines in the extension are:
-
SPKPOS
-
returns the 3-vector giving the location of one object as seen from
another corrected for light time and stellar aberration (if requested
by the user) in the user specified reference frame.
-
PXFORM
-
returns the 3x3 matrix that transforms positions from one reference
frame to another as a function of time.
These routines run slightly faster than their position and velocity
counter parts: SPKEZR and SXFORM. In addition they allow you to use
C-kernel based frames when the C-kernel does not contain angular
velocity data.
See the routines PXFORM and SPKPOS for details on their use.
Top
ID-codes
The name/ID-code translation routines (BODN2C and BODC2N) have been
extended so that users may add missing name/ID-code mappings to SPICE
text kernels. Using this new capability, users can extend the built-in
name/ID-code mapping by simply loading an appropriate SPICE text kernel
with the interface FURNSH.
Top
Kernel Pool Enhancements
Several new kernel pool interfaces have been provided
-
STPOOL
-
Allows storage of long string valued variables through use of a
continuation character.
-
PCPOOL
-
Allows the insertion of a character variable directly into the kernel
pool without supplying a text kernel.
-
PDPOOL
-
Allows the insertion of a double precision variable directly into the
kernel pool without supplying a text kernel.
-
PIPOOL
-
Allows the insertion of an integer variable directly into the kernel
pool without supplying a text kernel.
-
LMPOOL
-
Similar to LDPOOL, but the text kernel is stored in an array of strings
instead of an external file.
-
SZPOOL
-
allows run time retrieval of kernel pool memory parameters.
-
DVPOOL
-
allows deletion of a specific variable from the kernel pool.
-
GNPOOL
-
assists in determining which variables are defined in the kernel pool
via variable name template matching.
Top
Continuous Spacecraft Clocks
The Spacecraft Clock system has been extended so that "ticks" can be
modeled continuously instead of discretely. See the SCLK required
reading for more details.
Top
Bad FTP File Transfer Detection
SPICE binary kernels have been enhanced so that Toolkit software can
detect whether a binary kernel has been transferred using ASCII instead
of BINARY transfer mode. Note that only SPICE binary kernels produced
with the N0050 (or later) version of the SPICE Toolkit will have
features required for this diagnosis.
Top
CK Writer Enhancements
The SPICE C-kernel writers have been enhanced to check that quaternions
supplied to the writer are indeed nearly unit length. This check allows
detection of programming errors earlier in the kernel production
process.
Top
Bugs
No bugs were identified between version N0049 and N0050 of the Toolkit.
However, users may notice that several routines have minor changes. The
main reasons for code changes are:
1. Extending the range of inputs that can be handled by SPICE routines.
2. Balancing the use of the SPICE error handling Check-in/Check-out tracing
mechanism.
3. Removal of unused variables.
4. Corrections in grammar, spelling and other typographic errors in the
headers of SPICE routines.
Top
SPICE Utility Programs
Top
TOBIN
The utility program TOBIN which converts transfer format kernels to
binary form, can now process transfer format kernels that have been
wrapped with SFDUs.
Top
COMMNT
COMMNT now accepts command line arguments making it usable from user
scripts.
Top
CKBRIEF
CKBRIEF is a new utility that allows you to quickly summarize a C-kernel
in a manner similar to the summary capabilities provided by the SPK
summary tool, BRIEF.
Top
MKSPK
MKSPK is a utility program that allows users to generate SPK files from
appropriate and suitably tabularized position and velocity information.
Top
Documentation
Many SPICE documents were edited and brought up to date. Most notable of
these is the document KERNEL.REQ which discusses SPICE text kernels and
the use of the kernel pool.
In addition a new document called "Common Problems" (problems.req) has
been included with the standard SPICE documentation. This document is
intended to help you in trouble shooting problems that may arise with
programming with the SPICE Toolkit.
Top
Version 49 --- September 1998
Version 49 of the SPICE Toolkit exists only to fix errors that were
identified in version 48 of the Toolkit. The routines in SPICELIB that
were corrected are:
DELTET --- obsolete routine maintained only for
backwards compatibility. A bug was
introduced in Version 48 that could
lead to 0.003 seconds of error in outputs.
DPFMT --- documentation corrections.
EKQMRT --- a boundary bug was corrected.
SPKW02 --- documentation correction
TIMDEF --- a bug was fixed that can only be manifested
when the default exception handling is modified.
TIMOUT --- correction of grammatical errors in header.
Top
Version 48 --- May 1998
Version 48 of the SPICE Toolkit extends the set of supported platforms
to include PCs running the LINUX operating system.
The time system was modified so that two digit years are interpreted as
belonging to the years 1969-2068 inclusive.
In addition a number of minor bugs have been fixed. The intended
functionality of the Toolkit has not changed. The most significant bug
fixes are listed here.
conics.for was updated.
There was a coding error in the computation of the mean
anomaly in the parabolic case. This problem has been
corrected.
et2lst.for was updated.
The integer variable SUN was never initialized in the
previous version of the routine. Now it is set to
the proper value of 10.
str2et.for was updated.
The previous versions of this routine did not correctly
convert day-of-year strings in the TDB or TDT systems.
They treated the day of year as year, month, day giving
spectacularly wrong answers.
In addition, comments concerning the default century for
abbreviated years were updated to reflect changes to TEXPYR
timout.for was updated.
The previous version of this routine did not output
fractional components for epochs prior to 1 A.D.
In addition, the default time system, calendar and time zone
are obtained from TIMDEF.
Top
Version 47 --- July 1997
This chapter describes the significant changes to version 47 of the
SPICE Toolkit.
Top
Documentation
There are two significant documentation changes to version 47 of the
Toolkit.
1. The Required Reading for SPK (SPK.REQ) has been re-written to address the
use of non-inertial frames within the SPK system.
2. The Frames subsystem has been documented in the required reading file
FRAMES.REQ. This document describes the various reference systems that are
currently supported by the Toolkit as well as naming and numbering
conventions that will be adhered to by NAIF.
These two documents together with the extensions to the frame system
that have been added in version 47 allows one to easily model the
dynamics of structures on spacecraft or surface rovers.
In addition to these major modifications to the base SPICE
documentation, the document TIME.REQ has been updated to reflect a
slight broadening of recognized time strings and to document the routine
ET2LST that allows the user to convert to ephemeris time to local solar
time for any natural ephemeris object.
Top
Software
Top
SPK
The SPK ephemeris system has been expanded to support Space Command Two
Line Elements (formally known as NORAD Two Line Elements) and
equinoctial elements.
To assist SPICE users who need to create SPK files that contain two line
element sets, NAIF has a preliminary utility that allows the creation of
SPK files from two line element data. This tool is available from NAIF
on an as-needed basis. This utility is still a bit rough around the
edges and has not yet been made an official Toolkit product.
Top
Frames
The frame system has been extended to support reference frames that can
be described as a constant rotation from another frame (such as a
bodyfixed, inertial or C-kernel frame). These frames are easily
described using text based kernels. This new frame type is well suited
for describing instrument, lander and topocentric frames.
Top
Time
The time parsing software was enhanced so that a slightly broader set of
time formats are recognized. In addition the routine ET2LST was added to
the Toolkit. This routine allows you to convert ET (ephemeris time TDB)
to local solar time for a planet, satellite comet or asteroid. Local
solar time is a "clock" measure of the angle between a local meridian
and the meridian of the sun. See the TIME required reading for further
details.
Top
Bug Fixes
The routines CKGPAV and CKFXFM in versions prior to version 47 of the
Toolkit dealt with angular velocity in non-inertial frames incorrectly.
This error did not affect C-kernels that were described relative to
inertial frames. In those rare instances in which a C-kernel was
described relative to a non-inertial frame, the mistreatment of angular
velocity could lead to errors in the computation of velocities relative
to the C-kernel frame. The computation of positions were not affected by
this error.
The routine TIMOUT in version 46 did not reliably produce an abbreviated
two-digit year. This error has been corrected.
All other errors were of a technical nature such as improper use of the
SPICE exception handling subsystem and are unlikely to have affected
most SPICE users.
Top
Version 46 --- January 1997
This chapter describes the significant changes to version 46 of the
SPICE Toolkit.
Top
Documentation
NAIF now has available two overview documents that provide users with a
higher level view of Toolkit. The two documents are called
Introduction to SPICE
Most Useful SPICELIB Subroutines
These documents are available in the ``doc'' subdirectory of the Toolkit
in the postscript files
intro.ps
mostused.ps
respectively.
The first of these documents, ``Introduction to SPICE'', provides a
broad overview of the SPICE system and attempts to lay out a map of
where you can find more specific information about the various
components of the SPICE system. The second document ``Most Useful
SPICELIB Routines'' categorizes 120 or so of the most frequently used
SPICELIB routines and provides a synopsis for each of these.
Top
Time
The time software has undergone significant enhancement. The Toolkit now
supports a wider set of time formats and time systems. The most
important new routines are:
STR2ET
TIMOUT
TTRANS
TPARTV
The new time software is outlined in the ``recommended reading'' file
--- TIME.REQ which appears in the ``doc'' subdirectory of the Toolkit.
A number of convenience routines have been added to the Toolkit. Those
likely to be of most interest to users are:
-
DPFMT
-
The routine DPFMT allows you to create a string representing a number
by supplying a ``picture'' that should be followed in formatting the
string.
-
TOSTDO
-
The routine TOSTDO is a portable means of writing strings to ``standard
output.'' The particulars of formatting on various platforms are
handled transparently. Using this routine, you can isolate yourself
from formatting considerations that arise when using the intrinsic
FORTRAN WRITE statement.
The remainder of the modifications to the Toolkit are primarily to ease
problems associated with maintenance of the Toolkit.
Top
Version 45 --- October 1996
Version 45 is a quick update to correct an oversight in versions 43 and
44. Although the reference frames DE-143 was added to the collection of
non-inertial reference frames in version 43, it was not available to all
of the SPICE subsystems. Version 45 corrects this deficiency.
In addition to this correction to the reference frame subsystem, a
number of minor corrections were made to the DAS subsystem and to error
messages returned by EK software.
Top
Version 44 --- August 1996
This chapter describes the significant changes to version 44 of the
SPICE Toolkit.
Top
SPK Subsystem
The main workhorse routine of the SPK subsystem, SPKGEO, was modified to
remove potentially redundant computations. As a result, some
applications may see a performance improvement on the order of 60
percent.
Top
Inspekt
Inspekt was upgraded to support the DEC Alpha OSF/1 environment. All
functional aspects of Inspekt are now fully supported in the DEC Alpha
OSF/1 environment.
Top
Bug Fixes
Several errors in the EK and supporting DAS subsystem were corrected.
These fixes will be visible to only a small number of SPICE users.
(Primarily those users who create E-kernels or access the EK files
directly through the subroutine interface.) Users whose primary use of
E-kernels is via the program Inspekt will see no visible changes in the
SPICE system.
The generic segment subsystem was corrected. The errors were discovered
by the NAIF staff while developing new SPK data types. These new data
types are not yet incorporated into SPICELIB. Consequently users of the
SPICE system are unlikely to have used any of the code in which these
errors were found.
The frames subsystem was corrected. In NAIF's experiments in converting
the library to C, an error was found in the routine FRMCHG. This error
is of a pedantic nature and has not surfaced in any of the supported
native FORTRAN environments.
Top
Version 43 --- May 1996
This chapter describes the new capabilities available in version 43 of
the SPICE Toolkit.
Top
Brief
The SPICE utility program BRIEF has been added to the generic SPICE
Toolkit. This program allows you to easily summarize the contents of an
SPK file. The summary can be tuned depending upon the level of detail
you are interested in seeing. See the BRIEF User's Guide (brief.ug) for
an explanation of features.
Top
Star Catalogs.
In version 43 of the SPICE Toolkit, an introductory level star catalog
capability has been introduced. The routines used for manipulating star
catalogs are:
STCF01
STCG01
STCL01
Top
CHGIRF
Support for the inertial reference frame DE143 has been added to
SPICELIB.
Top
BODTRN
The routine BODTRN has been added to the Toolkit. This routine allows
you to easily translate between the names of ephemeris objects to their
NAIF ID codes.
Top
Performance Improvements
A number of performance enhancements have been included. Most notable in
this list is the SPICE exception handling subsystem. By relinking your
programs you may see an improvement in performance from 20 to 30 percent
(depending upon how heavily your program makes use of the SPICE
exception handling capability).
Top
Version 42 --- December 1995
This chapter describes new capabilities available in version 42 of the
SPICE Toolkit and includes examples of how to make use of these new
capabilities. The major new capability of Version 42 of the Toolkit is
the official release of the SPICE Events Kernel Software. This software
includes all the interface level routines for reading and writing events
kernels. It also includes the event kernel browser program Inspekt.
Inspekt has an extensive on-line help facility that for now must serve
as a user's guide to the program.
Full documentation for the new capabilities will be available in version
43 of the Toolkit.
Top
Version 41 --- October 1995
This chapter describes new capabilities available in version 41 of the
SPICE Toolkit and includes examples of how to make use of these new
capabilities. There are two major new capabilities provided in version
41 of the Toolkit. First is the ability to retrieve the states of
objects by using the names of the objects instead of SPICE integer
id-codes for those objects. Second is the ability to store and retrieve
states of objects relative to non-inertial reference frames.
Until now, the primary mechanism for retrieving state information from
the SPICE ephemeris (SPK) files has been the subroutine SPKEZ
(pronounced: ess pee kay eee' zee). This routine requires that you know
the integer id-codes associated with the objects of interest.
Beginning with version 41 of the SPICE Toolkit the routine SPKEZR
(pronounced: ess pee kay eee' zee er ) will be the primary mechanism for
retrieving states. The calling sequence for this new routine is
CALL SPKEZR ( TARG, ET, REF, ABCORR, OBS, STARG, LT )
where
Inputs:
-
TARG
-
is a character string that is the name of the object whose state is of
interest. Examples are: 'JUPITER', 'EARTH', 'SUN', 'GOLDSTONE'.
-
ET
-
is the epoch at which the state is desired. ET is a double precision
number giving the epoch measure in ephemeris seconds past the epoch of
the J2000 reference frame.
-
REF
-
is a character string giving the name of the reference frame in which
the output state should be represented. Examples are: 'J2000',
'IAU_EARTH'.
-
ABCORR
-
is a string indicating what forms of aberration corrections should be
applied to the retrieved state.
-
OBS
-
is a string that is the name of the object to which the returned state
will be relative. Examples are: 'EARTH', 'GOLSTONE'.
Outputs:
-
STARG
-
is the state of the target body relative to the observer represented in
the specified reference frame with the specified aberration corrections
accounted for.
-
LT
-
is the light time in seconds from the target to the observer.
To illustrate the use of this routine, suppose that you wanted to get
the B1950 state of Mars relative to Earth corrected for light-time and
stellar aberration at the epoch that occurs 10 million seconds prior to
the J2000 epoch. The code fragment below shows how you would call SPKEZR
to obtain this state. (Note that this assumes that you have already
loaded ephemerides for Mars and the Earth.)
DOUBLE PRECISION STATE ( 6 )
DOUBLE PRECISION LT
CALL SPKEZR ( 'MARS', 1.0D+07, 'B1950', 'LT+S',
. 'EARTH', STATE, LT )
Top
Non-inertial Reference Frames
Prior to version 41 of the Toolkit, storing or obtaining states relative
to a body-fixed frame required conversion to or from states relative to
inertial frames such as J2000. With version 41 of the SPICE Toolkit,
this restriction has been removed. It is now possible to store states
relative to a non-inertial frame. Moreover, you may now retrieve states
relative to non-inertial frames.
For example suppose you want to determine whether or not Jupiter is
above the local horizon at the Goldstone tracking site. The following
code fragment allows you to make this determination at an epoch ET. Note
we've hard-coded the radii for the spheroid that approximates the
surface of the earth.
C Look up the bodyfixed state of Jupiter relative to
C the Goldstone tracking site and the state of
C Goldstone relative to the center of the earth.
C
CALL SPKEZR ( 'JUPITER', ET, 'IAU_EARTH', 'LT+S',
. 'GOLDSTONE', JSTATE, LT )
CALL SPKEZR ( 'GOLDSTONE', ET, 'IAU_EARTH', 'NONE',
. 'EARTH', GSTATE, LT )
C
C Compute the local surface normal at the Goldstone site.
C
EQRAD1 = 6378.140
EQRAD2 = 6378.140
POLRAD = 6356.75
CALL SURFNM ( EQRAD1, EQRAD2, POLRAD, GSTATE, LNORML )
C
C Next compute the angle between the local normal and the
C vector to Jupiter. If the angle is less than pi/2 then
C Jupiter is above the local horizon. Otherwise it's not
C visible.
C
ANGLE = VSEP ( JSTATE, LNORML )
IF ( ANGLE .LT. HALFPI() ) THEN
WRITE (*,*) 'Jupiter is above the horizon.'
ELSE
WRITE (*,*) 'Jupiter is not visible from Goldstone.'
END IF
Below is a list of the non-inertial frames that are currently supported.
Frames that begin with the letters IAU are frames whose orientation is
specified in the report: "Report of the IAU/IAG/COSPAR Working Group on
Cartographic Coordinates and Rotational Elements of the Planets and
Satellites"
IAU_ADRASTEA
IAU_AMALTHEA
IAU_ANANKE
IAU_ARIEL
IAU_ATLAS
IAU_BELINDA
IAU_BIANCA
IAU_CALLISTO
IAU_CALYPSO
IAU_CARME
IAU_CHARON
IAU_CORDELIA
IAU_CRESSIDA
IAU_DEIMOS
IAU_DESDEMONA
IAU_DESPINA
IAU_DIONE
IAU_EARTH
IAU_EARTH_BARYCENTER
IAU_ELARA
IAU_ENCELADUS
IAU_EPIMETHEUS
IAU_EUROPA
IAU_GALATEA
IAU_GANYMEDE
IAU_HELENE
IAU_HIMALIA
IAU_HYPERION
IAU_IAPETUS
IAU_IO
IAU_JANUS
IAU_JULIET
IAU_JUPITER
IAU_JUPITER_BARYCENTER
IAU_LARISSA
IAU_LEDA
IAU_LYSITHEA
IAU_MARS
IAU_MARS_BARYCENTER
IAU_MERCURY
IAU_MERCURY_BARYCENTER
IAU_METIS
IAU_MIMAS
IAU_MIRANDA
IAU_MOON
IAU_NAIAD
IAU_NEPTUNE
IAU_NEPTUNE_BARYCENTER
IAU_NEREID
IAU_OBERON
IAU_OPHELIA
IAU_PANDORA
IAU_PASIPHAE
IAU_PHOBOS
IAU_PHOEBE
IAU_PLUTO
IAU_PLUTO_BARYCENTER
IAU_PORTIA
IAU_PROMETHEUS
IAU_PROTEUS
IAU_PUCK
IAU_RHEA
IAU_ROSALIND
IAU_SATURN
IAU_SATURN_BARYCENTER
IAU_SINOPE
IAU_SUN
IAU_TELESTO
IAU_TETHYS
IAU_THALASSA
IAU_THEBE
IAU_TITAN
IAU_TITANIA
IAU_TRITON
IAU_UMBRIEL
IAU_URANUS
IAU_URANUS_BARYCENTER
IAU_VENUS
IAU_VENUS_BARYCENTER
|