Generando nuestros datasets de coordenadas para graficar en R
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.
- Graficando mapas utilizando R: Introducción
- Explorando las divisiones administrativas: Obtener mapas de Natural Earth o GADM y preparar nuestro ambiente de trabajo
- Generando nuestros datasets de coordenadas: Trabajar con la tabla de atributos y las herramientas para vértices de QGIS, utilizando mapas de Natural Earth
- Usando un dataset personalizado para graficar mapas: Código de R para graficar, haciendo uso de mapas de GADM
En este artículo:
- 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.
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.
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'
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.
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.
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.
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.
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…
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.
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.
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.