<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7653.38">
<TITLE>How to use TransformPoints in python?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<BR>

<P><FONT SIZE=2>The following simple python script<BR>
<BR>
import os, osgeo, numpy<BR>
from osgeo import ogr, osr<BR>
<BR>
<BR>
def getProjection( EPSGcode ):<BR>
&nbsp;&nbsp;&nbsp; &quot;&quot;&quot; set a projection from ... to lat-long &quot;&quot;&quot;<BR>
<BR>
&nbsp;&nbsp;&nbsp; srs = osgeo.osr.SpatialReference()<BR>
&nbsp;&nbsp;&nbsp; srs.ImportFromEPSG( 4326 ) # WGS84<BR>
&nbsp;&nbsp;&nbsp; ll = srs.CloneGeogCS()<BR>
<BR>
&nbsp;&nbsp;&nbsp; srs.ImportFromEPSG( EPSGcode )<BR>
&nbsp;&nbsp;&nbsp; # RD-NL lacks TOWGS84<BR>
&nbsp;&nbsp;&nbsp; if EPSGcode == 28992:<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; srs.SetTOWGS84( 565.237, 50.0087, 465.658, -0.406857, 0.350733, -1.87035, 4.0812 )<BR>
<BR>
&nbsp;&nbsp;&nbsp; return osr.CoordinateTransformation( srs, ll )<BR>
<BR>
<BR>
if __name__ == '__main__':<BR>
<BR>
&nbsp;&nbsp;&nbsp; proj = getProjection( 28992 )<BR>
<BR>
&nbsp;&nbsp;&nbsp; polygon =[[132817.006604435708141, 550302.852720651309937, 0.],<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [131182.28895997320069, 558340.214472591876984, 0.],<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [132578.61028128489852, 558748.893883707583882, 0.],<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [136631.347774848196423, 553436.061539204441942, 0.],<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [136631.347774848196423, 553436.061539204441942, 0.],<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [132817.006604435708141, 550302.852720651309937, 0.]]<BR>
<BR>
&nbsp;&nbsp;&nbsp; x = numpy.array( [p[0] for p in polygon] )<BR>
&nbsp;&nbsp;&nbsp; y = numpy.array( [p[1] for p in polygon] )<BR>
&nbsp;&nbsp;&nbsp; z = numpy.array( [p[2] for p in polygon] )<BR>
<BR>
&nbsp;&nbsp;&nbsp; print proj.TransformPoints( len(polygon), x, y, z)<BR>
<BR>
returns:<BR>
<BR>
Traceback (most recent call last):<BR>
&nbsp; File &quot;&lt;stdin&gt;&quot;, line 37, in &lt;module&gt;<BR>
&nbsp; File &quot;/var/tmp/libgdal0-1.6.0-build/usr/lib64/python2.6/site-packages/osgeo/osr.py&quot;, line 622, in TransformPoints<BR>
&nbsp;&nbsp;&nbsp;<BR>
TypeError: in method 'CoordinateTransformation_TransformPoints', argument 3 of type 'double *'<BR>
<BR>
I also tried straight python lists of doubles.<BR>
So what type of arguments does TransformPoints expect (as there is obviously nothing like double* in python)?<BR>
<BR>
Regards<BR>
<BR>
Rene</FONT>
</P>

</BODY>
</HTML>