[gdal-dev] ogr2ogr: issues going from polar2geographic
Even Rouault
even.rouault at spatialys.com
Fri Jul 8 16:00:46 PDT 2016
Le vendredi 08 juillet 2016 21:05:05, Robb Wright a écrit :
> I'm having problems going from a Stereographic North Pole to 4326.
> Contiguous polys across the 180 line in polar are splitting and wrapping
> across the 4326 space, instead of just splitting at the 180. The data
> doesn't go south of ~50 degrees latitude.
>
> ogr2ogr --config CHECK_WITH_INVERT_PROJ=YES "ESRI Shapefile"
> output_wgs84.shp masie_ice_r00_v01_2016187_4km.shp -s_srs "+proj=stere
> +lat_0=90 +lat_ts=60 +lon_0=-80 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m
> +no_defs" -t_srs EPSG:4326
>
> I've tried it with/without wrapdateline, with/without
> CHECK_WITH_INVERT_PROJ but all output looks the same.
> The proj4 came from gdalsrsinfo on the source file.
>
> Source shapefile:
> ftp://sidads.colorado.edu/DATASETS/NOAA/G02186/latest/4km/maise_ice_r00_4km
> .zip
>
> Using GDAL 2.1.0, released 2016/04/25 from the built GISInternals site.
>
> If anyone has thoughts on how to go from a polar to anything else, it
> would be appreciated.
Robb,
ogr2ogr -wrapdateline heuristics aren't ready to deal with such complex cases
as polygons in polar projection that contain the pole itself and/or that cross the
merdian +/- 180 deg (here we have both)
I've finally found a method in 4 steps :
1) create needle.csv with the following content :
id,WKT
1,"POLYGON((179.99999 0,179.99999 89.99999,-179.99999 89.99999,-179.99999 0,179.99999 0))"
2) project it to the polar system :
$ ogr2ogr needle_polar.shp needle.csv -s_srs EPSG:4326 -t_srs "+proj=stere +lat_0=90 +lat_ts=60 +lon_0=-80 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs" -overwrite
3) erase the needle from the original shapefile :
$ python ogr_layer_algebra.py Erase -input_ds masie_ice_r00_v01_2016189_4km.shp -method_ds needle_polar.shp -output_ds polar_without_pole.shp -overwrite
where ogr_layer_algebra.py comes from
https://svn.osgeo.org/gdal/trunk/gdal/swig/python/samples/ogr_layer_algebra.py
This step makes sure that no polygons include a point at longitude +/- 180 deg, as well as
making sure that the ~ 90 latitude appears in the coordinates of the polygon that contains the pole.
4) Finally project it to EPSG:4326
$ ogr2ogr result.shp polar_without_pole.shp -t_srs EPSG:4326 -overwrite
Even
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the gdal-dev
mailing list