Posts filed under TutorialQGIS

Como georeferenciar un raster con Python y Rasterio - Tutorial

Georeferenciar una imagen / raster es el proceso de localizar espacialmente una imagen para que cada pixel este asociado a una posición. Este proceso es ampliamente conocido en QGIS con su complemento de Georeferenciación pero tambien puede ser realizado por Python y Rasterio.

El proceso de georeferenciar en Python tiene la ventaja que puede realizar el proceso repetidas veces sin necesidad de definir los puntos de control cada vez; también te permite añadir / quitar puntos de control y ver el impacto en el arreglo de transformación. Este tutorial muestra el proceso completo de georeferenciación de un mapa nacional sobre 3 puntos cuyas coordinadas de pixel han sido extraídas del utilitario Paint de Windows, el tutorial también exporta el raster asignando un sistema de referencia.


Tutorial

Datos de ingreso

Puede descargar los datos de ingreso desde este enlace.

Código

#import required libraries
import rasterio
import matplotlib.pyplot as plt
from rasterio.plot import show
#open ungeoreferenced raster
unRefRaster = rasterio.open('data/Peligros_Geologicos.jpg')
unRefRaster
C:\Users\saulm\anaconda3\Lib\site-packages\rasterio\__init__.py:317: NotGeoreferencedWarning: Dataset has no geotransform, gcps, or rpcs. The identity matrix will be returned.
  dataset = DatasetReader(path, driver=driver, sharing=sharing, **kwargs)


<open DatasetReader name='data/Peligros_Geologicos.jpg' mode='r'>
#show raster band values
unRefRaster.read(1)
array([[255, 255, 255, ..., 255, 255, 255],
       [255, 255, 255, ..., 255, 255, 255],
       [255, 255, 255, ..., 255, 255, 255],
       ...,
       [255, 255, 255, ..., 255, 255, 255],
       [255, 255, 255, ..., 255, 255, 255],
       [255, 255, 255, ..., 255, 255, 255]], dtype=uint8)
#show raster
show(unRefRaster)
#show raster shape
unRefRaster.read(1).shape
(4133, 2922)

Insert control points from coordinates captured in paint

Control point 1

point1 = rasterio.control.GroundControlPoint(row=368, col=190, x=-81, y=-1)
point1
GroundControlPoint(row=368, col=190, x=-81, y=-1, id='5a920799-66fd-469b-b8f5-8ad0f50194dd')

Control point 2

point2 = rasterio.control.GroundControlPoint(row=3497, col=239, x=-81, y=-16)
point2
GroundControlPoint(row=3497, col=239, x=-81, y=-16, id='e74eee05-5a73-4632-a863-cf80dd0150b3')

Control point 3

point3 = rasterio.control.GroundControlPoint(row=3706, col=2645, x=-69, y=-17)
point3
GroundControlPoint(row=3706, col=2645, x=-69, y=-17, id='75f9378c-a918-4a45-a7f8-7f662578e132')
#list of selected gcps
points = [point1, point2, point3]
points
[GroundControlPoint(row=368, col=190, x=-81, y=-1, id='5a920799-66fd-469b-b8f5-8ad0f50194dd'),
 GroundControlPoint(row=3497, col=239, x=-81, y=-16, id='e74eee05-5a73-4632-a863-cf80dd0150b3'),
 GroundControlPoint(row=3706, col=2645, x=-69, y=-17, id='75f9378c-a918-4a45-a7f8-7f662578e132')]
#get transformation array from points
transformation = rasterio.transform.from_gcps(points)
transformation
Affine(0.004994325053839821, -7.821090688339848e-05, -81.92014014649648,
       7.980704784024951e-07, -0.00479387635201452, 0.7639948641504404)
#define output raster
outputPath = 'data/georefRaster.tif'
#create raster and write bands
with rasterio.open(
    outputPath,
    'w',
    driver='GTiff',
    height=unRefRaster.read(1).shape[0],
    width=unRefRaster.read(1).shape[1],
    count=3,
    dtype=unRefRaster.read(1).dtype,
    crs=rasterio.crs.CRS.from_epsg(4326),
    transform=transformation,
) as dst:
    dst.write(unRefRaster.read(1), 1)
    dst.write(unRefRaster.read(2), 2)
    dst.write(unRefRaster.read(3), 3)
#show georeferenced raster
geoRaster = rasterio.open(outputPath)
show(geoRaster)
 
