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.