Shortcuts

Source code for torchgeo.datasets.copernicus

# Copyright (c) TorchGeo Contributors. All rights reserved.
# Licensed under the MIT License.

"""Copernicus-Bench datasets."""

from typing import Any, Literal

from torch import Tensor

from ..geo import NonGeoDataset
from .aq_no2_s5p import CopernicusBenchAQNO2S5P
from .aq_o3_s5p import CopernicusBenchAQO3S5P
from .base import CopernicusBenchBase
from .bigearthnet_s1 import CopernicusBenchBigEarthNetS1
from .bigearthnet_s2 import CopernicusBenchBigEarthNetS2
from .biomass_s3 import CopernicusBenchBiomassS3
from .cloud_s2 import CopernicusBenchCloudS2
from .cloud_s3 import CopernicusBenchCloudS3
from .dfc2020_s1 import CopernicusBenchDFC2020S1
from .dfc2020_s2 import CopernicusBenchDFC2020S2
from .eurosat_s1 import CopernicusBenchEuroSATS1
from .eurosat_s2 import CopernicusBenchEuroSATS2
from .flood_s1 import CopernicusBenchFloodS1
from .lc100cls_s3 import CopernicusBenchLC100ClsS3
from .lc100seg_s3 import CopernicusBenchLC100SegS3
from .lcz_s2 import CopernicusBenchLCZS2
from .pretrain import CopernicusPretrain

__all__ = (
    'CopernicusBench',
    'CopernicusBenchAQNO2S5P',
    'CopernicusBenchAQO3S5P',
    'CopernicusBenchBase',
    'CopernicusBenchBigEarthNetS1',
    'CopernicusBenchBigEarthNetS2',
    'CopernicusBenchBiomassS3',
    'CopernicusBenchCloudS2',
    'CopernicusBenchCloudS3',
    'CopernicusBenchDFC2020S1',
    'CopernicusBenchDFC2020S2',
    'CopernicusBenchEuroSATS1',
    'CopernicusBenchEuroSATS2',
    'CopernicusBenchFloodS1',
    'CopernicusBenchLC100ClsS3',
    'CopernicusBenchLC100SegS3',
    'CopernicusBenchLCZS2',
    'CopernicusPretrain',
)

DATASET_REGISTRY = {
    'cloud_s2': CopernicusBenchCloudS2,
    'cloud_s3': CopernicusBenchCloudS3,
    'eurosat_s1': CopernicusBenchEuroSATS1,
    'eurosat_s2': CopernicusBenchEuroSATS2,
    'bigearthnet_s1': CopernicusBenchBigEarthNetS1,
    'bigearthnet_s2': CopernicusBenchBigEarthNetS2,
    'lc100cls_s3': CopernicusBenchLC100ClsS3,
    'lc100seg_s3': CopernicusBenchLC100SegS3,
    'dfc2020_s1': CopernicusBenchDFC2020S1,
    'dfc2020_s2': CopernicusBenchDFC2020S2,
    'flood_s1': CopernicusBenchFloodS1,
    'lcz_s2': CopernicusBenchLCZS2,
    'biomass_s3': CopernicusBenchBiomassS3,
    'aq_no2_s5p': CopernicusBenchAQNO2S5P,
    'aq_o3_s5p': CopernicusBenchAQO3S5P,
}


[docs]class CopernicusBench(NonGeoDataset): """Copernicus-Bench datasets. This wrapper supports dynamically loading datasets in Copernicus-Bench. If you use this dataset in your research, please cite the following paper: * https://arxiv.org/abs/2503.11849 .. versionadded:: 0.7 """
[docs] def __init__( self, name: Literal[ 'cloud_s2', 'cloud_s3', 'eurosat_s1', 'eurosat_s2', 'bigearthnet_s1', 'bigearthnet_s2', 'lc100cls_s3', 'lc100seg_s3', 'dfc2020_s1', 'dfc2020_s2', 'flood_s1', 'lcz_s2', 'biomass_s3', 'aq_no2_s5p', 'aq_o3_s5p', ], *args: Any, **kwargs: Any, ) -> None: """Initialize a new CopernicusBench instance. Args: name: Name of the dataset to load. *args: Arguments to pass to dataset class. **kwargs: Keyword arguments to pass to dataset class. """ self.name = name self.dataset: CopernicusBenchBase = DATASET_REGISTRY[name](*args, **kwargs)
[docs] def __len__(self) -> int: """Return the length of the dataset. Returns: Length of the dataset. """ return len(self.dataset)
[docs] def __getitem__(self, index: int) -> dict[str, Tensor]: """Return an index within the dataset. Args: index: Index to return. Returns: Data and labels at that index. """ return self.dataset[index]
[docs] def __getattr__(self, name: str) -> Any: """Wrapper around dataset object.""" return getattr(self.dataset, name)

Docs

Access comprehensive developer documentation for PyTorch

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

Find development resources and get your questions answered

View Resources