From f5d1b04eee0695d52aed2dc80e2ec87b0049d001 Mon Sep 17 00:00:00 2001 From: nilsleh Date: Fri, 11 Feb 2022 16:36:06 +0100 Subject: [PATCH 01/11] globBiomass Dataset --- docs/api/datasets.rst | 4 + torchgeo/datasets/__init__.py | 2 + torchgeo/datasets/globBiomass.py | 234 +++++++++++++++++++++++++++++++ 3 files changed, 240 insertions(+) create mode 100644 torchgeo/datasets/globBiomass.py diff --git a/docs/api/datasets.rst b/docs/api/datasets.rst index 4c61a9d7067..e4719cde59e 100644 --- a/docs/api/datasets.rst +++ b/docs/api/datasets.rst @@ -47,6 +47,10 @@ Esri2020 .. autoclass:: Esri2020 +GlobBiomass +^^^^^^^^^^^ +.. autoclass:: GlobBiomass + Landsat ^^^^^^^ diff --git a/torchgeo/datasets/__init__.py b/torchgeo/datasets/__init__.py index e99e857eda4..0ff68fafff9 100644 --- a/torchgeo/datasets/__init__.py +++ b/torchgeo/datasets/__init__.py @@ -40,6 +40,7 @@ VisionDataset, ) from .gid15 import GID15 +from .globBiomass import GlobBiomass from .idtrees import IDTReeS from .inria import InriaAerialImageLabeling from .landcoverai import LandCoverAI @@ -98,6 +99,7 @@ "ChesapeakeWV", "ChesapeakeCVPR", "Esri2020", + "GlobBiomass", "Landsat", "Landsat1", "Landsat2", diff --git a/torchgeo/datasets/globBiomass.py b/torchgeo/datasets/globBiomass.py new file mode 100644 index 00000000000..5037860c47b --- /dev/null +++ b/torchgeo/datasets/globBiomass.py @@ -0,0 +1,234 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +"""GlobBiomass dataset.""" + +import glob +import os +from typing import Any, Callable, Dict, Optional + +from rasterio.crs import CRS + +from torchgeo.datasets import BoundingBox + +from .geo import RasterDataset +from .utils import check_integrity, extract_archive + + +class GlobBiomass(RasterDataset): + """GlobBiomass dataset. + + The `GlobBiomass dataset + consists of global pixel wise aboveground biomass (AGB) and growth stock + volume (GSV) maps. For an elaboration on the methodology, please refer to + + Dataset features: + + * estimates of AGB and GSV around the world at 100m per pixel resolution + (~px, ~px) + * standard error maps of respective measurement at same resolution + + Dataset format: + + * estimate maps are single-channel + * standard error maps are single-channel + + The data can be manually downloaded from `this website + `. + + If you use this dataset please cite it with the following citation: + + * Santoro, M. et al. (2018): GlobBiomass - global datasets of forest biomass. + PANGAEA, https://doi.org/10.1594/PANGAEA.894711 + + .. versionadded:: 0.3 + """ + + is_image = False + filename_regex = r"""^ + (?P[0-9A-Z]*) + _(?P[a-z]{3}) + """ + separate_files = True + + measurements = ["agb", "gsv"] + + md5s = { + "N00E020_agb.zip": "bd83a3a4c143885d1962bde549413be6", + "N00E020_gsv.zip": "da5ddb88e369df2d781a0c6be008ae79", + "N00E060_agb.zip": "85eaca95b939086cc528e396b75bd097", + "N00E060_gsv.zip": "ec84174697c17ca4db2967374446ab30", + "N00E100_agb.zip": "c50c7c996615c1c6f19cb383ef11812a", + "N00E100_gsv.zip": "6e0ff834db822d3710ed40d00a200e8f", + "N00E140_agb.zip": "73f0b44b9e137789cefb711ef9aa281b", + "N00E140_gsv.zip": "43be3dd4563b63d12de006d240ba5edf", + "N00W020_agb.zip": "4fb979732f0a22cc7a2ca3667698084b", + "N00W020_gsv.zip": "ac5bbeedaa0f94a5e01c7a86751d6891", + "N00W060_agb.zip": "59da0b32b08fbbcd2dd76926a849562b", + "N00W060_gsv.zip": "5ca9598f621a7d10ab1d623ee5b44aa6", + "N00W100_agb.zip": "a819b75a39e8d4d37b15745c96ea1e35", + "N00W100_gsv.zip": "71aad3669d522f7190029ec33350831a", + "N00W180_agb.zip": "5a1d7486d8310fbaf4980a76e9ffcd78", + "N00W180_gsv.zip": "274be7dbb4e6d7563773cc302129a9c7", + "N40E020_agb.zip": "38bc7170f94734b365d614a566f872e7", + "N40E020_gsv.zip": "b52c1c777d68c331cc058a273530536e", + "N40E060_agb.zip": "1d94ad59f3f26664fefa4d7308b63f05", + "N40E060_gsv.zip": "3b68786b7641400077ef340a7ef748f4", + "N40E100_agb.zip": "3ccb436047c0db416fb237435645989c", + "N40E100_gsv.zip": "c44efe9e7ce2ae0f2e39b0db10f06c71", + "N40E140_agb.zip": "35ea51da229af1312ba4aaafc0dbd5d6", + "N40E140_gsv.zip": "8431828708c84263a4971a8779864f69", + "N40W020_agb.zip": "38345a1826719301ab1a0251b4835cc2", + "N40W020_gsv.zip": "5e136b7c2f921cd425cb5cc5669e7693", + "N40W060_agb.zip": "e3f54df1d188c0132ecf5aef3dc54ca6", + "N40W060_gsv.zip": "09093d78ffef0220cb459a88e61e3093", + "N40W100_agb.zip": "cc21ce8793e5594dc7a0b45f0d0f1466", + "N40W100_gsv.zip": "21be1398df88818d04dcce422e2010a6", + "N40W140_agb.zip": "64665f53fad7386abb1cf4a44a1c8b1a", + "N40W140_gsv.zip": "b59405219fc807cbe745789fbb6936a6", + "N40W180_agb.zip": "f83ef786da8333ee739e49be108994c1", + "N40W180_gsv.zip": "1f2eb8912b1a204eaeb2858b7e398baa", + "N80E020_agb.zip": "7f7aed44802890672bd908e28eda6f15", + "N80E020_gsv.zip": "6e285eec66306e56dc3a81adc0da2a27", + "N80E060_agb.zip": "55e7031e0207888f25f27efa9a0ab8f4", + "N80E060_gsv.zip": "8d14c7f61ad2aed527e124f9aacae30c", + "N80E100_agb.zip": "562eafd2813ff06e47284c48324bb1c7", + "N80E100_gsv.zip": "73067e0fac442c330ae2294996280042", + "N80E140_agb.zip": "1b51ce0df0dba925c5ef2149bebca115", + "N80E140_gsv.zip": "37ee3047d281fc34fa3a9e024a8317a1", + "N80W020_agb.zip": "60dde6adc0dfa219a34c976367f571c0", + "N80W020_gsv.zip": "b7be4e97bb4179710291ee8dee27f538", + "N80W060_agb.zip": "db7d35d0375851c4a181c3a8fa8b480e", + "N80W060_gsv.zip": "d36ffcf4622348382454c979baf53234", + "N80W100_agb.zip": "c0dbf53e635dabf9a4d7d1756adeda69", + "N80W100_gsv.zip": "abdeaf0d65da1216c326b6d0ce27d61b", + "N80W140_agb.zip": "7719c0efd23cd86215fea0285fd0ea4a", + "N80W140_gsv.zip": "499969bed381197ee9427a2e3f455a2e", + "N80W180_agb.zip": "e3a163d1944e1989a07225d262a01c6f", + "N80W180_gsv.zip": "5d39ec0368cfe63c40c66d61ae07f577", + "S40E140_agb.zip": "263eb077a984117b41cc7cfa0c32915b", + "S40E140_gsv.zip": "e0ffad85fbade4fb711cc5b3c7543898", + "S40W060_agb.zip": "2cbf6858c48f36add896db660826829b", + "S40W060_gsv.zip": "04dbfd4aca0bd2a2a7d8f563c8659252", + "S40W100_agb.zip": "ae89f021e7d9c2afea433878f77d1dd6", + "S40W100_gsv.zip": "b6aa3f276e1b51dade803a71df2acde6", + } + + def __init__( + self, + root: str = "data", + crs: Optional[CRS] = None, + res: Optional[float] = None, + measurement: str = "agb", + transforms: Optional[Callable[[Dict[str, Any]], Dict[str, Any]]] = None, + cache: bool = True, + checksum: bool = False, + ) -> None: + """Initialize a new Dataset instance. + + Args: + root: root directory where dataset can be found + crs: :term:`coordinate reference system (CRS)` to warp to + (defaults to the CRS of the first file found) + res: resolution of the dataset in units of CRS + (defaults to the resolution of the first file found) + measurement: use data from 'agb' or 'gsv' measurement + transforms: a function/transform that takes an input sample + and returns a transformed version + cache: if True, cache file handle to speed up repeated sampling + checksum: if True, check the MD5 of the downloaded files (may be slow) + + Raises: + FileNotFoundError: if no files are found in ``root`` + RuntimeError: if ``download=False`` but dataset is missing or checksum fails + """ + self.root = root + self.checksum = checksum + + assert isinstance(measurement, str), "Measurement argument must be a str." + assert ( + measurement in self.measurements + ), "You have entered an invalid measurement, please choose one of {}.".format( + self.measurements + ) + self.measurement = measurement + + self.filename_glob = "*0_{}*[!zip]".format(self.measurement) + self.zipfile_glob = "*0_{}.zip".format(self.measurement) + + self._verify() + + super().__init__(root, crs, res, transforms, cache) + + def __getitem__(self, query: BoundingBox) -> Dict[str, Any]: + """Retrieve image/mask and metadata indexed by query. + + Args: + query: (minx, maxx, miny, maxy, mint, maxt) coordinates to index + + Returns: + sample at index retrieving measurement mask with key 'mask', + standard error under 'error_mask' key, crs under 'crs' and + query bbox under 'bbox' + + Raises: + IndexError: if query is not found in the index + """ + hits = self.index.intersection(tuple(query), objects=True) + filepaths = [hit.object for hit in hits] + + if not filepaths: + raise IndexError( + f"query: {query} not found in index with bounds: {self.bounds}" + ) + + measurement_paths = [f for f in filepaths if "err" not in f] + mask = self._merge_files(measurement_paths, query) + + std_error_paths = [f for f in filepaths if "err" in f] + std_err_mask = self._merge_files(std_error_paths, query) + + sample = { + "mask": mask, + "error_mask": std_err_mask, + "crs": self.crs, + "bbox": query, + } + + if self.transforms is not None: + sample = self.transforms(sample) + + return sample + + def _verify(self) -> None: + """Verify the integrity of the dataset. + + Raises: + RuntimeError: if ``download=False`` but dataset is missing or checksum fails + """ + # Check if the extracted file already exists + pathname = os.path.join(self.root, self.filename_glob) + if glob.glob(pathname): + return + + # Check if the zip files have already been downloaded + pathname = os.path.join(self.root, self.zipfile_glob) + if glob.glob(pathname): + self._extract() + return + + raise RuntimeError( + f"Dataset not found in `root={self.root}` " + "either specify a different `root` directory or make sure you " + "have manually downloaded the dataset as suggested in the documentation." + ) + + def _extract(self) -> None: + """Extract the dataset files.""" + pathname = os.path.join(self.root, self.zipfile_glob) + for zipfile in glob.iglob(pathname): + filename = os.path.basename(zipfile) + extract_archive(zipfile) + if self.checksum and not check_integrity(zipfile, self.md5s[filename]): + raise RuntimeError("Dataset found, but corrupted.") From 5043ff8006350d51ee2f6ff8d02891b980508662 Mon Sep 17 00:00:00 2001 From: nilsleh Date: Fri, 11 Feb 2022 17:48:09 +0100 Subject: [PATCH 02/11] add tests and testdata --- tests/data/globbiomass/N00E020_agb.tif | Bin 0 -> 16758 bytes tests/data/globbiomass/N00E020_agb.zip | Bin 0 -> 33758 bytes tests/data/globbiomass/N00E020_agb_err.tif | Bin 0 -> 16758 bytes tests/data/globbiomass/data.py | 61 ++++++++++++++ tests/datasets/test_globbiomass.py | 78 ++++++++++++++++++ torchgeo/datasets/__init__.py | 2 +- .../{globBiomass.py => globbiomass.py} | 19 ++--- 7 files changed, 146 insertions(+), 14 deletions(-) create mode 100644 tests/data/globbiomass/N00E020_agb.tif create mode 100644 tests/data/globbiomass/N00E020_agb.zip create mode 100644 tests/data/globbiomass/N00E020_agb_err.tif create mode 100644 tests/data/globbiomass/data.py create mode 100644 tests/datasets/test_globbiomass.py rename torchgeo/datasets/{globBiomass.py => globbiomass.py} (94%) diff --git a/tests/data/globbiomass/N00E020_agb.tif b/tests/data/globbiomass/N00E020_agb.tif new file mode 100644 index 0000000000000000000000000000000000000000..20e355e903c516df14e4f2720d9176c57127d287 GIT binary patch literal 16758 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 YaiF*jA>jzoFQ%opJ4A|}NnS?~1RgKJ;{X5v literal 0 HcmV?d00001 diff --git a/tests/data/globbiomass/N00E020_agb.zip b/tests/data/globbiomass/N00E020_agb.zip new file mode 100644 index 0000000000000000000000000000000000000000..ed291b6ac637c229d3a360beaba8271e3ceadb42 GIT binary patch literal 33758 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

