[GRASS-user] r.fillnulls for large area
njachowski at gmail.com
Thu Dec 1 12:07:07 EST 2011
Thanks for the advice to fill the ocean with zeros. It worked better, and
didn't get "killed", but it still didn't work...This time it made it
further than before, but it got "abondoned" - see the output below...
Maybe I need to split my region into subregions and run r.fillnulls on each
subregion then patch them together. If anybody has a better idea I would be
grateful to know.
GRASS 6.4.1 (seasia_ll):~ > r.fillnulls in=srtmm0 out=srtmm0f
Locating and isolating NULL areas...
Reading input raster map <r_fillnulls_18931 at PERMANENT>...
Finding buffer zones...
Writing output raster map <r_fillnulls_18931.buf>...
Creating interpolation points...
Building topology for vector map <vecttmp_fillnulls_18931>...
13428068 primitives registered
13428068 vertices registered
0 areas built
0 isles built
Number of nodes: 13428068
Number of primitives: 13428068
Number of points: 13428068
Number of lines: 0
Number of boundaries: 0
Number of centroids: 0
Number of areas: 0
Number of isles: 0
ERROR: /usr/lib/grass64/scripts/r.fillnulls abandoned. Removing temporary
maps, restoring user mask if needed:
Removing raster <MASK>
Removing raster <r_fillnulls_18931>
Removing raster <r_fillnulls_18931.buf>
Removing raster <r_fillnulls_18931_filled>
WARNING: Raster map <r_fillnulls_18931_filled> not found
WARNING: <r_fillnulls_18931_filled> nothing removed
Removing vector <vecttmp_fillnulls_18931>
WARNING: Table <vecttmp_fillnulls_18931> linked to vector map
<vecttmp_fillnulls_18931> does not exist
WARNING: raster <usermask_mask.18931> not found
On Thu, Dec 1, 2011 at 8:36 AM, Hamish <hamish_b at yahoo.com> wrote:
> Nick wrote:
> > I am having trouble filling the null areas in the SRTM (3 second
> > resolution) DEM for Southeast Asia. I think the reason is because the
> > region I am trying fill is too large. The region is almost a billion
> > cells - see g.region -p output below - but about 40% of that region is
> > ocean areas with no DEM data. I'm wondering if maybe the problem is that
> > r.fillnulls is trying to fill the ocean areas.
> it will try that. a good first step is to fill in the ocean with 0s.
> I was just doing this yesterday with srtm data actually.
> GRASS> r.mapcalc "zero = 0"
> then r.patch with your srtm data listed first and the zeros listed last.
> but be careful you don't fill in zeros where there are holes in the data
> on land. if you have a vector coastline use "v.to.rast use=val val=1" to
> create a land mask, then invert with:
> r.mapcalc "sea.mask = if(isnull(land.mask), 1, null())"
> and use the sea.mask as the background fill-in for the r.patch step.
> > r.fillnulls gets to the point where it says "Building areas..." then
> > it says "Killed" and prints an error message.
> often "Killed" happens when the computer ran out of memory.
> not interpolating over the ocean may make the thing go much faster and
> need much less memory, as it has much less to do.
> > I am using GRASS 6.4.1. Eventually I plan on using the null-filled
> > DEM to delineate the watersheds in Southeast Asia.
> start thinking about your watershed threshold size now :)
> good luck,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the grass-user