Interpolar grandes volúmenes de datos espaciales a través de la interfaz gráfica de QGIS suele ser un dolor de cabeza: el proceso tarda demasiado o, peor aún, el programa se congela consume todos los recursos del sistema. En este tutorial te enseñaremos a interpolar casi 2 millones de puntos en menos de dos minutos utilizando OSGeo4W Shell y comandos de GDAL con el método IDW. A través de la creación de un archivo de capa virtual (.vrt), aprenderás un flujo de trabajo altamente eficiente, seguro y ligero que te permitirá trabajar con millones de datos sin depender de los límites de la interfaz gráfica.
Cómo hacer un Diagrama de Stiff Georeferenciado con Python y QGIS - Tutorial
Los Diagramas de Stiff son un aplicación muy común para representar la química de los recursos hídricos. En un Diagrama de Stiff las concentraciones de los componentes principales representados en miliequivalentes por litro (meq/l) son representados para una muestra. El perfil de los cationes son representados a la izquierda y los aniones a la derecha.
El diagrama permite la comparación rápida de muchos componentes de la calidad del agua entre muchas muestras, mediante la comparación de las formas de los polígonos generados. Sin embargo, hasta ahora no había manera de correlacionar los diagramas con la posición del punto de monitoreo. Este tutorial muestra los códigos y pasos para la realización de un Diagrama de Stiff Georeferenciado utilizando QGIS y Python.
Delineación de cuencas hidrográficas que contienen lagos/embalses internos con Hatari Utils - Tutorial
Las cuencas hidrológicas pueden tener diversidad de formas debido a la morfología y es un desafío tener un proceso que pueda delimitar cuencas con diferentes características en un corto período de tiempo. Hatari Utils es una plataforma online de análisis hidrogeológico que cuenta con una herramienta para la delimitación de cuencas, en este tutorial hemos probado las capacidades de Hatari Utils para delinear una cuenca que tiene un lago interno.
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
#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)
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.
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.
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 .
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
