[GRASS-user] Lidar points height from ground

Daniel Lee lee at isi-solutions.org
Fri Mar 30 08:52:11 EDT 2012


Hi Daniel V ;)

You're right, that might not be the best way to go. I thought that it might
simply be faster to do a topological operation rather than a DB edit. To be
honest, I'd stay away from any 3D objects like volumes because it'd just
get pretty complicated if you use them... As far as I know ;) Could be
wrong. My suggestion would use the following steps:

1. Make terrain raster
2. Make surface raster
-- Here I'm assuming that for you basically have only two height "layers" -
i.e. no points that contain information between the surface raster and
terrain (like bushes beneath a tree cover).
3. Make a relative digital surface model (rDSM) (r.mapcalc --> rDSM =
surface - terrain)
4. Reclassify the rDSM into the different classes you're interested in
5. Convert the reclassified raster into an area vector file.
-- This makes a 2D map of polygons that cover the same areas as the raster
classes.
6. Extract the points inside the different different height classes
(v.select)

However, if you're working with regularly spaced points that pass onto a
regular grid (=1 pt. / raster pixel) you could always use r.stats to tell
you how much area is in each raster category. Then you really wouldn't need
vectors at all.

Daniel L.

--

B.Sc. Daniel Lee
Geschäftsführung für Forschung und Entwicklung
ISIS - International Solar Information Solutions GbR
Vertreten durch: Daniel Lee, Nepomuk Reinhard und Nils Räder

Deutschhausstr. 10
35037 Marburg
Festnetz: +49 6421 379 6256
Mobil: +49 176 6127 7269
E-Mail: Lee at isi-solutions.org
Web: http://www.isi-solutions.org

ISIS wird gefördert durch die Bundesrepublik Deutschland, Zuwendungsgeber:
Bundesministerium für Wirtschaft und Technologie aufgrund eines Beschlusses
des Deutschen Bundestages, sowie durch die Europäische Union,
Zuwendungsgeber: Europäischer Sozialfonds.
Zusätzliche Unterstützung erhält ISIS von dem Entrepreneurship Cluster
Mittelhessen, der Universität Marburg, dem Laboratory for Climatology and
Remote Sensing und dem GIS-Lab Marburg.




Am 30. März 2012 14:09 schrieb Daniel Victoria <daniel.victoria at gmail.com>:

