Popolazione Residente Province ISTAT
Introduzione
Ricetta per scaricare i dati sulla popolazione residente per province (livello NUTS3).
Le province sono identificate da codici NUTS3 di 5 caratteri (es. ITC11 = Torino, ITG28 = Ragusa).
Crediti
Ricetta proposta da @pigreco nella issue #9.
Cosa serve
- Shell Linux
- Curl
- DuckDB (opzionale, per filtrare i dati)
Nota endpoint
Questa ricetta usa l’endpoint ufficiale https://esploradati.istat.it/SDMXWS/rest con workaround per bug filtri temporali.
Bug ISTAT: per anno N usare endperiod=N-1
Dettagli: ../processing/note-endpoint-esploradati.md
Scarica dati grezzi
# ATTENZIONE: bug ISTAT - per 2024 usare endperiod=2023
curl -kL -H "Accept: text/csv" \
"https://esploradati.istat.it/SDMXWS/rest/data/IT1,22_289/A..JAN.9.TOTAL.99/?startperiod=2023&endperiod=2023" \
>pop_tutti_territori.csv
Nota: il comando richiede circa 2 minuti per completare.
Parametri query:
.TOTAL= totale maschi+femmine..= tutti i territori (Italia, ripartizioni, regioni, province, comuni).9.99= tutti gli stati civili, tutte le età..= dati a gennaio (popolazione fine anno precedente)startPeriod=2023&endPeriod=2023= anno 2023
Estrai solo province con DuckDB
duckdb -c "COPY (
SELECT
REF_AREA as codice_provincia,
TIME_PERIOD as anno,
OBS_VALUE as popolazione
FROM 'pop_tutti_territori.csv'
WHERE LENGTH(REF_AREA) = 5
AND REGEXP_MATCHES(REF_AREA, '^IT[A-Z][0-9]')
ORDER BY REF_AREA, TIME_PERIOD
) TO 'popolazione_province.csv' (HEADER, DELIMITER ',')"
Filtro:
LENGTH(ITTER107) = 5= codici con 5 caratteriREGEXP_MATCHES(ITTER107, '^IT[A-Z][0-9]')= codici NUTS3 (IT + lettera + numero)
Output
CSV pulito con 3 colonne:
codice_provincia: codice NUTS3 (es. ITC11, ITG28)anno: anno di riferimentopopolazione: numero abitanti