geotrellis-pointcloud icon indicating copy to clipboard operation
geotrellis-pointcloud copied to clipboard

Entwine overlapping bounds tiles read

Open pomadchin opened this issue 5 years ago • 3 comments

The task is to check out https://github.com/PDAL/PDAL/commit/a2a08f0f44bb39323158c55bcce140b990e0668f behavior;

Ref: https://github.com/PDAL/PDAL/issues/2959

  • [x] Build a Docker container with the PDAL version from the branch
  • [ ] Run benchmarks and / or check for visual correctness
    • [ ] The step above may require building new PDAL JNI bindings (opt)

pomadchin avatar Mar 16 '20 23:03 pomadchin

Outcome: Test the PDAL created no-cull option to see the effect on degenerate case.

echeipesh avatar Mar 19 '20 17:03 echeipesh

This test is pending on two events: (1) locating a test example with a gap, and possibly (2) adding a parameter to ReaderEpt (in a branch) to access the no-cull option. The second can be eliminated in favor of providing a text pipeline.

Once a gap is found, we would need to find an extent that crosses into the gap but does not cover it. That is, find an extent that interacts with the gap like so:

 * ** *** *** * *  *  * *   *
* * * *  **  * * * ** *** * *
* **          * **  ** * *  **
+------------+   * ** * * * *
|*  *        |   * * * * * * *
| **         |   *** *** * **
|* ***       |    * * *** *  *
+------------+   **  ** *  * *
* * * *  * *   * * *** * * **
  ** * ***  * * * *  ** * * **

The resulting triangulation won't fill in the gap values without the no-cull option.

There is an alternative suggested to the no-cull option, which is to manually build a sample via multiple readers. The first reader will grab the requested region at full resolution, the last reader will grab the entire 0-0-0-0 node by requesting the full EPT extent at very large resolution. Any number of intermediate reads can be performed with extent sizes/cell sizes between the top- and bottom-level queries.

In any event, these nested reads can be benchmarked without finding a data void, but the performance penalty can only be assessed for merit once a problematic region is located.

jpolchlo avatar Apr 01 '20 18:04 jpolchlo

A Dockerfile to provide the branch of PDAL:

FROM debian:sid
MAINTAINER Grigory Pomadchin <[email protected]>

RUN set -ex && \
    apt update -y && \
    apt install \
      openjdk-8-jdk \
      ca-certificates-java -y

ENV JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-amd6
RUN update-alternatives --set java `update-alternatives --list java | grep java-8`

# https://tracker.debian.org/pkg/pdal
RUN apt-get -y install bash gcc g++ cmake wget git libgdal-dev liblaszip-dev
RUN git clone https://github.com/pdal/pdal.git && \
    cd pdal && \
    git checkout a2a08f0 && \
    mkdir build && \
    cd build && \
    cmake -DCMAKE_BUILD_TYPE=Release .. && \
    make && \
    make install && \
    cd ../.. && \
    rm -rf pdal

jpolchlo avatar Apr 01 '20 18:04 jpolchlo