Paparazzi UAS  v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
Double Geodetic functions
+ Collaboration diagram for Double Geodetic functions:

Data Structures

struct  EcefCoor_d
 vector in EarthCenteredEarthFixed coordinates More...
 
struct  LlaCoor_d
 vector in Latitude, Longitude and Altitude More...
 
struct  NedCoor_d
 vector in North East Down coordinates Units: meters More...
 
struct  EnuCoor_d
 vector in East North Up coordinates Units: meters More...
 
struct  UtmCoor_d
 position in UTM coordinates Units: meters More...
 
struct  LtpDef_d
 definition of the local (flat earth) coordinate system More...
 

Functions

void lla_of_utm_d (struct LlaCoor_d *lla, struct UtmCoor_d *utm)
 
void utm_of_lla_d (struct UtmCoor_d *utm, struct LlaCoor_d *lla)
 
void ltp_def_from_ecef_d (struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ltp_def_from_lla_d (struct LtpDef_d *def, struct LlaCoor_d *lla)
 
void lla_of_ecef_d (struct LlaCoor_d *out, struct EcefCoor_d *in)
 
void ecef_of_lla_d (struct EcefCoor_d *out, struct LlaCoor_d *in)
 
void enu_of_ecef_point_d (struct EnuCoor_d *ned, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ned_of_ecef_point_d (struct NedCoor_d *ned, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void enu_of_ecef_vect_d (struct EnuCoor_d *ned, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ned_of_ecef_vect_d (struct NedCoor_d *ned, struct LtpDef_d *def, struct EcefCoor_d *ecef)
 
void ecef_of_enu_point_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct EnuCoor_d *enu)
 
void ecef_of_ned_point_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct NedCoor_d *ned)
 
void ecef_of_enu_vect_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct EnuCoor_d *enu)
 
void ecef_of_ned_vect_d (struct EcefCoor_d *ecef, struct LtpDef_d *def, struct NedCoor_d *ned)
 
void enu_of_lla_point_d (struct EnuCoor_d *enu, struct LtpDef_d *def, struct LlaCoor_d *lla)
 
void ned_of_lla_point_d (struct NedCoor_d *ned, struct LtpDef_d *def, struct LlaCoor_d *lla)
 
double gc_of_gd_lat_d (double gd_lat, double hmsl)
 

Detailed Description


Data Structure Documentation

◆ EcefCoor_d

struct EcefCoor_d

vector in EarthCenteredEarthFixed coordinates

Origin at center of mass of the Earth. Z-axis is pointing north, the x-axis intersects the sphere of the earth at 0° latitude (Equator) and 0° longitude (Greenwich). Y-axis completes it to right-hand system. Units: meters

Definition at line 49 of file pprz_geodetic_double.h.

Data Fields
double x in meters
double y in meters
double z in meters

◆ LlaCoor_d

struct LlaCoor_d

vector in Latitude, Longitude and Altitude

Definition at line 58 of file pprz_geodetic_double.h.

Data Fields
double alt in meters above WGS84 reference ellipsoid
double lat in radians
double lon in radians

◆ NedCoor_d

struct NedCoor_d

vector in North East Down coordinates Units: meters

Definition at line 67 of file pprz_geodetic_double.h.

Data Fields
double x in meters
double y in meters
double z in meters

◆ EnuCoor_d

struct EnuCoor_d

vector in East North Up coordinates Units: meters

Definition at line 76 of file pprz_geodetic_double.h.

Data Fields
double x in meters
double y in meters
double z in meters

◆ UtmCoor_d

struct UtmCoor_d

position in UTM coordinates Units: meters

Definition at line 85 of file pprz_geodetic_double.h.

Data Fields
double alt in meters (above WGS84 reference ellipsoid or above MSL)
double east in meters
double north in meters
uint8_t zone UTM zone number.

◆ LtpDef_d

struct LtpDef_d

definition of the local (flat earth) coordinate system

Defines the origin of the local coordinate system in ECEF and LLA coordinates and the roation matrix from ECEF to local frame

Definition at line 97 of file pprz_geodetic_double.h.

+ Collaboration diagram for LtpDef_d:
Data Fields
struct EcefCoor_d ecef origin of local frame in ECEF
double hmsl height in meters above mean sea level
struct LlaCoor_d lla origin of local frame in LLA
struct DoubleRMat ltp_of_ecef rotation from ECEF to local frame

Function Documentation

◆ ecef_of_enu_point_d()

void ecef_of_enu_point_d ( struct EcefCoor_d ecef,
struct LtpDef_d def,
struct EnuCoor_d enu 
)

Definition at line 168 of file pprz_geodetic_double.c.

References LtpDef_d::ecef, LtpDef_d::ltp_of_ecef, MAT33_VECT3_TRANSP_MUL, and VECT3_ADD.

Referenced by ecef_of_ned_point_d().

+ Here is the caller graph for this function:

◆ ecef_of_enu_vect_d()

void ecef_of_enu_vect_d ( struct EcefCoor_d ecef,
struct LtpDef_d def,
struct EnuCoor_d enu 
)

Definition at line 181 of file pprz_geodetic_double.c.

References LtpDef_d::ltp_of_ecef, and MAT33_VECT3_TRANSP_MUL.

Referenced by ecef_of_ned_vect_d().

+ Here is the caller graph for this function:

◆ ecef_of_lla_d()

void ecef_of_lla_d ( struct EcefCoor_d out,
struct LlaCoor_d in 
)

◆ ecef_of_ned_point_d()

void ecef_of_ned_point_d ( struct EcefCoor_d ecef,
struct LtpDef_d def,
struct NedCoor_d ned 
)

Definition at line 174 of file pprz_geodetic_double.c.

References ecef_of_enu_point_d(), and ENU_OF_TO_NED.

+ Here is the call graph for this function:

◆ ecef_of_ned_vect_d()

void ecef_of_ned_vect_d ( struct EcefCoor_d ecef,
struct LtpDef_d def,
struct NedCoor_d ned 
)

Definition at line 186 of file pprz_geodetic_double.c.

References ecef_of_enu_vect_d(), and ENU_OF_TO_NED.

Referenced by decode_gpspacket().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ enu_of_ecef_point_d()

void enu_of_ecef_point_d ( struct EnuCoor_d ned,
struct LtpDef_d def,
struct EcefCoor_d ecef 
)

Definition at line 140 of file pprz_geodetic_double.c.

References LtpDef_d::ecef, LtpDef_d::ltp_of_ecef, MAT33_VECT3_MUL, and VECT3_DIFF.

Referenced by enu_of_lla_point_d(), and ned_of_ecef_point_d().

+ Here is the caller graph for this function:

◆ enu_of_ecef_vect_d()

void enu_of_ecef_vect_d ( struct EnuCoor_d ned,
struct LtpDef_d def,
struct EcefCoor_d ecef 
)

Definition at line 154 of file pprz_geodetic_double.c.

References LtpDef_d::ltp_of_ecef, and MAT33_VECT3_MUL.

Referenced by ned_of_ecef_vect_d().

+ Here is the caller graph for this function:

◆ enu_of_lla_point_d()

void enu_of_lla_point_d ( struct EnuCoor_d enu,
struct LtpDef_d def,
struct LlaCoor_d lla 
)

Definition at line 194 of file pprz_geodetic_double.c.

References ecef_of_lla_d(), and enu_of_ecef_point_d().

+ Here is the call graph for this function:

◆ gc_of_gd_lat_d()

double gc_of_gd_lat_d ( double  gd_lat,
double  hmsl 
)

Definition at line 210 of file pprz_geodetic_double.c.

References c2, and f.

Referenced by init_jsbsim().

+ Here is the caller graph for this function:

◆ lla_of_ecef_d()

void lla_of_ecef_d ( struct LlaCoor_d out,
struct EcefCoor_d in 
)

Definition at line 83 of file pprz_geodetic_double.c.

References LlaCoor_d::alt, b, c(), f, LlaCoor_d::lat, LlaCoor_d::lon, P, s, logger_uart_parse::s1, EcefCoor_d::x, EcefCoor_d::y, EcefCoor_d::z, and z2.

Referenced by fetch_state(), lla_of_ecef_i(), ltp_def_from_ecef_d(), and nps_sensor_gps_run_step().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lla_of_utm_d()

void lla_of_utm_d ( struct LlaCoor_d lla,
struct UtmCoor_d utm 
)

◆ ltp_def_from_ecef_d()

void ltp_def_from_ecef_d ( struct LtpDef_d def,
struct EcefCoor_d ecef 
)

Definition at line 34 of file pprz_geodetic_double.c.

References LtpDef_d::ecef, LlaCoor_d::lat, LtpDef_d::lla, lla_of_ecef_d(), LlaCoor_d::lon, LtpDef_d::ltp_of_ecef, DoubleRMat::m, and VECT3_COPY.

Referenced by gps_feed_value(), and init_ltp().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ltp_def_from_lla_d()

void ltp_def_from_lla_d ( struct LtpDef_d def,
struct LlaCoor_d lla 
)

Definition at line 57 of file pprz_geodetic_double.c.

References LtpDef_d::ecef, ecef_of_lla_d(), LlaCoor_d::lat, LtpDef_d::lla, LLA_COPY, LlaCoor_d::lon, LtpDef_d::ltp_of_ecef, and DoubleRMat::m.

+ Here is the call graph for this function:

◆ ned_of_ecef_point_d()

void ned_of_ecef_point_d ( struct NedCoor_d ned,
struct LtpDef_d def,
struct EcefCoor_d ecef 
)

Definition at line 147 of file pprz_geodetic_double.c.

References enu_of_ecef_point_d(), and ENU_OF_TO_NED.

Referenced by decode_gpspacket(), fetch_state(), and ned_of_lla_point_d().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ned_of_ecef_vect_d()

void ned_of_ecef_vect_d ( struct NedCoor_d ned,
struct LtpDef_d def,
struct EcefCoor_d ecef 
)

Definition at line 159 of file pprz_geodetic_double.c.

References enu_of_ecef_vect_d(), and ENU_OF_TO_NED.

Referenced by decode_gpspacket(), fetch_state(), and gps_feed_value().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ned_of_lla_point_d()

void ned_of_lla_point_d ( struct NedCoor_d ned,
struct LtpDef_d def,
struct LlaCoor_d lla 
)

Definition at line 201 of file pprz_geodetic_double.c.

References ecef_of_lla_d(), and ned_of_ecef_point_d().

+ Here is the call graph for this function:

◆ utm_of_lla_d()

void utm_of_lla_d ( struct UtmCoor_d utm,
struct LlaCoor_d lla 
)