-
Notifications
You must be signed in to change notification settings - Fork 432
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'ept-binary' into ept-zstandard
- Loading branch information
Showing
179 changed files
with
4,102 additions
and
808 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
.. _filters.miniball: | ||
|
||
filters.miniball | ||
=============================================================================== | ||
|
||
The **Miniball Criterion** was introduced in [Weyrich2004]_ and is based on the | ||
assumption that points that are distant to the cluster built by their | ||
k-neighborhood are likely to be outliers. First, the smallest enclosing ball is | ||
computed for the k-neighborhood, giving a center point and radius | ||
[Fischer2010]_. The miniball criterion is then computed by comparing the | ||
distance (from the current point to the miniball center) to the radius of the | ||
miniball. | ||
|
||
The author suggests that the Miniball Criterion is more robust than the | ||
:ref:`Plane Fit Criterion <filters.planefit>` around high-frequency details, | ||
but demonstrates poor outlier detection for points close to a smooth surface. | ||
|
||
The filter creates a single new dimension, ``Miniball``, that records the | ||
Miniball criterion for the current point. | ||
|
||
.. note:: | ||
|
||
To inspect the newly created, non-standard dimensions, be sure to write to an | ||
output format that can support arbitrary dimensions, such as BPF. | ||
|
||
.. embed:: | ||
|
||
Example | ||
------- | ||
|
||
The sample pipeline below computes the Miniball criterion with a neighborhood | ||
of 8 neighbors. We do not apply a fixed threshold to single out outliers based | ||
on the Miniball criterion as the range of values can vary from one dataset to | ||
another. In general, higher values indicate the likelihood of a point being an | ||
outlier. | ||
|
||
.. code-block:: json | ||
[ | ||
"input.las", | ||
{ | ||
"type":"filters.miniball", | ||
"knn":8 | ||
} | ||
"output.laz" | ||
] | ||
Options | ||
------------------------------------------------------------------------------- | ||
|
||
knn | ||
The number of k nearest neighbors. [Default: 8] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
.. _filters.planefit: | ||
|
||
filters.planefit | ||
=============================================================================== | ||
|
||
The **Plane Fit Criterion** was introduced in [Weyrich2004]_ and computes the | ||
deviation of a point from a manifold approximating its neighbors. First, a | ||
plane is fit to each point's k-neighborhood by performing an eigenvalue | ||
decomposition. Next, the mean point to plane distance is computed by | ||
considering all points within the neighborhood. This is compared to the point | ||
to plane distance of the current point giving rise to the k-neighborhood. As | ||
the mean distance of the k-neighborhood approaches 0, the Plane Fit criterion | ||
will tend toward 1. As point to plane distance of the current point approaches | ||
0, the Plane Fit criterion will tend toward 0. | ||
|
||
The author suggests that the Plane Fit Criterion is well suited to outlier | ||
detection when considering noisy reconstructions of smooth surfaces, but | ||
produces poor results around small features and creases. | ||
|
||
The filter creates a single new dimension, ``PlaneFit``, that records the | ||
Plane Fit criterion for the current point. | ||
|
||
.. note:: | ||
|
||
To inspect the newly created, non-standard dimensions, be sure to write to an | ||
output format that can support arbitrary dimensions, such as BPF. | ||
|
||
.. embed:: | ||
|
||
Example | ||
------- | ||
|
||
The sample pipeline below computes the Plane Fit criterion with a neighborhood | ||
of 8 neighbors. We do not apply a fixed threshold to single out outliers based | ||
on the Plane Fit criterion as the range of values can vary from one dataset to | ||
another. In general, higher values indicate the likelihood of a point being an | ||
outlier. | ||
|
||
.. code-block:: json | ||
[ | ||
"input.las", | ||
{ | ||
"type":"filters.planefit", | ||
"knn":8 | ||
} | ||
"output.laz" | ||
] | ||
Options | ||
------------------------------------------------------------------------------- | ||
|
||
knn | ||
The number of k nearest neighbors. [Default: 8] | ||
|
||
threads | ||
The number of threads used for computing the plane fit criterion. [Default: 1] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
.. _filters.reciprocity: | ||
|
||
filters.reciprocity | ||
=============================================================================== | ||
|
||
The **Nearest-Neighbor Reciprocity Criterion** was introduced in [Weyrich2004]_ | ||
and is based on a simple assumption, that valid points may be in the | ||
k-neighborhood of an outlier, but the outlier will most likely not be part of | ||
the valid point's k-neighborhood. | ||
|
||
The author suggests that the Nearest-Neighbor Reciprocity Criterion is more | ||
robust than both the :ref:`Plane Fit <filters.planefit>` and :ref:`Miniball | ||
<filters.miniball>` Criterion, being equally sensitive around smooth and | ||
detailed regions. The criterion does however produce invalid reslts near | ||
manifold borders. | ||
|
||
The filter creates a single new dimension, ``Reciprocity``, that records the | ||
percentage of points(in the range 0 to 100) that are considered uni-directional | ||
neighbors of the current point. | ||
|
||
.. note:: | ||
|
||
To inspect the newly created, non-standard dimensions, be sure to write to an | ||
output format that can support arbitrary dimensions, such as BPF. | ||
|
||
.. embed:: | ||
|
||
Example | ||
------- | ||
|
||
The sample pipeline below computes reciprocity with a neighborhood of 8 | ||
neighbors, followed by a range filter to crop out points whose ``Reciprocity`` | ||
percentage is less than 98% before writing the output. | ||
|
||
.. code-block:: json | ||
[ | ||
"input.las", | ||
{ | ||
"type":"filters.reciprocity", | ||
"knn":8 | ||
}, | ||
{ | ||
"type":"filters.range", | ||
"limits":"Reciprocity[:98.0]" | ||
}, | ||
"output.laz" | ||
] | ||
Options | ||
------------------------------------------------------------------------------- | ||
|
||
knn | ||
The number of k nearest neighbors. [Default: 8] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
.. _filters.shell: | ||
|
||
filters.shell | ||
=================== | ||
|
||
The shell filter allows you to run shell operations in-line | ||
with PDAL pipeline tasks. This can be especially useful for | ||
follow-on items or orchestration of complex workflows. | ||
|
||
.. embed:: | ||
|
||
.. warning:: | ||
|
||
To use :ref:`filters.shell`, you must set ``PDAL_ALLOW_SHELL=1`` | ||
PDAL's execution environment. Without the environment variable | ||
set, every attempt at execution will result in the following | ||
error: | ||
|
||
PDAL_ALLOW_SHELL environment variable not set, shell access is not allowed | ||
|
||
Example | ||
--------- | ||
|
||
GDAL processing operations applied to raster output from :ref:`writers.gdal` | ||
are a common task. Applying these within the PDAL execution environment | ||
can provide some convenience and allow downstream consumers to have deterministic | ||
completion status of the task. The following task writes multiple elevation | ||
models to disk and then uses the `gdaladdo <https://gdal.org/gdaladdo.html>`__ | ||
command to construct overview bands for the data using average interpolation. | ||
|
||
.. code-block:: json | ||
{ | ||
"pipeline":[ | ||
"autzen.las", | ||
{ | ||
"type":"writers.gdal", | ||
"filename" : "output-1m.tif", | ||
"resolution" : "1.0" | ||
}, | ||
{ | ||
"type":"writers.gdal", | ||
"filename" : "output-2m.tif", | ||
"resolution" : "2.0" | ||
}, | ||
{ | ||
"type":"writers.gdal", | ||
"filename" : "output-5m.tif", | ||
"resolution" : "5.0" | ||
}, | ||
{ | ||
"type":"filters.shell", | ||
"command" : "gdaladdo -r average output-1m.tif 2 4 8 16" | ||
}, | ||
{ | ||
"type":"filters.shell", | ||
"command" : "gdaladdo -r average output-2m.tif 2 4 8 16" | ||
} | ||
{ | ||
"type":"filters.shell", | ||
"command" : "gdaladdo -r average output-5m.tif 2 4 8 16" | ||
} | ||
] | ||
} | ||
Options | ||
------- | ||
|
||
command | ||
The shell command to run. It is run in relation to the current | ||
working directory of the pipeline executing it. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.