[GRASS-user] v.extract - sqlite driver problem

I have a bunch of points (4+ million) with one outlier that needs
removed. I created a vector points file by using r.to.vect to create
a vector points file and associated table in sqlite.

When I run v.extract (v.extract -r input=pointsmod@PERMANENT
output=pointsfixed type=point layer=1 list=3884384 new=-1 --overwrite)
I get the following error upon writing attributes:

Writing attributes...
Cannot allocate memory: can't create fork
Unable to start driver <sqlite>
Unable to copy table
v.extract complete.

db.connect -p outputs:
driver:sqlite
database:$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite.db
schema:
group:

I'm on Kubuntu 9.10, using GRASS 6.5.

Thanks,
Mark

Mark:

I get the following error upon writing attributes:

Writing attributes...
Cannot allocate memory: can't create fork

out of memory?

r.to.vect as points can create a lot of points. if you will make > 3 million
or so try the -z flag and/or the -b flag.

the r.in.xyz help page discusses this a bit.

Hamish

Mark:

I have a bunch of points (4+ million) with one outlier that needs
removed.

perhaps use r.mapcalc or r.reclass to filter out the bad point?

r.mapcalc "clean = if(map > 999999, null(), map)"

or

r.reclass
  999999 thru 9999999 = NULL
  * = *

and finally "r.null setnull=bad_value" may be the simplest.

... or d.rast.edit ...

Hamish

Perfect. Setting the bad point null, and exporting without table or
topology (3D) proved to be the fastest solution. Thanks for the
suggestion.

Much thanks,
Mark

On Fri, Feb 5, 2010 at 2:27 AM, Hamish <hamish_b@yahoo.com> wrote:

Mark:

I have a bunch of points (4+ million) with one outlier that needs
removed.

perhaps use r.mapcalc or r.reclass to filter out the bad point?

r.mapcalc "clean = if(map > 999999, null(), map)"

or

r.reclass
999999 thru 9999999 = NULL
* = *

and finally "r.null setnull=bad_value" may be the simplest.

... or d.rast.edit ...

Hamish