Posted on January 10, 2024 and filed under TutorialQGIS, TutorialPython.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Conteo online de cultivos a partir de ortofotos de drones con Hatari Utils - Tutorial

Las ortofotos de drones nos proporcionan imágenes aéreas con resolución espacial en escala de centímetros. Con estas ortofotos de alta definición y bajo costo podemos interpretar, analizar y cuantificar objetos en una distribución horizontal mediante bibliotecas de “machine learning” para el reconocimiento de imágenes y análisis de conglomerados.

Posted on September 28, 2023 and filed under Tutorial, TutorialQGIS.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Modelamiento de flujo de agua subterránea usando la aproximación de Dupuit con Python y Landlab - Tutorial

Este tutorial cubre un ejemplo de simulación de flujo de agua subterránea y descarga de agua subterránea con el componente GroundwaterDupuitPercolator de Landlab. La simulación se ejecuta en régimen uniforme sobre un acuífero de una capa y los resultados se representan en gráficos y mapas.

Posted on May 15, 2023 and filed under TutorialQGIS, TutorialPython.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Delimitación de redes hídricas a partir de un DEM raster con Python y Landlab - Tutorial

En función de los diversos componentes de Landlab junto con otros paquetes de Python se pueden establecer algunos procedimientos para extraer redes de flujo únicas o múltiples de un ráster de modelo de elevación digital (DEM) y exportarlas como formatos de datos espaciales vectoriales como ESRI shapefiles o representarlos en Jupyter Lab .

Posted on May 10, 2023 and filed under TutorialPython, TutorialQGIS, Hidrología.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Análisis de Cambio de Cobertura Terrestre con Python y Rasterio - Tutorial

Este tutorial cubre el procedimiento completo para crear un ráster de cambio de cobertura terrestre a partir de una comparación de rásteres de índice de vegetación generado (NDVI) mediante el uso de Python y las bibliotecas Numpy y Rasterio. Los resultados del NDVI para años determinados y el cambio de NDVI se representan en Jupyter Lab como cuadrícula de color y cuadrícula de contorno; las matrices de resultado son exportados como raster geoespaciales en formato TIFF.

Posted on May 8, 2023 and filed under TutorialPython, TutorialQGIS.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Cómo instalar (manera fácil) Python, Geopandas y Rasterio en Windows - Tutorial

Geopandas es una librería increíble para el análisis espacial, ya que combina las herramientas espaciales de Shapely y Fiona con la versatilidad de Dataframes de Pandas. Rasterio es una de las librerías más completas para manejar archivos raster en Python.

Somos conscientes de que la mayoría de los geocientíficos, especialistas en recursos hídricos y profesionales afines trabajan en Windows, por lo que siempre estamos en la búsqueda de nuevas formas de hacer que Python funcione con todas sus capacidades geoespaciales en cada computadora.

Con base en los nuevos lanzamientos de Anaconda, ahora podemos instalar Geopandas y Rasterio de una manera fácil.

Posted on April 19, 2023 and filed under TutorialQGIS, TutorialPython.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Modelamiento regional de aguas subterráneas con MODFLOW 6 usando grillas Voronoi - Tutorial

Hemos desarrollado una versión de nuestro caso de estudio de la cuenca Angascancha que se ejecuta en MODFLOW 6 con discretización por vértices (DISV). El modelo implementa una malla de Voronoi que se genera a partir del límite de la cuenca y la red fluvial donde los niveles de refinamiento se definen mediante un tamaño de celda mínimo y máximo junto con determinados pasos de refinamiento. El tutorial es completo en todos los pasos que implican la discretización, construcción, simulación y visualización del modelo.

Posted on July 7, 2022 and filed under TutorialQGIS, TutorialPython.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Representacion geospacial de coordenadas de imágenes de drone con Python y Folium - Tutorial

Si tiene un conjunto de imágenes de drones y desea conocer la ubicación de las imágenes, este tutorial puede ser de su interés. Hemos realizado un ejemplo aplicado que recupera los metadatos geoespaciales de la cámara del dron para un grupo de imágenes y realiza una representación geoespacial en un mapa con el nombre de la imagen disponible como ventana emergente. El tutorial se realiza bajo un Jupyter notebook con Python y Folium.

Posted on June 20, 2022 and filed under TutorialPython, TutorialQGIS.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Cómo instalar la librería espacial Terra de R en un entorno conda - Tutorial

