Palermo 3D Maps WRLD

Qualche giorno fa Ciro Spataro, che è sempre alla ricerca di notizie interessanti, mi consiglia di leggere un post su Medium. E’ un post del Team WRLD, Build a Dynamic Map of London.

Nel post si parla di una mappa dinamica 3D, più leggo e più la cosa mi intriga, grazie Ciro!

Voglio capirne di più!

Per prima cosa mi chiedo chi e cosa sia WRLD scoperto che:

è una piattaforma dinamica di mappatura 3D per edifici intelligenti, città, giochi, e esperienze virtuali, crea fornisce un ambiente 3D completamente testurizzato che utilizza un sistema di coordinate globali in modo reale, quindi è pronto per essere utilizzato immediatamente – non è necessario creare un ambiente 3D o importare dati aggiuntivi di GIS. Crea stili personalizzati e utilizza lo strumento Unity per selezionare i livelli di dati desiderati – strade, edifici, alberi, etichette, ecc, tutto questo per una varietà di sistemi operativi / dispositivi come iOS, Android, OSX, OculusVR e WebGL.

Proseguendo la ricerca trovo questo post Building Gorgeous 3D Maps with eegeo.js and Leaflet.

Leaflet è la principale libreria JavaScript open-source per mappe interattive mobile, e che utilizzo quasi sempre per realizzare le nostre mappe, ma cos’è eegeo.js?

eegeo.js  è libreria JavaScript open-source, per creare l’interfaccia di 3D web mapping;

Quindi con eegeo.js, Leaflet e OpenstrettMap possiamo realizzare mappe 3D open-source, Ottimo! non mi resta che provare.
Seguendo la guida del post Building Gorgeous 3D Maps with eegeo.js and Leaflet, costruire una mappa base è molto semplice.

Di cosa abbiamo bisogno?

Leaflet (documentazione, esempi)

eeGeo.js (documentazione, esempi)

free eeGeo API key, per ottenere le api key basta registrarsi gratuitamente al sito WRLD

Server o spazio web online dove caricare il file HTML, CSS e JavaScript (in locale la mappa non funziona).

A seguire il codice html per realizzare una semplice mappa 3d, basta sostituire le coordinate su cui centrare la mappa ed inserire  le proprie api key

Per migliorare la mappa si  possono inserire molte funzioni, descritte qui.

Per migliorare la mappa si  possono inserire molte funzioni che troviamo spiegate qui.
Ad esempio possiamo aggiungere una funzione per Spostare la fotocamera  (Moving the camera) o per  Regolazione della direzione e dell’inclinazione (Adjusting heading and tilt) possiamo aggiungere subito dopo “ zoom: 16   }); ” del codice precedente
questa nuova funzione;

Tutto molto semplice!

Volendo si può anche far cambiare il tempo meteorologico o cambiare l’ora del giorno.

Visto che parte del codice è basato sulla libreria  Leaflet, ho inserito qualche plugin di leaflet che normalmente uso per realizzare le mappe.

In questo caso ho inserito solamente:

Sidebar-v2, per creare una sidebar a scomparsa;

Leaflet-hash, per generare URL che contengono livello di zoom e posizione corrente;

Leaflet.MousePosition, è un semplice controllo della posizione del mouse. Esso mostra le coordinate geografiche del puntatore del mouse, mentre viene spostato sulla mappa;

Leaflet.zoomhome, che aggiunge un pulsante Home al controllo zoom per ripristinare la visualizzazione;

Ecco la nostra mappa con tema standard!

Palermo 3D Maps WRLDMappa fullscreen

Ecco i comandi per facilitare la navigazione della mappa

Usage Mouse

Left button + Move:    Pan

Middle button (Scroll whell)+ click: Orbit

Scroll whell: Zoom

Right button + Move: Rotate

Registrandosi al sito si ha possibilità di accedere al pannello Developer, da dove è possibile accedere a SDK e API per lo sviluppo di mappe 3D in una vasta gamma di piattaforme popolari.

Si può usare lo strumento Map Designer per creare mappe personalizzate, e scegliere un tema di base diverso da quello proposto di default.

strumento Map Designer Mappa con tema minimal Tema Minimal Mappa fullcrenn con tema minimal

Tema CardboardTema CardboardMappa fullcrenn con tema cardboard

Si può aggiungere un ulteriore menu di ricerca personalizzatoLe mappe realizzate con Map Designer  possono essere facilmente inserite nei propri sito/blog grazie alla possibilità di poter incorporare il codice.

Per personalizzare maggiormente le mappe non basta il semplice account free ma si deve attivare un account  a pagamento.

È una piattaforma davvero molto interessante e da approfondire, mi riprometto di fare ulteriori test, magari inserendo in mappa gli opendata sui dati del trasporto pubblico locale di Palermo.

Grazie Ciro per avermi consigliato la lettura del post.

Opendatafest 2017 a Caltanissetta, il report di 3 giorni di lavori

 

 

 

 

 

 

Le comunità di Opendatasicilia e Spaghetti Open Data hanno dato vita a questo report sui lavori della 3 giorni di incontri dell’opendatafest a Caltanissetta (2-4 giugno 2017).

I materiali mostrati nelle giornate sono disponibili su http://opendatafest.it 

Abbiamo pubblicato le slide  delle presentazioni mostrate al raduno direttamente nel sito opendatafest.it, all’interno del programma: dopo i titoli degli interventi e delle sessioni c’è una voce “| SLIDE” che permette di visualizzare i materiali. 

In questo post elenchiamo alcuni dei momenti del raduno e delle presentazioni (fai riferimento al programma per un quadro completo).

Venerdì mattina

Dibattito di inizio dei lavori

