From 625a7a93eab500a970bff8e0ba130e9adbf9f7cd Mon Sep 17 00:00:00 2001 From: alhridoy Date: Sun, 22 Oct 2023 13:42:33 -0600 Subject: [PATCH 1/8] Updated ChesapeakeCVPR to use NLCD colormap --- torchgeo/datasets/chesapeake.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/torchgeo/datasets/chesapeake.py b/torchgeo/datasets/chesapeake.py index 5dd3acb1b97..a07c9cf9dcd 100644 --- a/torchgeo/datasets/chesapeake.py +++ b/torchgeo/datasets/chesapeake.py @@ -22,7 +22,7 @@ from matplotlib.figure import Figure from rasterio.crs import CRS from torch import Tensor - +from .nlcd import NLCD from .geo import GeoDataset, RasterDataset from .utils import BoundingBox, download_url, extract_archive @@ -574,15 +574,15 @@ def __init__( self.cache = cache self.download = download self.checksum = checksum - + self.cmap = NLCD.cmap self._verify() super().__init__(transforms) - lc_colors = np.zeros((max(self.lc_cmap.keys()) + 1, 4)) - lc_colors[list(self.lc_cmap.keys())] = list(self.lc_cmap.values()) - lc_colors = lc_colors[:, :3] / 255 - self._lc_cmap = ListedColormap(lc_colors) + nlcd_colors = np.zeros((max(self.nlcd_cmap.keys()) + 1, 4)) + nlcd_colors[list(self.nlcd_cmap.keys())] = list(self.lc_cmap.values()) + nlcd_colors = nlcd_colors[:, :3] / 255 + self._nlcd_cmap = ListedColormap(nlcd_colors) nlcd_colors = np.zeros((max(self.nlcd_cmap.keys()) + 1, 4)) nlcd_colors[list(self.nlcd_cmap.keys())] = list(self.nlcd_cmap.values()) @@ -618,7 +618,9 @@ def __init__( "prior_from_cooccurrences_101_31_no_osm_no_buildings": prior_fn, # noqa: E501 }, ) - + @property + def _nlcd_cmap(self): + return self.cmap def __getitem__(self, query: BoundingBox) -> dict[str, Any]: """Retrieve image/mask and metadata indexed by query. From ca1b6d75376fbbedefabb043dd303bc484c1bfbf Mon Sep 17 00:00:00 2001 From: alhridoy Date: Mon, 13 Nov 2023 20:00:16 -0700 Subject: [PATCH 2/8] Reused NLCD colormap in ChesapeakeCVPR dataset --- torchgeo/datasets/chesapeake.py | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/torchgeo/datasets/chesapeake.py b/torchgeo/datasets/chesapeake.py index a07c9cf9dcd..8837f9c8c7c 100644 --- a/torchgeo/datasets/chesapeake.py +++ b/torchgeo/datasets/chesapeake.py @@ -121,7 +121,6 @@ def __init__( self.paths = paths self.download = download self.checksum = checksum - self._verify() colors = [] @@ -579,15 +578,10 @@ def __init__( super().__init__(transforms) - nlcd_colors = np.zeros((max(self.nlcd_cmap.keys()) + 1, 4)) - nlcd_colors[list(self.nlcd_cmap.keys())] = list(self.lc_cmap.values()) - nlcd_colors = nlcd_colors[:, :3] / 255 - self._nlcd_cmap = ListedColormap(nlcd_colors) - - nlcd_colors = np.zeros((max(self.nlcd_cmap.keys()) + 1, 4)) - nlcd_colors[list(self.nlcd_cmap.keys())] = list(self.nlcd_cmap.values()) - nlcd_colors = nlcd_colors[:, :3] / 255 - self._nlcd_cmap = ListedColormap(nlcd_colors) + lc_colors = np.zeros((max(self.lc_cmap.keys()) + 1, 4)) + lc_colors[list(self.lc_cmap.keys())] = list(self.lc_cmap.values()) + lc_colors = lc_colors[:, :3] / 255 + self._lc_cmap = ListedColormap(lc_colors) # Add all tiles into the index in epsg:3857 based on the included geojson mint: float = 0 @@ -618,9 +612,7 @@ def __init__( "prior_from_cooccurrences_101_31_no_osm_no_buildings": prior_fn, # noqa: E501 }, ) - @property - def _nlcd_cmap(self): - return self.cmap + def __getitem__(self, query: BoundingBox) -> dict[str, Any]: """Retrieve image/mask and metadata indexed by query. @@ -795,7 +787,7 @@ def plot( img = mask[:, :, 0] mask = mask[:, :, 1:] axs[i].imshow( - img, vmin=0, vmax=95, cmap=self._nlcd_cmap, interpolation="none" + img, vmin=0, vmax=95, cmap=self.cmap, interpolation="none" ) axs[i].axis("off") elif layer == "lc": From 70dd625cfad40b00c79c0cbc2f85d84c3ece9034 Mon Sep 17 00:00:00 2001 From: alhridoy Date: Wed, 15 Nov 2023 11:26:31 -0700 Subject: [PATCH 3/8] Updated ChesapeakeCVPR to use NLCD colormap --- torchgeo/datasets/chesapeake.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/torchgeo/datasets/chesapeake.py b/torchgeo/datasets/chesapeake.py index 8837f9c8c7c..6e3b703e97d 100644 --- a/torchgeo/datasets/chesapeake.py +++ b/torchgeo/datasets/chesapeake.py @@ -22,10 +22,9 @@ from matplotlib.figure import Figure from rasterio.crs import CRS from torch import Tensor -from .nlcd import NLCD from .geo import GeoDataset, RasterDataset from .utils import BoundingBox, download_url, extract_archive - +from .nlcd import NLCD class Chesapeake(RasterDataset, abc.ABC): """Abstract base class for all Chesapeake datasets. @@ -573,7 +572,6 @@ def __init__( self.cache = cache self.download = download self.checksum = checksum - self.cmap = NLCD.cmap self._verify() super().__init__(transforms) @@ -583,6 +581,11 @@ def __init__( lc_colors = lc_colors[:, :3] / 255 self._lc_cmap = ListedColormap(lc_colors) + nlcd_colors = np.zeros((max(NLCD.cmap.keys()) + 1, 4)) + nlcd_colors[list(NLCD.cmap.keys())] = list(NLCD.cmap.values()) + nlcd_colors = nlcd_colors[:, :3] / 255 + self._nlcd_cmap = ListedColormap(nlcd_colors) + # Add all tiles into the index in epsg:3857 based on the included geojson mint: float = 0 maxt: float = sys.maxsize From 770b214cb54236f6b93c0e1b471a53c816c7b562 Mon Sep 17 00:00:00 2001 From: Al-Ekram Elahee Hridoy Date: Wed, 15 Nov 2023 11:55:43 -0700 Subject: [PATCH 4/8] Update chesapeake.py --- torchgeo/datasets/chesapeake.py | 1 - 1 file changed, 1 deletion(-) diff --git a/torchgeo/datasets/chesapeake.py b/torchgeo/datasets/chesapeake.py index 3959450d898..04ff6170e6d 100644 --- a/torchgeo/datasets/chesapeake.py +++ b/torchgeo/datasets/chesapeake.py @@ -23,7 +23,6 @@ from rasterio.crs import CRS from torch import Tensor from .geo import GeoDataset, RasterDataset -from .utils import BoundingBox, download_url, extract_archive from .nlcd import NLCD from .utils import BoundingBox, DatasetNotFoundError, download_url, extract_archive From f256b324bb6eb5a532142bac5d839139a5bde42e Mon Sep 17 00:00:00 2001 From: alhridoy Date: Tue, 16 Jan 2024 00:42:14 -0700 Subject: [PATCH 5/8] updated as suggested --- torchgeo/datasets/chesapeake.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/torchgeo/datasets/chesapeake.py b/torchgeo/datasets/chesapeake.py index 6e3b703e97d..847bfc74955 100644 --- a/torchgeo/datasets/chesapeake.py +++ b/torchgeo/datasets/chesapeake.py @@ -22,9 +22,10 @@ from matplotlib.figure import Figure from rasterio.crs import CRS from torch import Tensor + from .geo import GeoDataset, RasterDataset from .utils import BoundingBox, download_url, extract_archive -from .nlcd import NLCD + class Chesapeake(RasterDataset, abc.ABC): """Abstract base class for all Chesapeake datasets. @@ -120,6 +121,7 @@ def __init__( self.paths = paths self.download = download self.checksum = checksum + self._verify() colors = [] @@ -790,7 +792,7 @@ def plot( img = mask[:, :, 0] mask = mask[:, :, 1:] axs[i].imshow( - img, vmin=0, vmax=95, cmap=self.cmap, interpolation="none" + img, vmin=0, vmax=95, cmap=self._nlcd_cmap, interpolation="none" ) axs[i].axis("off") elif layer == "lc": From 74287b2e592a82b931f320bf5558682df80e4456 Mon Sep 17 00:00:00 2001 From: alhridoy Date: Tue, 16 Jan 2024 21:07:05 -0700 Subject: [PATCH 6/8] Fixed NLCD colors --- torchgeo/datasets/chesapeake.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/torchgeo/datasets/chesapeake.py b/torchgeo/datasets/chesapeake.py index 8f921646a96..86642ad286d 100644 --- a/torchgeo/datasets/chesapeake.py +++ b/torchgeo/datasets/chesapeake.py @@ -573,8 +573,8 @@ def __init__( lc_colors = lc_colors[:, :3] / 255 self._lc_cmap = ListedColormap(lc_colors) - nlcd_colors = np.zeros((max(NLCD.cmap.keys()) + 1, 4)) - nlcd_colors[list(NLCD.cmap.keys())] = list(NLCD.cmap.values()) + nlcd_colors = np.zeros((max(self.nlcd_cmap.keys()) + 1, 4)) + nlcd_colors[list(self.nlcd_cmap.keys())] = list(self.nlcd_cmap.values()) nlcd_colors = nlcd_colors[:, :3] / 255 self._nlcd_cmap = ListedColormap(nlcd_colors) From a9288673d36a29fff37198cbf65cd755be2f8105 Mon Sep 17 00:00:00 2001 From: alhridoy Date: Wed, 17 Jan 2024 14:17:08 -0700 Subject: [PATCH 7/8] Updated as suggested --- torchgeo/datasets/chesapeake.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/torchgeo/datasets/chesapeake.py b/torchgeo/datasets/chesapeake.py index 86642ad286d..c74cea5addf 100644 --- a/torchgeo/datasets/chesapeake.py +++ b/torchgeo/datasets/chesapeake.py @@ -24,6 +24,7 @@ from torch import Tensor from .geo import GeoDataset, RasterDataset +from .nlcd import NLCD from .utils import BoundingBox, DatasetNotFoundError, download_url, extract_archive @@ -564,6 +565,7 @@ def __init__( self.cache = cache self.download = download self.checksum = checksum + self._verify() super().__init__(transforms) @@ -573,8 +575,8 @@ def __init__( lc_colors = lc_colors[:, :3] / 255 self._lc_cmap = ListedColormap(lc_colors) - nlcd_colors = np.zeros((max(self.nlcd_cmap.keys()) + 1, 4)) - nlcd_colors[list(self.nlcd_cmap.keys())] = list(self.nlcd_cmap.values()) + nlcd_colors = np.zeros((max(NLCD.cmap.keys()) + 1, 4)) + nlcd_colors[list(NLCD.cmap.keys())] = list(NLCD.cmap.values()) nlcd_colors = nlcd_colors[:, :3] / 255 self._nlcd_cmap = ListedColormap(nlcd_colors) From de54b15365dd1f8b02e52929ce8b63aaa3732b07 Mon Sep 17 00:00:00 2001 From: alhridoy Date: Fri, 19 Jan 2024 22:31:37 -0700 Subject: [PATCH 8/8] removed nlcd_cmap attribute from ChesapeakeCVPR class --- torchgeo/datasets/chesapeake.py | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/torchgeo/datasets/chesapeake.py b/torchgeo/datasets/chesapeake.py index c74cea5addf..f92d1e21df6 100644 --- a/torchgeo/datasets/chesapeake.py +++ b/torchgeo/datasets/chesapeake.py @@ -440,26 +440,6 @@ class ChesapeakeCVPR(GeoDataset): 15: (0, 0, 0, 0), } - nlcd_cmap = { - 0: (0, 0, 0, 0), - 11: (70, 107, 159, 255), - 12: (209, 222, 248, 255), - 21: (222, 197, 197, 255), - 22: (217, 146, 130, 255), - 23: (235, 0, 0, 255), - 24: (171, 0, 0, 255), - 31: (179, 172, 159, 255), - 41: (104, 171, 95, 255), - 42: (28, 95, 44, 255), - 43: (181, 197, 143, 255), - 52: (204, 184, 121, 255), - 71: (223, 223, 194, 255), - 81: (220, 217, 57, 255), - 82: (171, 108, 40, 255), - 90: (184, 217, 235, 255), - 95: (108, 159, 184, 255), - } - prior_color_matrix = np.array( [ [0.0, 0.77254902, 1.0, 1.0],