Hemos investigado herramientas avanzadas como lenguajes de programación para el análisis espacial, hasta ahora Python fue nuestra elección de facto debido a su velocidad de aprendizaje y su facilidad de uso. Sin embargo, cuando se trabaja con una gran cantidad de datos y se realizan consultas espaciales masivas, surgen algunas preguntas sobre el rendimiento de Python y luego analizamos otras opciones como R, Julia o Rust. Hemos realizado este tutorial para la instalación de la librería espacial Terra en un kernel R en Jupyter bajo un entorno Conda, el tutorial cubre todos los pasos de instalación en Windows junto con algunos ejemplos para cargar y plotear datos vectoriales y ráster.

Posted on March 31, 2022 and filed under TutorialQGIS.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Modelamiento de Evolución de Superficie a Escala de Cuenca con Python y Landlab - Tutorial

El clima cambia, la gente cambia y la tierra también cambia con el tiempo. No podemos creer que las redes fluviales seguirán siendo las mismas durante los próximos 1000 años o que las montañas y las depresiones tendrán la misma elevación en los próximos 10000 años. Pero los cambios no están relacionados con grandes periodos de tiempo, también pueden ocurrir en décadas o años a tasas más bajas. Para evaluar esos cambios necesitamos modelar los componentes clave de la evolución del suelo: fluvial, pendiente de ladera y levantamiento. Hemos desarrollado un tutorial con Python y la librería Landlab para simular la evolución del suelo a escala de cuenca durante 100 mil años; las entradas provienen de rásters geoespaciales y los datos de salida se exportan como archivos ráster ASCII.

Posted on February 10, 2022 and filed under TutorialPython, TutorialQGIS.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Representación Espacio-Temporal Interactiva de VOCs y PFAs con Python y Folium - Tutorial

El análisis de la química del agua subterránea es una tarea difícil para el conjunto limitado de puntos de observación, las muestras limitadas y los limitados componentes analizados. Para evaluar la extensión real de una pluma de contaminación o la eficiencia de las técnicas de remediación necesitamos métodos nuevos e innovadores que permitar representar y analizar los datos de la química del agua con software libre. Hemos realizado un caso aplicado de representación interactiva de VOC y PFA en un Jupyter notebook con Python, Folium e Ipywidgets. El conjunto de datos tiene más de 3300 muestras de 127 puntos durante un período de 30 años y corresponde a un sitio contaminado de un antiguo aeropuerto.

Posted on December 28, 2021 and filed under TutorialPython, TutorialQGIS, Medio ambiente.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Como instalar Python - Geopandas en Windows bajo un entorno en Conda - Tutorial

Geopandas es una librería increíble para el análisis espacial ya que combina las herramientas espaciales de Shapely y Fiona con la versatilidad de Pandas Dataframes. Somos conscientes de que la mayoría de los geocientíficos, especialistas en recursos hídricos y profesionales relacionados trabajan en Windows, por lo que siempre estamos en la búsqueda de nuevas formas de hacer que Python funcione con todas sus capacidades geoespaciales en cada computadora. Hemos creado un tutorial que muestra el proceso de instalación de Geopandas y otras bibliotecas geoespaciales de Python en Windows mediante el uso de un entorno Conda.

Posted on December 10, 2021 and filed under TutorialQGIS, TutorialPython.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Los mejores canales de Youtube en QGIS (y herramientas SIG de código abierto)

La educación tiene como objetivo adquirir conocimientos y esta basado en el proceso de aprendizaje con pasos y medios que hay que analizar. Tradicionalmente, si desea obtener conocimientos, puede ir a una universidad, obtener un título, visitar una biblioteca, pero ¿Por qué no simplemente revisa un canal de Youtube? Obtendrás el mismo conocimiento? ¿Harás una mejor investigación con lo que aprendiste en video? Esas son preguntas excelentes para plantear en estos tiempos en los que necesitamos conocimientos que moldeen nuestro futuro en el contexto del cambio climático.

Posted on November 4, 2021 and filed under TutorialQGIS.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Como reproyectar uno y múltiples rasters con Python y Rasterio - Tutorial

La reproyección de rásters es una tarea común en el trabajo con GIS, sin embargo, hacerlo solo con comandos de Python presenta algunos desafíos. Hemos realizado un ejemplo aplicado de reproyección para rásteres únicos y múltiples desde WGS 84 UTM a WGS 84 geográficas. Los códigos funcionan en rásteres monobanda y multibanda y pueden reproyectar desde y hasta cualquier proyección especificando su código EPSG.

