Hay varios paquetes en R con funciones que permiten manipular información espacial con facilidad. El objetivo de esta clase es introducir algunos de ellos a fin de combinarlos con algunas de las herramientas que ya vimos, para hacer análisis geográfico y crear nuestros propios mapas.

Las presentes notas están basadas en:

Datos georreferenciados

Sería ideal contar con un cuerpo que consista en una representación de la tierra en escala a la hora de trabajar con datos geográficos. Sin embargo, esto no sería práctico, por lo que normalmente trabajamos con representaciones en 2 dimensiones, como son los mapas.

Para construir un mapa, primero necesitamos un modelo abstracto en 3 dimensiones del planeta:

  • esfera
  • elipsoide
  • geoide (una forma teórica de la Tierra determinada por la geodesia en la cual se toma como superficie teórica el nivel medio de los mares)
Fuente: GPS for Land Surveyors

Fuente: GPS for Land Surveyors

Proyecciones y distorsiones

  • Mercator: preserva ángulos
  • Sinusoidal: preserva áreas, pero distorsiona formas y direcciones
  • Equidistante cilíndrica: preserva distancias entre meridianos

Fuente: Wikipedia Fuente: Wikipedia Fuente: Wikipedia

Tipos de datos espaciales

  • Vectoriales: puntos, líneas, polígonos
  • Rasters: pixels, grillas
gsp.humboldt.edu

gsp.humboldt.edu

Palabras clave para consultas sobre datos espaciales:

  • Distancia
  • Largo
  • Area
  • Centroide
  • Igual
  • Disjunto
  • Intersecta
  • Toca
  • Cruza
  • Superpone
  • Contiene
  • Buffering

Paquete sf

El paquete sf permite combinar datos de tipo vectorial y atributos asociados a dicho espacio.

La implementación de los puntos, líneas y polígonos en este paquete se extienden para incorporar multipuntos, multilíneas, multipolígonos, etc.

Los datos geográficos siempre van a estar en el objeto llamado geometry.

  • bounding box:

  • EPSG (SRID): el sistema de coordenadas

Sistemas de coordenadas de referencia y proyecciones cartográficas: Sistema de números que definen ubicaciones sobre la superficie de la Tierra; funcionan como direcciones. El tipo más conocido es el que usa latitud y longitud. Existen muchísimas proyecciones distintas, cada una pensada para minimizar alguno de los tipos de distorsión.

Tipos de archivo

  • shapefiles: guarda la información en varios archivos distintos, que suelen ser combinados en un archivo .zip. Los nombres de las variables en un shapefile deben tener 10 caracteres o menos. Fue inventado por la empresa ESRI (los creadores del software ArcGIS), y a pesar de las incomodidades mencionadas es muy común.

  • GeoJSON: Es una alternativa más moderna; un estándar abierto que corrige los dos inconvenientes mencionados antes. Para nuestros ejercicios usaremos datos geográficos en este último formato.

  • dataframes con columnas lat-long: Los datos también pueden ser presentados en un dataframe común, con una variable referida a la latitud y otra a la longitud. Podemos utilizar la función st_as_sf para realizar una conversión a tipo sf, y st_set_crs para indicar el sistema de coordenadas de referencia. Por ejemplo:

base <- st_as_sf(base, coords = c('long','lat'))%>% 
  st_set_crs(4326)
