Helena wrote: > has anybody considered writing r3.in.xyz? > It could be useful for analyzing multiple return lidar > point clouds and terrestrial lidar point clouds of vertical > features such as eroding stream banks. > I wanted to ask before we look into it here,
yes, it is very easy; all you need to do is run r.in.xyz in a loop, iterating on the zrange=. It is easily accomplished with a wrapper script, no need to adjust (ie clutter) the C code. Stand by and I'll upload one to addons. Due to memory concerns I don't think that slicing up the segments in smaller 3D cubes versus larger 2D slices would actually help much, except for very small 3D regions, so there is not much of a performance hit by using a script. from the r.in.xyz man page: The zrange parameter may be used for filtering the input data by vertical extent. Example uses might include prepar- ing multiple raster sections to be combined into a 3D raster array with r.to.rast3, or for filtering outliers on relatively flat terrain. The only code change to consider is: - if (z < zrange_min || z > zrange_max) { + if (z < zrange_min || z >= zrange_max) { G_free_tokens(tokens); continue; } so points falling exactly on the upper bound of the range are considered only once, and belong to the horizontal slice above the current one. Hamish _______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev