NAME
Geo::ECEF - Converts between ECEF (earth centered earth fixed) coordinates and latitude, longitude and height above ellipsoid.
SYNOPSIS
use Geo::ECEF;
my $obj=Geo::ECEF->new(); #WGS84 is the default
my ($x, $y, $z)=$obj->ecef(39.197807, -77.108574, 55); #Lat (deg), Lon (deg), HAE (meters)
print "X: $x\tY: $y\tZ: $z\n";
my ($lat, $lon, $hae)=$obj->geodetic($x, $y, $z); #X (meters), Y (meters), Z (meters)
print "Lat: $lat \tLon: $lon \tHAE $hae\n";
DESCRIPTION
Geo::ECEF provides two methods ecef and geodetic. The ecef method calculates the X,Y and Z coordinates in the ECEF (earth centered earth fixed) coordinate system from latitude, longitude and height above the ellipsoid. The geodetic method calculates the latitude, longitude and height above ellipsoid from ECEF coordinates.
The formulas were found at http://www.u-blox.ch/ and http://waas.stanford.edu/~wwu/maast/maastWWW1_0.zip.
This code is an object Perl rewrite of a similar package by Morten Sickel, Norwegian Radiation Protection Authority
CONSTRUCTOR
new
The new() constructor initializes the ellipsoid method.
my $obj=Geo::ECEF->new("WGS84"); #WGS84 is the default
METHODS
ellipsoid
Method to set or retrieve the current ellipsoid object. The ellipsoid is a Geo::Ellipsoids object.
my $ellipsoid=$obj->ellipsoid; #Default is WGS84
$obj->ellipsoid('Clarke 1866'); #Built in ellipsoids from Geo::Ellipsoids
$obj->ellipsoid({a=>1}); #Custom Sphere 1 unit radius
ecef
Method returns X (meters), Y (meters), Z (meters) from lat (degrees), lon (degrees), HAE (meters).
my ($x, $y, $z)=$obj->ecef(39.197807, -77.108574, 55);
ecef_rad
Method returns X (meters), Y (meters), Z (meters) from lat (radians), lon (radians), HAE (meters).
my ($x, $y, $z)=$obj->ecef(0.678, -0.234, 55);
geodetic
Method returns latitude (degrees), longitude (degrees), HAE (meters) from X (meters), Y (meters), Z (meters).
my ($lat, $lon, $hae)=$obj->geodetic($x, $y, $z);
Portions of this method maybe
*************************************************************************
* Copyright c 2001 The board of trustees of the Leland Stanford *
* Junior University. All rights reserved. *
* This script file may be distributed and used freely, provided *
* this copyright notice is always kept with it. *
* *
* Questions and comments should be directed to Todd Walter at: *
* twalter@stanford.edu *
*************************************************************************
TODO
BUGS
Please send to the geo-perl email list.
LIMITS
AUTHORS
Michael R. Davis qw/perl michaelrdavis com/
Morten Sickel http://sickel.net/
LICENSE
Copyright (c) 2006 Michael R. Davis (mrdvt92)
Copyright (c) 2005 Morten Sickel (sickel.net)
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
geo::ecef Astro::Coord::ECI http://www.ngs.noaa.gov/cgi-bin/xyz_getxyz.prl