Multi-país de verdad: 27 países calculados y 26 defectos corregidos
El soporte multi-país estaba declarado pero nunca se había ejecutado entero. Al hacerlo aparecieron defectos en cadena, la mayoría por dar por hecho que lo que vale en España vale en todas partes. Máscara del país - El nivel administrativo que cubre el país no es el mismo en todas partes: en España el 4 son las comunidades, en Portugal el 4 se queda en 2.338 km2 de 89.015 y cubre el 8, en Islandia el 8 tiene un solo polígono de 5 km2 y manda el 6. Se elige el nivel midiendo cobertura, no suponiéndola. - Se mide sobre la máscara del país y no por área cruda de los polígonos: con áreas crudas el nivel grueso gana en los países con costa (las županije croatas cuentan 30.000 km2 de Adriático) y el fino gana en Polonia cubriendo el 57 %. - Fuera el mar. El límite del país en OSM incluye las aguas territoriales: Islandia son 177.147 km2 con mar y 102.719 de tierra, y salían ocho candidatos flotando en el Atlántico. Se recorta por DEM, donde el océano es exactamente 0.0 y la tierra a cero clavado casi no existe (5 km2 de 56.439 en Croacia). Los países bajo el nivel del mar salen negativos, no cero. Un solo modelo - score.py duplicaba los umbrales de stars.py con otros valores (1.500 m al edificio en vez de 2.000, 8 grados de pendiente en vez de 10) y publicaba su propia lista de candidatos sin filtro acústico: 60 sitios que compartían uno con los 355 buenos. Fuera la lista, y los umbrales salen de stars.py. Datos por país - Los espacios protegidos se guardaban en un único directorio con un "si ya existe, no lo bajes", así que cualquier país nuevo se quedaba con los polígonos de España. Uno por país. - Comprobado contra los servicios de la EEA país por país: Andorra y Reino Unido devuelven cero sitios (Andorra nunca estuvo en la UE, el Reino Unido salió) y Grecia solo tiene Natura 2000. Donde no hay fuente oficial se cae a OpenStreetMap avisando, que es incompleto pero mucho mejor que una máscara vacía: en Andorra eran 9 km2 contra 70. - make datos no descargaba el OSM y los vecinos se extraían a mano. Nuevo src/dl_osm.sh y extract_osm.py los recorre solo, avisando si falta alguno. Robustez - stars.py reventaba con un traceback si un país no daba ningún sitio. Ahora explica el embudo filtro a filtro y corta limpio. Pasa en cuatro países. - stars.py no cabía en memoria con mallas grandes: Argelia son 449 M celdas, 16 capas de 1,8 GB más los criterios, y el kernel mataba el proceso. Las capas se mapean a disco. Resultado idéntico byte a byte. - dl_dem.sh no era seguro en paralelo: el fichero temporal se llamaba igual para todos y dos países bajando la misma tesela se pisaban. - revisar.py llevaba la ventana de España cableada, comparaba el centro de celda sin tolerancia de rejilla, y trataba como fallo una etiqueta que hay países que no tienen. Añadidas dos comprobaciones nuevas: candidatos sobre el mar y candidatos pegados al borde de la ventana, donde el aislamiento sale inflado porque al otro lado del bbox no hay datos. Visor - Selector de país en la cabecera. Cada visor es un fichero autónomo, así que salta al del otro país en vez de cargar los dos. Rutas relativas. - Las capas del mapa pasan a ser excluyentes: las tres a la vez se tapaban. - Lo español (teselas del IGN, catastro, WMS del MITECO, ortofoto del PNOA) queda condicionado a la región en vez de salir en blanco fuera de España. Publicación - Al repositorio va el visor y los CSV de cada país; fuera los WebP, que van ya incrustados dentro del visor, y los PNG de los mapas, que solo usa el informe. make empaquetar deja además un zip por país para las releases y make descargar los baja sin recalcular nada. - El informe no se genera fuera de España: no es una plantilla sino un artículo escrito, con cifras del barrido español en la prosa.
This commit is contained in:
parent
4e79692336
commit
73e471005b
31 changed files with 898 additions and 254 deletions
|
|
@ -51,6 +51,26 @@ En `src/regions.py`:
|
|||
vacía: el extracto está recortado por la frontera y al otro lado no hay
|
||||
edificios en los datos aunque sí los haya en el terreno.
|
||||
|
||||
`make datos` baja el extracto del país y los de sus vecinos con `src/dl_osm.sh`,
|
||||
y `extract_osm.py` los procesa solos con sufijo `_n1`, `_n2`… Si falta alguno,
|
||||
avisa por pantalla en vez de dar el resultado por bueno.
|
||||
|
||||
Los espacios protegidos van a `data/raw/prot/<país>/`, uno por región. Antes
|
||||
había un solo directorio con un "si ya existe, no lo bajes", y cualquier país
|
||||
nuevo se quedaba con los polígonos de España.
|
||||
|
||||
## Niveles administrativos
|
||||
|
||||
El `admin_level` que cubre el país **no es el mismo en todas partes**, y de ahí
|
||||
sale la máscara del país y la etiqueta gruesa del candidato. En España el 4 son
|
||||
las comunidades y cubre los 498.542 km²; en Portugal el 4 se queda en 2.338 km²
|
||||
y quien cubre el país son el 6 (distritos, 89.082 km²) y el 8 (freguesías).
|
||||
|
||||
No hay que tocar nada: `config.admin_polygons()` extrae los niveles 2, 4, 6 y 8
|
||||
y se queda con el primero que llegue al 98 % del que más superficie cubra. Pero
|
||||
conviene mirar el km² que imprime `build_rasters`: si no se parece a la
|
||||
superficie real del país, el resultado no vale nada.
|
||||
|
||||
## Coste aproximado
|
||||
|
||||
Por país mediano: 2-6 GB de descarga, ~25 GB de disco temporal y un par de horas.
|
||||
|
|
|
|||
11
docs/Home.md
11
docs/Home.md
|
|
@ -24,9 +24,14 @@ demasiada pendiente) y puntúa lo que queda en seis criterios.
|
|||
|
||||
| | Países | Qué significa |
|
||||
|---|---|---|
|
||||
| 🔵 Procesado | 1 (España) | 355 localizaciones calculadas y publicadas |
|
||||
| 🟡 En catálogo, con protegidos | 20 | El código los soporta y hay datos oficiales de espacios protegidos. Falta ejecutar el pipeline |
|
||||
| 🟠 En catálogo, sin protegidos | 6 | Todo el norte de África. **No hay fuente libre de espacios protegidos**: el filtro legal no se aplica |
|
||||
| Procesado | **27 de 27** | 7.337 localizaciones, 1.417 de cinco estrellas |
|
||||
| Sin ninguna | 4 | Andorra, Países Bajos, Bélgica y Suiza. No es un fallo: no queda una sola celda que pase todos los filtros |
|
||||
| Sin protegidos oficiales | 8 | El norte de África, más Andorra y Reino Unido. **No hay fuente libre**: se cae a los polígonos de OpenStreetMap, que no son un límite legal. Libia es el peor caso, con 10 polígonos y el 0,0 % del país |
|
||||
|
||||
Comprobado consultando los servicios de la EEA país por país, no dando por hecho
|
||||
que Europa esté cubierta: Andorra nunca estuvo en la UE y el Reino Unido salió,
|
||||
y los dos devuelven cero sitios. Grecia solo tiene Natura 2000, sin figuras
|
||||
nacionales.
|
||||
|
||||
Procesar un país cuesta unas 2 horas y 25 GB. **No se procesa Europa entera de
|
||||
una vez**: a 100 m son mil millones de celdas y unos 73 GB solo en capas ráster,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,39 @@
|
|||
# Publicar
|
||||
|
||||
## Los países, fuera del repositorio
|
||||
|
||||
En el repositorio va **España y nada más**. Cada visor lleva el relieve y un
|
||||
recorte de terreno por candidato incrustados en base64, así que pesa entre 1 y
|
||||
4 MB y cualquier recálculo reescribe el fichero entero: doce países en el
|
||||
historial de git son cientos de MB en unos pocos recálculos, y el clon deja de
|
||||
ser algo que la gente pueda bajarse sin pensárselo.
|
||||
|
||||
Los demás se publican como adjuntos de una release:
|
||||
|
||||
```bash
|
||||
make empaquetar # deja dist/rave-scout-<país>.zip, 13 MB los once
|
||||
```
|
||||
|
||||
Se suben a una release con la etiqueta `paises`. A partir de ahí, cualquiera:
|
||||
|
||||
```bash
|
||||
make descargar PAIS=is
|
||||
make descargar # todos los publicados
|
||||
```
|
||||
|
||||
El paquete lleva el visor y los CSV, que es lo que hace falta para mirar el
|
||||
país. Fuera se quedan los PNG de los mapas (solo los usa el informe, que
|
||||
únicamente existe para España), los WebP (ya van dentro del visor) y el GeoTIFF
|
||||
del score. Al descomprimir se actualiza solo el desplegable de país de todos los
|
||||
visores que haya en disco, que si no el recién bajado no aparecería en los otros.
|
||||
|
||||
Si lo publicas en otro sitio, `RAVE_SCOUT_PAISES` manda sobre la dirección por
|
||||
defecto:
|
||||
|
||||
```bash
|
||||
RAVE_SCOUT_PAISES=https://mi-servidor/rave-scout make descargar PAIS=no
|
||||
```
|
||||
|
||||
## Este repositorio está en Gitea
|
||||
|
||||
**Gitea no tiene Pages integrado**, a diferencia de GitLab. Opciones:
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 1 MiB After Width: | Height: | Size: 996 KiB |
Loading…
Add table
Add a link
Reference in a new issue