{ "nbformat": 4, "nbformat_minor": 0, "metadata": { "colab": { "name": "Aula_3.ipynb", "provenance": [], "collapsed_sections": [], "include_colab_link": true }, "kernelspec": { "name": "python3", "display_name": "Python 3" }, "language_info": { "name": "python" } }, "cells": [ { "cell_type": "markdown", "metadata": { "id": "view-in-github", "colab_type": "text" }, "source": [ "\"Open" ] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "wJNVazkmEvmZ", "outputId": "51e12bcd-0e67-44ef-b1a4-8d64df78c25c" }, "source": [ "!pip install spectral" ], "execution_count": null, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting spectral\n", " Downloading spectral-0.22.4-py3-none-any.whl (212 kB)\n", "\u001b[?25l\r\u001b[K |█▌ | 10 kB 24.7 MB/s eta 0:00:01\r\u001b[K |███ | 20 kB 30.0 MB/s eta 0:00:01\r\u001b[K |████▋ | 30 kB 34.2 MB/s eta 0:00:01\r\u001b[K |██████▏ | 40 kB 37.0 MB/s eta 0:00:01\r\u001b[K |███████▊ | 51 kB 32.7 MB/s eta 0:00:01\r\u001b[K |█████████▎ | 61 kB 34.0 MB/s eta 0:00:01\r\u001b[K |██████████▉ | 71 kB 35.2 MB/s eta 0:00:01\r\u001b[K |████████████▍ | 81 kB 34.7 MB/s eta 0:00:01\r\u001b[K |██████████████ | 92 kB 35.4 MB/s eta 0:00:01\r\u001b[K |███████████████▍ | 102 kB 37.0 MB/s eta 0:00:01\r\u001b[K |█████████████████ | 112 kB 37.0 MB/s eta 0:00:01\r\u001b[K |██████████████████▌ | 122 kB 37.0 MB/s eta 0:00:01\r\u001b[K |████████████████████ | 133 kB 37.0 MB/s eta 0:00:01\r\u001b[K |█████████████████████▋ | 143 kB 37.0 MB/s eta 0:00:01\r\u001b[K |███████████████████████▏ | 153 kB 37.0 MB/s eta 0:00:01\r\u001b[K |████████████████████████▊ | 163 kB 37.0 MB/s eta 0:00:01\r\u001b[K |██████████████████████████▎ | 174 kB 37.0 MB/s eta 0:00:01\r\u001b[K |███████████████████████████▉ | 184 kB 37.0 MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▎ | 194 kB 37.0 MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▉ | 204 kB 37.0 MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 212 kB 37.0 MB/s \n", "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from spectral) (1.19.5)\n", "Installing collected packages: spectral\n", "Successfully installed spectral-0.22.4\n" ] } ] }, { "cell_type": "code", "metadata": { "id": "qhB1cu0y4O-y" }, "source": [ "import matplotlib\n", "matplotlib.rcParams['figure.figsize'] = (15,10)" ], "execution_count": 1, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "9vL9l1Lu3ESd" }, "source": [ "%config InlineBackend.figure_format = 'retina'\n" ], "execution_count": 2, "outputs": [] }, { "cell_type": "code", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "gy9FA7l2o0sr", "outputId": "45d98705-2ce6-4447-b72f-08eb982185df" }, "source": [ "!pip install spectral" ], "execution_count": 4, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Collecting spectral\n", " Downloading spectral-0.22.4-py3-none-any.whl (212 kB)\n", "\u001b[?25l\r\u001b[K |█▌ | 10 kB 18.5 MB/s eta 0:00:01\r\u001b[K |███ | 20 kB 11.3 MB/s eta 0:00:01\r\u001b[K |████▋ | 30 kB 8.8 MB/s eta 0:00:01\r\u001b[K |██████▏ | 40 kB 8.0 MB/s eta 0:00:01\r\u001b[K |███████▊ | 51 kB 4.2 MB/s eta 0:00:01\r\u001b[K |█████████▎ | 61 kB 4.4 MB/s eta 0:00:01\r\u001b[K |██████████▉ | 71 kB 4.5 MB/s eta 0:00:01\r\u001b[K |████████████▍ | 81 kB 5.1 MB/s eta 0:00:01\r\u001b[K |██████████████ | 92 kB 5.1 MB/s eta 0:00:01\r\u001b[K |███████████████▍ | 102 kB 4.1 MB/s eta 0:00:01\r\u001b[K |█████████████████ | 112 kB 4.1 MB/s eta 0:00:01\r\u001b[K |██████████████████▌ | 122 kB 4.1 MB/s eta 0:00:01\r\u001b[K |████████████████████ | 133 kB 4.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████▋ | 143 kB 4.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████▏ | 153 kB 4.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████▊ | 163 kB 4.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████████▎ | 174 kB 4.1 MB/s eta 0:00:01\r\u001b[K |███████████████████████████▉ | 184 kB 4.1 MB/s eta 0:00:01\r\u001b[K |█████████████████████████████▎ | 194 kB 4.1 MB/s eta 0:00:01\r\u001b[K |██████████████████████████████▉ | 204 kB 4.1 MB/s eta 0:00:01\r\u001b[K |████████████████████████████████| 212 kB 4.1 MB/s \n", "\u001b[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from spectral) (1.19.5)\n", "Installing collected packages: spectral\n", "Successfully installed spectral-0.22.4\n" ] } ] }, { "cell_type": "markdown", "metadata": { "id": "XUvXbDDGFQ1q" }, "source": [ "# Leitura e visualização" ] }, { "cell_type": "code", "metadata": { "id": "mHDfNY1uFAQb" }, "source": [ "# Bibliotecas\n", "import tifffile as tif\n", "import matplotlib.pyplot as plt\n", "from spectral import imshow\n", "import numpy as np" ], "execution_count": 5, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "8_Ii9gnzFFQK" }, "source": [ "# Lendo imagem\n", "img = tif.imread('Cubo_SR.tif')" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "iYtcvxwkFhPz" }, "source": [ "# Visualizando composição colorida\n", "imshow(img, (2,1,0), stretch=(0.02), figsize=(15,10))" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "e4qULorH2302" }, "source": [ "# Espectros" ] }, { "cell_type": "code", "metadata": { "id": "3XftGH96KyvT" }, "source": [ "# Definindo espectros\n", "mata = img[600,1400,:]\n", "cerrado = img[600,600,:]\n", "urbano = img[1000,200,:]\n", "agua = img[500,700,:]\n", "\n", "espectros = [mata, cerrado, urbano, agua]" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "9JereQ3uFvAB" }, "source": [ "# Visualizando epectros\n", "bandas = ['Blue', 'Green', 'Red', 'NIR', 'SWIR-1','SWIR-2']\n", "plt.plot(bandas,img[600,1400,:])" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "cutdz38Kl0aO" }, "source": [ "# Visualizando espectros separados\n", "cores = ['Darkgreen', 'lime', 'Red', 'Blue']\n", "nomes = ['Mata', 'Cerrado', 'Urbano', 'Água']\n", "fig, ax = plt.subplots(4, 1, sharex=True, figsize=(15,10))\n", "\n", "for i in range(len(espectros)):\n", " ax[i].plot(bandas, espectros[i], color=cores[i])\n", " ax[i].set_title(nomes[i])" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "nOmBaLG3nPhI" }, "source": [ "# Visualizando espectros em uma única figura\n", "fig2, ax2 = plt.subplots()\n", "\n", "for i in range(len(espectros)):\n", " ax2.plot(bandas, espectros[i], color=cores[i])\n", " ax2.legend(nomes, loc=\"lower left\")" ], "execution_count": null, "outputs": [] }, { "cell_type": "markdown", "metadata": { "id": "tL_Ek-ee28bd" }, "source": [ "# índices espectrais" ] }, { "cell_type": "code", "metadata": { "id": "2MxwqCdaieZU" }, "source": [ "# Calculando NDVI\n", "ndvi = ( img[:,:,3] - img[:,:,2] ) / ( img[:,:,3] + img[:,:,2] )" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "sKPI_hKOqjb2" }, "source": [ "# Visualizando de forma contínua\n", "plt.imshow(ndvi, cmap='RdYlGn')\n", "plt.colorbar()" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "mfJxn9iR5N42" }, "source": [ "from matplotlib import colors" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "AeEsYKVI-TZB" }, "source": [ "# Visualizando de forma discreta\n", "\n", "cmap = colors.ListedColormap(['red', 'yellow','orange','lime','darkgreen'])\n", "\n", "norm = colors.BoundaryNorm(bounds, cmap.N)\n", "\n", "bounds=[np.min(ndvi),0.03,0.25,0.5,0.75,np.max(ndvi)]\n", "\n", "norm = colors.BoundaryNorm(bounds, cmap.N)\n", "\n", "im = plt.imshow(ndvi,cmap=cmap, norm=norm)\n", "plt.colorbar(im)" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "ruI4A7vY_uUb" }, "source": [ "# Reclassificando ndvi\n", "ndvi_reclass= ndvi.copy()\n", "\n", "\n", "ndvi_reclass[ndvi <= 0.03] = 1\n", "ndvi_reclass[(ndvi > 0.03) & (ndvi <= 0.25)] = 2\n", "ndvi_reclass[(ndvi > 0.25) & (ndvi <= 0.50)] = 3\n", "ndvi_reclass[(ndvi > 0.50) & (ndvi <= 0.75)] = 4\n", "ndvi_reclass[(ndvi > 0.75)] = 5" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "J1W1qhA9_2mH" }, "source": [ "plt.imshow(ndvi_reclass, cmap='RdYlGn')" ], "execution_count": null, "outputs": [] }, { "cell_type": "code", "metadata": { "id": "IaxvMXiAEAoj" }, "source": [ "" ], "execution_count": null, "outputs": [] } ] }