geoAr & geofacet

library(geoAr) # Argentina's Spatial Data Toolbox, [github::PoliticaArgentina/geoAr] v0.0.1.2
library(geofacet) # 'ggplot2' Faceting Utilities for Geographical Data, CRAN v0.2.0
#> Warning: package 'geofacet' was built under R version 4.1.3

{geoAr} está pensado para facilitar el acceso a datos y el trabajo con información geográfica de argentina. Una de las posibilidades es la descarga de capas ge geometrías con el objetivo de visualizar información. Una alternativa típica es utilizar {sf} para trabajar con datos de este tipo y combinarlo con {ggplot2} (y su función geom_sf() para visualizar capas geográficas.)


tucuman <- get_geo(geo = "TUCUMAN")

(tucuman_names <- tucuman %>%
  add_geo_codes()) # Augment data with metadata as districts names or alternative id codes
#> Simple feature collection with 17 features and 8 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: -66.18101 ymin: -28.01575 xmax: -64.48315 ymax: -26.06037
#> Geodetic CRS:  WGS 84
#> # A tibble: 17 x 9
#>    codprov_censo coddepto_censo codprov coddepto nomde~1 name_~2 codpr~3 name_~4
#>    <chr>         <chr>          <chr>   <chr>    <chr>   <chr>   <chr>   <chr>  
#>  1 90            007            23      013      BURRUY~ TUCUMAN AR-T    Tucumán
#>  2 90            014            23      012      CRUZ A~ TUCUMAN AR-T    Tucumán
#>  3 90            021            23      005      CHICLI~ TUCUMAN AR-T    Tucumán
#>  4 90            028            23      003      FAMAIL~ TUCUMAN AR-T    Tucumán
#>  5 90            035            23      009      GRANER~ TUCUMAN AR-T    Tucumán
#>  6 90            042            23      007      JUAN B~ TUCUMAN AR-T    Tucumán
#>  7 90            049            23      008      LA COC~ TUCUMAN AR-T    Tucumán
#>  8 90            056            23      011      LEALES  TUCUMAN AR-T    Tucumán
#>  9 90            063            23      002      LULES   TUCUMAN AR-T    Tucumán
#> 10 90            070            23      004      MONTER~ TUCUMAN AR-T    Tucumán
#> 11 90            077            23      006      RIO CH~ TUCUMAN AR-T    Tucumán
#> 12 90            084            23      001      CAPITAL TUCUMAN AR-T    Tucumán
#> 13 90            091            23      010      SIMOCA  TUCUMAN AR-T    Tucumán
#> 14 90            098            23      017      TAFI D~ TUCUMAN AR-T    Tucumán
#> 15 90            105            23      016      TAFI V~ TUCUMAN AR-T    Tucumán
#> 16 90            112            23      014      TRANCAS TUCUMAN AR-T    Tucumán
#> 17 90            119            23      015      YERBA ~ TUCUMAN AR-T    Tucumán
#> # ... with 1 more variable: geometry <MULTIPOLYGON [°]>, and abbreviated
#> #   variable names 1: nomdepto_censo, 2: name_prov, 3: codprov_iso, 4: name_iso


# MAPING

ggplot2::ggplot(data = tucuman_names) +
  ggplot2::geom_sf() +
  ggplot2::geom_sf_label(ggplot2::aes(label = nomdepto_censo))
#> Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may not
#> give correct results for longitude/latitude data

No obstante, existen ocaciones en las que la visualización de información geográfica a través de mapas convencionales puede no ser la mejor opción. {geofacet} es un paquete que busca sacar provecho de la potencia de {ggplot2} y utilizar el facetado de un modo que cada caja de una grilla represente una entidad y que la suma de estas guarden relación con su distribución espacial.

Ejemplo

En los gráficos que siguen se representa un indicador tipico de la Ciencia Política (el Número Efectivo de Partidos) para una serie de tiempo para todas las provincias de Argentina. En el primer caso esto está facilitado al generar un facet a partir de la variable PROVINCIA, generando un pequeño gráfico para cada distrito (small multiple).

En el segundo se utiliza geofacet para acomodar esta grilla cómo si fuera un mapa de Argentina. Facilitando de este modo una mirada que tenga en cuenta (y conocimiento) de la distribución geográfica de las provincias.

“El paquete geofacet amplía ggplot2 de una manera que facilita la creación de visualizaciones geográficamente facetadas en R. Para usar geofacet se toman datos que representan diferentes entidades geográficas y se aplica un método de visualización para cada entidad. El conjunto resultante de visualizaciones conforma una cuadrícula que imita la topología geográfica original”.

(Traducción propia de la nota intorudctoria del autor, Ryan Haffen. Fuente: https://tuqmano.ar/2019/01/21/geofacetear/)

Los siguientes puntos resumen las ventajas potenciales para el uso de esta herramientas en comparación de otras técnicas para representar información a través de mapas u otras alterantivas (como cartogramas, tilemaps, etc.):

Una particularidad del paquete {geofacet} es que propicia el desarrollo de grillas por parte de usuaries. Tanto para uso ad hoc como para contribuir con un repositorio de grillas que alimenta el paquete. Esta iniciativa nos impulsó a desarrollar grillas para Argentina y todas sus provincias, que terminaron conformando {geofacetAR}, antecedente de este proyecto que tuvo sus primeros pasos en el marco del 1° LatinR en el que presentamos Geofaceting Argentina

Abstract | 📊 Slides | 📦 {geofaceteAR} | ⌨️ blogpost.

get_grid()

Así como get_geo() permite descargar un set de datos que incluyen una variable geometry con información geográfica para la generación de mapas, get_grid() permite descargar grillas pre diseñadas para Argentina y cada una de las provincias.


(tucuman_names <- tucuman %>%
  add_geo_codes()) # Augment data with metadata as districts names or alternative id codes
#> Simple feature collection with 17 features and 8 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: -66.18101 ymin: -28.01575 xmax: -64.48315 ymax: -26.06037
#> Geodetic CRS:  WGS 84
#> # A tibble: 17 x 9
#>    codprov_censo coddepto_censo codprov coddepto nomde~1 name_~2 codpr~3 name_~4
#>    <chr>         <chr>          <chr>   <chr>    <chr>   <chr>   <chr>   <chr>  
#>  1 90            007            23      013      BURRUY~ TUCUMAN AR-T    Tucumán
#>  2 90            014            23      012      CRUZ A~ TUCUMAN AR-T    Tucumán
#>  3 90            021            23      005      CHICLI~ TUCUMAN AR-T    Tucumán
#>  4 90            028            23      003      FAMAIL~ TUCUMAN AR-T    Tucumán
#>  5 90            035            23      009      GRANER~ TUCUMAN AR-T    Tucumán
#>  6 90            042            23      007      JUAN B~ TUCUMAN AR-T    Tucumán
#>  7 90            049            23      008      LA COC~ TUCUMAN AR-T    Tucumán
#>  8 90            056            23      011      LEALES  TUCUMAN AR-T    Tucumán
#>  9 90            063            23      002      LULES   TUCUMAN AR-T    Tucumán
#> 10 90            070            23      004      MONTER~ TUCUMAN AR-T    Tucumán
#> 11 90            077            23      006      RIO CH~ TUCUMAN AR-T    Tucumán
#> 12 90            084            23      001      CAPITAL TUCUMAN AR-T    Tucumán
#> 13 90            091            23      010      SIMOCA  TUCUMAN AR-T    Tucumán
#> 14 90            098            23      017      TAFI D~ TUCUMAN AR-T    Tucumán
#> 15 90            105            23      016      TAFI V~ TUCUMAN AR-T    Tucumán
#> 16 90            112            23      014      TRANCAS TUCUMAN AR-T    Tucumán
#> 17 90            119            23      015      YERBA ~ TUCUMAN AR-T    Tucumán
#> # ... with 1 more variable: geometry <MULTIPOLYGON [°]>, and abbreviated
#> #   variable names 1: nomdepto_censo, 2: name_prov, 3: codprov_iso, 4: name_iso


# GRIDS AS IF THEY WHERE MAPS FOR {geofacet}

(grid_tucuman <- get_grid("TUCUMAN"))
#> Adding missing grouping variables: `name_provincia`
#>    name_provincia            name row col code
#> 1         TUCUMAN       BURRUYACU   1   4  013
#> 2         TUCUMAN         CAPITAL   2   4  001
#> 3         TUCUMAN     CHICLIGASTA   4   2  005
#> 4         TUCUMAN       CRUZ ALTA   2   5  012
#> 5         TUCUMAN        FAMAILLA   3   3  003
#> 6         TUCUMAN        GRANEROS   5   4  009
#> 7         TUCUMAN JUAN B. ALBERDI   5   3  007
#> 8         TUCUMAN        LA COCHA   6   3  008
#> 9         TUCUMAN          LEALES   3   5  011
#> 10        TUCUMAN           LULES   3   4  002
#> 11        TUCUMAN        MONTEROS   3   2  004
#> 12        TUCUMAN       RIO CHICO   4   3  006
#> 13        TUCUMAN          SIMOCA   4   4  010
#> 14        TUCUMAN  TAFI DEL VALLE   2   1  017
#> 15        TUCUMAN      TAFI VIEJO   2   2  016
#> 16        TUCUMAN         TRANCAS   1   3  014
#> 17        TUCUMAN     YERBA BUENA   2   3  015

geofacet::grid_preview(grid_tucuman, label = "name")
#> Note: You provided a user-specified grid. If this is a generally-useful
#>   grid, please consider submitting it to become a part of the geofacet
#>   package. You can do this easily by calling:
#>   grid_submit(__grid_df_name__)