Map Reprojection: Difference between revisions
(updated) |
(minor cleanup) |
||
Line 1: | Line 1: | ||
'''Question''' | '''Question''': How to change map/image projections, datums, etc in GRASS GIS? | ||
'''Answer''': For quality reasons, GRASS GIS handles '''one projection per location'''. | |||
'''Rationale''': Reprojection on the fly can easily introduce artifacts. Especially, | '''Rationale''': Reprojection on the fly can easily introduce artifacts. Especially, | ||
Line 14: | Line 11: | ||
Since many GIS users tend to blindly go ahead without selecting proper methods, the simple approach was adopted: put data which are in different projections into separate locations. That's it. | Since many GIS users tend to blindly go ahead without selecting proper methods, the simple approach was adopted: put data which are in different projections into separate locations. That's it. | ||
# create an | '''Reprojecting data in GRASS GIS:''' | ||
# first create an location in the source projection/geodetic datum (using the [[GRASS Location Wizard]] d you can generate the location from the dataset itself) | |||
# [[Importing data|import]] the map/image into the location, | # [[Importing data|import]] the map/image into the location, | ||
# create a destination location in the projection | # create a second destination location in the projection/geodetic datum you want to reproject the map/image into, | ||
# | # Within the destination location session, use {{cmd|r.proj}} or {{cmd|v.proj}} (depending on whether the map/image is raster or vector) to reproject the map/image '''from''' the import location '''to''' the destination location. | ||
Ready. | Ready. |
Revision as of 10:05, 8 May 2014
Question: How to change map/image projections, datums, etc in GRASS GIS?
Answer: For quality reasons, GRASS GIS handles one projection per location.
Rationale: Reprojection on the fly can easily introduce artifacts. Especially,
- vector maps: lines and polygons need to have a sufficiently high amount of vertices which is not guaranteed, hence v.split be used;
- raster maps:
- categorical maps need to be reprojected with nearest-neighbor method, while
- floating point data might be better reprojected with bilinear or cubic convolution methods)
Since many GIS users tend to blindly go ahead without selecting proper methods, the simple approach was adopted: put data which are in different projections into separate locations. That's it.
Reprojecting data in GRASS GIS:
- first create an location in the source projection/geodetic datum (using the GRASS Location Wizard d you can generate the location from the dataset itself)
- import the map/image into the location,
- create a second destination location in the projection/geodetic datum you want to reproject the map/image into,
- Within the destination location session, use r.proj or v.proj (depending on whether the map/image is raster or vector) to reproject the map/image from the import location to the destination location.
Ready.
Another (similar) strategy frequently needed when maps need to be imported using, e.g. v.in.ogr or r.in.gdal, is to tell these programs to create a new location (argument "location"). If the imported data contains proper PROJ_INFO
files, they can be reprojected into the current mapset, using the the projection in the current location/mapset.
GDAL alternative: export as a GeoTIFF, use gdalwarp
to change the projection and then import the new GeoTIFF file into GRASS GIS. If you have installed gdal
, you almost certainly have gdalwarp
as well. Indications for gdalwarp
are found at http://www.gdal.org/gdalwarp.html. The options for gdalwarp
may be a bit confusing for newbies. In the following example of projecting a GeoTIFF based on SRTM elevation data to UTM 37N, -t_srs
is the output file projection, AfricaHornElev.tif
is the input file and AfricaHornElev37n.tif
is the output file.
gdalwarp -t_srs '+proj=utm +zone=37 +ellps=WGS84 +datum=WGS84 +units=m +no_defs' -r bilinear AfricaHornElev.tif AfricaHornElev37n.tif