OpenCPN Partial API docs
Loading...
Searching...
No Matches
georef.h File Reference

OpenCPN Georef utility. More...

#include <stdio.h>
#include <string.h>
#include <ctype.h>

Go to the source code of this file.

Classes

struct  DATUM
 
struct  ELLIPSOID
 
struct  GeoRef
 Structure containing georeferencing information for transforming between geographic and projected/pixel coordinate systems. More...
 
struct  lm_control_type
 
struct  lm_data_type
 

Macros

#define PI   3.1415926535897931160E0 /* pi */
 
#define DEGREE   (PI / 180.0)
 
#define RADIAN   (180.0 / PI)
 
#define DATUM_INDEX_WGS84   101
 
#define DATUM_INDEX_UNKNOWN   -1
 

Typedefs

typedef void() lm_evaluate_ftype(double *par, int m_dat, double *fvec, void *data, int *info)
 
typedef void() lm_print_ftype(int n_par, double *par, int m_dat, double *fvec, void *data, int iflag, int iter, int nfev)
 

Functions

void datumParams (short datum, double *a, double *es)
 
void toDMS (double a, char *bufp, int bufplen)
 
void toDMM (double a, char *bufp, int bufplen)
 
int GetDatumIndex (const char *str)
 
void MolodenskyTransform (double lat, double lon, double *to_lat, double *to_lon, int from_datum_index, int to_datum_index)
 
double lat_gc_crosses_meridian (double lat1, double lon1, double lat2, double lon2, double lon)
 
double lat_rl_crosses_meridian (double lat1, double lon1, double lat2, double lon2, double lon)
 
void lm_evaluate_default (double *par, int m_dat, double *fvec, void *data, int *info)
 
void lm_print_default (int n_par, double *par, int m_dat, double *fvec, void *data, int iflag, int iter, int nfev)
 
void lm_initialize_control (lm_control_type *control)
 =================================================================================
 
void lm_minimize (int m_dat, int n_par, double *par, lm_evaluate_ftype *evaluate, lm_print_ftype *printout, void *data, lm_control_type *control)
 
double lm_enorm (int, double *)
 
void lm_lmdif (int m, int n, double *x, double *fvec, double ftol, double xtol, double gtol, int maxfev, double epsfcn, double *diag, int mode, double factor, int *info, int *nfev, double *fjac, int *ipvt, double *qtf, double *wa1, double *wa2, double *wa3, double *wa4, lm_evaluate_ftype *evaluate, lm_print_ftype *printout, void *data)
 

Variables

const char * lm_infmsg []
 
const char * lm_shortmsg []
 

Detailed Description

OpenCPN Georef utility.

Parts of this file were adapted from source code found in John F. Waers (jfwae.nosp@m.rs@c.nosp@m.sn.ne.nosp@m.t) public domain program MacGPS45

Definition in file georef.h.

Macro Definition Documentation

◆ DATUM_INDEX_UNKNOWN

#define DATUM_INDEX_UNKNOWN   -1

Definition at line 95 of file georef.h.

◆ DATUM_INDEX_WGS84

#define DATUM_INDEX_WGS84   101

Definition at line 94 of file georef.h.

◆ DEGREE

#define DEGREE   (PI / 180.0)

Definition at line 91 of file georef.h.

◆ PI

#define PI   3.1415926535897931160E0 /* pi */

Definition at line 89 of file georef.h.

◆ RADIAN

#define RADIAN   (180.0 / PI)

Definition at line 92 of file georef.h.

Typedef Documentation

◆ lm_evaluate_ftype

typedef void() lm_evaluate_ftype(double *par, int m_dat, double *fvec, void *data, int *info)

Definition at line 774 of file georef.h.

◆ lm_print_ftype

typedef void() lm_print_ftype(int n_par, double *par, int m_dat, double *fvec, void *data, int iflag, int iter, int nfev)

Definition at line 781 of file georef.h.

Function Documentation

◆ datumParams()

void datumParams ( short  datum,
double *  a,
double *  es 
)

Definition at line 232 of file georef.cpp.

◆ GetDatumIndex()

int GetDatumIndex ( const char *  str)

Definition at line 276 of file georef.cpp.

◆ lat_gc_crosses_meridian()

double lat_gc_crosses_meridian ( double  lat1,
double  lon1,
double  lat2,
double  lon2,
double  lon 
)

Definition at line 2854 of file georef.cpp.

◆ lat_rl_crosses_meridian()

double lat_rl_crosses_meridian ( double  lat1,
double  lon1,
double  lat2,
double  lon2,
double  lon 
)

Definition at line 2872 of file georef.cpp.

◆ lm_enorm()

double lm_enorm ( int  n,
double *  x 
)

Definition at line 2788 of file georef.cpp.

◆ lm_evaluate_default()

void lm_evaluate_default ( double *  par,
int  m_dat,
double *  fvec,
void *  data,
int *  info 
)

Definition at line 1667 of file georef.cpp.

◆ lm_initialize_control()

void lm_initialize_control ( lm_control_type control)

=================================================================================

Definition at line 1743 of file georef.cpp.

◆ lm_lmdif()

void lm_lmdif ( int  m,
int  n,
double *  x,
double *  fvec,
double  ftol,
double  xtol,
double  gtol,
int  maxfev,
double  epsfcn,
double *  diag,
int  mode,
double  factor,
int *  info,
int *  nfev,
double *  fjac,
int *  ipvt,
double *  qtf,
double *  wa1,
double *  wa2,
double *  wa3,
double *  wa4,
lm_evaluate_ftype *  evaluate,
lm_print_ftype *  printout,
void *  data 
)

Definition at line 1838 of file georef.cpp.

◆ lm_minimize()

void lm_minimize ( int  m_dat,
int  n_par,
double *  par,
lm_evaluate_ftype *  evaluate,
lm_print_ftype *  printout,
void *  data,
lm_control_type control 
)

Definition at line 1752 of file georef.cpp.

◆ lm_print_default()

void lm_print_default ( int  n_par,
double *  par,
int  m_dat,
double *  fvec,
void *  data,
int  iflag,
int  iter,
int  nfev 
)

Definition at line 1696 of file georef.cpp.

◆ MolodenskyTransform()

void MolodenskyTransform ( double  lat,
double  lon,
double *  to_lat,
double *  to_lon,
int  from_datum_index,
int  to_datum_index 
)

Definition at line 906 of file georef.cpp.

◆ toDMM()

void toDMM ( double  a,
char *  bufp,
int  bufplen 
)

Definition at line 341 of file georef.cpp.

◆ toDMS()

void toDMS ( double  a,
char *  bufp,
int  bufplen 
)

Definition at line 291 of file georef.cpp.

Variable Documentation

◆ lm_infmsg

const char* lm_infmsg[]
extern

Definition at line 1784 of file georef.cpp.

◆ lm_shortmsg

const char* lm_shortmsg[]
extern

Definition at line 1797 of file georef.cpp.