LS0tCnRpdGxlOiBNYXBhcwpzdWJ0aXRsZTogRXhwbGljYWNpw7NuCmRhdGU6ICIiCm91dHB1dDoKICBodG1sX25vdGVib29rOiAKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlIAotLS0KCkhheSB2YXJpb3MgcGFxdWV0ZXMgZW4gUiBjb24gZnVuY2lvbmVzIHF1ZSBwZXJtaXRlbiBtYW5pcHVsYXIgaW5mb3JtYWNpw7NuIGVzcGFjaWFsIGNvbiBmYWNpbGlkYWQuIEVsIG9iamV0aXZvIGRlIGVzdGEgY2xhc2UgZXMgaW50cm9kdWNpciBhbGd1bm9zIGRlIGVsbG9zIGEgZmluIGRlIGNvbWJpbmFybG9zIGNvbiBhbGd1bmFzIGRlIGxhcyBoZXJyYW1pZW50YXMgcXVlIHlhIHZpbW9zLCBwYXJhIGhhY2VyIGFuw6FsaXNpcyBnZW9ncsOhZmljbyB5IGNyZWFyIG51ZXN0cm9zIHByb3Bpb3MgbWFwYXMuICAKCkxhcyBwcmVzZW50ZXMgbm90YXMgZXN0w6FuIGJhc2FkYXMgZW46IAoKLSBbc2YgdmlnbmV0dGVzXShodHRwczovL2NyYW4uci1wcm9qZWN0Lm9yZy93ZWIvcGFja2FnZXMvc2YvdmlnbmV0dGVzL3NmMS5odG1sKQotIFtsaWJybyBfQ2llbmNpYSBkZSBkYXRvcyBwYXJhIGdlbnRlIHNvY2lhYmxlXywgZGUgQW50b25pbyBWYXpxdWV6IEJydXN0XShodHRwczovL2JpdHNhbmRicmlja3MuZ2l0aHViLmlvL2NpZW5jaWFfZGVfZGF0b3NfZ2VudGVfc29jaWFibGUvaW5mb3JtYWNpb24tZ2VvZ3JhZmljYS15LW1hcGFzLmh0bWwpCgojIyMgRGF0b3MgZ2VvcnJlZmVyZW5jaWFkb3MKClNlcsOtYSBpZGVhbCBjb250YXIgY29uIHVuIGN1ZXJwbyBxdWUgY29uc2lzdGEgZW4gdW5hIHJlcHJlc2VudGFjacOzbiBkZSBsYSB0aWVycmEgZW4gZXNjYWxhIGEgbGEgaG9yYSBkZSB0cmFiYWphciBjb24gZGF0b3MgZ2VvZ3LDoWZpY29zLiBTaW4gZW1iYXJnbywgZXN0byBubyBzZXLDrWEgcHLDoWN0aWNvLCBwb3IgbG8gcXVlIG5vcm1hbG1lbnRlIHRyYWJhamFtb3MgY29uIHJlcHJlc2VudGFjaW9uZXMgZW4gMiBkaW1lbnNpb25lcywgY29tbyBzb24gbG9zIG1hcGFzLiAgCgpQYXJhIGNvbnN0cnVpciB1biBtYXBhLCBwcmltZXJvIG5lY2VzaXRhbW9zIHVuIG1vZGVsbyBhYnN0cmFjdG8gZW4gMyBkaW1lbnNpb25lcyBkZWwgcGxhbmV0YToKCi0gZXNmZXJhCi0gZWxpcHNvaWRlCi0gZ2VvaWRlICh1bmEgZm9ybWEgdGXDs3JpY2EgZGUgbGEgVGllcnJhIGRldGVybWluYWRhIHBvciBsYSBnZW9kZXNpYSBlbiBsYSBjdWFsIHNlIHRvbWEgY29tbyBzdXBlcmZpY2llIHRlw7NyaWNhIGVsIG5pdmVsIG1lZGlvIGRlIGxvcyBtYXJlcykKCiFbX0Z1ZW50ZTogR1BTIGZvciBMYW5kIFN1cnZleW9yc19dKGltZy9HZW9pZC5wbmcpe3dpZHRoPTUwMH0KCgojIyMgUHJveWVjY2lvbmVzIHkgZGlzdG9yc2lvbmVzCgotIE1lcmNhdG9yOiBwcmVzZXJ2YSDDoW5ndWxvcwotIFNpbnVzb2lkYWw6IHByZXNlcnZhIMOhcmVhcywgcGVybyBkaXN0b3JzaW9uYSBmb3JtYXMgeSBkaXJlY2Npb25lcwotIEVxdWlkaXN0YW50ZSBjaWzDrW5kcmljYTogcHJlc2VydmEgZGlzdGFuY2lhcyBlbnRyZSBtZXJpZGlhbm9zCgohW19GdWVudGU6IFdpa2lwZWRpYV9dKGltZy9tZXJjYXRvci5qcGcpe3dpZHRoPTI1MH0gIVtfRnVlbnRlOiBXaWtpcGVkaWFfXShpbWcvc2ludXNvaWRhbC5qcGcpe3dpZHRoPTI1MH0gIVtfRnVlbnRlOiBXaWtpcGVkaWFfXShpbWcvZXF1aXJyZWN0YW5ndWxhci5qcGcpe3dpZHRoPTI1MH0KCiMjIyBUaXBvcyBkZSBkYXRvcyBlc3BhY2lhbGVzCgotIFZlY3RvcmlhbGVzOiBwdW50b3MsIGzDrW5lYXMsIHBvbMOtZ29ub3MKLSBSYXN0ZXJzOiBwaXhlbHMsIGdyaWxsYXMKCiFbZ3NwLmh1bWJvbGR0LmVkdV0oaW1nL3ZlY3RvcmlhbGVzX3lfcmFzdGVyLnBuZyl7d2lkdGg9NTAwfQoKUGFsYWJyYXMgY2xhdmUgcGFyYSBjb25zdWx0YXMgc29icmUgZGF0b3MgZXNwYWNpYWxlczoKCi0gRGlzdGFuY2lhCi0gTGFyZ28KLSBBcmVhCi0gQ2VudHJvaWRlCi0gSWd1YWwKLSBEaXNqdW50bwotIEludGVyc2VjdGEKLSBUb2NhCi0gQ3J1emEKLSBTdXBlcnBvbmUKLSBDb250aWVuZQotIEJ1ZmZlcmluZwoKIyMjIFBhcXVldGUgc2YKCkVsIHBhcXVldGUgc2YgcGVybWl0ZSBjb21iaW5hciBkYXRvcyBkZSB0aXBvIHZlY3RvcmlhbCB5IGF0cmlidXRvcyBhc29jaWFkb3MgYSBkaWNobyBlc3BhY2lvLiAgIAoKTGEgaW1wbGVtZW50YWNpw7NuIGRlIGxvcyBwdW50b3MsIGzDrW5lYXMgeSBwb2zDrWdvbm9zIGVuIGVzdGUgcGFxdWV0ZSBzZSBleHRpZW5kZW4gcGFyYSBpbmNvcnBvcmFyIG11bHRpcHVudG9zLCBtdWx0aWzDrW5lYXMsIG11bHRpcG9sw61nb25vcywgZXRjLgoKIVtdKGltZy9mb3JtYXMucG5nKXt3aWR0aD01MDB9CgoKTG9zIGRhdG9zIGdlb2dyw6FmaWNvcyBzaWVtcHJlIHZhbiBhIGVzdGFyIGVuIGVsIG9iamV0byBsbGFtYWRvIGBnZW9tZXRyeWAuCgohW10oaW1nL3NhbGlkYV9zZi5wbmcpCgotIGJvdW5kaW5nIGJveDoKCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdndGhlbWVzKQpsaWJyYXJ5KHNmKQoKcmFkaW9zIDwtIHN0X3JlYWQoIi4uL2Z1ZW50ZXMvQ0FCQV9yYy5nZW9qc29uIikKYGBgCgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpiYm94IDwtIHN0X2Jib3gocmFkaW9zICU+JSBmaWx0ZXIoQkFSUklPID09ICJSRVRJUk8iKSkKCmdncGxvdChkYXRhID0gcmFkaW9zICU+JSBmaWx0ZXIoQkFSUklPID09ICJSRVRJUk8iKSkrCiAgZ2VvbV9zZihhZXMoZmlsbD1SQURJT19JRCkpKwogIGdlb21fcmVjdCh4bWluPWJib3gkeG1pbiAsIHhtYXg9YmJveCR4bWF4LCB5bWluPWJib3gkeW1pbiwgeW1heD1iYm94JHltYXgsIGNvbG9yPSJyZWQiLCBmaWxsPSJ0cmFuc3BhcmVudCIpKwogIHRoZW1lX3ZvaWQoKSsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAnbm9uZScpCmBgYAoKLSBFUFNHIChTUklEKTogZWwgc2lzdGVtYSBkZSBjb29yZGVuYWRhcwoKU2lzdGVtYXMgZGUgY29vcmRlbmFkYXMgZGUgcmVmZXJlbmNpYSB5IHByb3llY2Npb25lcyBjYXJ0b2dyw6FmaWNhczoKU2lzdGVtYSBkZSBuw7ptZXJvcyBxdWUgZGVmaW5lbiB1YmljYWNpb25lcyBzb2JyZSBsYSBzdXBlcmZpY2llIGRlIGxhIFRpZXJyYTsgZnVuY2lvbmFuIGNvbW8gZGlyZWNjaW9uZXMuIEVsIHRpcG8gbcOhcyBjb25vY2lkbyBlcyBlbCBxdWUgdXNhIGxhdGl0dWQgeSBsb25naXR1ZC4gRXhpc3RlbiBtdWNow61zaW1hcyBwcm95ZWNjaW9uZXMgZGlzdGludGFzLCBjYWRhIHVuYSBwZW5zYWRhIHBhcmEgbWluaW1pemFyIGFsZ3VubyBkZSBsb3MgdGlwb3MgZGUgZGlzdG9yc2nDs24uCgojIyMgVGlwb3MgZGUgYXJjaGl2bwoKLSBzaGFwZWZpbGVzOiBndWFyZGEgbGEgaW5mb3JtYWNpw7NuIGVuIHZhcmlvcyBhcmNoaXZvcyBkaXN0aW50b3MsIHF1ZSBzdWVsZW4gc2VyIGNvbWJpbmFkb3MgZW4gdW4gYXJjaGl2byAuemlwLiBMb3Mgbm9tYnJlcyBkZSBsYXMgdmFyaWFibGVzIGVuIHVuIHNoYXBlZmlsZSBkZWJlbiB0ZW5lciAxMCBjYXJhY3RlcmVzIG8gbWVub3MuIEZ1ZSBpbnZlbnRhZG8gcG9yIGxhIGVtcHJlc2EgRVNSSSAobG9zIGNyZWFkb3JlcyBkZWwgc29mdHdhcmUgQXJjR0lTKSwgeSBhIHBlc2FyIGRlIGxhcyBpbmNvbW9kaWRhZGVzIG1lbmNpb25hZGFzIGVzIG11eSBjb23Dum4uCgotIEdlb0pTT046IEVzIHVuYSBhbHRlcm5hdGl2YSBtw6FzIG1vZGVybmE7IHVuIGVzdMOhbmRhciBhYmllcnRvIHF1ZSBjb3JyaWdlIGxvcyBkb3MgaW5jb252ZW5pZW50ZXMgbWVuY2lvbmFkb3MgYW50ZXMuIFBhcmEgbnVlc3Ryb3MgZWplcmNpY2lvcyB1c2FyZW1vcyBkYXRvcyBnZW9ncsOhZmljb3MgZW4gZXN0ZSDDumx0aW1vIGZvcm1hdG8uCgotIGRhdGFmcmFtZXMgY29uIGNvbHVtbmFzIGxhdC1sb25nOiBMb3MgZGF0b3MgdGFtYmnDqW4gcHVlZGVuIHNlciBwcmVzZW50YWRvcyBlbiB1biBkYXRhZnJhbWUgY29tw7puLCBjb24gdW5hIHZhcmlhYmxlIHJlZmVyaWRhIGEgbGEgbGF0aXR1ZCB5IG90cmEgYSBsYSBsb25naXR1ZC4gUG9kZW1vcyB1dGlsaXphciBsYSBmdW5jacOzbiBgc3RfYXNfc2ZgIHBhcmEgcmVhbGl6YXIgdW5hIGNvbnZlcnNpw7NuIGEgdGlwbyBzZiwgeSBgc3Rfc2V0X2Nyc2AgcGFyYSBpbmRpY2FyIGVsIHNpc3RlbWEgZGUgY29vcmRlbmFkYXMgZGUgcmVmZXJlbmNpYS4gUG9yIGVqZW1wbG86CgpgYGAgcgpiYXNlIDwtIHN0X2FzX3NmKGJhc2UsIGNvb3JkcyA9IGMoJ2xvbmcnLCdsYXQnKSklPiUgCiAgc3Rfc2V0X2Nycyg0MzI2KQpgYGAKCgo=