PDAL Python plugins allow you to process data with PDAL into Numpy arrays. They support embedding Python in PDAL pipelines with the readers.numpy and filters.python stages.
PDAL Python plugins are installable via PyPI:
uv pip install pdal-plugins
If you are not using uv, pip install pdal-plugins works too.
The repository for PDAL's Python plugins is available at https://github.com/PDAL/python-plugins
- PDAL 2.6+
- Python >=3.9
- uv
- Numpy
- scikit-build-core
- pybind11
- CMake and Ninja
The project uses uv for Python package installation and builds, with scikit-build-core driving the CMake build.
Create a development environment with the same dependencies used by CI:
mamba env create -f .github/environment.yml
mamba activate testInstall the plugins into that environment and build the C++ tests:
PYTHON=$(python -c 'import sys; print(sys.executable)')
uv pip install --python "$PYTHON" --no-build-isolation -Ccmake.define.WITH_TESTS=ON .Run the tests from the scikit-build output directory:
export PYTHONHOME=$CONDA_PREFIX
export PATH=$CONDA_PREFIX/bin:$PATH
export WHEEL_DIR=$(python -m scikit_build_core.builder.wheel_tag)
export PDAL_DRIVER_PATH=$(pwd)/build/$WHEEL_DIR/Release
pdal --drivers
$PDAL_DRIVER_PATH/pdal_filters_python_test
$PDAL_DRIVER_PATH/pdal_io_numpy_testBuild source and wheel distributions with uv:
PYTHON=$(python -c 'import sys; print(sys.executable)')
uv build --python "$PYTHON"