Skip to content

Commit

Permalink
Merge pull request #1632 from AdeelH/prerelease-0.20.1
Browse files Browse the repository at this point in the history
Update changelog for 0.20.1 release
  • Loading branch information
AdeelH committed Dec 29, 2022
2 parents 4ff2c8f + bce9442 commit cd0322b
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 21 deletions.
31 changes: 26 additions & 5 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,30 @@
CHANGELOG
=========

Raster Vision 0.20.0
Raster Vision 0.20.1
--------------------

Fixes
~~~~~

* Do not install ``rastervision_gdal_vsi`` by default (`#1622 <https://github.com/azavea/raster-vision/pull/1622>`__)
* Do not set ``cfg.model.pretrained=False`` in ``Learner.from_model_bundle()`` (`#1626 <https://github.com/azavea/raster-vision/pull/1626>`__)
* Fix docker build errors (`#1629 <https://github.com/azavea/raster-vision/pull/1629>`__)
* Documentation:

* Improve docstrings for most commonly used classes and configs (`#1630 <https://github.com/azavea/raster-vision/pull/1630>`__)
* Minor textual fixes for the pre-chipped datasets tutorial (`#1623 <https://github.com/azavea/raster-vision/pull/1623>`__)
* Add comment about password for the ISPRS Potsdam dataset (`#1627 <https://github.com/azavea/raster-vision/pull/1627>`__)

* README:

* fix broken links (`#1608 <https://github.com/azavea/raster-vision/pull/1608>`__)
* make CV-tasks image slightly smaller (`#1624 <https://github.com/azavea/raster-vision/pull/1624>`__)


Raster Vision 0.20
------------------

This release brings major improvements to Raster Vision's **usability** as well as its **usefulness**.

Whereas previously Raster Vision was a **framework** where users could configure a *pipeline* and then let it run, it is now *also* a **library** from which users can pick individual components and use them to build new things.
Expand All @@ -12,7 +33,7 @@ We have also significantly improved the documentation. Most notably, it now cont

In terms of features, some highlights are:

- Support for multiband imagery, introduced in v0.13 for semantic segmentation, is now also available in chip classification and object detection. (`#1345 <https://github.com/azavea/raster-vision/pull/1345>`__)
- Support for multiband imagery, introduced in v0.13 for semantic segmentation, is now also available for chip classification and object detection. (`#1345 <https://github.com/azavea/raster-vision/pull/1345>`__)
- Improved data fusion: the :class:`~rastervision.core.data.raster_source.multi_raster_source.MultiRasterSource` can now combine :class:`RasterSources <rastervision.core.data.raster_source.raster_source.RasterSource>` with varying extents and resolutions. (`#1308 <https://github.com/azavea/raster-vision/pull/1308>`__)
- You can now discard edges of predicted chips in semantic segmentation in order to reduce boundary artifacts (`#1486 <https://github.com/azavea/raster-vision/pull/1486>`__). This can be used *in addition* to the `previously introduced <https://github.com/azavea/raster-vision/pull/1057>`__ ability to average overlapping regions in adjacent chips.
- Progress-bars will now be shown for all downloads and uploads as well as other time-consuming operations that take longer than 5 seconds.
Expand All @@ -28,7 +49,7 @@ Features
- Allow ``MultiRasterSource`` to read from sub raster sources with non-identical extents and resolutions (`#1308 <https://github.com/azavea/raster-vision/pull/1308>`__)
- Allow discarding edges of predicted chips in semantic segmentation (`#1486 <https://github.com/azavea/raster-vision/pull/1486>`__)
- Add numpy-like array indexing and slicing to ``RasterSource`` and ``LabelSource`` (`#1470 <https://github.com/azavea/raster-vision/pull/1470>`__)
- Make ``RandomWindowGeoDataset`` more efficient when sampling chips from scenes with AOIs (`#1225 <https://github.com/azavea/raster-vision/pull/1225>`__)
- Make ``RandomWindowGeoDataset`` more efficient when sampling chips from scenes with sparse AOIs (`#1225 <https://github.com/azavea/raster-vision/pull/1225>`__)
- Add support for Albumentations' lambda transforms (`#1368 <https://github.com/azavea/raster-vision/pull/1368>`__)
- Provide grouping mechanism for scenes and use it in the ``analyze`` and ``eval`` stages (`#1375 <https://github.com/azavea/raster-vision/pull/1375>`__)
- Update STAC-reading functionality to make it compatible with STAC v1.0.* (`#1243 <https://github.com/azavea/raster-vision/pull/1243>`__)
Expand Down Expand Up @@ -62,19 +83,19 @@ Fixes

- Speed up ``RGBClassTransformer`` by an order of magnitude (`#1485 <https://github.com/azavea/raster-vision/pull/1485>`__)
- Fix ``rastervision_pipeline`` entry point to ensure commands from other plugins are available (`#1250 <https://github.com/azavea/raster-vision/pull/1250>`__)
- Make the semantic segmentation integration test more deterministic (`#1261 <https://github.com/azavea/raster-vision/pull/1261>`__)
- Misc. fixes (`#1260 <https://github.com/azavea/raster-vision/pull/1260>`__, `#1281 <https://github.com/azavea/raster-vision/pull/1281>`__, `#1453 <https://github.com/azavea/raster-vision/pull/1453>`__)
- Fix incorrect F1 scores when aggregating evals for scenes in the eval stage (`#1386 <https://github.com/azavea/raster-vision/pull/1386>`__)
- Fix bug in semantic segmentation prediction output paths (`#1354 <https://github.com/azavea/raster-vision/pull/1354>`__)
- Do not zero out null class pixels when creating semantic segmentation training chips (`#1556 <https://github.com/azavea/raster-vision/pull/1556>`__)
- Fix a bug in ``DataConfig`` validation and refactor ``ClassConfig`` (`#1436 <https://github.com/azavea/raster-vision/pull/1436>`__)
- Fix `#1052 <https://github.com/azavea/raster-vision/pull/1052>`__ (`#1451 <https://github.com/azavea/raster-vision/pull/1451>`__)
- Fix `#991 <https://github.com/azavea/raster-vision/pull/991>`__ and `#1452 <https://github.com/azavea/raster-vision/pull/1452>`__ (`#1484 <https://github.com/azavea/raster-vision/pull/1484>`__)
- Fix `#1430 <https://github.com/azavea/raster-vision/pull/1430>`__ (`#1495 <https://github.com/azavea/raster-vision/pull/1495>`__)
- Misc. fixes (`#1260 <https://github.com/azavea/raster-vision/pull/1260>`__, `#1281 <https://github.com/azavea/raster-vision/pull/1281>`__, `#1453 <https://github.com/azavea/raster-vision/pull/1453>`__)

Development/maintenance
~~~~~~~~~~~~~~~~~~~~~~~

