Generando nuestros datasets de coordenadas para graficar en R

Innovation Lab Galileo
6 min readJun 24, 2021

Este artículo es el tercero de una serie dedicada a generar nuestros propios datasets para graficar mapas en R. Puedes encontrar todos los artículos en los siguientes enlaces.

En este artículo:

Los mapas están compuestos por vértices
  • Usaremos expresiones para seleccionar datos.
  • Obtendremos vértices del mapa.
  • Generaremos un archivo CSV listo para usarse en R.

Ahora que tenemos QGIS instalado y ya contamos con algunos shapefiles, seleccionaremos algunos datos de interés para generar un dataset compatible con ggplot2.

Seleccionando datos de interés

Como en el artículo anterior, cargamos nuestro shapefile usando Layer > Add Layer > Add Vector Layer…, y luego abrimos la tabla de atributos presionando la tecla F6.

En la parte superior de la tabla de atributos, haremos clic en la opción “Select features using an expression”. Al hacerlo abriremos la ventana “Select by Expression”, donde podremos seleccionar la información que nos interese.

Opción ubicada en la barra superior
En esta ventana podremos construir expresiones para seleccionar distintos países

El panel central nos muestra una gran cantidad de opciones que podemos usar para construir nuestra expresión. Hacer clic en “Fields and Values” permitirá que se desplieguen todas las columnas o campos que antes vimos en la tabla de atributos, aquí seleccionaremos iso_a2. Luego, en el panel derecho, podemos hacer clic en “All unique” o en “10 samples” para mostrar una pequeña porción del contenido de esa columna.

Fields and Values nos permite usar los campos de la tabla de atributos

Se recomienda usar iso_a2 para no tener problema con la ortografía del nombre del país; sin embargo, si se prefiriera usar el nombre del país y se sabe cómo se escribe en inglés, puede usarse el campo admin. Esto debe hacerse con cuidado ya que, si se utiliza name_es (o cualquier otra de las columnas name) se obtendrán, en español, los nombres de los estados, departamentos, etc., en lugar de los nombres de los países, que es el dato que queremos en este momento.

En este ejemplo, quiero generar un mapa de Centroamérica. Entonces, en el panel izquierdo, escribo la siguiente expresión. Como admin tiene el nombre de los países en inglés, debo fijarme que Belice se escribe con ‘z’ y Panamá se escribe sin tilde.

admin = 'Guatemala' OR admin = 'Belize' OR admin = 'El Salvador' OR admin = 'Honduras' OR admin = 'Nicaragua' OR admin = 'Costa Rica' OR admin = 'Panama'
Escribo mi expresión en el panel izquierdo

Una vez escribí mi expresión en el panel izquierdo, presiono el botón “Select Features” para seleccionar aquellas entradas de la tabla que coinciden con este criterio. Luego de hacer esto, regreso a la ventana principal de QGIS y podré ver resaltado lo que seleccioné con dicha expresión.

Acercamiento a mis atributos resaltados

Obtener vértices para mi dataset

Las regiones representadas en QGIS son llamadas polígonos y tienen múltiples vértices. Mientras más detallado sea el mapa, por ejemplo los obtenidos de GADM, mayor será la cantidad de vértices. A continuación, vamos a generar un archivo que contenga los vértices para poder utilizarlos en R y poder así graficar nuestro mapa.

Una vez que se han seleccionado las regiones a exportar, seleccionamos en el menú principal Vector > Geometry Tools > Extract Vertices.

Extraer vértices

En la ventana que se abre, bajo “Input layer”, nos aseguramos que la opción “Selected features only” esté seleccionada, de lo contrario exportaríamos vértices para todo el mapa en lugar de solo exportar para nuestra región objetivo. Al estar listos, hacemos clic en “Run” y, tras un momento de espera, se generan nuestros vértices. Si trabajamos con muchas regiones, como sería el caso de tratar de exportar el mundo entero en una sola operación, este proceso podría tardar varios minutos.

Opcionalmente, en “Vertices” podemos hacer clic en el botón de la derecha y elegir la opción “Save to File…” para guardar estos vértices para uso futuro.

Nos aseguramos que Selected features only esté seleccionado

Al finalizar, notaremos que en el panel “Layers” ubicado en el lado izquierdo de la ventana principal, aparece una nueva capa llamada Vertices, en donde se muestran estos como puntos en el mapa.

Resultado de generar los vértices

Si queremos explorar la información de los vértices, hacemos clic sobre el nombre de la capa “Vertices” y presionamos F6 para obtener la tabla de atributos. Algunas diferencias que notaremos será que, mientras antes teníamos una sola entrada por cada región (departamento, estado, etc.), ahora tenemos una por cada vértice que delimita esa región. Adicionalmente, se crearon las columnas vertex_index, vertex_part, vertex_part_ring, y vertex_part_index que serán de suma importancia al momento de graficar en R.

Para poder continuar, generaremos un archivo separado por comas (CSV, por sus siglas en inglés). Para hacerlo, vamos al panel “Layers”, hacemos clic derecho sobre “Vertices” y seleccionamos Export > Save Features As…

Necesitamos guardar los vértices en un archivo CSV

En la ventana “Save Vector Layer As…”, elegimos el formato “Comma Separated Value [CSV]”, seleccionamos la ubicación y nombre del archivo a guardar, y marcamos los campos que queremos exportar. Para hacer nuestro archivo lo más liviano posible, se recomienda hacer clic en “Deselect All” y luego activar únicamente los siguiente campos:

  • name: Contiene el nombre de la región (departamentos, estados, etc.)
  • admin: Nombre del país al cuál la región pertenece
  • vertex_part y vertex_part_ring: Nos ayudarán a identificar islas y territorios que no están conectados directamente a una región (enclaves y exclaves)
  • vertex_part_index: Indica en qué orden deben unirse las coordenadas para dibujarse cada región

Si deseamos conservar algo de información adicional podemos hacerlo, pero el requisito mínimo para R son las columnas previamente mostradas.

En la parte de abajo, en “Layer Options” elegimos en el menú “GEOMETRY” la opción AS_XY. Finalizamos haciendo clic en “OK” y esperamos a que QGIS genere nuestro archivo.

Configuraciones a realizar para poder exportar

Al finalizar, se genera un archivo CSV con siete columnas que me servirán para graficar. En el caso de mi mapa de Centroamérica, tengo 19722 filas. En países con fronteras o costas más detalladas, como Canadá por ejemplo, esta cantidad puede aumentar significativamente. Si exploro mi CSV, notaré que la mayoría de entradas dicen 0 tanto en vertex_part como en vertex_ring, este dato solo cambia en las regiones que tienen alguna isla, enclave, o exclave.

Explorando el archivo CSV generado

En conclusión

Cuando cargamos un mapa hay mucha información a nuestra disposición; sin embargo, para facilitarnos el trabajo futuro, debemos elegir solo aquellos datos relevantes para nuestras gráficas.

En el siguiente artículo, cargaremos este CSV en R y finalmente graficaremos nuestro mapa personalizado. Trabajaremos también con un dataset generado a partir de GADM para ver la diferencia entre los campos que este y Natural Earth poseen.

--

--