Desarrollo de un programa para el análisis de imágenes satelitales con Python y la librería GDAL.

¡Hola a todos! Hoy vamos a hablar sobre el desarrollo de un programa para el análisis de imágenes satelitales utilizando Python y la librería GDAL. Este trabajo requiere un conocimiento básico en programación, por lo que se recomienda tener al menos una noción sobre Python y su sintaxis.

¿Qué es GDAL?

Para comenzar, es importante conocer qué es GDAL. GDAL (Geospatial Data Abstraction Library) es una librería de que facilita la manipulación de datos geoespaciales. Es utilizada en muchas aplicaciones, ya sea para procesamiento, análisis o visualización de imágenes provenientes de diferentes fuentes, como un sistema de información geográfica o el sensor de una nave espacial. Con GDAL, se pueden abrir y leer imágenes en diferentes formatos, como tiff, gif, jpeg, entre otros.

Preparación del ambiente de trabajo

Para poder utilizar GDAL en nuestro programa de Python, primero debemos tener instalada la librería. Lo mejor es instalarlo desde la línea de comandos, ya que se actualizará automáticamente a su última versión disponible. Ejecutamos los siguientes comandos en la terminal:

sudo apt update 
sudo apt install gdal-bin python3-gdal 

Así, ya tendremos disponible el módulo gdal en nuestro proyecto.

Leer una imagen con GDAL

Con gdal.Open() podemos cargar una imagen. Para esto, debemos proveer la dirección de la imagen en el sistema de archivos.

from osgeo import gdal

def read_image(filename):
    data = gdal.Open(filename)
    return data 

Obtener información sobre la imagen

Con la funciónGetMetadata() podemos obtener información sobre la imagen, por ejemplo, las coordenadas geográficas o la fecha de toma de la imagen.

def get_metadata(filename):
    data = read_image(filename)
    metadata = data.GetMetadata()
    
    for key, value in metadata.items():
        print(key + ": " + value)

Ejemplo:

get_metadata("ruta/a/la/imágen.tif")

Esto nos devolverá como salida información sobre la imagen.

Transformar la imagen

Con la función ReadAsArray() podemos obtener una representación de la imagen en forma de un array numérico bidimensional.

def transform_image(filename):
    data = read_image(filename)
    band = data.GetRasterBand(1)
    array = band.ReadAsArray()
    
    return array

Ejemplo:

transform_image("ruta/a/la/imágen.tif")

Esto nos devolverá como salida una matriz (numpy array) que representa la imagen.

Recortar una imagen

Una operación común es la de recortar una porción de una imagen que nos interese. Para esto, debemos definir las coordenadas de la parte que queremos mantener. En el siguiente ejemplo, recortaremos una imagen en su cuadrante superior derecho:

def crop_image(image, width, height):
    x_origin = int(image.shape[0] / 2) - int(width / 2)
    y_origin = int(image.shape[1] / 2) - int(height / 2)
    cropped_image = image[x_origin:x_origin + width, y_origin:y_origin + height]
    
    return cropped_image

Ejemplo:

image = transform_image("ruta/a/la/imágen.tif")
crop_image(image, 500, 500)

Esto nos devolverá como salida una matriz (numpy array) que representa la imagen recortada.

Visualizar la imagen

Podemos visualizar una imagen con ayuda de la librería matplotlib de Python. Si no tienes instalada la librería, ejecuta desde la línea de comandos pip install matplotlib.

import matplotlib.pyplot as plt

def plot_image(image):
    plt.imshow(image, cmap='gray')
    plt.show()

Ejemplo:

image = transform_image("ruta/a/la/imágen.tif")
plot_image(image)

¡Y eso es todo! Con estas funciones básicas, podemos comenzar a trabajar con imágenes satelitales, procesarlas y visualizarlas. Ya con esto, podrás comenzar a desarrollar aplicaciones más complejas. Si deseas profundizar en este tema, te dejamos algunos enlaces útiles:

¡Espero que este tutorial te haya sido de utilidad!

No te pierdas los últimos artículos:

Web Scraping con Python y BeautifulSoup para Principiantes

Bienvenido a esta guía sobre Web Scraping con Python y BeautifulSoup, diseñada especialmente para principiantes. Si estás buscando aprender a extraer datos de sitios web de manera eficiente, seguro que ...

Curso de Python Básico Gratis

Módulo 1: Introducción a Python Nuestra meta principal es que, al final de este curso, tengas una sólida comprensión de los fundamentos de Python y estés listo para crear tus ...

Sistemas Expertos: ¿Qué son y para qué sirven?

Los sistemas expertos representan una rama fascinante de la inteligencia artificial, diseñada para emular la toma de decisiones de un humano experto en un campo particular. Estas herramientas avanzadas combinan ...

La Historia de la Inteligencia Artificial contada en Años

¿Cómo comenzó todo? Echemos un ojo a la historia de la IA a lo largo del tiempo. Desde 1950 hasta 2024. El artículo es largo, usa la tabla de contenidos ...

¿Qué es el meta-aprendizaje?

El mundo de la Inteligencia Artificial (IA) está en constante evolución, y una de las áreas más intrigantes y prometedoras es el metaaprendizaje. Pero, ¿qué es exactamente el metaaprendizaje y ...
Cargando...