# [Spice_discussion] Subsolar independent of observer

John Irwin jir1959 at btinternet.com
Wed Apr 25 05:14:27 PDT 2012

```Michael,

It sounds to me that what you are asking is, where on the surface of a body
would the Sun *appear* to be precisely "overhead" if you were to stand
there? This is how I understand the nature of the subsolar point and it does
not depend on an observer for it to exist (quantum-mechanical
interpretations notwithstanding!).

As body surfaces in SPICE are (mostly) modelled as ellipsoids, "overhead"
would be along a line perpendicular to the ellipsoid surface (the geodetic
normal). Therefore, simply find the position of the Sun relative to the
centre of the body and the body's body-fixed frame (spkpos), and then the
nearest point on the surface of the body from the Sun (nearpt). A line from
this near point to the Sun will lie on the geodetic normal at this point and

Now, as you require the "apparent" position of the Sun, you should use
"LT+S" corrections in the calculation of the relative position of the Sun.
In terms of light travel, this is the "reception" case. I don't think it is
sensible to exclude these aberrations when dealing with illumination issues.

Depending on your accuracy requirements, there is a slight complication with
this picture since the position of the Sun, and the corresponding
light-travel time, are for the centre of the body rather than the surface
point. The discrepancy is usually small for solar-system bodies, but if you
want to compensate for it then you can repeat the procedure using the near
point in the calculation instead of the centre of the body. To do this in
SPICE gets a little more complicated (more to set-up) but it's not
impossible.

John.

> -----Original Message-----
> From: spice_discussion-bounces at naif.jpl.nasa.gov
> [mailto:spice_discussion-bounces at naif.jpl.nasa.gov] On Behalf
> Of michael.aye at space.unibe.ch
> Sent: Tue 2012-Apr-24 09:18 AM
> To: nathaniel.bachman at jpl.nasa.gov
> Cc: spice_discussion at naif.jpl.nasa.gov
> Subject: Re: [Spice_discussion] Subsolar independent of observer
>
> Hi Nat,
>
> thanks for the comprehensive explanations.
>
> I have one remaining question:
>
> For a given time at a given body I believe I *should* use
> 'receiving' correction for a more correct sub-solar point, no?
> But I believe if I would use subslr with 'NONE' corrections
> the call to SPKPOS/SPKEZP is executed as well with 'NONE' and
> then my subsolar point could be several hundred meters wrong.
>
> In other words, I believe it's actually more correct to do
> (using Icy style reception of results):
>
> 1. target_center_to_sun = spkpos(..,..,"LT+S")
> 2. subsolar = nearpt(target_center_to_sun, a,b,c)
>
> then
>
> subsolar = subslr(..., ..., 'NONE' ,'ANY') #using 'ANY' as any body
>
> because subslr with 'NONE' would actually call spkpos or
> spkezp with 'NONE' as argument for the corrections.
>
> I see differences for et='now' on Mars like this:
>
> With the more precise method:
> subsolar = (-1583.4710879693594, 2652.3666484879827,
> 1402.9611333997216)
>
> just by using subslr with 'NONE' as correction:
> subsolar = (-1583.6919801731583, 2652.2458296473565,
> 1402.940457170704)
> Do you concur?
>
> Best regards,
> Michael
>
> On 24 Apr 2012, at 01:52, Nat Bachman wrote:
>
> >
> > Hi Michael,
> >
> > It is not ambiguous to refer to the sub-solar point
> > at a given time, as long as the geometric definition
> > (closest point to sun vs sun-body center ray surface intercept),
> > location associated with the time, and aberration corrections
> > are specified. If aberration corrections are omitted, then the
> > location associated with the time is immaterial.
> >
> > You can make a moderately accurate estimate of the
> > sub-solar point, independent of observer, at a given
> > time by using either of
> >
> >   SPKPOS ( uses body names )
> >   SPKEZP ( uses body codes---this routine is faster )
> >
> > to find the position of the sun relative to the body center.
> > The vector should be looked up in a body-centered, body-fixed
> > reference frame (for example, IAU_MARS if the body is Mars).
> >
> > If you use light time and stellar aberration corrections
> > for the above call, they should be "reception style" (see
> > the header of SPKPOS for an explanation).
> >
> > You can obtain body radii via a call to either of
> >
> >   BODVCD
> >   BODVRD
> >
> >
> > You then can call either of the routines
> >
> >   NEARPT ( for the "nearest point" sub-solar point definition )
> >   SURFPT ( for the "intercept" sub-solar point definition )
> >
> > to find the sub-solar point. For the SURFPT call, use the
> > negative of the body-sun position as the ray's direction vector.
> >
> > Another way of doing the computation is to use
> > coordinate conversion routines such as
> >
> >   RECLAT
> >   RECGEO
> >   RECPGR
> >
> > to convert the body-sun position vector to any of the
> >
> >   latitudinal
> >   geodetic/planetodetic
> >   planetographic
> >
> > coordinate systems, respectively. In the planetodetic
> > or planetographic cases, you can set the altitude of
> > the output coordinate sets to zero to obtain the sub-solar
> > point; in the latitudinal case you can call
> >
> >   SRFREC
> >
> > to convert the solar lon/lat to a cartesian representation
> > of a surface point.
> >
> > As usual, you can vary the aberration corrections
> > to determine their magnitudes and impact on your results.
> >
> > Best regards,
> >
> >  -Nat
> >
> > Nathaniel.Bachman at jpl.nasa.gov
> >
> >
> > michael.aye at space.unibe.ch wrote:
> >> I found one solution that kinda works with using subslr function:
> >> If I set the parameter 'abcorr' of the subslr function to
> 'NONE' I can use any other standard solar system body as
> observer and will get the same answer for the subsolar point
> coordinates.
> >> This method works apart from one drawback: I have to NOT
> choose the target body as observer, which means I can not
> hardcode just 'EARTH' in that lookup for the rare case I
> actually want the subsolar point on the Earth, but instead I
> need to keep a list of bodies and check if target and obs are
>  the same and if yes, take the next one in the list as observer.
> >> Maybe there's a more elegant solution?
> >> Best regards,
> >> Michael
> >> On 23 Apr 2012, at 01:20, Aye, Klaus-Michael (SPACE) wrote:
> >>> Dear all,
> >>>
> >>> I was wondering if there is not a way to determine the
> subsolar coordinates on a body independent of an observer?
> >>> If I understand things correctly, it is not ambiguous to
> ask at a given time 'et' which coordinate of a body is sub-solar?
> >>> The reason why I need this, is that I would like to stay
> away from observer kernels and light-time corrections as long
> as possible and only concentrate on local illumination
> scenarios at given times. Basically, 'I' am on the body's
> surface and I want to know now and 'here', where is the
> sub-solar point?
> >>>
> >>> Best regards,
> >>> Michael
> >>>
> >>>
> >>
> --------------------------------------------------------------
> ----------
> >> _______________________________________________
> >> Spice_discussion mailing list
> >> Spice_discussion at naif.jpl.nasa.gov
> >> http://naif.jpl.nasa.gov/mailman/listinfo/spice_discussion
>
>

```