[GRASSLIST:7173] Gettting off the ground with v.surf.rst

this may appear to be a stupid question, but I'm having a hard time
getting the "desired" output from v.surf.rst, and I don't want to run
downstairs and bother Dr. Mitasova with such a menial question....

I have a x,y,z vector of LIDAR elevation data, and I'm trying to get a
raster elevation surface based on the z col. I've tried many different
variations of the output below, with the same errors "The number of points
being used is 3
" and so forth. I'm sure this has been done many times by someone in the
know, any chance of an example command syntax so I can get this running?
Thanks.

v.surf.rst input=lidar3 layer=0 zcolumn=flt1 dmax=100000 dmin=10000
elev=surf7 zmult=1.0 tension=40. smooth=0.1 segmax=400 npmin=2000

Authors: original version - H.Mitasova, L.Mitas, I. Kosinovsky, D.P. Gerdes
See manual pages for reference and publications T3

Percent complete: Reading lines from vector map ...

Reading nodes from vector map ...

Warning: strip exists with insufficient data

Warning: ignoring 348352 points -- too dense
WARNING: 3 points given for interpolation (after thinning) is less than
given NPMIN=2000
Warning : there is less than 2050 points for interpolation, no
segmentation is necessary, to run the program faster, set segmax=2050 (see
manual)

The number of points from vector file is 348355
The number of points outside of region 0
The number of points being used is 3

Processing all selected output files
will require 1612 bytes of disk space for temp files
Percent complete:

history initiated

--
Thomas Colson
Center For Earth Observation
North Carolina State University
Raleigh, NC
(919)515 3434
(919)673 8023
tom_colson@ncsu.edu

Tom,

Some of your parameters seem a bit odd, mainly dmin, segmax, and npmin
seem way too high. What is your grid resolution from g.region -p?
Typically dmin is set to be 1/2 of the grid resolution so if you want a
20 meter resolution surface, try a dmin of 10. Decreasing dmin typically
increases the number of points used for the interpolation. Since your
dmin is high and your point count is low, I would look into adjusting
dmin first.

Once you fix that though, you may find that the interpolation step
takes forever, mostly because segmax and npmin are set quite high as
well. For LIDAR data from NCfloodmaps or LDART I typically use npmin=100
and segmax=20. The running time of the interpolation is roughly
proportional to (n/segmax)*npmin^3, so cutting both npmin and segmax in
half makes the program run about 4 times faster.

See if that helps.

-Andy

On Wed, 2005-06-15 at 14:52 -0400, Thomas Colson wrote:

this may appear to be a stupid question, but I'm having a hard time
getting the "desired" output from v.surf.rst, and I don't want to run
downstairs and bother Dr. Mitasova with such a menial question....

I have a x,y,z vector of LIDAR elevation data, and I'm trying to get a
raster elevation surface based on the z col. I've tried many different
variations of the output below, with the same errors "The number of points
being used is 3
" and so forth. I'm sure this has been done many times by someone in the
know, any chance of an example command syntax so I can get this running?
Thanks.

v.surf.rst input=lidar3 layer=0 zcolumn=flt1 dmax=100000 dmin=10000
elev=surf7 zmult=1.0 tension=40. smooth=0.1 segmax=400 npmin=2000

Authors: original version - H.Mitasova, L.Mitas, I. Kosinovsky, D.P. Gerdes
See manual pages for reference and publications T3

Percent complete: Reading lines from vector map ...

Reading nodes from vector map ...

Warning: strip exists with insufficient data

Warning: ignoring 348352 points -- too dense
WARNING: 3 points given for interpolation (after thinning) is less than
given NPMIN=2000
Warning : there is less than 2050 points for interpolation, no
segmentation is necessary, to run the program faster, set segmax=2050 (see
manual)

The number of points from vector file is 348355
The number of points outside of region 0
The number of points being used is 3

Processing all selected output files
will require 1612 bytes of disk space for temp files
Percent complete:

history initiated

