- Fix more imports when visualization dependencies are not installed (#283)
- Fix imports when visualization dependencies are not installed (#281)
- Remove several deprecation warnings (#281)
- Make visualization dependencies optional (#260)
- Check if the raster's footprint intersects the tile's footprint in :py:meth:`telluric.georaster.GeoRaster2.get_tile` (#273)
- Preserve nodata value while saving rasters (#271)
- FileCollection created out of file-like object can be iterated (#272)
- Fix :py:meth:`telluric.collections.FileCollection.sort` (#259)
- Fix potential bug in :py:class:`~telluric.context.ThreadContext` when it is uninitialized (#259)
- Disable transformation if source CRS equals to destination (#270)
- Now :py:class:`~telluric.georaster.MutableGeoRaster` inherits
nodata_value
- Now reprojection retains nodata values
- Adding support of resources accesed through HTTP and HTTPS to VRT (#248)
- Remove unnecessary call of :py:class:`fiona.Env` (#247)
- Creating COG with internal mask (#244)
- Removed pinning for pyproj (#245)
- Workaround to overcome impossible transformations (#241)
- Prevent image loading while copying (#235)
- Refactored raster join implementation (#230)
- Changed default value of "nodata" in :py:class:`~telluric.georaster.GeoRaster2`
constructor, now it is
None
(#231) - Accelerate tests (#232)
- Added new method :py:meth:`telluric.georaster.GeoRaster2.mask_by_value` (#233)
- Added new method :py:meth:`telluric.vectors.GeoVector.from_record` (#238)
- Rasterio 1.0.21 compatibility (#239)
- Adding support to lazy resize that can use overviews if exist (#240)
- Fix :py:class:`~telluric.collections.FeatureCollection` plotting (#229)
- SpatioTemporal Asset Catalog (STAC) compatibility (#223)
- Support custom schema in :py:meth:`telluric.collections.BaseCollection.save` (#224)
- Preserve the original schema while using :py:meth:`telluric.collections.BaseCollection.apply` and :py:meth:`telluric.collections.BaseCollection.groupby` (#225)
- Better handling of an empty collections (#226)
- Remove the reference to the raster object in the asset entry (#227)
- Retrieve mask in a safer way to avoid shrunk masks (#228)
- Fix masking by :py:class:`~telluric.features.GeoFeature` (#216)
- Fix issue in :py:meth:`GeoRaster.from_asset` (#217, #220)
- :py:meth:`telluric.features.GeoFeature.envelope` returns instance of :py:class:`~telluric.vectors.GeoVector` (#218)
- Use local tile server for visualization of :py:class:`~telluric.features.GeoFeatureWithRaster` (#221)
- :py:meth:`telluric.georaster.GeoRaster2.mask` uses crop internally to reduce memory footprint (#219)
- :py:meth:`telluric.georaster.GeoRaster2.limit_to_bands` is lazy (#222)
- Fiona 1.8.4 and Rasterio 1.0.13 compatibility (#207, #208)
- Support multiple rasters in a single :py:class:`~telluric.features.GeoFeatureWithRaster` (#209)
- Added new method :py:meth:`telluric.vectors.GeoVector.get_bounding_box` (#213)
- Remove hardcoded tile server port (#205)
- The internal state of the raster is not changed while saving (#210)
- Fix :py:meth:`telluric.georaster.GeoRaster2.save` (#211)
- Fix bug in reproject (#212)
- Better handling of :py:meth:`telluric.features.GeoFeature.from_record` (#214)
- LZW compression is used by default for creating COG rasters (#200)
- Added way to change port for local tile server (#202)
- Fix iterating over :py:class:`~telluric.collections.FileCollection` (#203)
- Fix fiona's GDAL environment issue (#204)
- Added new method :py:meth:`telluric.collections.FeatureCollection.from_georasters` to create collections of rasters (#184)
- Visualization feature collection with rasters in Jupyter Notebook (#186)
- Added new method :py:meth:`telluric.collections.BaseCollection.apply` (#188)
- Added new method :py:meth:`telluric.georaster.GeoRaster2.from_wms` for creating rasters out of web services (#190, #192)
- Generalizing the process of making VRT files (#191, #193)
- Rasterio 1.0.11 compatibility (#194)
- Added new method :py:meth:`telluric.georaster.GeoRaster2.from_rasters` to create raster out of a list of rasters (#195)
- Added support of several domains in a single VRT file (#196)
- Reproject features before polygonization (#182)
- Fix :py:mod:`matplotlib.cm` call (#187)
- Fix :py:meth:`telluric.georaster.GeoRaster2.save` (#197)
- Pin minimal version of Folium (#198)
- Fix rasterio's GDAL environment issue (#201)
- Interactive representation of rasters in Jupyter Notebook (#178)
- Fiona 1.8.1 and Rasterio 1.0.10 compatibility (#179, #180)
- Removed :py:mod:`pyplot` import from the module level to overcome issues at headless environments (#177)
- Added new method :py:meth:`telluric.georaster.GeoRaster2.chunks` for iterating over the chunks of the raster (#169)
- Workaround to overcome fiona's GDAL environment issue (#175)
- Added
resampling
parameter to :py:func:`telluric.georaster.merge_all` function (#166) - New :py:meth:`telluric.vectors.GeoVector.tiles` method for iterating over the tiles intersecting the bounding box of the vector (#167)
- Fiona 1.8.0 compatibility (#171)
- Workaround to overcome rasterio's GDAL environment issue (#174)
- A new class :py:class:`~telluric.georaster.MutableGeoRaster` was added (#165)
- The right way to calculate
dest_resolution
in :py:func:`telluric.georaster.merge_all` if one is not provided (#163) - Read mask only if it exists (#164)
- Rasterio 1.0.3 and higher compatibility (#152)
- Non-georeferenced images may be opened by providing
affine
andcrs
parameters to :py:meth:`telluric.georaster.GeoRaster2.open` (#153) - A new argument
crs
was added to :py:meth:`telluric.collections.FileCollection.open` for opening vector files that dont't contain information about CRS (#156) - A new :py:func:`telluric.util.raster_utils.build_overviews` utility was added (#158)
- Treat 0 as legitimate value in :py:meth:`telluric.georaster.GeoRaster2.colorize` (#160)
- Fix rasterization of an empty collection with callable
fill_value
(#161)
- New class :py:class:`~telluric.features.GeoFeatureWithRaster` that extends :py:class:`~telluric.features.GeoFeature`.
- Retrieve mask in a safer way in :py:meth:`telluric.georaster.GeoRaster2.save` (#136)
- Fix affine calculation in :py:meth:`telluric.georaster.GeoRaster2.get_tile` (#137)
- Convert dimensions to ints (#140)
- Masking areas outside the window in :py:meth:`telluric.georaster.GeoRaster2.get_window` (#141)
- :py:func:`telluric.georaster.merge_all` does not crash for resolution in ROI units (#143, #146)
- Limit rasterio version to <1.0.3
- Add LICENSE into the MANIFEST (#147)
- Slicing a :py:class:`~telluric.collections.FeatureCollection` now returns a
FeatureCollection
(#29, #32) - Rasterization methods can now accept multiple fill values to produce nonbinary images (#34)
- :py:meth:`telluric.collections.FileCollection.save` now saves types better (#20, #36)
- Merging functions and :py:meth:`telluric.georaster.GeoRaster2.empty_from_roi` now support more ways to define the raster extent (#39, #57)
- Added utilities to convert to Cloud Optimized GeoTIFF (COG) and reproject files on disk (#45, #87)
- Raster data can be converted from/to different floating point formats thanks to enhancements in :py:meth:`telluric.georaster.GeoRaster2.astype` (#33, #66)
- Added new method :py:meth:`telluric.georaster.GeoRaster2.colorize` to colorize a band of a raster for visualization purposes (#81)
- Collections now have experimental "groupby/dissolve" functionality inspired by pandas and GeoPandas (#77, #98)
- Add a :py:data:`telluric.georaster.PixelStrategy` enum with a new mode that allows the user to produce the "metadata" of a merge process (#68, #91)
- :py:meth:`telluric.vectors.GeoVector.rasterize` can now accept a custom output CRS (#125)
- A new argument was added to the :py:class:`~telluric.vectors.GeoVector` constructor for disabling arguments validity checking (#126)
- Unnecessary CRS equality checking in :py:meth:`telluric.vectors.GeoVector.get_shape` was removed for performance reasons (#127)
- Rasterization methods no longer support specifying a "nodata" value, and an appropriate nodata value will be generated depending on the fill value(s) (#28, #34)
- Properties in the sense of the GeoJSON standard are now called "properties" instead of "attributes" for consistency (#84)
- Non georeferenced raster data is no longer supported (although we are considering re adding it under some restrictions) (#64, #74)
- It is not required for collections to be reprojected to output CRS for rasterization with fill_value (#125)
- :py:meth:`telluric.vectors.GeoVector.from_record` now treats
None
values properly (#37, #38) - :py:class:`~telluric.georaster.GeoRaster2` methods and functions work with non isotropic resolution (#39)
- Cropping now behaves correctly with rasterio 1.0.0 (#44, #46)
- Crop size is now correctly computed for rasters in WGS84 (#61, #62)
- Fix rasterio 1.0.0 warnings regarding CRS comparison (#64, #74)
- :py:func:`telluric.georaster.merge_all` now is order independent and produces consistent results in all situations (#65, #62)
- :py:class:`~telluric.georaster.GeoRaster2` methods and functions work with rasters with positive y scale (#76, #78)
- :py:meth:`telluric.georaster.GeoRaster2.save` with default arguments does not crash for small rasters anymore (#16, #53)
- :py:meth:`telluric.collections.FileCollection.save` does not have side effects on heterogeneous collections anymore (#19, #24)
- Fix rasterization of points with default arguments (#9)
Initial release 🎉