[GRASSLIST:1614] Re: Problem reprojecting...
Eric G. Miller
egm2 at jps.net
Wed Mar 14 22:35:47 EST 2001
On Thu, Mar 15, 2001 at 12:46:10AM +0100, Morten Hulden wrote:
>
> On Mon, 12 Mar 2001, Eric G. Miller wrote:
>
> > Be careful of r.proj! I've filed a bug against it for reading the
> > entire raster into memory before projecting it. It can cream your
> > system. i.rectify is an alternative (and smarter about the memory),
> > though you need tie points.
>
> Not true any longer since grass5.0beta10 or so. r.proj now does not
> allocate more memory than necessary and only reads in the overlapping
> region of the input map.
So, if I'm projecting a very large raster, it reads the whole thing...
> r.proj is also "region sensitive", i.e. you have to set your current
> location to the 'default region' in order to get a map that covers the
> whole location. if you have set your current region to a smaller area and
> the input map does not cover all of the location you _may_ get an 'input
> map is outside current region' error.
Well, trying to project a 78MB image, with 64MB RAM and 200 MB swap, and
I had to kill the process just before it killed my system.
... main.c ...
339 G_set_window(&incellhd);
340 fdi = G_open_cell_old(inmap->answer, setname);
341 ibuffer = (FCELL **) readcell(fdi);
342 G_close_cell(fdi);
343 G__switch_env();
... readcell.c ...
21 nrows = G_window_rows();
22
23 ibuffer = (FCELL **) G_malloc(sizeof(FCELL **) * nrows);
24
25 fprintf(stderr,"Allocating memory and reading input map... ");
26 G_percent(0, nrows, 5);
27 for (row = 0; row < nrows; row++){
28 ibuffer[row] = (FCELL *) G_allocate_raster_buf(FCELL_TYPE);
29 if(G_get_raster_row(fdi, ibuffer[row], row, FCELL_TYPE) < 0)
30 G_fatal_error("Error reading input");
31 G_percent(row, nrows - 1, 5);
32 }
33 return(ibuffer);
Looks like it reads the whole thing to me, barring region sensitive
clipping... IMHO, it should only read as many rows as it currently
needs (which would be a max of 3, no?). So the reads should be nested
in with the writes...
--
Eric G. Miller <egm2 at jps.net>
More information about the grass-user
mailing list