cDRJZLhS@8B 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 Syjj^mikN_~4oG`7gLnX8ECLJw literal 0 HcmV?d00001 diff --git a/tests/data/globbiomass/N00E020_agb_err.tif b/tests/data/globbiomass/N00E020_agb_err.tif new file mode 100644 index 0000000000000000000000000000000000000000..37c9a6101c7b48001966ddfbaa23923943abaca9 GIT binary patch literal 16758 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 literal 0 HcmV?d00001 diff --git a/tests/data/globbiomass/data.py b/tests/data/globbiomass/data.py new file mode 100644 index 00000000000..3577a568f3c --- /dev/null +++ b/tests/data/globbiomass/data.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 + +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import hashlib +import os +import random +import zipfile + +import numpy as np +import rasterio + +np.random.seed(0) +random.seed(0) + +SIZE = 64 + + +files = [{"image": "N00E020_agb.tif"}, {"image": "N00E020_agb_err.tif"}] + + +def create_file(path: str, dtype: str, num_channels: int) -> None: + profile = {} + profile["driver"] = "GTiff" + profile["dtype"] = dtype + profile["count"] = num_channels + profile["crs"] = "epsg:4326" + profile["transform"] = rasterio.transform.from_bounds(0, 0, 1, 1, 1, 1) + profile["height"] = SIZE + profile["width"] = SIZE + + Z = np.random.randint( + np.iinfo(profile["dtype"]).max, size=(1, SIZE, SIZE), dtype=profile["dtype"] + ) + src = rasterio.open(path, "w", **profile) + src.write(Z) + + +if __name__ == "__main__": + zipfilename = "N00E020_agb.zip" + filesToZip = [] + + for file_dict in files: + path = file_dict["image"] + # remove old data + if os.path.exists(path): + os.remove(path) + # Create mask file + create_file(path, dtype="int32", num_channels=1) + filesToZip.append(path) + + # Compress data + with zipfile.ZipFile(zipfilename, "w") as zip: + for file in filesToZip: + zip.write(file, arcname=file) + + # Compute checksums + with open(zipfilename, "rb") as f: + md5 = hashlib.md5(f.read()).hexdigest() + print(f"{zipfilename}: {md5}") diff --git a/tests/datasets/test_globbiomass.py b/tests/datasets/test_globbiomass.py new file mode 100644 index 00000000000..2179ed204c5 --- /dev/null +++ b/tests/datasets/test_globbiomass.py @@ -0,0 +1,78 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. + +import os +import shutil +from pathlib import Path +from typing import Generator + +import pytest +import torch +import torch.nn as nn +from _pytest.monkeypatch import MonkeyPatch +from rasterio.crs import CRS + +from torchgeo.datasets import ( + BoundingBox, + GlobBiomass, + IntersectionDataset, + UnionDataset, +) + + +class TestGlobBiomass: + @pytest.fixture + def dataset( + self, monkeypatch: Generator[MonkeyPatch, None, None], tmp_path: Path + ) -> GlobBiomass: + zipfile = "N00E020_agb.zip" + + shutil.copy(os.path.join("tests", "data", "globbiomass", zipfile), tmp_path) + + md5s = {zipfile: "bda282c7e5c9417397ac0463e361208b"} + + monkeypatch.setattr(GlobBiomass, "md5s", md5s) # type: ignore[attr-defined] + root = str(tmp_path) + transforms = nn.Identity() # type: ignore[attr-defined] + return GlobBiomass(root, transforms=transforms, checksum=True) + + def test_getitem(self, dataset: GlobBiomass) -> None: + x = dataset[dataset.bounds] + assert isinstance(x, dict) + assert isinstance(x["crs"], CRS) + assert isinstance(x["mask"], torch.Tensor) + assert isinstance(x["error_mask"], torch.Tensor) + + def test_already_extracted(self, dataset: GlobBiomass) -> None: + GlobBiomass(root=dataset.root) + + def test_not_downloaded(self, tmp_path: Path) -> None: + with pytest.raises(RuntimeError, match="Dataset not found"): + GlobBiomass(str(tmp_path), checksum=True) + + def test_corrupted(self, tmp_path: Path) -> None: + with open(os.path.join(tmp_path, "N00E020_agb.zip"), "w") as f: + f.write("bad") + with pytest.raises(RuntimeError, match="Dataset found, but corrupted."): + GlobBiomass(root=str(tmp_path), checksum=True) + + def test_and(self, dataset: GlobBiomass) -> None: + ds = dataset & dataset + assert isinstance(ds, IntersectionDataset) + + def test_or(self, dataset: GlobBiomass) -> None: + ds = dataset | dataset + assert isinstance(ds, UnionDataset) + + def test_plot(self, dataset: GlobBiomass) -> None: + query = dataset.bounds + x = dataset[query] + dataset.plot(x["mask"]) + dataset.plot(x["error_mask"]) + + def test_invalid_query(self, dataset: GlobBiomass) -> None: + query = BoundingBox(100, 100, 100, 100, 0, 0) + with pytest.raises( + IndexError, match="query: .* not found in index with bounds:" + ): + dataset[query] diff --git a/torchgeo/datasets/__init__.py b/torchgeo/datasets/__init__.py index 0ff68fafff9..8e7f8decc1a 100644 --- a/torchgeo/datasets/__init__.py +++ b/torchgeo/datasets/__init__.py @@ -40,7 +40,7 @@ VisionDataset, ) from .gid15 import GID15 -from .globBiomass import GlobBiomass +from .globbiomass import GlobBiomass from .idtrees import IDTReeS from .inria import InriaAerialImageLabeling from .landcoverai import LandCoverAI diff --git a/torchgeo/datasets/globBiomass.py b/torchgeo/datasets/globbiomass.py similarity index 94% rename from torchgeo/datasets/globBiomass.py rename to torchgeo/datasets/globbiomass.py index 5037860c47b..b2be25bae30 100644 --- a/torchgeo/datasets/globBiomass.py +++ b/torchgeo/datasets/globbiomass.py @@ -9,10 +9,8 @@ from rasterio.crs import CRS -from torchgeo.datasets import BoundingBox - from .geo import RasterDataset -from .utils import check_integrity, extract_archive +from .utils import BoundingBox, check_integrity, extract_archive class GlobBiomass(RasterDataset): @@ -215,7 +213,11 @@ def _verify(self) -> None: # Check if the zip files have already been downloaded pathname = os.path.join(self.root, self.zipfile_glob) if glob.glob(pathname): - self._extract() + for zipfile in glob.iglob(pathname): + filename = os.path.basename(zipfile) + if self.checksum and not check_integrity(zipfile, self.md5s[filename]): + raise RuntimeError("Dataset found, but corrupted.") + extract_archive(zipfile) return raise RuntimeError( @@ -223,12 +225,3 @@ def _verify(self) -> None: "either specify a different `root` directory or make sure you " "have manually downloaded the dataset as suggested in the documentation." ) - - def _extract(self) -> None: - """Extract the dataset files.""" - pathname = os.path.join(self.root, self.zipfile_glob) - for zipfile in glob.iglob(pathname): - filename = os.path.basename(zipfile) - extract_archive(zipfile) - if self.checksum and not check_integrity(zipfile, self.md5s[filename]): - raise RuntimeError("Dataset found, but corrupted.") From 34e99c728fbabf0ac6c79c5e10a9e19b3cf34118 Mon Sep 17 00:00:00 2001 From: nilsleh Date: Sat, 12 Feb 2022 10:47:23 +0100 Subject: [PATCH 03/11] add description and error messages --- torchgeo/datasets/globbiomass.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/torchgeo/datasets/globbiomass.py b/torchgeo/datasets/globbiomass.py index b2be25bae30..94075b06915 100644 --- a/torchgeo/datasets/globbiomass.py +++ b/torchgeo/datasets/globbiomass.py @@ -18,12 +18,12 @@ class GlobBiomass(RasterDataset): The `GlobBiomass dataset consists of global pixel wise aboveground biomass (AGB) and growth stock - volume (GSV) maps. For an elaboration on the methodology, please refer to + volume (GSV) maps. Dataset features: - * estimates of AGB and GSV around the world at 100m per pixel resolution - (~px, ~px) + * estimates of AGB and GSV around the world at ~100m per pixel resolution + (45,000x45,0000 px) * standard error maps of respective measurement at same resolution Dataset format: @@ -48,7 +48,6 @@ class GlobBiomass(RasterDataset): (?P[0-9A-Z]*) _(?P[a-z]{3}) """ - separate_files = True measurements = ["agb", "gsv"] @@ -139,7 +138,8 @@ def __init__( Raises: FileNotFoundError: if no files are found in ``root`` - RuntimeError: if ``download=False`` but dataset is missing or checksum fails + RuntimeError: if dataset is missing or checksum fails + AssertionError: if measurement argument is invalid, or not a str """ self.root = root self.checksum = checksum @@ -203,7 +203,7 @@ def _verify(self) -> None: """Verify the integrity of the dataset. Raises: - RuntimeError: if ``download=False`` but dataset is missing or checksum fails + RuntimeError: if dataset is missing or checksum fails """ # Check if the extracted file already exists pathname = os.path.join(self.root, self.filename_glob) From 5f97fe82becd5ecc099d2bcde5c582c1dcab51b5 Mon Sep 17 00:00:00 2001 From: nilsleh Date: Sat, 12 Feb 2022 10:58:01 +0100 Subject: [PATCH 04/11] doc correction --- torchgeo/datasets/globbiomass.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torchgeo/datasets/globbiomass.py b/torchgeo/datasets/globbiomass.py index 94075b06915..a7fbc1216e2 100644 --- a/torchgeo/datasets/globbiomass.py +++ b/torchgeo/datasets/globbiomass.py @@ -166,7 +166,7 @@ def __getitem__(self, query: BoundingBox) -> Dict[str, Any]: query: (minx, maxx, miny, maxy, mint, maxt) coordinates to index Returns: - sample at index retrieving measurement mask with key 'mask', + sample at index consisting of measurement mask with key 'mask', standard error under 'error_mask' key, crs under 'crs' and query bbox under 'bbox' From a30917cd1e17d0541a7a3f2dda088def40a616c3 Mon Sep 17 00:00:00 2001 From: nilsleh Date: Tue, 15 Feb 2022 22:37:34 +0100 Subject: [PATCH 05/11] added plot method --- tests/datasets/test_globbiomass.py | 9 +++-- torchgeo/datasets/globbiomass.py | 57 +++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 3 deletions(-) diff --git a/tests/datasets/test_globbiomass.py b/tests/datasets/test_globbiomass.py index 2179ed204c5..3d5cc4bf2b1 100644 --- a/tests/datasets/test_globbiomass.py +++ b/tests/datasets/test_globbiomass.py @@ -67,8 +67,13 @@ def test_or(self, dataset: GlobBiomass) -> None: def test_plot(self, dataset: GlobBiomass) -> None: query = dataset.bounds x = dataset[query] - dataset.plot(x["mask"]) - dataset.plot(x["error_mask"]) + dataset.plot(x, suptitle="Test") + + def test_plot_prediction(self, dataset: GlobBiomass) -> None: + query = dataset.bounds + x = dataset[query] + x["prediction"] = x["mask"].clone() + dataset.plot(x, suptitle="Prediction") def test_invalid_query(self, dataset: GlobBiomass) -> None: query = BoundingBox(100, 100, 100, 100, 0, 0) diff --git a/torchgeo/datasets/globbiomass.py b/torchgeo/datasets/globbiomass.py index a7fbc1216e2..3c5612173a2 100644 --- a/torchgeo/datasets/globbiomass.py +++ b/torchgeo/datasets/globbiomass.py @@ -7,7 +7,9 @@ import os from typing import Any, Callable, Dict, Optional +import matplotlib.pyplot as plt from rasterio.crs import CRS +from torch import Tensor from .geo import RasterDataset from .utils import BoundingBox, check_integrity, extract_archive @@ -16,7 +18,7 @@ class GlobBiomass(RasterDataset): """GlobBiomass dataset. - The `GlobBiomass dataset + The `GlobBiomass dataset`_ consists of global pixel wise aboveground biomass (AGB) and growth stock volume (GSV) maps. @@ -225,3 +227,56 @@ def _verify(self) -> None: "either specify a different `root` directory or make sure you " "have manually downloaded the dataset as suggested in the documentation." ) + + def plot( # type: ignore[override] + self, + sample: Dict[str, Tensor], + show_titles: bool = True, + suptitle: Optional[str] = None, + ) -> plt.Figure: + """Plot a sample from the dataset. + + Args: + sample: a sample returned by :meth:`__getitem__` + show_titles: flag indicating whether to show titles above each panel + suptitle: optional string to use as a suptitle + + Returns: + a matplotlib Figure with the rendered sample + """ + mask = sample["mask"].permute(1, 2, 0) + error_mask = sample["error_mask"].permute(1, 2, 0) + + showing_predictions = "prediction" in sample + if showing_predictions: + pred = sample["prediction"].permute(1, 2, 0) + ncols = 3 + else: + ncols = 2 + + fig, axs = plt.subplots(nrows=1, ncols=ncols, figsize=(4, ncols * 4)) + + if showing_predictions: + axs[0].imshow(mask) + axs[0].axis("off") + axs[1].imshow(error_mask) + axs[1].axis("off") + axs[2].imshow(pred) + axs[2].axis("off") + if show_titles: + axs[0].set_title("Mask") + axs[1].set_title("Uncertainty Mask") + axs[2].set_title("Prediction") + else: + axs[0].imshow(mask) + axs[0].axis("off") + axs[1].imshow(error_mask) + axs[1].axis("off") + if show_titles: + axs[0].set_title("Mask") + axs[1].set_title("Uncertainty Mask") + + if suptitle is not None: + plt.suptitle(suptitle) + + return fig From a7bfaa1bdfe34503d92fd111b93f4c91bfd13464 Mon Sep 17 00:00:00 2001 From: nilsleh Date: Tue, 15 Feb 2022 22:45:53 +0100 Subject: [PATCH 06/11] orientation plot figure --- torchgeo/datasets/globbiomass.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torchgeo/datasets/globbiomass.py b/torchgeo/datasets/globbiomass.py index 3c5612173a2..aa8c3d3a116 100644 --- a/torchgeo/datasets/globbiomass.py +++ b/torchgeo/datasets/globbiomass.py @@ -254,7 +254,7 @@ def plot( # type: ignore[override] else: ncols = 2 - fig, axs = plt.subplots(nrows=1, ncols=ncols, figsize=(4, ncols * 4)) + fig, axs = plt.subplots(nrows=1, ncols=ncols, figsize=(ncols * 4, 4)) if showing_predictions: axs[0].imshow(mask) From 9dc4efa0d86b9b7e58f6ff4085023814797a2d05 Mon Sep 17 00:00:00 2001 From: nilsleh Date: Wed, 16 Feb 2022 09:36:20 +0100 Subject: [PATCH 07/11] fix documentation --- torchgeo/datasets/globbiomass.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/torchgeo/datasets/globbiomass.py b/torchgeo/datasets/globbiomass.py index aa8c3d3a116..e349cf3540e 100644 --- a/torchgeo/datasets/globbiomass.py +++ b/torchgeo/datasets/globbiomass.py @@ -18,7 +18,7 @@ class GlobBiomass(RasterDataset): """GlobBiomass dataset. - The `GlobBiomass dataset`_ + The `GlobBiomass dataset `_ consists of global pixel wise aboveground biomass (AGB) and growth stock volume (GSV) maps. @@ -35,12 +35,12 @@ class GlobBiomass(RasterDataset): The data can be manually downloaded from `this website `. + Globbiomass_global_dataset.html>`_. If you use this dataset please cite it with the following citation: * Santoro, M. et al. (2018): GlobBiomass - global datasets of forest biomass. - PANGAEA, https://doi.org/10.1594/PANGAEA.894711 + PANGAEA, https://doi.org/10.1594/PANGAEA.894711 .. versionadded:: 0.3 """ From 4d94283db0016a41c1018b43755728916030147a Mon Sep 17 00:00:00 2001 From: nilsleh Date: Mon, 21 Feb 2022 16:07:33 +0100 Subject: [PATCH 08/11] add compression --- tests/data/globbiomass/N00E020_agb.tif | Bin 16758 -> 22647 bytes tests/data/globbiomass/N00E020_agb.zip | Bin 33758 -> 45590 bytes tests/data/globbiomass/N00E020_agb_err.tif | Bin 16758 -> 22701 bytes tests/data/globbiomass/data.py | 2 ++ tests/datasets/test_globbiomass.py | 2 +- 5 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/data/globbiomass/N00E020_agb.tif b/tests/data/globbiomass/N00E020_agb.tif index 20e355e903c516df14e4f2720d9176c57127d287..9ffa380365fe68afe0e0d99141f59dac85285553 100644 GIT binary patch literal 22647 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 YaiF*jA>jzoFQ%opJ4A|}NnS?~1RgKJ;{X5v diff --git a/tests/data/globbiomass/N00E020_agb.zip b/tests/data/globbiomass/N00E020_agb.zip index ed291b6ac637c229d3a360beaba8271e3ceadb42..141e7600355b31b3d9a61a8cc21ac9231e7157af 100644 GIT binary patch literal 45590 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

