Git Product home page Git Product logo

f4g-oceania-pdal's Introduction

Processing and visualising point clouds with the PDAL/Entwine/Potree stack

Dr. Adam Steer
https://spatialised.net
@adamdsteer
[email protected]

Warning

A lot has changed in PDAL since 2018, and I no longer use Amazon Web Services to host data. Some parts of this workshop do not work as advertised until data can be migrated to a new host. Others may work better with newer PDAL features. An update is slowly arriving...

Introduction

This repository contains materials for a point cloud processing workshop developed by Dr. Adam Steer, originally for the FOSS4G SotM Oceania conference in 2018.

It uses the Point Data Abstraction Library (PDAL), Entwine Python, Numpy, Jupyter notebooks, and the Potree point cloud visualiser to develop some concepts about processing point clouds and visualising results.

PDAL logo
Entwine logo

What this workshop will deliver

This workshop uses common point cloud data analysis tasks to demonstrate 'thinking in PDAL'. Using both lidar and photogrammetric data, users are shown how to apply a range of simple strategies to construct complex workflows. These are demonstrated using a command line interface, then using configuration files to hold common parameters, then using Python for running processes and exploratory visualisation. The workshop also shows how to run tasks using PDAL in a docker container.

At the end of the workshop users should have a greater understanding of how PDAL's pipeline architecture works, and some ideas about how to apply it in their own data analysis tasks.

Why this workshop exists alongside a PDAL workshop maintained by the PDAL team

PDAL's authors maintain a workshop here: https://pdal.io/workshop/index.html . It is a fantastic tour of PDAL's diverse capabilities, and you should take that workshop as well! The reason I wrote this workshop was to focus on some end to end workshop examples. This workshop leaves out a huge amount of PDAL capability in order to:

  • focus on some simple, commonly-used patterns.
  • reiterate the PDAL approach in a different way to how it is explained in the main PDAL workshop, building from commands to pipelines and simple Python integration

I see this as completely complementary to the main workshop - which should keep its character as a tour de force of PDAL, I hope you do also.

Materials

Text relating to the workshop is contained in workshop. Jupyter notebooks used in the workshop are contained in notebooks. Sample workflows as PDAL pipelines are contained in resources.

Preparation

This workshop requires a PDAL installation with python bindings. Using the minified Conda package manager is convenient and works across Linux, MacOS and Windows. A native installation should work just fine as well. However PDAL is installed, it needs to be at least release 2.1, and be visible to a Jupyter notebook.

Using Conda, create a new virtual environment like:

conda create -n f4g-pdal-workshop python pdal=2.1 python-pdal entwine jq numpy pandas matplotlib jupyter scipy seaborn -c conda-forge

(for now, please keep to PDAL version 2.1 - a kind tester has identified an issue with PDAL 2.2 and some of the exercises. Fixes are coming!)

This creates a virtual environment with PDAL, PDAL Python bindings, and Entwine installed, using the conda-forge channel. It also installs the jq command line utility, for parsing PDAL's metadata responses. Numpy, Pandas, Matplotlib and Jupyter are all Python packages for data manipulation and visualisation.

To use the new environment head to a command line interface, switch to the exercises directory in this repository and type:

conda activate f4g-pdal-workshop

..and then:

jupyter notebook

...to get access to the processing notebooks.

PDAL uses a modular filter system, and some things we want to use are not included in Conda builds. We can also use dockerised PDAL, which you can get via:

docker pull pdal/pdal

Instructions for dockerised processing are included in the notebooks.

To visualise some data products, please ensure you have:

  • QGIS or an alternate viewer for geoJSON and georeferenced raster data
  • CloudCompare or an alternate LAS/LAZ file viewer

...especially if you're not using Jupyter notebooks to run tasks.

Sample data

For command line processing and demonstrating PDAL in Python we'll use airborne lidar data: https://s3.amazonaws.com/f4g-pdal-workshop-sampledata/T_316000_235500.laz

This data sample comes from the New York University LiDAR survey of Dublin, Ireland: https://geo.nyu.edu/catalog/nyu-2451-38684

For PDAL pipelines and Entwine we'll work on drone data, processed into a point cloud using structure-from-motion techniques: https://s3.amazonaws.com/f4g-pdal-workshop-sampledata/APPF-farm-sample.laz

This data sample was collected by the Australian Plant Phenomics Facility (http://appf.edu.au).

Please download these ahead of the workshop.

Usage

Feel free to explore and use the workshop materials as you see fit, acknowledgment is appreciated. All data samples used in this workshop are licensed CCBY4 and available in public repositories.

I'd also be very happy to run this workshop and customised variations of it for your organisation - please contact me for details and pricing.

f4g-oceania-pdal's People

Contributors

adamsteer avatar keithamoss avatar luipir avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

f4g-oceania-pdal's Issues

Missing Data

Hi Adam,

I realize this was hosted back in 2018 (and it being 2022 now), any chance the sample data is still around on the net? Those AWS resources aren't there any longer:

  • f4g-pdal-workshop-sampledata/APPF-farm-sample.laz

No prob if they aren't too. I think I can make due with data from their original datasets (dublin, and that one in Australia) (true story?).

Please feel free to close this "issue" as well. Thanks so much for leaving this posted online!

Best regards,

Paul

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.