Ahora que todavía está el plazo abierto de elección de centro escolar en Euskadi, es bueno momento para rescatar estas visualizaciones que hicimos en verano. Un ejemplo más de la necesidad de abrir datos abiertos.
Por increíble que parezca no existe un mapa de cómo se dibujan los contornos que sirven para asignar puntos para acceder a cada centro escolar en Euskadi. Hay una descripción en pdf de qué secciones censales y distritos corresponten a cada centro, hay una aplicación para calcular los puntos en base a una dirección, pero no existe el mapa.
Hemos analizado el sistema de zonas que tiene asignado cada centro para otorgar los puntos por cercanía a la hora de adjudicar las plazas escolares. Hemos dibujado dos zonas por cada centro: una que asigna 5 puntos (naranja fuerte) y otra que asigna 2 puntos (naranja claro). En blanco las zonas que no dan puntos. .
Puedes ver la documentación en la wiki de Bilbao Data Lab o en este repositorio para documentar y guardar el códgo en R y los datos transformados.
Zonas escolares de asignación de puntos por centro escolar:
¿Cómo lo hemos hecho?
Partiendo del PDF que lista los centros escolares y la zonas a las que pertenecen para asignar los puntos vamos a generar dos archivos de datos (ver carpeta /data):
- Un archivo de contornos con el dibujo de las zonas. Descarga geojson (archivo en proyección EPSG3042).
- Una tabla con tres columnas: zona, centro escolar y puntos asignados. Descarga csv.
Luego con un script de R (ver script) se importan los contornos de las zonas, el listado que relaciona las zonas con los centros escolares y se dibuja un mapa por cada centro escolar (ver /images).
1. Crear contornos de zonas
Para poder representar las zoans primero necesitamos dibujarlas. Cada zona está definida en el PDF por los distritos, secciones censales o calles que la componen. La cosa se complica porque a veces se definen por negación. por ejemplo, la zona 430601-ABANDO está compuesta por el distrito 6 de Bilbao (Bilbao-D06) pero no por la sección censal 15 de ese distrito “(Salbu/Excepto)Bilbao-D06-S015”.
Hemos realizado este proceso con Qgis uniendo y restando distritos, secciones censales. Para añadir y restar las calles que se indican en algunas zonas, se han creado polígonos aproximados que recogen las calles indicadas. En la defición de los polígonos asociados a calles se podría afinar más de lo que lo hemos hecho, lo dejamos como tarea pendiente.
2. Crear relación de centros y zonas escolares
Creamos una tabla basada en los datos de la zonifiación del PDF. Cada línea corresponde con un arelación entre las zonas creadas del paso anterior con un centro escolar.
zona | centro escolar | puntos (o baremo) |
430101-SAN INAZIO – IBARREKOLANDA | 014509 – CEIP Intxixu Ikastola HLHI | max |
430101-SAN INAZIO – IBARREKOLANDA | 014924 – CEIP San Inazio-San Ignacio HLHI | max |
430102-SAN PEDRO – DEUSTUIBARRA | 014509 – CEIP Intxixu Ikastola HLHI | min |
430102-SAN PEDRO – DEUSTUIBARRA | 014924 – CEIP San Inazio-San Ignacio HLHI | min |
… | … | … |
3. Script de R para dibujar zonas
En el script se puede ver al completo cómo se producen los PNG con un mapa de la zonificación para cada. Mostramos aquí a modo de resumen cómo se dibuja un mapa:
# Instala y carga librerías library(tidyverse) library(ggmap) library(rgdal) library(gsubfn) # Carga contornos de zonas escolares zonas <- readOGR("data/zonificacion-escolar-bilbao.geojson") # Carga relación de centros escolares y zonas centros_zonas <- read.delim("data/centros-zonas.csv",sep = ",") # Se selecciona un centro escolar centro_select <- "015360 - CEIP Miribilla HLHI" # Se elimina el código numérico del nombre centro_select_name <- toupper((strapplyc( centro_select, "[0-9]* - (.*)", simplify = TRUE))) # Se dibuja el mapa ggplot() + # rellena regiones con valor max geom_polygon(data = zonas[zonas@data$SEC_PROV_D %in% centros_zonas[centros_zonas$centro == centro_select & centros_zonas$puntos == "max","zona"], ], aes(x=long, y=lat,group=group), fill="orange",alpha=0.8,size = 0.1) + # rellena regiones con valor min geom_polygon(data = zonas[zonas@data$SEC_PROV_D %in% centros_zonas[centros_zonas$centro == centro_select & centros_zonas$puntos == "min","zona"], ], aes(x=long, y=lat,group=group), fill="orange", alpha=0.3,size = 0.1) + # dibuja contornos de todas las zonas geom_path(data=zonas,aes(x=long, y=lat,group=group), colour="black",size = 0.1)
El resultado, añadiendo los contornos de los distritos, la ría y los puntos para cada centro, quedaría así:
El script utiliza un “loop” con un “for” para generar automazidamente todos los mapas.
Existe la opción de añadir de fondo una base cartográfica, que se hace con la librería OpenStreetMap de R usando map ← openmap(c(lat = 43.26596 + 0.027, lon = -2.93141 - 0.09), c(lat = 43.26596 - 0.065, lon = -2.93141 + 0.055), type = “osm”)
donde osm
indica la base cartográfica elegida.
Una vez generadas todas las imágenes podemos hacer un “small multiple” con todos los mapas.
Usaremos el comanto »montage» de imagemagick para hacer el mosaico: montage 0* -geometry 450×450+0+0 montage_geom.png
(imágenes reducidas a 450px con separación de 0 píxeles.
Otra forma es verlo en un gif animado:
Datos
- Definición de zonificación escolar en Bizkaia 2018-2019. Documento en pdf que indica a qué secciones censales o distritos coresponden a cada centro escolar en Bizkaia. Fuente de datos: Departamento de Educación tras consulta por email 00-bizkaia_2018-19_hh_zonifikazioa_aplikazioa.pdf.
- Web de consulta de baremo. Una vez indicas una dirección te devuelve los puntos de acceso a cada uno de los centros educativos: https://ikasgunea.euskadi.eus/es/consulta-de-puntos-de-baremo
- Directorio General de Centros Docentes no Universitarios (shapefile): http://opendata.euskadi.eus/catalogo/-/directorio-general-de-centros-docentes-no-universitarios/ (licencia CC by 3.0 Eusko Jaurlaritza / Gobierno Vasco )
- Centros Docentes no Universitarios en Euskadi (CSV o XLS): http://opendata.euskadi.eus/catalogo/-/centros-docentes-no-universitarios-euskadi/. Este listado de Centros Educativos contiene la dirección exacta de los centros docentes no universitarios de Euskadi, así como sus datos de contacto. El sistema de coordenadas utilizado para la geolocalización de los centros UTM30N ED50. (licencia CC by 3.0 Eusko Jaurlaritza / Gobierno Vasco)
Cartografía
- Secciones censales de la Comunidad Autonoma del País Vasco (shapefile o WMS): http://opendata.euskadi.eus/catalogo/-/seccion-censal-de-la-comunidad-autonoma-del-pais-vasco/ (licencia CC by 3.0 Eusko Jaurlaritza / Gobierno Vasco )
- Distritos de Bilbao (dibujado a partir de sus barrios) https://github.com/BilbaoDataLab/zonificacion-escolar-bilbao/blob/master/data/distritos-bilbao.geojson
- Ortofoto 25 cm 2015 para mapas base (seleccionar H25_061-2-1_ETRS89.JPG y H25_061-2-2_ETRS89.JPG para centro Bilbao). (licencia CC by 3.0 Eusko Jaurlaritza / Gobierno Vasco)
Muchas gracias, estaba buscando un geojson de los distritos de Bilbao. Dices que lo has obtenido dibujándolo a partir de los barrios. Sabes dónde podría conseguir un geojson (o similar) de los barrios de Bilbao? Mila esker!
El proceso está descrito más arriba: dibujados contornos a partir de distritos, secciones censales y nombres de calles.
Descarga el shapefile de barrios de todo Euskadi: http://www.geo.euskadi.eus/barrios-estadisticos-de-la-comunidad-autonoma-del-pais-vasco/s69-geodir/es/
y de distritos: https://github.com/BilbaoDataLab/zonificacion-escolar-bilbao/blob/master/data/distritos-bilbao_wgs84.geojson (no encuentro ahora la fuente original).
¿te sirve?
Apúntate a la lista de correo para estas y otras consultas: https://docs.google.com/forms/d/1UbzpE-ZsaUNPydBDLLceEz-5YxzbxS40MbS9Z11ts6o/viewform
Eran de aquí los distritos de Euskadi: ftp://ftp.geo.euskadi.eus/cartografia/Limites/Unidades_estadisticas/ (via: http://www.euskadi.eus/gobierno-vasco/-/barrios-estadisticos-de-la-comunidad-autonoma-del-pais-vasco/)