;+ ;NAME: SPICE_STANDARD_KERNELs ;USAGE: files = spice_standard_kernels(/load) ;PURPOSE: ; Provides fully resolved standard spice kernel filenames. files are downloaded if needed. ; NOTE: this routine is in development still. ; ; NAIF specifies a few "standard" files that must typically be loaded in before for any calculations can be performed. These are: ; Leap second kernel: (naif????.tls) Contains times of leap seconds. ???? contains the version number and increments by 1 with every new leap second. ; PCK kernel: (pck?????.tpc) Contains spin axis and size of most solar system bodies. ; SPK kernel: (de???.bsp) Contains ephemeris data for the planets. Mars (499) is NOT included in most recent version! ; ; The file names and locations (and even contents) of these kernels is not standard and will change with each new release. ; ;KEYWORDS: ; MARS: ; ;CALLING SEQUENCE: ; files=spice_standard_kernels(/load) ;TYPICAL USAGE: ;INPUT: ; none ;KEYWORDS: ; LOAD: Set keyword to retrieve and load file ;OUTPUT: ; fully qualified kernel filename(s) ; ; $LastChangedBy: $ ; $LastChangedDate: $ ; $LastChangedRevision: $ ; $URL: $ ;- function spice_standard_kernels,load=load,source=src,reset=reset,verbose=verbose,mars=mars common spice_standard_kernels_com, kernels,retrievetime,tranges if ~spice_test() then return,'' if keyword_set(reset) then kernels=0 ct = systime(1) waittime = -300. ; always check ; search no more often than this number of seconds if ~keyword_set(kernels) || (ct - retrievetime) gt waittime then begin ; source = spice_file_source(src,verbose=verbose) ; sprg = mvn_file_source() ; if not keyword_set(source) then source=naif ; source.no_update =1 ; Don't check for file if it exists ; if keyword_set(verbose) then source.verbose=verbose kernels=0 ; WARNING!!!!! ALL FILE NAMES LISTED BELOW ARE SUBJECT TO CHANGE AND DO CHANGE REGULARLY append_array,kernels, file_retrieve('generic_kernels/lsk/naif0010.tls',_extra=source) ; naif0010.tls is most recent as of 2013/12/16 append_array,kernels, file_retrieve('generic_kernels/pck/pck00010.tpc',_extra=source) ; pck00010.tpc is most recent as of 2013/12/16 ; append_array,kernels, file_retrieve('generic_kernels/spk/planets/de421.bsp',_extra=source) ; Now obsolete .... No longer on NAIF site! ; append_array,kernels, file_retrieve('generic_kernels/spk/planets/a_old_versions/de421.bsp',_extra=source) ; archived location of de421.bsp append_array,kernels, file_retrieve('generic_kernels/spk/planets/de430.bsp',_extra=source) ; de430.bsp is most recent as of 2013/12/16 if keyword_set(mars) then append_array,kernels, file_retrieve('generic_kernels/spk/satellites/mar097.bsp',_extra=source) ; mar097.bsp is most recent as of 2014/1/1 ?? retrievetime = ct ; kernels = file_search(kernels) endif if keyword_set(load) then spice_kernel_load,kernels,verbose=verbose return,kernels end