Introducción

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.

Configuración inicial

Carga de librerías

library(sf)
library(dplyr)
library(ggplot2)
library(ggspatial)

Carga de datos

Datos del departamento del Meta

# 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"

Datos de ciudades mundiales

# 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"

Procesamiento espacial

Transformación de coordenadas

# 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"

Ciudades identificadas

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"

Visualización

Mapa básico con plot()

# 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)
}

Mapa avanzado con ggplot2

# 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)

Exportación de resultados

# 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

Resumen

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.