Capítulo 6 Estructura de datos y software
- Datos tipo raster
- Datos tipo vector.
- Vectores de punto, líneas y polígonos.
- Geomarketing y geolocation
- Puentes a sistemas GIS (SAGA, QGIS, GRASS 7)
- Caso: Estimación de residuos agrícolas mediante la integración de un método analítico y georeferenciación
6.1 Los sistemas de Información Geográficos
Como hemos visto, en los métodos jerárquicos, y muy especialmente en lo analíticos, es factible la representación sobre planos (ploteos) de los datos de localización. El uso de bibliotecas como leaflet facilitan la complementación de estos datos especiales con teselas de otros proveedores de servicios.
Es claro que las tendencias en la tecnología que apuntan al uso de 5G y el Metaverso [Sparkes, M. (2021). What is a metaverse.] reclaman a la ingeniería industrial nuevos paradigmas de comunicación e interpretación de datos y resultados.
En el caso de este trabajo se ha elegido a R-Cran para esta misión ya que es uno de las tecnologías que junto a los Jupiter Notebooks que usa Python lideran este paradigma de Ciencia Reproductible , ver Fleischmann, M., Feliciotti, A., & Kerr, W. (2021). [Evolution of urban patterns: urban morphology as an open reproducible data science. Geographical Analysis.]
En ese sentido el enlace de herramientas como Python y R-Cran con los productos líderes en teconología geomática tienen puentes de vinculación que permiten sacar provecho tanto de imágenes raster como de capas vectoriales para mejorar la toma de decisión.
Veamos un ejemplo clásico de algunos de los métodos que se comparten.
6.2 Polígonos de Voronoi
Con la biblioteca ggvoronoi podemos dibujar fácilmente mapas de calor de diagramas de Voronoi, con la ayuda de los paquetes como ggplot2 y otros para visualizar los datos. Un diagrama de Voronoi dibuja las regiones vecinas más cercanas alrededor de un conjunto de puntos y, al especificar un argumento de relleno, podemos convertirlo en un mapa de calor. Las aplicaciones de los diagramas de Voronoi permiten:
- encontrar el vecino más cercano a un punto dado
- interpolar un conjunto de puntos sin utilizar un ráster
- crear mapas gráficos y útiles y atractivos
- ver el área de influencia de un punto respecto de otros
- colaborar con la comunicación basada en Data Journalism
6.2.1 Datos aleatorios
Generaremos un set de puntos aleatorios para poder ver como se comporta esta técnica. Si obtenemos un mapa de calor puede que esto nos ayude a decidir sobre la localización. Tal como ocurre en los casos de la triangulación de Fermat, puede que zonas calientes impulsen la concentración, en tanto que en otros casos zonas calientes representan competenica feroz.
Si tenemos que instalar un restaurante , zonas calientes podrían indicar tendencia a abrir nuevos establecimientos allí por que el público se dirige a esas zonas. Esto será así en tanto existan playas de estacionamiento y servicios de transporte público de pasajeros que tengan capacidad remanente.
library(ggvoronoi)
## Loading required package: ggplot2
set.seed(45056)
<- sample(1:200,100)
x <- sample(1:200,100)
y <- data.frame(x, y,
points distance = sqrt((x-100)^2 + (y-100)^2))
<- data.frame(x = 100*(1+cos(seq(0, 2*pi, length.out = 2500))),
circle y = 100*(1+sin(seq(0, 2*pi, length.out = 2500))),
group = rep(1,2500))
ggplot(points) +
geom_point(aes(x,y,color=distance)) +
geom_path(data=circle,aes(x,y,group=group))
Todos estos datos tienen un conjunto de coordenadas \(x\) e \(y\), junto con la distancia euclidiana desde el centro del círculo que usaremos para colorear el diagrama de Voronoi.
ggvoronoi() puede usar este conjunto de puntos para trazar rápidamente un diagrama de Voronoi, trabajando con el marco ggplot2:
ggplot(points) +
geom_voronoi(aes(x,y,fill=distance))
Además, podemos usar la función stat_voronoi directamente para especificar qué geom de ggplot 2 nos gustaría usar. Esto es más útil cuando estamos interesados en trazar solo los bordes del diagrama:
ggplot(points,aes(x,y)) +
stat_voronoi(geom="path") +
geom_point()
Esta última trama trae a colación un punto interesante: el paquete deldir crea el diagrama de voronoi con un cuadro delimitador automático (¡de lo contrario sería infinitamente grande!). Pero podemos especificar nuestro propio cuadro delimitador para reducir o ampliar el área.
El argumento de esquema debe tener estos parámetros:
- la primera columna es x / longitud
- la segunda columna es y / latitud
- columna opcional “grupo”
¡O puede alimentarlo con cualquier SpatialPolygonsDataFrame!
Para este ejemplo, usaremos el círculo incluido con ggvoronoi.
ggplot(data=points, aes(x=x, y=y, fill=distance)) +
geom_voronoi(outline = circle)
¡Finalmente, puede agregar lo que quiera con su conocimiento de ggplot2!
ggplot(points,aes(x,y)) +
geom_voronoi(aes(fill=distance),outline=circle,
color="#4dffb8",size=.125) +
scale_fill_gradient(low="#4dffb8",high="black",guide=F) +
theme_void() +
coord_fixed()
## Warning: It is deprecated to specify `guide = FALSE` to remove a guide. Please
## use `guide = "none"` instead.
6.3 Instalación de QGis u otro Sistema de Información Geográfica
Clase a cargo de Maria Riera