From 08a61a27bb124e3dff442b4813cdd86e3f03c5e0 Mon Sep 17 00:00:00 2001 From: Corentin Musard Date: Wed, 21 Aug 2024 17:09:45 +0200 Subject: [PATCH 1/6] Add dataset icons --- datasets/collections.mdx | 1 + datasets/introduction.mdx | 1 + datasets/loading-data.mdx | 1 + datasets/open-data.mdx | 1 + datasets/timeseries.mdx | 1 + 5 files changed, 5 insertions(+) diff --git a/datasets/collections.mdx b/datasets/collections.mdx index 0a91db9..d26b53f 100644 --- a/datasets/collections.mdx +++ b/datasets/collections.mdx @@ -1,6 +1,7 @@ --- title: Collections description: Learn about Time Series Dataset Collections +icon: layer-group --- Collections are a way of grouping together data points from the same dataset. They are useful for representing diff --git a/datasets/introduction.mdx b/datasets/introduction.mdx index 16e66cb..e177390 100644 --- a/datasets/introduction.mdx +++ b/datasets/introduction.mdx @@ -1,6 +1,7 @@ --- title: Introduction description: Learn about Tilebox Datasets +icon: house --- As the name suggests, time series datasets refer to a certain kind of datasets where each data point is associated with a timestamp. diff --git a/datasets/loading-data.mdx b/datasets/loading-data.mdx index a6c5fa3..c4aae12 100644 --- a/datasets/loading-data.mdx +++ b/datasets/loading-data.mdx @@ -1,6 +1,7 @@ --- title: Loading Time Series Data description: Learn about how to load data from Time Series Dataset collections +icon: download --- ## Overview diff --git a/datasets/open-data.mdx b/datasets/open-data.mdx index 3e4b38f..9404140 100644 --- a/datasets/open-data.mdx +++ b/datasets/open-data.mdx @@ -1,6 +1,7 @@ --- title: Open Data description: Learn about the different storage providers that are available in Tilebox. +icon: star --- Tilebox not only provides access to your own, private datasets but also to a growing number of public datasets. diff --git a/datasets/timeseries.mdx b/datasets/timeseries.mdx index 2cd75db..d987ace 100644 --- a/datasets/timeseries.mdx +++ b/datasets/timeseries.mdx @@ -1,6 +1,7 @@ --- title: Time Series Data description: Learn about Time Series Datasets +icon: timeline --- Time series datasets are a container for individual data points. From 0bd164a56042bccf88568dc20098e6f55481ac92 Mon Sep 17 00:00:00 2001 From: Corentin Musard Date: Thu, 22 Aug 2024 10:11:18 +0200 Subject: [PATCH 2/6] Improve by using existing components --- datasets/collections.mdx | 8 +++- datasets/introduction.mdx | 46 ++++++++++++++++------ quickstart.mdx | 2 +- sdks/python/sample-notebooks.mdx | 6 +-- sdks/python/xarray.mdx | 67 +++++++++++++++++++++++++------- 5 files changed, 96 insertions(+), 33 deletions(-) diff --git a/datasets/collections.mdx b/datasets/collections.mdx index d26b53f..cd034b9 100644 --- a/datasets/collections.mdx +++ b/datasets/collections.mdx @@ -167,6 +167,10 @@ await dataset.collection("Sat-X").info() # raises NotFoundError: 'No such collec -## Summary +## Next steps -Great, now you know how to list and access collections. Next you can look at [how to query data points from a collection](/datasets/loading-data). + + + How to load data points from a collection. + + diff --git a/datasets/introduction.mdx b/datasets/introduction.mdx index e177390..e852903 100644 --- a/datasets/introduction.mdx +++ b/datasets/introduction.mdx @@ -9,10 +9,20 @@ This is a common format for datasets that are collected over time, such as satel This section covers: -- [Which timeseries datasets are available](/datasets/timeseries#listing-datasets) and how to list them -- [Which common fields](/datasets/timeseries#common-fields) all time series datasets share -- [What collections are](/datasets/collections) and how to access them -- [How to access data](/datasets/loading-data) from a collection for a given time interval + + + Which time series datasets are available and how to list them. + + + Which common fields all time series datasets share. + + + What collections are and how to access them. + + + How to access data from a collection for a given time interval. + + If you want to quickly look up the name of some API method or the meaning of a specific parameter [check out the @@ -23,11 +33,21 @@ This section covers: Here are some terms used throughout this section. -- **Data points**: time series data points are the individual entities that make up a dataset. Each data point is associated with a timestamp. - Each data point consists of a set of fixed [metadata fields](/datasets/timeseries#common-fields) as well as individual fields that are defined on a dataset level. -- **Datasets**: time series datasets are a container for individual data points. All data points in a time series dataset share the same data type, so all - data points in a dataset share the same set of fields. -- **Collections**: Collections are a way of grouping data points within a dataset. They are useful for representing a logical grouping of data points that are commonly queried together. + + + Time series data points are the individual entities that make up a dataset. Each data point is associated with a + timestamp. Each data point consists of a set of fixed [metadata fields](/datasets/timeseries#common-fields) as well + as individual fields that are defined on a dataset level. + + + Time series datasets are a container for individual data points. All data points in a time series dataset share the + same data type, so all data points in a dataset share the same set of fields. + + + Collections are a way of grouping data points within a dataset. They are useful for representing a logical grouping + of data points that are commonly queried together. + + ## Creating a datasets Client @@ -123,6 +143,8 @@ datasets = await client.datasets() # raises AuthenticationError ## Next steps -- [Accessing datasets](/datasets/timeseries) -- [Async support](/sdks/python/async) -- [Working with Xarray](/sdks/python/xarray) + + + + + diff --git a/quickstart.mdx b/quickstart.mdx index eb98f4b..dbab678 100644 --- a/quickstart.mdx +++ b/quickstart.mdx @@ -40,7 +40,7 @@ If you prefer to work locally in your device, the steps below help you get start # select an Opendata dataset datasets = client.datasets() - dataset = datasets.open_data.asf.sentinel2_msi + dataset = datasets.open_data.copernicus.sentinel2_msi # and load data from a collection in a given time range collection = dataset.collection("S2A_S2MSI1C") diff --git a/sdks/python/sample-notebooks.mdx b/sdks/python/sample-notebooks.mdx index 1520b9e..7850a5b 100644 --- a/sdks/python/sample-notebooks.mdx +++ b/sdks/python/sample-notebooks.mdx @@ -42,16 +42,16 @@ They allow to work in notebooks, which are documents that contains both code and Notebooks don't need any setup and can be shared with others. - + [Jupyter notebooks](https://jupyter.org/) are the original interactive environment for Python. They are great to work with, but require a local installation. - + [Google Colab](https://colab.research.google.com/) is a free tool that offers a hosted interactive Python environment. Google Colab is great to connect to local Jupyter instances, and to share code using Google credentials, or within organizations that use Google Workspace. - + [JetBrains Datalore](https://datalore.jetbrains.com/) is a free and convenient way to collaboratively test, develop and share Python code and algorithms. It comes with secret management built in, so you can store your credentials and share notebooks. Datalore comes with the advanced JetBrains syntax highlighting and autocompletion software diff --git a/sdks/python/xarray.mdx b/sdks/python/xarray.mdx index a8347ca..d487c44 100644 --- a/sdks/python/xarray.mdx +++ b/sdks/python/xarray.mdx @@ -24,16 +24,26 @@ The Tilebox Python client provides access to your satellite data in the form of [xarray.Dataset](https://docs.xarray.dev/en/stable/generated/xarray.Dataset.html#xarray.Dataset). This brings a great number of benefits compared to custom Tilebox specific data structures such as: -- **Familiarity**: Xarray is built on top of NumPy and Pandas, which are two of the most popular Python libraries for - scientific computing. If you are already familiar with these libraries, you are right at home with Xarray. -- **Performance**: By using NumPy under the hood, which in turn is built on top of C and Fortran, Xarray benefits from - all the performance optimizations that those libraries offer. This means that Xarray is fast and can handle large - datasets with ease. -- **Interoperability**: Xarray is a popular library and is used by many other libraries. This means that you can - easily integrate Xarray into your existing workflows. Many third party libraries are available to extend Xarray - with more capability for different use cases. -- **Flexibility**: Xarray is a flexible library and can be used for a wide range of use-cases. It's also - easy to extend Xarray with custom capability. + + + Xarray is built on top of NumPy and Pandas, which are two of the most popular Python libraries for scientific + computing. If you are already familiar with these libraries, you are right at home with Xarray. + + + By using NumPy under the hood, which in turn is built on top of C and Fortran, Xarray benefits from all the + performance optimizations that those libraries offer. This means that Xarray is fast and can handle large datasets + with ease. + + + Xarray is a popular library and is used by many other libraries. This means that you can easily integrate Xarray + into your existing workflows. Many third party libraries are available to extend Xarray with more capability for + different use cases. + + + Xarray is a flexible library and can be used for a wide range of use-cases. It's also easy to extend Xarray with + custom capability. + + ## An example dataset @@ -354,8 +364,35 @@ or check out the [Xarray Tutorials](https://tutorial.xarray.dev/intro.html). Some useful capability that this section did not cover include: -- [Grouping data](https://docs.xarray.dev/en/stable/user-guide/groupby.html) -- [Computation](https://docs.xarray.dev/en/stable/user-guide/computation.html) -- [Time series specific functionality](https://docs.xarray.dev/en/stable/user-guide/time-series.html) -- [Interpolation](https://docs.xarray.dev/en/latest/user-guide/interpolation.html) -- [Plotting](https://docs.xarray.dev/en/latest/user-guide/plotting.html) + + + + + + + From 8dd71f9222376af0cacfcf4c8e05c255b69c01e4 Mon Sep 17 00:00:00 2001 From: Corentin Musard Date: Thu, 22 Aug 2024 14:40:27 +0200 Subject: [PATCH 3/6] Add sample code for open data --- .../creating-storage-client.mdx | 2 + datasets/open-data.mdx | 183 +++++++++++++++++- 2 files changed, 182 insertions(+), 3 deletions(-) diff --git a/api-reference/storage-providers/creating-storage-client.mdx b/api-reference/storage-providers/creating-storage-client.mdx index cd16fe1..5e9f8f8 100644 --- a/api-reference/storage-providers/creating-storage-client.mdx +++ b/api-reference/storage-providers/creating-storage-client.mdx @@ -6,6 +6,8 @@ icon: database You can create a cached storage client by importing the respective class and instantiating it. +For a complete example look at the [Accessing Open Data](/datasets/open-data#sample-code) section. + ```python Python (Sync) diff --git a/datasets/open-data.mdx b/datasets/open-data.mdx index 9404140..408a34d 100644 --- a/datasets/open-data.mdx +++ b/datasets/open-data.mdx @@ -50,9 +50,15 @@ You can create an account for ASF by choosing Sign In in the [ASF Vertex Search #### Further reading -- [Getting Started with ASF](https://asf.alaska.edu/getstarted/) -- [ASF Data Formats and Files](https://asf.alaska.edu/information/data-formats/data-formats-in-depth/) -- [Vertex](https://search.asf.alaska.edu/) is a web-based search and discovery tool for ASF's SAR data offerings + + + + ### Copernicus Data Space @@ -84,3 +90,174 @@ Tilebox currently supports the following Umbra Space datasets: - Umbra Synthetic Aperture Radar (SAR) All data is provided with a Creative Commons License (CC by 4.0), which gives you the right to do just about anything you want with it. + +## Sample Code + +Here is a sample code snippets that shows how to access open data using the Tilebox Python client. + + + + + +```python Code +from pathlib import Path + +from tilebox.datasets import Client +from tilebox.storage import ASFStorageClient + +# Creating clients +client = Client(token="YOUR_TILEBOX_API_KEY") +datasets = client.datasets() +storage_client = ASFStorageClient( + user="YOUR_ASF_USER", + password="YOUR_ASF_PASSWORD", + cache_directory=Path("./data") +) + +# Choosing the dataset and collection +ers_dataset = datasets.open_data.asf.ers_sar +collections = ers_dataset.collections() +collection = collections["ERS-2"] + +# Loading metadata +ers_data = collection.load(("2009-01-01", "2009-01-02"), show_progress=True) + +# Selecting a data point to download +selected = ers_data.isel(time=0) # index 0 selected + +# Downloading the data +downloaded_data = storage_client.download(selected, extract=True) + +print(f"Downloaded granule: {downloaded_data.name} to {downloaded_data}") +print("Contents: ") +for content in downloaded_data.iterdir(): + print(f" - {content.relative_to(downloaded_data)}") +``` + +```txt Output +Downloaded granule: E2_71629_STD_L0_F183 to data/ASF/E2_71629_STD_F183/E2_71629_STD_L0_F183 +Contents: + - E2_71629_STD_L0_F183.000.vol + - E2_71629_STD_L0_F183.000.meta + - E2_71629_STD_L0_F183.000.raw + - E2_71629_STD_L0_F183.000.pi + - E2_71629_STD_L0_F183.000.nul + - E2_71629_STD_L0_F183.000.ldr +``` + + + + + + + +```python Code +from pathlib import Path + +from tilebox.datasets import Client +from tilebox.storage import CopernicusStorageClient + +# Creating clients +client = Client(token="YOUR_TILEBOX_API_KEY") +datasets = client.datasets() +storage_client = CopernicusStorageClient( + access_key="YOUR_ACCESS_KEY", + secret_access_key="YOUR_SECRET_ACCESS_KEY", + cache_directory=Path("./data") +) + +# Choosing the dataset and collection +s2_dataset = datasets.open_data.copernicus.sentinel2_msi +collections = s2_dataset.collections() +collection = collections["S2A_S2MSI2A"] + +# Loading metadata +s2_data = collection.load(("2024-08-01", "2024-08-02"), show_progress=True) + +# Selecting a data point to download +selected = s2_data.isel(time=0) # index 0 selected + +# Downloading the data +downloaded_data = storage_client.download(selected) + +print(f"Downloaded granule: {downloaded_data.name} to {downloaded_data}") +print("Contents: ") +for content in downloaded_data.iterdir(): + print(f" - {content.relative_to(downloaded_data)}") +``` + +```txt Output +Downloaded granule: S2A_MSIL2A_20240801T002611_N0511_R102_T58WET_20240819T170544.SAFE to data/Sentinel-2/MSI/L2A/2024/08/01/S2A_MSIL2A_20240801T002611_N0511_R102_T58WET_20240819T170544.SAFE +Contents: + - manifest.safe + - GRANULE + - INSPIRE.xml + - MTD_MSIL2A.xml + - DATASTRIP + - HTML + - rep_info + - S2A_MSIL2A_20240801T002611_N0511_R102_T58WET_20240819T170544-ql.jpg +``` + + + + + + + +```python Code +from pathlib import Path + +from tilebox.datasets import Client +from tilebox.storage import UmbraStorageClient + +# Creating clients +client = Client(token="YOUR_TILEBOX_API_KEY") +datasets = client.datasets() +storage_client = UmbraStorageClient(cache_directory=Path("./data")) + +# Choosing the dataset and collection +umbra_dataset = datasets.open_data.umbra.sar +collections = umbra_dataset.collections() +collection = collections["SAR"] + +# Loading metadata +umbra_data = collection.load(("2024-01-05", "2024-01-06"), show_progress=True) + +# Selecting a data point to download +selected = umbra_data.isel(time=0) # index 0 selected + +# Downloading the data +downloaded_data = storage_client.download(selected) + +print(f"Downloaded granule: {downloaded_data.name} to {downloaded_data}") +print("Contents: ") +for content in downloaded_data.iterdir(): + print(f" - {content.relative_to(downloaded_data)}") +``` + +```txt Output +Downloaded granule: 2024-01-05-01-53-37_UMBRA-07 to data/Umbra/ad hoc/Yi_Sun_sin_Bridge_SK/6cf02931-ca2e-4744-b389-4844ddc701cd/2024-01-05-01-53-37_UMBRA-07 +Contents: + - 2024-01-05-01-53-37_UMBRA-07_SIDD.nitf + - 2024-01-05-01-53-37_UMBRA-07_SICD.nitf + - 2024-01-05-01-53-37_UMBRA-07_CSI-SIDD.nitf + - 2024-01-05-01-53-37_UMBRA-07_METADATA.json + - 2024-01-05-01-53-37_UMBRA-07_GEC.tif + - 2024-01-05-01-53-37_UMBRA-07_CSI.tif +``` + + + + + +## Further reading + + + + From 969099bec64b0f7653ce6242c55e0536f4637e20 Mon Sep 17 00:00:00 2001 From: Corentin Musard Date: Thu, 22 Aug 2024 15:09:31 +0200 Subject: [PATCH 4/6] Update code snippets and output --- api-reference/datasets/accessing-dataset.mdx | 4 +- assets/data/example_satellite_data.nc | Bin 0 -> 466226 bytes datasets/collections.mdx | 40 +-- datasets/loading-data.mdx | 223 +++++++-------- datasets/timeseries.mdx | 12 +- sdks/python/async.mdx | 40 +-- sdks/python/xarray.mdx | 280 +++++++++++-------- 7 files changed, 326 insertions(+), 273 deletions(-) create mode 100644 assets/data/example_satellite_data.nc diff --git a/api-reference/datasets/accessing-dataset.mdx b/api-reference/datasets/accessing-dataset.mdx index 7a36046..a36ba37 100644 --- a/api-reference/datasets/accessing-dataset.mdx +++ b/api-reference/datasets/accessing-dataset.mdx @@ -9,12 +9,12 @@ Once you have listed all available datasets, you can access a specific dataset b ```python Python (Sync) -dataset = datasets.open_data.asf.sentinel1_sar +dataset = datasets.open_data.copernicus.sentinel1_sar # or any other dataset available to you ``` ```python Python (Async) -dataset = datasets.open_data.asf.sentinel1_sar +dataset = datasets.open_data.copernicus.sentinel1_sar # or any other dataset available to you ``` diff --git a/assets/data/example_satellite_data.nc b/assets/data/example_satellite_data.nc new file mode 100644 index 0000000000000000000000000000000000000000..302b4a0ba62afa3af76a630b8a45236dcff11a34 GIT binary patch literal 466226 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 REp1}a@3q?OJbg13{XZqRxP1Ts literal 0 HcmV?d00001 diff --git a/datasets/collections.mdx b/datasets/collections.mdx index cd034b9..acaf8fd 100644 --- a/datasets/collections.mdx +++ b/datasets/collections.mdx @@ -49,13 +49,13 @@ Each dataset has a list of collections associated with it. You can list the coll ```python Python (Sync) - dataset = datasets.open_data.asf.sentinel1_sar + dataset = datasets.open_data.copernicus.landsat8_oli_tirs collections = dataset.collections() print(collections) ``` ```python Python (Async) - dataset = datasets.open_data.asf.sentinel1_sar + dataset = datasets.open_data.copernicus.landsat8_oli_tirs collections = await dataset.collections() print(collections) ``` @@ -63,8 +63,10 @@ Each dataset has a list of collections associated with it. You can list the coll ```txt Output -{'Sentinel-1A': Collection Sentinel-1A: [2014-06-15T03:44:43.000 UTC, 2022-12-31T23:57:59.000 UTC] (1209636 data points), - 'Sentinel-1B': Collection Sentinel-1B: [2016-09-26T00:02:34.000 UTC, 2021-12-23T06:53:08.000 UTC] (657674 data points)} +{'L1GT': Collection L1GT: [2013-03-25T12:08:43.699 UTC, 2024-08-19T12:57:32.456 UTC], + 'L1T': Collection L1T: [2013-03-26T09:33:19.763 UTC, 2020-08-24T03:21:50.000 UTC], + 'L1TP': Collection L1TP: [2013-03-24T00:25:55.457 UTC, 2024-08-19T12:58:20.229 UTC], + 'L2SP': Collection L2SP: [2015-01-01T07:53:35.391 UTC, 2024-08-12T12:52:03.243 UTC]} ``` The `collections` variable is a dictionary, where the keys are the names of the collections and the values are @@ -79,13 +81,13 @@ method. ```python Python (Sync) - dataset = datasets.open_data.asf.sentinel1_sar + dataset = datasets.open_data.copernicus.landsat8_oli_tirs collections = dataset.collections(availability=True, count=True) print(collections) ``` ```python Python (Async) - dataset = datasets.open_data.asf.sentinel1_sar + dataset = datasets.open_data.copernicus.landsat8_oli_tirs collections = await dataset.collections(availability=True, count=True) print(collections) ``` @@ -93,8 +95,10 @@ method. ```txt Output -{'Sentinel-1A': Collection Sentinel-1A: [2014-06-15T03:44:43.000 UTC, 2022-12-31T23:57:59.000 UTC] (1209636 data points), - 'Sentinel-1B': Collection Sentinel-1B: [2016-09-26T00:02:34.000 UTC, 2021-12-23T06:53:08.000 UTC] (657674 data points)} +{'L1GT': Collection L1GT: [2013-03-25T12:08:43.699 UTC, 2024-08-19T12:57:32.456 UTC] (154288 data points), + 'L1T': Collection L1T: [2013-03-26T09:33:19.763 UTC, 2020-08-24T03:21:50.000 UTC] (87958 data points), + 'L1TP': Collection L1TP: [2013-03-24T00:25:55.457 UTC, 2024-08-19T12:58:20.229 UTC] (322041 data points), + 'L2SP': Collection L2SP: [2015-01-01T07:53:35.391 UTC, 2024-08-12T12:52:03.243 UTC] (191110 data points)} ``` ## Accessing individual collections @@ -108,22 +112,22 @@ You can then use the `info()` method on the collection object to get information ```python Python (Sync) collections = dataset.collections() - sat1 = collections["Sat-1"] - collection_info = sat1.info(availability=True, count=True) + terrain_correction = collections["L1GT"] + collection_info = terrain_correction.info(availability=True, count=True) print(collection_info) ``` ```python Python (Async) collections = await dataset.collections() - sat1 = collections["Sat-1"] - collection_info = await sat1.info(availability=True, count=True) + terrain_correction = collections["L1GT"] + collection_info = await terrain_correction.info(availability=True, count=True) print(collection_info) ``` ```txt Output -Collection Sat-1: [2019-03-07T16:09:17.773000 UTC, 2021-05-23T19:17:23.472000 UTC] (910245 data points) +L1GT: [2013-03-25T12:08:43.699 UTC, 2024-08-19T12:57:32.456 UTC] (154288 data points) ``` You can also access a specific collection by using the `collection` method on the dataset object as well. @@ -132,21 +136,21 @@ This has the advantage that you can directly access the collection without havin ```python Python (Sync) - sat1 = dataset.collection("Sat-1") - collection_info = sat1.info(availability=True, count=True) + terrain_correction = dataset.collection("L1GT") + collection_info = terrain_correction.info(availability=True, count=True) print(collection_info) ``` ```python Python (Async) - sat1 = dataset.collection("Sat-1") - collection_info = await sat1.info(availability=True, count=True) + terrain_correction = dataset.collection("L1GT") + collection_info = await terrain_correction.info(availability=True, count=True) print(collection_info) ``` ```txt Output -Collection Sat-1: [2019-03-07T16:09:17.773000 UTC, 2021-05-23T19:17:23.472000 UTC] (910245 data points) +L1GT: [2013-03-25T12:08:43.699 UTC, 2024-08-19T12:57:32.456 UTC] (154288 data points) ``` ## Errors you may encounter diff --git a/datasets/loading-data.mdx b/datasets/loading-data.mdx index c4aae12..276b03e 100644 --- a/datasets/loading-data.mdx +++ b/datasets/loading-data.mdx @@ -25,16 +25,16 @@ assume that you have already [created a client](/datasets/introduction#creating- client = Client() datasets = client.datasets() - collections = datasets.open_data.asf.sentinel1_sar.collections() - collection = collections["Sentinel-1A"] + collections = datasets.open_data.copernicus.sentinel1_sar.collections() + collection = collections["S1A_IW_RAW__0S"] ``` ```python Python (Async) from tilebox.datasets.aio import Client client = Client() datasets = await client.datasets() - collections = await datasets.open_data.asf.sentinel1_sar.collections() - collection = collections["Sentinel-1A"] + collections = await datasets.open_data.copernicus.sentinel1_sar.collections() + collection = collections["S1A_IW_RAW__0S"] ``` @@ -57,42 +57,39 @@ Check out the example below to see how to load a data point at a specific time f ```python Python (Sync) - data = collection.load("2022-05-31 23:59:55.000") + data = collection.load("2024-08-01 00:00:01.362") print(data) ``` ```python Python (Async) - data = await collection.load("2022-05-31 23:59:55.000") + data = await collection.load("2024-08-01 00:00:01.362") print(data) ``` ```txt Output - Size: 549B -Dimensions: (time: 1, latlon: 2, n_footprint: 5) + Size: 721B +Dimensions: (time: 1, latlon: 2) Coordinates: - ingestion_time (time) datetime64[ns] 8B 2023-10-20T10:04:23 - id (time) @@ -113,12 +110,12 @@ when calling `load`. Check out the example below to see this in action. ```python Python (Sync) -data = collection.load("2022-05-31 23:59:55.000", skip_data=True) +data = collection.load("2024-08-01 00:00:01.362", skip_data=True) print(data) ``` ```python Python (Async) -data = await collection.load("2022-05-31 23:59:55.000", skip_data=True) +data = await collection.load("2024-08-01 00:00:01.362", skip_data=True) print(data) ``` @@ -128,13 +125,11 @@ print(data) Size: 160B Dimensions: (time: 1) Coordinates: - ingestion_time (time) datetime64[ns] 8B 2023-10-20T10:04:23 - id (time) ```txt Output - + Size: 0B Dimensions: () Data variables: *empty* @@ -177,8 +172,8 @@ timestamps, which would need to be manually converted again to different timezon from datetime import datetime import pytz - # Tokyo has a UTC+9 hours offset, so this is the same as 2017-01-01 02:45:35 UTC - tokyo_time = pytz.timezone('Asia/Tokyo').localize(datetime(2017, 1, 1, 11, 45, 35)) + # Tokyo has a UTC+9 hours offset, so this is the same as 2017-01-01 02:45:25.679 UTC + tokyo_time = pytz.timezone('Asia/Tokyo').localize(datetime(2017, 1, 1, 11, 45, 25, 679000)) print(tokyo_time) data = collection.load(tokyo_time) print(data) # time is in UTC since the API always returns UTC timestamps @@ -187,8 +182,8 @@ timestamps, which would need to be manually converted again to different timezon from datetime import datetime import pytz - # Tokyo has a UTC+9 hours offset, so this is the same as 2017-01-01 02:45:35 UTC - tokyo_time = pytz.timezone('Asia/Tokyo').localize(datetime(2017, 1, 1, 11, 45, 35)) + # Tokyo has a UTC+9 hours offset, so this is the same as 2017-01-01 02:45:25.679 UTC + tokyo_time = pytz.timezone('Asia/Tokyo').localize(datetime(2017, 1, 1, 11, 45, 25, 679000)) print(tokyo_time) data = await collection.load(tokyo_time) print(data) # time is in UTC since the API always returns UTC timestamps @@ -197,13 +192,14 @@ timestamps, which would need to be manually converted again to different timezon ```txt Output -2017-05-01 11:45:35+09:00 - -Dimensions: (time: 1) +2017-01-01 11:45:25.679000+09:00 + Size: 725B +Dimensions: (time: 1, latlon: 2) Coordinates: - ingestion_time (time) datetime64[ns] 2017-01-01T15:26:32 - id (time) ```txt Output - Size: 456MB -Dimensions: (time: 955942, latlon: 2, n_footprint: 5) + Size: 725MB +Dimensions: (time: 1109597, latlon: 2) Coordinates: - ingestion_time (time) datetime64[ns] 8MB 2023-10-20T09:52:37 ... 20... - id (time) @@ -390,30 +383,27 @@ Another way of specifying a time interval when loading data is to use an iterabl ```txt Output - Size: 24kB -Dimensions: (time: 50, latlon: 2, n_footprint: 5) + Size: 33kB +Dimensions: (time: 50, latlon: 2) Coordinates: - ingestion_time (time) datetime64[ns] 400B 2023-10-20T09:52:37 ... 2... - id (time) ```python Python (Sync) -datapoint_id = "01856a9e-2c08-0990-6cc7-9a860b1115a1" +datapoint_id = "01916d89-ba23-64c9-e383-3152644bcbde" datapoint = collection.find(datapoint_id) print(datapoint) ``` ```python Python (Async) -datapoint_id = "01856a9e-2c08-0990-6cc7-9a860b1115a1" +datapoint_id = "01916d89-ba23-64c9-e383-3152644bcbde" datapoint = await collection.find(datapoint_id) print(datapoint) ``` @@ -444,30 +434,27 @@ print(datapoint) ```txt Output - Size: 549B -Dimensions: (latlon: 2, n_footprint: 5) + Size: 725B +Dimensions: (latlon: 2) Coordinates: - ingestion_time datetime64[ns] 8B 2023-10-20T10:05:57 - id diff --git a/sdks/python/async.mdx b/sdks/python/async.mdx index 06962cb..5019231 100644 --- a/sdks/python/async.mdx +++ b/sdks/python/async.mdx @@ -43,11 +43,11 @@ Check out the examples below to see how that works for a few examples. datasets = client.datasets() # Listing collections -dataset = datasets.open_data.asf.sentinel1_sar +dataset = datasets.open_data.copernicus.sentinel1_sar collections = dataset.collections() # Collection information -collection = collections["Sentinel-1A"] +collection = collections["S1A_IW_RAW__0S"] info = collection.info() print(f"Data for My-collection is available for {info.availability}") @@ -55,7 +55,7 @@ print(f"Data for My-collection is available for {info.availability}") data = collection.load(("2022-05-01", "2022-06-01"), show_progress=True) # Finding a specific datapoint -datapoint_uuid = "01811c8f-0928-e6f5-df34-364cfa8a86e8" +datapoint_uuid = "01910b3c-8552-7671-3345-b902cc0813f3" datapoint = collection.find(datapoint_uuid) ``` @@ -64,11 +64,11 @@ datapoint = collection.find(datapoint_uuid) datasets = await client.datasets() # Listing collections -dataset = datasets.open_data.asf.sentinel1_sar +dataset = datasets.open_data.copernicus.sentinel1_sar collections = await dataset.collections() # Collection information -collection = collections["Sentinel-1A"] +collection = collections["S1A_IW_RAW__0S"] info = await collection.info() print(f"Data for My-collection is available for {info.availability}") @@ -76,7 +76,7 @@ print(f"Data for My-collection is available for {info.availability}") data = await collection.load(("2022-05-01", "2022-06-01"), show_progress=True) # Finding a specific datapoint -datapoint_uuid = "01811c8f-0928-e6f5-df34-364cfa8a86e8" +datapoint_uuid = "01910b3c-8552-7671-3345-b902cc0813f3" datapoint = await collection.find(datapoint_uuid) ``` @@ -110,13 +110,13 @@ from tilebox.datasets.timeseries import RemoteTimeseriesDatasetCollection # for client = Client() datasets = client.datasets() -collections = datasets.open_data.asf.sentinel1_sar.collections() +collections = datasets.open_data.copernicus.landsat8_oli_tirs.collections() def stats_for_2020(collection: RemoteTimeseriesDatasetCollection) -> None: """Fetch data for 2020 and print the number of data points that were loaded.""" data = collection.load(("2020-01-01", "2021-01-01"), show_progress=True) n = data.sizes['time'] if 'time' in data else 0 - print(f"There are {data.sizes['time']} datapoints in {collection.name} for 2020.") + print(f"There are {n} datapoints in {collection.name} for 2020.") start = time.time() @@ -139,13 +139,13 @@ from tilebox.datasets.timeseries import RemoteTimeseriesDatasetCollection # for client = Client() datasets = await client.datasets() -collections = await datasets.open_data.asf.sentinel1_sar.collections() +collections = await datasets.open_data.copernicus.landsat8_oli_tirs.collections() async def stats_for_2020(collection: RemoteTimeseriesDatasetCollection) -> None: """Fetch data for 2020 and print the number of data points that were loaded.""" data = await collection.load(("2020-01-01", "2021-01-01"), show_progress=True) n = data.sizes['time'] if 'time' in data else 0 - print(f"There are {data.sizes['time']} datapoints in {collection.name} for 2020.") + print(f"There are {n} datapoints in {collection.name} for 2020.") start = time.time() @@ -167,19 +167,19 @@ so it finishes first. ```txt Python (Sync) -Fetching data: 100% |██████████████████████████████ [00:13<00:00, 207858 datapoints, 3.91 MB/s] -There are 207858 datapoints in Sentinel-1A for 2020. -Fetching data: 100% |██████████████████████████████ [00:11<00:00, 179665 datapoints, 4.39 MB/s] -There are 179665 datapoints in Sentinel-1B for 2020. -Fetching data took 25.34 seconds +There are 19624 datapoints in L1GT for 2020. +There are 1281 datapoints in L1T for 2020. +There are 65313 datapoints in L1TP for 2020. +There are 25375 datapoints in L2SP for 2020. +Fetching data took 10.92 seconds ``` ```txt Python (Async) -Fetching data: 100% |██████████████████████████████ [00:19<00:00, 207858 datapoints, 2.21 MB/s] -Fetching data: 100% |██████████████████████████████ [00:17<00:00, 179665 datapoints, 2.94 MB/s] -There are 179665 datapoints in Sentinel-1B for 2020. -There are 207858 datapoints in Sentinel-1A for 2020. -Fetching data took 20.12 seconds +There are 1281 datapoints in L1T for 2020. +There are 19624 datapoints in L1GT for 2020. +There are 25375 datapoints in L2SP for 2020. +There are 65313 datapoints in L1TP for 2020. +Fetching data took 7.45 seconds ``` diff --git a/sdks/python/xarray.mdx b/sdks/python/xarray.mdx index d487c44..c71b526 100644 --- a/sdks/python/xarray.mdx +++ b/sdks/python/xarray.mdx @@ -47,7 +47,7 @@ number of benefits compared to custom Tilebox specific data structures such as: ## An example dataset -To get an understanding of how Xarray works, a simple example dataset is used, as it could be returned by a +To get an understanding of how Xarray works, a sample dataset is used, as it could be returned by a [Tilebox timeseries dataset](/datasets/timeseries). @@ -57,7 +57,7 @@ from tilebox.datasets import Client client = Client() datasets = client.datasets() -collection = datasets.open_data.asf.sentinel1_sar.collection("Sentinel-1A") +collection = datasets.open_data.copernicus.landsat8_oli_tirs.collection("L1GT") satellite_data = collection.load(("2022-05-01", "2022-06-01"), show_progress=True) print(satellite_data) ``` @@ -67,7 +67,7 @@ from tilebox.datasets.aio import Client client = Client() datasets = await client.datasets() -collection = datasets.open_data.asf.sentinel1_sar.collection("Sentinel-1A") +collection = datasets.open_data.copernicus.landsat8_oli_tirs.collection("L1GT") satellite_data = await collection.load(("2022-05-01", "2022-06-01"), show_progress=True) print(satellite_data) ``` @@ -75,52 +75,49 @@ print(satellite_data) ```txt Output - Size: 8MB -Dimensions: (time: 16507, latlon: 2, n_footprint: 5) + Size: 305kB +Dimensions: (time: 514, latlon: 2) Coordinates: - ingestion_time (time) datetime64[ns] 132kB 2023-10-20T10:04:07 ... ... - id (time) This is a simple dataset that was generated to showcase some common Xarray use-cases. If you want to follow along, you - can download the dataset as a NetCDF file. The [Reading and writing - files section](/sdks/python/xarray#reading-and-writing-files) explains how to save and load Xarray datasets to and - from NetCDF files. + can [download the dataset as a NetCDF file](/assets/data/example_satellite_data.nc). The [Reading and writing files + section](/sdks/python/xarray#reading-and-writing-files) explains how to save and load Xarray datasets to and from + NetCDF files.
Here is a breakdown of the preceding output: - `satellite_data` **dataset** contains different **dimensions**, **coordinates** and **variables** -- `time` **dimension** consists of 570396 elements. This means there are 570396 data points in the dataset +- `time` **dimension** consists of 514 elements. This means there are 514 data points in the dataset - `time` **dimension coordinate** contains datetime values. This is the time when the data was measured. The `*` mark shows that it's a dimension coordinate. Dimension coordinates are used for label based indexing and alignment, it means you can use the time to access individual data points in the dataset - `ingestion_time` **non-dimension coordinate** contains datetime values. This is the time when the data was ingested into the Tilebox database. Non-dimension coordinates are variables that contain coordinate data, but are not - used for label based indexing and alignment. They can [even be multidimensional](https://docs.xarray.dev/en/stable/examples/multidimensional-coords.html). -- `sensor` **variable** contains integers. This variable tells you which sensor produced a given measurement. - A sensor in this case is identified by a number, `1` or `2` in the example dataset -- `measurement` **variable** contains floating point values. This variable contains the actual measurement values. + used for label based indexing and alignment. They can [even be multidimensional](https://docs.xarray.dev/en/stable/examples/multidimensional-coords.html) +- The dataset contains 28 **variables** +- `bands` **variable** contains integers, this variable tells you how many bands the data contains +- `sun_elevation` **variable** contains floating point values, this variable contains the sun elevation when the data was measured Check out the [xarray terminology overview](https://docs.xarray.dev/en/stable/user-guide/terminology.html) to deepen @@ -137,30 +134,33 @@ no more API requests are required, there is no difference between the sync and a There a couple of different ways that you can access data in a dataset. The Xarray documentation provides a [great overview](https://docs.xarray.dev/en/stable/user-guide/indexing.html) of all those methods. -You can access the `measurement` variable: +You can access the `sun_elevation` variable: ```python Accessing values -# Let's print the first measurement value -print(satellite_data.measurement[0]) +# Let's print the first sun elevation value +print(satellite_data.sun_elevation[0]) ``` ```txt Output - array(3.07027067) Coordinates: -ingestion_time datetime64[ns] 2017-01-01T15:26:32 time datetime64[ns] -2017-01-01T02:45:35 + Size: 8B +array(44.19904463) +Coordinates: + ingestion_time datetime64[ns] 8B 2024-07-22T09:06:43.558629 + id - Dimensions: () Coordinates: ingestion_time datetime64[ns] 2017-01-01T15:26:32 - time datetime64[ns] 2017-01-01T02:45:35 Data variables: sensor int64 2 - measurement float64 3.07 - + Size: 665B +Dimensions: (latlon: 2) +Coordinates: + ingestion_time datetime64[ns] 8B 2024-07-22T09:06:43.558629 + id - Dimensions: (time: 3) Coordinates: ingestion_time (time) datetime64[ns] - 2022-12-31T20:56:40 ... 2022-12-31T... * time (time) datetime64[ns] - 2022-12-31T15:47:54 ... 2022-12-31T... Data variables: sensor (time) int64 1 2 - 1 measurement (time) float64 1.491 2.045 2.798 - +First 3 sun_elevations [44.19904463 57.77561083 58.76316786] +Last 3 sun_elevations [55.60690523 56.72453179 57.81917624] +Sub dataset of the last 3 datapoints + Size: 2kB +Dimensions: (time: 3, latlon: 2) +Coordinates: + ingestion_time (time) datetime64[ns] 24B 2024-07-22T09:08:24.7395... + id (time) array([3.58839564e+00, -2.70314237e+00, 3.27767130e-03, ..., 2.83278085e+00, 1.49074120e+00, -2.79836407e+00]) Coordinates: ingestion_time (time) datetime64[ns] -2017-01-01T15:26:32 ... 2022-12-31T... * time (time) datetime64[ns] -2017-01-01T02:54:03 ... 2022-12-31T... + Size: 216B +array([63.89629314, 63.35038654, 64.10330149, 64.11904038, 64.32007459, + 65.00696561, 60.81739662, 65.72788105, 65.90881403, 65.90881403, + 66.51835574, 66.51835574, 61.24068875, 66.34420723, 66.34420723, + 65.07319907, 65.07319907, 67.19808628, 67.19808628, 67.69088228, + 61.54950615, 67.76723723, 67.76723723, 68.23219829, 68.23219829, + 64.37400345, 64.37400345]) +Coordinates: + ingestion_time (time) datetime64[ns] 216B 2024-07-22T09:06:43.558629 ...... + id (time) 1.5) & - (satellite_data.measurement < 1.6) + (satellite_data.cloud_cover == 0) & + (satellite_data.sun_elevation > 45) & + (satellite_data.sun_elevation < 90) ) -filtered_measurements = satellite_data.measurement[data_filter] -print(filtered_measurements) +filtered_sun_elevations = satellite_data.sun_elevation[data_filter] +print(filtered_sun_elevations) ``` ```txt Output - array([1.54675131, 1.58851704, -1.52978976, ..., 1.54684979, 1.58256101, 1.5325089 ]) Coordinates: -ingestion_time (time) datetime64[ns] 2017-01-01T05:21:17 ... 2022-12-31T... * -time (time) datetime64[ns] 2017-01-01T18:17:47 ... 2022-12-31T... + Size: 216B +array([63.89629314, 63.35038654, 64.10330149, 64.11904038, 64.32007459, + 65.00696561, 60.81739662, 65.72788105, 65.90881403, 65.90881403, + 66.51835574, 66.51835574, 61.24068875, 66.34420723, 66.34420723, + 65.07319907, 65.07319907, 67.19808628, 67.19808628, 67.69088228, + 61.54950615, 67.76723723, 67.76723723, 68.23219829, 68.23219829, + 64.37400345, 64.37400345]) +Coordinates: + ingestion_time (time) datetime64[ns] 216B 2024-07-22T09:06:43.558629 ...... + id (time) - Dimensions: () Coordinates: ingestion_time datetime64[ns] 2020-12-27T18:30:47 - time datetime64[ns] 2021-01-14T07:21:04 Data variables: sensor int64 1 - measurement float64 3.873 - + Size: 665B +Dimensions: (latlon: 2) +Coordinates: + ingestion_time datetime64[ns] 8B 2024-07-22T09:06:43.558629 + id >> raises KeyError: "2021-01-14T07:21:05" +nearest_datapoint = satellite_data.sel(time="2022-05-01T11:28:28.000000") +>>> raises KeyError: "2022-05-01T11:28:28.000000" ``` The `method` parameter can be used to return the closest value instead of raising an error. -```python Finding the closest measurement -nearest_measurement = satellite_data.sel(time="2021-01-14T07:21:05", method="nearest") -assert nearest_measurement.equals(specific_measurement) # passes +```python Finding the closest data point +nearest_datapoint = satellite_data.sel(time="2022-05-01T11:28:28.000000", method="nearest") +assert nearest_datapoint.equals(specific_datapoint) # passes ``` @@ -306,29 +366,29 @@ Xarray and NumPy offer a wide range of statistical functions that can be applied a few examples: ```python Computing dataset statistics -measurements = satellite_data.measurement -min_meas = measurements.min().item() -max_meas = measurements.max().item() -mean_meas = measurements.mean().item() -std_meas = measurements.std().item() -print(f"Measurements from {min_meas:.2f} to {max_meas:.2f} with mean {mean_meas:.2f} and a std of {std_meas:.2f}") +cloud_cover = satellite_data.cloud_cover +min_meas = cloud_cover.min().item() +max_meas = cloud_cover.max().item() +mean_meas = cloud_cover.mean().item() +std_meas = cloud_cover.std().item() +print(f"Cloud cover from {min_meas:.2f} to {max_meas:.2f} with mean {mean_meas:.2f} and a std of {std_meas:.2f}") ``` ```txt Output -Measurements from 0.00 to 4.00 with mean 1.91 and a std of 1.44 +Cloud cover from 0.00 to 100.00 with mean 76.48 and a std of 34.17 ``` -You can also use many NumPy functions directly on a dataset or DataArray. For example, to find out which sensors -you are dealing with, you can use [np.unique](https://numpy.org/doc/stable/reference/generated/numpy.unique.html) to -get all the unique values in the `sensor` data array. +You can also use many NumPy functions directly on a dataset or DataArray. For example, to find out how many bands +the data contains, you can use [np.unique](https://numpy.org/doc/stable/reference/generated/numpy.unique.html) to +get all the unique values in the `bands` data array. ```python Finding unique values import numpy as np -print("Sensors:", np.unique(satellite_data.sensor)) +print("Sensors:", np.unique(satellite_data.bands)) ``` ```txt Output -Sensors: [1 2] +Sensors: [12] ``` ## Reading and writing files @@ -338,6 +398,8 @@ to share your data with others or if you want to persist your data for later use formats, including NetCDF, Zarr, GRIB, and many more. For a full list of supported formats, please refer to the [official documentation page](https://docs.xarray.dev/en/stable/user-guide/io.html). +You might need to install the `netcdf4` package first. You can do this by running `pip install netcdf4`. + Here is how you can save the example dataset to a NetCDF file: ```python Saving a dataset to a file @@ -354,7 +416,7 @@ satellite_data = xr.open_dataset("example_satellite_data.nc") ``` In case you want to follow along with the examples in this section, you can download the example dataset as a NetCDF -file here. +file [here](/assets/data/example_satellite_data.nc). ## Further reading From 677d163fb5cf96cf7e3973bdee861d54c2efadae Mon Sep 17 00:00:00 2001 From: Corentin Musard Date: Fri, 23 Aug 2024 11:05:54 +0200 Subject: [PATCH 5/6] add .nc as lfs --- .gitattributes | 1 + assets/data/example_satellite_data.nc | Bin 466226 -> 131 bytes sdks/python/xarray.mdx | 6 +++--- 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9abd205 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.nc filter=lfs diff=lfs merge=lfs -text diff --git a/assets/data/example_satellite_data.nc b/assets/data/example_satellite_data.nc index 302b4a0ba62afa3af76a630b8a45236dcff11a34..7d716acaf3139622c7b2cfa81a6a307872e6d469 100644 GIT binary patch literal 131 zcmWN@!4bkB5CFhGRnUMz4(@<-0|y8*DjC5%tlqqK&+?glyk%SKn7dMszHZMtx6AfT z8;_ToM`3kpF?yD>ML^n9$bq5-M7U-uaSb+l_LW_AsF{K_NRICqC{)ARqsGJ$3ZTO* MX8#pwi2z9a0Rn6%IsgCw literal 466226 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 REp1}a@3q?OJbg13{XZqRxP1Ts diff --git a/sdks/python/xarray.mdx b/sdks/python/xarray.mdx index c71b526..663cd5b 100644 --- a/sdks/python/xarray.mdx +++ b/sdks/python/xarray.mdx @@ -145,9 +145,9 @@ print(satellite_data.sun_elevation[0]) Size: 8B array(44.19904463) Coordinates: - ingestion_time datetime64[ns] 8B 2024-07-22T09:06:43.558629 - id Date: Fri, 23 Aug 2024 11:10:00 +0200 Subject: [PATCH 6/6] fix asset link --- sdks/python/xarray.mdx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sdks/python/xarray.mdx b/sdks/python/xarray.mdx index 663cd5b..40316d7 100644 --- a/sdks/python/xarray.mdx +++ b/sdks/python/xarray.mdx @@ -4,6 +4,8 @@ description: Xarray library, common use-cases and how they can be implemented ea icon: chart-bar --- +[example_satellite_data.nc]: https://github.com/tilebox/docs/raw/main/assets/data/example_satellite_data.nc + [Xarray](https://xarray.dev/) is a library for working with labelled multi-dimensional arrays. Xarray is built on top of [NumPy](https://numpy.org/) and [Pandas](https://pandas.pydata.org/). Xarray introduces labels in the form of dimensions, coordinates and attributes on top of raw NumPy-like arrays, which allows for a more intuitive, @@ -100,7 +102,7 @@ Data variables: (12/28) This is a simple dataset that was generated to showcase some common Xarray use-cases. If you want to follow along, you - can [download the dataset as a NetCDF file](/assets/data/example_satellite_data.nc). The [Reading and writing files + can [download the dataset as a NetCDF file][example_satellite_data.nc]. The [Reading and writing files section](/sdks/python/xarray#reading-and-writing-files) explains how to save and load Xarray datasets to and from NetCDF files. @@ -416,7 +418,7 @@ satellite_data = xr.open_dataset("example_satellite_data.nc") ``` In case you want to follow along with the examples in this section, you can download the example dataset as a NetCDF -file [here](/assets/data/example_satellite_data.nc). +file [here][example_satellite_data.nc]. ## Further reading