I have a shapefile of world countries, with longitude between -180° and 180°.
How can I change the shapefile (eg. with ogr2ogr) for having longitude between 0 and 360°.
Following OSGEO/Trac explanation about GenParms, I tried this without success (the result is still in -180 – 180:
ogr2ogr -wrapdateline -t_srs '+proj=latlong +datum=WGS84
+lon_wrap=-180 +over' /data/tmp/new_algo/world_new.shp /data/tmp/new_algo/world.shp
I need to have the new longitude defined as:
if Lon < 0:
new_Lon = 360 + Lon
else:
new_Lon = Lon
Of course, the process must take care of the date line.
Best Answer
Using GDAL >= 1.10.0 compiled with SQLite and SpatiaLite:
or:
Both commands produce a longitude offset of 180°, i.e. a prime meridian of -180° is considered. In fact:
The difference between the two commands is that with a longitude offset (2nd try) data are simply reprojected using -180° as prime meridian, while shifting the coordinates geometries (1st try) are altered, even if the result is apparently the same.
EDIT
If there are parts in 0-180 that should not move, it's possible to adapt this working solution: https://gis.stackexchange.com/a/73164/22405
Clip the two parts:
Shift only the first part:
Then, merge the second part and the first shifted:
Finally, dissolve countries boundaries of
world_0_360_raw.shp
obtainingworld_0_360.shp
by country names. For instance: