[GRASS-dev] [GRASS GIS] #1480: v.outlier - distinguish positive and negative outlier filtering from lidar point clouds

#1480: v.outlier - distinguish positive and negative outlier filtering from lidar
point clouds
-------------------------+--------------------------------------------------
Reporter: sbl | Owner: grass-dev@…
     Type: enhancement | Status: new
Priority: normal | Milestone:
Component: Vector | Version: svn-trunk
Keywords: review | Platform: Unspecified
      Cpu: Unspecified |
-------------------------+--------------------------------------------------
In forest areas LIDAR returns usually both: signals from tree-tops
(canopy) and from the ground as well. Unfortunately v.outlier (as it is
today) filters positive and negative outliers at the same time, because it
filters based on the absolute value of deviation from an interpolated
surface. In forest areas, this appoarch affects both ground- and canopy-
returns (meaning that very often both are being removed).[[BR]]

Usually a local minimum filtering is applied for removing vegetation
returns from LIDAR point clouds (see:
[http://www2.geog.ucl.ac.uk/~plewis/lidarforvegetation/UCL-ALS-
Lidar_for_Vegetation_Applications_2010.pdf] or
[http://www.fs.fed.us/rm/pubs_other/rmrs_2007_evans_j001.pdf\]).[[BR]]

This is why I propose a p- and a n-flag for v.outlier, in order to be able
to specify, that only positive or negative outliers are filtered. The
attached code did the job for me. The attached two images illustrate my
result when applying my modified version of v.outlier to my data
rereatedly (similar to
[http://www.fs.fed.us/rm/pubs_other/rmrs_2007_evans_j001.pdf\]). On is a
shaded relief of the DSM and the other a shaded relief of the DTM of the
same region (after removing positive outliers).

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/1480&gt;
GRASS GIS <http://grass.osgeo.org>

#1480: v.outlier - distinguish positive and negative outlier filtering from lidar
point clouds
-------------------------+--------------------------------------------------
Reporter: sbl | Owner: grass-dev@…
     Type: enhancement | Status: new
Priority: normal | Milestone: 6.4.2
Component: Vector | Version: svn-develbranch6
Keywords: review | Platform: All
      Cpu: All |
-------------------------+--------------------------------------------------
Changes (by sbl):

* cc: sbl (added)
  * platform: Unspecified => All
  * version: svn-trunk => svn-develbranch6
  * cpu: Unspecified => All
  * milestone: => 6.4.2

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/1480#comment:1&gt;
GRASS GIS <http://grass.osgeo.org>

#1480: v.outlier - distinguish positive and negative outlier filtering from lidar
point clouds
-------------------------+--------------------------------------------------
Reporter: sbl | Owner: grass-dev@…
     Type: enhancement | Status: new
Priority: normal | Milestone: 6.4.2
Component: Vector | Version: svn-develbranch6
Keywords: review | Platform: All
      Cpu: All |
-------------------------+--------------------------------------------------

Comment(by mmetz):

`v.outlier` is not designed to separate first from last return of LiDAR
point clouds. The purpose of `v.outlier` is to detect true outliers, i.e.
erroneous data points. First and last returns are not erroneous data
points but valid data points. First and last returns can be separated with
the LiDAR filtering toolchain `v.lidar.*`, `r.in.xyz`, and in grass 7
`v.in.lidar` and `r.in.lidar`.

Markus M

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/1480#comment:2&gt;
GRASS GIS <http://grass.osgeo.org>

#1480: v.outlier - distinguish positive and negative outlier filtering from lidar
point clouds
-------------------------+--------------------------------------------------
Reporter: sbl | Owner: grass-dev@…
     Type: enhancement | Status: new
Priority: normal | Milestone: 7.0.0
Component: Vector | Version: unspecified
Keywords: review | Platform: All
      Cpu: All |
-------------------------+--------------------------------------------------
Changes (by sbl):

  * version: svn-develbranch6 => unspecified
  * milestone: 6.4.2 => 7.0.0

Comment:

Recently we had another project where we got insufficient filtered LIDAR
data, where especially returns from lower mountainous vegetation were
classified as "ground return". Filtering only last return was already done
in the classification process (applied by the LIDAR-operator) and
therewith insufficient too.
The multi-scale curvature classification (mcc) procedure developed by
Evans & Hudak 2007 (PDF linked above) however helped filtering out at
least some more vegetation returns.
I created a GRASS 7 AddOn (python script) which applies the mcc procedure.
It is not uploaded to svn yet and some more testing will be necessary in
order to write a useful manual. But I could attach it as a prove of
concept if that is of interest. However, it requires that the
v.outlier.diff is applied.
Therefore I would like to ask if the decision not to change v.outlier
(because of the different concept of the module) could be reconsidered?
The mcc-algorithm was really useful for us at least...

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/1480#comment:3&gt;
GRASS GIS <http://grass.osgeo.org>

#1480: v.outlier - distinguish positive and negative outlier filtering from lidar
point clouds
-------------------------+--------------------------------------------------
Reporter: sbl | Owner: grass-dev@…
     Type: enhancement | Status: new
Priority: normal | Milestone: 7.0.0
Component: Vector | Version: unspecified
Keywords: review | Platform: All
      Cpu: All |
-------------------------+--------------------------------------------------

Comment(by mmetz):

Replying to [comment:3 sbl]:
> Recently we had another project where we got insufficient filtered LIDAR
data, where especially returns from lower mountainous vegetation were
classified as "ground return". Filtering only last return was already done
in the classification process (applied by the LIDAR-operator) and
therewith insufficient too.
> The multi-scale curvature classification (mcc) procedure developed by
Evans & Hudak 2007 (PDF linked above) however helped filtering out at
least some more vegetation returns.
> I created a GRASS 7 AddOn (python script) which applies the mcc
procedure. It is not uploaded to svn yet and some more testing will be
necessary in order to write a useful manual. But I could attach it as a
prove of concept if that is of interest. However, it requires that the
v.outlier.diff is applied.
> Therefore I would like to ask if the decision not to change v.outlier
(because of the different concept of the module) could be reconsidered?
The mcc-algorithm was really useful for us at least...

I have added a new option to filter out only positive or only negative
outliers in trunk r58414. Please note that this is a new option called
filter, not two new flags.

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/1480#comment:4&gt;
GRASS GIS <http://grass.osgeo.org>

#1480: v.outlier - distinguish positive and negative outlier filtering from lidar
point clouds
--------------------------+-------------------------------------------------
  Reporter: sbl | Owner: grass-dev@…
      Type: enhancement | Status: closed
  Priority: normal | Milestone: 7.0.0
Component: Vector | Version: unspecified
Resolution: fixed | Keywords: review
  Platform: All | Cpu: All
--------------------------+-------------------------------------------------
Changes (by sbl):

  * status: new => closed
  * resolution: => fixed

--
Ticket URL: <http://trac.osgeo.org/grass/ticket/1480#comment:5&gt;
GRASS GIS <http://grass.osgeo.org>