From: Frank W. <war...@ho...> - 2000-08-30 20:45:12
|
Andrew, I have prepared a small example script for reprojection: #!/usr/bin/env python import osr srs = osr.SpatialReference() srs.SetProjCS("My UTM") srs.SetAttrValue("PROJCS|PROJECTION", "Transverse_Mercator") srs.SetProjParm("latitude_of_origin",0) srs.SetProjParm("central_meridian",-81) srs.SetProjParm("scale_factor", 0.9996) srs.SetProjParm("false_easting",500000) srs.SetProjParm("false_northing",0) srs.SetWellKnownGeogCS( "WGS84" ) srs.SetLinearUnits("meter",1.0) srs_ll = srs.CloneGeogCS() print srs print srs.ExportToPrettyWkt() print srs_ll print srs_ll.ExportToPrettyWkt() ct = osr.CoordinateTransformation(srs, srs_ll) print ct.TransformPoint( 444000, 3000000 ) This shows doing things pretty much the hard way. In particular, setting the projection parameters one at a time by name. The full list of projection transformation methods, and their parameters can be fetched using the new osr.GetProjectionMethods() call. It returns a list of projection methods. eg. >>> import osr >>> pm_list = osr.GetProjectionMethods() >>> print pm_list[0] ('Transverse_Mercator', 'Transverse Mercator', [('latitude_of_origin', 'Latitude of Origin', 'Lat', 0.0), ('central_meridian', 'Central Meridian', 'Long', 0.0), ('scale_factor', 'Scale Factor', 'Ratio', 1.0), ('false_easting', 'False Easting', 'm', 0.0), ('false_northing', 'False Northing', 'm', 0.0)]) >>> The format for a projection method is: ( name_of_projection_method, user_visible_name_of_projection_method, list_of_parameters) each parameter in the list_of_parameters look like: ( parameter_name, user_visible_parameter_name, type, default_value ) The types are "Long", "Lat", "Angle" (for skew and azimuth values), "m" (for false easting and northing), and "Ratio" for scale values. This should be enough to populate a GUI. Note that there are a number of other ways to instantiate SpatialReference objects, including based on an EPSG coordinate system id, and by ingesting a "well known text" format description of the whole coordinate system. Later, ---------------------------------------+-------------------------------------- I set the clouds in motion - turn up | Frank Warmerdam, war...@ho... light and sound - activate the windows | http://members.home.com/warmerda and watch the world go round - Rush | Geospatial Programmer for Rent |