{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Comparison of dNBR for three wild fires in 2018 and 2019\n", "\n", "This notebook contains the calculations necessary for mapping the burn severity of the previously selected products.\n", "This burn severity is measured as the Normalized Burn Ratio (NBR).\n", "The development of this burn ratio over time is described using the ${\\Delta}$NBR, which is defined as:\n", "\n", "$$\n", "{\\Delta}\\text{NBR} = \\text{NBR}_\\text{pre-fire} - \\text{NBR}_\\text{post-fire}\n", "$$\n", "\n", "Instead of only calculating values by overlaying different bands in one product, the ${\\Delta}$NBR adds a time dimension to determine changes that have occurred in the time span between the two chosen products.\n", "\n", "## Methodology\n", "\n", "The NBR of the products downloaded in the previous notebook is calculated using the notebook [02 Spectral Indices](\"02 Spectral Indices.ipynb\").\n", "These NBR values are plotted side-by-side to get a visual impression of the changes that may have occurred between two given dates.\n", "The ${\\Delta}$NBR is calculated and, if showing signs of burned areas, compared to data given by the responsible German ministries.\n", "\n", "## Calculcations\n", "### Setup" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "import geopandas as gpd\n", "\n", "from sentinel_helpers import geodataframe_on_map, scihub_band_paths\n", "nbr_path = Path('output/spectral_indices/')\n", "product_path = Path('input/forest_fires/')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Treuenbrietzen (Postdam-Mittelmark) 2018\n", "\n", "The first case is the wild fire in August 2018 that led to the evacuation of three villages (source).\n", "We load the pre-calculated NBR values and geometries we fetched from OpenStreetMap:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "potsdam_mittelmark_nbr_2018 = list(sorted(nbr_path.glob('*2018*NBR*.tif')))\n", "potsdam_mittelmark_nbr_2018" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `postdam_mittelmark_geom` is a collection of three points:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | place_id | \n", "osm_type | \n", "osm_id | \n", "display_name | \n", "place_rank | \n", "category | \n", "type | \n", "importance | \n", "icon | \n", "geometry | \n", "
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "3285415 | \n", "node | \n", "387079362 | \n", "Frohnsdorf, Treuenbrietzen, Potsdam-Mittelmark... | \n", "19 | \n", "place | \n", "village | \n", "0.495 | \n", "https://nominatim.openstreetmap.org/ui/mapicon... | \n", "POINT (12.90217 52.05466) | \n", "
| 1 | \n", "554316 | \n", "node | \n", "226935349 | \n", "Klausdorf, Treuenbrietzen, Potsdam-Mittelmark,... | \n", "19 | \n", "place | \n", "village | \n", "0.495 | \n", "https://nominatim.openstreetmap.org/ui/mapicon... | \n", "POINT (12.94213 52.04879) | \n", "
| 2 | \n", "303964452 | \n", "node | \n", "282202396 | \n", "Tiefenbrunnen, Treuenbrietzen, Potsdam-Mittelm... | \n", "22 | \n", "place | \n", "isolated_dwelling | \n", "0.420 | \n", "None | \n", "POINT (12.94439 52.03532) | \n", "