{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Quick Start - Area of Interest (AOI) Query\n", "\n", "In this section, we will find and request a pre-defined area of interest (AOI) and use it to initiate a Environmental Intelligence (EI): Geospatial APIs raster query.\n", "\n", "In order to run this notebook, `ibmpairs`, `geopandas`, `geoplot`, `numpy` and `matplotlib` must be installed to your python environment using your package manager of choice, e.g. with pip:\n", "\n", "```\n", "pip install ibmpairs geopandas geoplot numpy matplotlib\n", "```\n", "\n", "## Search for AOI\n", "\n", "An AOI, in Geospatial APIs, is a pre-defined labelled spatial definition that can be specified as the spatial extent (area) of a raster query; usually a jurisdiction (e.g. country, state etc).\n", "\n", "To use an AOI in a raster query, we must find an area that we wish to query; to do so, we can use the SDK method `query.search_aois`:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-06-19 10:03:54 - paw - INFO - The client authentication method is assumed to be OAuth2.\n", "2024-06-19 10:03:54 - paw - INFO - Legacy Environment is False\n", "2024-06-19 10:03:54 - paw - INFO - The authentication api key type is assumed to be IBM Cloud IAM, because the api key prefix 'PHX' is not present.\n", "2024-06-19 10:03:55 - paw - INFO - Authentication success.\n", "2024-06-19 10:03:55 - paw - INFO - HOST: https://api.ibm.com/geospatial/run/na/core/v3\n" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", "
idkeyname
051575missouri.texasMissouri.Texas
152132oklahoma.texasOklahoma.Texas
252653texas.andersonTexas.Anderson
352558texas.andrewsTexas.Andrews
452661texas.angelinaTexas.Angelina
............
50952553texas.yoakumTexas.Yoakum
51052595texas.youngTexas.Young
51152769texas.zapataTexas.Zapata
51252758texas.zavalaTexas.Zavala
513164usa-texasUSA - Texas
\n", "

514 rows × 3 columns

\n", "
" ], "text/plain": [ " id key name\n", "0 51575 missouri.texas Missouri.Texas\n", "1 52132 oklahoma.texas Oklahoma.Texas\n", "2 52653 texas.anderson Texas.Anderson\n", "3 52558 texas.andrews Texas.Andrews\n", "4 52661 texas.angelina Texas.Angelina\n", ".. ... ... ...\n", "509 52553 texas.yoakum Texas.Yoakum\n", "510 52595 texas.young Texas.Young\n", "511 52769 texas.zapata Texas.Zapata\n", "512 52758 texas.zavala Texas.Zavala\n", "513 164 usa-texas USA - Texas\n", "\n", "[514 rows x 3 columns]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import os\n", "import ibmpairs.query as query\n", "import ibmpairs.client as client\n", "\n", "import geopandas\n", "import geoplot\n", "import PIL.Image\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# It is best practice not to include secrets in source code so \n", "# we read an api key, tenant id and org id from operating system \n", "# environment variables.\n", "EI_API_KEY = os.environ.get('EI_API_KEY')\n", "EI_TENANT_ID = os.environ.get('EI_TENANT_ID')\n", "EI_ORG_ID = os.environ.get('EI_ORG_ID')\n", "\n", "# Authenticate and get a client object.\n", "ei_client = client.get_client(api_key = EI_API_KEY,\n", " tenant_id = EI_TENANT_ID,\n", " org_id = EI_ORG_ID)\n", "\n", "# Search for AOIs that contain the word 'texas'\n", "aois_list = query.search_aois('texas')\n", "aois_list" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The search includes the results that contain the word `texas`; the `usa-texas` key represents the AOI of the state of Texas (USA), the `texas.*` entries represent the counties of the state of Texas.\n", "\n", "To get the metadata information about the `usa-texas` area of interest (id: 164) it can be requested with `query.get_aoi`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-06-19 10:03:56 - paw - INFO - The AOI metadata for 164 was retreived.\n" ] }, { "data": { "text/plain": [ "{\n", " \"bbox\": [\n", " 25.795808134,\n", " -106.683192366,\n", " 36.543596825,\n", " -93.457684889\n", " ],\n", " \"geojson\": \"{\\\"type\\\":\\\"Polygon\\\",\\\"coordinates\\\":[[[-106.683192366,31.942887307],[-106.623555771,32.051088309],[-103.106759183,32.052422446],[-103.069255984,36.518767545],[-100.001664892,36.543596825],[-99.947481351,34.629539979],[-99.666860972,34.42584217],[-99.443502852,34.421964197],[-99.35225105,34.498731218],[-99.168595192,34.365424006],[-99.151419194,34.258301545],[-98.617954477,34.207820825],[-98.45306249,34.106891538],[-98.364816544,34.190188117],[-98.09945857,34.196541332],[-98.046652334,34.041269506],[-97.952756011,34.041201779],[-97.864138897,33.907847955],[-97.676628909,34.038434165],[-97.405805152,33.873028749],[-97.212875245,33.955774758],[-97.038044097,33.898091427],[-96.926673431,34.011772333],[-96.735380541,33.884608678],[-96.680475368,33.961655112],[-96.564887797,33.942126555],[-96.337457867,33.777559085],[-95.955516065,33.938561937],[-95.839855327,33.89476448],[-95.606920256,33.994652663],[-95.381475661,33.918893627],[-95.231846792,34.014910591],[-94.698494179,33.743140481],[-94.004066235,33.594411362],[-93.985199649,32.032647195],[-93.791098661,31.826988238],[-93.767547467,31.588362385],[-93.662551777,31.545530928],[-93.457684889,31.033670436],[-93.700113749,30.381833203],[-93.665049423,30.045410481],[-93.890130492,29.821797319],[-93.799781583,29.639425381],[-94.056090317,29.624317626],[-94.657152118,29.389436631],[-94.718038976,29.280154556],[-95.159355468,29.06646069],[-95.213790288,28.942762424],[-95.50016826,28.761183681],[-96.186041713,28.443188984],[-96.289079434,28.601154175],[-96.432821374,28.529113479],[-96.34373839,28.450730681],[-96.359955447,28.313841319],[-97.006743803,27.814142144],[-97.337113518,27.096559989],[-97.124072365,25.942387258],[-97.439608822,25.795808134],[-97.679904807,25.978401576],[-98.21225533,26.007020435],[-98.836320548,26.322054341],[-99.140934462,26.383114572],[-99.327120372,26.827148364],[-99.50162411,27.00994253],[-99.592395872,27.573469602],[-99.909497886,27.761719649],[-99.981046649,27.94715027],[-100.336999739,28.249004006],[-100.838189521,29.20917135],[-101.100663006,29.430928588],[-101.292388839,29.487132103],[-101.454690557,29.711166129],[-102.071783739,29.735317214],[-102.315415773,29.823623154],[-102.367950031,29.721216833],[-102.654036124,29.685139842],[-102.839343066,29.326617625],[-102.827541717,29.198036795],[-103.128945492,28.935570357],[-103.298967082,28.939999442],[-104.072183054,29.285652478],[-104.567370224,29.640927351],[-104.936146093,30.541708409],[-105.420535727,30.813004765],[-106.026575894,31.351101793],[-106.244681586,31.439332696],[-106.415717092,31.691927148],[-106.653129721,31.785506674],[-106.683192366,31.942887307]],[[-97.239626055,26.128786906],[-97.407263982,26.696945754],[-97.446677021,26.958965578],[-97.515484394,26.938223626],[-97.410651734,26.466128023],[-97.239626055,26.128786906]],[[-97.450153219,27.076390578],[-97.450269297,27.080311662],[-97.450868042,27.078870744],[-97.450153219,27.076390578]],[[-97.291085769,27.754783882],[-97.21678344,27.726390349],[-97.187452766,27.763276336],[-97.343308575,27.793643851],[-97.291085769,27.754783882]]]}\",\n", " \"id\": 164,\n", " \"key\": \"usa-texas\",\n", " \"name\": \"USA - Texas\"\n", "}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "texas_id = int(aois_list.loc[aois_list['key'] == 'usa-texas', 'id'].iloc[0])\n", "texas = query.get_aoi(texas_id)\n", "texas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to check the AOI has the desired shape, it can be loaded into a geopandas dataframe and plotted with geoplot:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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zZkzx3Ycj8UME3TvvffqoYce4uTvZPD2228rJCRE69evV+vWrTVr1ixVqVJFZcuW1Xvvvadjx47ZjggAiYSEhKhnz55asmSJLly4YDuOx2KGCZKkefPmqUWLFvrll19Urlw523G80sGDB1WyZEkNGTJEffr0kSTFxcVp1apVmjlzpr744gvduHFDderUUevWrVWwYEEFBwf/5SNdunTy8+PnGQCp49y5cypUqJD69Omjt99+23Ycj0RhgiQpNjZWBQoUUJMmTTR27FjbcTxabGysTpw4oSNHjujw4cM6cuSIjhw5oo0bN+rq1as6ePCg0qVLd9vrrly5ooULF2rmzJlas2aN3P1fL23atH9bqP7p0a5dO2XPnj2lPj4Ah+rXr58mTpyoo0ePKkuWLLbjeBwKE2557bXXNGrUKP3222/KkCGD7TgeY+TIkfr5559vFaPjx48rISHh1p/nyZNHhQoVUqFChdS6dWs9/vjjbr9nZGSkIiMjFRUVlayPs2fP6tFHH9XixYvZMwUgSc6cOaPChQurX79+GjRokO04HofChFuOHz+uQoUKafz48erSpYvtOB5h3bp1evDBB1W5cmWVKFHiVjEqXLiwChUqpAIFCiht2rS2Y96ydOlSNWrUSCNHjlTv3r1txwHgZcLDwzV16lQdOXJEISEhtuN4FAoTEnnyySf1yy+/aNGiRSpbtqztOFYZY1S7dm1du3ZNW7Zs8ZoZmz59+mjcuHHauHGjKlasaDsOAA8RGxurNWvW6MSJE7p8+bJ+//332x4nT57U/v37NWPGDD333HO2I3sUChMS2bdvn5o1a6aDBw9q6NCh6tGjh9cUheS2YsUK1a9fX0uWLFHDhg1tx7lj0dHRql69uq5fv64tW7Yoffr0tiMBsOjAgQOaMmWKpk+frjNnzkiSMmbMqMyZM//lIyQkRK+//rqCg4MtJ/csFCbc5vr164qIiNCYMWP0+OOPa+rUqT63idgYo/vvv1+BgYFav36915XGvXv3qkqVKmrTpo0++ugj23EApLLr169rwYIFmjx5statW6csWbKobdu26tChg8qWLSt/f3/bEb0O1y3jNunSpdPo0aO1aNEi/fjjjypfvrxWrlxpO1aq+vLLL7V582a9/fbbXleWJKlkyZL68MMPNXnyZM2bN892HACp5Oeff1ZYWJhy586ttm3byt/f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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "texas_geopandas = geopandas.read_file(texas.geojson, driver='GeoJSON')\n", "gx = geoplot.polyplot(texas_geopandas.geometry)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Query with AOI\n", "\n", "Once it has been verified that the AOI is of the desired location for the query, we can run a raster query (see [Quick Start- Raster Query](quickstartrasterquery.ipynb)) with the texas AOI id as the specified spatial definition:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2024-06-19 10:03:56 - paw - INFO - TASK: submit_check_status_and_download STARTING.\n", "2024-06-19 10:03:57 - paw - INFO - The query was successfully submitted with the id: 1718755200_32637744.\n", "2024-06-19 10:03:58 - paw - INFO - The query 1718755200_32637744 has the status Queued.\n", "2024-06-19 10:04:28 - paw - INFO - The query 1718755200_32637744 has the status Succeeded.\n", "2024-06-19 10:04:28 - paw - INFO - The query 1718755200_32637744 was successful after checking the status.\n", "2024-06-19 10:04:59 - paw - INFO - The query 1718755200_32637744 has the status Succeeded.\n", "2024-06-19 10:04:59 - paw - INFO - The query 1718755200_32637744 was successful after checking the status.\n", "2024-06-19 10:04:59 - paw - INFO - The query download folder is set to the path /Users/ibmpairs/tutorials/notebooks/quickstart/download/.\n", "2024-06-19 10:05:01 - paw - INFO - The query 1718755200_32637744 is a zip.\n", "2024-06-19 10:05:01 - paw - INFO - The query file for 1718755200_32637744 will be downloaded to the following path /Users/ibmpairs/tutorials/notebooks/quickstart/download/1718755200_32637744.zip.\n", "2024-06-19 10:05:01 - paw - INFO - The query file for 1718755200_32637744 was successfully downloaded to /Users/ibmpairs/tutorials/notebooks/quickstart/download/1718755200_32637744.zip.\n", "2024-06-19 10:05:01 - paw - INFO - The query zip /Users/ibmpairs/tutorials/notebooks/quickstart/download/1718755200_32637744.zip will be unzipped to the following path /Users/ibmpairs/tutorials/notebooks/quickstart/download/1718755200_32637744.\n", "2024-06-19 10:05:01 - paw - INFO - The query zip /Users/ibmpairs/tutorials/notebooks/quickstart/download/1718755200_32637744.zip was successfully unzipped to /Users/ibmpairs/tutorials/notebooks/quickstart/download/1718755200_32637744.\n", "2024-06-19 10:05:31 - paw - INFO - TASK: submit_check_status_and_download COMPLETED.\n" ] } ], "source": [ "# ERA 5 Temperature query for Texas\n", "ERA5_texas_query_json = {\n", " \"layers\": [\n", " {\n", " \"id\": \"49423\",\n", " \"type\": \"raster\"\n", " }\n", " ],\n", " \"name\": \"ERA5 1h Query for Texas for 2024-04-01\",\n", " \"spatial\": {\n", " \"aoi\": texas_id,\n", " \"type\": \"poly\"\n", " },\n", " \"temporal\": {\n", " \"intervals\": [\n", " {\n", " \"end\": \"2024-04-01T01:00:00Z\",\n", " \"start\": \"2024-04-01T00:00:00Z\"\n", " }\n", " ]\n", " }\n", "}\n", "\n", "ERA5_texas_query_result = query.submit_check_status_and_download(ERA5_texas_query_json)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# Find layer files to load from downloaded zip.\n", "files = ERA5_texas_query_result.list_files()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABHQAAAPeCAYAAABtLE2wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAACEHElEQVR4nOzde5hVdb04/vfMwAwKzCDIRY+gpqVomScs5djFFCGPmRaldeyk5ZNd0F/iUyllaXbBsuOtvJTfDmpJFpaVdsS8JJahGWYnrUPlJTkpqBEzMBwGZPbvD3POGWQ+C9bee5iP83o9z34e2O/9Weu91157z8x7f9bn3VCpVCoBAAAAQDYat3UCAAAAAGwdBR0AAACAzCjoAAAAAGRGQQcAAAAgMwo6AAAAAJlR0AEAAADIjIIOAAAAQGYUdAAAAAAyo6ADAAAAkBkFHQCgZrq7u+PlL395fP7zn6/bPh577LFoaGiIq666aqvHnnjiibHbbruV2u+ZZ54ZBx54YKmxAAC1pqADwIDR0NCwRbc777xzW6e6zVx22WWlChn95dvf/nYsW7YsTjnllJ77rrrqqmhoaIhf/epXvR7b3t4er3nNa2LYsGGxcOHC/k51q5122mnxm9/8Jn70ox9t61QAAGLItk4AAJ73zW9+s9f/r7nmmrj11ltfcP/kyZP7M60B5bLLLosdd9wxTjzxxG2dymadf/758c53vjPa2tqSj+vo6Ijp06fHf/7nf8YNN9wQb3rTm/olvyuvvDK6u7tLjZ0wYUIcffTR8eUvfzne8pa31DgzAICto6ADwIDx7ne/u9f/77nnnrj11ltfcP+LRaVSiXXr1sV22233osjj17/+dfzmN7+Jf/u3f0s+bvXq1TFjxox44IEH4vvf/34cccQRVe13awwdOrSq8ccee2y84x3viEceeSRe8pKX1CgrAICt55IrALLS3d0dF110Uey7774xbNiwGD9+fHzgAx+Iv/3tb70et9tuu8Wb3/zmuPPOO+OAAw6I7bbbLl7xilf0XK71/e9/P17xilfEsGHDYsqUKfHrX/+61/gTTzwxRowYEY888kjMmDEjhg8fHjvvvHOce+65UalUqsrplltu6cnpa1/7WkREzJs3Lw499NAYN25ctLS0xD777BOXX375C8Y/9NBDsWjRop7Lzw455JCIiDjnnHOioaHhBcfr+cudHnvssS3KY9WqVXHaaafFxIkTo6WlJfbcc8/44he/uEWzWn7wgx9Ec3NzvP71r+/zMWvWrIk3velNcf/998f3vve9OPLII3vF//KXv8T73ve+GD9+fLS0tMS+++4b//7v/57c75e//OVoaGiIP//5zy+IzZkzJ5qbm3tei03X0Hl+PZ4vf/nL8fWvfz322GOPaGlpiVe/+tVx3333vWB706ZNi4iIH/7wh8mcAADqTUEHgKx84AMfiI997GNx8MEHx8UXXxzvfe9749prr40ZM2bEhg0bej32T3/6U/zLv/xLHHXUUTF37tz429/+FkcddVRce+21MXv27Hj3u98dn/nMZ+Lhhx+OY4899gVFi40bN8ab3vSmGD9+fHzpS1+KKVOmxNlnnx1nn3126ZyWLl0a73rXu+Lwww+Piy++OPbff/+IiLj88stj1113jU984hPxb//2bzFx4sT48Ic/HJdeemnP2Isuuih22WWX2HvvveOb3/xmfPOb34xPfvKTpY7j5vJYu3ZtvOENb4hvfetb8Z73vCcuueSSOPjgg2POnDlx+umnF27zF7/4Rbz85S/vcxZMZ2dnHHHEEXHffffFggUL4s1vfnOv+IoVK+Kggw6K2267LU455ZS4+OKLY88994yTTjopLrrooj73e+yxx0ZDQ0N897vffUHsu9/9bkyfPj122GGHZO7z58+P888/Pz7wgQ/E5z73uXjsscfibW972wtev7a2tthjjz3i7rvvTm4PAKDuKgAwQM2aNavyf39U/exnP6tEROXaa6/t9biFCxe+4P5dd921EhGVX/ziFz333XLLLZWIqGy33XaVP//5zz33f+1rX6tEROWnP/1pz30nnHBCJSIqp556as993d3dlSOPPLLS3Nxcefrpp0vntHDhwhc817Vr177gvhkzZlRe8pKX9Lpv3333rbzhDW94wWPPPvvsyuZ+rM+bN68SEZVHH320MI/PfvazleHDh1f+8Ic/9Lr/zDPPrDQ1NVUef/zxF2z//9pll10qM2fO7DOHXXfdtTJ06NDKD37wg82OP+mkkyo77bRT5Zlnnul1/zvf+c5KW1tbzzF69NFHKxFRmTdvXs9jpk6dWpkyZUqvcb/85S8rEVG55ppreu474YQTKrvuumvP/5/f1pgxYyorV67suf+HP/xhJSIqN9544wvynD59emXy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N6l1aVLdvlOtyatZeye13VQ+qR6hQwv2mVqyZmjiyQxb23esORUrmtCcWgun7PlezZo+ByZi9xaM7cs/F8T/o+R2P5yIXVZym9X4dCJ2br9lURtvScRS65GVfS2L9vmjKrYL5CTXtuXPd63aEs3NzbHnnntGRMSUKVPivvvui4svvjiOO+64WL9+faxatarXLJ0VK1bEhAkTem3jd7/7XRx22GFx8sknx1lnnVUqd5dcAQAAAJTU3d0dXV1dMWXKlBg6dGjcfvvtPbGlS5fG448/HlOnTu2576GHHoo3vvGNccIJJ8TnP//50vs1QwcAAABgC8yZMyeOOOKImDRpUqxevTrmz58fd955Z9xyyy3R1tYWJ510Upx++ukxevToaG1tjVNPPTWmTp3asyDygw8+GIceemjMmDEjTj/99J61dZqammLs2LFblYuCDgAAAMAWeOqpp+I973lPPPnkk9HW1hb77bdf3HLLLXH44YdHRMSFF14YjY2NMXPmzOjq6ooZM2bEZZf972XE119/fTz99NPxrW99K771rW/13L/rrrvGY489tlW5KOgAAAAANZHrGjpb6hvf+EYyPmzYsLj00kvj0ksv3Wz8nHPOiXPOOWcr97p51tABAAAAyIyCDgAAAEBmXHIFMFA8m+rxXKA7MTbVArohVdev14+IRLvc9an+2QWay7Z1T7XvLWqjXoftptqAFwwt3UK87DaL4kVj+1L0dVPZjt5lY9sXnJfDOvqODSnbtnxUIpY6tyLST+bgRKya9/wbErHhiViq5fvJJcdFFLd278uaROx9BWP/PRGbnoilXs+NJcdVI9X2vkjqHDq05LiflMwF4MVPQQcAAACojYa/33JR+fstQy65AgAAAMiMgg4AAABAZlxyBQAAANRGU+R3yVW9liWrMzN0AAAAADKjoAMAAACQGZdcAQwUawviqe61qVhzItaYaMfcVEUb9ZRUrkVtrptSwcRzGZpoK123KcGJ9sdrErkWnQediVjZ9uPVtC1PjU11+06dB8nXOcq3Sk/FUvlUY3jifdRQtqV5Nb++lZ1TXs1c9NTY1PMsOy6i/DFKbTfV0jwi3ZY79cZNPc+ysSL1urYgddxTreRT496QiLWk00lu9z8KxgIMfAo6AAAAQG1YQ6ffuOQKAAAAIDMKOgAAAACZcckVAAAAUBuNkd8lV5kyQwcA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Hnoobr311rjpppvirrvuipNPPrn8swAAXjRuqVSSt/URfd7WJW6didvaxC21zXXxXLPTvm5DE7dhJW+FNiZuGxK3oieauu1U6fsWaxI3AF58muK51V1yuTVt1bObO3duvPrVr46RI0fGuHHj4phjjomlS5f2eszDDz8cb33rW2Ps2LHR2toaxx57bKxYseIF2/rxj38cBx54YGy33Xaxww47xDHHHLNVuWx1QeeII46Iz33uc/HWt771BbFKpRIXXXRRnHXWWXH00UfHfvvtF9dcc0088cQTPTN5fv/738fChQvj//2//xcHHnhgvPa1r42vfOUrcd1118UTTzyxtekAAAAA9ItFixbFrFmz4p577olbb701NmzYENOnT4/Ozs6IeG4SzPTp06OhoSHuuOOOuPvuu2P9+vVx1FFHRXd3d892vve978W//uu/xnvf+974zW9+E3fffXf8y7/8y1blUtNFkR999NFYvnx5TJs2ree+tra2OPDAA2Px4sXxzne+MxYvXhyjRo2KAw44oOcx06ZNi8bGxrj33ns3WygCAAAA2NYWLlzY6/9XXXVVjBs3LpYsWRKvf/3r4+67747HHnssfv3rX0dra2tERFx99dWxww47xB133BHTpk2LZ599Nj7ykY/E+eefHyeddFLPtvbZZ5+tyqWmiyIvX748IiLGjx/f6/7x48f3xJYvXx7jxo3rFR8yZEiMHj265zGb6urqio6Ojl43AAAAgFrYtObQ1dW1RePa29sjImL06NER8Vz9oqGhIVpaWnoeM2zYsGhsbIyf//znERFx//33x1/+8pdobGyMf/zHf4yddtopjjjiiHjwwQe3KucsulzNnTs32traem4TJ07c1ikBAAAAL7Ct18Qpc4uYOHFir7rD3LlzC59pd3d3nHbaaXHwwQfHy1/+8oiIOOigg2L48OFxxhlnxNq1a6OzszM++tGPxsaNG+PJJ5+MiIhHHnkkIiLOOeecOOuss+Kmm26KHXbYIQ455JBYuXLlFh/pmhZ0JkyYEBHxgsV+VqxY0RObMGFCPPXUU73izz77bKxcubLnMZuaM2dOtLe399yWLVtWy7QBAACAQWzZsmW96g5z5swpHDNr1qx48MEH47rrruu5b+zYsbFgwYK48cYbY8SIEdHW1harVq2KV73qVdHY+FwJ5vm1dD75yU/GzJkzY8qUKTFv3rxoaGiIBQsWbHHONV1DZ/fdd48JEybE7bffHvvvv39EPDdt6d57740PfehDERExderUWLVqVSxZsiSmTJkSERF33HFHdHd3x4EHHrjZ7ba0tPSargQAAABQK62trT1r3myJU045padr9y677NIrNn369Hj44YfjmWeeiSFDhsSoUaNiwoQJ8ZKXvCQiInbaaaeI6L1mTktLS7zkJS+Jxx9/fItz2OqCzpo1a+JPf/pTz/8fffTReOCBB2L06NExadKkOO200+Jzn/tcvPSlL43dd989PvWpT8XOO+/c035r8uTJ8aY3vSne//73xxVXXBEbNmyIU045Jd75znfGzjvvvLXpAACDzNpEbEPJbabaga8rGLsxEUs1Qk3ts2ysKt2JWNFBSKpqMADZ2fpW4NtWw1Y9ulKpxKmnnho33HBD3HnnnbH77rv3+dgdd9wxIp6bxPLUU0/FW97yloiImDJlSrS0tMTSpUvjta99bUREbNiwIR577LHYddddtziXrS7o/OpXv4o3vvGNPf8//fTTIyLihBNOiKuuuio+/vGPR2dnZ5x88smxatWqeO1rXxsLFy6MYcP+99ePa6+9Nk455ZQ47LDDorGxMWbOnBmXXHLJ1qYCAAAA0G9mzZoV8+fPjx/+8IcxcuTInuZObW1tsd1220VExLx582Ly5MkxduzYWLx4cXzkIx+J2bNnx1577RURz80G+uAHPxhnn312TJw4MXbdddc4//zzIyLiHe94xxbn0lCpVCo1fn5119HREW1tbdHe3r5VU6IAgPy9rqHvb9KGJsYNT8RGJ2JF84c3vwJgcWx8IjY2EdstmU3E8B0Twf0TsVeWjEVE/Gvq18m2RKy9YMMA/c/fm+X873HbN1pb85mh09GxMdraHtri17uhj99D5s2bFyeeeGJERJx55plx1VVXxcqVK2O33XaLD37wgzF79uxeYzds2BBz5syJb37zm/E///M/ceCBB8ZFF10U++677xbnrqADAGRFQSdNQQegOv7eLGewFHQGkpouigwAAAAMZi/uNXQGkpq2LQcAAACg/hR0AAAAADLjkisAICs/Syz/96rE+jqpluaptXeqaVuektrnyERseGpgRMSYRGz7RCy13ZxmzgPAIKGgAwAAANSINXT6i0uuAAAAADKjoAMAAACQGZdcAQAAADXSFEoN/cMMHQAA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hx+OZ555JoYMGRKjRo2KCRMmxEte8pKIiLjjjjti8eLFLygaHXDAAXH88cfH1VdfvUU5KOgAAAAAbIFKpRKnnnpq3HDDDXHnnXfG7rvv3udjd9xxx4h4roDz1FNPxVve8paIiLjkkkvic5/7XM/jnnjiiZgxY0Z85zvfiQMPPHCLc1HQAQAAANgCs2bNivnz58cPf/jDGDlyZCxfvjwiItra2mK77baLiIh58+bF5MmTY+zYsbF48eL4yEc+ErNnz4699torIiImTZrUa5sjRoyIiIg99tjjBbN9UhR0AAAAgBrJcw2dLXX55ZdHRMQhhxzS6/558+bFiSeeGBERS5cujTlz5sTKlStjt912i09+8pMxe/bsWiTbS0OlUqnUfKt11tHREW1tbdHe3r5V17gBAABAir83y/nf4/bjaG0dvq3T2WIdHZ3R1nZklq+3tuUAAAAAmdnqgs5dd90VRx11VOy8887R0NAQP/jBD3piGzZsiDPOOCNe8YpXxPDhw2PnnXeO97znPfHEE0/02sbKlSvj+OOPj9bW1hg1alScdNJJsWbNmqqfDAAAAMBgsNUFnc7OznjlK18Zl1566Qtia9eujfvvvz8+9alPxf333x/f//73Y+nSpT0rOT/v+OOPj4ceeihuvfXWnjZfJ598cvlnAQAAAAwAQzK85amqNXQaGhrihhtuiGOOOabPx9x3333xmte8Jv785z/HpEmT4ve//33ss88+cd9998UBBxwQERELFy6Mf/7nf47//u//jp133rlwv65pBAAAoB78vVnO/x63WzJcQ2dGlq933dfQaW9vj4aGhhg1alRERCxevDhGjRrVU8yJiJg2bVo0NjbGvffeu9ltdHV1RUdHR68bAAAAwGBV17lF69atizPOOCPe9a539VS6li9fHuPGjeudxJAhMXr06J7+7ZuaO3dufOYzn6lnqgAAAEDVcruMKadce6vbDJ0NGzbEscceG5VKpadPe1lz5syJ9vb2ntuyZctqlCUAAABAfupSinq+mPPnP/857rjjjl7XoU2YMCGeeuqpXo9/9tlnY+XKlTFhwoTNbq+lpSVaWlrqkSoAAABAdmo+Q+f5Ys4f//jHuO2222LMmDG94lOnTo1Vq1bFkiVLeu674447oru7Ow488MBapwMAAADworPVM3TWrFkTf/rTn3r+/+ijj8YDDzwQ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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Display the resulting image\n", "array = np.array(PIL.Image.open(files[1]))\n", "plt.figure(figsize = (20, 12))\n", "plt.imshow(array, cmap = 'hot_r', vmin = 293, vmax = 307)\n", "plt.title('Temperature (Kelvin)')\n", "plt.colorbar()\n", "plt.show()" ] } ], "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.11.0" } }, "nbformat": 4, "nbformat_minor": 2 }