- Make the semantic segmentation integration test more deterministic (`#1261 <https://github.com/azavea/raster-vision/pull/1261>`__)
- Migrate from Travis to GitHub Actions (`#1218 <https://github.com/azavea/raster-vision/pull/1218>`__)
- Add Github issue templates (`#1242 <https://github.com/azavea/raster-vision/pull/1242>`__, `#1288 <https://github.com/azavea/raster-vision/pull/1288>`__, `#1420 <https://github.com/azavea/raster-vision/pull/1420>`__)
- Switch from Gitter to Github Discussions (`#1464 <https://github.com/azavea/raster-vision/pull/1464>`__, `#1465 <https://github.com/azavea/raster-vision/pull/1465>`__)
Expand Down
3 changes: 2 additions & 1 deletion docs/release.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Minor or Major Version Release
#. It's a good idea to update any major dependencies before the release.
#. Update the docs if needed. See the `docs README <{{ repo }}/docs/README.md>`__ for instructions.
#. Checkout the ``master`` branch, re-build the docker image (``docker/build``), and push it to ECR (``docker/ecr_publish``).
#. Execute all notebooks in the `tutorial notebooks <{{ repo }}/docs/usage/tutorials/>` and make sure they work correctly. Do not commit output changes unless code behavior has changed.
#. Execute all `tutorial notebooks <{{ repo }}/docs/usage/tutorials/>`__ and make sure they work correctly. Do not commit output changes unless code behavior has changed.
#. Run all :ref:`rv examples` and check that evaluation metrics are close to the scores from the last release. (For each example, there should be a link to a JSON file with the evaluation metrics from the last release.) This stage often uncovers bugs, and is the most time consuming part of the release process. There is a `script <{{ repo_examples }}/test.py>`__ to help run the examples and collect their outputs. See the associated `README <{{ repo_examples }}/README.md>`__ for details.
#. Collect all model bundles, and check that they work with the ``predict`` command and sanity check output in QGIS.
#. Update the :ref:`model zoo` by uploading model bundles and sample images to the right place on S3. If you use the ``collect`` command (`described here <{{ repo_examples }}/README.md>`__), you should be able to sync the ``collect_dir`` to ``s3://azavea-research-public-data/raster-vision/examples/model-zoo-<version>``.
Expand Down Expand Up @@ -116,6 +116,7 @@ Minor or Major Version Release
twine upload dist/*
#. Announce new release in our `forum <https://github.com/azavea/raster-vision/discussions>`_, and with blog post if it's a big release.
#. Make a PR to the master branch that updates the version number to the next development version. For example, if the last release was ``0.20.1``, update the version

Bug Fix Release
-----------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ Some examples require preprocessing data. Remember to upload that first. If unch

```sh
aws s3 cp \
s3://raster-vision/examples/0.13/processed-data/ \
s3://raster-vision/examples/0.20/processed-data/ \
s3://raster-vision/examples/0.20.1/processed-data/ \
--recursive
```

Expand All @@ -52,16 +52,16 @@ This currently only compares the respective `eval.json`'s, but can be extended i
```sh
python "rastervision_pytorch_backend/rastervision/pytorch_backend/examples/test.py" \
compare \
--root_uri_old "s3://raster-vision/examples/0.13/output/spacenet-rio-cc/" \
--root_uri_new "s3://raster-vision/examples/0.20/output/spacenet-rio-cc/"
--root_uri_old "s3://raster-vision/examples/0.20/output/spacenet-rio-cc/" \
--root_uri_new "s3://raster-vision/examples/0.20.1/output/spacenet-rio-cc/"
```

**All examples**:
```sh
python "rastervision_pytorch_backend/rastervision/pytorch_backend/examples/test.py" \
compare \
--examples_root_old "s3://raster-vision/examples/0.13/output/" \
--examples_root_new "s3://raster-vision/examples/0.20/output/"
--examples_root_old "s3://raster-vision/examples/0.20/output/" \
--examples_root_new "s3://raster-vision/examples/0.20.1/output/"
```

### Collect
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@
file_to_json, sync_from_dir, upload_or_copy, download_or_copy, file_exists,
sync_to_dir, NotReadableError, download_if_needed)

OLD_VERSION = '0.13'
NEW_VERSION = '0.20'
OLD_VERSION = '0.20'
NEW_VERSION = '0.20.1'
NEW_VERSION_MAJOR_MINOR = '0.20'

EXAMPLES_MODULE_ROOT = 'rastervision.pytorch_backend.examples'
EXAMPLES_PATH_ROOT = '/opt/src/rastervision_pytorch_backend/rastervision/pytorch_backend/examples' # noqa
REMOTE_PROCESSED_ROOT = f's3://raster-vision/examples/{NEW_VERSION}/processed-data'
Expand All @@ -21,7 +23,7 @@
LOCAL_PROCESSED_ROOT = '/opt/data/examples/processed-data'
LOCAL_OUTPUT_ROOT = '/opt/data/examples/output'
LOCAL_COLLECT_ROOT = '/opt/data/examples/collect'
ZOO_UPLOAD_ROOT = f's3://azavea-research-public-data/raster-vision/examples/model-zoo-{NEW_VERSION}' # noqa
ZOO_UPLOAD_ROOT = f's3://azavea-research-public-data/raster-vision/examples/model-zoo-{NEW_VERSION_MAJOR_MINOR}' # noqa
SAMPLE_IMG_DIR = f's3://azavea-research-public-data/raster-vision/examples/sample_images' # noqa

######################
Expand Down Expand Up @@ -463,11 +465,11 @@ def _compare_runs(root_uri_old: str,
_compare_evals(cmd_root_uri_old_local, cmd_root_uri_new_local)


def _compare_evals(
root_uri_old: str,
root_uri_new: str,
float_tol: float = 1e-3,
exclude_keys: list = ['conf_mat', 'count_error', 'per_scene']) -> None:
def _compare_evals(root_uri_old: str,
root_uri_new: str,
float_tol: float = 1e-3,
exclude_keys: list = ['conf_mat', 'count',
'per_scene']) -> None:
"""Compare outputs of the eval command for two runs of an example."""
console_heading('Comparing keys and values in eval.json files...')
try:
Expand Down Expand Up @@ -590,8 +592,6 @@ def _compare_dicts(dict_old: dict,
"""
dict_old = flatten_dict(dict_old)
dict_new: Dict[str, Any] = flatten_dict(dict_new)
# TODO this hack is specific to 0.13 vs 0.20 comparison
dict_new = {k.replace('.metrics', ''): v for k, v in dict_new.items()}
keys_old, keys_new = set(dict_old.keys()), set(dict_new.keys())
diff1, diff2 = keys_new - keys_old, keys_old - keys_new
if len(diff1) > 0:
Expand Down

0 comments on commit cd0322b

Please sign in to comment.