{ "cells": [ { "cell_type": "markdown", "id": "d60647eb", "metadata": {}, "source": [ "## Putting Data on a Map\n", "\n", "Often, we want to put data in a `pandas` dataframe directly on a map - here's how!" ] }, { "cell_type": "code", "execution_count": 1, "id": "4c9fc045", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import xarray as xr\n", "\n", "import ptolemy as pt" ] }, { "cell_type": "code", "execution_count": 2, "id": "abbac1b8", "metadata": {}, "outputs": [], "source": [ "ds = xr.tutorial.load_dataset(\"air_temperature\")\n", "ds[\"lon\"] = ds.lon - 360 # change from degrees_east to centered at prime meridian\n", "grid = ds.air.isel(time=1)\n", "url = \"https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_110m_admin_0_countries.geojson\"" ] }, { "cell_type": "code", "execution_count": 3, "id": "605fe034", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "r = pt.Rasterize(like=grid)\n", "r.read_shpf(url, idxkey=\"adm0_a3\")\n", "idxr = r.rasterize(strategy=\"majority\", verbose=True)\n", "idxr.plot()" ] }, { "cell_type": "code", "execution_count": 4, "id": "c4c9083c", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'CAN': 27,\n", " 'CUB': 37,\n", " 'DOM': 44,\n", " 'GRL': 65,\n", " 'GTM': 66,\n", " 'MEX': 102,\n", " 'NIC': 116,\n", " 'SLV': 144,\n", " 'USA': 168}" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "idx_map = {v: int(k) for k, v in idxr.attrs.items() if int(k) in np.unique(idxr)}\n", "idx_map" ] }, { "cell_type": "code", "execution_count": 5, "id": "cd027c72", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
adm0_a3yeardata
0USA201515
1USA202020
2MEX20155
3MEX202010
\n", "
" ], "text/plain": [ " adm0_a3 year data\n", "0 USA 2015 15\n", "1 USA 2020 20\n", "2 MEX 2015 5\n", "3 MEX 2020 10" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.DataFrame(\n", " {\n", " \"adm0_a3\": [\"USA\"] * 2 + [\"MEX\"] * 2,\n", " \"year\": [2015, 2020] * 2,\n", " \"data\": [15, 20, 5, 10],\n", " }\n", ")\n", "df" ] }, { "cell_type": "code", "execution_count": 6, "id": "8a58637b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
<xarray.Dataset>\n",
       "Dimensions:  (lat: 25, lon: 53, year: 2)\n",
       "Coordinates:\n",
       "  * lat      (lat) float32 75.0 72.5 70.0 67.5 65.0 ... 25.0 22.5 20.0 17.5 15.0\n",
       "  * lon      (lon) float32 -160.0 -157.5 -155.0 -152.5 ... -35.0 -32.5 -30.0\n",
       "  * year     (year) int64 2015 2020\n",
       "Data variables:\n",
       "    data     (lat, lon, year) float64 nan nan nan nan nan ... nan nan nan nan
" ], "text/plain": [ "\n", "Dimensions: (lat: 25, lon: 53, year: 2)\n", "Coordinates:\n", " * lat (lat) float32 75.0 72.5 70.0 67.5 65.0 ... 25.0 22.5 20.0 17.5 15.0\n", " * lon (lon) float32 -160.0 -157.5 -155.0 -152.5 ... -35.0 -32.5 -30.0\n", " * year (year) int64 2015 2020\n", "Data variables:\n", " data (lat, lon, year) float64 nan nan nan nan nan ... nan nan nan nan" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ds = pt.df_to_raster(df, idxr, \"adm0_a3\", idx_map, coords=[\"year\"])\n", "ds" ] }, { "cell_type": "code", "execution_count": 7, "id": "ab756b47", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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Bg0adNVnpk6dqueee06jRo3Szp079eWXXyo5Odl2Pzs7Wx07dlR8fLw2b96syZMna/z48Zo7d25JNMEpjrS30IABA9S4ceMi5fv371fnzp3Vvn17ZWRkaOjQofrrX/+qFStWFEfIbrleezdv3qyoqCi9/fbb2rlzp5577jmNHj1ar732mu0ZX2pvQUGBOnfurLy8PH377bdasGCB5s+fr+eff972TGlq7x916dJFly5d0urVq7V582bdfPPN6tKlizIzMyU51v7S5IMPPtAjjzyifv36adu2bVq/fr0efvhh231fa2+hZ555RjExMUXKS9PvYhQDw8elpaUZERERRcpPnjxphIaGGl9++eVV3501a5ZRqVIlIzc311b27LPPGnXr1i2OUD3iau0tNGvWLKNt27bGqlWrDEnGqVOnbPeeeeYZo2HDhnbP/+UvfzGSk5OLKVr3Xa+9v/fEE08Y7du3t332pfZ+/vnnRkBAgJGZmWkrmz17thEeHm7777c0ttcwDOP48eOGJGPdunW2suzsbEOSsXLlSsMwHGt/aZGfn2/UqFHDePPNN6/6jC+1t9Dnn39u1KtXz9i5c6chydi6davtXmn8XQzP8dkeletZuXKlrFarDh8+rPr166tmzZp64IEHdOjQIdsz6enpuv322+1OpkxOTtauXbt06tQpM8J2y48//qgJEyZo4cKFVzxsKz09XR06dLArS05OVnp6ekmFWKzOnDmjyMhI22dfam96eroaNWqkatWq2cqSk5OVnZ2tnTt32p4pje2tXLmy6tatq4ULF+r8+fO6dOmSXn/9dUVFRalp06aSHGt/abFlyxYdPnxYAQEBatKkiapXr65OnTppx44dtmd8qb2SlJWVpccee0xvvfWWypUrV+S+r/0uhnP8NlHZt2+frFarJk6cqGnTpun999/XyZMnddddd9lOtMzMzLT7RSDJ9rmwy7m0yM3N1UMPPaTJkycrLi7uis9crb3Z2dm6ePFiSYRZbL799lv961//0sCBA21lvtReR/5bLa3ttVgs+vLLL7V161aFhYUpJCREU6dO1fLly1WpUiVJvvW/1X379kmSxo8frzFjxujTTz9VpUqV1K5dO508eVKSb7XXMAw9+uijevzxx9WsWbMrPuNL7YXzSlWiMmrUKFkslmteP//8s0N1Wa1W5efna8aMGUpOTlbL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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ds.data.sel(year=2015).plot()" ] }, { "cell_type": "markdown", "id": "7cb235de", "metadata": {}, "source": [ "## Applying data to multiple raster layers\n", "\n", "In many applications, we actually have a single raster layer for each shape we are rasterizing which corresponds to the percent of the grid cell covered by that shape. That was shown in our [introduction tutorial](https://ptolemy-iamc.readthedocs.io/en/latest/notebooks/introduction.html#Percent-of-area-rasters), which we repeat here:" ] }, { "cell_type": "code", "execution_count": 8, "id": "42d55c2f", "metadata": {}, "outputs": [], "source": [ "r = pt.Rasterize(like=grid)\n", "r.read_shpf(url, idxkey=\"adm0_a3\")\n", "idxr_w = r.rasterize(strategy=\"weighted\", verbose=True)" ] }, { "cell_type": "code", "execution_count": 9, "id": "2256bc9e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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/XPMzc2Fo6OjjqMhXWLiQkREJAG5IINc0OIli1rca8iYuBAREUlAruXkXLmJDhVVieXQREREROpgjwsREZEEFIIZFFqsKlJwVRERERFVFg4VicOhIiIiIjIY7HEhIiKSgALarQxS6C4Ug8LEhYiISALab0BnmoMmptlqIiIiMkjscSEiIpKA9u8qMs2+ByYuREREElBABgW0mePCnXOJiIiokrDHRRzTbDUREREZJPa4EBERSUD7DehMs++BiQsRUSWKV8RJUm8vsyF6ea429PVnYSgUggwKbfZxMdG3Q5tmukZEREQGiT0uREREElBoOVRkqhvQMXEhIiKSgPZvhzbNxMU0W01EREQGiT0uREREEpBDBrkWm8hpc68hY+JCREQkAQ4ViWOarSYiIiKDxB4XIiIiCcih3XCPXHehGBQmLkRERBLgUJE4TFyIiIgkwJcsimOarSYiIjJRUVFRaNCgAaytreHr64tTp05VeH1kZCSaNWsGGxsbeHh4YNasWXj69GklRVsaExciIiIJCJBBocUhiJgfs3PnToSGhiI8PBzJyclo06YNAgICkJWVVeb127dvx9y5cxEeHo6//voLmzZtws6dO/H+++9r23zRmLgQERFJoGSoSJtDU6tWrcLEiRMRHBwMb29vxMTEwNbWFl988UWZ1x8/fhydO3fGyJEj0aBBA/Tu3RsjRox4YS+NPjFxISIiMmC5ubkqR0FBQZnXFRYWIikpCf7+/soyMzMz+Pv7IzExscx7OnXqhKSkJGWicu3aNezduxd9+/bVfUPUxMm5RKSWeEWc6Ht7mQ3RYSRExkEhyKAQxC+HLrnXw8NDpTw8PByLFi0qdf29e/cgl8vh5uamUu7m5oZLly6V+YyRI0fi3r176NKlCwRBQHFxMSZPnizpUBETFyIiIgnItXw7dMm9t27dgoODg7LcyspK69hKHD58GMuWLUN0dDR8fX1x9epVzJgxAx9++CEWLFigs+dogokLERGRAXNwcFBJXMpTs2ZNmJubIzMzU6U8MzMT7u7uZd6zYMECjBkzBm+//TYAoFWrVsjPz8ekSZPwwQcfwMys8meccI4LERGRBEqGirQ5NGFpaQkfHx8kJCT8LwaFAgkJCfDz8yvznsePH5dKTszNzQEAgiBo2GLdYI8LERGRBBQwg0KL/gMx94aGhiIoKAjt27dHhw4d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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "idxr_w.sel(adm0_a3=\"MEX\").plot()" ] }, { "cell_type": "markdown", "id": "348f5bc4", "metadata": {}, "source": [ "You can then apply data to your map based on these weighted raster layers directly." ] }, { "cell_type": "code", "execution_count": 10, "id": "16b540ca", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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4MGDTRELERERkRbJiUpCQoJO9x0+fBgdO3aEQqGQHBQREZG144ZvupG8RkVXERERuH6dO5kSERFVSjTCZQP03pn2cbjYloiIqBqGLojliAoRERGRvEw2okJERERV4860umGiQkREJAMuptWNyRIVngFEUmRPCauyLj+kqAYjqRliaTWzro/55SM4qKqsUziVVvtsaZpLlXV1f6/2UdSqpmmPxGvVPvvg+o3qGyciqgIX0xIREclBFAxbEMsRlcrdv38foijC2dkZAHDt2jXs2LEDLVu2RL9+/TT35efnGy9KIiIiK8M1KrqR/NbPwIEDsWnTJgBAbm4uOnfujA8++AADBw5EfHy8pLbmzp0LQRC0rhYtWmjqi4qKEBUVBU9PT7i4uGDo0KHIzs6WGjIRERFZKMmJyqlTp9C9e3cAwPbt2+Ht7Y1r165h06ZNWLlypeQAWrVqhczMTM3166+/auqmTp2K7777Dtu2bcPBgwdx48YNDBkyRPJ3EBERmR1u+KYTyVM/hYWFcHV1BQD8+OOPGDJkCOzs7NClSxdcu1b9grpKA6hdGz4+PhXK7969i/Xr12PLli3o3bs3gLLt+4ODg3H06FF06dJF8ncRERGZC771oxvJIypNmzbFzp07kZGRgb1792rWpeTk5ECpVEoO4PLly/D19UVQUBBGjBiB9PR0AEBycjJKS0vRt29fzb0tWrSAv78/kpKSqmyvuLgYeXl5WhcRERFZJsmJyjvvvIPp06ejcePGePLJJxEaGgqgbHSlQ4cOktrq3LkzNmzYgD179iA+Ph5paWno3r078vPzkZWVBQcHB7i7u2s94+3tjaysrCrbjI2NhZubm+by8/OT2kUiIqKawWmfx5I89fP888+jW7duyMzMRLt27TTlffr0weDBgyW1FRERofm5bdu26Ny5MwICAvDll1/CyclJamgAgFmzZiE6OlrzOS8vj8kKERGZHU796Eavs358fHzg6uqKffv24f79+wCATp06ab2xow93d3c88cQTuHLlCnx8fFBSUoLc3Fyte7Kzsytd01JOoVBAqVRqXURERGaHi2l1IjlRuXXrFvr06YMnnngCzzzzDDIzMwEAY8eOxbRp0wwK5t69e/jjjz/QoEEDhISEwN7eHvv379fUp6amIj09XTPdRERERNZNcqIydepU2NvbIz09XbPpGwC89NJL2LNnj6S2pk+fjoMHD+LPP//EkSNHMHjwYNSqVQsvv/wy3NzcMHbsWERHRyMxMRHJycmIjIxEaGgo3/ghIiIrIBjhsn6S16j8+OOP2Lt3Lxo1aqRV3qxZM8mvJ//11194+eWXcevWLdSvXx/dunXD0aNHUb9+fQDAsmXLYGdnh6FDh6K4uBjh4eFYtWqV1JCJiIjMj6HTNzYy9SM5USkoKNAaSSl3+/ZtKBQKSW1t3bq12npHR0fExcUhLi5OUrtERERkHSRP/XTv3l2zhT5QdkqyWq3G4sWL0atXL6MGR0REZLW4mFYnkkdUFi9ejD59+uDkyZMoKSnBm2++ifPnz+P27ds4fPiwKWIkG5DyprRzokhPYaZp9nCRutr61zZEVVnn/96xap8VVSq9YgKA2o0DqqwrbOFV7bMeb1c9lV0Yfq/aZ9WFhdUHRgTw9GQdSR5Rad26NS5duoSuXbti4MCBKCgowJAhQ3D69Gk0adLEFDESERGRjZI8ogIAbm5umD17trFjISIishmiWHYZ8rwt0GvDt19++QUjR45EWFgYrl+/DgD49NNPtU4+JiIiompwjYpOJCcqX331FcLDw+Hk5IRTp06huLgYQNlpxwsXLjR6gERERGS7JCcqCxYswOrVq7Fu3TrY29tryrt27YpTp04ZNTgiIiKrVb6Y1pBLApVKhTlz5iAwMBBOTk5o0qQJ3n33XYhmPockeY1KamoqnnrqqQrlbm5uFc7lISIiosoJYtllyPNSvP/++4iPj8fGjRvRqlUrnDx5EpGRkXBzc8OkSZP0D8TEJCcqPj4+uHLlCho3bqxV/uuvvyIoKMhYcREREVm3Gt6Z9siRIxg4cCD69+8PAGjcuDE+//xzHD9+3IAgTE/y1M9rr72GyZMn49ixYxAEATdu3MDmzZsxffp0vP7666aIkYiIiAwUFhaG/fv349KlSwCAM2fO4Ndff0VERITMkVVP8ojKzJkzoVar0adPHxQWFuKpp56CQqHA9OnTMXHiRFPESEREZH2MtOFbXl6eVrFCoaj0SJuZM2ciLy8PLVq0QK1ataBSqfDee+9hxIgR+sdQhd9//x3p6ekoKSnRKn/uuecktyUpUVGpVDh8+DCioqIwY8YMXLlyBffu3UPLli3h4uIi+cuJiIhslpGmfvz8/LSKY2JiMHfu3Aq3f/nll9i8eTO2bNmCVq1aISUlBVOmTIGvry9Gjx5tQCD/c/XqVQwePBhnz56FIAiahbqCUJZUqfTYaVpSolKrVi3069cPFy5cgLu7O1q2bCn5C4mIiMh4MjIyoFQqNZ+rOiB4xowZmDlzJoYNGwYAaNOmDa5du4bY2FijJSqTJ09GYGAg9u/fj8DAQBw/fhy3bt3CtGnT8J///EevNiVP/bRu3RpXr15FYGCgXl9IREREMNqIilKp1EpUqlJYWAg7O+2lqbVq1YJaXf1ZXVIkJSXhwIEDqFevHuzs7GBnZ4du3bohNjYWkyZNwunTpyW3qdc+KtOnT8f333+PzMxM5OXlaV1ERESkgxremfbZZ5/Fe++9hx9++AF//vknduzYgaVLl2Lw4MHG6Q/KpnZcXV0BAPXq1cONGzcAAAEBAUhNTdWrTckjKs888wyAsgUx5XNOACCKIgRB0Gv+iYiIiEzrww8/xJw5c/DGG28gJycHvr6++Pe//4133nnHaN/RunVrnDlzBoGBgejcuTMWL14MBwcHrF27Vu8tTCQnKomJiXp9ERFZr66O1Q/OHh73QZV1I78cVe2z2d3rV1mnfu52tc8e+8fmKuvsBb3OZAUARAQ/5i2J5HN6t002xEhv/ejK1dUVy5cvx/Lly/X/zseYPXs2CgoKAADz58/HgAED0L17d3h6emLr1q16tSn5v9QePXro9UVERET0PzW9M21NCA8P1/zctGlTXLx4Ebdv30bdunW1ZmGkkJyo/Pbbb5WWC4IAR0dH+Pv7V7nimIiIiKzXmDFjsGLFCs06FQDw8PBAQUEBJk6ciE8++URym5ITlfbt21ebFdnb2+Oll17CmjVr4OjoKDkgIiIim1DDW+jXhI0bN2LRokVaiQoA3L9/H5s2bdIrUZH81s+OHTvQrFkzrF27FikpKUhJScHatWvRvHlzbNmyBevXr8eBAwcwe/ZsycEQERGR5cnLy8Pdu3chiiLy8/O13ga+c+cOdu3aBS8vL73aljyi8t5772HFihVa81Bt2rRBo0aNMGfOHBw/fhx16tQxaHMXIiIiayfAwDUqRovEcO7u7hAEAYIg4IknnqhQLwgC5s2bp1fbkhOVs2fPIiAgoEJ5QEAAzp49C6BseigzM1OvgIiIiMiyJCYmQhRF9O7dG1999RU8PDw0dQ4ODggICICvr69ebUtOVFq0aIFFixZh7dq1cHBwAACUlpZi0aJFaNGiBQDg+vXr8Pb21isgIiIim1DDryebUvkbwWlpafDz86uwA64hJCcqcXFxeO6559CoUSO0bdsWQNkoi0qlwvfffw+g7FCiN954w2hBEhERWR0rXExbPuNSWFhY6enJ5XmDFJITlbCwMKSlpWHz5s24dOkSAOCFF17A8OHDNat8X3nlFcmBEBERkWW7efMmIiMjsXv37krrTX56cjlXV1eMHz9en0eJiIgIsMoRlSlTpiA3NxfHjh1Dz549sWPHDmRnZ2PBggX44IOqd6iujl6TSJ9++im6desGX19fXLt2DQCwbNkyfPPNN3oFQUREZGvKd6Y15DI3Bw4cwNKlS9GxY0fY2dkhICAAI0eOxOLFixEbG6tXm5ITlfj4eERHRyMiIgJ37tzRDOPUrVvXpOcHEBERkXkrKCjQ7JdSt25d3Lx5E0DZNianTp3Sq03JicqHH36IdevW4e2330bt2v+bOerYsaPm9WQiIiJ6DNEIl5lp3rw5UlNTAQDt2rXDmjVrcP36daxevRoNGjTQq03Ja1TS0tLQoUOHCuUKhUJzYiIR0cNOFbtWWddtW+Xnh5Wb7vF7lXWPPwFZ/xOSq6Pm6chkDFa4RmXy5MmafdRiYmLwz3/+E5999hkcHBywceNGvdqU/F9xYGAgUlJSKmz6tmfPHgQHB+sVBBEREVm+kSNHan4OCQnBtWvXcPHiRfj7+6NevXp6tSk5UYmOjkZUVBSKioogiiKOHz+Ozz//HLGxsfj444/1CoKIiMjWGLog1lwW00ZHR+t879KlSyW3LzlR+de//gUnJyfMnj0bhYWFGD58OHx9fbFixQoMGzZMcgBEREQ2yUp2pj19+rTW51OnTuHBgwdo3rw5AODSpUuoVasWQkJC9GpfrwncESNGYMSIESgsLMS9e/f0PhGRiIjIZlnJGpXExETNz0uXLoWrqys2btyIunXrAgDu3LmDyMhIdO/eXa/2DdqM39nZmUkKERERAQA++OADxMbGapIUoOw1ZUM2fNNpRKVDhw4QBN2GmPR9T5qIiMiWWMsalYfl5eVp9k552M2bN5Gfn69XmzolKoMGDdL8XFRUhFWrVqFly5YIDQ0FABw9ehTnz5/nQYRERES6spKpn4cNHjwYkZGR+OCDD/Dkk08CAI4dO4YZM2ZgyJAherWpU6ISExOj+flf//oXJk2ahHfffbfCPRkZGXoFQURERJZv9erVmD59OoYPH47S0lIAQO3atTF27FgsWbJErzYlL6bdtm0bTp48WaF85MiR6NixIz755BO9AiEiIrIphp7XY4YjKs7Ozli1ahWWLFmCP/74AwDQpEkT1KlTR+82JScqTk5OOHz4MJo1a6ZVfvjwYTg6OuodCBERkU2xwqmfcnXq1EHbtm2N0pbkRGXKlCl4/fXXcerUKa35p08++QRz5swxSlBEREREgB6JysyZMxEUFIQVK1bgs88+AwAEBwcjISEBL774otEDJCIiskpWPKJiTHpt+Pbiiy8yKSEiIjKANb6ebAoGbfhGREREZEo6jah4eHjg0qVLOp986O/vj19++aXCCctEZJv6OKmqqbv0mKf1Gvh9rHDfdiZpl4iMS6ffALm5udi9ezfc3Nx0avTWrVtQqar+xURERGTzuEZFJzr/r8ro0aNNGQcREZFN4RoV3ei0RkWtVku+goKCJAezaNEiCIKAKVOmaMqKiooQFRUFT09PuLi4YOjQocjOzpbcNhEREVkes1lMe+LECaxZs6bCBjFTp07Fd999h23btuHgwYO4ceOG3ucFEBERmRXRgMtGmEWicu/ePYwYMQLr1q3TOhr67t27WL9+PZYuXYrevXsjJCQECQkJOHLkCI4ePSpjxERERAYyJEmxoWTFLBKVqKgo9O/fH3379tUqT05ORmlpqVZ5ixYt4O/vj6SkpErbKi4uRl5entZFRERElsk07/1JsHXrVpw6dQonTpyoUJeVlQUHBwe4u7trlXt7eyMrK6vS9mJjYzFv3jxThEpERGQ0XEyrG1lHVDIyMjB58mRs3rzZaAcazpo1C3fv3tVcGRkZRmmXiIjIqDj1oxO9EpU//vgDs2fPxssvv4ycnBwAwO7du3H+/HlJ7SQnJyMnJwf/+Mc/ULt2bdSuXRsHDx7EypUrUbt2bXh7e6OkpAS5ublaz2VnZ8PHx6fSNhUKBZRKpdZFRERElklyonLw4EG0adMGx44dw9dff4179+4BAM6cOYOYmBhJbfXp0wdnz55FSkqK5urYsSNGjBih+dne3h779+/XPJOamor09HSEhoZKDZ2IiMhslE/9GHLZAsmJysyZM7FgwQLs27cPDg4OmvLevXtLfhPH1dUVrVu31rrq1KkDT09PtG7dGm5ubhg7diyio6ORmJiI5ORkREZGIjQ0FF26dJEaOhERkfmQYern+vXrGDlyJDw9PeHk5IQ2bdrg5MmThvfFhCQvpj179iy2bNlSodzLywt///23UYJ62LJly2BnZ4ehQ4eiuLgY4eHhWLVqldG/h4iIyJrduXMHXbt2Ra9evbB7927Ur18fly9f1toWxBxJTlTc3d2RmZmJwMBArfLTp0+jYcOGBgf0888/a312dHREXFwc4uLiDG6biIjIbNTwWT/vv/8+/Pz8kJCQoCl79O9ycyR56mfYsGF46623kJWVBUEQoFarcfjwYUyfPh2jRo0yRYxERERWx1hrVB7dO6y4uLjS7/v222/RsWNHvPDCC/Dy8kKHDh2wbt26GuyxfiSPqCxcuBBRUVHw8/ODSqVCy5YtoVKpMHz4cMyePdsUMRIR6SXct53cIRBVzUgjKn5+flrFMTExmDt3boXbr169ivj4eERHR+P//u//cOLECUyaNAkODg5mffCw5ETFwcEB69atw5w5c3Du3Dncu3cPHTp0QLNmzUwRHxEREVUjIyNDaysOhUJR6X1qtRodO3bEwoULAQAdOnTAuXPnsHr1autKVMr5+/vD39/fmLEQERHZDiONqOi6Z1iDBg3QsmVLrbLg4GB89dVXBgRhejolKtHR0To3uHTpUr2DISIishU1vYV+165dkZqaqlV26dIlBAQE6B9EDdApUTl9+rTW51OnTuHBgwdo3rw5gLKO1qpVCyEhIcaPkIiIiAw2depUhIWFYeHChXjxxRdx/PhxrF27FmvXrpU7tGrplKgkJiZqfl66dClcXV2xceNGzbvXd+7cQWRkJLp3726aKImIiKxNDb+e3KlTJ+zYsQOzZs3C/PnzERgYiOXLl2PEiBEGBGF6kteofPDBB/jxxx+1NoipW7cuFixYgH79+mHatGlGDZCIiMgayXF68oABAzBgwAD9v1QGkvdRycvLw82bNyuU37x5E/n5+UYJioiIiAjQI1EZPHgwIiMj8fXXX+Ovv/7CX3/9ha+++gpjx47FkCFDTBEjERGR9ZHhrB9LJHnqZ/Xq1Zg+fTqGDx+O0tLSskZq18bYsWOxZMkSowdIRERklWp4jYqlkpyoODs7Y9WqVViyZAn++OMPAECTJk1Qp04dowdHREREtk3vDd/q1KmDtm3bGjMWIiIimyH89zLkeVsgOVHp1asXBKHqP54DBw4YFBAREZFN4NSPTiQnKu3bt9f6XFpaipSUFJw7d86szwogIiIyJ3K8nmyJJCcqy5Ytq7R87ty5uHfvnsEBEREREZXTe43Ko0aOHIknn3wS//nPf4zVJNmQcN92VdbtvXFG73b/eFB98tyoVuWnjAKAQrDX+3uJiB6LUz86MVqikpSUBEdHR2M1R0REZP1sJNkwhORE5dFN3URRRGZmJk6ePIk5c+YYLTAiIiIiyYmKUqnUeuvHzs4OzZs3x/z589GvXz+jBkdERGStuJhWN5ITlQ0bNpggDCIiIhvDNSo6kXzWT1BQEG7dulWhPDc3F0FBQUYJioiIiAjQY0Tlzz//hEqlqlBeXFyM69evGyUoIiIia8epH93onKh8++23mp/37t0LNzc3zWeVSoX9+/ejcePGRg2OiIjIanHqRyc6JyqDBg0CAAiCUGEHWnt7ezRu3BgffPCBUYMjIiIi26ZzoqJWqwEAgYGBOHHiBOrVq2eyoIiIiKwdp350I3mNSlpaminiICIisi2c+tGJTonKypUrMW7cODg6OmLlypXV3jtp0iSjBEZERGTVmKjoRKdEZdmyZRgxYgQcHR2rPJQQKFu/wkSFiIiIjEWnROXh6R5O/RARERmOa1R0I3mNyvz58zF9+nQ4Oztrld+/fx9LlizBO++8Y7TgiIDqT1Z+nFv/Dqu2/m7Tqv9LrxVQUO2zoihUWVerlrraZ492WVdlndLOqdpnbY0h//yJzBqnfnQieWfaefPm4d69exXKCwsLMW/ePKMERURERAToMaIiiqLWoYTlzpw5Aw8PD6MERUREZO0EUYQg6j8sYsizlkTnRKVu3boQBAGCIOCJJ57QSlZUKhXu3buH8ePHmyRIIiIiq8OpH53onKgsX74coihizJgxmDdvntYW+g4ODmjcuDFCQ0NNEiQRERHZJp0TlfJt8wMDAxEWFgZ7e3uTBUVERGTt+NaPbiSvUenRo4fm56KiIpSUlGjVK5VKw6MiIiKydpz60Ynkt34KCwsxYcIEeHl5oU6dOqhbt67WRURERGQskhOVGTNm4MCBA4iPj4dCocDHH3+MefPmwdfXF5s2bTJFjERERFanfOrHkMsWSJ76+e6777Bp0yb07NkTkZGR6N69O5o2bYqAgABs3rwZI0aMMEWcRERE1oVTPzqRPKJy+/ZtBAUFAShbj3L79m0AQLdu3XDo0CHjRkdERGSlOKKiG8mJSlBQkOa8nxYtWuDLL78EUDbS4u7ubtTgiIiIyLZJTlQiIyNx5swZAMDMmTMRFxcHR0dHTJ06FTNmzDB6gERERFZJNMJlAySvUZk6darm5759++LixYtITk5G06ZN0bZtW6MGR0REZM1sZfrGEJJHVB4VEBCAIUOGwMPDA+PGjTNGTEREREQA9BhRqcqtW7ewfv16rF271lhNEpmc25WKB2xqXHEx2fe2z5xSdWWt6v8X68Rzy6qs87Sro2dERFTjRLHsMuR5G2DwiAoRERFJJ/dbP4sWLYIgCJgyZYpR+mMqTFSIiIhszIkTJ7BmzRqLWFsqa6ISHx+Ptm3bQqlUQqlUIjQ0FLt379bUFxUVISoqCp6ennBxccHQoUORnZ0tY8RERERGItNbP/fu3cOIESOwbt06izj6Ruc1KkOGDKm2Pjc3V/KXN2rUCIsWLUKzZs0giiI2btyIgQMH4vTp02jVqhWmTp2KH374Adu2bYObmxsmTJiAIUOG4PDhw5K/i4iIyJwI6rLLkOcBIC8vT6tcoVBAoVBU+VxUVBT69++Pvn37YsGCBfoHUEN0TlTc3NweWz9q1ChJX/7ss89qfX7vvfcQHx+Po0ePolGjRli/fj22bNmC3r17AwASEhIQHByMo0ePokuXLpK+i4iIyBr5+flpfY6JicHcuXMrvXfr1q04deoUTpw4UQORGYfOiUpCQoIp44BKpcK2bdtQUFCA0NBQJCcno7S0FH379tXc06JFC/j7+yMpKYmJChERWTYjnfWTkZEBpVKpKa5qNCUjIwOTJ0/Gvn374OjoaMAX1yyjvZ6sr7NnzyI0NBRFRUVwcXHBjh070LJlS6SkpMDBwaHCtvze3t7Iysqqsr3i4mIUFxdrPj86JEZERGQODH1zp/zZ8nWej5OcnIycnBz84x//0JSpVCocOnQIH330EYqLi1GrVi39AzIR2ROV5s2bIyUlBXfv3sX27dsxevRoHDx4UO/2YmNjMW/ePCNGSEREZAI1vI9Knz59cPbsWa2yyMhItGjRAm+99ZZZJimAGSQqDg4OaNq0KQAgJCQEJ06cwIoVK/DSSy+hpKQEubm5WqMq2dnZ8PHxqbK9WbNmITo6WvM5Ly+vwvwdERGRrXF1dUXr1q21yurUqQNPT88K5ebE7PZRUavVKC4uRkhICOzt7bF//35NXWpqKtLT0xEaGlrl8wqFQjMMputwGBERUU2Te8M3SyHriMqsWbMQEREBf39/5OfnY8uWLfj555+xd+9euLm5YezYsYiOjoaHhweUSiUmTpyI0NBQLqQlIiLLZ6TFtIb4+eefDW/ExGRNVHJycjBq1ChkZmbCzc0Nbdu2xd69e/H0008DAJYtWwY7OzsMHToUxcXFCA8Px6pVq+QMmYiIiGqQrInK+vXrq613dHREXFwc4uLiaigiIiKimmGst36sneyLaYmIiGwST0/WCRMVsmqea45UW3/r32E1FIk2j3P6r2MP83y9yrr2Da9X+2xut7/1/l5D7L1xRpbvJSLLx0SFiIhIBpz60Q0TFSIiIjmYwVs/lsDs9lEhIiIiKscRFSIiIhlw6kc3TFSIiIjkoBbLLkOetwFMVIiIiOTANSo64RoVIiIiMlscUSEiIpKBAAPXqBgtEvPGRIWIiEgO3JlWJ5z6ISIiIrPFERUiIiIZ8PVk3TBRISIikgPf+tEJp36IiIjIbHFEhYiISAaCKEIwYEGsIc9aEiYqZNM81xypsu7Wv8NqMBLduR6oU2Vd7pq/azAS3YX7tpM7BCLzo/7vZcjzNoBTP0RERGS2OKJCREQkA0796IaJChERkRz41o9OmKgQERHJgTvT6oRrVIiIiMhscUSFiIhIBtyZVjdMVIiIiOTAqR+dcOqHiIiIzBZHVIiIiGQgqMsuQ563BUxUiIiI5MCpH51w6oeIiIjMFkdUiIiI5MAN33TCRIWIiEgG3EJfN5z6ISIiIrNlMyMqOy6dhdK1luTneDy97fJcc0TvZ2/9O8yIkRjve6vrkyljNuTPkshqcTGtTmwmUSEiIjIrIgBDXjG2jTyFiQoREZEcuEZFN1yjQkRERGaLIypERERyEGHgGhWjRWLWOKJCREQkh/LFtIZcEsTGxqJTp05wdXWFl5cXBg0ahNTUVBN1zniYqBAREdmAgwcPIioqCkePHsW+fftQWlqKfv36oaCgQO7QqsWpHyIiIjmoAQgGPi/Bnj17tD5v2LABXl5eSE5OxlNPPWVAIKbFRIWIiEgGxnrrJy8vT6tcoVBAoVA89vm7d+8CADw8PPSOoSZw6oeIiMiC+fn5wc3NTXPFxsY+9hm1Wo0pU6aga9euaN26dQ1EqT+OqBAREcnBSDvTZmRkQKlUaop1GU2JiorCuXPn8Ouvv+r//TWEiQoREZEcjJSoKJVKrUTlcSZMmIDvv/8ehw4dQqNGjfT//hrCRIWIiMgGiKKIiRMnYseOHfj5558RGBgod0g6YaJCREQkhxo+lDAqKgpbtmzBN998A1dXV2RlZQEA3Nzc4OTkpH8cJmYzicrgJ9qgtmBfad3eG2eqfK66OoCnK5Nlqe6EZPuC6n/p2RdU/S5koZf0k8mJbF4Nv54cHx8PAOjZs6dWeUJCAl599VUDAjEtm0lUiIiIzElNH0ooWughhnw9mYiIiMyWrImKLucOFBUVISoqCp6ennBxccHQoUORnZ0tU8RERERGUsNn/VgqWRMVXc4dmDp1Kr777jts27YNBw8exI0bNzBkyBAZoyYiIjICtWj4ZQNkXaPyuHMH7t69i/Xr12PLli3o3bs3gLJFP8HBwTh69Ci6dOkiR9hERERUQ8xqjcqj5w4kJyejtLQUffv21dzTokUL+Pv7IykpSZYYiYiIjIJTPzoxm7d+Kjt3ICsrCw4ODnB3d9e619vbW/P+96OKi4tRXFys+fzoYU1ERETmwdBkwzYSFbMZUSk/d2Dr1q0GtRMbG6t1OJOfn5+RIiQiIqKaZhaJSvm5A4mJiVrnDvj4+KCkpAS5ubla92dnZ8PHx6fStmbNmoW7d+9qroyMDFOGTkREpB9O/ehE1kRFFEVMmDABO3bswIEDByqcOxASEgJ7e3vs379fU5aamor09HSEhoZW2qZCodAc0CT1oCYiIqIaw7d+dCLrGpXHnTvg5uaGsWPHIjo6Gh4eHlAqlZg4cSJCQ0P5xg8REZENkDVR0eXcgWXLlsHOzg5Dhw5FcXExwsPDsWrVqhqOlIiIyMhEddllyPM2QNZERZdzBxwdHREXF4e4uLgaiIiIiKiG1PDpyZbKbF5PJiIisilqEQa9Ysw1KrYj3Led3CGQlfFcc0TvZ2/9O8yIkejO/UJ+tfXq5HNV1jkZOxgiov9iokJERCQHTv3ohIkKERGRHEQYmKgYLRKzZhYbvhERERFVhiMqREREcuDUj06YqBAREclBrQZgwF4oatvYR4VTP0RERGS2OKJCREQkB0796ISJChERkRyYqOiEUz9ERERktjiiQkREJAduoa8TJipEREQyEEU1RANOQDbkWUvCRIWIiEgOomjYqAjXqBARERHJiyMqREREchANXKNiIyMqTFSIzIznmiMma/vWv8Oqrrxw1WTfS0SVUKsBwYB1JjayRoVTP0RERGS2OKJCREQkB0796ISJChERkQxEtRqiAVM/tvJ6Mqd+iIiIyGxxRIWIiEgOnPrRCRMVIiIiOahFQGCi8jic+iEiIiKzxREVIiIiOYgiAEP2UbGNERUmKkRERDIQ1SJEA6Z+RBtJVDj1Q0REJAdRbfilh7i4ODRu3BiOjo7o3Lkzjh8/buSOGRcTFSIiIhvxxRdfIDo6GjExMTh16hTatWuH8PBw5OTkyB1alZioEBERyUBUiwZfUi1duhSvvfYaIiMj0bJlS6xevRrOzs745JNPTNBD42CiQkREJIcanvopKSlBcnIy+vbtqymzs7ND3759kZSUZOzeGY3VL6YtX2z0AKUG7atDZA1UJUVV1j0QS6p9Vi2WGjscIrPzAGX/ntfEQlVD/14qjzUvL0+rXKFQQKFQVLj/77//hkqlgre3t1a5t7c3Ll68qH8gJmb1iUp+fj4A4FfskjkSIjPwyTdyR0BkEfLz8+Hm5maSth0cHODj44Nfswz/e8nFxQV+fn5aZTExMZg7d67BbZsLq09UfH19kZGRAVdXVwiCgLy8PPj5+SEjIwNKpVLu8EyO/bVettRXgP21dubSX1EUkZ+fD19fX5N9h6OjI9LS0lBSUv0opi5EUYQgCFpllY2mAEC9evVQq1YtZGdna5VnZ2fDx8fH4FhMxeoTFTs7OzRq1KhCuVKptIn/+Muxv9bLlvoKsL/Wzhz6a6qRlIc5OjrC0dHR5N/zMAcHB4SEhGD//v0YNGgQAECtVmP//v2YMGFCjcYihdUnKkRERFQmOjoao0ePRseOHfHkk09i+fLlKCgoQGRkpNyhVYmJChERkY146aWXcPPmTbzzzjvIyspC+/btsWfPngoLbM2JzSUqCoUCMTExVc7hWRv213rZUl8B9tfa2Vp/5TRhwgSznup5lCDaymEBREREZHG44RsRERGZLSYqREREZLaYqBAREZHZYqJCREREZstqE5X33nsPYWFhcHZ2hru7e5X3bdiwAW3btoWjoyO8vLwQFRWlVf/bb7+he/fucHR0hJ+fHxYvXmziyPWja38B4NatW2jUqBEEQUBubq5W3c8//4x//OMfUCgUaNq0KTZs2GCymA3xuP6eOXMGL7/8Mvz8/ODk5ITg4GCsWLGiwn3W0l8ASE9PR//+/eHs7AwvLy/MmDEDDx480LrHUvr7qEuXLmHgwIGoV68elEolunXrhsTERK17dOm/Jfnhhx/QuXNnODk5oW7dupoNuspZW38BoLi4GO3bt4cgCEhJSdGqs5TfxWR8VpuolJSU4IUXXsDrr79e5T1Lly7F22+/jZkzZ+L8+fP46aefEB4erqnPy8tDv379EBAQgOTkZCxZsgRz587F2rVra6ILkujS33Jjx45F27ZtK5SnpaWhf//+6NWrF1JSUjBlyhT861//wt69e00RskEe19/k5GR4eXnhs88+w/nz5/H2229j1qxZ+OijjzT3WFN/VSoV+vfvj5KSEhw5cgQbN27Ehg0b8M4772jusaT+PmrAgAF48OABDhw4gOTkZLRr1w4DBgxAVlYWAN36b0m++uorvPLKK4iMjMSZM2dw+PBhDB8+XFNvbf0t9+abb1a6db0l/S4mExCtXEJCgujm5lah/Pbt26KTk5P4008/VfnsqlWrxLp164rFxcWasrfeekts3ry5KUI1iqr6W27VqlVijx49xP3794sAxDt37mjq3nzzTbFVq1Za97/00ktieHi4iaI13OP6+7A33nhD7NWrl+azNfV3165dop2dnZiVlaUpi4+PF5VKpebfX0vsryiK4s2bN0UA4qFDhzRleXl5IgBx3759oijq1n9LUVpaKjZs2FD8+OOPq7zHmvpbbteuXWKLFi3E8+fPiwDE06dPa+os8XcxGY/Vjqg8zr59+6BWq3H9+nUEBwejUaNGePHFF5GRkaG5JykpCU899RQcHBw0ZeHh4UhNTcWdO3fkCNsgv//+O+bPn49NmzbBzq7iP/qkpCT07dtXqyw8PBxJSUk1FaJJ3b17Fx4eHprP1tTfpKQktGnTRmt3yfDwcOTl5eH8+fOaeyyxv56enmjevDk2bdqEgoICPHjwAGvWrIGXlxdCQkIA6NZ/S3Hq1Clcv34ddnZ26NChAxo0aICIiAicO3dOc4819RcoOxTvtddew6effgpnZ+cK9db2u5iksdlE5erVq1Cr1Vi4cCGWL1+O7du34/bt23j66ac1J1pmZWVV2Fa4/HP5kLOlKC4uxssvv4wlS5bA39+/0nuq6m9eXh7u379fE2GazJEjR/DFF19g3LhxmjJr6q8u/65aan8FQcBPP/2E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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ds_w = pt.df_to_weighted_raster(df, idxr_w, extra_coords=[\"year\"], sum_dim=[\"adm0_a3\"])\n", "ds_w.data.sel(year=2015).plot()" ] }, { "cell_type": "markdown", "id": "fac343d5", "metadata": {}, "source": [ "## Getting data from a map (Zonal Statistics)\n", "\n", "Using the tools developed so far, we can also get data corresponding to different shape areas (i.e., zonal statistics). For that, we need to provide the data to extract and mapping information from the index rasters." ] }, { "cell_type": "code", "execution_count": 11, "id": "8b1df753", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearadm0_a3data
02015MEX5.0
12015USA15.0
22020MEX10.0
32020USA20.0
\n", "
" ], "text/plain": [ " year adm0_a3 data\n", "0 2015 MEX 5.0\n", "1 2015 USA 15.0\n", "2 2020 MEX 10.0\n", "3 2020 USA 20.0" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pt.raster_to_df(ds, idxr, idx_map=idx_map, idx_dim=\"adm0_a3\", func=\"max\")" ] }, { "cell_type": "code", "execution_count": 12, "id": "e01f1ed6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearadm0_a3data
02015MEX170.0
12015USA2685.0
22020MEX340.0
32020USA3580.0
\n", "
" ], "text/plain": [ " year adm0_a3 data\n", "0 2015 MEX 170.0\n", "1 2015 USA 2685.0\n", "2 2020 MEX 340.0\n", "3 2020 USA 3580.0" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pt.raster_to_df(ds, idxr, idx_map=idx_map, idx_dim=\"adm0_a3\", func=\"sum\")" ] }, { "cell_type": "markdown", "id": "24645d02", "metadata": {}, "source": [ "Similarly, `raster_to_df()` supports weighted rasters **but** these need to be applied carefully as they can **overlap multiple shapes**" ] }, { "cell_type": "code", "execution_count": 13, "id": "98edf506", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearadm0_a3data
02015BLZ0.849057
12015CAN8.571428
22015GTM2.745902
32015MEX5.000000
42015USA15.000000
52020BLZ1.698113
62020CAN11.428571
72020GTM5.491803
82020MEX10.000000
92020USA20.000000
\n", "
" ], "text/plain": [ " year adm0_a3 data\n", "0 2015 BLZ 0.849057\n", "1 2015 CAN 8.571428\n", "2 2015 GTM 2.745902\n", "3 2015 MEX 5.000000\n", "4 2015 USA 15.000000\n", "5 2020 BLZ 1.698113\n", "6 2020 CAN 11.428571\n", "7 2020 GTM 5.491803\n", "8 2020 MEX 10.000000\n", "9 2020 USA 20.000000" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pt.raster_to_df(ds, idxr_w, func=\"max\")" ] }, { "cell_type": "code", "execution_count": 14, "id": "c135561e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
yearadm0_a3data
02015BLZ0.003986
12015CAN0.628625
22015GTM0.017635
32015MEX0.731777
42015USA12.021734
52020BLZ0.007972
62020CAN0.838166
72020GTM0.035269
82020MEX1.454658
92020USA16.067691
\n", "
" ], "text/plain": [ " year adm0_a3 data\n", "0 2015 BLZ 0.003986\n", "1 2015 CAN 0.628625\n", "2 2015 GTM 0.017635\n", "3 2015 MEX 0.731777\n", "4 2015 USA 12.021734\n", "5 2020 BLZ 0.007972\n", "6 2020 CAN 0.838166\n", "7 2020 GTM 0.035269\n", "8 2020 MEX 1.454658\n", "9 2020 USA 16.067691" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pt.raster_to_df(ds, idxr_w, func=\"mean\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.9" } }, "nbformat": 4, "nbformat_minor": 5 }