GRASS GIS 7 just got better: When reprojecting vector data, now automated vertex densification is applied. This reduces the reprojection error for long lines (or polygon boundaries). The needed improvement has been kindly added in v.proj by Markus Metz.
Example
As an (extreme?) example, we generate a box in LatLong/WGS84 (EPSG: 4326) which is of 10 degree side length (see below for screenshot and at bottom for SHAPE file download of this “box” map):
[neteler@oboe ~]$ grass70 ~/grassdata/latlong/grass7/ # for the ease of generating the box, set computational region: g.region n=60 s=40 w=0 e=30 res=10 -p projection: 3 (Latitude-Longitude) zone: 0 datum: wgs84 ellipsoid: wgs84 north: 60N south: 40N west: 0 east: 30E nsres: 10 ewres: 10 rows: 2 cols: 3 cells: 6 # generate the box according to current computational region: v.in.region box_latlong_10deg exit
Next we start GRASS GIS in a metric projection, here the EU LAEA:
# EPSG 3035, metric EU LAEA: grass70 ~/grassdata/europe_laea/user1/ GRASS 7.0.0svn (europe_laea): >
Now we first reproject the map the “traditional way” (no vertex densification as in most GIS, here enforced by smax=0):
v.proj box_latlong_10deg out=box_latlong_10deg_no_densification location=latlong mapset=grass7 smax=0
Then we do a second reprojection with new automated vertex densification (here we use the default values for smax which is a 10km vertex distance in the reprojected map by default):
v.proj box_latlong_10deg out=box_latlong_10deg_yes_densification location=latlong mapset=grass7
Eventually we can compare both reprojected maps:
g.region vect=box_latlong_10deg_no_densification # compare: d.mon wx0 d.vect box_latlong_10deg_no_densification color=red d.vect box_latlong_10deg_yes_densification color=green fill_color=none
The result shows how nicely the projection is now performed in GRASS GIS 7: the red line output is old, the green color line is the new output (its area filling is not shown).
Consider to benchmark this with other GIS… the reprojected map should not become a simple trapezoid.
Sample dataset download
Download of box_latlong_10deg.shp for own tests (1kB).