> Hi Daniel Lee (two Daniels changing emails is a hard thing to follow...)
>
> I can create the different height classes raster easily but I'm not
> sure how to get the lidar points from the cloud that are in each
> vertical slice.
>
> Maybe work with raster volumes? Is there a way to cross points at
> different volumes?
>
> The fact is, I'm not seeing how to do this without having to import
> the lidar point cloud.
>
> Schematically, what I want to do is count the number of points that
> are in the vertical bins 1 2, (g is ground), a vertical slice...
>         ___
>         | . :
> bin 2  | :
>         | .
>         -----
> bin 1  | ...
>         | .
>        ggggg
>
> Cheers and many thanks for the attention
> Daniel V
>
>
> On Fri, Mar 30, 2012 at 8:08 AM, Daniel Lee <lee at isi-solutions.org> wrote:
> > Hi Daniel,
> >
> > You could try making different rasters with classes (0-5m over ground,
> 5-10m
> > over ground, etc.) and then convert them into polygons, then check how
> many
> > points are inside them. I'm not sure if it'd be faster than the way you
> > suggested originally, though, when you think that you'd have to make the
> > rasters first, etc.
> >
> > I ended up giving up on large vector operations with LiDAR point clouds
> in
> > GRASS 6.4 because it simply took way too long, but I was dealing with
> > millions of points. For such a small dataset it's probably fine, since as
> > long as you know your script is okay you can let it run through your
> lunch
> > break ;)
> >
> >
> > Daniel
> >
> > --
> >
> > B.Sc. Daniel Lee
> > Geschäftsführung für Forschung und Entwicklung
> > ISIS - International Solar Information Solutions GbR
> > Vertreten durch: Daniel Lee, Nepomuk Reinhard und Nils Räder
> >
> > Deutschhausstr. 10
> > 35037 Marburg
> > Festnetz: +49 6421 379 6256
> > Mobil: +49 176 6127 7269
> > E-Mail: Lee at isi-solutions.org
> > Web: http://www.isi-solutions.org
> >
> > ISIS wird gefördert durch die Bundesrepublik Deutschland,
> Zuwendungsgeber:
> > Bundesministerium für Wirtschaft und Technologie aufgrund eines
> Beschlusses
> > des Deutschen Bundestages, sowie durch die Europäische Union,
> > Zuwendungsgeber: Europäischer Sozialfonds.
> > Zusätzliche Unterstützung erhält ISIS von dem Entrepreneurship Cluster
> > Mittelhessen, der Universität Marburg, dem Laboratory for Climatology and
> > Remote Sensing und dem GIS-Lab Marburg.
> >
> >
> >
> >
> > Am 30. März 2012 13:00 schrieb Daniel Victoria <
> daniel.victoria at gmail.com>:
> >
> >> I need to calculate the number of points at different height levels.
> That
> >> is, how many points are from 0 to 5 meters? And from 5 to 10? And so
> on. So
> >> I believe I need to work with vector points and a database. Or is there
> >> another way?
> >> Thanks
> >> Daniel
> >>
> >> On Mar 30, 2012 6:47 AM, "Daniel Lee" <lee at isi-solutions.org> wrote:
> >>>
> >>> Hi there,
> >>>
> >>> I don't work too much with vectors, but my personal experience with
> them
> >>> has been fairly slow, perhaps due to the topology. If you have access
> to the
> >>> raw point cloud, you could try importing the ground and surface points
> as
> >>> separate rasters using r.in.xyz and then use r.mapcalc to get the
> height by
> >>> subtracting the ground from the surface raster. Or do you definitely
> need
> >>> vector points as an output?
> >>>
> >>> Best,
> >>> Daniel
> >>>
> >>> --
> >>>
> >>> B.Sc. Daniel Lee
> >>> Geschäftsführung für Forschung und Entwicklung
> >>> ISIS - International Solar Information Solutions GbR
> >>> Vertreten durch: Daniel Lee, Nepomuk Reinhard und Nils Räder
> >>>
> >>> Deutschhausstr. 10
> >>> 35037 Marburg
> >>> Festnetz: +49 6421 379 6256
> >>> Mobil: +49 176 6127 7269
> >>> E-Mail: Lee at isi-solutions.org
> >>> Web: http://www.isi-solutions.org
> >>>
> >>> ISIS wird gefördert durch die Bundesrepublik Deutschland,
> >>> Zuwendungsgeber: Bundesministerium für Wirtschaft und Technologie
> aufgrund
> >>> eines Beschlusses des Deutschen Bundestages, sowie durch die
> Europäische
> >>> Union, Zuwendungsgeber: Europäischer Sozialfonds.
> >>> Zusätzliche Unterstützung erhält ISIS von dem Entrepreneurship Cluster
> >>> Mittelhessen, der Universität Marburg, dem Laboratory for Climatology
> and
> >>> Remote Sensing und dem GIS-Lab Marburg.
> >>>
> >>>
> >>>
> >>>
> >>> Am 29. März 2012 22:59 schrieb Daniel Victoria
> >>> <daniel.victoria at gmail.com>:
> >>>>
> >>>> Hi all,
> >>>>
> >>>> I'm trying to calculate the height from the ground of several lidar
> >>>> points (15million) in order to get the number of points that occur at
> >>>> different height levels. I read some older posts about using r.in.xyz
> >>>> (or r.in.lidar in grass 7) but I could not understand how to count the
> >>>> number or points that have height from 0 to 5 m above the ground, for
> >>>> instance. So, I'm trying to do the following.
> >>>>
> >>>> 1) import points using v.in.lidar (Grass 7 ubuntu linux)
> >>>> 2) create a column in the database for the ground height and one for
> >>>> elevation
> >>>> 3) populate height column from ground raster (generate in another
> >>>> process) using v.what.rast
> >>>> 4) calculate elevation as zcoord - ground for each point (v.db.update)
> >>>>
> >>>> As you might imagine, this takes a long time. Just to import a 400Mb
> >>>> lidar file takes around 50min.
> >>>> Is there any easier way that I'm not envisioning?
> >>>>
> >>>> I'm running Grass 7 with liblas on a Ubuntu Virtual Machine and sqlite
> >>>> backend.
> >>>>
> >>>> Thanks
> >>>> Daniel
> >>>> _______________________________________________
> >>>> grass-user mailing list
> >>>> grass-user at lists.osgeo.org
> >>>> http://lists.osgeo.org/mailman/listinfo/grass-user
> >>>
> >>>
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/grass-user/attachments/20120330/4947ef93/attachment-0001.html


More information about the grass-user mailing list