{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Time Series\n", "\n", "Based on the preparation done in [](02b-ndvi.ipynb), this section will contain calculations of the NDVI for an entire year and compare value developments in the different subsections of the area as previously defined." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import geopandas as gpd\n", "from multiprocessing import Pool\n", "import numpy as np\n", "from numpy import ma\n", "from os import unlink\n", "from pathlib import Path\n", "import rasterio as r\n", "from rasterio.features import geometry_window\n", "import rasterio.mask\n", "import rasterio.plot as rplt\n", "from sentinel_helpers import scihub_band_paths, scihub_cloud_mask\n", "from zipfile import BadZipFile\n", "\n", "base_path = Path('resources/tempelhofer_feld/')\n", "input_files = list(base_path.glob('*.zip'))\n", "area_of_interest = gpd.read_file(base_path / 'tempelhofer_feld.geojson')\n", "ndvi_path = base_path / 'ndvi'\n", "\n", "# uncomment to remove previous calculations\n", "# ! rm -rf {ndvi_path / '*.tif'}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Due to an unexpected failure of the Copernicus Open Access Hub API, several of the downloaded products were unusable due to data corruption.[^data_corruption] This is considered in the processing code by excluding the corrupted files.\n", "\n", "Additionally, even though acceptable products were restricted in [](02a-data-retrieval.ipynb) to only those with a low cloud coverage, in some products clouds might still obscure the particular area of interest inside the products. If less than 50% of the area of interest is visible inside a particular product, the product is deemed to not contain enough usable data and skipped as well.\n", "\n", "[^data_corruption]: See [](02a-data-retrieval-corrupted-zip-files.ipynb) for details.\n", "\n", "## Data Processing" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def normalize(v):\n", " return (np.clip(v, 0, 10_000) / 10_000).astype('f4') # ← four-byte-float / float32\n", "\n", "def calculate_ndvi(product_path):\n", " global area_of_interest\n", " \n", " try:\n", " b04_path, b08_path = scihub_band_paths(product_path, ['B04', 'B08'], '10m')\n", " cloud_mask, _ = scihub_cloud_mask(product_path, area=area_of_interest)\n", " except BadZipFile:\n", " # This is due to a problem of Scihub\n", " print(f'{product_path}: Problem reading product, skipping it')\n", " return\n", "\n", " with r.open(b04_path, 'r') as b04, r.open(b08_path, 'r') as b08:\n", " # we want to only write the bare minimum data necessary to disk\n", " out_meta = b04.meta.copy()\n", "\n", " # we reproject the geojson file we fetched above and convert it so that rasterio\n", " # can use it as a mask; we subtract the cloud mask to avoid irregularities\n", " mask = area_of_interest.to_crs(out_meta['crs']).iloc[0].geometry\n", " window = geometry_window(b04, [mask])\n", " \n", " # update the dimensions and save as geotiff, not jp2\n", " out_meta.update({\n", " 'width': window.width,\n", " 'height': window.height,\n", " 'driver': 'COG',\n", " 'dtype': 'float32',\n", " 'nodata': -999\n", " }) \n", " \n", " out_name = Path(b04_path).name.replace('B04', 'NDVI').replace('.jp2', '.tif')\n", " ndvi_path.mkdir(exist_ok=True, parents=True)\n", " \n", " # we need this to delete unusable files\n", " skip_file = False\n", " with r.open(ndvi_path / out_name, 'w+', **out_meta) as dst:\n", " # we take only the part out of our source raster that we actually need\n", " # crop=True clips off the borders\n", " b04, transform_b04 = rasterio.mask.mask(b04, shapes=[mask], filled=False, crop=True)\n", " b08, _ = rasterio.mask.mask(b08, shapes=[mask], filled=False, crop=True)\n", " \n", " # calculate area covered by clouds\n", " cloud_mask = cloud_mask[:,:b04.shape[1],:b04.shape[2]]\n", " unmasked_area = ~b04.mask\n", " clouds_on_unmasked_area = (cloud_mask & unmasked_area).sum()\n", " if clouds_on_unmasked_area > 0.5 * unmasked_area.sum():\n", " print(f'{product_path}: Area of interest covered by clouds, skipping it')\n", " skip_file = True\n", " else:\n", " b04 = normalize(b04)\n", " b08 = normalize(b08)\n", "\n", " # uncomment the following line to see if your masked shape looks correct\n", " #rplt.show(b04, transform=transform_b04)\n", " #rplt.show(b08, transform=transform_b04)\n", "\n", " # we want to be able to ignore divide by zero errors so the formula is nicer to write\n", " np.seterr(divide='ignore', invalid='ignore')\n", " ndvi = (b08 - b04) / (b08 + b04)\n", " ndvi.mask = b04.mask | cloud_mask\n", "\n", " # uncomment the following line to see if we calculated the index correctly\n", " # rplt.show(ndvi, transform=transform_b04)\n", "\n", " # write with explicit nodata value for masked pixels\n", " dst.write(ndvi.filled(out_meta['nodata']))\n", " if skip_file:\n", " # file has been created with r.open(..., 'w+'), so it needs to be\n", " # deleted explicitly\n", " unlink(ndvi_path / out_name)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e89f92fbf3fb47d3965bef1883ce0120", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(HTML(value=''), FloatProgress(value=0.0, max=40.0), HTML(value='')))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "resources/tempelhofer_feld/S2A_MSIL2A_20190603T101031_N0212_R022_T33UUU_20190603T114652.zip: Problem reading product, skipping it\n", "resources/tempelhofer_feld/S2A_MSIL2A_20190404T101031_N0211_R022_T32UQD_20190404T174806.zip: Problem reading product, skipping it\n", "resources/tempelhofer_feld/S2A_MSIL2A_20190216T102111_N0211_R065_T33UUU_20190216T130428.zip: Problem reading product, skipping it\n", "resources/tempelhofer_feld/S2B_MSIL2A_20190419T101029_N0211_R022_T33UUU_20190419T132322.zip: Problem reading product, skipping it\n", "resources/tempelhofer_feld/S2A_MSIL2A_20190407T102021_N0211_R065_T33UUU_20190407T134109.zip: Problem reading product, skipping it\n", "resources/tempelhofer_feld/S2B_MSIL2A_20190512T102029_N0212_R065_T33UUU_20190512T134103.zip: Problem reading product, skipping it\n", "resources/tempelhofer_feld/S2A_MSIL2A_20190613T101031_N0212_R022_T33UUU_20190614T125329.zip: Problem reading product, skipping it\n", "resources/tempelhofer_feld/S2A_MSIL2A_20190424T101031_N0211_R022_T32UQD_20190424T162325.zip: Problem reading product, skipping it\n", "resources/tempelhofer_feld/S2A_MSIL2A_20190822T101031_N0213_R022_T32UQD_20190822T143621.zip: Problem reading product, skipping it\n", "resources/tempelhofer_feld/S2A_MSIL2A_20190623T101031_N0212_R022_T33UUU_20190623T132509.zip: Problem reading product, skipping it\n", "\n", "CPU times: user 231 ms, sys: 191 ms, total: 422 ms\n", "Wall time: 11.7 s\n" ] } ], "source": [ "%%time\n", "from tqdm.notebook import tqdm\n", "from multiprocessing import Pool\n", "\n", "# we parallelize the NDVI calculation using a Python threadpool\n", "with Pool() as pool:\n", " for _ in tqdm(pool.imap_unordered(calculate_ndvi, input_files), total=len(input_files)):\n", " # this loop is only here so we can display a progress bar\n", " pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How many files could be processed?" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "41\n" ] } ], "source": [ "! ls -l {ndvi_path} | wc -l" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to be able to re-use designated subsections, the `rio` command-line-tool provided by `rasterio` is used to unify the target CRS." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 306 ms, sys: 424 ms, total: 729 ms\n", "Wall time: 34.9 s\n" ] } ], "source": [ "%%time\n", "\n", "for file_name in ndvi_path.glob('*.tif'):\n", " if 'T33UUU' in file_name.name:\n", " continue\n", " \n", " # crs from the previous notebook to re-use the designated areas\n", " out_name = str(file_name).replace(\"T32UQD\", \"T33UUU\")\n", " ! rio warp --dst-crs EPSG:32633 --overwrite {file_name} {out_name} && rm {file_name}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Average NDVI\n", "\n", "The average NDVI over the area is calculated using a multiprocessing pool.[^performance_comparison]\n", "\n", "[^performance_comparison]: [](./02c-time-series-multiprocessing-benchmarks.ipynb) shows that multiprocessing does not offer any real performance increase for this particular calculation." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: user 167 ms, sys: 40.7 ms, total: 208 ms\n", "Wall time: 205 ms\n" ] } ], "source": [ "%%time\n", "output_files = list(ndvi_path.glob('*.tif'))\n", "\n", "def average(file_path):\n", " with r.open(file_path) as src:\n", " # masked=True makes sure to respect the nodata value and reads the data\n", " # as a numpy MaskedArray, which lets us use `numpy.ma`'s methods\n", " data = src.read(1, masked=True)\n", " avg = ma.average(data)\n", " return file_path, avg\n", " \n", "averages = list(map(average, output_files))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The pandas data-processing library is used to plot the NDVI over the whole year:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "\n", "paths, ndvi_avg = zip(*averages)\n", "\n", "# parse capture date from file name\n", "dates = map(lambda p: p.name.split('_')[1], paths)\n", "\n", "df = pd.DataFrame({'NDVI': ndvi_avg}).set_index(pd.DatetimeIndex(dates))\n", "df.plot(figsize=(12,9))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While there seems to be a dip following the summer months, interpretation is prone to errors by looking at this data alone. There is no information on local fauna, on weather phenomena, or other factors besides cloud cover and spectral band reflectivity. This alone can for example not explain the difference in values at the beginning and at the end of the time span, both of which are during winter. It is therefore important to note that while the data may be useful, it can not be adequately explained in its entirety without any expertise on the field." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.8.6" } }, "nbformat": 4, "nbformat_minor": 4 }