Geodesy and Surveying (COGO) |
| HOME | The following are examples in geodesy and surveying.
The users are encouraged to explore all other available functions in "Ellipsoid" class, such as computation of geometric quantities of an ellipsoid, distances and directions on an ellipsoid, normal sections, direct problem, inverse problem, etc. COGO functions are essentially in class "Pt2D". Class "Pt3D" can perform some COGO but at a less extent. Moreover, class "VecIdPt2D" and "VecPt3D" have functions to do coordinate transformation. Mathematic models available are 2D conformal, 3Dconformal, affine, projective and 2nd degree polynomial. Coordinates of one system can be kept fixed or both systems can be treated as observation. Each single point can have its own standard deviation, or weight. For non-linear mathematic model, 3Dconformal and projective, there is no need to input any approximation, for they are automatically determined inside the functions. All coordinate transformation adjustments use Least Squares technique. Class "VecIndx", "VecPt2D" and "VecPt3D" can be viewed as a different type of polylines. In order to store and handle more than one polyline, class "VecRCpline", "VecXYpline" and "Vec3Dpline" are made possible to the user. Examples of Traverse computation and Least Square Leveling Network Adjustment are written as external programs. They can be found in section External User Defined Function and Program Repository. Space rectangular coordinate transformation GPS nowadays measures coordinates on earth as space rectangular coordinate, based on a 3D x y z axes, origin at center of the earth. This is a sort of conventional global system in which x-axis will point to Greenwich, the zero longitude, and the z axis will parallel to the rotation axis of the earth. To compute space rectangle coordinate, we use the following formulas. X = (N + h) cos f cos l Y = (N + h) cos f sin l Z = (N (1-e2) + h) sin f The class "Ellipsoid" Noobeed has functions to convert between geographic coordinate, latitude, longitude and height, and space rectangular coordinate back and forth. For example a point having latitude 40 deg 30 min 15.276 sec, longitude -99 deg 20 min 30.256 sec, h = 20 meters, can be transform to space rectangular coordinate as follows.
Please note that "GRS80" is a name of pre-defined ellipsoid in Noobeed. By using a pre-defined ellipsoid name, coorect parameters, a and f of an ellipsoid, will be assigned automatically to the ellipsoid object. To see a list of pre-defined ellipsoid, use command "list ellipsoid". To convert back to geographic coordinate, we do the following.
Topocentric coordinate transformation On the other hand, surveying local coordinate system is often established on the earth surface for a purpose of data collection using terrestrial equipments such as theodolites. Such a system is called Topcentric coordinate system, as oppose to Geocentric coordinate system (Space rectangular System). Sometimes, Topocentric system is referred as Local coordinate system. The origin of a topocentric system is at a point on surface of the earth, with its x-axis point to to the East direction and the y-axis point to the North. The z-axis is pointing up perpendicular to the xy plane, having z coordinates analogous to heights. Therefore topocentric coordinates are often expressed by ENH (East North Height), analogous to x y and z coordinate. The reader might come across some literatures which describe a topocentric system as a left-hand system, NEH, rather than ENH. However, in Noobeed the convention coordinate order of topocentric system is ENH, and it is a right-hand system. Many situations may arise and require coordinate transformation between the two systems. An example is to compute a geographic coordinate, latitude and longitude, from a topocentric coordinate, ENH. This requires transformation from ENH to XYZ then from XYZ to geographic coordinate. Another example is related to earth curvature distortion in Photogrammetry, where conventional ground control coordinates, easting and Northing from map projection and height from mean sea level, are not real 3D cartesian coordinates, since the z-axis does not perpendicular to xy plane all the time, but rather follows direction of gravity on earth surface. This is not a kind of desired coordinate system used in collinearity condition in Photogrammetry, thus results in compensation for earth curvature distortion. Earth curvature correction is not accurate, due to all formulas are just an approximation. However, if the topocentric coordinate system can be used as an intermediate coordinate system, there will be no earth curvature effect. This requires space coordinate transformation back and forth between Space Rectangular and Topocentric coordinates. The following demonstration follows the previous example.
The function "enh2xyz" can be used to convert local coordinates to space rectangular coordinates.
Coordinate transformation between different datums and different ellipsoid There are more than 150 predefined geodetic datums available in Noobeed, as well as more 15 predefined ellipsoids. In fact an ellispoid is a part of a definition of datum. Users can set an ellipsoid to one of the predefined ellipsoid by using the function "set". Or users can set an ellipsoid to a particular datum by using the function "setdatum". A datum comes with three shifts of its origins in x y and z direction from the center of the earth. To simplify the story, the three shifts, Cx, Cy, Cz of an ellipsoid is enable coordinate transformation between the space rectangular coordinate in that particular datum to WGS84 datum. Hence WGS84 is consider a geocentric system, where its origin is at center of the earth.
or
and so on
It should be mention that the user is freely allowed to set to an ellipsoid object any parameter as he wishes, using "l-function". The predefined datums and ellipsoids are so provided for a convenience purpose. To set an ellipsoid object, we do the following:
or
Now the following example is to show how to convert a geographic coordinate from one datum to another. Please note that Noobeed does not provide class function for this because it is quite simple to make an external user-defined function. For example a point in "NAD27_MEXICO" datum having latitude 40 deg 30 min 15.276 sec, longitude -99 deg 20 min 30.256 sec, h = 20 meters, can be transform to "NAD83_MEXICO" datum as folows.
It is worthwhile to know that a "Projection" object has an "Ellipsoid" object as one of its member data. Therefore, a projection object can handle both map projection coordinate transformation and datum change in one go. Please look at those functions like "tranxy2xy" "tranxy2geo" etc. in "Projection" class.
The following are lists of predefined ellipsoids and predefined datums that are available from Noobeed. Two global function can be used to get a list of them, namely "list ellipsoid" and "list datum". Also "list" and "flist" can be used interchangeably. Another way to get a list is from the class function, of ellipsoid, "list" and "listdatum".
We are going to explore some of the COGO functions in class "Pt2D". Start at point P1, having a coordinate of x = 100, y = 100, point P2 is calculated as follows.
P3 is offset from P1 to the right, we can try function "chainoff", setting point by chainage-offset.
P4, P5 and P6 are determined by function "traverse".
Please note the sign of angle, positive angle means an angle measured to the right (clockwise), while negative angle means an angle measured to the left (counter clockwise). P7 is determined by distance intersection from points P6 and P3.
Again points P8, P9 and P10 are calculated by function "traverse".
Please note that class IdPt2D can also be used to perform COGO functions, since one of its member data is a Pt2D object. Points can be stored in either "VecPt2D" or "VecIdPt2D", depending on what type of coordinate objects being used. Details on other COGO functions can be found in class "Pt2D". | HOME | |