AJ$QVZuAhIzaUS>vb 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 S`O}S1_&orx1MmIx+y4dUa#(Eu literal 33758 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

cDRJZLhS@8B z?K@bNm<@>xnq%H@zdK1tIkiBry3f3Ym_@89{smhig=F$$sS@QkVX3#p`GyUJY<_DP z(9SpU2mktJ5wm?Nh<#Awgs5tEx%GSl1~Wi*$jYf5f*{D z2)?5)OvwHrJTx1kQptE6v|!=jI#X9=@cpvKp|Z7wlsW#Ll)su@xEJ51`CG@u0Q~_* zy{GW@T1DXL(0mpT5+Ew}O2;-YEm3OPKz*u__ z2c+ANPPQPBGIPaLEaGXkmE|~;k<|4HaiZ=O!JVW`BAnxoJA2HDd7=)o5vQ&7cinW* zAhaP-^wfO_$?F{ezx`cJppuqPc>P$c&38-V_#w1EhSobUeAmVK$GuBK9xC5RtzkNp zznu;5#IGlmD7)^U1OYM2pcNP@sQ@40jL0NpHnK;d4qwpIUU(-IMN9{?3fHNTC=r+H}{J$~rPeywg%QQXfc>@$Qm4h^)I-?R>N z`#BK$MkIyM!(Px9AjIOmX`(nCd>|Lt$Pzx77SP!e7PtHux94E?YW`TA3C z>#%EG{25$(^wlyhw8)$GrrSx?$v;2Q+xDr;lTV@;n_Jg%kf&?h-{};U?}YZFt9lD9 z`E17lC*<+4NKA9!@z^5-N97-|A?#9dv=@vU#9Xy8Nw(0(sm~S5Yy8x`pYo$v?w0Z){-(qg?k01hY;WQ-&W4qh z=U=lsG9}wDKlKVQxM|b6kK`jOJUx>y+{+bNp`g)}Vpl|n^bR1Dv&;Qzl!pjv<0RH@ zPKmNNsM)~R&&Mh6{7hHm4kHmgTR&n_6?-O54`}D9hRwOf)XgY8%nsGZOfJj!UcNPn z@2rFxIYDhN0@oOAjI`xfL=Ua-deSXI-&6vuCarWg6W(xsF>H!|BSR3y z%W}wEv#YSbe>RB(E1+d2OrU{xW>oB1<*YCtq57191Ec8asDz+Li)XT9Vn7V6Pt&pR zRue~c%zOZIh%quru0x(TUIlp&Eo;hiGX`swC!$ht0!$C+VkMaC{}VS?DGzaX^D@3! z@X?~{mJ>2qn8d_EQv}{`s*CsgWf;5X)mvuy-*V#3jF35Kp)!{dilf$~x6$`^NMJ)a z%UC8EKh zP&AM^8G~Gy=(Cj1qgY=K@WR;SZh|9=GGrGiOPv4QQ}DEF?h7=nqST6hXRl%%5)iR~ zn=v?HCg{F#y^p)u{A6+))EcaK{S^vv{r5cQT`>JF8bC(*B9cShzSJ7-bBXOwOCtK? z!o=FXU?Os02xw0Fl(%H4rx0u#M~$5-b(vawfSgqJcTqUs4-v)A!!r?;vH(XE9pAZ; zXb$E``d7fiAl6x0t@BqwB9}8|2B&vwIKxT~V2oU82ylJ~`C#&UW<^LKd4PJO&mu1$ z$Yu_Upds)I1ir}8+pgu}+e-fA>8q*Ft*0l-_NOC5{X;9t`jL~I_0o$C`Z`3TkM?xoLXfNZJpo2>{A`6Tl&{-0VuvQd-AzO0SQH*5czNE@80Ut-cL^q&_6#T7abt@4cvZg@h# zT~VAcY3#0ZxJ+6oK8Ql1KBK^pnJq1wN8`;dJ@WD#(fDz(77DEPNa1gF7iw2)2W4M5 zkH{I`vlnXsBfs@X_uh4K=s6{NpkO@mJH5IO{PlbCcSSogwU!a|Ljo-_<*cPruIfFO z*Q+aNLAqM;eI6^W*VMP!|ix6rN>qbKdkiBdknLqIS26|XtTy^a%MjBJ;^%YU^jehe>F zDFW^(vh~tQHjtBq-+4t%#}&fpByh3?N;-|iDCvnrpKq5UBwCVSUuES&o~BV41y`3t zph&3%`@ineGvE>n=w$tv<%3N!P}99D9m+Gn)bDN4=wzGYPltJog9c z4o%`LhE1ircxUN>=SL2++?{%Gz=F);9JhWY__sgVqAc?s=_Kj)uX>v%$1Fo9k?NRq zKTds=xd&zx$%&l=TgDeYk>rBILCthszCT&{1G;x^oF7SCNh@48al_qFqQG^A+@ z)QAGG{L@7qL`L9BjU*8?p;@pH**M<1at_@Xgd-W5$vRTW6rqT`~&PH4&-}%6%u8kBd2ssTU4`4m(?$d4-q;WlTBVIBHio&@Gv%NOE6e=50)gjR*X~ql zFq{g-9ypKm#7}Q1Sh*o{T43SNC(Xe;Dz}k1RV1)3kNRJ>)UK&gl%=7B9ai3a0XJ$v zsT#q^V3o)o8w)87@k>ifUUx1_*~cQk!JnT$jaLu2mb4hfdWTM|Gpz7KB1%)|;2i3= zFl`fQ{$1pUp_6l2GM{n{885t4gn|bOP*ajtB)7YVm7hY`jE^qilnymVR!rfhq5rLt zNR8xwP?I7~gBIt%!M1t0p%JeETEg@>1C)5d^01xhxQjs{5c+)ehBuFoN z2+mTXi{mGlIn*Vm)X?vhn5TGegYzH$2ye7T9?6O1q}3uP2IP1JvHW6)_TaSMOIVu+ zN4ybV4DXo3#^CzWk%+*~Xq8Q@HGEklY{H`1X4_;=x9nM4OjUNQ`El(XyDtOJZF8m@ zylwAl!Gh51%s)1QEGLpM##63#vi&!CvLa*Ztdiyb?sb<5J14@P_|60%LT!Cly=Fol z^;NY(d?ezxWce=y4bj=yvi|eqV9g_hVxg3&!cIFYnZkc}>4*0hyg3bO^w7$_j;B`V z)Z%+Pq-~B!xh&-=UcDMOuX6oH0gAml)+CfY@o_sE+}5T#(wqP#UPoR@;H`NB{=D7_ zsfWRjbtSZmQJmVF1XJ5j|5EQ?Ju;gXKrA;2TpPJnWKp*@l~iFV+{T?*4o_^sl5C@U zn2~CC%Yk2?G*o8$sUAineHGGbZ9+=)f!}YmEMHYOXhjzfx)<&!Mqmv!!F5erRxgju zQEBXAQSoIgQD3j7nDQ0YUGO`9RWf#Y1w!m{6C!qtAsdZ3R&MV~z_z0_|D4C<N3O*x$aFiRbsdM{73d#OrxJRbGLMj+9(f^`0;L&##WtOT=RyRd{r+f3$dH8-M{fFmJibd7^wf6CBE(}SdHIqRV4<-N5J)Y;B9R7`%xTa7 zlSv@;**#yx_~3lN60bx(8VqRfXP#eyLEP?ZmCZ zOV7d*L_da5ex^S&UI7;QvB}f%jAJOcOwiQk8QJ_Xspu!lXYl7D)0QK6E@dEF@BVD; zG4U9AtllnQn}rE`1^_WV$@yzMbvGycprq9E;9Z)K(0?mZ)Uu?aSR6oyh>ftSVIu^L_y&-Zy z!ox~Rp$P}qs+tm(L<$eT)L0jn^F|Y&$eRo8*&F)A2xS+=BW}l_+7m4H*Y2?K#Qd@R zkGyZJ16|r&6v75(_g=TlGCzOC#r%Yo&fO=8(SM^yXkiLZDRf+-fh^-U$RkuVlB!)K%^lRJ9OT4xL95%%6*?OpW-Z zzs}<=3LF?wLZXon1FBJYNbTKV@9-Bk^vnmWe~L!*{oOoO_sV}UvYn1gsgm#u9eLb0 z9_Sz7-J)+~=2N+}`wfbVm5;(-+KJBsKZ**>FVtT|CmS7Y)Oz{3cRgK;+^|@u$X> z_hRvn`kZ2O95U6ka!0^7%$hDm%$&Bj-ns;J*VUniw{lQ|KOJF-wRzOQ;s~j7sT~^4 zDf!UF;7h2qQZoDA*EPO3nH^lJFL?b3uRlQBq%G|RzQP5v$$Jd)<%?mv6`Jvwb(BNz z-jVz$6#yw@dY_i8FeUEM9EZikqi&7gKzb1)M4Tn=$^+rCb3$UnBh;*qDo*(|>Ar0*D20>Ycn@x!nytH2lSM82g(*q?#hE68!ZcyzWfz_npst7gwN15}Hy#e*X`xNBB?1Cv--Y&8BnuHlZ_3IGICrK%Ut50fvpGvo(o2lo^4DW3M^$k;`}bBQHe5{h_Y zP0-qJ28V>d{SIS4KR90UZ!`QLwU)8czs(|$Qf>VSiUSIN|3iCH_l`6XKLq-)VNB(l zyawK#(O{Gr1xHvr9~K*irA0yog)t0!hb<|Aha9 zlz8h`wb1oYwDTksP8$jRNw$*%I!AAASq7`GN&*I$V{ySSWxWx%*`Qv$P)rH>$Ta5< z1OKnWeWQWIyVTJ(RG@g*I-y%dl7f#Oa&mp_Pq+J3fOqdKtfbFE?gC`WfUZByZpaoX zRG>YbUb^LHZy0AXjo1d_G=*yD-EiNj+T+d$F|IMCzhs(G-5&gMvyWrvkP zVl~-0?HuhOP0k;>pF=^N3N|;9UN-#8t%9y@PZWNo5;W}Whn<%PTFqiNsGO)eDFTNL z(lqH7oAr-}g-G?;G?ZG}D1vM>inWBt*Ck1PjtPAeV7TGiZD>WG3F9D|(OVYw2L15v zcT2jU=$QMec=@l_xnai){T}5qeP%B*HEn;O(vWqkkI4UI-{;aRe~8oJE4PXJQEe_` zIEI;{*W^Ci`=;2z;~a3)24*$?v#i8hB*mARK%(O-7(wEVx|FD-11{2cuTG=?jO<%Vo- z<%6@9U=;DZ{g1ll#g5+ULq)<9rX3QO8fLKu9~y1s;EER7LW8+nUBF3hR)ShlUNKO4 ziy`V)a2^_~$*d@^;UMGr__gR)43u7n`dxf@$6t5;lmOec{1BT`V@hz~%x|{0cfRn7 z>4%wwD$OcTq8THfr%n zZbf!I-=8sYwsEt4u&q%^T_o@PypH=js`C?aMGv-q$!wSElN7mm%yorTqLqiqDV-A2O<4_lT1*1G z8JR?wMZjkdg!FiaC?7a?5q3}mKhlW=TN*(eq+=UEM>e2qMnB~NrhiN0Vn-CsurnV5 Syjj^mikN_~4oG`7gLnX8ECLJw diff --git a/tests/data/globbiomass/N00E020_agb_err.tif b/tests/data/globbiomass/N00E020_agb_err.tif index 37c9a6101c7b48001966ddfbaa23923943abaca9..daad14d4230a1b18aa1fd330a38c4acb9c795f42 100644 GIT binary patch literal 22701 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 diff --git a/tests/data/globbiomass/data.py b/tests/data/globbiomass/data.py index 3577a568f3c..0311e8d485a 100644 --- a/tests/data/globbiomass/data.py +++ b/tests/data/globbiomass/data.py @@ -29,6 +29,8 @@ def create_file(path: str, dtype: str, num_channels: int) -> None: profile["transform"] = rasterio.transform.from_bounds(0, 0, 1, 1, 1, 1) profile["height"] = SIZE profile["width"] = SIZE + profile["compress"] = "lzw" + profile["predictor"] = 2 Z = np.random.randint( np.iinfo(profile["dtype"]).max, size=(1, SIZE, SIZE), dtype=profile["dtype"] diff --git a/tests/datasets/test_globbiomass.py b/tests/datasets/test_globbiomass.py index 3d5cc4bf2b1..423ae2d0131 100644 --- a/tests/datasets/test_globbiomass.py +++ b/tests/datasets/test_globbiomass.py @@ -29,7 +29,7 @@ def dataset( shutil.copy(os.path.join("tests", "data", "globbiomass", zipfile), tmp_path) - md5s = {zipfile: "bda282c7e5c9417397ac0463e361208b"} + md5s = {zipfile: "7b7b981149aa31a099f453fef32b644f"} monkeypatch.setattr(GlobBiomass, "md5s", md5s) # type: ignore[attr-defined] root = str(tmp_path) From 6d33a45bc96c9ca75f876b3251b226bf7409638e Mon Sep 17 00:00:00 2001 From: nilsleh Date: Mon, 21 Feb 2022 16:12:42 +0100 Subject: [PATCH 09/11] camel --- tests/data/globbiomass/data.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/data/globbiomass/data.py b/tests/data/globbiomass/data.py index 0311e8d485a..3073a501721 100644 --- a/tests/data/globbiomass/data.py +++ b/tests/data/globbiomass/data.py @@ -41,7 +41,7 @@ def create_file(path: str, dtype: str, num_channels: int) -> None: if __name__ == "__main__": zipfilename = "N00E020_agb.zip" - filesToZip = [] + files_to_zip = [] for file_dict in files: path = file_dict["image"] @@ -50,11 +50,11 @@ def create_file(path: str, dtype: str, num_channels: int) -> None: os.remove(path) # Create mask file create_file(path, dtype="int32", num_channels=1) - filesToZip.append(path) + files_to_zip.append(path) # Compress data with zipfile.ZipFile(zipfilename, "w") as zip: - for file in filesToZip: + for file in files_to_zip: zip.write(file, arcname=file) # Compute checksums From 6bf5b4041e45d5dc103e65d5943fbb8ad395b3c2 Mon Sep 17 00:00:00 2001 From: nilsleh Date: Wed, 23 Feb 2022 16:37:24 +0100 Subject: [PATCH 10/11] gsv fake data and filename glob --- tests/data/globbiomass/N00E020_agb.zip | Bin 45590 -> 45590 bytes tests/data/globbiomass/N00E020_gsv.zip | Bin 0 -> 45624 bytes tests/data/globbiomass/data.py | 47 +++++++++++++------------ tests/datasets/test_globbiomass.py | 16 ++++++--- torchgeo/datasets/globbiomass.py | 2 +- 5 files changed, 37 insertions(+), 28 deletions(-) create mode 100644 tests/data/globbiomass/N00E020_gsv.zip diff --git a/tests/data/globbiomass/N00E020_agb.zip b/tests/data/globbiomass/N00E020_agb.zip index 141e7600355b31b3d9a61a8cc21ac9231e7157af..b002612d95f51d69a756ebc6514c886ccea6a2e5 100644 GIT binary patch delta 49 wcmbRCglXCnCf)#VW)=|!5GZU4-^jZ#f*D9}-WYKg%$PiJqZLSC^0|#30FQMM{r~^~ delta 49 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 z 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 literal 0 HcmV?d00001 diff --git a/tests/data/globbiomass/data.py b/tests/data/globbiomass/data.py index 3073a501721..c174991b8bd 100644 --- a/tests/data/globbiomass/data.py +++ b/tests/data/globbiomass/data.py @@ -17,7 +17,10 @@ SIZE = 64 -files = [{"image": "N00E020_agb.tif"}, {"image": "N00E020_agb_err.tif"}] +files = { + "agb": ["N00E020_agb.tif", "N00E020_agb_err.tif"], + "gsv": ["N00E020_gsv.tif", "N00E020_gsv_err.tif"], +} def create_file(path: str, dtype: str, num_channels: int) -> None: @@ -40,24 +43,24 @@ def create_file(path: str, dtype: str, num_channels: int) -> None: if __name__ == "__main__": - zipfilename = "N00E020_agb.zip" - files_to_zip = [] - - for file_dict in files: - path = file_dict["image"] - # remove old data - if os.path.exists(path): - os.remove(path) - # Create mask file - create_file(path, dtype="int32", num_channels=1) - files_to_zip.append(path) - - # Compress data - with zipfile.ZipFile(zipfilename, "w") as zip: - for file in files_to_zip: - zip.write(file, arcname=file) - - # Compute checksums - with open(zipfilename, "rb") as f: - md5 = hashlib.md5(f.read()).hexdigest() - print(f"{zipfilename}: {md5}") + + for measurement, file_paths in files.items(): + zipfilename = "N00E020_{}.zip".format(measurement) + files_to_zip = [] + for path in file_paths: + # remove old data + if os.path.exists(path): + os.remove(path) + # Create mask file + create_file(path, dtype="int32", num_channels=1) + files_to_zip.append(path) + + # Compress data + with zipfile.ZipFile(zipfilename, "w") as zip: + for file in files_to_zip: + zip.write(file, arcname=file) + + # Compute checksums + with open(zipfilename, "rb") as f: + md5 = hashlib.md5(f.read()).hexdigest() + print(f"{zipfilename}: {md5}") diff --git a/tests/datasets/test_globbiomass.py b/tests/datasets/test_globbiomass.py index 423ae2d0131..2a1ea38918d 100644 --- a/tests/datasets/test_globbiomass.py +++ b/tests/datasets/test_globbiomass.py @@ -25,11 +25,17 @@ class TestGlobBiomass: def dataset( self, monkeypatch: Generator[MonkeyPatch, None, None], tmp_path: Path ) -> GlobBiomass: - zipfile = "N00E020_agb.zip" - - shutil.copy(os.path.join("tests", "data", "globbiomass", zipfile), tmp_path) - - md5s = {zipfile: "7b7b981149aa31a099f453fef32b644f"} + shutil.copy( + os.path.join("tests", "data", "globbiomass", "N00E020_agb.zip"), tmp_path + ) + shutil.copy( + os.path.join("tests", "data", "globbiomass", "N00E020_gsv.zip"), tmp_path + ) + + md5s = { + "N00E020_agb.zip": "22e11817ede672a2a76b8a5588bc4bf4", + "N00E020_gsv.zip": "e79bf051ac5d659cb21c566c53ce7b98", + } monkeypatch.setattr(GlobBiomass, "md5s", md5s) # type: ignore[attr-defined] root = str(tmp_path) diff --git a/torchgeo/datasets/globbiomass.py b/torchgeo/datasets/globbiomass.py index e349cf3540e..58c196edccd 100644 --- a/torchgeo/datasets/globbiomass.py +++ b/torchgeo/datasets/globbiomass.py @@ -154,7 +154,7 @@ def __init__( ) self.measurement = measurement - self.filename_glob = "*0_{}*[!zip]".format(self.measurement) + self.filename_glob = "*0_{}*.tif".format(self.measurement) self.zipfile_glob = "*0_{}.zip".format(self.measurement) self._verify() From 90e0eb1f73a60af7e23ddf5543ec4abb74287162 Mon Sep 17 00:00:00 2001 From: nilsleh Date: Fri, 25 Feb 2022 17:13:33 +0100 Subject: [PATCH 11/11] 2 channel tensor and requested changes --- tests/datasets/test_globbiomass.py | 1 - torchgeo/datasets/globbiomass.py | 26 ++++++++++++-------------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/tests/datasets/test_globbiomass.py b/tests/datasets/test_globbiomass.py index 2a1ea38918d..d2d598d4449 100644 --- a/tests/datasets/test_globbiomass.py +++ b/tests/datasets/test_globbiomass.py @@ -47,7 +47,6 @@ def test_getitem(self, dataset: GlobBiomass) -> None: assert isinstance(x, dict) assert isinstance(x["crs"], CRS) assert isinstance(x["mask"], torch.Tensor) - assert isinstance(x["error_mask"], torch.Tensor) def test_already_extracted(self, dataset: GlobBiomass) -> None: GlobBiomass(root=dataset.root) diff --git a/torchgeo/datasets/globbiomass.py b/torchgeo/datasets/globbiomass.py index 58c196edccd..6cd0f2dbee7 100644 --- a/torchgeo/datasets/globbiomass.py +++ b/torchgeo/datasets/globbiomass.py @@ -8,8 +8,8 @@ from typing import Any, Callable, Dict, Optional import matplotlib.pyplot as plt +import torch from rasterio.crs import CRS -from torch import Tensor from .geo import RasterDataset from .utils import BoundingBox, check_integrity, extract_archive @@ -46,6 +46,7 @@ class GlobBiomass(RasterDataset): """ is_image = False + filename_regex = r"""^ (?P[0-9A-Z]*) _(?P[a-z]{3}) @@ -168,9 +169,8 @@ def __getitem__(self, query: BoundingBox) -> Dict[str, Any]: query: (minx, maxx, miny, maxy, mint, maxt) coordinates to index Returns: - sample at index consisting of measurement mask with key 'mask', - standard error under 'error_mask' key, crs under 'crs' and - query bbox under 'bbox' + sample at index consisting of measurement mask with 2 channels, + where the first is the measurement and the second the error map Raises: IndexError: if query is not found in the index @@ -189,12 +189,9 @@ def __getitem__(self, query: BoundingBox) -> Dict[str, Any]: std_error_paths = [f for f in filepaths if "err" in f] std_err_mask = self._merge_files(std_error_paths, query) - sample = { - "mask": mask, - "error_mask": std_err_mask, - "crs": self.crs, - "bbox": query, - } + mask = torch.cat((mask, std_err_mask), dim=0) # type: ignore[attr-defined] + + sample = {"mask": mask, "crs": self.crs, "bbox": query} if self.transforms is not None: sample = self.transforms(sample) @@ -230,7 +227,7 @@ def _verify(self) -> None: def plot( # type: ignore[override] self, - sample: Dict[str, Tensor], + sample: Dict[str, Any], show_titles: bool = True, suptitle: Optional[str] = None, ) -> plt.Figure: @@ -244,12 +241,13 @@ def plot( # type: ignore[override] Returns: a matplotlib Figure with the rendered sample """ - mask = sample["mask"].permute(1, 2, 0) - error_mask = sample["error_mask"].permute(1, 2, 0) + tensor = sample["mask"] + mask = tensor[0, ...] + error_mask = tensor[1, ...] showing_predictions = "prediction" in sample if showing_predictions: - pred = sample["prediction"].permute(1, 2, 0) + pred = sample["prediction"][0, ...] ncols = 3 else: ncols = 2