Ellipsoid
 

| HOME | BACK |

Overview

Ellipsoid is a class used for geometric computation on an ellipsoid.  There are enough of class functions to handle such classical problems, like direct and inverse problem, 3D space coordinate transformation, calculation of a meridian arc length and so on.

Ellipsoid has an extensive database of almost all ellipsoids and Datums used all over the world.  It is most likely that the ellipsoid you want is already in the database.  The two class functions, "list" and "listdatum", can give a list of all available preset ellipsoid and datum, which can be later on assigned to an ellipsoid via functions "set" and "setdatum".

Ellipsoid is also used in map projection class, "Projection", where it is one of parameters needed to define.

 

Member data

Name Data type Meaning
name String name of ellipsoid
datum String datum name
a double semi-major axis
f double flattening
Cx double shift in X-axis from center of the earth
Cy double shift in Y-axis from center of the earth
Cz double shift in Z-axis from center of the earth

Only a, f, Cx, Cy and Cz are used in identification of an ellipsoid.  Name and datum are optional information.

 

Operator

no operator provided.

 

Construction function

{Ellipsoid} ret  =  ELLIPSOID([{double} argm1, {double} argm2, {String} argm3, {double} argm4, {double} argm5, {double} argm6])

argm1 = semi-major axis                          (default = 6378137)

argm2 = flattening                               (default = 1 / 298.2572235630)

argm3 = datum name                               (default = "not_specified")

argm4 = shift in X-axis from center of the earth (default = 0.000)

argm5 = shift in Y-axis from center of the earth (default = 0.000)

argm6 = shift in Z-axis from center of the earth (default = 0.000)

**Note that the default ellipsoid is that of "WGS84" datum.

Example:

->E_1 = Ellipsoid()

->print A

name : not_specified
semi-major axis (a) : 6378137.00000
1/flattening (1/f) : 298.2572235630

Datum name : not_specified
Datum shift Cx : 0.00000
Cy : 0.00000
Cz : 0.00000
 

 

Lfunction

object.NAME()  =  {String} left-value

object.DATUM(){String} left-value

object.A()     =  {double} left-value

object.F()     =  {double} left-value

object.CX()    =  {double} left-value

object.CY()    =  {double} left-value

object.CZ()    =  {double} left-value

Example:

->E_1.name() = "WGS84"

->E_1.f() = 1/300.8014

 

Class function

 A  B CX CY CZ
 DATUM  DIFAZI_NORMSECT DIRECT DIST2NORM E
 ENH2XYZ  F GCLAT GEO2XYZ INIT
 INVERSE  IS_SAME LIST LISTDATUM M
 MER_ARCLEN  N NAME NORMGRAV RAZI
 RDLAT  RGAUSS RMEAN SET SETDATUM
 VECENH2XYZ  VECGEO2XYZ VECXYZ2ENH VECXYZ2GEO VIDENH2XYZ
 VIDGEO2XYZ VIDXYZ2ENH VIDXYZ2GEO XYZ2ENH XYZ2GEO

 


| HOME | BACK |