All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.5.3 - 2023-11-21
- Make computation of statistics and histogram optional for
core.add_raster.add_raster_to_item
(#467) - Make stac-validator and stac-check optional dependencies (#468)
--quiet
argument tostac validate
(#471)
0.5.2 - 2023-09-20
- IO with newer fsspec (#463)
0.5.1 - 2023-08-11
- Add
stac migrate
command (#443)
0.5.0 - 2023-08-04
- For raster footprints users can set destination CRS rather than it being hardcoded to EPSG:4326 (#440)
- Raster footprint calculation for multi-asset items can elect to use the union or intersection of the asset footprints (#445)
- On
stac create-item
asset key name and roles are settable (#442)
- Update pystac dependency to 0.7 and shapely to 2.0 (#441)
- Make
stac copy --copy-assets
copy assets to collections (#437)
copy --copy-assets
now works even with relative asset hrefs (#436)
- Many functions in
stactools.testing.CliTestCase
(#447). raster_footprint.reproject_polygon
andprojection.reproject_geom
. Useprojection.reproject_shape
instead withshapely.Geometry
objects as the input and output (#441)
- Unused files under
tests/data-files
(#438)
0.4.8 - 2023-06-01
--no-resolve-links
to the copy command (#430)
- Use
pyproject.toml
for project metadata (#424) - Use https://pypi.org/project/antimeridian for antimeridian and pole fixes (#426). Note that this may change the output geometries when fixing some antimeridian-crossing polygons, e.g. if the input polygons are wound clockwise (instead of counter-clockwise), the output geometry will be unexpectedly large (gadomski/antimeridian#33).
- Bounding boxes after fixing geometries for antimeridian crossings (#432)
- Many functions in
stactools.core.utils.antimeridian
(#426). Users should use the antimeridian package instead, or in the case "normalization", don't normalize at all since it doesn't conform to the GeoJSON spec. These are the deprecated functions:split
split_multipolygon
normalize
normalize_multipolygon
enclose_poles
0.4.7 - 2023-05-08
- Transformation failures in
reproject_geom
now throw an error (#420)
0.4.6 - 2023-04-10
enclose_poles
to the antimeridian module (#416)
densify_by_distance
now includes the points in the original coordinate list in the returned densified coordinate list (#412)densify_by_factor
now includes the final coordinate in the original coordinate list in the returned densifed coordinate list (#412)- The
footprint
method on theRasterFootprint
class now always returns counter-clockwise polygons in line with the GeoJSON specification (#412)
update_geometry_from_asset_footprint
in the raster_footprint module now updates the Item bbox based on the updated geometry extents (#414)
0.4.5 - 2023-03-24
- Add
update-extent
subcommand to the CLI (#405)
0.4.4 - 2023-02-16
stactools.core.utils.round
for rounding Item geometry and Item and Collection bboxes to a specified precision (#384)stactools.core.utils.raster_footprint.densify_by_distance
for densifying polygons at distance intervals (#396)stactools.core.utils.raster_footprint.reproject_polgyon
for reprojecting a polygon and removing duplicate vertices caused by rounding (#396)stactools.core.utils.raster_footprint.RasterFootprint
class for customizing raster data footrpint creation behaviour via subclassing (#396)
- Freed
recursive_round
function fromround_coordinates
instactools.core.utils.round
(#390) - Exposed the private
_densify
function asdensify_by_factor
instactools.core.utils.raster_footprint
(#396)
update_geometry_from_asset_footprint
,data_footprints_for_data_assets
, anddata_footprint
functions will be removed fromstactools.core.utils.raster_footprint
in v0.6.0 (#396)
0.4.3 - 2022-12-16
- Include kwargs in io
read_text
for use with internalfsspec.open
call. (#372) - Python 3.11 support (#376)
stac summary
command (#323)
0.4.2 - 2022-09-15
- Multi-band support for raster footprint generation (#355)
stac create-item
JSON output (#355)
0.4.1 - 2022-08-08
stactools.core.utils.raster_footprint
now handles nan nodata values correctly (#344)
0.4.0 - 2022-08-01
stactools.core.geometry
for handling common geometrical operations like creating bounding boxes from GeoJSON (#314)- Specify installation channel to use for all conda packages to avoid incompatibility (#301)
- Allow MultiPolygons when fixing antimeridian issues (#317)
- Conda package, via conda-forge (#324)
- Context manager to ignore rasterio's NotGeoreferencedWarning (#331)
stactools.core.utils.raster_footprint
andstac update-geometry
to assist in populating the geometry of an Item from data coverage of its data assets (#307)stactools.core.add_asset
andstac add-asset
to add an asset to an item (#300)
- Modified
stactools.core.utils.convert
with functions to export subdatasets from HDF files as separate COGs and single bands from multiband files (#318) - Modified
stactools.core.utils.antimeridian.fix_item
to return the item and updated 2 unit tests (#317) - Relaxed typing for cmd parameter for the CliTestCase.run_command in cli_test.py (#312)
- Cleaned up API documentation (#315)
- Renamed command
addraster
toadd-raster
(#321)
- Unnecessary and incorrect
args
andkwargs
fromStacIO
subclass (#315) - Dropped support for Python 3.7 (#313)
0.3.1 - 2022-05-05
- CI check for Python 3.10 (requires pre-release version of rasterio 1.3) (#271)
- pre-commit and isort (#275)
stac info
now has option-p
or--progress
to update console output while reading the catalog (#262)- More API documentation (#282)
FsspecStacIO.write_text_to_href
(#291)
- Skip Click v8.1.0 as it broke decorator typing (#266)
- Use black (instead of yapf) for formatting (#274)
- stac-check version and lint reporting (#258)
- Sphinx theme (#284)
- Use stac-validator for validation (#289)
FsspecStacIO.write_text_from_href
will be removed in v0.5.0 (#291)
0.3.0 - 2022-03-25
- Documentation on the release process (#241)
stac lint
using stac-check (#254)stac info
now has option-s
or--skip_items
to skip counting and printing catalog item info (#260)- updated
livehtml
target for documentation build to work with latestsphinx-autobuild
(#261) - Antimeridian helpers (#259)
0.2.6 - 2022-02-15
- CI checks for minimum and pre-release versions of dependencies (#228)
- Test items are now valid STAC v1.0.0 (#243)
- Move asset tests now have all the assets they need (#243)
- Use pytest for unit testing instead of
unittest
(#220) - Signature of
stactools.core.utils.convert.cogify
(#222) - Don't push Docker images from pull requests (#225, #226)
0.2.5 - 2022-01-03
read_href_modifer
argument tostactools.create.item
(#212)
0.2.4 - 2021-11-23
addraster
command (#204), includinggdal
Python dependency
- Update to pystac 1.2 (#209)
- Update click to 8.0.x (#209)
- Any packages using
types-click
should remove that package. Version 8 adds proper type annotations to the main package.
- Any packages using
- Set mypy to
strict
(#209)
- Readthedocs build (#210)
0.2.3 - 2021-09-16
stactools.core.create.item
and associated CLI subcommand (#201)stactools.core.add.add_item
and associated CLI command for adding an item to a Catlog/Collection (#153)
- Typing for Python 3.7 in
stactools.core.projection
(#201)
0.2.2 - 2021-09-13
- Add the ability to use data from the Microsoft Planetary Computer as external testing data (#197)
- Improved error reporting and documentation for old GDAL versions. GDAL 3.1 is required to read and write Cloud Optimized Geotiffs. (#194)
0.2.1 - 2021-07-28
The v0.2 release of stactools is a major refactor of the packaging and organization strategy for stactools.
Most packages have been moved to the stactools-packages organizing, leaving only stactools.core
, stactools.cli
, and the new stactools.testing
packages in this repository.
- Adds
stactools.testing
, which provides an API with convenience functions for packages to use in their testing code. Replacestests/utils
. - Add
mypy
as a lint dependency. Also publish type information for whenstactools
is used as a library. (#182) - Optional dependency on s3fs (#178), enabling:
- Using s3 files as external data for testing
- Using s3 hrefs with stactools functionality by installing with
pip install stactools[s3]
(orpip install stactools[all]
)
stac validate
command for validating JSON and checking links (#151)docker/pull
script for downloading Docker images- GitHub issue and PR templates
script/notebook
to run Jupyter notebooks (#174)
- Separates dataset packages and
stactools.browse
into a new Github organization, stactools-packages - Updated PySTAC dependency to
~= 1.1
(#185) - Restructured the Docker build
- Using GitHub Docker Registry rather than DockerHub for storing images
- Use both PySTAC and STAC version in version command (#149)
- Bumped
rasterio
version to v1.2
- Dropped support for Python 3.6
validate_cloud_optimized_geotiff.py
0.1.6 - 2021-06-09
- Better handling for Skysat images and other Planet improvements (#73)
- Use core utilities in more subpackages (#112)
- Converted landsat tests to local instead of network access (#105)
- Update landsat convert script to take new USGS fields (#109)
- Typo in Sentinel 2 L2A items (#116)
--enable-proj
flag for landsat's convert command (#94)- Small documentation typo (#119)
- Removed leftover debugging code in sentinel2 test (#118)
- Landsat8 bounding boxes were off by half of a pixel (#121)
- Zero-valued z coordinates in sentinel2 metadata (#122)
- SA_QA_AEROSOL asset key in landsat data (#126)
- Relative paths in sentinel2 assets (#125)
0.1.5 - 2021-05-06
- Method for creating Copernicus Land Cover Layers (#50)
eo:bands
information for Planet SkySat assets (#40)- Roles and thumbnails for Planet assets (#46 and #49)
- Projection information for Planet items (#39)
- Azimuth values in the view namespace for Planet (#59)
- More Planet properties (#57)
- Add "via" rel link for Planet data (#58)
- Sentinel-2 item creation (#52)
- Top level symlink directory to help the dev environment.
- Merge command (#75)
- USGS 3DEP support as
threedep
(#81)
- Allow debug output in unit tests
- Updates to
aster
,landsat
, andsentinel2
subpackages (#83)
- Landsat projection extraction (#67 and #100)
- Installing
naip
subpackage (#72) - Clean up planet test data (#74)
aster
COG generation (#89)landsat
asset keys (#90)- Docs (#93)
0.1.4 - 2021-02-21
- Implementation of Landsat STAC handling (#23)
- Add NAIP subpackage for deriving NAIP STAC items and collection (#18)
- Add catalog type option for
planet convert
(#61)
0.1.3 - 2021-01-19
- Add method for creating CORINE Land Cover. (#33)
- Fix issue caused by mihandling of shapely bounds returning tuple. (#41)
0.1.2 - 2021-01-14
- Added ASTER package (#16)
- Fixed issues with copying and asset movint (#34)
- Fix
stac browse
with upgrades to versions in the tiler container (#35)
0.1.1 - 2020-11-14
See #9
- Add docs to note that stac copy will migrate the copied STAC to the latest version.
- Add -h as shortcut for --include-hrefs option in stac describe.
- Include all Planet item metadata, using 'pl:' for a prefix to any metadata that doesn't map to STAC
- Fixed bug in stac merge when copying assets
- Update collection extents when using stac merge
0.1.0 - 2020-10-30
stac planet
commands for converting Planet orders to STACs.stac.cli.command.copy
commands for copying and moving STACs and assets.stac.cli.command.layout
for modifying the layout of STACsstac.browse
for launching a local instance of stac-browser using docker.