[GRASS-dev] Re: [GRASS-user] problems
using r.proj with large dataset
Glynn Clements
glynn at gclements.plus.com
Wed Dec 20 10:53:49 EST 2006
Gerald Nelson wrote:
> Here's the set of commands I use when I compile and make grass
>
> CFLAGS="-O2 -mcpu=pentium4 -Wall" LDFLAGS="-s"
>
> ./configure \
> --enable-largefile
> --with-postgres-includes=/usr/local/pgsql/include/
> --with-proj-includes=/usr/local/include/
> --with-proj-share=/usr/share/proj/
> --with-postgres-libs=/usr/local/pgsql/lib/
> --with-readline-libs=/usr/local/lib/
> --with-readline-includes=/usr/local/include/readline/ \
> --with-readline=no
>
> The output from configure says largefile support is enabled. When I look in include/Make/Platform.make, I find
>
> #Large File Support (LFS)
> USE_LARGEFILES = 1
>
> Is there any way I can tell whether its working when I run grass?
If you can read/write raster maps whose cell/fcell file is >2GiB, then
LFS is working in libgis. For testing, the easiest way to create a
large raster is to use e.g. "r.mapcalc test = rand(-1000000,-1)" with
region of >~500K cells.
[The compression techniques used for integer maps do badly on both
random data and negative numbers, so the cell file will end up using 4
bytes per cell in the above example.]
If LFS is enabled, the "File size limit exceeded" error from
r.proj.seg suggests that I got the Makefile logic wrong.
Try changing raster/r.proj/Makefile to:
------------------------------------------------------------
MODULE_TOPDIR = ../..
PGM = r.proj.seg
LIBES = $(GPROJLIB) $(GISLIB)
DEPENDENCIES = $(GPROJDEP) $(GISDEP)
EXTRA_INC = $(PROJINC)
include $(MODULE_TOPDIR)/include/Make/Module.make
ifneq ($(USE_LARGEFILES),)
EXTRA_CFLAGS = -D_FILE_OFFSET_BITS=64
endif
default: cmd
------------------------------------------------------------
(i.e. moving the USE_LARGEFILES test to after the inclusion of
Module.make) then recompiling it with:
cd raster/r.proj.seg
make clean
make
make INST_NOW=y
I'll change it in CVS anyhow; it certainly can't harm, and it may fix
the LFS issue.
> When I did the equivalent using gdalwarp, it took quite a while
> (like hours).
That's to be expected. It has to evaluate the UTM->Lat/Lon projection
equations for each output cell, which is a fair amount of FP
arithmetic; for method=cubic, it also needs to evaluate a bicubic
polynomial for each cell.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list