menu di navigazione del network

API per l'elenco dei comuni italiani


(Pierfrancesco Elia) #1

Ciao a tutti, vedo che un sacco di siti (tra cui 18app), usa dei file statici js al cui interno c’è un Array contente tutte le provincie e comuni italiani.

Tolto il fatto che questa soluzione è poco pratica nel caso in cui i comuni vadano ad aumentare o diminuire, mi sembra una cosa molto poco efficiente il fatto che tutti i siti abbiano bisogno di farsi questi file per poter gestire i comuni.

Non sarebbe il caso di creare delle API disponibili e sempre aggiornate con tutti i comuni e provincie d’Italia.

Mica sarò il solo ad avere questi problemi? :smiley:
Buona giornata.


(Stefano Sabatini) #2

L’ISTAT mantiene l’elenco in forma di file Excel / CSV https://www.istat.it/it/archivio/6789


(Gabriele Francescotto) #3

E’ disponibile anche questo (IndicePA):

http://www.indicepa.gov.it/public-services/opendata-read-service.php?dstype=FS&filename=amministrazioni.txt

Non è comodissimo perché richiede una rielaborazione dei dati in locale, ma credo sia più corretta la fonte.


(Pierfrancesco Elia) #4

Sono tutte soluzioni che lasciano un po’ a desiderare, per due motivi.

  1. Tutte le persone che hanno ne hanno bisogno devono scaricare il file .xls sell’ISTAT, convertirlo in CSV e poi trafficare con PHP per ricavarsi delle query da inserire in un db.
  2. Evitiamo di parlare del casino che ci sarà quando quella lista sarà aggiornata, tolto il fatto che non so in quanti stiano a controllare il sito per vedere se ci sono aggiornamenti.

Io per un mio progetto ho seguito il procedimento al punto 1, ma non è assolutamente una cosa semplice e veloce…


(Stefano Sabatini) #5

Potrebbe essere un dataset del DAF?
Non ho capito se poi ci saranno API di accesso, però è già un modo di uniformare il dato…

Io ho aggiornato i comuni su Wikidata, questa è la query sparql per ottenere la lista
http://tinyurl.com/y984z4w4


(Riccardo Vedovato) #6

Concordo, sarebbe molto utile averlo a disposizione.

Potremmo partire da quello dei comuni attuali, utile per la decodifica delle residenze, e suggerisco di avere un archivio unico di comuni e stati esteri: alla fine nei nostri software c’è quasi sempre un riferimento al comune italiano o allo stato estero per un cittadino, tanto vale avere una unica resource.

Poi arriviamo ai luoghi di nascita, in quanto l’archivio deve essere storicizzato con data inizio e fine di validità e ancora secondo me qualcosa da limare nel catalogo c’è.
E poi: i software hanno spesso usato il codice istat come PK ma purtroppo l’istat ne ha riattribuito alcuni nel corso del tempo. Siamo pronti a migrare tutti i codici istat verso il codice del catalogo anpr?


(Emanuele) #7

In effetti,
io uso una soluzione locale, aggiornandola dal file dell’agenzia delle entrate e da un repository github (che mi da anche i cap) https://github.com/matteocontrini/comuni-json

Per quanto riguarda l’aggiornamento dei dati, credo sia sufficiente automatizzare la lettura del file statico dell’agenzia delle entrate http://www.istat.it/storage/codici-unita-amministrative/Elenco-comuni-italiani.csv e esporre un’API

Sull’IndicePa non ha i dati aggiornatissimi, quindi non lo consiglio molto.


(Pierfrancesco Elia) #8

Guarda io alla fine per il mio progetto ho preso i CSV di ISTAT e ci ho trovato una gamola con PHP per farmici le Query… però non è una cosa logica :sweat_smile:
Tralasciando il fatto che il lavoro sarebbe da rifare per aggiornare l’elenco…


(Stefano Sabatini) #9

Per i CAP rimando anche alla discussione relativa