Thanks for the quick reply. I seem to have gotten it working, however
verrryyyyy sloowwwlllly on a 2.4 GHZ machine, 1 GB RAM. Any chance the rst
code has been optimized for 64 bit?

The below syntax took about 30 minutes to run....one tile of LIDAR
data...Andy, I think you and I will be working on the same dataset (entire
neuse) at one run...read the paper on RST and the various parameters, but
can't seem to find a groove that doesn't bring my workstation to it's knees.
Read in archives of people getting millions of points done in minutes!

GRASS 6.1.cvs (counties):~ > g.region vect=grid_0793 res=10

GRASS 6.1.cvs (counties):~ > g.region -pm
projection: 99 (Lambert Conformal Conic)
zone: 0
datum: nad83
ellipsoid: a=6378137 es=0.00669438
north: 740004.9853608
south: 729995.4277972
west: 2089999.43912146
east: 2100009.54270455
nsres: 3.04787138
ewres: 3.04803764
rows: 1001
cols: 1001

v.surf.rst input=grid_0793 layer=0 zcolumn=flt1 dmax=24.998895
dmin=4.999779 elev=elev_0973 zmult=1.0 tension=40. smooth=0.1 segmax=10
npmin=100

Authors: original version - H.Mitasova, L.Mitas, I. Kosinovsky, D.P. Gerdes
See manual pages for reference and publications T3

Percent complete: Reading lines from vector map ...

Reading nodes from vector map ...

Warning: ignoring 610 points -- too dense

(Why are we dropping 610 points? Could these all be in one place?)

The number of points from vector file is 308552 The number of points outside
of region 0 The number of points being used is 307942

Processing all selected output files
will require 4949732 bytes of disk space for temp files Percent complete:
A[100]=-0.100000
A[100]=-0.100000
A[100]=-0.100000
A[100]=-0.100000
A[100]=-0.100000
A[100]=-0.100000

history initiated

Thomas Colson
North Carolina State University
Department of Forestry and Environmental Resources
(919) 673 8023
tom_colson@ncsu.edu

Calendar:
www4.ncsu.edu/~tpcolson

-----Original Message-----
From: Andrew Danner [mailto:adanner@cs.duke.edu]
Sent: Wednesday, June 15, 2005 3:42 PM
To: tom_colson@ncsu.edu
Cc: grasslist@baylor.edu
Subject: Re: [GRASSLIST:7173] Gettting off the ground with v.surf.rst

Tom,

Some of your parameters seem a bit odd, mainly dmin, segmax, and npmin seem
way too high. What is your grid resolution from g.region -p?
Typically dmin is set to be 1/2 of the grid resolution so if you want a 20
meter resolution surface, try a dmin of 10. Decreasing dmin typically
increases the number of points used for the interpolation. Since your dmin
is high and your point count is low, I would look into adjusting dmin first.

Once you fix that though, you may find that the interpolation step takes
forever, mostly because segmax and npmin are set quite high as well. For
LIDAR data from NCfloodmaps or LDART I typically use npmin=100 and
segmax=20. The running time of the interpolation is roughly proportional to
(n/segmax)*npmin^3, so cutting both npmin and segmax in half makes the
program run about 4 times faster.

See if that helps.

-Andy

On Wed, 2005-06-15 at 14:52 -0400, Thomas Colson wrote:

this may appear to be a stupid question, but I'm having a hard time
getting the "desired" output from v.surf.rst, and I don't want to run
downstairs and bother Dr. Mitasova with such a menial question....

I have a x,y,z vector of LIDAR elevation data, and I'm trying to get a
raster elevation surface based on the z col. I've tried many different
variations of the output below, with the same errors "The number of
points being used is 3 " and so forth. I'm sure this has been done
many times by someone in the know, any chance of an example command
syntax so I can get this running?
Thanks.

v.surf.rst input=lidar3 layer=0 zcolumn=flt1 dmax=100000 dmin=10000
elev=surf7 zmult=1.0 tension=40. smooth=0.1 segmax=400 npmin=2000

