Este notebook presenta un análisis geoespacial del departamento del Meta en Colombia, incluyendo la visualización de sus municipios y las ciudades principales identificadas en bases de datos mundiales.
library(sf)
library(dplyr)
library(ggplot2)
library(ggspatial)
# Cargar datos del Meta
meta <- st_read("C:/Users/vidam/Desktop/Geomatica/Municipio meta.gpkg")
## Reading layer `mgn_adm_mpio_grafico' from data source
## `C:\Users\vidam\Desktop\Geomatica\Municipio meta.gpkg' using driver `GPKG'
## Simple feature collection with 1121 features and 11 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -81.73562 ymin: -4.229406 xmax: -66.84722 ymax: 13.39473
## Geodetic CRS: WGS 84
meta <- dplyr::filter(meta, dpto_cnmbr == "META")
# Verificar los datos cargados
print(paste("Número de municipios en el Meta:", nrow(meta)))
## [1] "Número de municipios en el Meta: 29"
# Cargar datos de ciudades mundiales
worldcities <- read.csv(
"C:/Users/vidam/Desktop/Geomatica/P2.2/simplemaps_worldcities_basicv1.901 (1)/worldcities.csv",
stringsAsFactors = FALSE
)
# Convertir a objeto espacial
cities_sf <- st_as_sf(
worldcities,
coords = c("lng", "lat"),
crs = 4326
)
print(paste("Total de ciudades en la base mundial:", nrow(cities_sf)))
## [1] "Total de ciudades en la base mundial: 48059"
# Transformar ciudades al mismo sistema de coordenadas que Meta
cities_transformed <- st_transform(cities_sf, crs = st_crs(meta))
# Extraer solo las ciudades que están dentro del Meta
meta_cities <- cities_transformed[meta, , op = st_within]
print(paste("Ciudades encontradas en el Meta:", nrow(meta_cities)))
## [1] "Ciudades encontradas en el Meta: 21"
if(nrow(meta_cities) > 0) {
cat("Ciudades del Meta encontradas:\n")
print(meta_cities$city)
} else {
cat("No se encontraron ciudades en el Meta\n")
}
## Ciudades del Meta encontradas:
## [1] "Villavicencio" "Acacías" "Granada"
## [4] "Puerto Gaitán" "La Macarena" "Puerto López"
## [7] "San Martín" "Vistahermosa" "Puerto Concordia"
## [10] "Cumaral" "Restrepo" "Guamal"
## [13] "Castilla La Nueva" "Fuente de Oro" "San Carlos de Guaroa"
## [16] "Puerto Rico" "Hato Corozal" "Lejanías"
## [19] "Mesetas" "Puerto Lleras" "San Juan de Arama"
# Crear mapa básico
plot(st_geometry(meta),
col = "lightblue",
main = "Municipios del Meta",
border = "darkblue")
# Agregar ciudades si existen
if(nrow(meta_cities) > 0) {
plot(st_geometry(meta_cities),
pch = 20,
col = "red",
cex = 1.5,
add = TRUE)
}
# Crear mapa con ggplot2
mapa_final <- ggplot() +
geom_sf(data = meta, fill = "lightblue", color = "darkblue") +
geom_sf(data = meta_cities, aes(color = city), size = 2) +
annotation_scale(location = "br") +
annotation_north_arrow(location = "tr") +
labs(
title = "Ciudades del Meta",
subtitle = "Departamento de Colombia",
caption = "Fuente: World Cities Database"
) +
theme_bw()
print(mapa_final)
# Exportar ciudades del Meta
st_write(meta_cities, "ciudades_meta.gpkg", delete_dsn = TRUE)
## Deleting source `ciudades_meta.gpkg' using driver `GPKG'
## Writing layer `ciudades_meta' to data source `ciudades_meta.gpkg' using driver `GPKG'
## Writing 21 features with 9 fields and geometry type Point.
cat("Archivo 'ciudades_meta.gpkg' creado exitosamente\n")
## Archivo 'ciudades_meta.gpkg' creado exitosamente
El análisis identificó 29 municipios en el departamento del Meta y 21 ciudades en la base de datos mundial que se encuentran dentro de los límites departamentales.