Posted on August 11, 2021 and filed under TutorialQGIS, TutorialPython.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Cómo crear un shapefile de punto / línea / polígono con Python y Fiona - Tutorial

El almacenamiento, la gestión y el análisis de datos vectoriales geoespaciales en shapefiles ESRI es un procedimiento común de los profesionales SIG y relacionados. La generación de estos archivos espaciales se puede realizar no solo en un software de escritorio sino también mediante comandos de Python. Hemos creado un ejemplo aplicado que muestra el procedimiento en Python para crear shapefiles de puntos, líneas y polígonos a partir de un archivo csv mediante el uso de la biblioteca Fiona.

Posted on June 21, 2021 and filed under TutorialPython, TutorialQGIS, Tutorial.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Cómo instalar librerías de Python geoespaciales (Gdal, Fiona, Shapely, Rasterio, etc) usando un Conda Env en Windows

Hemos creado un tutorial que muestra el proceso de instalación de las bibliotecas geoespaciales de Python en Windows mediante el uso de un Conda environment. El proceso es simple en sus pasos, sin embargo, la secuencia y los factores relacionados con la compatibilidad del paquete son importantes en la instalación.

Posted on June 18, 2021 and filed under TutorialPython, TutorialQGIS.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Como instalar Postgresql y Postgis en Windows 10 con WSL y una app de Debian - Tutorial

La forma usual para instalar Postgresql y Postgis requiere la configuración de varios ejecutables y el flujo de trabajo suele utilizar interfaces gráficas de usuario (GUI). Queríamos encontrar una forma de instalar Postgresql y Postgis en Windows 10 manteniendo la experiencia del shell de Linux. Este tutorial muestra el procedimiento para instalar la base de datos con la extensión de Postgis dentro de una aplicación Debian (también podría ser Ubuntu) en Windows 10 que se puede acceder desde QGIS.

Posted on June 2, 2021 and filed under GIS, TutorialQGIS, TutorialPython.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

5 tutoriales para la detección de cultivos e identificación de vegetación con Python y QGIS

Durante los últimos meses hemos investigado las diferentes herramientas en Python y QGIS disponibles para reconocer cultivos e identificar vegetación como archivos vectoriales geoespaciales. Hemos utilizado una variedad de técnicas que van desde algoritmos de aprendizaje automático con Scikit Learn y Scikit Image hasta combinaciones innovadoras de bandas y reclasificaciones en QGIS. Este artículo muestra el resumen de los tutoriales producidos hasta ahora que estamos seguros serán de gran ayuda para los profesionales de SIG y geocientíficos.

Posted on May 28, 2021 and filed under TutorialQGIS, TutorialPython.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Una clase en Python para identificar cultivos desde ortofotos de drone - Tutorial

El análisis espacial y el aprendizaje automático a veces requieren una codificación masiva para lograr resultados decentes, como identificar plantas a partir de una ortofoto de drones. Queríamos crear un flujo de trabajo simple para que los usuarios principiantes e intermedios de Python trabajaran con estas bibliotecas sin mucho dolor o frustración. Este tutorial tiene el procedimiento completo para usar una clase de Python que reconoce plantas de una ortofoto basada en puntos de muestra, crea rasters intermedios e identifica plantas como shapefiles de puntos.

Posted on May 21, 2021 and filed under TutorialQGIS, TutorialPython.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.

 

Cómo delinear cultivos de ortofotos de drone con QGIS - Tutorial

Mientras investigábamos sobre algoritmos de aprendizaje automático para ortofotos de drones, descubrimos que los cultivos se pueden delinear solo con herramientas comunes de QGIS con una performance. Basados en la suma de la banda azul y roja dividida por la banda verde podemos tener un nuevo índice de vegetación donde los cultivos más sanos tienen valores de índice bajos (0-1.5) y los cultivos secos / suelo estéril tienen valores altos (más de 1.9 ).

Este tutorial muestra el procedimiento completo en QGIS para realizar la delimitación de plantas de frijol en una ortofoto de drone con una resolución de 5cm.

Posted on May 17, 2021 and filed under TutorialQGIS.

 

Suscríbete a nuestro boletín electrónico

Suscríbase a nuestro boletín gratuito para recibir noticias, datos interesantes y fechas de nuestros cursos en recursos hídricos.