{ "cells": [ { "cell_type": "markdown", "id": "e9045413", "metadata": {}, "source": [ "## Local" ] }, { "cell_type": "markdown", "id": "81e55ba6", "metadata": {}, "source": [ "Local tools operate at the cell level, where values with the same position from a set of input rasters are used to calculate the values of the cells at the output raster.\n", "\n", "Some examples of the application of local tools are:\n", "\n", "- Change over time: You can use local tools to identify places where a value like land use or temperature changed over time. \n", "- Aggregate over time: You can use local tools to aggregate values over time, for example calculating the average rainfall or hours of sunshine for each cell. \n", "- Threshold over time: You can use local tools to identify places where a value is above or below a specified threshold, for example where the temperature was below a 0 °C. \n", "- Data aggregation: You can use local tools to calculate the [cost surface](http://wiki.gis.com/wiki/index.php/Cost_surface) of an area, summing up different types of cost over the same cell in different layers. " ] }, { "cell_type": "markdown", "id": "867a9d39", "metadata": {}, "source": [ "In this notebook, we'll demonstrate how to use the [Xarray-spatial](http://xarray-spatial.org/) local tools functions supported by [Numpy](https://numpy.org/). The spatial functions available are:\n", "\n", "- [Cell Statistics](#Cell-Statistics) \n", "- [Combine](#Combine) \n", "- [Lesser Frequency](#Lesser-Frequency) \n", "- [Equal Frequency](#Equal-Frequency) \n", "- [Greater Frequency](#Greater-Frequency) \n", "- [Lowest Position](#Lowest-Position) \n", "- [Highest Position](#Highest-Position) \n", "- [Popularity](#Popularity) \n", "- [Rank](#Rank) " ] }, { "cell_type": "markdown", "id": "b9c4ed8c", "metadata": {}, "source": [ "### Creating the sample data" ] }, { "cell_type": "markdown", "id": "a23f45b3", "metadata": {}, "source": [ "In order to present the functions in a very simple and easy to understand way, we'll use 4x4 data arrays and create an `xarray.Dataset`." ] }, { "cell_type": "code", "execution_count": 1, "id": "c7945275", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import xarray as xr\n", "\n", "arr = xr.DataArray([[2, 2, 2, 2], [2, 2, 2, 2], [2, 2, 2, 2], [2, 2, 2, 2]], name=\"arr\")\n", "\n", "arr1 = xr.DataArray(\n", " [[np.nan, 4, 2, 0], [2, 3, np.nan, 1], [5, 1, 2, 0], [1, 3, 2, np.nan]], name=\"arr1\"\n", ")\n", "\n", "arr2 = xr.DataArray(\n", " [[3, 1, 1, 2], [4, 1, 2, 5], [0, 0, 0, 0], [np.nan, 1, 1, 1]], name=\"arr2\"\n", ")\n", "\n", "arr3 = xr.DataArray(\n", " [[3, 3, 2, 0], [4, 1, 3, 1], [6, 1, 2, 2], [0, 0, 1, 1]], name=\"arr3\"\n", ")\n", "\n", "raster_ds = xr.merge([arr, arr1, arr2, arr3])" ] }, { "cell_type": "markdown", "id": "d12080a6", "metadata": {}, "source": [ "### Helping functions" ] }, { "cell_type": "markdown", "id": "12c4ec49", "metadata": {}, "source": [ "This function will be used to plot the arrays for all the examples in this notebook." ] }, { "cell_type": "code", "execution_count": 2, "id": "9ce0bf94", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "\n", "def plot_arrays(arr_list, title_list):\n", " fig, ax = plt.subplots(nrows=1, ncols=len(arr_list), figsize=(15, 10))\n", "\n", " for idx, arr in zip(range(0, len(arr_list)), arr_list):\n", " for i in range(arr.shape[0]):\n", " for j in range(arr.shape[1]):\n", " ax[idx].text(\n", " j,\n", " i,\n", " int(arr.data[i, j]) if str(arr.data[i, j]) != \"nan\" else np.nan,\n", " ha=\"center\",\n", " va=\"center\",\n", " color=\"black\",\n", " )\n", "\n", " ax[idx].imshow(arr.values, cmap=\"tab20c_r\")\n", " ax[idx].set_xticks([])\n", " ax[idx].set_yticks([])\n", " ax[idx].set_title(title_list[idx])\n", "\n", " plt.show()" ] }, { "cell_type": "markdown", "id": "00300315", "metadata": {}, "source": [ "### Cell Statistics" ] }, { "cell_type": "markdown", "id": "01ab159c", "metadata": {}, "source": [ "[xrspatial.local.cell_stats](https://xarray-spatial.org/reference/_autosummary/xrspatial.local.cell_stats.html) calculates statistics from a raster dataset on a cell-by-cell basis." ] }, { "cell_type": "code", "execution_count": 3, "id": "86353494", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from xrspatial.local import cell_stats\n", "\n", "func_list = [\"max\", \"mean\", \"median\", \"min\", \"std\", \"sum\"]\n", "statistics = [\n", " cell_stats(raster=raster_ds[[\"arr1\", \"arr2\", \"arr3\"]], func=func)\n", " for func in func_list\n", "]\n", "\n", "plot_arrays(\n", " [\n", " raster_ds[\"arr1\"],\n", " raster_ds[\"arr2\"],\n", " raster_ds[\"arr3\"],\n", " ],\n", " [\"arr1\", \"arr2\", \"arr3\"],\n", ")\n", "\n", "plot_arrays(statistics, func_list)" ] }, { "cell_type": "markdown", "id": "b8008262", "metadata": {}, "source": [ "### Combine" ] }, { "cell_type": "markdown", "id": "87c34a83", "metadata": {}, "source": [ "[xrspatial.local.combine](https://xarray-spatial.org/reference/_autosummary/xrspatial.local.combine.html) combines multiple arrays from a raster dataset, assigning a unique output value to each unique combination of raster values." ] }, { "cell_type": "code", "execution_count": 4, "id": "7f1b3bfa", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from xrspatial.local import combine\n", "\n", "result_arr = combine(raster=raster_ds[[\"arr1\", \"arr2\"]])\n", "\n", "plot_arrays(\n", " [\n", " raster_ds[\"arr1\"],\n", " raster_ds[\"arr2\"],\n", " result_arr,\n", " ],\n", " [\"arr1\", \"arr2\", \"result\"],\n", ")" ] }, { "cell_type": "markdown", "id": "a32b70bd", "metadata": {}, "source": [ "### Lesser-Frequency" ] }, { "cell_type": "markdown", "id": "4f6da50e", "metadata": {}, "source": [ "[xrspatial.local.lesser_frequency](https://xarray-spatial.org/reference/_autosummary/xrspatial.local.lesser_frequency.html) calculates, given a raster dataset, the number of times the data variables values are lower than the values of a given reference data variable on a cell-by-cell basis." ] }, { "cell_type": "code", "execution_count": 5, "id": "b95f96c7", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from xrspatial.local import lesser_frequency\n", "\n", "result_arr = lesser_frequency(raster=raster_ds, ref_var=\"arr\")\n", "\n", "plot_arrays(\n", " [\n", " raster_ds[\"arr\"],\n", " raster_ds[\"arr1\"],\n", " raster_ds[\"arr2\"],\n", " raster_ds[\"arr3\"],\n", " result_arr,\n", " ],\n", " [\"arr_ref\", \"arr1\", \"arr2\", \"arr3\", \"result\"],\n", ")" ] }, { "cell_type": "markdown", "id": "50d97b06", "metadata": {}, "source": [ "### Equal Frequency" ] }, { "cell_type": "markdown", "id": "0a2d8118", "metadata": {}, "source": [ "[xrspatial.local.equal_frequency](https://xarray-spatial.org/reference/_autosummary/xrspatial.local.equal_frequency.html) calculates, given a raster dataset, the number of times the data variables values are equal than the values of a given reference data variable on a cell-by-cell basis." ] }, { "cell_type": "code", "execution_count": 6, "id": "78a7824e", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from xrspatial.local import equal_frequency\n", "\n", "result_arr = equal_frequency(raster=raster_ds, ref_var=\"arr\")\n", "\n", "plot_arrays(\n", " [\n", " raster_ds[\"arr\"],\n", " raster_ds[\"arr1\"],\n", " raster_ds[\"arr2\"],\n", " raster_ds[\"arr3\"],\n", " result_arr,\n", " ],\n", " [\"arr_ref\", \"arr1\", \"arr2\", \"arr3\", \"result\"],\n", ")" ] }, { "cell_type": "markdown", "id": "7c97b5fd", "metadata": {}, "source": [ "### Greater Frequency" ] }, { "cell_type": "markdown", "id": "43c18c06", "metadata": {}, "source": [ "[xrspatial.local.greater_frequency](https://xarray-spatial.org/reference/_autosummary/xrspatial.local.greater_frequency.html) calculates, given a raster dataset, the number of times the data variables values are greater than the values of a given reference data variable on a cell-by-cell basis." ] }, { "cell_type": "code", "execution_count": 7, "id": "1c6ab615", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from xrspatial.local import greater_frequency\n", "\n", "result_arr = greater_frequency(raster=raster_ds, ref_var=\"arr\")\n", "\n", "plot_arrays(\n", " [\n", " raster_ds[\"arr\"],\n", " raster_ds[\"arr1\"],\n", " raster_ds[\"arr2\"],\n", " raster_ds[\"arr3\"],\n", " result_arr,\n", " ],\n", " [\"arr_ref\", \"arr1\", \"arr2\", \"arr3\", \"result\"],\n", ")" ] }, { "cell_type": "markdown", "id": "d197be65", "metadata": {}, "source": [ "### Lowest Position" ] }, { "cell_type": "markdown", "id": "8d7235ec", "metadata": {}, "source": [ "[xrspatial.local.lowest_position](https://xarray-spatial.org/reference/_autosummary/xrspatial.local.lowest_position.html) calculates the data variable index of the lowest value on a cell-by-cell basis." ] }, { "cell_type": "code", "execution_count": 8, "id": "b5b7b743", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from xrspatial.local import lowest_position\n", "\n", "result_arr = lowest_position(raster=raster_ds)\n", "\n", "plot_arrays(\n", " [\n", " raster_ds[\"arr1\"],\n", " raster_ds[\"arr2\"],\n", " raster_ds[\"arr3\"],\n", " result_arr,\n", " ],\n", " [\"arr1\", \"arr2\", \"arr3\", \"result\"],\n", ")" ] }, { "cell_type": "markdown", "id": "839530ba", "metadata": {}, "source": [ "### Highest Position" ] }, { "cell_type": "markdown", "id": "a17c6e93", "metadata": {}, "source": [ "[xrspatial.local.highest_position](https://xarray-spatial.org/reference/_autosummary/xrspatial.local.highest_position.html) calculates the data variable index of the highest value on a cell-by-cell basis." ] }, { "cell_type": "code", "execution_count": 9, "id": "cf614920", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from xrspatial.local import highest_position\n", "\n", "result_arr = highest_position(raster=raster_ds)\n", "\n", "plot_arrays(\n", " [\n", " raster_ds[\"arr1\"],\n", " raster_ds[\"arr2\"],\n", " raster_ds[\"arr3\"],\n", " result_arr,\n", " ],\n", " [\"arr1\", \"arr2\", \"arr3\", \"result\"],\n", ")" ] }, { "cell_type": "markdown", "id": "2168c7dd", "metadata": {}, "source": [ "### Popularity" ] }, { "cell_type": "markdown", "id": "e5408cea", "metadata": {}, "source": [ "[xrspatial.local.popularity](https://xarray-spatial.org/reference/_autosummary/xrspatial.local.popularity.html) calculates the number of occurrences of each value of a raster dataset, on a cell-by-cell basis. The output value is assigned based on the reference data variable nth most popular." ] }, { "cell_type": "code", "execution_count": 10, "id": "92d44cd2", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from xrspatial.local import popularity\n", "\n", "\n", "result_arr = popularity(raster=raster_ds, ref_var=\"arr\")\n", "\n", "plot_arrays(\n", " [\n", " raster_ds[\"arr\"],\n", " raster_ds[\"arr1\"],\n", " raster_ds[\"arr2\"],\n", " raster_ds[\"arr3\"],\n", " result_arr,\n", " ],\n", " [\"arr_ref\", \"arr1\", \"arr2\", \"arr3\", \"result\"],\n", ")" ] }, { "cell_type": "markdown", "id": "6a823a72", "metadata": {}, "source": [ "### Rank" ] }, { "cell_type": "markdown", "id": "385dac65", "metadata": {}, "source": [ "[xrspatial.local.rank](https://xarray-spatial.org/reference/_autosummary/xrspatial.local.rank.html) calculates the rank of each value of a raster dataset, on a cell-by-cell basis. The output value is assigned based on the rank of the reference data variable rank." ] }, { "cell_type": "code", "execution_count": 11, "id": "9d10ab75", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from xrspatial.local import rank\n", "\n", "result_arr = rank(raster=raster_ds, ref_var=\"arr\")\n", "\n", "plot_arrays(\n", " [\n", " raster_ds[\"arr\"],\n", " raster_ds[\"arr1\"],\n", " raster_ds[\"arr2\"],\n", " raster_ds[\"arr3\"],\n", " result_arr,\n", " ],\n", " [\"arr_ref\", \"arr1\", \"arr2\", \"arr3\", \"result\"],\n", ")" ] } ], "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.8" } }, "nbformat": 4, "nbformat_minor": 5 }