$LastChangedDate: 27-Juil-2011 $

# CL_op_locTimeG50

Conversion between longitude, right ascension and local time

## Calling Sequence

       [par_out] = CL_op_locTimeG50(cjd, type_par, par, type_par_out [,ut1_utc])
       [res1,..,resN] = CL_op_locTimeG50(cjd, type_par, par, [type1,..,typeN] [,ut1_utc])
       [par_out] = CL_op_locTimeG50(cjd, type_par, par, 'all' [,ut1_utc])

## Description

- Performs various conversions between quantities defined in the Earth equatorial plane.

  These quantities are: longitude, right ascension, true or mean local time. Additional quantities are computed: sidereal time and right ascension of (true or mean) Sun direction.

  Quick definitions:

  - The right ascension (ra) is the angle in the equator from the inertial reference axis (in the equatorial plane) chosen.

  - The longitude (lon) is the angle in the equator from the Greenwich meridian.

  - The sidereal time (sidt) is the angle between the inertial axis and the Greenwich meridian.

  - The true solar angle (tsa) is the angle from the projection of the Sun direction onto the equatorial plane.

  - The mean solar angle (msa) is the "mean" value of the true solar angle, that is the angle from a fictitious "mean" direction of the Sun that is rotating uniformly in the equatorial plane (i.e. unaffected by the equation of time).

- The relations between the different parameters are as follows:

  ra = lon + sidt

  tsa = ra - stra

  msa = ra - smra

  smra = sidt - 2*%pi*decimal(t) + %pi

  tlh = tsa * 12/%pi + 12

  mlh = msa * 12/%pi + 12

  where:

  - sidt: sidereal time.

  - stra: right ascension of the direction.

  - smra: right ascension of the "mean" planet to Sun direction.

  - t is the number of days from some origin at midnight (UT);

  - decimal(t) = t - floor(t) (decimal part).

- Important notes:

  - The function is only valid for the Earth.

  - The inertial axis (origin for right ascensions or sidereal time) is the x-axis of the Gamma 50 (Veis) reference frame.

  Remark: Some output parameters do not depend on all the inputs. Examples:

  lon = CL_op_locTimeG50(cjd, 'lon', 0, 'lon') => cjd should not be needed in theory(but it is used in practice!)

  sidt = CL_op_locTimeG50(cjd, 'lon', 0, 'sidt') => the result does not depend on 'lon'!)

- Deprecated use:

  - The use of tlt and mlt is deprecated.

  - Use respectively tsa and msa instead.

## Parameters

cjd:

  Time from 1950.0 in the UTC time scale (1xN or 1x1)

type_par:

  (string) Name of the input parameter. It can be 'lon' (longitude), 'ra' (right ascension), 'tsa' (true solar angle), 'tlh' (true local time expressed in hours), 'msa' (mean solar angle), 'mlh' (mean local time expressed in hours).

par:

  Value of the input parameter expressed in degrees for lon, ra, msa, tsa and hours for mlh and tlh. (1xN or 1x1).

type_par_out:

  (string) Name(s) of the output parameter(s). It can be 'lon', 'ra', 'tsa', 'tlh', 'msa', 'mlh' (see type_par), or 'sidt' (sidereal time), 'stra' (Sun true right ascension) 'smra' (Sun mean right ascension), or a vector of any of these, or 'all'. (1xM)

ut1_utc:

  number of seconds between UTC and UT1 = Time of some event in UTC minus time of the same event in UT1.

varargout:

  Value(s) of the output parameters. As many arguments are needed as there are names in 'type_par_out', except if type_par_out is 'all' in which case varargout is a structure (with fields names equal to the names in type_par_out). Units are radians or hours depending on the parameter.

## Authors

- CNES - DCT/SB

## See also

- CL_mod_sidTimeG50

- CL_mod_moonSunG50

## Examples

    // Right ascension to local time:
    t = CL_dat_cal2cjd(2009,09,07,10,29,30.5); // September 7th 2009, 10:29:30.5 UTC
    ra   = CL_deg2rad(10);
    mlh = CL_op_locTimeG50(t, 'ra', ra, 'mlh') // => mean local time in hours
    tlh = CL_op_locTimeG50(t, 'ra', ra, 'tlh') // => true local time in hours

    // Local time to right ascension:
    ra = CL_op_locTimeG50(t, 'mlh', mlh, 'ra') // using mean local time in hours
    ra = CL_op_locTimeG50(t, 'tlh', tlh, 'ra') // using true local time in hours

    // Local time to longitude:
    lon = CL_op_locTimeG50(t, 'mlh', mlh, 'lon') // using mean local time in hours
    lon = CL_op_locTimeG50(t, 'tlh', tlh, 'lon') // using true local time in hours

    // Vector of right ascensions :
    ra = CL_deg2rad(0:90:390);
    mlh = CL_op_locTimeG50(t, 'ra', ra, 'mlh')
    tlh = CL_op_locTimeG50(t, 'ra', ra, 'tlh')

    // List of output parameters :
    [tlh,mlh,sidt] = CL_op_locTimeG50(t,'ra',ra,['tlh','mlh','sidt'])

    // All output parameters in a structure:
    par_out = CL_op_locTimeG50(t, 'ra', ra, 'all');
    par_out.tlh