Skip to content

Releases: locationtech/geotrellis

3.4.0

22 Jun 13:50
e8fbbe2
Compare
Choose a tag to compare

WARNING: This is a non-binary-compatible release (due to #3256).

Added

  • Add GS in the list of supported URI schemes #3235
  • WKT Proj4 Extension support #3241

Changed

  • Fix GeoTrellisRasterSources to properly pass time though all the internal functions #3226
  • Move GDAL overview strategy logger to debug level #3230
  • Fix S3RDDLayerReader partitioning #3231
  • GDALRasterSource works inconsistenly with BitCellType and ByteCellType #3232
  • rasterizeWithValue accepts only topologically valid polygons #3236
  • Rasterizer.rasterize should be consistent with rasterizeWithValue #3238
  • GeoTrellisRasterSource should return None on empty reads #3240
  • ArrayTile equals method always returns true if first elements are NaN #3242
  • Fixed resource issue with JpegDecompressor that was causing a "too many open files in the system" exception on many parallel reads of JPEG compressed GeoTiffs. #3249
  • Fix MosaicRasterSource, GDALRasterSource and GeoTiffResampleRasterSource behavior #3252
  • HttpRangeReader should live outside of the Spark package #3254
  • HttpRangeReader moved to geotrellis.util #3256
  • Consistently construct GridExtents with math.round #3248

3.3.0

07 Apr 20:05
Compare
Choose a tag to compare

Added

  • GeoTrellisPath assumes file scheme when none provided #3191
  • toStrings overrides to common classes #3217
  • GeoTrellisRasterSources legacy and temporal layers support #3179

Changed

  • Fix OverviewStrategy instances now define their own overview selection logic and more accurately port GDAL-Warp -ovr options #3196
  • Fix PolygonRasterizer failure on some inputs #3160
  • Fix GeoTiff Byte and UByte CellType conversions #3189
  • Fix incorrect parsing of authority in GeoTrellisPath #3191
  • GeoTrellisPath.zoomLevel is now Option[Int] -> Int to better indicate that it is a required parameter #3191
  • Fix the length of one degree at the equator in metres #3197
  • Fix Fix DelaunayRasterizer #3202
  • RasterSources resolutions should be consistent across implementations #3210
  • Bump gdal-warp-bindings version up to 1.0.0 #3211
  • Fixed GDALRasterSource.resample method behavior to respect the passed resampleMethod #3211
  • Fix Jackson dependencies #3212
  • Fix Rasterizer for polygons containing concavities whith PixelIsArea option #3192
  • Fix spatial join (Spark) when using different partitioning in left and right RDDs #3175
  • Fix Monad instance for PolygonalSummaryResult #3221

Removed

  • Removed duplicate JSON codecs for TileLayout #3181
  • Removed private restriction for TiffTag read overload #3181

3.2.0

29 Nov 18:37
Compare
Choose a tag to compare

Changed

  • Preserve NODATA values for double cell types when resampling with Max or Min resampler #3144
  • Update dependency versions for Scala 2.12 cross build #3132

3.1.0

28 Oct 14:41
Compare
Choose a tag to compare

This release addressees compatibility problem with RasterFrames where traits extending CellGrid did not appear to be subclasses of it through reflection. This a major use for GeoTrellis and warrants snap release. Users should use at least version 3.1.0 when upgrading from 2.x branch.

Changed

  • Fix StreamingByteReader over-allocation when reading past EOF #3138
  • Tile, ArrayTile, ConstantTile, DelegatingTile, MultibandTile, MultibandArrayTile, RasterRegion, RasterSource, MosaicRasterSource converted from trait to abstract class #3136

v3.0.0

21 Oct 13:11
27f2830
Compare
Choose a tag to compare

Added

  • RasterSources API #3053
  • geotrellis.layer package to group functionality related to tiled layers.
    • SpatialKey, SpaceTimeKey, TemporalKey, Bounds, Boundable, EmptyBounds, KeyBounds, TemporalProjectedExtent, EmptyBoundsError, SpatialComponent, TemporalComponent, LayoutDefinition, LayoutScheme, LayoutLevel, LocalLayoutScheme, FloatingLayoutScheme, ZoomedLayoutScheme, MapKeyTransform, etc.
  • geotrellis.store package to group interfaces related to saving and reading tiled layers. Implementations save moved to:
    • geotrellis.store.accumulo
    • geotrellis.store.cassandra
    • geotrellis.store.hbase
    • geotrellis.store.hadoop
    • geotrellis.store.s3
  • geotrellis.vectortile.MVTFeature which properly conforms to the MVT 2.0 spec. Specifically, MVTFeature adds id: Option[Long] property.
  • RangeReader SPI produced an instance of the reader from URI #2998
  • geotrellis.raster.mapalgebra.focal.ZFactor to improve slope calculations #3014
  • A sparseStitch method on geotrellis.layer.stitch.SpatialTileLayoutCollectionStitchMethods. Note that SpatialTileLayoutCollectionStitchMethods now has the additional constraint geotrellis.raster.prototype.TilePrototypeMethods on type V. This should be transparent for users of the geotrellis.raster.Tile and geotrellis.raster.MultibandTile types #3017
  • geotrellis.util.np package which contains linspace and percentilemethods that match NumPy functionality. An implicit class was also added to geotrellis.raster which provides the percentile method for geotrellis.raster.Tile #3067
  • Conversion from raster to features of cells #3117
  • io.circe JSON encoders and decoders for GeoTiffInfo and related classes #3128

Changed

  • geotrellis.raster.summary.polygonal.[Multi]TilePolygonalSummaryHandler replaced with geotrellis.raster.summary.polygonal.PolygonalSummary. Users should expect to implement concrete subclasses of geotrellis.raster.summary.GridVisitor and pass those to the new polygonalSummary methods. There are a number of default implementations provided for simple operations in geotrellis.raster.summary.visitors
  • Polygonal summaries on raster RDDs of RDD[(SpatialKey, T <: Grid[Int])] with Metadata[TileLayerMetadata[SpatialKey]] can now be performed with far less boilerplate using the same visitor pattern as the new raster polygonal summary API. See RDDPolygonalSummary.scala for additional details.
  • geotrellis.raster.Grid.dimensions is now Dimensions[N] instead of (N, N) #3124
  • GeoTiffInfo moved out of GeoTiffReader into containing package #3128
  • Replaced use of internal Mergable trait with cats' Semigroup
  • The slope focal method now requires a ZFactor instance.
  • Use the AWS S3 SDK v2 instead of v1 #2911.
  • The implicit/package structure of the geotrellis.raster package has changed such that it's now possible to import almost all features/extensions with import geotrellis.raster._ #2891
  • geotrellis.pro4j.WKT object conversion methods to and from EPSG codes have changed. All now return Options rather than silently unwrap. Methods that convert from EPSG code to WKT string are now prefixed consistently with fromEpsg and methods that convert from WKT string to EPSG code are now prefixed consistently with toEpsg.
  • geotrellis.util.CRS.fromWKT now returns Option[CRS] instead of CRS after silently unwrapping an optional internally
  • The geotrellis.vectortile.{Layer, VectorTile} interfaces now uses MVTFeature instead of geotrellis.vector.Feature.
  • Change from scala-logging to log4s #3116
  • Update dependencies #2904.
  • Update dependencies #3053.
  • Bump ScalaPB version up with some API enhancements #2898.
  • Artifacts in Viewshed have been addressed, the pixels/meter calculation has also been improved #2917.
  • Fix map{X|Y}ToGrid function behavior that could give a bit incorrect results #2953.
  • Fix COG layer update bug related to COGLayerMetadata zoom ranges ordering #2922.
  • Use original ZoomRanges on COG layer update #2956.
  • ArrayTile equality will now check the cols, rows, and cellType of the two tiles #2991.
  • Fix incorrect Deflate compressor usage in GeoTiff reading #2997.
  • Refactor IO thread pool usage #3007.
  • S3RangeReader will now optionally read the HEADER of an object #3025.
  • FileRangeReaderProvider can now handle more types of URIs #3034.
  • Bump proj4 version to fix multiple performance issues #3039.
  • Fix HttpRangeReader swallows 404 error #3073
  • Add a ToSpatial function for the collections API #3082.
  • Fix TIFFTagsReader to skip unsupported tags #3088.
  • reprojectExtentAsPolygon should be more deterministic #3083.
  • AmazonS3URI.getKey now returns an empty string instead of null if no key was provided #3096.
  • Improved handling of null prefix for S3AttributeStore. Prefer use of S3AttributeStore.apply to take advantage of this improved handling #3096.
  • Fix Tiled TIFF BitCellType Segments conversion #3102
  • Updated computeResolution in IterativeCostDistance to match Iterative Viewshed #3106

Removed

  • Scala wrappers of JTS Geometry in geotrellis.vector #2932
  • geotrellis.etl package has been removed. The code has been archived at https://github.com/geotrellis/spark-etl #2969.
  • The S3Client wrapper that was used to support AWS SDK v1 has been removed in favor of directly using AWS SDK S3Client #2911.
  • geotrellis.s3-testkit has been removed; testing now depends on an external min.io server which mocks the S3 API. #2911.
  • geotrellis.slick has been removed. Slick support will now reside in geotrellis-contrib #2902.

v2.3.3

05 Oct 19:30
Compare
Choose a tag to compare
  • Remove direct usage of com.typesafe.scalalogging.LazyLogging trait
  • Upgrade to Proj4J 1.1.0

v2.3.1

26 Apr 17:40
ed5508e
Compare
Choose a tag to compare

Fixes & Updates

  • Get the static DefaultAWSCredentialsProviderChain instance rather than constructing a new one every time #2895.
  • Fix for improper handling of values in ArrayTile.combine{Double}'s default case #2908.

v2.3.0

18 Apr 16:35
0e52bce
Compare
Choose a tag to compare

Fixes & Updates

  • Fix Accumulo and HBase AttributeStore performance #2899.
  • Fix Cassandra AttributeStore performance #2901. (WARN: this requires attribute store table migration)
  • Fix createAlignedGridExtent function actually to align to GridExtents #2878.
  • Fix to rasterRegionReproject function #2880.

v2.2.0

06 Feb 13:36
Compare
Choose a tag to compare

API & Project structure changes

  • geotrellis.proj4j

    • Change: Extract Proj4J to org.locationtech.proj4j #2846.

Fixes & Updates

  • Fix {Backend}LayerCopy exception handling #2860.
  • Fix cache level in Ingest objects #2854.
  • Catch a possible precision loss on reprojection to the same projection #2849.
  • Make histogram.merge methods more specific #2852.
  • Fixed elliptical radius check in IDW algorithm #2844.
  • Replace all JavaConversions imports by JavaConverters #2843.
  • Made implicit conversions to/from Raster and ProjectedRaster deprecated #2834.
  • Fix vectorizer bug #2839.
  • Added mapTile to ProjectedRaster #2830.
  • Downgrade Avro version #2837.
  • Fix error in ReprojectRasterExtent #2825.
  • Dependency updates #2813.
  • Bump Spark version up to 2.4 2823.
  • Use a local[2] mode inside TestEnvironment trait #2821.
  • Make IO code agnostic about effects #2818.

v2.1.0

19 Oct 20:43
Compare
Choose a tag to compare
  • gerotrellis.spark
    • TileRDDReproject now works on RDD of TileFeature[T, D] (#2803).
    • TileRDDReproject now uses Reproject.Options.errorThreshold value (#2803).
  • geotrellis.spark.testkit
    • TestEnvironment now includes SparkSession (#2808).
  • geotrellis.spark.etl
    • Add TemporalIngest main method (#2709).
  • geotrellis.raster
    • RasterRegionReproject defaults to approximate resampling for MultibandBandTile (#2803).
    • Stitcher type class instance is now defined for TileFeature[T, D] ([#2803 (https://github.com//pull/2803)).
    • Fix GeoTiffSegment conversion to UByteCellType and UShortCellType (#2794).
    • Fix GeoTiff[T] interpretation of AutoHigherResolution OverviewStrategy(#2802).
    • GeoTiff[T].getClosestOverview method is now public (#2804).
    • GeoTiffOptions.storageMethod now defaults to Tiled instead of Striped (#2810).
    • GeoTiff TiffTags class can now read inverted extents (#2812).
  • geotrellis.vector
    • Add bbox field to all GeoJSON Features (#2811).