[gdal-dev] How to use TransformPoints in python?

Steve Gaffigan gaffigan at sfos.uaf.edu
Fri Jan 16 12:54:56 EST 2009


Rene,

You could also use the pyproj module (http://code.google.com/p/pyproj/).

> import os, osgeo, numpy
import pyproj
> from osgeo import ogr, osr
> 
> 
> def getProjection( EPSGcode ):
>     """ set a projection from ... to lat-long """
> 
>     srs = osgeo.osr.SpatialReference()
>     srs.ImportFromEPSG( EPSGcode )
>     # RD-NL lacks TOWGS84
>     if EPSGcode == 28992:
>         srs.SetTOWGS84( 565.237, 50.0087, 465.658, -0.406857, 0.350733, 
> -1.87035, 4.0812 )
> 
       return pyproj.Proj(srs.ExportToProj4())
> 
> 
> if __name__ == '__main__':
> 
>     proj = getProjection( 28992 )
> 
>     polygon =[[132817.006604435708141, 550302.852720651309937, 0.],
>               [131182.28895997320069, 558340.214472591876984, 0.],
>               [132578.61028128489852, 558748.893883707583882, 0.],
>               [136631.347774848196423, 553436.061539204441942, 0.],
>               [136631.347774848196423, 553436.061539204441942, 0.],
>               [132817.006604435708141, 550302.852720651309937, 0.]]
> 
>     x = numpy.array( [p[0] for p in polygon] )
>     y = numpy.array( [p[1] for p in polygon] )
>     z = numpy.array( [p[2] for p in polygon] )
> 
       print proj(x, y, inverse=True)
> 
> returns:
> 
(array([ 5.05762415,  5.03271685,  5.05349572,  5.11419251,  5.11419251,
         5.05762415]), array([ 52.94040396,  53.01256714,  53.01629989, 
  52.96870616,
         52.96870616,  52.94040396]))

Steve


More information about the gdal-dev mailing list