PDAL explicitly stands on the shoulders of giants that have come before it. Specifically, PDAL depends on a number of libraries to do its work. Most are not required. For optional dependencies, PDAL utilizes a dynamically-linked plugin architecture that loads them at runtime.
PDAL uses GDAL for spatial reference system description manipulation, and image reading supporting for the NITF driver, and writers.oci support. In conjunction with GeoTIFF, GDAL is used to convert GeoTIFF keys and OGC WKT SRS description strings into formats required by specific drivers. While PDAL can be built without GDAL support, if you want SRS manipulation and description ability, you must have GDAL (and GeoTIFF) linked in at compile time.
If you are using OSGeo4W as your provider of GDAL, you must make sure to use the GDAL 1.9 package.
GDAL surreptitiously embeds a copy of GeoTIFF in its library build but there is no way for you to know this. In addition to embedding libgeotiff, it also strips away the library symbols that PDAL needs, meaning that PDAL can’t simply link against GDAL. If you are building both of these libraries yourself, make sure you build GDAL using the “External libgeotiff” option, which will prevent the insanity that can ensue on some platforms. OSGeo4W users, including those using that platform to link and build PDAL themselves, do not need to worry about this issue.
Proj.4 4.9.0+ is required if you need vertical datum transformation support. Otherwise, older versions should be sufficient.
libxml 2.7.0+ is required. Older versions may also work but are untested.
Obtain the Oracle Instant Client and install in a location on your system.
Be sure to install both the “Basic” and the “SDK” modules. Set your
ORACLE_HOME environment variable system- or user-wide to point to this
location so the CMake configuration can find your install. OCI is used by
both writers.oci and readers.oci for Oracle
Point Cloud read/write support.
cd $ORACLE_HOME ln -s libocci.so.11.1 libocci.so ln -s libclntsh.so.11.1 libclntsh.so ln -s libociei.so.11.1 libociei.so
MSVC should only require the oci.lib and oci.dll library and dlls.
Points2Grid is a library with a simple CMake-based build system that provides simple, out-of-process interpolation of large point sets using Boost. It can be obtained via github.com at https://github.com/CRREL/points2grid It is used by writers.p2g to output point cloud interpolation.
Hexer is a library with a simple CMake-based build system that provides simple hexagon gridding of large point sets for density surface generation and boundary approximation. It can be obtained via github.com at https://github.com/hobu/hexer It is used by filters.hexbin to output density surfaces and boundary approximations.
Nitro is a library that provides NITF support for PDAL to write LAS-in-NITF files for writers.nitf. PDAL can only use a fork of Nitro located at http://github.com/hobu/nitro instead of the mainline tree for two reasons:
It is expected that the fork will go away once these items are incorporated into the main source tree.
In addition to LASzip, you can use the alternative laz-perf library. laz-perf provides slightly faster decompression capability for typical LAS files. It is also used as a compression type for writers.oci and writers.sqlite
PCL must be 1.7.2+. We do our best to keep this up-to-date with PCL master.