Authors: original version - H.Mitasova, L.Mitas, I. Kosinovsky, D.P.
Gerdes See manual pages for reference and publications T3

Percent complete: Reading lines from vector map ...

Reading nodes from vector map ...

Warning: strip exists with insufficient data

Warning: ignoring 348352 points -- too dense
WARNING: 3 points given for interpolation (after thinning) is less
than given NPMIN=2000 Warning : there is less than 2050 points for
interpolation, no segmentation is necessary, to run the program
faster, set segmax=2050 (see
manual)

The number of points from vector file is 348355 The number of points
outside of region 0 The number of points being used is 3

Processing all selected output files
will require 1612 bytes of disk space for temp files Percent complete:

history initiated

On Thu, 16 Jun 2005 12:30, Tom Colson wrote:

The below syntax took about 30 minutes to run....one tile of LIDAR
data...Andy, I think you and I will be working on the same dataset (entire
neuse) at one run...read the paper on RST and the various parameters, but
can't seem to find a groove that doesn't bring my workstation to it's
knees. Read in archives of people getting millions of points done in
minutes!

I tried using s.surf.rst in grass 5 with 10-100K bathymetry points and
eventually gave up. I couldn't get it to work in reasonable (<3days) time.

I the end I wound up using s.cellstats to calculate mean or median cell values
and use them instead. s.cellstats hasn't been ported to grass 6 so until I
get a significant bit of time to get things working I've been avoiding grass.

Regards
Gordon

--

Gordon Keith
Programmer/Data Analyst
Marine Acoustics
CSIRO Marine Research
http://www.marine.csiro.au

Who can defeat the world?
Only the person who believes that Jesus is the Son of God.
  -- 1 John 5:5

Tom,

Are you running in Windows or Unix. I have a similar Linux setup (2.x
GHz/1GB RAM). I don't think there are any 64-bit optimizations.

For 300k points, it should take more than 10 minutes. Perhaps bump up
your segmax a bit to 20 or so. I find keeping npmin/segmax around 4-6
gives good results, but I'm no expert on the quality of the output DEM.

v.surf.rst input=grid_0793 layer=0 zcolumn=flt1 dmax=24.998895
dmin=4.999779 elev=elev_0973 zmult=1.0 tension=40. smooth=0.1 segmax=10
npmin=100

Warning: ignoring 610 points -- too dense

(Why are we dropping 610 points? Could these all be in one place?)

If two points are within a distance dmin of eachother, the second point
is ignored. In your case, dmin is half the grid cell cize, so you have
multiple points within a single raster cell. No sense interpolating on
such a fine resolution when you can only give one value to the cell. It
is ok to drop a few points. The number of points will go up if you
increase the cell size or dmin. Your dmin seems to be set well given the
cell size.

I have a very experimental version that can scale to very large point
sets and seems to work well on LIDAR data sets. It uses the same
interpolation as s.surf.rst, but the quad tree segmentation is
different. It was the only way I could process the entire Neuse 500
million points at 20ft resolution. My method uses a lot of disk space
though. I needed over 400GB for the entire Neuse. If you are interested
in testing out that method, contact me offline for the code, but the
interpolation is still slow, so I suspect if it is taking so long with
just a small number of points, my code won't help much.

-Andy

How would one go about manually uninstalling grass 6.0 beta if make
clean and make uninstall didn't seem to work?

Thanks

as root

remove the grass folder - something like /usr/local/grass most likely

look into the /usr/local/bin, /usr/bin for links to grass bids and remove

remove grass-related files from your home dir

should be all

Maciek

----- Original Message ----- From: "Tom Colson" <tom_colson@ncsu.edu>
Cc: <grasslist@baylor.edu>
Sent: Thursday, June 16, 2005 6:47 PM
Subject: [GRASSLIST:7193] Manual unistall of GRASS 6.0 Beta

How would one go about manually uninstalling grass 6.0 beta if make
clean and make uninstall didn't seem to work?

Thanks