Sarei interessato anche io ad un “feed” di cambiamenti amministrativi.

Iniziamo a pensare ad un ‘tracciato’? Quali informazioni sono utili per voi?
Di base: Nome, Secondo Livello (Provincia et equiv), Regione, Codice ISTAT

Ulteriori informazioni da esporre in un feed: Data di creazione, Data di cessazione, Comuni fusi (nel caso di fusione)


(Stefano Sabatini) #10

cfr https://github.com/italia/anpr/issues/331


(Marco Migliori) #11

No, la fonte per la codifica dei comuni è l’Istat. Quelli affidabili sono l’elenco dei comuni attuali. Di norma a applicazioni esterne ai demografici servono solo i comuni attuali. Quando si va su comuni cessati o cambi di denominazione, non ci sono elenchi completi affidabili da parte di Istat.

Segnalo però che Istat assieme ad altri ha contribuito a realizzare le tabelle di ANPR ( https://www.anpr.interno.it/portale/tabelle-di-riferimento ) , che hanno non solo i comuni attuali, ma anche la storia con data inizio e fine.
Marco Migliori


(Pierfrancesco Elia) #12

Siamo sempre alle solite, è cambiato chi fornisce le tabelle ma alla fine il lavoro dello sviluppatore del convertire i file in locale per renderli utilizzabili sul progetto rimane…


(Marco Migliori) #13

Quasi. Perchè chi fornisce le tabelle non è proprio univoco. Per certi adempimenti è compito di un ente, per altri no. E manca un servizio centrale accessibile a tutti.

Nell’esempio della tabella comuni, l’anagrafe è obbligata a usare la codifica Istat.
Recentemente la Sardegna ha ristrutturato le province con legge regionale.
Riguarda la codifica dei comuni? Per l’istat sì, perchè il suo sistema di codifica a 6 cifre, identifica con le prime 3 la provincia. Per cui anche se il comune è sempre quello e amministrativamente dipende da una provincia diversa, va assegnato un nuovo codice, e quello precedente va cessato.
Ma il comune entra in ballo anche nella codifica del codice fiscale, per cui passiamo all’Agenzia delle entrate. Che solo raramente cambia il suo codice (A999) che normalmente identifica univocamente un comune.
Abbiamo quindi almeno due soggetti che hanno i loro tempi per le codifiche.

veniamo a un solo esempio pratico di interazione degli enti. l’anagrafe ho detto è obbligata a usare codice istat, che varia nel tempo per ridenominazione/fusione/cambio provincia. è anche obbligata a usare un dato storico, ovvero se sono nato nel 1980 a Rimini ho codice provincia Forlì, nel 2000 ho codice provincia Rimini.
quando l’anagrafe colloquia con il CNT (centro nazionale trapianti), indica il codice istat di nascita. il CNT ha una tabella con i soli codici istat attuali (il file XLS pubblicato da istat).
quando gli dico che TIZIO è nato a RIMINI (FO) il CNT restituisce errore perchè per loro quel codice non esiste.
Quindi l’anagrafe per colloquiare con il CNT, deve modificare il dato (nel solo invio al CNT) facendo formalmente un falso, al solo scopo di comunicare con loro.

Con ANPR arriviamo al paradosso che questo sistema integrato impedisce l’uso dei nuovi codici istat (a cui sarebbe tenuta l’anagrafe), perchè essendo integrato con AE, si sommano i ritardi degli enti di codifica. per cui non ho disponibile e aggiornata la tabella comuni, con la realtà.


QUELLO CHE MANCA a mio avviso è una struttura centrale da implementare a mio avviso tramite Agid, che recepisca dagli enti preposti tutte le codifiche utili (non solo comuni e stati esteri) e renda disponibile in formato download o interrogazione web/api, i codici che poi tutti gli enti pubblici (ma volendo anche sviluppatori extra) debbano utilizzare perchè l’ente A per comunicare con l’ente B scriva e intenda la stessa cosa.
Nell’esempio dei comuni funzionalità di:

  • consultazione comuni attuali per provincia o nome
  • riconoscimento di denominazione storiche
  • ecc…

Ma parlo di fondamenta, quindi non troverò mai nessun amministratore che sia interessato all’argomento, quando il loro scopo è quello di far vedere quanto è bello il tetto.

Marco Migliori


(Riccardo Vedovato) #14

Hai ragione, queste sono le questioni concrete (e se vogliamo anche banali) che tengono fermi i progetti. Se non le sciogliamo arriviamo con difficoltà ad una soluzione stabile ed efficace.


(Stefano Sabatini) #15

Ping @lilloraffa @rasky


(Pierfrancesco Elia) #16

Dire che le tue sono parole sante è dire poco. Speriamo che qualcosa si muova.
L’esempio che hai fatto con il cambio di capoluogo Forlì-Rimini è al limite del ridicolo, se uno ci pensa…

Se non si rendono disponibili delle REST Api (o qualcosa di analogo) ma Files da scaricare, si fa un passo avanti ma mezzo passo indietro… L’aggiornamento dei dati sarebbe da fare manualmente (riscaricare e sostituire il file). Le tecnologie per rendere il tutto più semplice ci sono! :slight_smile:


(Stefano Sabatini) #17

Per trovare le modifiche ho consultato un sito non della PA e per recuperare i codici ISTAT nuovi ho usato l’ISTAT stesso https://www.istat.it/it/archivio/6789 e l’agenzia dell’entrate http://www.agenziaentrate.gov.it/wps/content/Nsilib/Nsi/Schede/FabbricatiTerreni/Archivio+Comuni+e+Stati+esteri/Consultazione+Archivio+Comuni+Stati+esteri/?page=consulatacatipimp


(Enrico Candino) #18

Ciao a tutti, cercando in giro un servizio che implementasse la ricerca dei comuni mi sono imbattuto in questo thread. Sembra che non ci sia molto in giro e quindi volevo comunicarvi che sto lavorando ad un servizio che possa offrire un API semplice con qualche possibilità di ricerca.

Il JSON che ora tiro fuori è questo (devo implementare tutti i campi e la ricerca per ogni campo):

{
	"results": 7970,
	"page": 1,
	"has_more": true,
	"data": [{
		"denominazione_corrente": "Roma",
		"denominazione_regione": "Lazio",
		"popolazione_legale_2011_str": "2.617.175",
		"popolazione_legale_2011": 2617175
	}]
}

Per ora ho implementato una semplice ricerca sulla denominazione e regione, con una lmit e page per iterare sui risultati, ordinati per popolazione.

I campi idealmente manterranno la stessa terminologia del csv dell’ISTAT (per comodità dei fruitori), e verranno aggiornati controllando periodicamente il permalink offerto da loro. Offrendo un Etag è possibile controllare eventuali cambiamenti senza sforzo, ed un check periodico ogni tot (giornaliero?) sarà possibile avere API sempre fresche.

Un po’ di tempo fa avevo implementato anche un servizio di ricerca geolocalizzata (https://github.com/enrichman/gomuni), non pubblicato, che potrebbe essere interessante unire a questo.
A partire dagli shapefile offerti dall’ISTAT riesce a capire in che comune ci si trova. :slight_smile:

Fatemi sapere se può interessare. :slight_smile:


(Stefano Sabatini) #19

Carino!
Vuoi farlo pubblicando il sorgente su Github?
Come file geografico se vuoi posso provare a generare in shapefile o geojson da OpenStreetMap (è una idea che ho da un po’ per http://osm-estratti.wmflabs.org/estratti/) con quantomeno il codice istat.


(Enrico Candino) #20

Probabilmente si, alla fine si tratta di un servizio semplice!
Per la parte geografica in realtà ho già tutto, se vedi il repository c’è il link dell’ISTAT da dove scaricare gli Shapefile dei comuni. :slight_smile:
Dovrei vedere si ci sono più aggiornati magari!