v0.3.0
TorchGeo 0.3.0 Release Notes
This release contains a number of new features, and brings increased stability to installations and testing.
In previous releases, not all dependencies had a minimum supported version listed, causing issues if users had old versions lying around. Old releases would also install the latest version of all dependencies even if they had never been tested before. TorchGeo now lists a minimum and maximum supported version for all dependencies. Moreover, we now test the minimum supported versions of all dependencies. Dependencies are automatically updated using dependabot to prevent unrelated CI failures from sneaking into PRs. We hope this makes it even easier to contribute to TorchGeo, and ensures that old releases will continue to work even if our dependencies make backwards-incompatible changes.
Backwards-incompatible changes
- VisionDataset and VisionClassificationDataset have been renamed to NonGeoDataset and NonGeoClassificationDataset (#627)
- Sample size now defaults to pixel units, use
units=Units.CRS
for old behavior (#294) - RasterDataset no longer has a plot method, subclasses have their own plot methods (#476)
- Plot method of RasterDataset subclasses now take sample dicts, not image tensors (#476)
- Removed FCEF model, use segmentation_models_pytorch.Unet instead (#345)
- SemanticSegmentationTrainer: ignore_zeros renamed to ignore_index (#444, #644)
Dependencies
- Python 3.7+ is now required (#413, #482, #486)
- Add lower version bounds to all dependencies based on testing (#574)
- Add upper version bounds to all dependencies based on semver (#544, #557)
- Fix Conda environment installation (#527, #528, #529, #545)
Datamodules
New datamodules:
Changes to existing datamodules:
- Improved consistency between datamodules (#657)
Datasets
New datasets:
- Aboveground Live Woody Biomass Density (#425)
- Aster GDEM (#404)
- CMS Global Mangrove Canopy (#391, #427)
- DeepGlobe (#578)
- DFC 2022 (#354)
- EDDMapS (#533)
- EnviroAtlas (#364)
- Esri 2020 Land Cover (#390, #405)
- EU-DEM (#426)
- Forest Damage (#461, #499)
- GBIF (#507)
- GlobBiomass (#395)
- iNaturalist (#532)
- Inria Aerial Image Labeling (#355)
- Million-AID (#455)
- OpenBuildings (#68, #402)
- ReforesTree (#582)
- SpaceNet 3 (#480)
- USAVars (#363)
Changes to existing datasets:
- Benin Small Holder Cashews: return geospatial metadata (#377)
- BigEarthNet: fix checksum (#550)
- CBF: add plot method (#410)
- CDL: add 2021 download (#418)
- CDL: add plot method (#415)
- Chesapeake: add plot method (#417)
- EuroSat: new bands parameter (#396, #397)
- LandCover.ai: update download URL (#559, #579)
- Landsat: add support for all Level-1 and Level-2 products (#492, #504)
- Landsat: add plot method (#661)
- NAIP: add plot method (#407)
- Seasonal Contrast: ensure that all images are square (#658)
- Sentinel: add plot method (#416, #493)
- SEN12MS: avoid casting float to int (#500, #502)
- So2Sat: new bands parameter (#394)
Base classes and utilities:
- VisionDataset and VisionClassificationDataset have been renamed to NonGeoDataset and NonGeoClassificationDataset (#627)
- RasterDataset no longer has a plot method, subclasses have their own plot methods (#476)
- Plot method of RasterDataset subclasses now take sample dicts, not image tensors (#476)
- BoundingBox has new area and volume attributes (#375)
- Don't subtract microsecond from mint (#506)
Models
Changes to existing models:
- Removed FCEF model, use segmentation_models_pytorch.Unet instead (#345)
- FCSiamConf and FCSiamDiff now inherit from segmentation_models_pytorch.Unet, allowing for easily loading pretrained weights (#345)
Samplers
New samplers:
- PreChippedGeoSampler (#479)
Changes to existing samplers:
- Allow for point sampling (#477)
- Allow for sampling of entire scene (#477)
- RandomGeoSampler no longer suffers from area bias (#408, #477)
- Sample size now defaults to pixel units, use
units=Units.CRS
for old behavior (#294)
Trainers
Changes to existing trainers:
- BYOLTask: fix in_channels handling (#522)
- BYOLTask: fix loading of encoder weights (#524)
- SemanticSegmentationTask: ignore_zeros renamed to ignore_index (#444, #644)
Transforms
New spectral indices:
New base classes:
- AppendTriBandNormalizedDifferenceIndex (#414)
Documentation
- Improved README (#589, #626)
- Add dataset tables (#435, #478, #649)
- Shorter dataset/datamodule/model names (#569, #571)
- Spectral indices now display mathematical equations (#400)
- Fix NAIP download in tutorials (#526, #531)
- Add issue templates on GitHub (#584, #590)
- Clarify Windows conda installation (#581)
- Public type hints (#508)
Tests
- Test on Python 3.10 (#457)
- Use dependabot to manage dependencies (#488, #551, #647)
- Test minimum version of dependencies (#574)
- Resolve and test for deprecation warnings (#567)
- FCSiam tests no longer require internet access (#495, #497)
Contributors
This release is thanks to the following contributors: