cspice_subsol_pl02 |
|||

## AbstractDeprecated: This routine has been superseded by the CSPICE routine cspice_subslr. This routine is supported for purposes of backward compatibility only. CSPICE_SUBSOL_PL02 returns the rectangular coordinates of the sub-solar point on a target body at a particular epoch, optionally corrected for light time and stellar aberration. The target body's surface is represented by a triangular plate model contained in a type 2 DSK segment. Return the sub-solar point's coordinates expressed in the body-fixed frame associated with the target body. Also, return the observer's distance from the sub-solar point. For important details concerning this module's function, please refer to the CSPICE routine subsol_pl02. ## I/OGiven: handle the DAS file handle of a DSK file open for read access. This kernel must contain a type 2 segment that provides a plate model representing the entire surface of the target body. dladsc the DLA descriptor of a DSK segment representing the surface of the target body. method a short string specifying the computation method to be used. The choices are: 'Intercept' The sub-solar point is defined as the plate model surface intercept of the ray starting at the Sun and passing through the target's center. 'Ellipsoid near point' The sub-solar point is defined as the plate model surface intercept of the ray starting at the Sun and passing through the nearest point to the observer on a reference ellipsoid associated with the target body. This option requires that the reference ellipsoid's radii be available in the kernel pool. Neither case nor white space are significant in the string "method". For example, the string ' ellipsoidNEARPOINT' is valid. target the name of the target body. `target' is case-insensitive, and leading and trailing blanks in `target' are not significant. Optionally, you may supply a string containing the integer ID code for the object. For example both 'MOON' and '301' are legitimate strings that indicate the moon is the target body. This routine assumes that the target body's surface is represented by a plate model, and that a DSK file containing the plate model has been loaded via dasopr_c. et the epoch, represented as seconds past J2000 TDB, at which the sub-solar point on the target body is to be computed. When aberration corrections are used, `et' refers to the epoch at which radiation is received at the observer. abcorr indicates the aberration corrections to be applied to the position and orientation of the target body and the position of the Sun to account for one-way light time and stellar aberration. See the discussion in the Particulars section for recommendations on how to choose aberration corrections. `abcorr' may be any of the following: 'NONE' Apply no correction. Use the geometric positions of the Sun and target body relative to the observer; evaluate the target body's orientation at `et'. The following values of `abcorr' apply to the "reception" case in which photons depart from the target's location at the light-time corrected epoch et-lt and *arrive* at the observer's location at `et': 'LT' Correct for one-way light time (also called "planetary aberration") using a Newtonian formulation. This correction uses the position and orientation of the target at the moment it emitted photons arriving at the observer at `et'. The position of the Sun relative to the target is corrected for the one-way light time from the Sun to the target. The light time correction uses an iterative solution of the light time equation (see Particulars for details). The solution invoked by the 'LT' option uses one iteration. 'LT+S' Correct for one-way light time and stellar aberration using a Newtonian formulation. This option modifies the positions obtained with the 'LT' option to account for the observer's velocity relative to the solar system barycenter (note the target plays the role of "observer" in the computation of the aberration-corrected target-Sun vector). The result is the sub-solar point computed using apparent position and orientation of the target as seen by the observer and the apparent position of the Sun as seen by the target. 'CN' Converged Newtonian light time correction. In solving the light time equation, the 'CN' correction iterates until the solution converges (three iterations on all supported platforms). 'CN+S' Converged Newtonian light time and stellar aberration corrections. obsrvr the name of the observing body. This is typically a spacecraft, the earth, or a surface point on the earth. `obsrvr' is case-insensitive, and leading and trailing blanks in `obsrvr' are not significant. Optionally, you may supply a string containing the integer ID code for the object. For example both 'EARTH' and '399' are legitimate strings that indicate the earth is the observer. the call: ## ExamplesAny numerical results shown for this example may differ between platforms as the results depend on the SPICE kernels used as input and the machine specific arithmetic implementation. Find the sub-solar point on Phobos as seen from Earth for a specified sequence of times. Perform the computation twice, using both the "intercept" and "ellipsoid near point" options. Compute the corresponding sub-solar point values using an ellipsoidal surface for comparison. In the following example program, the file phobos_3_3.dsk is a DSK file containing a type 2 segment that provides a plate model representation of the surface of Phobos. The file mar097.bsp is a binary SPK file containing data for Phobos, the Earth, and the Sun for a time interval bracketing the date 2006 NOV 3 00:00:00 UTC. pck00010.tpc is a planetary constants kernel file containing radii and rotation model constants. naif0010.tls is a leapseconds kernel. All of the kernels other than the DSK file should be loaded via a meta-kernel. An example of the contents of such a kernel is: KPL/MK \begindata KERNELS_TO_LOAD = ( 'naif0010.tls' 'pck00010.tpc' 'mar097.bsp' ) \begintext PRO subsol_pl02_t, meta, dsk ;; ;; Constants ;; NCORR = 2 NSAMP = 3 NMETHOD = 2 TIMLEN = 40 FIXREF = 'IAU_PHOBOS' TOL = 1.d-12 ;; ;; Initial values ;; abcorrs = [ 'NONE', 'CN+S' ] emethods = [ 'Intercept: ellipsoid', 'Near point: ellipsoid' ] plmethods = [ 'Intercept', 'Ellipsoid near point' ] obsrvr = 'Earth' target = 'Phobos' ;; ;; Load the metakernel. ;; cspice_furnsh, meta ;; ;; Open the DSK file for read access. ;; We use the DAS-level interface for ;; this function. ;; cspice_dasopr, dsk, handle ;; ;; Begin a forward search through the ;; kernel, treating the file as a DLA. ;; In this example, it's a very short ;; search. ;; cspice_dlabfs, handle, dladsc, found if ~found then begin ;; ;; We arrive here only if the kernel ;; contains no segments. This is ;; unexpected, but we're prepared for it. ;; message, 'No segments found in DSK file ', dsk endif ;; ;; If we made it this far, `dladsc' is the ;; DLA descriptor of the first segment. ;; ;; Now compute sub-solar points using both computation ;; methods. We'll vary the aberration corrections ;; and the epochs. ;; et0 = 0.D stepsize = 1.d6 for i = 0, NSAMP-1 do begin ;; ;; Set the computation time for the ith sample. ;; et = et0 + i * stepsize cspice_timout, et, $ 'YYYY-MON-DD HR:MN:SC.### ::TDB(TDB)', $ TIMLEN, timstr print, 'Observation epoch: ', timstr print for coridx = 0, NCORR-1 do begin abcorr = abcorrs[ coridx ] print, ' abcorr = ', abcorr for midx = 0, NMETHOD-1 do begin ;; ;; Select the computation method. ;; method = plmethods( midx ) print, ' Method = ', method print ;; ;; Compute the sub-solar point using a plate ;; model representation of the target's surface. ;; ## Particulars
## Required ReadingICY.REQ DSK.REQ PCK.REQ SPK.REQ TIME.REQ ## Version-Icy Version 1.0.0, 15-DEC-2016, ML (JPL), EDW (JPL) ## Index_Entriessub-solar point using triangular plate_model sub-solar point using type_2 dsk |

Wed Apr 5 17:58:04 2017