From 0381498ed34a1b13102e40c7593456f81e125df1 Mon Sep 17 00:00:00 2001 From: jonhealy1 Date: Thu, 30 Jul 2026 11:42:03 +0800 Subject: [PATCH 1/7] fix get_validator fallback --- stac_validator/fast_validator.py | 99 ++++++++++++++++++++++++++------ 1 file changed, 81 insertions(+), 18 deletions(-) diff --git a/stac_validator/fast_validator.py b/stac_validator/fast_validator.py index f4f3a16..7c316b3 100644 --- a/stac_validator/fast_validator.py +++ b/stac_validator/fast_validator.py @@ -110,6 +110,7 @@ def get_validator(stac_type: str, stac_version: str, extensions: List[str]): else: raise ValueError(f"Unknown STAC type for validation: {stac_type}") + # Try to compile with all extensions using allOf schema_fragments: List[Dict[str, str]] = [{"$ref": base_uri}] for ext in extensions: schema_fragments.append({"$ref": ext}) @@ -119,30 +120,92 @@ def get_validator(stac_type: str, stac_version: str, extensions: List[str]): } try: - validator = fastjsonschema.compile( + compiled_validator = fastjsonschema.compile( dynamic_schema, handlers={"http": fetch_schema, "https": fetch_schema} ) + + def validator(data: Dict[str, Any]) -> None: + # Increase recursion limit temporarily for complex GeoJSON and nested schemas + old_limit = sys.getrecursionlimit() + sys.setrecursionlimit(10000) + try: + compiled_validator(data) + finally: + sys.setrecursionlimit(old_limit) + except Exception: - # FALLBACK: Some schemas (like Item Assets) cause fastjsonschema to generate invalid python code. - # We fall back to the standard jsonschema library. - click.secho( - " [Fallback] fastjsonschema compile failed. Using python-jsonschema.", - fg="yellow", - dim=True, - ) - import jsonschema - - # Create a validator using the same custom logic - def fallback_validator(data: Dict[str, Any]) -> None: - # We need a resolver to handle the remote $refs - resolver = jsonschema.RefResolver( - base_uri="", - referrer=dynamic_schema, + # If allOf compilation fails, try compiling base + extensions separately + # This is faster than the jsonschema fallback + try: + base_validator = fastjsonschema.compile( + {"$ref": base_uri}, handlers={"http": fetch_schema, "https": fetch_schema}, ) - jsonschema.validate(data, dynamic_schema, resolver=resolver) + ext_validators = [] + skipped_extensions = [] + for ext in extensions: + try: + ext_val = fastjsonschema.compile( + {"$ref": ext}, + handlers={"http": fetch_schema, "https": fetch_schema}, + ) + ext_validators.append(ext_val) + except Exception: + # Skip extensions that can't be compiled + skipped_extensions.append(ext) + + if skipped_extensions and not QUIET_MODE: + click.secho( + f" [Warning] Skipped {len(skipped_extensions)} extension(s) due to fastjsonschema compatibility:", + fg="yellow", + dim=True, + ) + for ext in skipped_extensions: + click.secho(f" - {ext}", fg="yellow", dim=True) + click.secho( + " For complete validation, use: stac-valid validate ", + fg="yellow", + dim=True, + ) + + def multi_validator(data: Dict[str, Any]) -> None: + # Increase recursion limit temporarily for complex GeoJSON and nested schemas + old_limit = sys.getrecursionlimit() + sys.setrecursionlimit(10000) + try: + base_validator(data) + for ext_val in ext_validators: + ext_val(data) + finally: + sys.setrecursionlimit(old_limit) + + validator = multi_validator + except Exception: + # Final fallback: use jsonschema + click.secho( + " [Fallback] fastjsonschema compile failed. Using python-jsonschema.", + fg="yellow", + dim=True, + ) - validator = fallback_validator + # Create a validator using the same custom logic + def fallback_validator(data: Dict[str, Any]) -> None: + # Increase recursion limit temporarily for complex GeoJSON and nested schemas + old_limit = sys.getrecursionlimit() + sys.setrecursionlimit(10000) + try: + # Import the robust validator from utilities + from stac_validator.utilities import validate_with_ref_resolver + + # Validate base schema + validate_with_ref_resolver(base_uri, data) + # Validate each extension separately + for ext in extensions: + validate_with_ref_resolver(ext, data) + finally: + sys.setrecursionlimit(old_limit) + + validator = fallback_validator VALIDATOR_CACHE[cache_key] = validator return validator, False From b1b7ebcc51972917b41ea2fe75dbb6881eb0253e Mon Sep 17 00:00:00 2001 From: jonhealy1 Date: Thu, 30 Jul 2026 12:39:31 +0800 Subject: [PATCH 2/7] Release/v4.5.0 --- CHANGELOG.md | 22 +++- pyproject.toml | 2 +- stac_validator/fast_validator.py | 176 ++++++++++++++++++++----------- 3 files changed, 132 insertions(+), 68 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7be189..a0d1aef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,11 +10,25 @@ The format is (loosely) based on [Keep a Changelog](http://keepachangelog.com/) ### Changed -### Fixed +### Fixed ### Removed -### Updated +## [v4.5.0] - 2026-07-30 + +### Added + +- Added an opt-in `validate_geometry` flag to `FastValidator`. When enabled, it performs pure-Python spatial checks to ensure coordinates fall within global WGS84 bounds and detects improper antimeridian crossings in Polygons/MultiPolygons. +- Added a strict 5000-vertex limit to the new geometry validation rings. This acts as a safeguard to prevent CPU exhaustion or thread lockups when processing excessively complex coastal or generated polygons. +- Added pure-Python checks to `FastValidator` that ensure an item's `start_datetime` is never strictly after its `end_datetime`. [#304](https://github.com/stac-utils/stac-validator/pull/304) + +### Changed + +- Completely refactored the fallback logic in `fast_validator` to remove the heavy `python-jsonschema` dependency block. If the dynamic `allOf` schema compiler fails (often caused by internal reference collisions in the `storage` or `file` extensions), the validator now gracefully compiles the base schema and compatible extensions individually, cleanly skipping incompatible extensions to maintain blazing-fast API ingestion speeds. [#304](https://github.com/stac-utils/stac-validator/pull/304) + +### Fixed + +- Fixed a fatal `KeyError: 'definitions'` crash in `fast_validator` caused by complex STAC extensions attempting to resolve local `$ref` pointers (like `#/definitions/links`) against an empty synthetic root. [#304](https://github.com/stac-utils/stac-validator/pull/304) ## [v4.4.0] - 2026-05-11 @@ -460,7 +474,9 @@ The format is (loosely) based on [Keep a Changelog](http://keepachangelog.com/) - With the newest version - 1.0.0-beta.2 - items will run through jsonchema validation before the PySTAC validation. The reason for this is that jsonschema will give more informative error messages. This should be addressed better in the future. This is not the case with the --recursive option as time can be a concern here with larger collections. - Logging. Various additions were made here depending on the options selected. This was done to help assist people to update their STAC collections. -[Unreleased]: https://github.com/sparkgeo/stac-validator/compare/v4.3.0..main +[Unreleased]: https://github.com/sparkgeo/stac-validator/compare/v4.5.0..main +[v4.5.0]: https://github.com/sparkgeo/stac-validator/compare/v4.4.0..v4.5.0 +[v4.4.0]: https://github.com/sparkgeo/stac-validator/compare/v4.3.0..v4.4.0 [v4.3.0]: https://github.com/sparkgeo/stac-validator/compare/v4.2.2..v4.3.0 [v4.2.2]: https://github.com/sparkgeo/stac-validator/compare/v4.2.1..v4.2.2 [v4.2.1]: https://github.com/sparkgeo/stac-validator/compare/v4.2.0..v4.2.1 diff --git a/pyproject.toml b/pyproject.toml index 128a49f..1aeab9e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "stac_valid" -version = "4.4.0" +version = "4.5.0" description = "A package to validate STAC files" authors = [ {name = "Jonathan Healy", email = "jon@healy-hyperspatial.dev"}, diff --git a/stac_validator/fast_validator.py b/stac_validator/fast_validator.py index 7c316b3..386c690 100644 --- a/stac_validator/fast_validator.py +++ b/stac_validator/fast_validator.py @@ -5,6 +5,7 @@ import time from concurrent.futures import Future, ThreadPoolExecutor from contextlib import redirect_stderr, redirect_stdout +from datetime import datetime from typing import Any, Dict, List, Optional, Set, Tuple import click @@ -120,12 +121,12 @@ def get_validator(stac_type: str, stac_version: str, extensions: List[str]): } try: + # TIER 1: Try compiling everything dynamically using allOf (Maximum Speed) compiled_validator = fastjsonschema.compile( dynamic_schema, handlers={"http": fetch_schema, "https": fetch_schema} ) def validator(data: Dict[str, Any]) -> None: - # Increase recursion limit temporarily for complex GeoJSON and nested schemas old_limit = sys.getrecursionlimit() sys.setrecursionlimit(10000) try: @@ -134,79 +135,55 @@ def validator(data: Dict[str, Any]) -> None: sys.setrecursionlimit(old_limit) except Exception: - # If allOf compilation fails, try compiling base + extensions separately - # This is faster than the jsonschema fallback - try: - base_validator = fastjsonschema.compile( - {"$ref": base_uri}, - handlers={"http": fetch_schema, "https": fetch_schema}, - ) - ext_validators = [] - skipped_extensions = [] - for ext in extensions: - try: - ext_val = fastjsonschema.compile( - {"$ref": ext}, - handlers={"http": fetch_schema, "https": fetch_schema}, - ) - ext_validators.append(ext_val) - except Exception: - # Skip extensions that can't be compiled - skipped_extensions.append(ext) + # TIER 2: allOf compilation failed (e.g., storage extension reference collisions). + # Compile base and compatible extensions separately. Skip broken ones to maintain API speed. + base_validator = fastjsonschema.compile( + {"$ref": base_uri}, + handlers={"http": fetch_schema, "https": fetch_schema}, + ) - if skipped_extensions and not QUIET_MODE: - click.secho( - f" [Warning] Skipped {len(skipped_extensions)} extension(s) due to fastjsonschema compatibility:", - fg="yellow", - dim=True, - ) - for ext in skipped_extensions: - click.secho(f" - {ext}", fg="yellow", dim=True) - click.secho( - " For complete validation, use: stac-valid validate ", - fg="yellow", - dim=True, - ) + ext_validators = [] + skipped_extensions = [] - def multi_validator(data: Dict[str, Any]) -> None: - # Increase recursion limit temporarily for complex GeoJSON and nested schemas - old_limit = sys.getrecursionlimit() - sys.setrecursionlimit(10000) - try: - base_validator(data) - for ext_val in ext_validators: - ext_val(data) - finally: - sys.setrecursionlimit(old_limit) + for ext in extensions: + try: + ext_val = fastjsonschema.compile( + {"$ref": ext}, + handlers={"http": fetch_schema, "https": fetch_schema}, + ) + ext_validators.append(ext_val) + except Exception: + # Skip extensions that fastjsonschema cannot compile + skipped_extensions.append(ext) - validator = multi_validator - except Exception: - # Final fallback: use jsonschema + # Only print warnings if running in CLI mode, keep the API quiet + if skipped_extensions and not QUIET_MODE: click.secho( - " [Fallback] fastjsonschema compile failed. Using python-jsonschema.", + f" [Warning] Skipped {len(skipped_extensions)} extension(s) for speed (fastjsonschema compile failed):", + fg="yellow", + dim=True, + ) + for ext in skipped_extensions: + click.secho(f" - {ext}", fg="yellow", dim=True) + click.secho( + " For strict validation of all extensions, use: stac-valid validate ", fg="yellow", dim=True, ) - # Create a validator using the same custom logic - def fallback_validator(data: Dict[str, Any]) -> None: - # Increase recursion limit temporarily for complex GeoJSON and nested schemas - old_limit = sys.getrecursionlimit() - sys.setrecursionlimit(10000) - try: - # Import the robust validator from utilities - from stac_validator.utilities import validate_with_ref_resolver - - # Validate base schema - validate_with_ref_resolver(base_uri, data) - # Validate each extension separately - for ext in extensions: - validate_with_ref_resolver(ext, data) - finally: - sys.setrecursionlimit(old_limit) + def multi_validator(data: Dict[str, Any]) -> None: + old_limit = sys.getrecursionlimit() + sys.setrecursionlimit(10000) + try: + base_validator(data) + for ext_val in ext_validators: + ext_val(data) + finally: + sys.setrecursionlimit(old_limit) - validator = fallback_validator + validator = multi_validator + # Cache the resulting validator so future items use it instantly VALIDATOR_CACHE[cache_key] = validator return validator, False @@ -218,6 +195,7 @@ def __init__( quiet: bool = False, verbose: bool = False, limit: Optional[int] = None, + validate_geometry: bool = False, ): global QUIET_MODE self.stac_file = stac_file @@ -225,9 +203,79 @@ def __init__( self.valid = True self.verbose = verbose self.limit = limit + self.validate_geometry = validate_geometry self.message: List[Dict[str, Any]] = [] QUIET_MODE = quiet + def _validate_datetime_range(self, data: Dict[str, Any]) -> None: + """Ensures start_datetime is not strictly after end_datetime per STAC Spec.""" + if data.get("type") != "Feature": + return + + properties = data.get("properties", {}) + start_str = properties.get("start_datetime") + end_str = properties.get("end_datetime") + + if start_str and end_str: + try: + start_dt = datetime.fromisoformat(start_str.replace("Z", "+00:00")) + end_dt = datetime.fromisoformat(end_str.replace("Z", "+00:00")) + + if start_dt > end_dt: + raise ValueError( + f"Logical Error: start_datetime ({start_str}) cannot be strictly after end_datetime ({end_str})" + ) + except ValueError as e: + if "Logical Error" in str(e): + raise + + def _validate_geometry(self, data: Dict[str, Any]) -> None: + """Lightweight topology check for global bounds and antimeridian crossings.""" + if data.get("type") != "Feature": + return + + geometry = data.get("geometry") + if not geometry: + return + + geom_type = geometry.get("type") + coords = geometry.get("coordinates") + if not coords or geom_type not in ("Polygon", "MultiPolygon"): + return + + def check_bounds(c: list): + if not c: + return + if isinstance(c[0], (int, float)): + if not (-180 <= c[0] <= 180) or not (-90 <= c[1] <= 90): + raise ValueError(f"Geometry out of global WGS84 bounds: {c}") + else: + for sub in c: + check_bounds(sub) + + check_bounds(coords) + + def check_rings(rings: list): + max_vertices = int(os.environ.get("MAX_TOPOLOGY_VERTICES", 5000)) + for ring in rings: + if len(ring) < 4: + raise ValueError("Polygon ring must have at least 4 coordinates.") + if len(ring) > max_vertices: + raise ValueError( + f"Geometry exceeds maximum allowed vertices ({max_vertices}). Found {len(ring)}." + ) + for i in range(len(ring) - 1): + if abs(ring[i][0] - ring[i + 1][0]) > 180: + raise ValueError( + f"Improper antimeridian crossing between {ring[i][0]} and {ring[i + 1][0]}" + ) + + if geom_type == "Polygon": + check_rings(coords) + elif geom_type == "MultiPolygon": + for poly in coords: + check_rings(poly) + def _limit_reached(self, results: List[Dict]) -> bool: return self.limit is not None and len(results) >= self.limit From 2e85e31ee056d70b6cd3df07c384da64bb4ecf01 Mon Sep 17 00:00:00 2001 From: jonhealy1 Date: Thu, 30 Jul 2026 12:45:32 +0800 Subject: [PATCH 3/7] Fix: Hook logical validations into execution blocks --- stac_validator/fast_validator.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/stac_validator/fast_validator.py b/stac_validator/fast_validator.py index 386c690..80df262 100644 --- a/stac_validator/fast_validator.py +++ b/stac_validator/fast_validator.py @@ -527,6 +527,10 @@ def run(self): t2 = time.perf_counter() try: validator(item) + # Run logical firewalls + self._validate_datetime_range(item) + if self.validate_geometry: + self._validate_geometry(item) t3 = time.perf_counter() exec_time = (t3 - t2) * 1000 total_exec_ms += exec_time @@ -556,6 +560,20 @@ def run(self): error_registry[error_msg].append(item_id) status_text = click.style("❌ INVALID", fg="red") + except ValueError as e: + t3 = time.perf_counter() + exec_time = (t3 - t2) * 1000 + total_exec_ms += exec_time + invalid_count += 1 + self.valid = False + + # Logical validation errors (datetime range, geometry) + error_msg = str(e) + if error_msg not in error_registry: + error_registry[error_msg] = [] + error_registry[error_msg].append(item_id) + status_text = click.style("❌ INVALID", fg="red") + except Exception as e: t3 = time.perf_counter() exec_time = (t3 - t2) * 1000 @@ -760,6 +778,10 @@ def run_dict(self, stac_dict: Dict[str, Any], source_name: str = "in-memory"): t2 = time.perf_counter() try: validator(item) + # Run logical firewalls + self._validate_datetime_range(item) + if self.validate_geometry: + self._validate_geometry(item) t3 = time.perf_counter() total_exec_ms += (t3 - t2) * 1000 valid_count += 1 @@ -774,6 +796,15 @@ def run_dict(self, stac_dict: Dict[str, Any], source_name: str = "in-memory"): if error_msg not in error_registry: error_registry[error_msg] = [] error_registry[error_msg].append(item_id) + except ValueError as e: + t3 = time.perf_counter() + total_exec_ms += (t3 - t2) * 1000 + invalid_count += 1 + self.valid = False + error_msg = str(e) + if error_msg not in error_registry: + error_registry[error_msg] = [] + error_registry[error_msg].append(item_id) except Exception as e: t3 = time.perf_counter() total_exec_ms += (t3 - t2) * 1000 From fdeee84a8d91494b75e0680c0cb735cb185e19da Mon Sep 17 00:00:00 2001 From: jonhealy1 Date: Thu, 30 Jul 2026 14:31:55 +0800 Subject: [PATCH 4/7] Fix: Add error logging for setup failures and improve datetime validation error handling --- test.json | 3095 +++++++++++++++++++++++++++++++++++++++++++++++++++++ test.py | 40 + 2 files changed, 3135 insertions(+) create mode 100644 test.json create mode 100644 test.py diff --git a/test.json b/test.json new file mode 100644 index 0000000..e170f3f --- /dev/null +++ b/test.json @@ -0,0 +1,3095 @@ +{ + "type": "Feature", + "stac_version": "1.1.0", + "collection": "sentinel-2-l2a", + "id": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440", + "properties": { + "created": "2024-10-15T19:47:28.107000Z", + "updated": "2025-01-27T14:31:03.471399Z", + "published": "2024-11-20T20:23:22.150523Z", + "eopf:origin_datetime": "2024-10-15T19:47:28.107000Z", + "auth:schemes": { + "s3": { + "type": "s3" + }, + "oidc": { + "type": "openIdConnect", + "openIdConnectUrl": "https://identity.dataspace.copernicus.eu/auth/realms/CDSE/.well-known/openid-configuration" + } + }, + "storage:schemes": { + "cdse-s3": { + "title": "Copernicus Data Space Ecosystem S3", + "description": "This endpoint provides access to EO data which is stored on the object storage of both CloudFerro Cloud and OpenTelekom Cloud (OTC). See the [documentation](https://documentation.dataspace.copernicus.eu/APIs/S3.html) for more information, including how to get credentials.", + "platform": "https://eodata.dataspace.copernicus.eu", + "requester_pays": false, + "type": "custom-s3", + "class": "hot" + }, + "creodias-s3": { + "title": "CREODIAS S3", + "description": "Comprehensive Earth Observation Data (EODATA) archive offered by CREODIAS as a commercial part of CDSE, designed to provide users with access to a vast repository of satellite data without predefined quota limits.", + "platform": "https://eodata.cloudferro.com", + "requester_pays": true, + "type": "custom-s3", + "class": "hot" + } + }, + "datetime": "2022-02-17T18:34:31.024000Z", + "start_datetime": "2022-02-17T18:34:31.024000Z", + "end_datetime": "2022-02-17T18:34:31.024000Z", + "platform": "sentinel-2a", + "constellation": "sentinel-2", + "instruments": [ + "msi" + ], + "gsd": 10, + "processing:level": "L2", + "processing:datetime": "2024-05-16T02:24:40.000000Z", + "product:type": "S2MSI2A", + "product:timeliness": "PT24H", + "product:timeliness_category": "NRT", + "eo:cloud_cover": 41.21, + "eo:snow_cover": 58.787221, + "sat:orbit_state": "descending", + "sat:relative_orbit": 27, + "sat:absolute_orbit": 34773, + "sat:platform_international_designator": "2015-028A", + "grid:code": "MGRS-13VEK", + "view:sun_azimuth": 171.648044763495, + "view:sun_elevation": 15.295893422957406, + "eopf:datastrip_id": "S2A_OPER_MSI_L2A_DS_S2RP_20240516T022440_S20220217T183428_N05.10", + "eopf:datatake_id": "GS2A_20220217T183431_034773_N05.10", + "eopf:instrument_mode": "INS-NOBS", + "statistics": { + "nodata": 0.0, + "saturated_defective": 0.0, + "dark_area": 0.00061, + "cloud_shadow": 0.000113, + "vegetation": 0.0, + "not_vegetated": 0.002459, + "water": 0.003006, + "unclassified": 0.0, + "medium_proba_clouds": 30.344793000000003, + "high_proba_clouds": 1.042946, + "thin_cirrus": 9.818849 + }, + "processing:version": "05.10", + "view:azimuth": 258.25457702138465, + "view:incidence_angle": 4.031093554485443, + "_private": { + "product_size": 981320632, + "product_uuid": "7d10d1f8-e4a8-40d8-af15-4c227639d61a", + "product_name": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE", + "visible": true + }, + "processing:software": { + "eometadatatool": "260409140520" + }, + "processing:facility": "ESA", + "expires": "2262-01-01T00:00:00.000000Z" + }, + "bbox": [ + -105.00039660496051, + 62.127976558918824, + -102.8239753454063, + 63.129519214116456 + ], + "geometry": { + "type": "Polygon", + "coordinates": [ + [ + [ + -105.00039660496051, + 63.129519214116456 + ], + [ + -105.00038365667547, + 62.14398151095575 + ], + [ + -102.89495280424933, + 62.127976558918824 + ], + [ + -102.8239753454063, + 63.112828904116384 + ], + [ + -105.00039660496051, + 63.129519214116456 + ] + ] + ] + }, + "links": [ + { + "rel": "collection", + "href": "./collection.json", + "type": "application/json", + "title": "Simple Example Collection" + }, + { + "rel": "enclosure", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/", + "type": "application/x-directory", + "title": "S3 path to source directory", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ] + }, + { + "rel": "version-history", + "href": "https://trace.dataspace.copernicus.eu/api/v1/traces/name/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE.zip", + "type": "application/json", + "title": "Product history record from the CDSE traceability service" + } + ], + "assets": { + "safe_manifest": { + "type": "application/xml", + "title": "manifest.safe", + "roles": [ + "metadata" + ], + "file:checksum": "d5011054939b72925a0b810b35a36f2bb8c56e", + "file:size": 68890, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/manifest.safe", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/manifest.safe", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(manifest.safe)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "product_metadata": { + "type": "application/xml", + "title": "MTD_MSIL2A.xml", + "roles": [ + "metadata" + ], + "file:checksum": "d5012097f6a31564beed318f8d83aca261a88aae121918efd704355a7a2c0929fb7441", + "file:size": 55350, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/MTD_MSIL2A.xml", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/MTD_MSIL2A.xml", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(MTD_MSIL2A.xml)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "granule_metadata": { + "type": "application/xml", + "title": "MTD_TL.xml", + "roles": [ + "metadata" + ], + "file:checksum": "d5012071d82d9f35f1078162d0731b0539fd0f53bb22e5f1eab6686e373d3363b5442e", + "file:size": 626494, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/MTD_TL.xml", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/MTD_TL.xml", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(MTD_TL.xml)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "inspire_metadata": { + "type": "application/xml", + "title": "INSPIRE.xml", + "roles": [ + "metadata" + ], + "file:checksum": "d5012063c88c98a0ef559dc07b4530df54e5eb694054af95bf3779ba2e1481f296d6b9", + "file:size": 18659, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/INSPIRE.xml", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/INSPIRE.xml", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(INSPIRE.xml)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "datastrip_metadata": { + "type": "application/xml", + "title": "MTD_DS.xml", + "roles": [ + "metadata" + ], + "file:checksum": "d50120602e3fc156a360665c4f04ac4cc171ece29a5d908783098cc2e1b78c82457b19", + "file:size": 19290509, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/DATASTRIP/DS_S2RP_20240516T022440_S20220217T183428/MTD_DS.xml", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/DATASTRIP/DS_S2RP_20240516T022440_S20220217T183428/MTD_DS.xml", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(DATASTRIP)/Nodes(DS_S2RP_20240516T022440_S20220217T183428)/Nodes(MTD_DS.xml)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "thumbnail": { + "type": "image/jpeg", + "title": "Quicklook", + "roles": [ + "thumbnail", + "overview" + ], + "data_type": "uint8", + "proj:code": null, + "proj:shape": [ + 343, + 343 + ], + "file:checksum": "d501106acfe57afc263b064c198c1a369096e8", + "file:size": 2563, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440-ql.jpg", + "href": "https://datahub.creodias.eu/odata/v1/Assets(2300ed19-15f5-45e3-8b6d-cff89bf45dd7)/$value", + "alternate:name": "HTTPS", + "alternate": { + "s3": { + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440-ql.jpg", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ] + } + } + }, + "B01_20m": { + "type": "image/jp2", + "title": "Coastal aerosol (band 1) - 20m", + "roles": [ + "data", + "reflectance", + "sampling:upsampled", + "gsd:20m" + ], + "bands": [ + { + "name": "B01", + "description": "Coastal aerosol (band 1)", + "eo:center_wavelength": 0.443, + "eo:full_width_half_max": 0.228, + "eo:common_name": "coastal" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "view:azimuth": 256.992210540651, + "view:incidence_angle": 4.26594120894625, + "file:checksum": "1620a7037ba110200a135793fb78f6d88143ae2410614e96070944f67cc98dc2d057", + "file:size": 26288482, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B01_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B01_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B01_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B01_60m": { + "type": "image/jp2", + "title": "Coastal aerosol (band 1) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:60m" + ], + "bands": [ + { + "name": "B01", + "description": "Coastal aerosol (band 1)", + "eo:center_wavelength": 0.443, + "eo:full_width_half_max": 0.228, + "eo:common_name": "coastal" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 256.992210540651, + "view:incidence_angle": 4.26594120894625, + "file:checksum": "162077c014d541f15041ea986e04b10880f4291fa393e97e09b798d1c137052d8ba1", + "file:size": 3746776, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B01_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B01_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B01_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B02_10m": { + "type": "image/jp2", + "title": "Blue (band 2) - 10m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:10m" + ], + "bands": [ + { + "name": "B02", + "description": "Blue (band 2)", + "eo:center_wavelength": 0.493, + "eo:full_width_half_max": 0.267, + "eo:common_name": "blue" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 10, + "proj:code": "EPSG:32613", + "proj:shape": [ + 10980, + 10980 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 10, + 0, + 499980, + 0, + -10, + 7000020 + ], + "view:azimuth": 261.362070148879, + "view:incidence_angle": 3.73656335544205, + "file:checksum": "1620224759635fcc8684cf2c5de1c1e96e222558baeba515e8768cecf9842ed70fd5", + "file:size": 134936576, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B02_10m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B02_10m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_B02_10m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B02_20m": { + "type": "image/jp2", + "title": "Blue (band 2) - 20m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:20m" + ], + "bands": [ + { + "name": "B02", + "description": "Blue (band 2)", + "eo:center_wavelength": 0.493, + "eo:full_width_half_max": 0.267, + "eo:common_name": "blue" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "view:azimuth": 261.362070148879, + "view:incidence_angle": 3.73656335544205, + "file:checksum": "16200a5f308c63e61cc81a175434c9af454c465ce9068f490206a6947c789317e448", + "file:size": 33887241, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B02_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B02_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B02_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B02_60m": { + "type": "image/jp2", + "title": "Blue (band 2) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:60m" + ], + "bands": [ + { + "name": "B02", + "description": "Blue (band 2)", + "eo:center_wavelength": 0.493, + "eo:full_width_half_max": 0.267, + "eo:common_name": "blue" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 261.362070148879, + "view:incidence_angle": 3.73656335544205, + "file:checksum": "162033809b0c7d0dcb0a082131bae855dbb889eac3a97e752194a33fe0bb5ccdff70", + "file:size": 3760543, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B02_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B02_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B02_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B03_10m": { + "type": "image/jp2", + "title": "Green (band 3) - 10m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:10m" + ], + "bands": [ + { + "name": "B03", + "description": "Green (band 3)", + "eo:center_wavelength": 0.56, + "eo:full_width_half_max": 0.291, + "eo:common_name": "green" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 10, + "proj:code": "EPSG:32613", + "proj:shape": [ + 10980, + 10980 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 10, + 0, + 499980, + 0, + -10, + 7000020 + ], + "view:azimuth": 259.572520298079, + "view:incidence_angle": 3.82482483419917, + "file:checksum": "16202a27bb4b4c65d12e75291dae975d811d7b0f2968adf4d0ffb7e5ab40bf3ad13c", + "file:size": 134930513, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B03_10m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B03_10m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_B03_10m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B03_20m": { + "type": "image/jp2", + "title": "Green (band 3) - 20m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:20m" + ], + "bands": [ + { + "name": "B03", + "description": "Green (band 3)", + "eo:center_wavelength": 0.56, + "eo:full_width_half_max": 0.291, + "eo:common_name": "green" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "view:azimuth": 259.572520298079, + "view:incidence_angle": 3.82482483419917, + "file:checksum": "16206f87dc68854b35336e35615a60cb69166273d7a4db460694a57f1d1ef01019cd", + "file:size": 33865862, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B03_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B03_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B03_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B03_60m": { + "type": "image/jp2", + "title": "Green (band 3) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:60m" + ], + "bands": [ + { + "name": "B03", + "description": "Green (band 3)", + "eo:center_wavelength": 0.56, + "eo:full_width_half_max": 0.291, + "eo:common_name": "green" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 259.572520298079, + "view:incidence_angle": 3.82482483419917, + "file:checksum": "16209e33438db6a9cc513f81acd1687a67be21cc038ff234bd66955a5e98e5c6f2a6", + "file:size": 3756217, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B03_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B03_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B03_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B04_10m": { + "type": "image/jp2", + "title": "Red (band 4) - 10m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:10m" + ], + "bands": [ + { + "name": "B04", + "description": "Red (band 4)", + "eo:center_wavelength": 0.665, + "eo:full_width_half_max": 0.342, + "eo:common_name": "red" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 10, + "proj:code": "EPSG:32613", + "proj:shape": [ + 10980, + 10980 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 10, + 0, + 499980, + 0, + -10, + 7000020 + ], + "view:azimuth": 258.542326601019, + "view:incidence_angle": 3.92412444481274, + "file:checksum": "16203cdac7cd32c3f423b2f8625c854dafa32b8a70fde6a1b1a6891115d7b95be6b9", + "file:size": 134924703, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B04_10m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B04_10m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_B04_10m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B04_20m": { + "type": "image/jp2", + "title": "Red (band 4) - 20m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:20m" + ], + "bands": [ + { + "name": "B04", + "description": "Red (band 4)", + "eo:center_wavelength": 0.665, + "eo:full_width_half_max": 0.342, + "eo:common_name": "red" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "view:azimuth": 258.542326601019, + "view:incidence_angle": 3.92412444481274, + "file:checksum": "162084f0e28e3b1b9846fb0f5ef3df8113ac57d04db40f3b3db456f45a8dc44f7f42", + "file:size": 33862074, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B04_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B04_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B04_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B04_60m": { + "type": "image/jp2", + "title": "Red (band 4) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:60m" + ], + "bands": [ + { + "name": "B04", + "description": "Red (band 4)", + "eo:center_wavelength": 0.665, + "eo:full_width_half_max": 0.342, + "eo:common_name": "red" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 258.542326601019, + "view:incidence_angle": 3.92412444481274, + "file:checksum": "1620106da9eca2a0026da76dbbfb429c39576f63c06104c75671ef2fd4fe5bdeae26", + "file:size": 3756468, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B04_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B04_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B04_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B05_20m": { + "type": "image/jp2", + "title": "Red edge 1 (band 5) - 20m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:20m" + ], + "bands": [ + { + "name": "B05", + "description": "Red edge 1 (band 5)", + "eo:center_wavelength": 0.704, + "eo:full_width_half_max": 0.357, + "eo:common_name": "rededge071" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "view:azimuth": 258.012411443611, + "view:incidence_angle": 3.98772117916769, + "file:checksum": "1620dfe8ad1920bc9d4ac42e72e812f4d28ea3523a8e026736005e8840680216de01", + "file:size": 33882543, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B05_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B05_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B05_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B05_60m": { + "type": "image/jp2", + "title": "Red edge 1 (band 5) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:60m" + ], + "bands": [ + { + "name": "B05", + "description": "Red edge 1 (band 5)", + "eo:center_wavelength": 0.704, + "eo:full_width_half_max": 0.357, + "eo:common_name": "rededge071" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 258.012411443611, + "view:incidence_angle": 3.98772117916769, + "file:checksum": "1620625422656cce1b2504ade8f56e70548eb62a67be9193f4088f3e232c1a05ccf7", + "file:size": 3753853, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B05_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B05_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B05_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B06_20m": { + "type": "image/jp2", + "title": "Red edge 2 (band 6) - 20m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:20m" + ], + "bands": [ + { + "name": "B06", + "description": "Red edge 2 (band 6)", + "eo:center_wavelength": 0.741, + "eo:full_width_half_max": 0.374, + "eo:common_name": "rededge075" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "view:azimuth": 257.659941508294, + "view:incidence_angle": 4.04830051441099, + "file:checksum": "16207b5be512f7e5817545d51d61a5d65bb0e551bd69adc0d7225f61d79b054ebf82", + "file:size": 33908603, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B06_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B06_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B06_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B06_60m": { + "type": "image/jp2", + "title": "Red edge 2 (band 6) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:60m" + ], + "bands": [ + { + "name": "B06", + "description": "Red edge 2 (band 6)", + "eo:center_wavelength": 0.741, + "eo:full_width_half_max": 0.374, + "eo:common_name": "rededge075" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 257.659941508294, + "view:incidence_angle": 4.04830051441099, + "file:checksum": "1620d335dd9f9a103543025c2ddbcd5c78bf118e51e30cdc396e5598c55dbddc9c31", + "file:size": 3754908, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B06_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B06_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B06_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B07_20m": { + "type": "image/jp2", + "title": "Red edge 3 (band 7) - 20m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:20m" + ], + "bands": [ + { + "name": "B07", + "description": "Red edge 3 (band 7)", + "eo:center_wavelength": 0.783, + "eo:full_width_half_max": 0.399, + "eo:common_name": "rededge078" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "view:azimuth": 257.394611473535, + "view:incidence_angle": 4.11642691107617, + "file:checksum": "1620f71cebf9a3956f7b4a8efb9b66ecbd547adeae17ab4377fa0be85e262fb63229", + "file:size": 33737706, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B07_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B07_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B07_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B07_60m": { + "type": "image/jp2", + "title": "Red edge 3 (band 7) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:60m" + ], + "bands": [ + { + "name": "B07", + "description": "Red edge 3 (band 7)", + "eo:center_wavelength": 0.783, + "eo:full_width_half_max": 0.399, + "eo:common_name": "rededge078" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 257.394611473535, + "view:incidence_angle": 4.11642691107617, + "file:checksum": "162047860fb596aa0a12ede8602081d1c390d862d897d575379ea8a5fdbd2499bf0b", + "file:size": 3755735, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B07_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B07_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B07_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B08_10m": { + "type": "image/jp2", + "title": "NIR 1 (band 8) - 10m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:10m" + ], + "bands": [ + { + "name": "B08", + "description": "NIR 1 (band 8)", + "eo:center_wavelength": 0.833, + "eo:full_width_half_max": 0.454, + "eo:common_name": "nir" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 10, + "proj:code": "EPSG:32613", + "proj:shape": [ + 10980, + 10980 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 10, + 0, + 499980, + 0, + -10, + 7000020 + ], + "view:azimuth": 260.357074294697, + "view:incidence_angle": 3.77786560046901, + "file:checksum": "1620389bde311c0cab89b53e65f134840e5aa59781d63f5adb86fdcc18869d115397", + "file:size": 135572460, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B08_10m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B08_10m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_B08_10m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B8A_20m": { + "type": "image/jp2", + "title": "NIR 2 (band 8A) - 20m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:20m" + ], + "bands": [ + { + "name": "B8A", + "description": "NIR 2 (band 8A)", + "eo:center_wavelength": 0.865, + "eo:full_width_half_max": 0.441, + "eo:common_name": "nir08" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "view:azimuth": 257.200427936824, + "view:incidence_angle": 4.18760401565654, + "file:checksum": "1620b0690d6df57f09aa58e248ed020d7e70ceb9330134bc2296e927d6593e467d95", + "file:size": 33892723, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B8A_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B8A_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B8A_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B8A_60m": { + "type": "image/jp2", + "title": "NIR 2 (band 8A) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:60m" + ], + "bands": [ + { + "name": "B8A", + "description": "NIR 2 (band 8A)", + "eo:center_wavelength": 0.865, + "eo:full_width_half_max": 0.441, + "eo:common_name": "nir08" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 257.200427936824, + "view:incidence_angle": 4.18760401565654, + "file:checksum": "162047961bf2198fc482e98b552adfd39775bc451536c391165c260dda47bc412d11", + "file:size": 3754679, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B8A_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B8A_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B8A_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B09_60m": { + "type": "image/jp2", + "title": "NIR 3 (band 9) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:60m" + ], + "bands": [ + { + "name": "B09", + "description": "NIR 3 (band 9)", + "eo:center_wavelength": 0.945, + "eo:full_width_half_max": 0.479, + "eo:common_name": "nir09" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 256.868597711599, + "view:incidence_angle": 4.34525828419059, + "file:checksum": "1620103687916ac585c7170482ed8435991ab94824a90dff9920f0162c83a17fdee9", + "file:size": 3746593, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B09_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B09_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B09_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B11_20m": { + "type": "image/jp2", + "title": "SWIR 1 (band 11) - 20m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:20m" + ], + "bands": [ + { + "name": "B11", + "description": "SWIR 1 (band 11)", + "eo:center_wavelength": 1.614, + "eo:full_width_half_max": 0.841, + "eo:common_name": "swir16" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "view:azimuth": 257.658135202975, + "view:incidence_angle": 4.05510707830467, + "file:checksum": "162097a003c34189aa2c692300663ed484a1d6ca647bf7eccc437541e4059bb9382f", + "file:size": 29270289, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B11_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B11_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B11_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B11_60m": { + "type": "image/jp2", + "title": "SWIR 1 (band 11) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:60m" + ], + "bands": [ + { + "name": "B11", + "description": "SWIR 1 (band 11)", + "eo:center_wavelength": 1.614, + "eo:full_width_half_max": 0.841, + "eo:common_name": "swir16" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 257.658135202975, + "view:incidence_angle": 4.05510707830467, + "file:checksum": "16200c1b0cb921b0a25769c3ec7ab8ebfa5baae912968d08264d5e34c6d8c9cbb5f9", + "file:size": 3748594, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B11_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B11_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B11_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B12_20m": { + "type": "image/jp2", + "title": "SWIR 2 (band 12) - 20m", + "roles": [ + "data", + "reflectance", + "sampling:original", + "gsd:20m" + ], + "bands": [ + { + "name": "B12", + "description": "SWIR 2 (band 12)", + "eo:center_wavelength": 2.202, + "eo:full_width_half_max": 1.16, + "eo:common_name": "swir22" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "view:azimuth": 257.094739361901, + "view:incidence_angle": 4.22031786678955, + "file:checksum": "1620dffcb7196bb3e3d00c1d96d12216c1cd4c4fbf6a12d284f5b93397c3dc7a3e0f", + "file:size": 30130747, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B12_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B12_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B12_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "B12_60m": { + "type": "image/jp2", + "title": "SWIR 2 (band 12) - 60m", + "roles": [ + "data", + "reflectance", + "sampling:downsampled", + "gsd:60m" + ], + "bands": [ + { + "name": "B12", + "description": "SWIR 2 (band 12)", + "eo:center_wavelength": 2.202, + "eo:full_width_half_max": 1.16, + "eo:common_name": "swir22" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.0001, + "raster:offset": -0.1, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "view:azimuth": 257.094739361901, + "view:incidence_angle": 4.22031786678955, + "file:checksum": "16200a9726f49bbb1d39884eba18df4497d262dabec4bb07a353a27ec795a77d1449", + "file:size": 3724515, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B12_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B12_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B12_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "TCI_10m": { + "type": "image/jp2", + "title": "True color image", + "roles": [ + "visual", + "sampling:original", + "gsd:10m" + ], + "bands": [ + { + "name": "B04", + "description": "Red (band 4)", + "eo:center_wavelength": 0.665, + "eo:full_width_half_max": 0.342, + "eo:common_name": "red" + }, + { + "name": "B03", + "description": "Green (band 3)", + "eo:center_wavelength": 0.56, + "eo:full_width_half_max": 0.291, + "eo:common_name": "green" + }, + { + "name": "B02", + "description": "Blue (band 2)", + "eo:center_wavelength": 0.493, + "eo:full_width_half_max": 0.267, + "eo:common_name": "blue" + } + ], + "data_type": "uint8", + "nodata": 0, + "gsd": 10, + "proj:code": "EPSG:32613", + "proj:shape": [ + 10980, + 10980 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 10, + 0, + 499980, + 0, + -10, + 7000020 + ], + "file:checksum": "162011860e42005c87603518300f88648e124759d889d5720e34467d0222551fe6d9", + "file:size": 112458, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_TCI_10m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_TCI_10m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_TCI_10m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "TCI_20m": { + "type": "image/jp2", + "title": "True color image", + "roles": [ + "visual", + "sampling:downsampled", + "gsd:20m" + ], + "bands": [ + { + "name": "B04", + "description": "Red (band 4)", + "eo:center_wavelength": 0.665, + "eo:full_width_half_max": 0.342, + "eo:common_name": "red" + }, + { + "name": "B03", + "description": "Green (band 3)", + "eo:center_wavelength": 0.56, + "eo:full_width_half_max": 0.291, + "eo:common_name": "green" + }, + { + "name": "B02", + "description": "Blue (band 2)", + "eo:center_wavelength": 0.493, + "eo:full_width_half_max": 0.267, + "eo:common_name": "blue" + } + ], + "data_type": "uint8", + "nodata": 0, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "file:checksum": "1620695d5c1891028c922e78f286d0cbc5e881ed956d5fe83dd4cfdbc059bc8f5434", + "file:size": 30018, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_TCI_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_TCI_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_TCI_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "TCI_60m": { + "type": "image/jp2", + "title": "True color image", + "roles": [ + "visual", + "sampling:downsampled", + "gsd:60m" + ], + "bands": [ + { + "name": "B04", + "description": "Red (band 4)", + "eo:center_wavelength": 0.665, + "eo:full_width_half_max": 0.342, + "eo:common_name": "red" + }, + { + "name": "B03", + "description": "Green (band 3)", + "eo:center_wavelength": 0.56, + "eo:full_width_half_max": 0.291, + "eo:common_name": "green" + }, + { + "name": "B02", + "description": "Blue (band 2)", + "eo:center_wavelength": 0.493, + "eo:full_width_half_max": 0.267, + "eo:common_name": "blue" + } + ], + "data_type": "uint8", + "nodata": 0, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "file:checksum": "1620820c261952402bb12a887e58c26d46d450ab357ac025caaae5c6bc31847dafba", + "file:size": 10830, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_TCI_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_TCI_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_TCI_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "AOT_10m": { + "type": "image/jp2", + "title": "Aerosol optical thickness (AOT) - 10m", + "roles": [ + "data", + "gsd:10m" + ], + "bands": [ + { + "name": "AOT", + "description": "Aerosol optical thickness" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.001, + "raster:offset": 0.0, + "gsd": 10, + "proj:code": "EPSG:32613", + "proj:shape": [ + 10980, + 10980 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 10, + 0, + 499980, + 0, + -10, + 7000020 + ], + "file:checksum": "1620052c0d3911a907dd0d76992d5b201a2e64cef3dc21d7c2df9fe6a2f82f427e15", + "file:size": 113232, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_AOT_10m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_AOT_10m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_AOT_10m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "AOT_20m": { + "type": "image/jp2", + "title": "Aerosol optical thickness (AOT) - 20m", + "roles": [ + "data", + "gsd:20m" + ], + "bands": [ + { + "name": "AOT", + "description": "Aerosol optical thickness" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.001, + "raster:offset": 0.0, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "file:checksum": "16200ea99602a888b6bfdd1bdd69745fa0b64b0b37b4ac64aa9b8216a32a0959b8cc", + "file:size": 144933, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_AOT_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_AOT_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_AOT_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "AOT_60m": { + "type": "image/jp2", + "title": "Aerosol optical thickness (AOT) - 60m", + "roles": [ + "data", + "gsd:60m" + ], + "bands": [ + { + "name": "AOT", + "description": "Aerosol optical thickness" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.001, + "raster:offset": 0.0, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "file:checksum": "1620b6c1636d4e897b6f63e138e365cd5c71b10edf56c8acd7e5b072ce42fe8391a4", + "file:size": 58274, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_AOT_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_AOT_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_AOT_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "SCL_20m": { + "type": "image/jp2", + "title": "Scene classification map (SCL) - 20m", + "roles": [ + "data", + "sampling:original", + "gsd:20m" + ], + "data_type": "uint8", + "nodata": 0, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "classification:classes": [ + { + "value": 0, + "name": "no_data", + "nodata": true, + "percentage": 0.0 + }, + { + "value": 1, + "name": "saturated_or_defective", + "percentage": 0.0 + }, + { + "value": 2, + "name": "dark_area_pixels", + "percentage": 0.00061 + }, + { + "value": 3, + "name": "cloud_shadows", + "percentage": 0.000113 + }, + { + "value": 4, + "name": "vegetation", + "percentage": 0.0 + }, + { + "value": 5, + "name": "not_vegetated", + "percentage": 0.002459 + }, + { + "value": 6, + "name": "water", + "percentage": 0.003006 + }, + { + "value": 7, + "name": "unclassified", + "percentage": 0.0 + }, + { + "value": 8, + "name": "cloud_medium_probability", + "percentage": 30.344793000000003 + }, + { + "value": 9, + "name": "cloud_high_probability", + "percentage": 1.042946 + }, + { + "value": 10, + "name": "thin_cirrus", + "percentage": 9.818849 + }, + { + "value": 11, + "name": "snow", + "percentage": 58.787221 + } + ], + "file:checksum": "162022547079e654f6c047adb33d0b74f8bdffc90e65a9f95264715f975d613590b1", + "file:size": 336193, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_SCL_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_SCL_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_SCL_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "SCL_60m": { + "type": "image/jp2", + "title": "Scene classification map (SCL) - 60m", + "roles": [ + "data", + "sampling:downsampled", + "gsd:60m" + ], + "data_type": "uint8", + "nodata": 0, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "classification:classes": [ + { + "value": 0, + "name": "no_data", + "nodata": true + }, + { + "value": 1, + "name": "saturated_or_defective" + }, + { + "value": 2, + "name": "dark_area_pixels" + }, + { + "value": 3, + "name": "cloud_shadows" + }, + { + "value": 4, + "name": "vegetation" + }, + { + "value": 5, + "name": "not_vegetated" + }, + { + "value": 6, + "name": "water" + }, + { + "value": 7, + "name": "unclassified" + }, + { + "value": 8, + "name": "cloud_medium_probability" + }, + { + "value": 9, + "name": "cloud_high_probability" + }, + { + "value": 10, + "name": "thin_cirrus" + }, + { + "value": 11, + "name": "snow" + } + ], + "file:checksum": "162018468cc6dd10167e7455c7dabba40b989bab9d8f15e91789ec8d13070d013e28", + "file:size": 102257, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_SCL_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_SCL_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_SCL_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "WVP_10m": { + "type": "image/jp2", + "title": "Water vapour (WVP) - 10m", + "roles": [ + "data", + "gsd:10m" + ], + "bands": [ + { + "name": "WVP", + "description": "Water vapour" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.001, + "raster:offset": 0.0, + "gsd": 10, + "proj:code": "EPSG:32613", + "proj:shape": [ + 10980, + 10980 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 10, + 0, + 499980, + 0, + -10, + 7000020 + ], + "file:checksum": "1620616723aa27b95cd9d4c205ccddce63a7dfdebe13efd721f23ee146c8dea14e4c", + "file:size": 36372364, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_WVP_10m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_WVP_10m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_WVP_10m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "WVP_20m": { + "type": "image/jp2", + "title": "Water vapour (WVP) - 20m", + "roles": [ + "data", + "gsd:20m" + ], + "bands": [ + { + "name": "WVP", + "description": "Water vapour" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.001, + "raster:offset": 0.0, + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "file:checksum": "16208b4786085b6a7513a815ba2d952a3b034b19d85dc179ec1d3201f658db9a9eda", + "file:size": 12904648, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_WVP_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_WVP_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_WVP_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "WVP_60m": { + "type": "image/jp2", + "title": "Water vapour (WVP) - 60m", + "roles": [ + "data", + "gsd:60m" + ], + "bands": [ + { + "name": "WVP", + "description": "Water vapour" + } + ], + "data_type": "uint16", + "nodata": 0, + "raster:scale": 0.001, + "raster:offset": 0.0, + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "file:checksum": "1620f55dce81a3a268e43f0f2649fee1eaeac98c7ba50d4f82dee62fc9c6e7f9837e", + "file:size": 1949946, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_WVP_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_WVP_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_WVP_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "SNW_20m": { + "type": "image/jp2", + "title": "Snow probability (SNW) - 20m", + "roles": [ + "data", + "gsd:20m" + ], + "bands": [ + { + "name": "SNW", + "description": "Snow probability" + } + ], + "data_type": "uint8", + "statistics": { + "minimum": 0, + "maximum": 100 + }, + "unit": "%", + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "file:checksum": "16205dd65fe9ea45b81ebb6f88b63a07f40d1828f75f6d1fdc4957758c3feb414507", + "file:size": 2253141, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_SNWPRB_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_SNWPRB_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(QI_DATA)/Nodes(MSK_SNWPRB_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "SNW_60m": { + "type": "image/jp2", + "title": "Snow probability (SNW) - 60m", + "roles": [ + "data", + "gsd:60m" + ], + "bands": [ + { + "name": "SNW", + "description": "Snow probability" + } + ], + "data_type": "uint8", + "statistics": { + "minimum": 0, + "maximum": 100 + }, + "unit": "%", + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "file:checksum": "16201496677e27b601880f5d680f161bbd57c8e1f600472bb29bcf787e4cbe05a0fb", + "file:size": 584296, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_SNWPRB_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_SNWPRB_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(QI_DATA)/Nodes(MSK_SNWPRB_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "CLD_20m": { + "type": "image/jp2", + "title": "Cloud probability (CLD) - 20m", + "roles": [ + "data", + "gsd:20m" + ], + "bands": [ + { + "name": "CLD", + "description": "Cloud probability" + } + ], + "data_type": "uint8", + "statistics": { + "minimum": 0, + "maximum": 100 + }, + "unit": "%", + "gsd": 20, + "proj:code": "EPSG:32613", + "proj:shape": [ + 5490, + 5490 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 20, + 0, + 499980, + 0, + -20, + 7000020 + ], + "file:checksum": "16209639b3f0369538067a4f1d7677603cd46cbbdcbe30925e948e055ccf94969339", + "file:size": 468488, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_CLDPRB_20m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_CLDPRB_20m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(QI_DATA)/Nodes(MSK_CLDPRB_20m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "CLD_60m": { + "type": "image/jp2", + "title": "Cloud probability (CLD) - 60m", + "roles": [ + "data", + "gsd:60m" + ], + "bands": [ + { + "name": "CLD", + "description": "Cloud probability" + } + ], + "data_type": "uint8", + "statistics": { + "minimum": 0, + "maximum": 100 + }, + "unit": "%", + "gsd": 60, + "proj:code": "EPSG:32613", + "proj:shape": [ + 1830, + 1830 + ], + "proj:bbox": [ + 499980, + 6890220, + 609780, + 7000020 + ], + "proj:transform": [ + 60, + 0, + 499980, + 0, + -60, + 7000020 + ], + "file:checksum": "16204d6d982119a66c575438435cb8b036a031f844a667c0bf0a7c74ae9e4f6b8b40", + "file:size": 162594, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_CLDPRB_60m.jp2", + "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_CLDPRB_60m.jp2", + "alternate:name": "S3", + "auth:refs": [ + "s3" + ], + "storage:refs": [ + "cdse-s3", + "creodias-s3" + ], + "alternate": { + "https": { + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(QI_DATA)/Nodes(MSK_CLDPRB_60m.jp2)/$value", + "alternate:name": "HTTPS", + "auth:refs": [ + "oidc" + ], + "storage:refs": [] + } + } + }, + "Product": { + "type": "application/zip", + "title": "Zipped product", + "roles": [ + "data", + "metadata", + "archive" + ], + "file:checksum": "d501103ae2f90d5e19911094dafdc192fe86ad", + "file:size": 981355618, + "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE.zip", + "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/$value", + "auth:refs": [ + "oidc" + ] + } + }, + "stac_extensions": [ + "https://cs-si.github.io/eopf-stac-extension/v1.2.0/schema.json", + "https://stac-extensions.github.io/alternate-assets/v1.2.0/schema.json", + "https://stac-extensions.github.io/authentication/v1.1.0/schema.json", + "https://stac-extensions.github.io/classification/v2.0.0/schema.json", + "https://stac-extensions.github.io/eo/v2.0.0/schema.json", + "https://stac-extensions.github.io/file/v2.1.0/schema.json", + "https://stac-extensions.github.io/grid/v1.1.0/schema.json", + "https://stac-extensions.github.io/processing/v1.2.0/schema.json", + "https://stac-extensions.github.io/product/v1.0.0/schema.json", + "https://stac-extensions.github.io/projection/v2.0.0/schema.json", + "https://stac-extensions.github.io/raster/v2.0.0/schema.json", + "https://stac-extensions.github.io/sat/v1.1.0/schema.json", + "https://stac-extensions.github.io/storage/v2.0.0/schema.json", + "https://stac-extensions.github.io/timestamps/v1.1.0/schema.json", + "https://stac-extensions.github.io/view/v1.1.0/schema.json" + ] +} \ No newline at end of file diff --git a/test.py b/test.py new file mode 100644 index 0000000..1847a6c --- /dev/null +++ b/test.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +""" +Test script for get_validator function with storage extension. +""" + +import json +from stac_validator.fast_validator import get_validator + +# Load test item with storage extension +with open("test.json", "r") as f: + item = json.load(f) + +# Get extensions from item +extensions = item.get("stac_extensions", []) +stac_version = item.get("stac_version", "1.1.0") +stac_type = item.get("type", "Feature") + +print("=" * 70) +print(f"Testing get_validator with {len(extensions)} extensions") +print(f"STAC Type: {stac_type}, Version: {stac_version}") +print("=" * 70) +print() + +# Get the validator +validator, cached = get_validator(stac_type, stac_version, extensions) + +print(f"Validator obtained (cached={cached})") +print() + +# Test validation +try: + validator(item) + print("✅ Validation passed!") +except Exception as e: + print(f"❌ Validation failed: {e}") +print() + +print("=" * 70) +print("Test completed!") +print("=" * 70) From 5ff01c67f4694095e08c39923af6b659041b50b7 Mon Sep 17 00:00:00 2001 From: jonhealy1 Date: Thu, 30 Jul 2026 14:37:42 +0800 Subject: [PATCH 5/7] clean-up --- test.json | 3095 ----------------------------------------------------- test.py | 40 - 2 files changed, 3135 deletions(-) delete mode 100644 test.json delete mode 100644 test.py diff --git a/test.json b/test.json deleted file mode 100644 index e170f3f..0000000 --- a/test.json +++ /dev/null @@ -1,3095 +0,0 @@ -{ - "type": "Feature", - "stac_version": "1.1.0", - "collection": "sentinel-2-l2a", - "id": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440", - "properties": { - "created": "2024-10-15T19:47:28.107000Z", - "updated": "2025-01-27T14:31:03.471399Z", - "published": "2024-11-20T20:23:22.150523Z", - "eopf:origin_datetime": "2024-10-15T19:47:28.107000Z", - "auth:schemes": { - "s3": { - "type": "s3" - }, - "oidc": { - "type": "openIdConnect", - "openIdConnectUrl": "https://identity.dataspace.copernicus.eu/auth/realms/CDSE/.well-known/openid-configuration" - } - }, - "storage:schemes": { - "cdse-s3": { - "title": "Copernicus Data Space Ecosystem S3", - "description": "This endpoint provides access to EO data which is stored on the object storage of both CloudFerro Cloud and OpenTelekom Cloud (OTC). See the [documentation](https://documentation.dataspace.copernicus.eu/APIs/S3.html) for more information, including how to get credentials.", - "platform": "https://eodata.dataspace.copernicus.eu", - "requester_pays": false, - "type": "custom-s3", - "class": "hot" - }, - "creodias-s3": { - "title": "CREODIAS S3", - "description": "Comprehensive Earth Observation Data (EODATA) archive offered by CREODIAS as a commercial part of CDSE, designed to provide users with access to a vast repository of satellite data without predefined quota limits.", - "platform": "https://eodata.cloudferro.com", - "requester_pays": true, - "type": "custom-s3", - "class": "hot" - } - }, - "datetime": "2022-02-17T18:34:31.024000Z", - "start_datetime": "2022-02-17T18:34:31.024000Z", - "end_datetime": "2022-02-17T18:34:31.024000Z", - "platform": "sentinel-2a", - "constellation": "sentinel-2", - "instruments": [ - "msi" - ], - "gsd": 10, - "processing:level": "L2", - "processing:datetime": "2024-05-16T02:24:40.000000Z", - "product:type": "S2MSI2A", - "product:timeliness": "PT24H", - "product:timeliness_category": "NRT", - "eo:cloud_cover": 41.21, - "eo:snow_cover": 58.787221, - "sat:orbit_state": "descending", - "sat:relative_orbit": 27, - "sat:absolute_orbit": 34773, - "sat:platform_international_designator": "2015-028A", - "grid:code": "MGRS-13VEK", - "view:sun_azimuth": 171.648044763495, - "view:sun_elevation": 15.295893422957406, - "eopf:datastrip_id": "S2A_OPER_MSI_L2A_DS_S2RP_20240516T022440_S20220217T183428_N05.10", - "eopf:datatake_id": "GS2A_20220217T183431_034773_N05.10", - "eopf:instrument_mode": "INS-NOBS", - "statistics": { - "nodata": 0.0, - "saturated_defective": 0.0, - "dark_area": 0.00061, - "cloud_shadow": 0.000113, - "vegetation": 0.0, - "not_vegetated": 0.002459, - "water": 0.003006, - "unclassified": 0.0, - "medium_proba_clouds": 30.344793000000003, - "high_proba_clouds": 1.042946, - "thin_cirrus": 9.818849 - }, - "processing:version": "05.10", - "view:azimuth": 258.25457702138465, - "view:incidence_angle": 4.031093554485443, - "_private": { - "product_size": 981320632, - "product_uuid": "7d10d1f8-e4a8-40d8-af15-4c227639d61a", - "product_name": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE", - "visible": true - }, - "processing:software": { - "eometadatatool": "260409140520" - }, - "processing:facility": "ESA", - "expires": "2262-01-01T00:00:00.000000Z" - }, - "bbox": [ - -105.00039660496051, - 62.127976558918824, - -102.8239753454063, - 63.129519214116456 - ], - "geometry": { - "type": "Polygon", - "coordinates": [ - [ - [ - -105.00039660496051, - 63.129519214116456 - ], - [ - -105.00038365667547, - 62.14398151095575 - ], - [ - -102.89495280424933, - 62.127976558918824 - ], - [ - -102.8239753454063, - 63.112828904116384 - ], - [ - -105.00039660496051, - 63.129519214116456 - ] - ] - ] - }, - "links": [ - { - "rel": "collection", - "href": "./collection.json", - "type": "application/json", - "title": "Simple Example Collection" - }, - { - "rel": "enclosure", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/", - "type": "application/x-directory", - "title": "S3 path to source directory", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ] - }, - { - "rel": "version-history", - "href": "https://trace.dataspace.copernicus.eu/api/v1/traces/name/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE.zip", - "type": "application/json", - "title": "Product history record from the CDSE traceability service" - } - ], - "assets": { - "safe_manifest": { - "type": "application/xml", - "title": "manifest.safe", - "roles": [ - "metadata" - ], - "file:checksum": "d5011054939b72925a0b810b35a36f2bb8c56e", - "file:size": 68890, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/manifest.safe", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/manifest.safe", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(manifest.safe)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "product_metadata": { - "type": "application/xml", - "title": "MTD_MSIL2A.xml", - "roles": [ - "metadata" - ], - "file:checksum": "d5012097f6a31564beed318f8d83aca261a88aae121918efd704355a7a2c0929fb7441", - "file:size": 55350, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/MTD_MSIL2A.xml", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/MTD_MSIL2A.xml", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(MTD_MSIL2A.xml)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "granule_metadata": { - "type": "application/xml", - "title": "MTD_TL.xml", - "roles": [ - "metadata" - ], - "file:checksum": "d5012071d82d9f35f1078162d0731b0539fd0f53bb22e5f1eab6686e373d3363b5442e", - "file:size": 626494, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/MTD_TL.xml", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/MTD_TL.xml", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(MTD_TL.xml)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "inspire_metadata": { - "type": "application/xml", - "title": "INSPIRE.xml", - "roles": [ - "metadata" - ], - "file:checksum": "d5012063c88c98a0ef559dc07b4530df54e5eb694054af95bf3779ba2e1481f296d6b9", - "file:size": 18659, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/INSPIRE.xml", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/INSPIRE.xml", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(INSPIRE.xml)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "datastrip_metadata": { - "type": "application/xml", - "title": "MTD_DS.xml", - "roles": [ - "metadata" - ], - "file:checksum": "d50120602e3fc156a360665c4f04ac4cc171ece29a5d908783098cc2e1b78c82457b19", - "file:size": 19290509, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/DATASTRIP/DS_S2RP_20240516T022440_S20220217T183428/MTD_DS.xml", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/DATASTRIP/DS_S2RP_20240516T022440_S20220217T183428/MTD_DS.xml", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(DATASTRIP)/Nodes(DS_S2RP_20240516T022440_S20220217T183428)/Nodes(MTD_DS.xml)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "thumbnail": { - "type": "image/jpeg", - "title": "Quicklook", - "roles": [ - "thumbnail", - "overview" - ], - "data_type": "uint8", - "proj:code": null, - "proj:shape": [ - 343, - 343 - ], - "file:checksum": "d501106acfe57afc263b064c198c1a369096e8", - "file:size": 2563, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440-ql.jpg", - "href": "https://datahub.creodias.eu/odata/v1/Assets(2300ed19-15f5-45e3-8b6d-cff89bf45dd7)/$value", - "alternate:name": "HTTPS", - "alternate": { - "s3": { - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440-ql.jpg", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ] - } - } - }, - "B01_20m": { - "type": "image/jp2", - "title": "Coastal aerosol (band 1) - 20m", - "roles": [ - "data", - "reflectance", - "sampling:upsampled", - "gsd:20m" - ], - "bands": [ - { - "name": "B01", - "description": "Coastal aerosol (band 1)", - "eo:center_wavelength": 0.443, - "eo:full_width_half_max": 0.228, - "eo:common_name": "coastal" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "view:azimuth": 256.992210540651, - "view:incidence_angle": 4.26594120894625, - "file:checksum": "1620a7037ba110200a135793fb78f6d88143ae2410614e96070944f67cc98dc2d057", - "file:size": 26288482, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B01_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B01_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B01_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B01_60m": { - "type": "image/jp2", - "title": "Coastal aerosol (band 1) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:60m" - ], - "bands": [ - { - "name": "B01", - "description": "Coastal aerosol (band 1)", - "eo:center_wavelength": 0.443, - "eo:full_width_half_max": 0.228, - "eo:common_name": "coastal" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 256.992210540651, - "view:incidence_angle": 4.26594120894625, - "file:checksum": "162077c014d541f15041ea986e04b10880f4291fa393e97e09b798d1c137052d8ba1", - "file:size": 3746776, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B01_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B01_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B01_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B02_10m": { - "type": "image/jp2", - "title": "Blue (band 2) - 10m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:10m" - ], - "bands": [ - { - "name": "B02", - "description": "Blue (band 2)", - "eo:center_wavelength": 0.493, - "eo:full_width_half_max": 0.267, - "eo:common_name": "blue" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 10, - "proj:code": "EPSG:32613", - "proj:shape": [ - 10980, - 10980 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 10, - 0, - 499980, - 0, - -10, - 7000020 - ], - "view:azimuth": 261.362070148879, - "view:incidence_angle": 3.73656335544205, - "file:checksum": "1620224759635fcc8684cf2c5de1c1e96e222558baeba515e8768cecf9842ed70fd5", - "file:size": 134936576, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B02_10m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B02_10m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_B02_10m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B02_20m": { - "type": "image/jp2", - "title": "Blue (band 2) - 20m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:20m" - ], - "bands": [ - { - "name": "B02", - "description": "Blue (band 2)", - "eo:center_wavelength": 0.493, - "eo:full_width_half_max": 0.267, - "eo:common_name": "blue" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "view:azimuth": 261.362070148879, - "view:incidence_angle": 3.73656335544205, - "file:checksum": "16200a5f308c63e61cc81a175434c9af454c465ce9068f490206a6947c789317e448", - "file:size": 33887241, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B02_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B02_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B02_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B02_60m": { - "type": "image/jp2", - "title": "Blue (band 2) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:60m" - ], - "bands": [ - { - "name": "B02", - "description": "Blue (band 2)", - "eo:center_wavelength": 0.493, - "eo:full_width_half_max": 0.267, - "eo:common_name": "blue" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 261.362070148879, - "view:incidence_angle": 3.73656335544205, - "file:checksum": "162033809b0c7d0dcb0a082131bae855dbb889eac3a97e752194a33fe0bb5ccdff70", - "file:size": 3760543, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B02_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B02_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B02_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B03_10m": { - "type": "image/jp2", - "title": "Green (band 3) - 10m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:10m" - ], - "bands": [ - { - "name": "B03", - "description": "Green (band 3)", - "eo:center_wavelength": 0.56, - "eo:full_width_half_max": 0.291, - "eo:common_name": "green" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 10, - "proj:code": "EPSG:32613", - "proj:shape": [ - 10980, - 10980 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 10, - 0, - 499980, - 0, - -10, - 7000020 - ], - "view:azimuth": 259.572520298079, - "view:incidence_angle": 3.82482483419917, - "file:checksum": "16202a27bb4b4c65d12e75291dae975d811d7b0f2968adf4d0ffb7e5ab40bf3ad13c", - "file:size": 134930513, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B03_10m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B03_10m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_B03_10m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B03_20m": { - "type": "image/jp2", - "title": "Green (band 3) - 20m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:20m" - ], - "bands": [ - { - "name": "B03", - "description": "Green (band 3)", - "eo:center_wavelength": 0.56, - "eo:full_width_half_max": 0.291, - "eo:common_name": "green" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "view:azimuth": 259.572520298079, - "view:incidence_angle": 3.82482483419917, - "file:checksum": "16206f87dc68854b35336e35615a60cb69166273d7a4db460694a57f1d1ef01019cd", - "file:size": 33865862, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B03_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B03_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B03_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B03_60m": { - "type": "image/jp2", - "title": "Green (band 3) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:60m" - ], - "bands": [ - { - "name": "B03", - "description": "Green (band 3)", - "eo:center_wavelength": 0.56, - "eo:full_width_half_max": 0.291, - "eo:common_name": "green" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 259.572520298079, - "view:incidence_angle": 3.82482483419917, - "file:checksum": "16209e33438db6a9cc513f81acd1687a67be21cc038ff234bd66955a5e98e5c6f2a6", - "file:size": 3756217, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B03_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B03_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B03_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B04_10m": { - "type": "image/jp2", - "title": "Red (band 4) - 10m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:10m" - ], - "bands": [ - { - "name": "B04", - "description": "Red (band 4)", - "eo:center_wavelength": 0.665, - "eo:full_width_half_max": 0.342, - "eo:common_name": "red" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 10, - "proj:code": "EPSG:32613", - "proj:shape": [ - 10980, - 10980 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 10, - 0, - 499980, - 0, - -10, - 7000020 - ], - "view:azimuth": 258.542326601019, - "view:incidence_angle": 3.92412444481274, - "file:checksum": "16203cdac7cd32c3f423b2f8625c854dafa32b8a70fde6a1b1a6891115d7b95be6b9", - "file:size": 134924703, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B04_10m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B04_10m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_B04_10m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B04_20m": { - "type": "image/jp2", - "title": "Red (band 4) - 20m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:20m" - ], - "bands": [ - { - "name": "B04", - "description": "Red (band 4)", - "eo:center_wavelength": 0.665, - "eo:full_width_half_max": 0.342, - "eo:common_name": "red" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "view:azimuth": 258.542326601019, - "view:incidence_angle": 3.92412444481274, - "file:checksum": "162084f0e28e3b1b9846fb0f5ef3df8113ac57d04db40f3b3db456f45a8dc44f7f42", - "file:size": 33862074, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B04_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B04_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B04_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B04_60m": { - "type": "image/jp2", - "title": "Red (band 4) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:60m" - ], - "bands": [ - { - "name": "B04", - "description": "Red (band 4)", - "eo:center_wavelength": 0.665, - "eo:full_width_half_max": 0.342, - "eo:common_name": "red" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 258.542326601019, - "view:incidence_angle": 3.92412444481274, - "file:checksum": "1620106da9eca2a0026da76dbbfb429c39576f63c06104c75671ef2fd4fe5bdeae26", - "file:size": 3756468, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B04_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B04_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B04_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B05_20m": { - "type": "image/jp2", - "title": "Red edge 1 (band 5) - 20m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:20m" - ], - "bands": [ - { - "name": "B05", - "description": "Red edge 1 (band 5)", - "eo:center_wavelength": 0.704, - "eo:full_width_half_max": 0.357, - "eo:common_name": "rededge071" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "view:azimuth": 258.012411443611, - "view:incidence_angle": 3.98772117916769, - "file:checksum": "1620dfe8ad1920bc9d4ac42e72e812f4d28ea3523a8e026736005e8840680216de01", - "file:size": 33882543, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B05_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B05_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B05_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B05_60m": { - "type": "image/jp2", - "title": "Red edge 1 (band 5) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:60m" - ], - "bands": [ - { - "name": "B05", - "description": "Red edge 1 (band 5)", - "eo:center_wavelength": 0.704, - "eo:full_width_half_max": 0.357, - "eo:common_name": "rededge071" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 258.012411443611, - "view:incidence_angle": 3.98772117916769, - "file:checksum": "1620625422656cce1b2504ade8f56e70548eb62a67be9193f4088f3e232c1a05ccf7", - "file:size": 3753853, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B05_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B05_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B05_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B06_20m": { - "type": "image/jp2", - "title": "Red edge 2 (band 6) - 20m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:20m" - ], - "bands": [ - { - "name": "B06", - "description": "Red edge 2 (band 6)", - "eo:center_wavelength": 0.741, - "eo:full_width_half_max": 0.374, - "eo:common_name": "rededge075" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "view:azimuth": 257.659941508294, - "view:incidence_angle": 4.04830051441099, - "file:checksum": "16207b5be512f7e5817545d51d61a5d65bb0e551bd69adc0d7225f61d79b054ebf82", - "file:size": 33908603, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B06_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B06_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B06_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B06_60m": { - "type": "image/jp2", - "title": "Red edge 2 (band 6) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:60m" - ], - "bands": [ - { - "name": "B06", - "description": "Red edge 2 (band 6)", - "eo:center_wavelength": 0.741, - "eo:full_width_half_max": 0.374, - "eo:common_name": "rededge075" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 257.659941508294, - "view:incidence_angle": 4.04830051441099, - "file:checksum": "1620d335dd9f9a103543025c2ddbcd5c78bf118e51e30cdc396e5598c55dbddc9c31", - "file:size": 3754908, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B06_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B06_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B06_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B07_20m": { - "type": "image/jp2", - "title": "Red edge 3 (band 7) - 20m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:20m" - ], - "bands": [ - { - "name": "B07", - "description": "Red edge 3 (band 7)", - "eo:center_wavelength": 0.783, - "eo:full_width_half_max": 0.399, - "eo:common_name": "rededge078" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "view:azimuth": 257.394611473535, - "view:incidence_angle": 4.11642691107617, - "file:checksum": "1620f71cebf9a3956f7b4a8efb9b66ecbd547adeae17ab4377fa0be85e262fb63229", - "file:size": 33737706, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B07_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B07_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B07_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B07_60m": { - "type": "image/jp2", - "title": "Red edge 3 (band 7) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:60m" - ], - "bands": [ - { - "name": "B07", - "description": "Red edge 3 (band 7)", - "eo:center_wavelength": 0.783, - "eo:full_width_half_max": 0.399, - "eo:common_name": "rededge078" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 257.394611473535, - "view:incidence_angle": 4.11642691107617, - "file:checksum": "162047860fb596aa0a12ede8602081d1c390d862d897d575379ea8a5fdbd2499bf0b", - "file:size": 3755735, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B07_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B07_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B07_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B08_10m": { - "type": "image/jp2", - "title": "NIR 1 (band 8) - 10m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:10m" - ], - "bands": [ - { - "name": "B08", - "description": "NIR 1 (band 8)", - "eo:center_wavelength": 0.833, - "eo:full_width_half_max": 0.454, - "eo:common_name": "nir" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 10, - "proj:code": "EPSG:32613", - "proj:shape": [ - 10980, - 10980 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 10, - 0, - 499980, - 0, - -10, - 7000020 - ], - "view:azimuth": 260.357074294697, - "view:incidence_angle": 3.77786560046901, - "file:checksum": "1620389bde311c0cab89b53e65f134840e5aa59781d63f5adb86fdcc18869d115397", - "file:size": 135572460, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B08_10m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_B08_10m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_B08_10m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B8A_20m": { - "type": "image/jp2", - "title": "NIR 2 (band 8A) - 20m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:20m" - ], - "bands": [ - { - "name": "B8A", - "description": "NIR 2 (band 8A)", - "eo:center_wavelength": 0.865, - "eo:full_width_half_max": 0.441, - "eo:common_name": "nir08" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "view:azimuth": 257.200427936824, - "view:incidence_angle": 4.18760401565654, - "file:checksum": "1620b0690d6df57f09aa58e248ed020d7e70ceb9330134bc2296e927d6593e467d95", - "file:size": 33892723, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B8A_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B8A_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B8A_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B8A_60m": { - "type": "image/jp2", - "title": "NIR 2 (band 8A) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:60m" - ], - "bands": [ - { - "name": "B8A", - "description": "NIR 2 (band 8A)", - "eo:center_wavelength": 0.865, - "eo:full_width_half_max": 0.441, - "eo:common_name": "nir08" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 257.200427936824, - "view:incidence_angle": 4.18760401565654, - "file:checksum": "162047961bf2198fc482e98b552adfd39775bc451536c391165c260dda47bc412d11", - "file:size": 3754679, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B8A_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B8A_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B8A_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B09_60m": { - "type": "image/jp2", - "title": "NIR 3 (band 9) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:60m" - ], - "bands": [ - { - "name": "B09", - "description": "NIR 3 (band 9)", - "eo:center_wavelength": 0.945, - "eo:full_width_half_max": 0.479, - "eo:common_name": "nir09" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 256.868597711599, - "view:incidence_angle": 4.34525828419059, - "file:checksum": "1620103687916ac585c7170482ed8435991ab94824a90dff9920f0162c83a17fdee9", - "file:size": 3746593, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B09_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B09_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B09_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B11_20m": { - "type": "image/jp2", - "title": "SWIR 1 (band 11) - 20m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:20m" - ], - "bands": [ - { - "name": "B11", - "description": "SWIR 1 (band 11)", - "eo:center_wavelength": 1.614, - "eo:full_width_half_max": 0.841, - "eo:common_name": "swir16" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "view:azimuth": 257.658135202975, - "view:incidence_angle": 4.05510707830467, - "file:checksum": "162097a003c34189aa2c692300663ed484a1d6ca647bf7eccc437541e4059bb9382f", - "file:size": 29270289, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B11_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B11_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B11_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B11_60m": { - "type": "image/jp2", - "title": "SWIR 1 (band 11) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:60m" - ], - "bands": [ - { - "name": "B11", - "description": "SWIR 1 (band 11)", - "eo:center_wavelength": 1.614, - "eo:full_width_half_max": 0.841, - "eo:common_name": "swir16" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 257.658135202975, - "view:incidence_angle": 4.05510707830467, - "file:checksum": "16200c1b0cb921b0a25769c3ec7ab8ebfa5baae912968d08264d5e34c6d8c9cbb5f9", - "file:size": 3748594, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B11_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B11_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B11_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B12_20m": { - "type": "image/jp2", - "title": "SWIR 2 (band 12) - 20m", - "roles": [ - "data", - "reflectance", - "sampling:original", - "gsd:20m" - ], - "bands": [ - { - "name": "B12", - "description": "SWIR 2 (band 12)", - "eo:center_wavelength": 2.202, - "eo:full_width_half_max": 1.16, - "eo:common_name": "swir22" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "view:azimuth": 257.094739361901, - "view:incidence_angle": 4.22031786678955, - "file:checksum": "1620dffcb7196bb3e3d00c1d96d12216c1cd4c4fbf6a12d284f5b93397c3dc7a3e0f", - "file:size": 30130747, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B12_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_B12_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_B12_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "B12_60m": { - "type": "image/jp2", - "title": "SWIR 2 (band 12) - 60m", - "roles": [ - "data", - "reflectance", - "sampling:downsampled", - "gsd:60m" - ], - "bands": [ - { - "name": "B12", - "description": "SWIR 2 (band 12)", - "eo:center_wavelength": 2.202, - "eo:full_width_half_max": 1.16, - "eo:common_name": "swir22" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.0001, - "raster:offset": -0.1, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "view:azimuth": 257.094739361901, - "view:incidence_angle": 4.22031786678955, - "file:checksum": "16200a9726f49bbb1d39884eba18df4497d262dabec4bb07a353a27ec795a77d1449", - "file:size": 3724515, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B12_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_B12_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_B12_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "TCI_10m": { - "type": "image/jp2", - "title": "True color image", - "roles": [ - "visual", - "sampling:original", - "gsd:10m" - ], - "bands": [ - { - "name": "B04", - "description": "Red (band 4)", - "eo:center_wavelength": 0.665, - "eo:full_width_half_max": 0.342, - "eo:common_name": "red" - }, - { - "name": "B03", - "description": "Green (band 3)", - "eo:center_wavelength": 0.56, - "eo:full_width_half_max": 0.291, - "eo:common_name": "green" - }, - { - "name": "B02", - "description": "Blue (band 2)", - "eo:center_wavelength": 0.493, - "eo:full_width_half_max": 0.267, - "eo:common_name": "blue" - } - ], - "data_type": "uint8", - "nodata": 0, - "gsd": 10, - "proj:code": "EPSG:32613", - "proj:shape": [ - 10980, - 10980 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 10, - 0, - 499980, - 0, - -10, - 7000020 - ], - "file:checksum": "162011860e42005c87603518300f88648e124759d889d5720e34467d0222551fe6d9", - "file:size": 112458, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_TCI_10m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_TCI_10m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_TCI_10m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "TCI_20m": { - "type": "image/jp2", - "title": "True color image", - "roles": [ - "visual", - "sampling:downsampled", - "gsd:20m" - ], - "bands": [ - { - "name": "B04", - "description": "Red (band 4)", - "eo:center_wavelength": 0.665, - "eo:full_width_half_max": 0.342, - "eo:common_name": "red" - }, - { - "name": "B03", - "description": "Green (band 3)", - "eo:center_wavelength": 0.56, - "eo:full_width_half_max": 0.291, - "eo:common_name": "green" - }, - { - "name": "B02", - "description": "Blue (band 2)", - "eo:center_wavelength": 0.493, - "eo:full_width_half_max": 0.267, - "eo:common_name": "blue" - } - ], - "data_type": "uint8", - "nodata": 0, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "file:checksum": "1620695d5c1891028c922e78f286d0cbc5e881ed956d5fe83dd4cfdbc059bc8f5434", - "file:size": 30018, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_TCI_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_TCI_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_TCI_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "TCI_60m": { - "type": "image/jp2", - "title": "True color image", - "roles": [ - "visual", - "sampling:downsampled", - "gsd:60m" - ], - "bands": [ - { - "name": "B04", - "description": "Red (band 4)", - "eo:center_wavelength": 0.665, - "eo:full_width_half_max": 0.342, - "eo:common_name": "red" - }, - { - "name": "B03", - "description": "Green (band 3)", - "eo:center_wavelength": 0.56, - "eo:full_width_half_max": 0.291, - "eo:common_name": "green" - }, - { - "name": "B02", - "description": "Blue (band 2)", - "eo:center_wavelength": 0.493, - "eo:full_width_half_max": 0.267, - "eo:common_name": "blue" - } - ], - "data_type": "uint8", - "nodata": 0, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "file:checksum": "1620820c261952402bb12a887e58c26d46d450ab357ac025caaae5c6bc31847dafba", - "file:size": 10830, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_TCI_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_TCI_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_TCI_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "AOT_10m": { - "type": "image/jp2", - "title": "Aerosol optical thickness (AOT) - 10m", - "roles": [ - "data", - "gsd:10m" - ], - "bands": [ - { - "name": "AOT", - "description": "Aerosol optical thickness" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.001, - "raster:offset": 0.0, - "gsd": 10, - "proj:code": "EPSG:32613", - "proj:shape": [ - 10980, - 10980 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 10, - 0, - 499980, - 0, - -10, - 7000020 - ], - "file:checksum": "1620052c0d3911a907dd0d76992d5b201a2e64cef3dc21d7c2df9fe6a2f82f427e15", - "file:size": 113232, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_AOT_10m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_AOT_10m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_AOT_10m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "AOT_20m": { - "type": "image/jp2", - "title": "Aerosol optical thickness (AOT) - 20m", - "roles": [ - "data", - "gsd:20m" - ], - "bands": [ - { - "name": "AOT", - "description": "Aerosol optical thickness" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.001, - "raster:offset": 0.0, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "file:checksum": "16200ea99602a888b6bfdd1bdd69745fa0b64b0b37b4ac64aa9b8216a32a0959b8cc", - "file:size": 144933, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_AOT_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_AOT_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_AOT_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "AOT_60m": { - "type": "image/jp2", - "title": "Aerosol optical thickness (AOT) - 60m", - "roles": [ - "data", - "gsd:60m" - ], - "bands": [ - { - "name": "AOT", - "description": "Aerosol optical thickness" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.001, - "raster:offset": 0.0, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "file:checksum": "1620b6c1636d4e897b6f63e138e365cd5c71b10edf56c8acd7e5b072ce42fe8391a4", - "file:size": 58274, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_AOT_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_AOT_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_AOT_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "SCL_20m": { - "type": "image/jp2", - "title": "Scene classification map (SCL) - 20m", - "roles": [ - "data", - "sampling:original", - "gsd:20m" - ], - "data_type": "uint8", - "nodata": 0, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "classification:classes": [ - { - "value": 0, - "name": "no_data", - "nodata": true, - "percentage": 0.0 - }, - { - "value": 1, - "name": "saturated_or_defective", - "percentage": 0.0 - }, - { - "value": 2, - "name": "dark_area_pixels", - "percentage": 0.00061 - }, - { - "value": 3, - "name": "cloud_shadows", - "percentage": 0.000113 - }, - { - "value": 4, - "name": "vegetation", - "percentage": 0.0 - }, - { - "value": 5, - "name": "not_vegetated", - "percentage": 0.002459 - }, - { - "value": 6, - "name": "water", - "percentage": 0.003006 - }, - { - "value": 7, - "name": "unclassified", - "percentage": 0.0 - }, - { - "value": 8, - "name": "cloud_medium_probability", - "percentage": 30.344793000000003 - }, - { - "value": 9, - "name": "cloud_high_probability", - "percentage": 1.042946 - }, - { - "value": 10, - "name": "thin_cirrus", - "percentage": 9.818849 - }, - { - "value": 11, - "name": "snow", - "percentage": 58.787221 - } - ], - "file:checksum": "162022547079e654f6c047adb33d0b74f8bdffc90e65a9f95264715f975d613590b1", - "file:size": 336193, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_SCL_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_SCL_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_SCL_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "SCL_60m": { - "type": "image/jp2", - "title": "Scene classification map (SCL) - 60m", - "roles": [ - "data", - "sampling:downsampled", - "gsd:60m" - ], - "data_type": "uint8", - "nodata": 0, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "classification:classes": [ - { - "value": 0, - "name": "no_data", - "nodata": true - }, - { - "value": 1, - "name": "saturated_or_defective" - }, - { - "value": 2, - "name": "dark_area_pixels" - }, - { - "value": 3, - "name": "cloud_shadows" - }, - { - "value": 4, - "name": "vegetation" - }, - { - "value": 5, - "name": "not_vegetated" - }, - { - "value": 6, - "name": "water" - }, - { - "value": 7, - "name": "unclassified" - }, - { - "value": 8, - "name": "cloud_medium_probability" - }, - { - "value": 9, - "name": "cloud_high_probability" - }, - { - "value": 10, - "name": "thin_cirrus" - }, - { - "value": 11, - "name": "snow" - } - ], - "file:checksum": "162018468cc6dd10167e7455c7dabba40b989bab9d8f15e91789ec8d13070d013e28", - "file:size": 102257, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_SCL_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_SCL_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_SCL_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "WVP_10m": { - "type": "image/jp2", - "title": "Water vapour (WVP) - 10m", - "roles": [ - "data", - "gsd:10m" - ], - "bands": [ - { - "name": "WVP", - "description": "Water vapour" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.001, - "raster:offset": 0.0, - "gsd": 10, - "proj:code": "EPSG:32613", - "proj:shape": [ - 10980, - 10980 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 10, - 0, - 499980, - 0, - -10, - 7000020 - ], - "file:checksum": "1620616723aa27b95cd9d4c205ccddce63a7dfdebe13efd721f23ee146c8dea14e4c", - "file:size": 36372364, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_WVP_10m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R10m/T13VEK_20220217T183431_WVP_10m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R10m)/Nodes(T13VEK_20220217T183431_WVP_10m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "WVP_20m": { - "type": "image/jp2", - "title": "Water vapour (WVP) - 20m", - "roles": [ - "data", - "gsd:20m" - ], - "bands": [ - { - "name": "WVP", - "description": "Water vapour" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.001, - "raster:offset": 0.0, - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "file:checksum": "16208b4786085b6a7513a815ba2d952a3b034b19d85dc179ec1d3201f658db9a9eda", - "file:size": 12904648, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_WVP_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R20m/T13VEK_20220217T183431_WVP_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R20m)/Nodes(T13VEK_20220217T183431_WVP_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "WVP_60m": { - "type": "image/jp2", - "title": "Water vapour (WVP) - 60m", - "roles": [ - "data", - "gsd:60m" - ], - "bands": [ - { - "name": "WVP", - "description": "Water vapour" - } - ], - "data_type": "uint16", - "nodata": 0, - "raster:scale": 0.001, - "raster:offset": 0.0, - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "file:checksum": "1620f55dce81a3a268e43f0f2649fee1eaeac98c7ba50d4f82dee62fc9c6e7f9837e", - "file:size": 1949946, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_WVP_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/IMG_DATA/R60m/T13VEK_20220217T183431_WVP_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(IMG_DATA)/Nodes(R60m)/Nodes(T13VEK_20220217T183431_WVP_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "SNW_20m": { - "type": "image/jp2", - "title": "Snow probability (SNW) - 20m", - "roles": [ - "data", - "gsd:20m" - ], - "bands": [ - { - "name": "SNW", - "description": "Snow probability" - } - ], - "data_type": "uint8", - "statistics": { - "minimum": 0, - "maximum": 100 - }, - "unit": "%", - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "file:checksum": "16205dd65fe9ea45b81ebb6f88b63a07f40d1828f75f6d1fdc4957758c3feb414507", - "file:size": 2253141, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_SNWPRB_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_SNWPRB_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(QI_DATA)/Nodes(MSK_SNWPRB_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "SNW_60m": { - "type": "image/jp2", - "title": "Snow probability (SNW) - 60m", - "roles": [ - "data", - "gsd:60m" - ], - "bands": [ - { - "name": "SNW", - "description": "Snow probability" - } - ], - "data_type": "uint8", - "statistics": { - "minimum": 0, - "maximum": 100 - }, - "unit": "%", - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "file:checksum": "16201496677e27b601880f5d680f161bbd57c8e1f600472bb29bcf787e4cbe05a0fb", - "file:size": 584296, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_SNWPRB_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_SNWPRB_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(QI_DATA)/Nodes(MSK_SNWPRB_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "CLD_20m": { - "type": "image/jp2", - "title": "Cloud probability (CLD) - 20m", - "roles": [ - "data", - "gsd:20m" - ], - "bands": [ - { - "name": "CLD", - "description": "Cloud probability" - } - ], - "data_type": "uint8", - "statistics": { - "minimum": 0, - "maximum": 100 - }, - "unit": "%", - "gsd": 20, - "proj:code": "EPSG:32613", - "proj:shape": [ - 5490, - 5490 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 20, - 0, - 499980, - 0, - -20, - 7000020 - ], - "file:checksum": "16209639b3f0369538067a4f1d7677603cd46cbbdcbe30925e948e055ccf94969339", - "file:size": 468488, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_CLDPRB_20m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_CLDPRB_20m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(QI_DATA)/Nodes(MSK_CLDPRB_20m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "CLD_60m": { - "type": "image/jp2", - "title": "Cloud probability (CLD) - 60m", - "roles": [ - "data", - "gsd:60m" - ], - "bands": [ - { - "name": "CLD", - "description": "Cloud probability" - } - ], - "data_type": "uint8", - "statistics": { - "minimum": 0, - "maximum": 100 - }, - "unit": "%", - "gsd": 60, - "proj:code": "EPSG:32613", - "proj:shape": [ - 1830, - 1830 - ], - "proj:bbox": [ - 499980, - 6890220, - 609780, - 7000020 - ], - "proj:transform": [ - 60, - 0, - 499980, - 0, - -60, - 7000020 - ], - "file:checksum": "16204d6d982119a66c575438435cb8b036a031f844a667c0bf0a7c74ae9e4f6b8b40", - "file:size": 162594, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_CLDPRB_60m.jp2", - "href": "s3://eodata/Sentinel-2/MSI/L2A_N0500/2022/02/17/S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE/GRANULE/L2A_T13VEK_A034773_20220217T183428/QI_DATA/MSK_CLDPRB_60m.jp2", - "alternate:name": "S3", - "auth:refs": [ - "s3" - ], - "storage:refs": [ - "cdse-s3", - "creodias-s3" - ], - "alternate": { - "https": { - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/Nodes(S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE)/Nodes(GRANULE)/Nodes(L2A_T13VEK_A034773_20220217T183428)/Nodes(QI_DATA)/Nodes(MSK_CLDPRB_60m.jp2)/$value", - "alternate:name": "HTTPS", - "auth:refs": [ - "oidc" - ], - "storage:refs": [] - } - } - }, - "Product": { - "type": "application/zip", - "title": "Zipped product", - "roles": [ - "data", - "metadata", - "archive" - ], - "file:checksum": "d501103ae2f90d5e19911094dafdc192fe86ad", - "file:size": 981355618, - "file:local_path": "S2A_MSIL2A_20220217T183431_N0510_R027_T13VEK_20240516T022440.SAFE.zip", - "href": "https://download.dataspace.copernicus.eu/odata/v1/Products(7d10d1f8-e4a8-40d8-af15-4c227639d61a)/$value", - "auth:refs": [ - "oidc" - ] - } - }, - "stac_extensions": [ - "https://cs-si.github.io/eopf-stac-extension/v1.2.0/schema.json", - "https://stac-extensions.github.io/alternate-assets/v1.2.0/schema.json", - "https://stac-extensions.github.io/authentication/v1.1.0/schema.json", - "https://stac-extensions.github.io/classification/v2.0.0/schema.json", - "https://stac-extensions.github.io/eo/v2.0.0/schema.json", - "https://stac-extensions.github.io/file/v2.1.0/schema.json", - "https://stac-extensions.github.io/grid/v1.1.0/schema.json", - "https://stac-extensions.github.io/processing/v1.2.0/schema.json", - "https://stac-extensions.github.io/product/v1.0.0/schema.json", - "https://stac-extensions.github.io/projection/v2.0.0/schema.json", - "https://stac-extensions.github.io/raster/v2.0.0/schema.json", - "https://stac-extensions.github.io/sat/v1.1.0/schema.json", - "https://stac-extensions.github.io/storage/v2.0.0/schema.json", - "https://stac-extensions.github.io/timestamps/v1.1.0/schema.json", - "https://stac-extensions.github.io/view/v1.1.0/schema.json" - ] -} \ No newline at end of file diff --git a/test.py b/test.py deleted file mode 100644 index 1847a6c..0000000 --- a/test.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python3 -""" -Test script for get_validator function with storage extension. -""" - -import json -from stac_validator.fast_validator import get_validator - -# Load test item with storage extension -with open("test.json", "r") as f: - item = json.load(f) - -# Get extensions from item -extensions = item.get("stac_extensions", []) -stac_version = item.get("stac_version", "1.1.0") -stac_type = item.get("type", "Feature") - -print("=" * 70) -print(f"Testing get_validator with {len(extensions)} extensions") -print(f"STAC Type: {stac_type}, Version: {stac_version}") -print("=" * 70) -print() - -# Get the validator -validator, cached = get_validator(stac_type, stac_version, extensions) - -print(f"Validator obtained (cached={cached})") -print() - -# Test validation -try: - validator(item) - print("✅ Validation passed!") -except Exception as e: - print(f"❌ Validation failed: {e}") -print() - -print("=" * 70) -print("Test completed!") -print("=" * 70) From 96690f8ea10ef5e5f42743f4c03f7d3759523b5a Mon Sep 17 00:00:00 2001 From: jonhealy1 Date: Thu, 30 Jul 2026 14:43:13 +0800 Subject: [PATCH 6/7] Fix: Use RFC 3339 lexicographical string comparison for datetime validation (Python 3.8/3.9 compatibility) --- stac_validator/fast_validator.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/stac_validator/fast_validator.py b/stac_validator/fast_validator.py index 80df262..5e6bef7 100644 --- a/stac_validator/fast_validator.py +++ b/stac_validator/fast_validator.py @@ -5,7 +5,6 @@ import time from concurrent.futures import Future, ThreadPoolExecutor from contextlib import redirect_stderr, redirect_stdout -from datetime import datetime from typing import Any, Dict, List, Optional, Set, Tuple import click @@ -208,7 +207,12 @@ def __init__( QUIET_MODE = quiet def _validate_datetime_range(self, data: Dict[str, Any]) -> None: - """Ensures start_datetime is not strictly after end_datetime per STAC Spec.""" + """Ensures start_datetime is not strictly after end_datetime per STAC Spec. + + Uses lexicographical string comparison since RFC 3339 timestamps sort + chronologically when compared as strings. This avoids datetime parsing + issues in Python 3.8/3.9 with non-standard ISO 8601 formats. + """ if data.get("type") != "Feature": return @@ -217,17 +221,12 @@ def _validate_datetime_range(self, data: Dict[str, Any]) -> None: end_str = properties.get("end_datetime") if start_str and end_str: - try: - start_dt = datetime.fromisoformat(start_str.replace("Z", "+00:00")) - end_dt = datetime.fromisoformat(end_str.replace("Z", "+00:00")) - - if start_dt > end_dt: - raise ValueError( - f"Logical Error: start_datetime ({start_str}) cannot be strictly after end_datetime ({end_str})" - ) - except ValueError as e: - if "Logical Error" in str(e): - raise + # RFC 3339 timestamps sort lexicographically, so we can compare as strings + # This avoids datetime.fromisoformat() parsing issues in Python 3.8/3.9 + if start_str > end_str: + raise ValueError( + f"Logical Error: start_datetime ({start_str}) cannot be strictly after end_datetime ({end_str})" + ) def _validate_geometry(self, data: Dict[str, Any]) -> None: """Lightweight topology check for global bounds and antimeridian crossings.""" From b7be2c748d1bdae3a050fb08a1349f08e21af375 Mon Sep 17 00:00:00 2001 From: jonhealy1 Date: Thu, 30 Jul 2026 14:46:37 +0800 Subject: [PATCH 7/7] update test runner python versions --- .github/workflows/test-runner.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-runner.yml b/.github/workflows/test-runner.yml index 7ed5ee5..efafbaf 100644 --- a/.github/workflows/test-runner.yml +++ b/.github/workflows/test-runner.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v6