Pong

July 17th 2014, LLH to ECEF Conversion

July 16th 2014 Automate Qt Build | | July 18th 2014 Doxygen

The conversion method from LLH into ECEF coordinates is borrowed from libMini’s minicrs module. The module is a reimplementation of a subset of the routines in the General Cartographic Transformation Package (GCTPC) of the EDC.

// transform Lat/Lon/H to ECEF
// input in degrees, height in meters, output in meters
// latitude in [-90,90] degrees
// longitude in [-180,180] degrees
static void LLH2ECEF(double lat, double lon, double h,
                     double xyz[3],
                     double r_major, double r_minor)
{
   const double es=1.0-r_minor*r_minor/(r_major*r_major); // eccentricity squared

   double slat,clat,slon,clon; // sine and cosine values
   double r;                   // radius in prime vertical

   lat*=2*M_PI/360;
   lon*=2*M_PI/360;

   slat=sin(lat);
   clat=cos(lat);
   slon=sin(lon);
   clon=cos(lon);

   r=r_major/sqrt(1.0-es*slat*slat);

   xyz[0]=(r+h)*clat*clon;
   xyz[1]=(r+h)*clat*slon;
   xyz[2]=(r*(1.0-es)+h)*slat;
}

The particular license of the GCTPC package is not specified. The 1998 announcement text of the GCTPC 2.0 release states that “this new version, GCTPc, is being made available informally on a ‘user-beware’ basis. EDC assumes no responsibility for the accuracy of the routines in this package”. As the software is made explicitly open to the public on a “user-beware” basis, it is assumed that the software is in the public domain.

The subset of map projections of GCPTC that has been recoded as part of the libMini::minicrs module is licensed under LGPL 2.1.

July 16th 2014 Automate Qt Build | | July 18th 2014 Doxygen

Options: