Los paquetes de R para GIS más utilizados y descargados

La relación entre R y los Sistemas de Información Geográfica es larga. R se ha utilizado para realizar análisis de datos espaciales desde los primeros días de R.

En esta entrada vamos a conocer qué paquetes de R para GIS son los más populares y utilizados. Atento, porque aunque ya trabajes con R, quizá no conozcas alguno o no estés utilizando el adecuado. Además, te mostramos algunas sugerencias y paquetes alternativos.

Este código toma la lista de los más de 200 paquetes relacionados con GIS que aparecen en la Vista de tareas CRAN: Análisis de datos espaciales.

Para disponer de los paquetes de R para GIS ordenados por número de descargas mensuales, se ha utilizado este código de R, en el que se han eliminado aquellos con cero descargas en el último mes (12 de agosto – 12 de septiembre):

# Instalación y carga de librerías
install.packages("rvest")
install.packages("dplyr")
install.packages("cran_downloads")

library(rvest)
library(dplyr)

# Lectura del HTML de la web de Spatial de CRAN
url_de_consulta <- read_html("https://cran.r-project.org/web/views/Spatial.html")

# Se aíslan todos los enlaces de la página (aquellos que tienen una etiqueta <a>)
enlaces <-  html_text(html_nodes(url_de_consulta, xpath = "/html/body/ul/li/a"))

# Se crean una data.frame vacío dónde almacenar los paquetes y el nº descargas en el último mes
info <- data.frame()

# Se recorre cada enlace de los encontrados y se busca en CRAN las descargas de dicho paquete en el último mes.
#   Aquellos enlaces que no correspondan con un paquete de R devolverán error. Para controlar dicho error
#   se emplea un tryCatch y no se hace nada cuando se detecte.
for (paquete in enlaces) {
  data <- tryCatch({
    cranlogs::cran_downloads(paquete, when = "last-month") %>%  group_by(package) %>%
      summarize(count = sum(count)) %>%
      arrange(desc(count))
  },
  warning = function(warn) {
    ## print(paste("WARNING: ", warn))
  },
  error = function(err) {
    ## print(paste("ERROR: ", err))
  },
  finally = function(f) {
    ## print(paste("error: ", e))
  })
  # Almacenamos la información obtenida en el data.frame
  info <- rbind(info, as.data.frame(data))
}

# Se eliminan los duplicados
info <- distinct(info)

# Se ordena por n_descargas
info <- info[order(-info$count),]

# Se eliminan aquellas filas que tiene 0 descargas
info <- info[info$count != 0,]

# Ver contenido obtenido
print(info)

# Se exporta a CSV el data.frame
write.csv(info,"info.csv", row.names = TRUE)

1. ggplot2. Nº de descargas: 2.450.808

ggplot2 ocupa la primera posición y es el más descargado.

Este paquete sirve para crear visualizaciones de datos elegantes utilizando la «gramática de los gráficos».

Un sistema para crear gráficos ‘declarativamente’, basado en «La gramática de los gráficos». Usted proporciona los datos, le dice a ‘ggplot2’ cómo asignar variables a la estética, qué primitivas gráficas usar y se ocupa de los detalles.

2. sf: Simple Features for R. Nº de descargas: 1.663.015

El segundo en el podium (pero el primero propiamente para trabajar con datos espaciales) es el paquete sf. sf es el paquete para manipular datos espaciales más importante, que proporciona acceso a Simple Features para R.

Se une a ‘GDAL’ para leer y escribir datos, a ‘GEOS’ para operaciones geométricas y a ‘PROJ’ para conversiones de proyección y transformaciones de datos.

paquetes de R para GIS - paquete sf
(Illustration (c) by Allison Horst)

Sugerencia: mapedit proporciona un widget brillante de R basado en Leaflet para editar o crear geometrías sf.

3. RColorBrewer: Paletas de ColorBrewer. Nº de descargas: 652.852

RColorBrewer proporciona esquemas de color tanto para mapas como para gráficos. Este es el motivo por el que es el paquete más descargado de la selección, ya que no es un paquete geográfico propiamente dicho.

Diseñado por Cynthia Brewer como se describe en http://colorbrewer2.org

paquetes de R para GIS

4. sp: Clases y métodos para datos espaciales. Nº de descargas: 373.995

sp: este longevo paquete nos proporciona clases y métodos para tratar con datos espaciales, por ejemplo crear mapas a partir de datos, realizar selección espacial, así como métodos para recuperar coordenadas, impresión, resumen, etc.

Es un paquete muy extendido y se integra con muchos otros paquetes, incluyendo el paquete raster. Sin embargo, el paquete sf es más fácil de aprender y reemplazará paulatinamente a sp, por lo que se recomienda utilizar el paquete sf.

5. viridis. Nº de descargas: 301.395

viridis también proporciona paletas de colores diseñadas teniendo en cuenta el daltonismo y la impresión en escala de grises.

paquetes de R para GIS

6. RPostgreSQL.  Nº de descargas: 219.243

RPostgreSQL consiste en una interfaz de base de datos y controlador de la base de datos libre más popular ‘PostgreSQL’ para ‘R’. Este paquete proporciona un controlador compatible con la interfaz de base de datos para ‘R’ para acceder a los sistemas de base de datos ‘PostgreSQL’.

Alternativas:

  • sf también proporciona una interfaz a PostGIS, tanto para lectura como para escritura, a través de GDAL.
  • rpostgis: Proporciona una interfaz entre R y la base de datos ‘PostGIS’ para transferir datos espaciales de forma transparente. Tanto los datos vectoriales como los datos ráster son compatibles con la lectura y escritura.

7. Terra. Análisis de datos espaciales. Nº de descargas: 197.999

Terra proporciona métodos para el análisis de datos espaciales con datos raster y vectoriales. Los métodos ráster permiten la manipulación de datos de bajo nivel, así como el cálculo global, local, zonal y focal de alto nivel. Los métodos de predicción e interpolación facilitan el uso de modelos de tipo regresión (interpolación, aprendizaje automático) para la predicción espacial, incluso con datos de teledetección. Admite el procesamiento de archivos muy grandes. Consulta el manual y los tutoriales aquí para comenzar.

‘terra’ es un reemplazo para el paquete ‘raster’ ya que es más simple, más funcionalidades y más rápido.

paquetes de R para GIS

8. raster. Nº de descargas: 191.360

El paquete raster permite la lectura, escritura, manipulación, análisis y modelado de datos espaciales raster. El paquete implementa funciones básicas y de alto nivel. Además soporta el procesamiento de archivos muy grandes. También hay soporte para operaciones de datos vectoriales como intersecciones.

Como hemos comentado en el punto anterior su reemplazo es terra, por lo que te aconsejamos utilizar terra.

9. deldir. Nº de descargas: 187.042

El paquete deldir Delaunay Triangulation and Dirichlet (Voronoi) Tessellation sirve para realizar geoestadística. Calcula la triangulación de Delaunay y la teselación de Dirichlet o Voronoi (con respecto a todo el plano) de un conjunto de puntos planos.

10. interp. Nº de descargas: 183.801

interp: métodos de interpolación. La interpolación de datos bivariados en cuadrículas regulares e irregulares, ya sea lineal o usando splines, es la parte principal de este paquete.

11. nlme. Nº de descargas: 151.435

El paquete nlme: Linear and Nonlinear Mixed Effects Models ajusta y compara modelos gaussianos de efectos mixtos lineales y no lineales.

12. classInt. Nº de descargas: 132.448

El paquete classInt proporciona funciones para elegir intervalos de clase para cartografía temática.

13. s2. Nº de descargas: 109.109

s2 es un paquete que ofrece operadores de geometría esférica utilizando la biblioteca de geometría S2.

Proporciona enlaces R para la librería  s2 de Google para cálculos geométricos en la esfera terrestre.

14. Leaflet. Nº de descargas: 105.382

El paquete leaflet nos proporcionan métodos para crear mapas web interactivos con la biblioteca JavaScript ‘Leaflet’.

Sugerencia:

  • En esta entrada hablamos en profundidad de la integración de Leaflet en R.

15. wk.  Nº de descargas 91.584

wk proporciona una API mínima de R y C++ para analizar representaciones binarias y de texto conocido (well know) de geometrías hacia y desde formatos nativos de R. El wkb es compacto y rápido de analizar; el wkt es legible por humanos y es útil para escribir pruebas.

16. maps. Nº de descargas: 83.540

maps es un paquete para visualizar mapas y proporciona acceso (con mapdata y mapproj) a bases de datos geográficas.

17. rsample. Nº de descargas: 82.319

rsample: infraestructura general de remuestreo.  Clases y funciones para crear y resumir diferentes tipos de objetos de remuestreo.

18. mgcv. Nº de descargas: 79.647

mgcv es un paquete que sirve para crear, en el ámbito de la física y la probabilidad, un Campo aleatorio de Markov, Red Markov o modelo gráfico no dirigido. Se trata de un conjunto de variables aleatorias que poseen la propiedad de Markov descrito por un grafo no dirigido.

19. shapefiles. Nº de descargas: 50.454

shapefiles lee y escribe  shapefiles de ESRI ArcGIS/ArcView

20. lwgeom. Nº de descargas: 49.718

lwgeom se puede usar para facilitar el manejo y el informe de errores de topología y problemas de validez de geometría en objetos sf.

21. Stars. Nº de descargas: 49.058

stars es un paquete que proporciona datos espacio-temporales en forma de matrices densas, siendo el espacio y el tiempo las dimensiones de la matriz. Los datos raster recientes, como las imágenes de satélite, modelos climáticos o los datos de pronóstico del tiempo, que no caben en el almacenamiento local necesitan otro tipo de tratamiento. Utiliza para ello el formato NetCDF.

22. vegan: Community Ecology Package. Nº de descargas: 46.656

vegan es un paquete creado para métodos de ordenación, análisis de diversidad y otras funciones útiles para ecología.

23. ade4: Analysis of Ecological Data. Nº de descargas: 38.421

ade4 son herramientas para el análisis de datos multivariantes, para métodos exploratorios y euclidianos en ciencias ambientales. Se proporcionan varios métodos para el análisis de una tabla (por ejemplo, análisis de componentes principales, análisis de correspondencia), dos tablas (por ejemplo, análisis de coinertia, análisis de redundancia) y tres tablas.

24. mapview. Nº de descargas: 38.266

mapview es un paquete alternativo para crear rápidamente visualizaciones interactivas de datos espaciales con o sin mapas de fondo. Los atributos de los objetos espaciales son completamente consultables a través de ventanas emergentes.

25. fields: Herramientas para datos espaciales. Nº de descargas: 37.869

Para el ajuste de curvas, superficies y funciones con énfasis en splines, datos espaciales, geoestadística y estadísticas espaciales.

26. ggmap: Spatial Visualization with ggplot2. Nº de descargas: 36.063

En ggmap encontramos una colección de funciones para visualizar datos espaciales y modelos sobre mapas estáticos online (por ejemplo, Google Maps, Stamen Maps u OpenStreetMaps). Además incluye funciones de geolocalización y enrutamiento.

Paquetes complementarios:

  • ggsn proporciona flechas y escalas del norte para dichos mapas.
  • OpenStreetMap nos proporciona acceso a las imágenes raster de OSM y osmar proporciona una infrastructura de acceso a los datos de OpenStreetMap de diferentes fuentes.

27. tmap. Mapas temáticos. Nº de descargas: 34.627

Los mapas temáticos son mapas geográficos en los que se visualizan distribuciones de datos espaciales. El paquete tmap ofrece un enfoque flexible, basado en capas y fácil de usar para crear mapas temáticos, como coropletas y mapas de burbujas.

28. Geosphere. Nº de descargas: 32.764

geosphere permite que se realicen cálculos de distancia y área de nuestros datos espaciales en coordenadas geográficas.

29. spdep: Spatial Dependence: Weighting Schemes, Statistics. Nº de descargas: 26.988

El paquete spdep proporciona una colección de funciones para crear objetos de matriz de pesos espaciales a partir de ‘contigüidades’ de polígonos, a partir de patrones de puntos por distancia y teselaciones, para resumir estos objetos y para permitir su uso en análisis de datos espaciales. Además de una colección de pruebas para ‘autocorrelación’ espacial que incluye ‘Morans I’.

30. mapproj. Proyecciones de mapas. Nº de descargas: 26.252

mapproj convierte la latitud/longitud en coordenadas proyectadas.

Listado completo

Si quieres aprender a trabajar con R para manipular datos espaciales, realizar geoestadística, análisis espacial y otras muchas cosas, inscríbete ya en el curso online de R y SIG.

A continuación los paquetes de R para GIS ordenados por número de descargas (a fecha 12 de septiembre de 2022):

package Nº de descargas mensuales
92 ggplot2 2450808
1 sf 1663015
87 RColorBrewer 652852
2 sp 373995
88 viridis 301395
27 RPostgreSQL 219243
7 terra 197999
8 raster 191360
140 deldir 187042
141 interp 183801
174 nlme 151435
85 classInt 132448
63 s2 109109
100 leaflet 105382
12 wk 91584
22 maps 83540
81 rsample 82319
158 mgcv 79647
21 shapefiles 50454
73 lwgeom 49718
3 stars 47752
191 vegan 46656
185 ade4 38421
99 mapview 38266
124 fields 37869
103 ggmap 36063
90 tmap 34627
70 geosphere 32764
153 spdep 26988
24 mapproj 26252
113 spatial 24686
102 RgoogleMaps 23804
11 ncdf4 18179
119 gstat 17310
4 spacetime 15909
5 spatstat 14447
190 pastecs 14385
48 tigris 12116
23 mapdata 11881
47 tidycensus 10297
43 rnaturalearth 8776
84 rasterVis 8702
15 geojsonio 8419
77 exactextractr 8315
112 splancs 8182
155 spatialreg 7645
93 ggspatial 7315
14 geojson 7263
122 automap 7132
52 osmdata 6302
120 geoR 5441
68 rmapshaper 5260
49 rgbif 5219
18 RNetCDF 4856
142 MBA 4236
189 adehabitatMA 3893
145 tgp 3884
188 adehabitatLT 3433
95 PBSmapping 3209
19 lidR 3200
54 OpenStreetMap 3181
139 sgeostat 3060
69 gdistance 2956
166 spaMM 2836
186 adehabitatHR 2501
16 wellknown 2394
89 rcartocolor 2374
177 splm 2355
106 cartogram 2319
101 mapdeck 2252
104 ggsn 1914
65 gdalUtilities 1848
154 rgeoda 1804
44 cshapes 1770
50 geonames 1746
182 spgwr 1559
55 giscoR 1481
42 rgee 1460
45 marmap 1415
75 areal 1397
184 GWmodel 1336
10 geometa 1324
105 mapedit 1323
26 rpostgis 1235
127 spBayes 1181
17 ows4R 1178
97 GEOmap 1174
200 landscapemetrics 1163
164 sparr 1150
60 mapSpain 1140
66 geos 1137
165 CARBayes 1100
96 PBSmodelling 1061
25 gmt 1055
131 SpatialExtremes 1043
30 rgrass7 1041
193 ncf 1033
31 RSAGA 1022
67 libgeos 1005
175 spmoran 965
37 link2GI 950
146 SSN 924
130 FRK 921
91 mapsf 912
178 spsur 911
107 geogrid 888
6 inlmisc 879
156 SpatialEpi 873
38 geosapi 858
176 sphet 804
128 ramps 780
187 adehabitatHS 775
196 ModelMap 762
78 spsurvey 757
53 osmextract 752
72 trip 725
167 PReMiuM 723
118 dbmss 717
110 statebins 714
35 whitebox 699
9 gdalcubes 697
138 mlr3spatiotempcv 696
40 geonapi 695
94 mapmisc 691
58 RCzechia 688
117 ads 672
149 DCluster 667
123 intamap 641
173 NetLogoR 632
80 spatialsample 627
132 spTimer 622
172 synthACS 612
144 regress 605
74 landsat 604
197 SpatialPosition 603
137 sperrorest 589
179 spatialprobit 576
157 smerc 571
108 micromap 568
79 Spbsampling 566
59 rgugik 562
148 RSurvey 562
109 recmap 561
116 ecespa 560
168 spBayesSurv 548
36 RPyGeo 543
98 geomapdata 538
134 SpatialTools 538
71 magclass 528
56 chilemapas 518
115 smacpod 514
159 hglm 512
147 ipdw 509
82 MBHdesign 508
32 Rsagacmd 495
114 spatgraphs 492
133 rtop 492
20 rLiDAR 491
125 LatticeKrig 483
57 geouy 480
195 siplab 470
199 ngspatial 462
126 autoFRK 461
160 seg 460
183 gwrr 450
192 tripEstimation 449
194 spind 444
143 spatialCovariance 443
135 ExceedanceTools 442
136 gear 441
163 lctools 438
28 postGIStools 435
150 DClusterm 421
170 rakeR 420
180 ProbitSpatial 409
151 rflexscan 402
129 geospt 396
121 vardiag 391
29 rgrass 384
152 FlexScan 381
171 sms 373
76 qualmap 363
181 starma 342
198 Watersheds 336
162 OasisR 321
169 spselect 312
64 gdalUtils 299
13 wkutils 290
161 divseg 284
83 SpotSampling 266
33 RQGIS 135