# Añadir un país El país es un parámetro. Se elige con la variable `REGION`. ```bash ./.venv/bin/python src/regions.py # ver el catálogo REGION=pt make all # procesar Portugal entero ``` Los resultados van a `out/pt/` y los intermedios a `data/interim/pt/`. España, que es la región por defecto, publica en `out/` para no romper rutas. ## Por qué una malla por país y no un mapa continental Europa entera a 100 m son mil millones de celdas: **4 GB por capa** y unos **73 GB** para las dieciocho capas del modelo, más de lo que cabe en memoria de una vez. El norte de África añade otros 61 GB. Por país el problema es tratable y además se puede paralelizar. ## Lo que hay que mirar antes `src/regions.py` declara, por país, qué datos existen de verdad: | Campo | Qué significa | |---|---| | `protected='eea'` | Hay Red Natura 2000 y designaciones nacionales de la Agencia Europea de Medio Ambiente. El filtro legal funciona | | `protected=None` | **No hay fuente libre equivalente.** El filtro legal no se aplica. Pasa en todo el norte de África: hay que conseguir la cartografía del país antes de fiarse de un resultado | | `ortho='pnoa'` | Ortofoto nacional descargable. Solo España | | `ortho=None` | Sin foto aérea incrustada. En el visor queda el mapa deslizante, que sí funciona en todas partes | ## Proyección Europa usa EPSG:3035 (equiárea europea). Para el norte de África se construye una proyección equiárea centrada en el propio país, porque 3035 deforma fuera de Europa. Está en `regions.crs_for()`. ## Añadir un país que no esté En `src/regions.py`: ```python "si": dict(name="Eslovenia", bbox=(13.3, 45.4, 16.6, 46.9), osm=["europe/slovenia"], neighbours=["europe/croatia", "europe/austria", "europe/italy"], protected="eea", ortho=None), ``` - `bbox` en lon/lat con algo de margen. - `osm` y `neighbours`, rutas de [Geofabrik](https://download.geofabrik.de). - **Los vecinos importan.** Sin ellos, la franja fronteriza sale falsamente 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//`, 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.