[gdal-dev] Re: C# Nad27 to WGS 84
Tomas R
monshi at home.se
Fri Jul 17 07:02:48 EDT 2009
Hi again
Seems like I have solved the problem... the line
> such as preprocessing the grid shift file into binary form.
gave me (finally) the hint I needed. Tried to compile Proj4 and the
shift files but managed only compile the first part. Then I finally went
for the easy solution, I grabbed the binary files from FWTools and
finally I got it working.
Compiling the shift files on Windows? How? Well, not at big issue at the
moment.
Yours
Tomas
Frank Warmerdam skrev:
> Tomas R wrote:
>> Hi again,
>>
>> New problems arises as the world of Gdal is quite complex to grasp.
>>
>> Have understood that the transformation of coordinates from Nad 27
>> datum to WGS 84 requires some look up tables to be done correctly,
>> tables that differ with the are the Nad 27 is valid in.
>>
>> Simple question is, how to set up a general solution in C# that uses
>> these shift tables.
>> I have in code a simple test:
>> SpatialReference spatNad27 = new SpatialReference("");
>> spatNad27.SetWellKnownGeogCS("Nad27");
>> SpatialReference spatNad83 = new SpatialReference("");
>> spatNad83.SetWellKnownGeogCS("Nad83");
>> CoordinateTransformation trans = new
>> CoordinateTransformation(spatNad27, spatNad83);
>> double[] p = new double[3];
>> trans.TransformPoint(p, -117, 30, 0);
>>
>> that gives back
>> -117, 30,0000000008175
>> which I believe is not correct ( see http://proj.maptools.org/faq.html )
>>
>> I have Proj4.dll, I have set an environment path to PROJ_LIB where
>> the nad shift tables should exist. Must I do something else in the
>> setup or is the call to the transform different? or have I done
>> correctly but misinterpreted the results?
>>
>> What I in reality is interested is transforming whatever coordinate
>> in whatever projection/datum to and from WGS84 without any extra
>> hassle fast and easy via the C# interface. That should not be to
>> hard? Or?
>
> Tomas,
>
> If I test with the testepsg program (using GDAL services) with
> CPL_DEBUG and PROJ_DEBUG defined ON I get the following output.
>
> warmerda at gdal64[264]% setenv PROJ_DEBUG
> warmerda at gdal64[265]% testepsg -t NAD27 NAD83 -117 30
> OGRCT: Source: +proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs
> OGRCT: Target: +proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs
> pj_open_lib(conus): call
> fopen(/wrk/home/warmerda/bld/share/proj/conus) - succeeded
> Ctable Conterminous United States 273x121: LL=(-131,20) UR=(-63,50)
> pj_open_lib(alaska): call
> fopen(/wrk/home/warmerda/bld/share/proj/alaska) - succeeded
> Ctable Alaska 529x249: LL=(-194,46) UR=(-128,77)
> pj_open_lib(ntv2_0.gsb): call
> fopen(/wrk/home/warmerda/bld/share/proj/ntv2_0.gsb) - failed
> pj_open_lib(ntv1_can.dat): call
> fopen(/wrk/home/warmerda/bld/share/proj/ntv1_can.dat) - succeeded
> NTv1 393x177: LL=(-142,40) UR=(-44,84)
> pj_open_lib(conus): call
> fopen(/wrk/home/warmerda/bld/share/proj/conus) - succeeded
> pj_apply_gridshift(): used Conterminous United States
> (-117.000000,30.000000,0.000000) -> (-117.000806,30.000113,0.000026)
>
> I don't know if it is practical for you to enable debugging and see
> stderr output, but if you can it might help you deduce what is
> or is not working.
>
> It *sounds* like you have done what is necessary, but it is hard
> for me to know if you have made some mistake, such as preprocessing
> the grid shift file into binary form.
>
> Best regards,
More information about the gdal-dev
mailing list