1.2.0:

Changes of Note:

- The GEOS library is now required to build PDAL.  In earlier versions it was
  an optional component.
- Boost is no longer a required component.  Unless you are building plugins
  that require boost (notably PCL and Geowave), you no longer will need
  boost installed on your system to build or run PDAL.
- PDAL now builds on Microsoft Visual Studio 2015.
- The PipelineReader class has been removed and its functionality has been
  merged into PipelineManager.
- Plugin libraries now support Linux versioning.
- Naming changes have been made to allow packaging with the Debian release.
- filters.height now uses the dimension 'HeightAboveGround' instead of a
  dimension named 'Height' to be compatible with the filters.heightaboveground.
- Option names no longer contain lowercase characters.
- PDAL now works with GDAL version 1.9 and later.
- Stages created with the StageFactory are now owned by the factory.
- filters.dartthrowing has been renamed filters.dartsample
- 'pipeline-serialization' now produces JSON output instead of XML.

Enhancements:

- Pipelines may now be specified using a JSON syntax.  XML syntax is still
  supported but users should switch to JSON when possible as the XML support
  will be removed in a future version.
- PDAL now can be built into a Docker container.
- Many stages now support "streaming," which allows control of the number
  of points stored in memory during processing.  See
  Stage::execute(StreamPointTable&) for more information.
- A basic text reader has been added.
- Added support for the dimension 'ClassFlags' in readers.las.
- The derivative writer can now produce output for multiple primitive types
  with a single execution.
- 'pdal info' now provides bounding box output instead of a more refined
  boundary when the hexbin plugin isn't found.
- Added 'pdal density' to provide a command-line interface to the
  filters.hexbin density calcuations.
- The icebridge reader can now load an associated metadata file.  The reader
  also now marks the associated coordinate system as WGS84.
- The stats filter now emits bounding box information in native and WGS84
  projections.
- PDAL command-line programs now (generally) check their argument lists for
  correctness and report syntax errors.
- 'pdal info' now provides spatial reference attributes in addition to
  the actual well-known text.
- Geometry can now be specified as GeoJSON as well as well-known-text in
  most contexts.  Geometry optionally provides Z-dimension output.
- Stage and plugin creation is now thread-safe (NOTE: Most of PDAL is
  NOT thread-safe, so tread carefully).
- Many, many documentation enhancements.

Fixes:

- A bug in generating PCIDs when with multiple simultaneous PDAL executions
  to the same Postgres database has been fixed.
- Fixed a bug in generated SQL delete statements when certain table names
  were used in the writers.postgres driver.
- Properly escape quotes when generating JSON output.
- Fix an off-by-one error when writing data with the derivative writer that
  could lead to a crash.
- Fixed a depedency error during builds that could lead to a failure to
  properly load Python extensions on Linux.
- Fixed a bug where passing certain options to 'pdal info' could be handled
  in ambiguous ways.
- Fixed bugs in the reading of raster data using readers.gdal.
- Fixed population of the AIMIDB and ACFTB attributes in writers.nitf.
- Corrected the parsing of some dimension names in filters.colorization.
- Fixed a potential truncation in the GlobalEncoding dimension of readers.las.

1.1.0:

Enhancements:

- Add support for the LAZperf LAS compressor in decoding/encoding LAS files.
  LAZperf can be enabled with the 'compression' option in readers.las and
  writers.las.
- Add PCL functionality as filters (filters.greedyprojection,
  filters.gridprojection, filters.ground filters.movingleastsquares,
  filters.poisson, filters.radiusoutlier, filters.statisticaloutlier,
  filters.voxelgrid, filters.height, filters.dartsample)
- Add readers.gdal to support reading raster sets as point clouds
- Update writers.geowave and readers.geowave to work with the latest version
  of GeoWave software.
- Add readers.ilvis2 to support the Icebridge ILVIS2 format.
- Disallow nested options.  Check stage documentation for changes in option
  names and handling. (filters.ferry, filters.colorization, filters.attribute,
  filters.crop).  Change filters.attribute to handle only a single dimension.
- Add 'output_dims' options in writers.bpf to allow control of the dimensions
  that should be written.
- Add 'all' keyword in 'extra_dims' options of writers.las to cause all
  dimensions to be written to either the standard or extra dimensions of
  a LAS point.
- Add filters.randomize to allow randomized order of points.
- Add filters.divider to split a set of points into subsets of a fixed number
  or into subsets containing a specific number of points.
- Update to version 1.1.4 of rply in readers.rply.
- Change the logic of the range filter to allow multiple ranges for a single
  dimension and support a simple boolean logic.
- Change the default scaling on writer.bpf to 'auto'.
- Add support for smoothing boundaries generated by filters.hexbin.
- Add readers.tindex to allow vector-filtered input of point cloud files.
- Allow merging of datasets with non-matching spatial references.
- Many, many documentation enhancements.

Fixes:

- Handle error with Pgpointcloud when pointcloud extension is not installed
  on postgres server.  Skip tests if extention is missing.
- Set precision on output of doubles to metadata.
- Fix a divide-by-zero error in readers.faux when the point count was 1.
  (https://github.com/PDAL/PDAL/issues/1015)
- Fix fatal error loading numpy library that occurred when running
  filters.predicate or filters.programmable.
  (https://github.com/PDAL/PDAL/issues/1010)
- Correct readers.las to properly check WKT bit when choosing spatial
  reference VLR.
  (https://github.com/PDAL/PDAL/issues/1040)
- Correct writer.las to emit only WKT or GeoTiff VLR, not both.
  (https://github.com/PDAL/PDAL/issues/1040)
- Check object ID against table column id (attrelid) to ensure correct PCID
  retrieval in readers.pgpointcloud.
  (https://github.com/PDAL/PDAL/pull/1051)

