[GRASS-dev] [GRASS GIS] #2757: r.import: ERROR: Input raster map is outside current region
GRASS GIS
trac at osgeo.org
Wed Feb 22 00:25:46 PST 2017
#2757: r.import: ERROR: Input raster map is outside current region
--------------------------+-------------------------
Reporter: neteler | Owner: grass-dev@…
Type: defect | Status: reopened
Priority: normal | Milestone: 7.0.6
Component: Python | Version: svn-trunk
Resolution: | Keywords: r.import
CPU: Unspecified | Platform: Unspecified
--------------------------+-------------------------
Comment (by hellik):
Replying to [comment:15 mmetz]:
> Related tickets are #167, #352, #378, #1594, #1734, #2931, there are
probably more.
>
> West-East extent
>
> Currently, GRASS wraps any ll coordinates outside -180, 180 to -180,
180. This causes troubles with raster maps outside this range, and there
are many valid raster data existing with a West-East extent outside this
range. Examples are GMTED2010 with a range of 180:00:00.5W to
179:59:59.5E, or meteorological or climate data with a West-East extent of
appr. 0, 360, often shifted by about half a cell size. I suggest to relax
GRASS latlong wrapping to allow regions to be within -180,360 plus a
tolerance of ew_res. This would allow to import e.g. a global mosaik of
SRTM tiles where the first and last columns are identical and the West-
East extent is 360 degrees + ew_res. Single coordinates should not be
wrapped automatically, this is creating too many problems. Instead, a
window can be wrapped, i.e. shift west and east together, not separately.
This guarantees that east is always larger than west. Currently, GRASS
produces internally windows with e.g. w=180 e=540, this would also be
avoided.
>
> North-South extent
>
> I suggest to allow extents above 90 and below -90 as long as 90, -90
bounds are not exceeded by more than half a cell size. The reasoning is
that as long as the cell center is within 90, -90, the grid geometry is
accepted as ok.
>
> Regarding the ll extents, libgis would need to be fixed in ll_format.c
and ll_scan.c where the checks for and wrapping to -90,90, and -180,180
need to be removed. In adj_cellhd.c, a new simple window wrapping method
would need to be added:
>
>
> {{{
> while (west >= 180) {
> west -= 360;
> east -= 360;
> }
>
> while (east <= -180) {
> west += 360;
> east += 360;
> }
> }}}
>
> Import of raster data with corrupt grid geometry
>
> There are lots of raster data where the metadata on the grid geometry
are slightly wrong, e.g. by cutting the precision of the resolution which
will in turn result in wrong extents reported by GDAL. Fixing the
resolution in latlong is often but not always relatively easy by
converting the resolution from degrees to seconds, then rounding seconds
to the nearest multiple of 0.5 seconds. It is rather difficult to figure
out which extent would then need to be adjusted. Often, the reference
point is the lower left (South-West) corner, but not always. Considering
the reference point as correct, the corresponding extent can be re-
calculated, e.g. if South is assumed correct, get North as South + fixed
ns_res * nrows. An attempt to fix such a corrupt grid geometry can be made
in r.in.gdal.
I've seen some related commits to this: r70642, r70643, r70644, r70645,
r70646, r70647
any test cases, hints how to test this new feature?
--
Ticket URL: <https://trac.osgeo.org/grass/ticket/2757#comment:16>
GRASS GIS <https://grass.osgeo.org>
More information about the grass-dev
mailing list