Víctor Gauto
  • Tidytuesday
  • Publicaciones
  • Mapas de Argentina
  • Visualizaciones
  1. Instalaciones
  2. 📮 Buzones

Sitio en construcción

  • Mapas de Argentina
  • Instalaciones
    • ✈️ Aeropuertos
    • 📮 Buzones
    • 🏫 Ciencia y educación
    • 🌦️Estaciones meteorológicas
    • 🕯️Faros
    • 🏞️ Parques Nacionales
    • 🚰Plantas potabilizadoras
    • 🔌 Red eléctrica
  • Animaciones
    • 🚌Crecimiento de rutas
    • 🗼Torres de telecomunicaciones

Contenido

  • Paquetes
  • Estilos
  • Epígrafe
  • Datos
  • Figura
  • Editar esta página
  • Informar de un problema
  1. Instalaciones
  2. 📮 Buzones

📮 Buzones

  • Mostrar todo el código
  • Ocultar todo el código

  • Ver el código fuente
geom_sf
Autor

Víctor Gauto

Fecha de publicación

27 de abril de 2024

Mapa de buzones en Argentina, con detalle de la Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.

Buzones en Argentina.

Paquetes

Ocultar código
library(sf)
library(glue)
library(patchwork)
library(ggtext)
library(showtext)
library(tidyverse)

Estilos

Colores.

Ocultar código
c1 <- "#FFCE00"
c2 <- "white"
c3 <- "#152663"
c4 <- "#BE5660"

Fuentes: Ubuntu, JetBrains Mono y Diphylleia.

Ocultar código
font_add(
  family = "ubuntu",
  regular = "././fuente/Ubuntu-Regular.ttf",
  bold = "././fuente/Ubuntu-Bold.ttf",
  italic = "././fuente/Ubuntu-Italic.ttf"
)

font_add(
  family = "jet",
  regular = "././fuente/JetBrainsMonoNLNerdFontMono-Regular.ttf"
)

font_add_google(name = "Diphylleia", family = "diphylleia", db_cache = FALSE)

showtext_auto()
showtext_opts(dpi = 300)

Epígrafe

