Santiago Quiñones Cuenca
Software Developer and Educator, Master in Software Engineering, Research UTPL {Loja, Ecuador} Repositories: http://github.com/lsantiago
SEMANA 4
Profesor: MSc. Santiago Quiñones
Docente Investigador
Departamento de Ingeniería Civil
3.1 Formato de datos espaciales - Vector
Formato de datos espaciales - Vector
En el contexto del análisis geoespacial, el formato de datos espaciales vectoriales es fundamental para representar la información geográfica. Este formato permite almacenar y analizar datos espaciales a través de geometrías discretas definidas por coordenadas en un sistema de referencia.
Formato comunes de datos vectoriales
Los datos vectoriales pueden almacenarse en distintos formatos, cada uno con sus características específicas:
Shapefiles
Los Shapefiles almacenan un tipo especial de datos conocidos como geometría.
Punto
Línea
Polígono
Componentes de un Shapefile
MANTENGA TODOS LOS ARCHIVOS JUNTOS!!
Archivos GeoJson
El shapefile no es la única forma de almacenar datos vectoriales. También existen otros formatos, como GeoJSON, que permite representar datos espaciales en estructuras JSON. Además, ciertos datos espaciales pueden almacenarse en formatos tabulares donde la información espacial se encuentra contenida en columnas.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-70.6483, -33.4569]
},
"properties": {
"nombre": "Santiago",
"pais": "Chile"
}
}
]
}
Es un formato más reciente para datos geoespaciales publicado en 2016. A diferencia de los shapefiles, GeoJSON es un único archivo, por lo que es más fácil trabajar con él.
¿Cuáles datos son almacenados en un formato de vectores espaciales?
Lectura de archivos vectoriales
Geopandas
Este código lee un shapefile en un GeoDataFrame y mira las primeras filas.
import geopandas as gpd
geo_df = gpd.read_file('My_Map_Files/my_map.shp')
geo_df.head()
Los datos se almacenan en formato tabular, donde la columna geometry contiene la información espacial de los puntos, líneas o polígonos.
Representación gráfica de datos vectoriales
Geopandas
La visualización de datos vectoriales se facilita con librerías como Matplotlib y GeoPandas.
import matplotlib.pyplot as plt
# Gráfico básico de datos vectoriales
df.plot(color="red")
plt.show()
Secuencia de mapa de colores de Matplotlib
Geopandas
Importación y creación de mapas con múltiples archivos vectoriales
Para visualizar múltiples capas de información en un mapa, se pueden combinar varios archivos shapefile utilizando GeoPandas.
# Cargar múltiples archivos shapefile
gdf1 = gpd.read_file("capa1.shp")
gdf2 = gpd.read_file("capa2.shp")
# Graficar ambas capas en un solo mapa
ax = gdf1.plot(color='blue', edgecolor='black')
gdf2.plot(ax=ax, color='red', edgecolor='black')
plt.show()
3.2 Cambio de SRC
¿Qué es un Sistema de Referencia de Coordenadas (SRC)?
Georreferenciación y elementos de un SRC
Georreferenciación: vincula datos a ubicaciones específicas en un mapa (Hahmann & Burghardt, 2013).
Elementos clave:
Datum: modelo de la Tierra.
Proyección cartográfica: transformación a plano 2D.
Parámetros adicionales: meridiano central, escala y conversión de coordenadas. (Vermeer, 2019)
Diferencia de proyecciones
Diferentes proyecciones afectan la forma y precisión de los mapas.
Ejemplo: Mapas de EE.UU. en distintas proyecciones.
¿Por qué existen diferentes SRC?
Causas:
Verificación de SRC en Datos Vectoriales
import geopandas as gpd
# Cargar un archivo de caminos y un área de influencia (AOI)
caminos = gpd.read_file("caminos.shp")
aoi = gpd.read_file("aoi.shp")
# Verificar los SRC de ambas capas
print(f"El SRC de los caminos es: {caminos.crs}")
print(f"El SRC del AOI es: {aoi.crs}")
Reproyección de Datos Vectoriales
# Reproyectar el AOI al SRC de los caminos
aoi_reproyectado = aoi.to_crs(epsg=32719) # EPSG 32719 es UTM Zona 19 Sur
Visualización de datos con diferentes SRC
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
caminos.plot(ax=ax, alpha=0.1)
aoi.plot(ax=ax, color='red', edgecolor='red', linewidth=1)
ax.set_title("Caminos y AOI en Diferentes SRC")
plt.show()
Reproyección y visualización ajustada
fig, ax = plt.subplots()
caminos.plot(ax=ax, alpha=0.1)
aoi_reproyectado.plot(ax=ax, color='red', edgecolor='red', linewidth=1)
ax.set_title("Caminos y AOI en el Mismo SRC")
plt.show()
3.3 Procesamiento de datos vectoriales – Parte 1
Recortando datos vectoriales
Técnica geoespacial que reduce un conjunto de datos a un área específica de interés.
Permite trabajar solo con información relevante y optimizar el procesamiento.
Aplicaciones:
Recortando datos vectoriales
import geopandas as gpd
# Cargar datos espaciales
datos = gpd.read_file("datos.shp")
area_interes = gpd.read_file("area_interes.shp")
# Recortar los datos según el área de interés
datos_recortados = gpd.overlay(datos, area_interes, how="intersection")
# Guardar los datos recortados
datos_recortados.to_file("datos_recortados.shp")
Disolviendo datos vectoriales
La disolución de datos vectoriales permite combinar múltiples características en una sola entidad en función de un atributo compartido. Esta técnica es útil para la agregación de datos, como la fusión de polígonos administrativos en una sola unidad territorial.
Observe, a continuación, en la figura un ejemplo del método disolver.
Disolviendo datos vectoriales
# Cargar datos espaciales
datos = gpd.read_file("provincias.shp")
# Disolver polígonos por un atributo común
datos_disueltos = datos.dissolve(by="region")
# Guardar el resultado
datos_disueltos.to_file("datos_disueltos.shp")
Creación de buffers en capas vectoriales
Zonas de influencia alrededor de puntos, líneas o polígonos
Útiles para planificación territorial y análisis de proximidad
Aplicaciones:
• Áreas de protección ambiental (ej. ríos)
• Accesibilidad a transporte (ej. estaciones de metro)
Disolviendo datos vectoriales
# Cargar datos espaciales
datos = gpd.read_file("caminos.shp")
# Crear un buffer de 100 metros alrededor de los caminos
buffer = datos.buffer(100)
# Guardar el resultado
buffer.to_file("caminos_buffer.shp")
¿Tienes más preguntas sobre la temática?
Seleccione el componente Programación Geoespacial
y consulta lo que quieras saber.
By Santiago Quiñones Cuenca
Unidad 3: Manejo de datos vectoriales
Software Developer and Educator, Master in Software Engineering, Research UTPL {Loja, Ecuador} Repositories: http://github.com/lsantiago