Skip to content

0.8.0

Compare
Choose a tag to compare
@metasim metasim released this 16 Aug 16:20
· 736 commits to develop since this release

Changes

  • Super-duper new Python-centric RasterFrames Users' Manual!
  • Upgraded to the following core dependencies: Spark 2.3.3, GeoTrellis 2.3.0, GeoMesa 2.2.1, JTS 1.16.0.
  • Build pyrasterframes binary distribution for pip installation.
  • Added support for rendering RasterFrame types in IPython/Jupyter.
  • Added new tile functions rf_round, rf_abs, rf_log, rf_log10, rf_log2, rf_log1p, rf_exp, rf_exp10, rf_exp2, rf_expm1, rf_resample.
  • Support Python-side Tile User-Defined Type backed by numpy ndarray or ma.MaskedArray.
  • Support Python-side Shapely geometry User-Defined Type.
  • SQL API support for rf_assemble_tile and rf_array_to_tile.
  • Introduced at the source level the concept of a RasterSource and RasterRef, enabling lazy/delayed read of sub-scene tiles.
  • Added withKryoSerialization extension methods on SparkSession.Builder and SparkConf.
  • Added rf_render_matrix debugging function.
  • Added RasterFrameLayer.withExtent extension method.
  • Added SinglebandGeoTiff.toDF extension method.
  • Added DataFrame.rasterJoin extension method for merging two dataframes with tiles in disparate CRSs.
  • Added rf_crs for ProjectedRasterTile columns.
  • Added st_extent (for Geometry types) and rf_extent (for ProjectedRasterTile and RasterSource columns).
  • Added st_geometry (for Extent types) and rf_geometry (for ProjectedRasterTile and RasterSource columns).
  • Reworked build scripts for RasterFrames Jupyter Notebook.
  • Breaking: The type RasterFrame renamed RasterFrameLayer to be reflect its intended purpose.
  • Breaking: All asRF methods renamed to asLayer.
  • Breaking: Root package changed from org.locationtech.rasterframes to org.locationtech.rasterframes.
  • Breaking: Removed envelope, in lieu of st_extent, rf_extent or st_envelope
  • Breaking: Renamed rf_extent_geometry to st_geometry
  • Breaking: Renamed rf_tile_dimensions to rf_dimensions
  • Breaking: Renamed rf_reproject_geometry to st_reproject
  • Breaking: With the upgrade to JTS 1.16.0, all imports of com.vividsolutions.jts need to be changed to org.locationtech.jts.
  • Deprecation: Tile column functions (in RasterFunctions) and SQL registered names have all been renamed to follow snake_case conventions, with an rf_ prefix, matching SQL and Python. A temporary compatibility shim is included so that code built against 0.7.1 and earlier still work. These will be marked as deprecated.
  • Breaking: In Scala and SQL, ..._scalar functions (e.g. local_add_scalar) have been removed. Non-scalar forms now dynamically detect type of right hand side.
  • Breaking: tileToArray has been replaced with _tile_to_array_double and _tile_to_array_int.
  • Breaking: Renamed bounds_geometry to rf_extent_geometry.
  • Breaking: renamed agg_histogram to rf_agg_approx_histogram, local_agg_stats to rf_agg_local_stats, local_agg_max to rf_agg_local_max, local_agg_min to rf_agg_local_min, local_agg_mean to rf_agg_local_mean, local_agg_data_cells to rf_agg_local_data_cells, local_agg_no_data_cells to rf_agg_local_no_data_cells.
  • Breaking: CellHistogram no longer carries along approximate statistics, due to confusing behavior. Use rf_agg_stats instead.
  • Introduced LocalCellStatistics class to wrap together results from LocalStatsAggregate.
  • Breaking: TileDimensions moved from astraea.spark.rasterframes to org.locationtech.rasterframes.model.
  • Breaking: Renamed RasterFrame.withBounds to RasterFrameLayer.withGeometry for consistency with DataSource schemas.

Known issues

  • #188: Error on deserialization of a Tile with a bool cell type to the Python side; see issue description for work around.