Ocultar código
fuente <- glue(
  "<b>Datos:</b> <span style='color:{c1};'>@matiasprofeta</span>
  <span style='color:{c1};'>@rescatandobuzones</span>")
autor <- glue("<span style='color:{c1};'>Víctor Gauto</span>")
icon_twitter <- glue("<span style='font-family:jet;'>&#xeb72;</span>")
icon_instagram <- glue("<span style='font-family:jet;'>&#xf16d;</span>")
icon_github <- glue("<span style='font-family:jet;'>&#xf09b;</span>")
icon_mastodon <- glue("<span style='font-family:jet;'>&#xf0ad1;</span>")
icon_bluesky <- glue("<span style='font-family:jet;'>&#xe28e;</span>")
usuario <- glue("<span style='color:{c1};'>vhgauto</span>")
sep <- glue("**|**")

mi_caption <- glue(
  "{fuente} {sep} {autor} {sep} <b>{icon_github} {icon_twitter} ",
  "{icon_instagram} {icon_mastodon} {icon_bluesky}</b> {usuario}"
)

Datos

Vectores de las provincias y sus departamentos, obtenidos del Instituto Geográfico Nacional.

Ocultar código
pcias <- st_read("argentina/vectores/pcias_continental.gpkg") |>
  select(provincia = NAM)

dptos <- st_read("argentina/vectores/dptos_continental.gpkg") |>
  st_transform(crs = 5346) |>
  st_make_valid() |>
  st_crop(pcias) |>
  select(departamento = NAM)

Selecciono la Provincia de Buenas y la Ciudad Autónoma de Buenos Aires para ver con mayor detalle. Incluyo los departamentos y comunas, respectivamente.

Ocultar código
bsas <- pcias |>
  filter(provincia == "Buenos Aires")

caba <- pcias |>
  filter(provincia == "Ciudad Autónoma de Buenos Aires")

dptos_bsas <- terra::crop(terra::vect(dptos), terra::vect(bsas)) |>
  st_as_sf()

dptos_caba <- filter(dptos, str_detect(departamento, "Comuna"))

Los buzones provienen de un mapa en Google Maps. Leo las capas del archivo .kml.

Ocultar código
layers <- st_layers("argentina/vectores/buzones.kml")
capas <- layers$name

Defino una función para la lectura de cada capa disponible y aplico.

Ocultar código
f_kml <- function(x) {
  l <- st_read(
    dsn = "argentina/vectores/buzones.kml",
    layer = x) |>
    st_transform(crs = 5346)

  return(l)
}

buzones <- map(capas, f_kml) |>
  list_rbind() |>
  st_as_sf() |>
  st_geometry() |>
  st_sf() |>
  rename(geometry = 1) |>
  mutate(nro = row_number())

Extraigo los buzones ubicados en Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.

Ocultar código
buzones_bsas <- st_intersection(bsas, buzones)
buzones_caba <- st_intersection(caba, buzones)

Cuento la cantidad de buzones en Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires. Para ello cuento la cantidad existente en cada departamento, luego combino con los vectores de las regiones.

Ocultar código
centros_dptos <- st_point_on_surface(dptos)

centros_pcias <- st_join(centros_dptos, pcias)

polig_dptos <- st_join(dptos, centros_pcias) |>
  rename(departamento = departamento.x) |>
  select(-departamento.y)

buzones_dptos <- st_join(polig_dptos, buzones)

Cantidad de buzones por región y porcentaje.

Ocultar código
n_bsas <- buzones_dptos |>
  filter(provincia == "Buenos Aires") |>
  drop_na() |>
  nrow()

n_caba <- buzones_dptos |>
  filter(provincia == "Ciudad Autónoma de Buenos Aires") |>
  drop_na() |>
  nrow()

n_buzones <- nrow(buzones)

porcentaje_bsas <- gt::vec_fmt_percent(x = n_bsas/n_buzones, decimals = 0)
porcentaje_caba <- gt::vec_fmt_percent(x = n_caba/n_buzones, decimals = 0)

Figura

Título y subtítulo

Ocultar código
mi_title <- "Buzones Argentinos"

mi_subtitle <- glue(
  "En **Argentina** hay {n_buzones} buzones. En Provincia de Buenos Aires<br>",
  "se encuentra el {porcentaje_bsas}. Capital Federal posee el ",
  "{porcentaje_caba}.")

Incluyo la imagen de una estampilla dedicada a los buzones, emitida en 2011.

Ocultar código
estampilla_label <- glue(
  "Estampilla emitida por<br>",
  "el **Correo Argentino**.<br>",
  "América UPAEP-Buzones,<br>",
  "2011.")

Figura de la estampilla.

Ocultar código
estampilla <- ggplot() +
  annotate(
    geom = "richtext", x = 0, y = 0, fill = NA, label.color = NA, hjust = 0,
    label = glue(
      "<img src='argentina/extras/buzones_estampilla.jpg' width='140'></img><br>",
      "{estampilla_label}"), family = "ubuntu", size = 5, color = c2) +
  coord_cartesian(xlim = c(-.01, .01), ylim = c(-.01, .01), expand = FALSE) +
  theme_void()

Logo del Correo Argentino.

Ocultar código
logo <- ggplot() +
  annotate(
    geom = "richtext", x = 0, y = 0, fill = NA, label.color = NA, hjust = 0,
    label = glue(
      "<img src='argentina/extras/buzones_logo.png' width='100'></img>")
  ) +
  coord_cartesian(xlim = c(-.01, .01), ylim = c(-.01, .01), expand = FALSE) +
  theme_void()

Mapa de Argentina, Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.

Ocultar código
g1 <- ggplot() +
  geom_sf(data = pcias, fill = c1, color = c2, linewidth = .5) +
  geom_sf(
    data = buzones, color = c3, size = 2, alpha = .6, shape = 4, stroke = 1) +
  coord_sf(clip = "off") +
  theme_void()

g2 <- ggplot() +
  geom_sf(data = dptos_bsas, fill = c1, color = c2, linewidth = .4) +
  geom_sf(
    data = buzones_bsas, color = c3, size = 2, alpha = .5, shape = 4,
    stroke = 1) +
  theme_void()

g3 <- ggplot() +
  geom_sf(data = dptos_caba, fill = c1, color = c2, linewidth = .4) +
  geom_sf(
    data = buzones_caba, color = c3, size = 3, alpha = .6, shape = 4,
    stroke = 1) +
  theme_void()

Combino los mapas de acuerdo con el diseño dado.

Ocultar código
diseño <- "
AB
AC
"

g <- g1 + g2 + g3 + plot_layout(design = diseño)

Combino los mapas de las regiones con el logo de Correo Argentino y la estampilla de los buzones.

Ocultar código
gg <- g +
  inset_element(estampilla, left = 1.2, bottom = 1.1, top = .3, right = -2.2) +
  inset_element(logo, left = -3.25, bottom = -.95, top = .9, right = .9) +
  plot_annotation(
    title = mi_title,
    subtitle = mi_subtitle,
    caption = mi_caption,
    theme = theme(
      aspect.ratio = 1,
      plot.background = element_rect(
        fill = c4, color = c3, linewidth = 3
      ),
      plot.title.position = "plot",
      plot.title = element_text(
        family = "diphylleia", size = 80, color = c1,
        hjust = .5, margin = margin(t = 5)
      ),
      plot.subtitle = element_markdown(
        color = c2, family = "ubuntu", size = 20, hjust = .5,
        lineheight = 1.3
      ),
      plot.caption = element_markdown(
        color = c2, family = "ubuntu", size = 15,
        margin = margin(b = 10, r = 10)
      )
    )
  )

Guardo.

Ocultar código
ggsave(
  plot = gg,
  filename = "argentina/instalaciones/buzones.png",
  width = 30,
  height = 40,
  units = "cm"
)
Subir
✈️ Aeropuertos
🏫 Ciencia y educación
Ejecutar el código
---
format:
  html:
    code-fold: show
    code-summary: "Ocultar código"
    code-line-numbers: false
    code-annotations: false
    code-link: true
    code-tools:
        source: true
        toggle: true
        caption: "Código"
    code-overflow: scroll
    page-layout: full
editor_options:
  chunk_output_type: console
categories: ["geom_sf"]
execute:
  eval: false
  echo: true
  warning: false
title: "📮 Buzones"
date: 2024-04-27
author: Víctor Gauto
---

Mapa de buzones en Argentina, con detalle de la Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.

![Buzones en Argentina.](buzones.png)

## Paquetes

```{r}
library(sf)
library(glue)
library(patchwork)
library(ggtext)
library(showtext)
library(tidyverse)
```

## Estilos

Colores.

```{r}
c1 <- "#FFCE00"
c2 <- "white"
c3 <- "#152663"
c4 <- "#BE5660"
```

Fuentes: Ubuntu, JetBrains Mono y Diphylleia.

```{r}
font_add(
  family = "ubuntu",
  regular = "././fuente/Ubuntu-Regular.ttf",
  bold = "././fuente/Ubuntu-Bold.ttf",
  italic = "././fuente/Ubuntu-Italic.ttf"
)

font_add(
  family = "jet",
  regular = "././fuente/JetBrainsMonoNLNerdFontMono-Regular.ttf"
)

font_add_google(name = "Diphylleia", family = "diphylleia", db_cache = FALSE)

showtext_auto()
showtext_opts(dpi = 300)
```

## Epígrafe

```{r}
fuente <- glue(
  "<b>Datos:</b> <span style='color:{c1};'>@matiasprofeta</span>
  <span style='color:{c1};'>@rescatandobuzones</span>")
autor <- glue("<span style='color:{c1};'>Víctor Gauto</span>")
icon_twitter <- glue("<span style='font-family:jet;'>&#xeb72;</span>")
icon_instagram <- glue("<span style='font-family:jet;'>&#xf16d;</span>")
icon_github <- glue("<span style='font-family:jet;'>&#xf09b;</span>")
icon_mastodon <- glue("<span style='font-family:jet;'>&#xf0ad1;</span>")
icon_bluesky <- glue("<span style='font-family:jet;'>&#xe28e;</span>")
usuario <- glue("<span style='color:{c1};'>vhgauto</span>")
sep <- glue("**|**")

mi_caption <- glue(
  "{fuente} {sep} {autor} {sep} <b>{icon_github} {icon_twitter} ",
  "{icon_instagram} {icon_mastodon} {icon_bluesky}</b> {usuario}"
)
```

## Datos

Vectores de las provincias y sus departamentos, obtenidos del [Instituto Geográfico Nacional](https://www.ign.gob.ar/NuestrasActividades/InformacionGeoespacial/CapasSIG).

```{r}
pcias <- st_read("argentina/vectores/pcias_continental.gpkg") |>
  select(provincia = NAM)

dptos <- st_read("argentina/vectores/dptos_continental.gpkg") |>
  st_transform(crs = 5346) |>
  st_make_valid() |>
  st_crop(pcias) |>
  select(departamento = NAM)
```

Selecciono la Provincia de Buenas y la Ciudad Autónoma de Buenos Aires para ver con mayor detalle. Incluyo los departamentos y comunas, respectivamente.

```{r}
bsas <- pcias |>
  filter(provincia == "Buenos Aires")

caba <- pcias |>
  filter(provincia == "Ciudad Autónoma de Buenos Aires")

dptos_bsas <- terra::crop(terra::vect(dptos), terra::vect(bsas)) |>
  st_as_sf()

dptos_caba <- filter(dptos, str_detect(departamento, "Comuna"))
```

Los buzones provienen de un [mapa en Google Maps](https://www.google.com/maps/d/u/0/viewer?mid=1sUgXir-dlyHnVkSN5EVSW_qgakk). Leo las capas del archivo `.kml`.

```{r}
layers <- st_layers("argentina/vectores/buzones.kml")
capas <- layers$name
```

Defino una función para la lectura de cada capa disponible y aplico.

```{r}
f_kml <- function(x) {
  l <- st_read(
    dsn = "argentina/vectores/buzones.kml",
    layer = x) |>
    st_transform(crs = 5346)

  return(l)
}

buzones <- map(capas, f_kml) |>
  list_rbind() |>
  st_as_sf() |>
  st_geometry() |>
  st_sf() |>
  rename(geometry = 1) |>
  mutate(nro = row_number())
```

Extraigo los buzones ubicados en Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.

```{r}
buzones_bsas <- st_intersection(bsas, buzones)
buzones_caba <- st_intersection(caba, buzones)
```

Cuento la cantidad de buzones en Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires. Para ello cuento la cantidad existente en cada departamento, luego combino con los vectores de las regiones.

```{r}
centros_dptos <- st_point_on_surface(dptos)

centros_pcias <- st_join(centros_dptos, pcias)

polig_dptos <- st_join(dptos, centros_pcias) |>
  rename(departamento = departamento.x) |>
  select(-departamento.y)

buzones_dptos <- st_join(polig_dptos, buzones)
```

Cantidad de buzones por región y porcentaje.

```{r}
n_bsas <- buzones_dptos |>
  filter(provincia == "Buenos Aires") |>
  drop_na() |>
  nrow()

n_caba <- buzones_dptos |>
  filter(provincia == "Ciudad Autónoma de Buenos Aires") |>
  drop_na() |>
  nrow()

n_buzones <- nrow(buzones)

porcentaje_bsas <- gt::vec_fmt_percent(x = n_bsas/n_buzones, decimals = 0)
porcentaje_caba <- gt::vec_fmt_percent(x = n_caba/n_buzones, decimals = 0)
```

## Figura

Título y subtítulo

```{r}
mi_title <- "Buzones Argentinos"

mi_subtitle <- glue(
  "En **Argentina** hay {n_buzones} buzones. En Provincia de Buenos Aires<br>",
  "se encuentra el {porcentaje_bsas}. Capital Federal posee el ",
  "{porcentaje_caba}.")
```

Incluyo la [imagen](http://upaep.filatelia.free.fr/argentina.html) de una estampilla dedicada a los buzones, [emitida en 2011](https://www.correoargentino.com.ar/filatelia/planes-de-emisiones/emisiones-2011).

```{r}
estampilla_label <- glue(
  "Estampilla emitida por<br>",
  "el **Correo Argentino**.<br>",
  "América UPAEP-Buzones,<br>",
  "2011.")
```

Figura de la estampilla.

```{r}
estampilla <- ggplot() +
  annotate(
    geom = "richtext", x = 0, y = 0, fill = NA, label.color = NA, hjust = 0,
    label = glue(
      "<img src='argentina/extras/buzones_estampilla.jpg' width='140'></img><br>",
      "{estampilla_label}"), family = "ubuntu", size = 5, color = c2) +
  coord_cartesian(xlim = c(-.01, .01), ylim = c(-.01, .01), expand = FALSE) +
  theme_void()
```

Logo del Correo Argentino.

```{r}
logo <- ggplot() +
  annotate(
    geom = "richtext", x = 0, y = 0, fill = NA, label.color = NA, hjust = 0,
    label = glue(
      "<img src='argentina/extras/buzones_logo.png' width='100'></img>")
  ) +
  coord_cartesian(xlim = c(-.01, .01), ylim = c(-.01, .01), expand = FALSE) +
  theme_void()
```

Mapa de Argentina, Provincia de Buenos Aires y Ciudad Autónoma de Buenos Aires.

```{r}
g1 <- ggplot() +
  geom_sf(data = pcias, fill = c1, color = c2, linewidth = .5) +
  geom_sf(
    data = buzones, color = c3, size = 2, alpha = .6, shape = 4, stroke = 1) +
  coord_sf(clip = "off") +
  theme_void()

g2 <- ggplot() +
  geom_sf(data = dptos_bsas, fill = c1, color = c2, linewidth = .4) +
  geom_sf(
    data = buzones_bsas, color = c3, size = 2, alpha = .5, shape = 4,
    stroke = 1) +
  theme_void()

g3 <- ggplot() +
  geom_sf(data = dptos_caba, fill = c1, color = c2, linewidth = .4) +
  geom_sf(
    data = buzones_caba, color = c3, size = 3, alpha = .6, shape = 4,
    stroke = 1) +
  theme_void()
```

Combino los mapas de acuerdo con el `diseño` dado.


```{r}
diseño <- "
AB
AC
"

g <- g1 + g2 + g3 + plot_layout(design = diseño)
```

Combino los mapas de las regiones con el logo de Correo Argentino y la estampilla de los buzones.

```{r}
gg <- g +
  inset_element(estampilla, left = 1.2, bottom = 1.1, top = .3, right = -2.2) +
  inset_element(logo, left = -3.25, bottom = -.95, top = .9, right = .9) +
  plot_annotation(
    title = mi_title,
    subtitle = mi_subtitle,
    caption = mi_caption,
    theme = theme(
      aspect.ratio = 1,
      plot.background = element_rect(
        fill = c4, color = c3, linewidth = 3
      ),
      plot.title.position = "plot",
      plot.title = element_text(
        family = "diphylleia", size = 80, color = c1,
        hjust = .5, margin = margin(t = 5)
      ),
      plot.subtitle = element_markdown(
        color = c2, family = "ubuntu", size = 20, hjust = .5,
        lineheight = 1.3
      ),
      plot.caption = element_markdown(
        color = c2, family = "ubuntu", size = 15,
        margin = margin(b = 10, r = 10)
      )
    )
  )
```

Guardo.

```{r}
ggsave(
  plot = gg,
  filename = "argentina/instalaciones/buzones.png",
  width = 30,
  height = 40,
  units = "cm"
)
```

Creado con y

Víctor Gauto

  • Editar esta página
  • Informar de un problema