Chi: Alberto Cottica, Matteo Brunati, Andrea Borruso, Cristiano Longo

Di cosa si è discusso, in ordine sparso:

  • Curarsi delle comunità costa, è necessario rendersene conto
  • Scelta di strumenti che permettano di dare un lascito, serve dare continuità alle comunità
  • Fase storica sugli Open Data: forse stiamo vivendo la fase adolescenziale, siamo stanchi
  • Serve collegarsi alle altre comunità del mondo Openness
  • Trovare modi per far convogliare i vari temi crosscomunità, pur mantenendo le varie identità, forse è utile una Woodstock dell’Openness, sta nascendo un evento a cui ci hanno chiesto un parere e un contributo, che intende provarci nel 2018
  • Comunità locali: necessitano di credibilità per incidere nel territorio, serve dare il buon esempio
  • Serve documentare tutto, necessari incontri fisici e online
  • Non siamo da soli, non dobbiamo chiuderci in noi stessi, serve aiutare il ricambio e allargare includendo
  • Per coinvolgere altri è necessario uscire dal linguaggio da iniziati
  • La tecnologia è funzionale, un mezzo, da soli si fa poco: necessario coltivare i rapporti umani per creare cose nuove
  • Quando un cittadino inizia a produrre valore, mette in discussione lo status quo
  • Bisogna decidere come partecipare alle azioni di governo, capire come relazionarsi all’EU, bisogna rompere le scatole in modo costruttivo, come comunità
  • Il civic hacker è troppo solo, devi avere persone intorno per restare motivato
  • Serve decidere come comportarsi con le altre comunità
  • Lancio del progetto civichacking.it

Dettagli sull’evento delle comunità dell’Openness in costruzione 2018

A quanto pare l’esigenza di connettere comunità che lavorano e sono appassionate di temi affini, non è solo una sensazione di pochi: parliamo di tutte quelle comunità che in qualche forma supportano e discutono di libertà digitali (Openness in senso lato, Open Source, Free Software, Open Content e beni comuni digitali).

Assieme a Roberto Guido (presidente di Italian Linux Society – ILS), che ci ha cercato qualche settimana prima del raduno, abbiamo iniziato a ragionare su un evento unico, che riunisca molte comunità nello stesso luogo e negli stessi giorni, mantenendo ognuna separata nella gestione dei propri eventi. Per iniziare può bastare essere tutti nello stesso luogo, simultaneamente: è un inizio.

Alcuni appunti condivisi: https://etherpad.net/p/proposta-os-conf-ita

Civic hacking: comunità informali, prototipi e Open Data: il libro

Il libro nasce dall’esigenza di capire cos’è il civic hacking concretamente nel contesto italiano, uscendo dal gergo per iniziati. A partire dalle esperienze reali dei civic hacker, che collaborano per trovare soluzioni creative a sfide sociali concrete, allarghiamo lo sguardo per analizzare il rapporto tra Open Data, prototipi, comunità informali e modi di sfruttare le zone grigie (quelle opportunità inaspettate che si creano a volte).

Interessa ovviamente i civic hacker. Interessa anche i maker, gli appassionati di openness e chiunque senta l’esigenza di mettere le mani “in pasta”.  

Raccontiamo anche le nostre esperienze dirette all’interno della comunità di Spaghetti Open Data per mostrare il potenziale e la fatica di quello che si può fare.

Persone, storie, Open Data, prototipi: tutto questo per noi è civic hacking. Non solo tecnologia, ma un modo per scardinare vecchie abitudini, un modo per riprendersi il proprio ruolo di cittadini, un modo per risolvere problemi.

Fino al 31/7 h.22 CEST, puoi inviare un tuo contributo. Per dettagli fai riferimento al sito http://civichacking.it/#contributi.

Dal primo agosto partirà una campagna di crowdfunding: se ti interessa, lascia pure la tua email qui http://eepurl.com/cQ15nX.

L’annuncio del portale regionale siciliano sui dati aperti

A sorpresa è venuto a seguire i lavori della mattina Enzo Lo Piccolo, webmaster della Regione Siciliana. Ha chiesto la parola per pochi minuti e ha fatto un annuncio: nelle prossime settimane (tra fine giugno e inizio luglio) verrà lanciato il portale regionale siciliano sui dati aperti. Sarà basato su CKAN e DCAT-AP_IT compliant.

Ha chiesto alla comunità – a lancio effettuato – di “dargli una mano”, sia nelle critica che nella proposta e ha dato comunicazione di un indirizzo email dedicato opendata@regione.sicilia.it. E noi gli abbiamo chiesto di iscriversi alle nostre mailing list.

È stato un momento molto informale e concreto, che ci fa essere ottimisti. Per la Sicilia è sicuramente una bella notizia ed è stato un piacere che #ODFest17 sia stato “stimolante”.

Le presentazioni del venerdì pomeriggio

Proposte di elaborazione di Dati Aperti dagli studenti di Informatica dell’Università di Palermo

