LocationTech GeoTrellis 1.1.0

Primary tabs


  • Spark Enabled Cost Distance
  • Conforming Delaunay Triangulation
  • Added a fractional-pixel rasterizer for polygons and multipolygons
  • Added collections API mapalgebra local and masking functions
  • Added withDefaultNoData method for CellTypes
  • Moved Spark TestEnvironment to spark-testkit subproject for usage outside of GeoTrellis
  • Add convenience overloads to GeoTiff companion object
  • Added matplotlib’s Magma, Inferno, Plasma, and Viridis color ramps
  • Added library of land use classification color maps.
  • Add MGRS encode/decode support to proj4
  • Rasters write support to HDFS / S3
  • Added Range-based reading of HTTP resources
  • Improved the WKT parser that powers the WKT.getEpsgCode method
  • Updated the geotrellis-geowave subproject to GeoWave 0.9.3
  • Updated the geotrellis-geomesa subproject to GeoMesa 1.2.7
  • Use H3 rather than Next Fit when building S3 partitions from paths
  • Added delimiter option to S3InputFormat and S3GeoTiffRDD.
  • Signed S3 Streaming for GeoTiff reader (HTTP with GET instead of HEAD request)
  • Relaxed constraints to improve layer deletion capabilities
  • Allow HadoopGeoTiffRDD and S3GeoTiffRDD to maintain additional key information such as file name
  • Added API sugar for simplying construction of AvroRecordCodec
  • Make compression optional for Avro encoding and decoding
  • Optimization to avoid unspecialized Function3 usage in Hillshade, Slope and Aspect
  • Updated multiple dependencies
  • Upgraded ScalaPB version for VectorTile
  • Added Avro codecs for ProjectedExtent and TemporalProjectedExtent and ConstantTile types
  • Repartition in ETL when re-tiling increases layer resolution
  • In GeoTiff reader, compute CellSize from TIFF tags
  • Improved apply methods for constructing S3RangeReader
  • Reorganized handling of CellType.name
  • Documentation improvements, including porting the docts to reStructuredText
  • Added top-level “Sinusoidal” CRS, commonly used with MODIS
  • Added conditional to key bounds decomposition to detect full bounds query in Acccumulo.
  • Support for the ability to specify output CRS via proj4 string.


  • Fixed issues that made GeoTiff streaming off of S3 slow and broken
  • Give a better error message for CRS write failures
  • Fixed type for CRS authority in NAD83
  • Moved JsonFormats for CellSize and CellType to their proper place
  • Fixed polygon rasterization for complex polygon test cases
  • Fixed issue with FileLayerDeleter
  • Fixed issue with logger serialization
  • Fixed bug in renderPng that caused incorrect rendering of non-floating-point rasters
  • Don’t allow illegal TileLayouts
  • Prevent error from happening during Pyramiding
  • Ensure tile columns are not zero when rounding
  • Fixed malformed XML error that was happening after failed S3 ingest
  • Fix issue with S3LayerDeleter deleting files outside of layer
  • Fix TemporalProjectedExtentCodec to handling proj4 strings when CRS isn’t available
  • Fixed layoutForZoom to allow 0 zoom level
  • Fixed MapKeyTransform to deal with points north and west of extent
  • Fixed GeoTiff reading for GeoTiffs with model tie point and PixelIsPoint
  • Fixed issue with reading tiny (4 pixel or less) GeoTiffs
  • Fix usage of IntCachedColorMap in Indexed PNG encoding
  • Ensure keyspace exists in CassandraRDDWriter
  • Resolved repartitioning issue with HadoopGeoTiffRDD
  • Fixed schema for intConstantTileCodec
  • In HadoopAttributeStore, get absolute path for attributePath
  • In AccumuloLayerDeleter, close batch deleter
  • S3InputFormat - bucket names support period and dashes
  • Fix TMS scheme min zoom level
  • S3AttributeStore now handles ending slashes in prefix.
  • Cell type NoData logic for unsigned byte / short not working properly
  • CellSize values should not be truncated to integer when parsing from Json.
  • Fixes to GeoTiff writing with original LZW compression.
  • In ArrayTile.convert, debug instead of warn against floating point data loss.

API Changes

While we are trying to stick strictly to SemVer, there are slight API changes in this release. We felt that while this does break SemVer in the strictest sense, the change were not enough to warrant a 2.0 release. Our hope is in the future to be more cognizant of API changes for future releases.

  • Made EPSG capatilization consistent in method names:
  •   In geotrellis.proj4.CRS, changed getEPSGCode to getEpsgCode
  •   In geotrellis.proj4.io.wkt.WKT, changed fromEPSGCode to fromEpsgCode and getEPSGCode to getEpsgCode
  • Changed some internal but publicly visible classes dealing with GeoTiff reading
  • Changed size to length in ArraySegmentBytes
  • Replaced foreach on SegmentBytes with getSegments, which the caller can iterate over themselves
  • Changed getDecompressedBytes to decompressGeoTiffSegment
  • Moved some misplaced implicit JsonFormats
  • Moved CellTypeFormat and CellSizeFormat from `` geotrellis.spark.etl.config.json`` in the spark-etl subproject to geotrellis.raster.io.json.Implicits in the raster subproject.
  • Changed LazyLogger from the com.typesafe.scalalogging version to our own version
  •   This shouldn’t break any code, but technically is an API change.
Release Date: 
Wednesday, May 17, 2017
Release Type: 
Minor release