Dear Cameron,
At 09:27 PM 8/25/01 -0500, you wrote:
>[Does anybody know] the transform to get from an Albers Equal Area (Nad 
>83) projection to
>UTM (all zones, but particularly for the US)? I need the formulas to put
>into a piece of code I am writing to change several thousand points in a
>dataset. Any assistance or pointers to the info would be greatly
>appreciated.

The straightforward way is to use your GIS to do the work, but let's accept 
as given that you want to write code from scratch.

You are unlikely to find direct formulas in the literature.  Instead, you 
apply three formulas in succession:
(1)     The inverse formula to obtain lat-lon from Albers values.
(2)     Any change of datum among spheroids.
(3)     The direct formula to obtain UTM coordinates from lat-lon.

John Snyder, in Map Projections--A Working Manual (USGS Professional Paper 
1395), provides exact formulas for (1) and truncated power series for 
(3).  These should get you millimeter accuracy within the usual UTM zones, 
which is about all you can hope for using double precision arithmetic.  He 
also presents some worked numerical examples.

There's plenty of material from NIMA, AUSLIG, and others discussing how to 
perform (2).  If you need a change of datum at all, it's probably NAD 
83-->NAD 27.  For that you can borrow the NADCON source code and data 
sets.  It's on the Web (in Fortran).

If your dataset has relatively small extent, you could consider 
approximating the full change of coordinates.  There are many 
techniques.  A general-purpose technique that is easy to implement and fast 
in computation consists of developing a regular rectangular grid of 
transformed values (using your GIS of course) and then performing bilinear 
interpolation within the grid to estimate the transformed values at other 
points.  A sufficiently fine grid will achieve any desired level of 
accuracy.  This is the technique used by NADCON to perform NAD 27-->NAD 83 
conversion, as well as for datum conversions in Australia and Canada.  The 
trade-off is that higher levels of accuracy require ever more storage for 
the attendant grids, so after a point there are severe demands made on RAM 
and disk I/O.

Another approach is to fit a polynomial or rational function to a 
collection of known transformed values.  Use multiple linear regression to 
find the coefficients.  There is more up-front work in doing the regression 
analysis, but implementing a rational function in code is easy and easily 
tested.  The actual computations will be pretty fast.

Whether any approximate approach works for you depends on the extent of 
your dataset and your accuracy requirements.

--Bill Huber



_______________________________________________________________________
List hosting provided by Directions Magazine | www.directionsmag.com |
To unsubscribe, send e-mail to [EMAIL PROTECTED] and
put "unsubscribe MapInfo-L" in the message body.

Reply via email to