Tre studenti del corso di laurea in Informatica dell’Università degli studi di Palermo, hanno presentato i progetti realizzati per l’esame della materia “Tecniche per la gestione degli Open Data”, curato da Davide Taibi del CNR di Palermo (http://offweb.unipa.it/offweb/public/corso/dettaglioInsegnamento.seam;jsessionid=FB17C3274CB9C25A07D58E8A68988D26?oidCurriculum=17137&oidInsegnamento=111202&cid=123461). I progetti che gli studenti devono realizzare per superare l’esame della materia hanno tre caratteristiche fondamentali: a) i dati da elaborare devono provenire da diverse fonti (anche generati da sensori) ed essere in diversi formati; b) i dati acquisiti devono essere elaborati mediante processi di pulizia e armonizzazione delle strutture dati; c) i dati elaborati devono essere resi disponibili all’esterno mediante API e in un formato aperto con un livello pari a 5, possono essere riusate ontologie esistenti o è possibile creare nuove ontologie per modellare il dominio di conoscenza specifico. Infine, i dati prodotti devono essere alla base della realizzazione di applicazioni come: bot telegram, web application, o applicazioni per dispositivi mobili.

Nello specifico gli studenti che hanno partecipato all’OpenDataFest17 hanno presentato:    

  • Un portale che aggrega gli eventi culturali che si svolgono nella città di Palermo di Vincenzo Cimino, https://raw.githubusercontent.com/VickPix/aggregatore-eventi/master/slides/Aggregatore_eventi_Vincenzo_Cimino.pdf. I dati vengono acquisiti mediante scraping di alcuni blog palermitani, e dal portale dell’Università di Palermo; e vengono armonizzati in una struttura dati comune che viene utilizzata per alimentare un portale in cui vengono visualizzati gli eventi mediante una interfaccia semplice, facile e comoda. Per modellare gli eventi e le loro caratteristiche è stato utilizzato schema.org. L’estrazione dei dati relativi agli eventi in formato JSON-LD è stata implementata attraverso API. L’applicazione è disponibile qui (http://portale-eventi.firebaseapp.com).
  • Una stazione meteo autocostruita e la relativa piattaforma di gestione dei dati in rete di Riccardo La Grassa https://github.com/pulsar2468/Owd/blob/master/OpenDay2017.pdf. Sono state fornite indicazioni per la costruzione della stazione meteo. Molto interessante è stata la descrizione relativa alla costruzione dell’anemometro, realizzato a basso costo con materiali riciclati. I dati raccolti dalla stazione vengono elaborati da un server centrale alle quali le stazioni meteo possono registrarsi attraverso un TOKEN. Il server centrale fornisce le visualizzazioni dei dati acquisiti e consente l’esportazione dei dati in formato aperto a cinque stelle. In questo caso è stata riutilizzata una ontologia specifica per la modellazione dei dati provenienti dai sensori.  
  • Una piattaforma di visualizzazione per infografiche relative a dati georeferenziati di Tommaso NIcosia (http://opendatafest.it/presentazioni/TommasoNicosia-OpenData-framework-sviluppo.pdf). In questa piattaforma i dati provenienti dalle segnalazioni della polizia municipale del comune di Palermo, e i dati provenienti da Waze relativi al traffico cittadino vengono aggregati e visualizzati su mappa. Un prototipo è disponibile qui (http://neuron4web.palermo.enea.it/opendata/_trafficendpoint). Uno SPARQL endpoint si occupa di gestire le query che vengono effettuate sui dati rappresentati in RDF. I dati forniti possono avere diversi settori di applicazione. Ad esempio tali dati possono guidare le scelte dei percorsi per raggiungere punti critici della città come ad esempio i presidi ospedalieri. L’unione di queste informazioni con, ad esempio, i dati relativi alle file dei pronto soccorso della città potrebbero supportare (nell’eventualità in cui non ci siano casi che necessitano cure immediate) la scelta del pronto soccorso in maniera più efficiente in termini di pazienti in attesa, traffico nelle strade ed eventi particolari come manifestazioni e lavori in corso.    

Non fidarsi più dell’ennesima agenda: servono uno o più progetti di civic hacking [Forum OGP]

Durante il dibattito mattutino sono emersi alcuni elementi sparsi legati soprattutto al ruolo di realtà come SOD o gruppi locali come Opendata Sicilia rispetto a forum di questo tipo, ancor di più in merito al tipo di intervento e interessi da mettere sul piatto.

Durante la sessione pomeridiana siamo andati maggiormente nel dettaglio di un processo complesso, costoso e con un ritorno difficile da valutare per la società civile. Lo scopo è stato quello di condividere un vissuto di un anno, focalizzato a spiegare dove siamo ora, specie in merito alle proposte/domande presentate al ministro Madia durante l’ultimo evento in plenaria dell’8 maggio scorso.

Una delle azioni nate nei giorni del raduno e condivise con i presenti ha poi generato questa richiesta formale alla squadra OGP Italy, che abbiamo condiviso in questo thread:

https://groups.google.com/d/msg/spaghettiopendata/uslQ2CTqqiM/M1rM7uaIAQAJ

Abbiamo scelto di dare maggior visibilità a questa proposta pubblicandola anche nei rispettivi luoghi digitali:

  1. http://www.spaghettiopendata.org/blog/matteo-brunati/open-government-partnership-andare-oltre-lagenda
  2. http://blog.openpolis.it/2017/06/13/open-government-partnership-andare-oltre-lagenda/15616
  3. http://blog.ondata.it/open-government-partnership-andare-oltre-lagenda/
  4. https://it.okfn.org/2017/06/13/open-government-partnership-andare-oltre-lagenda/

Incoraggiare la partecipazione attiva dei giovani alla vita democratica con YouthMetre

Caterina Impastato ha presentato YouthMetre, iniziativa che nasce per incoraggiare la partecipazione attiva dei giovani alla vita democratica.  Ecco le slide (Prezi) dell’intervento: uno degli elementi più interessanti è la piattaforma e i dati che aggrega, uno degli argomenti che è stato oggetto di alcune domande da parte dei presenti.

Il progetto Ricostruzione Trasparente

Alessio Cimarelli, rappresentante dell’associazione onData, ha presentato e discusso il progetto Ricostruzione Trasparente. Ecco le slide dell’intervento.

Civic Hackathon[s]

Creazione del GTFS di Caltanissetta

GTFS

Nelle prime ore di lavoro il gruppo di lavoro ha “sbattuto” con un ostacolo inatteso: i dati sulle rotte e sulle fermate erano incompleti o errati. Per fortuna, durante la giornata, è venuta a trovarci la Titolare dell’Azienda che gestisce i trasporti locali su gomma (SCAT) e siamo riusciti a produrre dei dati corretti sulla linea 3 (uno speciale grazie a Cesare Gerbino che è stato come sempre molto disponibile e puntuale).

Compresa l’impossibilità di avere delle info in giornata sui dati di base, ci siamo messi come obiettivo quello di costruire una procedura che consentisse di produrre un GTFS a partire dai dati forniti della SCAT e di verficarne la validità.

Davide Galletti ha creato uno script python, che a partire dalle info sulle fermate, e dalla timetable fornita da SCAT (che è abbastanza generica), produce i file secondo standard GTFS su rotte, corse e orari (routes.txt, trips.txt e stop_times.txt).

Abbiamo testato lo script con un set completo di dati (i file .txt presenti qui) usando il FeedValidator “ufficiale” e il file GTFS è risultato validato (con diversi warning che indicano la necessità di fare un altro check sui dati di base).

In conclusione:

  • Sarà necessario avere i dati geografici di base corretti e completi per tutte le linee. Giuseppe La Mensa, insieme al personale di SCAT, sarà in prima linea a occuparsene;
  • Con il set di dati completo, faremo delle modifiche e ovviamente dei test sullo script di creazione del file GTFS;
  • Documenteremo il tutto in modo da rendere autonoma la SCAT nella produzione del file GTFS e per potere replicare il processo anche in altri piccoli comuni.

GTFS + LOD

A valle del lavoro sul GTFS, è stato fatto un esperimento (Francesco Marchitelli, featuring Marco Brandizi) aggregando i dati del file GTFS di Lecce con dati provenienti dalla Linked Open Data cloud, per mostrare alcuni dei vantaggi nell’usare i Linked Data. Dopo aver convertito il file GTFS in RDF, sono stati inseriti gli eventi presenti a Lecce e caricato tutto quanto in un triple store. A questo punto è stata fatta una query di esempio che mostra i dettagli di un concerto organizzato al castello, con le informazioni correlate delle fermate dei bus che si trovano nelle vicinanze.

Il materiale si trova in questa cartella.

Un’analisi di rete dei finanziamenti europei alla ricerca

La sessione di Alberto era tosta, specie per quelli che non hanno partecipato al lavoro degli anni precedenti: Alberto ha raccontato i dettagli e la storia di questa proposta nella descrizione di questa sessione.

Purtroppo non è riuscita ad essere presente Baya Remaoun (andata via durante il pomeriggio del venerdì): alcune delle domande emerse sui dati CORDIS avrebbero avuto una risposta veloce, probabilmente.

Infatti una delle sfide per chi curiosa in dati che non conosce è riuscire a comprenderli con facilità.

Sono domande che porremo a Baya e alla squadra che gestisce la pubblicazione dei dati CORDIS nelle prossime settimane.

Altre domande hanno trovato risposta però: i risultati e la documentazione relativa al lavoro fatto si trovano in questa cartella del repo. C’è anche la presentazione (in formato Keynote) mostrata da Alberto e le immagini correlate (cartella).

Realizzare un elenco machine-readable di Albi POP

Nei giorni precedenti avevamo deciso di unificare i nostri hackathon entrambi relativi ad Albo POP, riconoscendo come la creazione di un elenco processabile dalle macchine di albi POP fosse un passo importante per molteplici attività, non ultima quella di creare aggregatori di albi. Per questo motivo, con l’aiuto e l’esperienza di Francesca Gleria abbiamo deciso di iniziare definendo un formato per la rappresentazione di albi POP.

Siamo partiti dal vocabolario del web semantico DCAT, raccomandazione W3C per la rappresentazione di dataset. L’albo POP è infatti null’altro che una rappresentazione, in formato RSS, del dataset degli avvisi di una pubblica amministrazione.

Abbiamo esaminato quindi la specializzazione di DCAT realizzata per le pubbliche amministrazioni italiane dcat_ap_it e la abbiamo applicata al nostro caso particolare. La peculiarità di albo POP è che il feed RSS viene generato a partire da una pagina web e il detentore dei dati (la pubblica amministrazione titolare dell’albo) non ha alcuna relazione con chi realizza e tiene su il servizio di albo pop. Inoltre, abbiamo tenuto in considerazione le specifiche RSS per albo pop.

Il lavoro ha generato un tutorial per pubblicare in DCAT_ap_it un elenco di albi pop, (che ci ripromettiamo di completare nei prossimi giorni.

Le informazioni originali sui dataset presenti nel catalogo in formato DCAT sono comunque rappresentabili in prima battuta con una semplice tabella. Abbiamo quindi strutturato opportunamente un Google Spreadsheet condiviso affinché fosse la base di partenza per la generazione automatica del file di catalogo, ma anche la sorgente dati di una visualizzazione web nello stile di Petrusino. L’idea è di alimentare il foglio mediante un form on-line e collegare ad esso uno script che lo traduca nel formato DCAT e una visualizzazione web che permetta di navigarlo.

FormAzione

Vocabolari, metadati: uno sguardo nel dettaglio

Al posto di una presentazione vera e propria c’è stata una discussione, guidata da queste slide.

Un’introduzione a Elasticsearch

Alessio Cimarelli ha tenuto una lezione introduttiva al database e motore di ricerca Elasticsearch, discutendone caratteristiche e potenzialità a partire dai dati live del progetto Ricostruzione Trasparente. Ecco le slide.

Varie

La proposta di Massimo Zotti: tradurre i videotutorial del progetto Copernicus

https://www.youtube.com/watch?v=KWeS1-TDy-0

Ringraziamenti e scuse

La vita dell’OpenDataFest17 è stata semplice e comoda. Un sentito grazie a:

  • Giuseppe La Mensa che ha coordinato tutto il prima, durante e dopo della logistica e i contatti con il sistema di accoglienza locali;
  • Erika Marconato che ha creato l’apprezzato communication kit (usato poi per magliette, banner, sito, social, ecc.. ), gestito la comunicazione su #ODFest17, raccolto le donazioni per le magliette, partecipato al gruppo di lavoro per la definizione di queste tre giornate;
  • Matteo Brunati che ha dato forma a questo raduno con diverse idee e spunti stimolanti, creato il wiki per il raduno, editato il sito e per essere stato Matteo Brunati;
  • Andrea Borruso che mostra a tutti noi come essere delle persone migliori;
  • Il Comune di Caltanissetta che, grazie alla sensibilità verso i temi del digitale innovativo dell’amministrazione Ruvolo, ha contribuito alle spese organizzative dell’evento.

Chiediamo scusa ad Alessandro Capezzuoli, per non essere riusciti a tenere al meglio i tempi del venerdì pomeriggio e non avere avuto l’opportunità di ascoltare la sua relazione dal titolo Professioni e orientamento: dagli open data al mercato del lavoro.

STORIFY

Disponibile uno storify ( a cura di Erika Marconato) che può dare un’idea di quello che abbiamo combinato: https://storify.com/ErikaMarconato/opendatafest2017

Incidenti stradali


Visualizzazioni di dati aperti del Comune di Palermo sui sinistri stradali nell’anno 2016

Il Comune di Palermo ha pubblicato vari dati aperti sui sinistri stradali avvenuti nel territorio comunale e rilevato dalla Polizia Municipale. Uno di questi dati è dell’anno 2016 e contiene ogni sinistro con qualifica del danno, data, ora e posizione in geo coordinati.

Ho realizzato una visualizzazione di questi dati con una mappa interattiva che offre vari temi per esplorare i vari aspetti spazio temporali dei dati.

La mappa è realizzato con iXMaps, un framework in HTML5 per creare mappe interattive in grafica vettoriale e configurabili con un semplice linguaggio descrittivo.

In seguito descrivo alcuni elementi e passi della realizzazione. Il codice intero è consultabile su GitHub.

I dati

Il portale ‘Open Data’ del comune di Palermo offre l’accesso ai dati sui sinistri stradali attraverso vari link nei formato Shape, CSV e KML con licenza CC BY 4.0 IT e fornisce i metadati in una nota:

IL DATASET VIENE FORNITO ANCHE IN FORMATO KLM E CSV. IL DATASET E’ STATO GEOREFERENZIATO DALL’ISP. SALVATORE PULLARA LEGENDA CODICI: M = MORTALE – SINISTRO CON ALMENO UN DECEDUTO; R = RISERVA – SINISTRO CON ALMENO UNA PERSONA IN PROGNOSI RISERVATA SULLA VITA (CHE SE SCIOLTA SI TRASFORMA IN UN NORMALE INCIDENTE CON FERITI F SE AVVIENE IL DECESSO IN UN MORTALE M); F = FERITI – SINISTRO CON LESIONI A PERSONE; C = COSE – SINISTRO CON SOLO DANNI A COSE.

Per la visualizzazione ho scaricato il formato CSV, che contiene tutte le informazioni sui incidenti incluso le posizioni in geo coordinati. Aprendo il CSV con LibreOffice si presenta cosi:

Le colonne inquadrate contengono le informazioni utilizzati per la visualizzazione.

Definire il 1. tema

iXMaps definisce una grammatica per mappe tematiche che consiste in una sintassi per oggetti Javascript (JSON) che configurano visualizzazioni creati direttamente dai dati.

Il primo tema della mappa interattiva visualizza ogni incidente con un punto con il colore del danno.

  • type“, “colorscheme” e “values” definiscono la rappresentazione come punti semplici con colore definito dalla colonna ‘Incidenti’ che può contenere i valori C,F,M o R per qualificare il danno.
  • lookupfield” definisce le colonne per la posizione (latitudine e longitudine) del punto.
  • dbtable” definisce un nome interno al dataset. Ci servirà in seguito per una procedure che elabora i dati e crea colonne aggiuntive per i temi con analisi temporali.
  • dbtableUrl‘ punta al dataset e ‘dbtableType‘ dice che e di tipo CSV
  • dbtableExt” definisce un file Javascript che contiene questa procedura.

 Ecco, il 1° tema della mappa

Leggenda e navigatore tematico

A destra, sovrapposto alla mappa, si trova la leggenda della mappa con elementi per navigare nelle varie tematiche della mappa interattiva, adattare la rappresentazione ed altri elementi della interfaccia utente.

  • mostra la leggenda degli elementi tematici della mappa
  • contiene una grafica riassuntiva degli valori respettiva alla posizione della mappa
  • offre strumenti per individualizzare il tema
  • gestisce la navigazione tra i temi

Elementi della leggenda

  1. Strumenti vari, da sinistra a destra: creare segnalibri, condividere la mappa,  definire filtri,  cambiare mappa di fondo informazioni, indice temi
  2. La leggenda del tema: mostra le somme attuali del tema clicca su un colore per vedere solo
    • il valore associato
  3. Strumenti per modificare la rappresentazione del tema
  4. Navigatore veloce pagine
  5. Navigatore temi

Come accedere ai vari temi della mappa

I temi della mappa sono divisi in aree tematiche e variazioni. La navigazione tra i temi avviene simile ad una presentazione:

  • per le variazioni di una tematica si scorre a sinistra o a destra
  • per cambiare la tematica in alto o in basso

si può usare sia le frecce visibili in basso o la rotellina della mouse, o un movimento sul touch screen

  • In cima a destra si accede a un indice dei temi. Un altra possibilità di arrivare direttamente a un tema.

Note tecniche sulla legenda

La leggenda è una pagina HTML fondata su Bootstrap e jQuery che viene caricata in un iframe è interagisce con mappa attraverso Javascript.

Il navigatore tra i temi, che segue la logica di una presentazione, con movimento orizontale e verticale da un tema all’altro, è realizzato grazie a fullpage.js  un jQuery plugin
di Alvaro Trigo.

Realizzare temi

Per realizzare un tema definito con oggetto JSON, come descritto sopra, ci serve una funzione.

dell’API di iXMaps. La chiamata viene codificato in <a> tag nascosto della pagina HTML e l’attivazione avviene quando l’utente cambia la pagina a sinistra/destra o in alto/basso.

Il <a> tag ci serve per la posizione alla quale viene inserito la leggenda del tema.

Tutto il codice della ‘storia’ della mappa, cioè la pagina HTML che gestisce i temi e la leggenda si trova su GitHub: index.html

I temi della mappa

Tutti i temi della mappa sono definiti nel file themes.js

1° tema – incidenti e danno

Il primo tema visualizza ogni incidente con un punto con un colore in relazione al danno.
Il trema ha alcune variazioni, che possono essere attivati con il scorrere a destra o sinistra.
I variazioni declinano l’applicazione di aggregazioni e varianti grafici con l’intenzione di aumentare la visibilità di zone con caratteristiche simili. Alla fine è una sequenza di sperimenti fatto con i strumenti analitici e grafici di iXMaps con la speranza che tutti variazioni possono aiutare per capire i dati.

  • la 1° variante aggiunge un effetto ‘incandescenza’ intorno ai singoli punti. Questo porta ad una maggiore visibilità delle ‘zone calde’ dove il punti si sovrappongono.
  • la 2° applica un’aggregazione per griglia
  • la 3° variante aumenta il rapporto tra numero di eventi e grandezza degli cerchi e riposiziona i punti aggregati per griglia nel centro del valore dell’aggregazione: in effetti, i punti tornano sulle strade!

Aggregazioni dinamiche

Tutti temi, tranne i primi due, implementano un’aggregazione degli singoli eventi per una griglia rettangolare definita in pixel dello schermo.

Cosi, in relazione allo zoom della mappa, il numero degli eventi che cadono in un rettangolo cambia, è in conseguenza il livello di aggregazione fino a mostrare i singoli eventi.

La leggenda del tema mostra sempre il conteggio degli elementi attualmente visibile nella mappa, si aggiorna spostando o zoomando la mappa.

2. area tematica: Analisi temporali

Nella 2° parte, la visualizzazione propone delle analisi temporali degli sinistri per:

  • giorno della settimana
  • fascia oraria
  • mese del anno

Per poter configurare questi temi dobbiamo prima creare nuove colonne nei dati con valori espliciti respetto ai analisi temporali, come per esempio il giorno della settimana (da 0 a 7). Per questo ci serve una procedura definita in ‘preprocess.js‘:

che crea le seguente nuove colonne

per poter definire il seguente tema che visualizza il numero di incidenti per giorno della settimana.

Quasi tutto viene descritto con la variable ‘type’

  • CHART | SYMBOL | EXACT| FIXSIZE | SEQUENCE | PLOT | LINES | AREA
    forse è un po’ strano, ma definisce una curva come sequenza di simboli per ogni valore esatto (EXACT) della colonna di valori ‘GiornoDellaSettimana’; i valori ammessi sono definiti nal array “values”
  • BOX | GRID
    fa che la curva a un fondo
  • ZEROISVALUE
    ammette zero come valore
  • AGGREGATE | RECT | SUM
    definisce l’aggregazione dei valori per una griglia rettangolare la quale dimensione viene definito con la variable “gridwidth” in 100 pixel (dello schermo);
    qui vengono creati i valori delle curve; per ogni rettangolo della griglia si crea le somme degli incidenti per giorno della settimana; importante: “field” è “GiornoDellaSettimana” il “type” contiene ‘EXACT’ e i valori sono definiti in “values”
  • GRIDSIZE
    definisce la dimensione dei grafici come la griglia

3. area tematica: Analisi di pericolosità

La 3° parte è un tentativo di creare un indice sintetico della pericolosità calcolando la somma degli incidenti con feriti o morti diviso per il numero di incidenti per una griglia esagonale. I risultante frazione viene normalizzato tra 0 e 1 e visualizzato con crescente opacità di colore e numero testuale.

Creare mappe individualizzati e condividerle

Per ultimo vorrei promuovere la possibilità di creare mappe individualizzate da partire dei temi definiti e creare o un segnalibro o ottenere un codice per includere il tema personalizzato in una pagina HTML o in fine anche una URL unica per riprodurre la mappa creata in qualsiasi browser con capacità HTML5.

Qui, per esempio, ho creato una visualizzazione ‘nuova’ cambiando la mappa del fondo e selezionando solo una parte del tema nella leggenda. 

Utilizzando l’icona ‘share’ nel menu, si apre una finestrina con i codici per inserire la mappa e l’URL che contiene tutto il tema. L’URL viene anche offerta in formato corto usando il servizio WEB tinyurl.com:
http://tinyurl.com/kayylhp – Usando questo link si riproduce questa mappa.

Alcuni link

La mappa interattiva
Il codice su Github
fullpage.js di Alvaro Trigo
bootstrap HTML, CSS, and JS framework
icomoon free Icon Pack

Tutorial da file pdf a shapefile

Dopo il comunicato stampa sul sito del Comune di Palermo   Tram – Entra nel vivo la fase di progettazione per le nuove linee verso ZEN-Mondello, Bonagia e lungo la costa con Ciro Spataro abbiamo pensato di fare una delle nostre mappe…ovvero la mappa del ferro come l’ha chiamata Ciro.

Per realizzare la mappa c’è quasi tutto, occorrono solo le nuove linee del tram in formato vettoriale.

Gran parte dei vettori, (linee tram esistenti, passante ferroviario, etc etc) sono reperibili su OpenStreetMap, facili da estrarre con overpass-turbo.eu, qui un articolo molto utile su geomappando  o un interessante video di GISTIPSTER.

In alternativa si può scaricare l’intera cartografia di Palermo, o qualsiasi altra città, da Estratti OpenStreetMap,

Per ricavare i vettoriali delle nuove linee del tram abbiamo pensato di usare il file pdf allegato al comunicato stampa Tavola 14 – planimetria riassuntiva scala 25.000 dell’intero sistema di trasporti su rotaia.

La stessa e tutte le altre tavole del progetto si trovano sul sito del Comune di Palermo, (qui l’intero progetto in file pdf del trasporto pubblico di massa)

Screenshot del file pdf Tavola 14 – planimetria riassuntiva scala 25.000

L’idea è semplice…

  1. Convertire il file pdf in dxf
  2. Georeferenziare il nuovo file ottenuto con Qgis
  3. Verificare il risultato della georeferenziazione e correggere manualmente eventuali imperfezioni.
  4. Esportare i nuovi file in versione geojson per umap

Conversione da PDF in DXF

Per la conversione da pdf a dwg/dxf in rete si trovano tanti programmi, open source e non.

Dopo qualche ricerca e qualche test, abbiamo scelto di usare progeCAD 2017 Professional in versione di prova gratuita completa per 30 giorni. Gli stessi risultati si possono ottenere con DraftSight o con il più semplice PDF to DWG Converter.

Qui trovate un breve video che spiega come caricare un file pdf in progeCAD

Qui un video che spiega come caricare un file pdf in DraftSigh

Seguendo il video dimostrativo di progeCAD 2017 Professional si intuisce facilmente come caricare un file pdf

Dopo qualche minuto di elaborazione il pdf è stato convertito in dwg.

L’importazione è riuscita, adesso non resta che pulire il file e lasciare solo quello che ci interessa.
Come si può notare dalle immagini ad ogni colore presente nel file pdf corrisponde un layer nel dwg.

A questo punto disattiviamo/eliminiamo tutto ciò che non ci interessa e facciamo un po di ordine.

Rinominiamo i layer, così li riconosciamo subito.

Con il comando elimina, presente nel menù File → Utilità → Elimina

Eliminiamo tutto il superfluo, questa utility, ci consente di tenere il file sempre pulito e leggero.

Una volta ripulito il file, è necessario posizionare le linee sulle coordinate di Palermo, in modo da non complicarci troppo il lavoro con Qgis.

Per far ciò, abbiamo inserito come riferimento esterno, un file georeferenziato e convertito in dxf della base cartografica scaricata da OpenStreetMap.

Dal menù Inserisci → riferimenti esterni, carichiamo una parte della cartografia OSM, (dallo screenshot si nota poco, ma è quel puntino all’interno del cerchio rosso)

Come si può notare le linee importate dal file pdf, sono fuori scala e posizionate a caso.

Utilizzando il comando Allinea e con un po di pazienza riusciamo, traslare le nuove linee del tram sulle coordinate di Palermo.

Adesso le linee, grossolanamente, sono sulle coordinate di Palermo, affineremo la georeferenziazione con Qgis.

Per ottenere un buon risultato finale, è opportuno georeferenziare separatamente le 4 linee che ci interessano.

Di conseguenza salviamo/esportiamo ogni linee in un nuovo file dfx.

Ecco un file dwg con la singola tratta c – d, grossolanamente posizionato sulle coordinate di Palermo.

La georeferenziazione

Per questa seconda fase è necessario un software gis, nel nostro esempio usiamo Qgis e il plugin Plugin Vector Bender spiegato in questo video da Salvatore Fiandaca

Per prima cosa importiamo il file dxf in qgis, per farlo abbiamo diversi metodi, usare i plugin  dxf2shp o dxf import/convert, o nel caso di file dfx con molte più informazioni si può usare Spatialite, tutto spiegato sempre da Salvatore Fiandaca nel suo blog pigrecoinfinito

Dove aver caricato il file dxf, salviamo lo stesso in formato shp, perchè sul formato dfx non possiamo fare modifiche.

Attiviamo il plugin Vector Bender ed iniziamo ad inserire punti per la georeferenziazione.

Questo è il risultato di un primo test, più punti inseriamo e più precisi siamo, migliore sarà il risultato finale.

…e dopo qualche  tentativo e dopo alcune correzioni manuali la linea “sembra” essere al suo posto. Salviamo il lavoro appena fatto in un nuovo file shp.

Sicuramente non è precisa come l’originale, ma rende l’idea.

Per completare il lavoro, basta ripetere la stessa procedura per le altre 3 linee rimanenti

Qualcuno si starà chiedendo… Ma non era più semplice ridisegnare le linee…?
Forse si, ma il tempo e la pazienza non mi mancano e soprattutto mi piace sperimentare, magari si può usare questo metodo con file pdf molto più complessi, ed in quel caso si risparmia un bel po di tempo…

Osservare il cambiamento di una città grazie alla cartografia: il caso di Palermo

Dopo aver letto l’articolo di @napo mappa di Trento 1915 – da un libro di Cesare Battisti, ne sono rimasto affascinato, sia per il gran lavoro fatto dalla biblioteca comunale di Trento, nel digitalizzare il contenuto del libro e renderlo di dominio pubblico e sia per la parte tecnica e dall’analisi, che si può fare agevolmente, mettendo a confronto una carta storica ed una di oggi.

Brevemente, con il plugin leaflet-tileoverlay-mask, si ottiene un effetto “spot” sulle cartografie, che ci permette di mettere a confronto, dinamicamente e istantaneamente, una carta storica con lo stato attuale.

La realizzazione tecnica, è più semplice di quello che si pensa

Subito ho pensato come poter usare questa tecnica sulle cartografie storiche e non di Palermo.

Il primo test l’ho fatto, con la cartografia del nuovo schema di massima del PRG di Palermo presentato dal Comune nel 2015 e georeferenziata da @cirospat, con mapwarper.net 

constatando, in prima persona, la bontà del lavoro fatto da @napo.

In questo caso ho semplicemente sostituito la base cartografica “L.tileLayer.mask” di riferimento, nel file di esempio fornito con plugin leaflet-tileoverlay-mask”.

Inserendo la nuova mappa tiles e centrando la mappa sulle coordinate di Palermo, il lavoro è fatto.

Nuova base tiles

var prg = L.tileLayer.mask(‘http://mapwarper.net/maps/tile/19437/{z}/{x}/{y}.png

Zoom e coordinate di base

var map = L.map(‘map’, {attributionControl:true}).setView([38.11127,13.3534422], 14);

Usando la versione originale del plugin leaflet-tileoverlay-mask, ho notato un limite, ovvero, l’impossibilità di utilizzare più basi cartografiche, per fare l’analisi.

Con il contributo fondamentale di @piersoft, sono riuscito a superare l’ostacolo.

Dopo questo piccolo test, mi sono chiesto, come poter sfruttare al meglio la tecnica.

Confrontandomi con @aborruso e @cirospat, del gruppo di opendatasicilia, sull’uso della tileoverlay-mask e conoscendo il Portale Cartografico, realizzato dalla Sispi spa (società in house del comune di Palermo), subito abbiamo pensato di utilizzarla, con le cartografie storiche. Rese disponibili dall’ottimo lavoro di scansione e georeferenziazione del geom. Liborio Plazza, dipendente del Comune di Palermo e  dalla Sispi.

L’obiettivo era chiaro, costruire un atlante, dove poter mettere a confronto, velocemente, le carte storiche con la città dei nostri giorni.

Scaricate e georeferenziate le cartografie storiche, da @aborruso e @cirospat, a me, non è rimasto altro da fare, che organizzare il materiale e dargli una veste grafica user friendly.

Spero di esserci riuscito!

L’URL è questo http://siciliahub.github.io/mappe/atlante_carto_pa/index.html

Gli strumenti che abbiamo utilizzato per il il progetto dell’atlante sono:

  1. Dati da un server WMS: scaricarli, riproiettarli, comprimerli, tassellarli e piramidarli da riga di comando, di @aborruso;
  2. Leaflet, per creare l’interfaccia di web mapping;
  3. Leaflet-hash, per generare URL che contengono livello di zoom e posizione corrente;
  4. Leaflet-tileoverlay-mask, per la sovrapposizione delle tile con effetto svg maschera, un effetto “spot“ che ci permette di vedere come era la città al tempo in un particolare punto;
  5. Sidebar-v2, per creare sidebar a scomparsa;
  6. Leaflet.MousePosition, è un semplice controllo della posizione del mouse. Esso mostra le coordinate geografiche del puntatore del mouse, mentre viene spostato sulla mappa;
  7. Leaflet-graphicscale, è un semplice barra di scala con effetto animato al cambio dello zoom;
  8. Map Warper, è uno strumento open source per georeferenziare immagini, nato grazie al contributo del progetto spacetime della Biblioteca Comunale di New York, sviluppato, ospitato e mantenuto da Tim Waters;
  9. Btns, è un piccolo modulo CSS che permette di inserire pulsanti reattivi.
  10. Leaflet.Basemaps, consente di creare un controllo dell’interfaccia utente per la scelta della mappa di base utilizzato sulla mappa.

Il codice script usato per il progetto è liberamente scaricabile dalla pagine html dell’atlante. Basta sostituire i relativi L.tileLayer.mask e il setView([38.11127,13.3534422] per adattarla alle proprie esigenze.

Gli sfondi della mappa sulla quale visualizzare le cartografie storiche sono vari Openstreetmap, Google Road e Satellite, Esri Standard e Satellite.

Alcuni esempi

Il bello di questa mappa è scoprire come questa città sia cambiata e ognuno troverà degli esempi diversi nei luoghi che conosce meglio.

Villa Trabia

La via Piersanti Mattarella, già “Via Villa Trabia” si estendeva da via Notarbartolo a poco dopo l’ingresso del CEI (l’istituto Gonzaga).

Un “fiume” limitrofo a Villa Sperlinga

Il “Passo di Rigano” che costeggia Villa Sperlinga è un colpo d’occhio.

Il mare era “più vicino”

Era subito dopo Porta Felice e probabilmente se ne sentiva molto più forte la presenza.

……. e ora scopri anche tu i cambiamenti nel tuo quartiere, …..buon viaggio nella storia cartografica della città di Palermo