{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Downloading with GEE" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# install with\n", "# !pip install terragon-downloader[gee]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import terragon\n", "import geopandas as gpd\n", "import xarray as xr\n", "import ee\n", "from utils import visualize_sat_images, dict_to_tree" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\n", "Name: WGS 84\n", "Axis Info [ellipsoidal]:\n", "- Lat[north]: Geodetic latitude (degree)\n", "- Lon[east]: Geodetic longitude (degree)\n", "Area of Use:\n", "- name: World.\n", "- bounds: (-180.0, -90.0, 180.0, 90.0)\n", "Datum: World Geodetic System 1984 ensemble\n", "- Ellipsoid: WGS 84\n", "- Prime Meridian: Greenwich" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# we will use the sample data to download a minicube\n", "# other datasets are described here: https://developers.google.com/earth-engine/datasets\n", "gdf = gpd.read_file(\"data/TUM_OTN.geojson\")\n", "arguments = dict(\n", " shp=gdf,\n", " collection=\"COPERNICUS/S2_SR_HARMONIZED\",\n", " start_date=\"2021-01-01\",\n", " end_date=\"2021-01-05\",\n", " bands=[\"B2\", \"B3\", \"B4\"],\n", " resolution=10,\n", " download_folder=\"tests/download/\",\n", ")\n", "gdf.crs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Initialize GEE" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "*** Earth Engine *** Share your feedback by taking our Annual Developer Satisfaction Survey: https://google.qualtrics.com/jfe/form/SV_7TDKVSyKvBdmMqW?ref=4i2o6\n" ] } ], "source": [ "# to authenticate you need to have an google account and be part of the google earth engine program\n", "# register here: https://code.earthengine.google.com/register/\n", "\n", "# ee.Authenticate() # authenticate if needed and not done before (providing credentials)\n", "# usage of cloud projects are enforced in the future, see https://developers.google.com/earth-engine/guides/usage\n", "ee.Initialize(opt_url=\"https://earthengine-highvolume.googleapis.com\")\n", "# ee.Initialize(opt_url='https://earthengine-highvolume.googleapis.com', project=)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "tg = terragon.init(\"gee\") # credentials are provided through ee.Authenticate()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Finding collections" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "ename": "NotImplementedError", "evalue": "GEE does not have a collection endpoint. Please, visit https://developers.google.com/earth-engine/datasets/catalog", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mNotImplementedError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[5], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# This is not supported by GEE. Please, visit their website: https://developers.google.com/earth-engine/datasets\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[43mtg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mretrieve_collections\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", "File \u001b[0;32m~/terragon_new_cdse/terragon/terragon/google_earth_engine.py:50\u001b[0m, in \u001b[0;36mGEE.retrieve_collections\u001b[0;34m(self, filter_by_name)\u001b[0m\n\u001b[1;32m 44\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mretrieve_collections\u001b[39m(\u001b[38;5;28mself\u001b[39m, filter_by_name: \u001b[38;5;28mstr\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 45\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Not implemented, because GEE does not have a collection endpoint.\u001b[39;00m\n\u001b[1;32m 46\u001b[0m \n\u001b[1;32m 47\u001b[0m \u001b[38;5;124;03m :param filter_by_name: unused, kept for compatibility, defaults to None\u001b[39;00m\n\u001b[1;32m 48\u001b[0m \u001b[38;5;124;03m :raises NotImplementedError: GEE does not have a collection endpoint\u001b[39;00m\n\u001b[1;32m 49\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m---> 50\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mNotImplementedError\u001b[39;00m(\n\u001b[1;32m 51\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mGEE does not have a collection endpoint. Please, visit https://developers.google.com/earth-engine/datasets/catalog\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 52\u001b[0m )\n", "\u001b[0;31mNotImplementedError\u001b[0m: GEE does not have a collection endpoint. Please, visit https://developers.google.com/earth-engine/datasets/catalog" ] } ], "source": [ "# This is not supported by GEE. Please, visit their website: https://developers.google.com/earth-engine/datasets\n", "tg.retrieve_collections()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### download (with geedim backend)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9a5c0ed6a6cf44449269e838819c995d", "version_major": 2, "version_minor": 0 }, "text/plain": [ "...1dafa549a7b926804f8ffe9adcda829cad459dd5fdc042.tif: | …" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ff772bc9f8344782b057cb4862fc6d63", "version_major": 2, "version_minor": 0 }, "text/plain": [ "...1dafa549a7b926804f8ffe9adcda829cad459dd5fdc042.tif: | …" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset> Size: 6kB\n",
       "Dimensions:      (x: 28, y: 17, time: 2)\n",
       "Coordinates:\n",
       "  * x            (x) float64 224B 11.65 11.65 11.65 11.65 ... 11.66 11.66 11.66\n",
       "  * y            (y) float64 136B 48.06 48.06 48.06 48.06 ... 48.05 48.05 48.05\n",
       "  * time         (time) datetime64[ns] 16B 2021-01-01 2021-01-03\n",
       "    spatial_ref  int64 8B 0\n",
       "Data variables:\n",
       "    B2           (time, y, x) uint16 2kB 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0\n",
       "    B3           (time, y, x) uint16 2kB 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0\n",
       "    B4           (time, y, x) uint16 2kB 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0\n",
       "Attributes:\n",
       "    crs:          EPSG:4326\n",
       "    data_source:  GEE\n",
       "    collection:   COPERNICUS/S2_SR_HARMONIZED
" ], "text/plain": [ " Size: 6kB\n", "Dimensions: (x: 28, y: 17, time: 2)\n", "Coordinates:\n", " * x (x) float64 224B 11.65 11.65 11.65 11.65 ... 11.66 11.66 11.66\n", " * y (y) float64 136B 48.06 48.06 48.06 48.06 ... 48.05 48.05 48.05\n", " * time (time) datetime64[ns] 16B 2021-01-01 2021-01-03\n", " spatial_ref int64 8B 0\n", "Data variables:\n", " B2 (time, y, x) uint16 2kB 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0\n", " B3 (time, y, x) uint16 2kB 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0\n", " B4 (time, y, x) uint16 2kB 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0\n", "Attributes:\n", " crs: EPSG:4326\n", " data_source: GEE\n", " collection: COPERNICUS/S2_SR_HARMONIZED" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# clipped tile tifs are downloaded with geedim and then merged into a single xarray dataset\n", "ds = tg.create(**arguments, num_workers=10)\n", "# or\n", "# items = tg.search(**arguments, num_workers=10)\n", "# ds = tg.download(items)\n", "ds" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "visualize_sat_images(ds, gdf, list(reversed(arguments[\"bands\"])))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# the ouptut of the search is an ee ImageCollection\n", "tg.search(**arguments)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Special arguments for GEE" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c7eb4b46455c4f46a884d898569fa7e8", "version_major": 2, "version_minor": 0 }, "text/plain": [ "...1dafa549a7b926804f8ffe9adcda829cad459dd5fdc042.tif: | …" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "375c41bddae74e0394b9d687693730ce", "version_major": 2, "version_minor": 0 }, "text/plain": [ "...1dafa549a7b926804f8ffe9adcda829cad459dd5fdc042.tif: | …" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# downloaded tile tifs are removed by default when creating a minicube, this behavior can be change with rm_tmp_files=False\n", "ds = tg.create(**arguments, rm_tmp_files=False)" ] } ], "metadata": { "kernelspec": { "display_name": "tg", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.0" } }, "nbformat": 4, "nbformat_minor": 4 }