Archivio

Posts Tagged ‘Github’

GeoSpatial Data Version Control: GitHub permette di vedere l’evoluzione di un file geojson nel tempo


Come già accennato in un precedente post, GitHub può essere utilizzato come repository per geodati memorizzando dati geografici in formato GeoJSON e di visualizzandoli utilizzando Leaflet.

Da oggi è disponibile una nuova features: quella di vedere l’evoluzione di un file geojson nel tempo confrontando tra loro le modifiche del dato

GitHubHistory

E’ anche possibile tra l’altro customizzare le features specificandone proprietà come colore di reimpimento, opacità, ecc …

Fonte: GitHub Blog
.

Annunci
Categorie:Progetti Tag:, ,

GitHub visualizza GeoJSON usando Leaflet


Le possibilità offerte da GitHub di essere utilizzato come repository per geodati oggi si sono ampliate di una nuova feature:  memorizzare dati geografici in formato GeoJSON e di visualizzarli utilizzando Leaflet.

Chicago-GitHub

La notizia è molto interessante e, sebbene con dei limiti tutti da verificare in relazione alle dimensioni dei GeoJSON supportati, apre importanti prospettive.

Ricordo che la stessa OpenGeo con GeoGit sta lavorando sull’utilizzo di GitHub per provare ad affontare il tema della creazione e gestione dei dati geografici con gli stessi principi collaborativi con cui viene trattata la gestione del codice sorgente, e che la città di Chicago sta già utilizzando la piattaforma per condividere alcuni dei suoi open data georiferiti con gli utenti.

Fonte: GitHub Blog

GeoGit: un nuovo tool (in alpha version), offerto da OpenGeo


Ho già citato in un precedente post l’esperienza della città di Chicago che, per condividere i propri dati con gli utenti ha pubblicato alcuni dei suoi open data georiferiti su GitHub sollecitandone i fork per gli aggiornamenti,

Ora è stato recentemente annunciato da OpenGeo un nuovo prodotto open source, rilasciato in alpha version, denominato GeoGit che ha come obiettivo (cito testualmente …), “…. to propose a new approach to working with spatial data, recommending a shift from treating spatial data simply as data to considering it as programmers do source code.”

Altra frase che ha suscitato il mio interesse è la seguente: “ …. We propose that organizations can benefit from crowdsourcing spatial data while retaining control over their information repositories and maintaining authoritative data sources.

I principi su cui si basa questa iniziativa sono stati enunciati in tre white papers di cui riporto i riferimenti:

Provo a riassumere nel seguito quanto descritto nel dettaglio nei tre papers di cui sopra di cui consiglio la lettura e a cui comunque rimando.

La sfida che viene proposta è sicuramente innovativa, quanto mai impegnativa ma al tempo stesso molto affascinante: provare ad affontare il tema della creazione e gestione dei dati geografici con gli stessi principi collaborativi con cui viene trattata la gestione del codice sorgente.

Questo offre prospettive interessanti come pure l’obiettivo dichiarato di ridurre il tempo dedicato alla gestione del dato stesso per andare ad aumentare il tempo dedicato a creare valore aggiunto (funzionalità e servizi), su di esso

L’idea non è completamente nuova: alcuni tentativi di introdurre un sistema distribuito di controllo di versione sui dati geografici è già stato affrontato nel tempo da ESRI con ArcSDE e dalla stessa ORACLE con Workspace Manager.

Lo stesso progetto OpenStreetMap offre un sistema di versionamento, per quanto intorno ad un unico database centralizzato.

L’idea che guida OpenGeo nell’adattare i concetti chiave del versionamento distribuito tipico del mondo software ai dati spaziali, si basa su una similitudine che è la seguente: molte persone che usano il software non sono interessate ad ottenere accesso o avere maggiore conoscenza sul codice sorgente, analogamente a come molte persone che usano le mappe non sono interssate ai dati su cui queste di basano.

Al tempo stesso come gli sviluppatori possono essere interessati al codice sorgente di un’applicazione per poterlo modifcare, correggere. migliorare, coloro che sono interessati ai dati spaziali possono avere interesse nel modificarli, correggerli e migliorarli.

OpenGeo auspica che, analogamente a come è avvenuto nel mondo del software, dove questo approccio di condivisione ha portato ad una maggiore diffusione e consapevolezza unita ad un aumento della qualità del software, lo stesso avvenga nel mondo dei dati spaziali.

Quanto proposto da OpenGeo sembra andare oltre il modello impostato e portato avanti con successo da un progetto importante come OpenStreetMap il cui obiettivo è quello di raccogliere, e ridistribuire a tutti, in un’unica banca dati le informazioni spaziali attraverso le operazioni di edit fatte da un numero di crowdmapper volontari e appassionati sempre maggiore: si propone un modello collaborativo che richiede un nuovo paradigma e nuove problematiche da dover affrontare.

Un approccio che porti ad un modello collaborativo basato su un modello di versionig distribuito sui dati dovrebbe facilitare la collaborazione tra diverse organizzazioni / enti che hanno necessità di utilizzare e gestire i medesimi livelli informativi.

Ad oggi queste esigenze, per quanto le diverse iniziative / strumenti / tools che gravitano intorno ai concetti di Spatial Data Infrastructure (SDI), in senso lato, cerchino di mitigare la duplicazione di dati, non hanno ancora avuto una risposta esaustiva e resta sempre necessaria un’autorità centrale che si faccia carico di integrare (con diversi livelli di possible automatismo ma pur sempre con un elevato grado di controllo umano), le diverse sorgenti di informazione.

Un modello di versionig distribuito sui dati potrebbe semplificare la collaborazione, in quanto ogni organizzazione /ente manterrebbe il controllo completo sulla propria copia dei dati (potendovi applicare i propri processi di quality assurance), e non cedere così il controllo ad un’autorità esterna, ma al tempo stesso avrebbe visione di ogni change presenti su ogni repository delle altre organizzazioni e decidere se e quando effettuare i merge (per chi interessato nell’articolo originale viene riportato un esempio di dettaglio).

Il modello proposto potrebbe essere anche strumento abilitante per permettere un colloquio fattivo tra due mondi che ad oggi proseguono il loro cammino parallelamente guardandosi a distanza: il mondo dei dati geografici “ufficiali” o certificati (authoritative), generalmente gestiti da organizzazioni governative in grado di certificare le proprie informaizoni, ed il mondo della neo-geografia o del Volunteered Geographic Information (VGI) in cui rientrano tutti gli utenti crowdsourced legati a realtà quali OpenStreetMap, Google MapMaker, Ushahidi, ecc … .

I due mondi hanno ovviamente cicli di vita applicati ai dati completamente diversi: l’approccio VGI basato sul crowdsourcing permette a chiuque di fare edit dei dati, permettendo così si avere dati più aggiornati per quanto potenzialmente (????!!!!), passibili di errori, mentre l’approccio “authoritative” permette un modello centralizzato in cui il dato viene aggiornato e alterato in modo controllato, permettendo un dato di maggiore precisione (????!!!!), ma inevitabilmente con tempi più lenti.

Con un modello di versioning distribuito sui dati le organizzazioni / enti ufficiali potrebbero disporre del meglio di entrambi.

Infatti se da un lato con lo stesso approccio potrebbero collaborare con  altre organizzazioni / enti come descritto in precedenza, dall’altro potrebbero anche collaborare con singoli o gruppi interessati a vario titolo al miglioramento del dato stesso.

Il fornitore del dato può continuare a pubblicare versioni dei dati pienamente testati e verificati con un ciclo di vita del dato più “lento” per chi interessato a questa tipologia di dato, mentre chi usa il dato e ha necessità di avere un livello informativo più generale ed aggiornato, anche a scapito della sua certificazione, può mantenere una copia del dato certificato su cui fare le proprie modifiche / aggiornamenti e periodicamente riportarle sul repository del dato “authoritative” da cui questi poi rientreranno nel ciclo di vita del dato ufficiale (anche qui per chi interessato nell’articolo originale viene riportato un esempio di dettaglio).

Un modello di versioning distribuito sui dati avrebbe vantaggi anche nel caso di utilizzo di strumenti portabili di acquisizione di dati sul campo dove spesso non è garantita la copertura di rete o la sua affidabilità. In questo caso infatti il dispositivo mobile potrebbe essere visto come l’ennesimo repository da sincronizzare verso la base dati centrale o master.

A livello di rete questo tipo di approccio potrebbe trovare ulteriori vantaggi se si considera che il traffico potrebbe essere limitato rispetto ad una situazione tradizionale di upload / download in quanto sarebbero interessate solo le features create / modificate e non l’intero livello informativo.

Alcuni vantaggi, non molto in realtà se confrontato all’effettiva necessità ed onere, si potrebbero avere anche a livello di metadati in quanto gli strumenti di controllo di versione raccolgono metadati automaticamente, alcuni dei quali potrebbero essere utilizzati per tracciare la storia di ogni dataset per conoscere chi ha modificato cosa quando.

OpenGeo, dopo aver valutato diverse alternative, ha infine scelto di prendere in prestito le idee migliori da un software, non-geospaziale,  di versioning distribuito come Git e di costruire qualcosa di nuovo che fosse in grado di gestire dati geospaziali.

Si tratta di un primo passo ma altri possibili sono previsti come possibili alternative / evoluzioni:

  • usare un approccio “ibrido” introducendo un database spaziale per fornire acecsso rapido e indicizzazione spaziale ai dati lasciando a Git le parti di versioning e history
  • usare la tecnologia che sta alla base di CouchDB. Questo approccio permette di seperare il back end ed il front end così che se qualche novità interessante si presentasse sul mondo degli strumenti open source sia possibile e facilitato il suo utilizzo

GeoGit non è direttamente compatibile con Git o GitHub ma adatta i concetti di base di Git al contesto dei dati spaziali e si basa sia su GeoSynchronization Service module (una specifica OGC sulla sincronizzazione dei dati), sia sugli standard del Web Feature Service 2.0 (WFS-T). Le features sono implementate usando il  formato binario Hessian e il formato Well Known Binary (WKB), standard OGC che è ampiamente supportato da diversi tool ( per chi interessato nell’articolo originale viene riportato un esempio di dettaglio).

Ovviamente ci sono diversi punti ancora aperti: editando direttamente un datastore POSTGIS con un qualunque client gis desktop senza passare attraverso GeoGit si creano situazioni di inconsistenza, in modo del tutto analogo a come avverebbe se, in un utilizzo tradizionale di GitHub,  si facessero accessi diretti sul repository remoto senza fare il push delle modifiche sul repository locale.

Ovviamente per permettere di poter lavorare in una situazione “mista” in cui si possano fare editing sia in modo tradizionale sia attraverso l’utilizzo di WFS-T sarebbe necessario implementare delle strategie di notifiche sul repository attraverso trigger a livello del db POSTGIS oppure con plugin specifici sui vari client, quindi un mondo ancora piuttosto complesso.

Altri limiti attuali sono:

  • è possibile utilizzare repositories con versioni lineari quindi non ci sono possibilità di fare branch, diff o rollbacks
  • è stato testato su POSTGIS ma è stato progettato per lavorare con qualunque datastore che possa restituire degli ID stabili e quindi dovrebbe lavorare con ORACLE, ArcSDE, SQL Server e DB2

Al netto di queste limitazioni e come detto in precedenza il prodotto è disponibile nella sua alpha version.

Proseguono le attività tra cui:

  • un’interfaccia javascript based realizzata sulla base di GXP così da essere facilmente incorporata in GeoExplorer, GeoNode e altre applicazioni che permetta di avere un’applicazione demo di front end così da interagire con la componente di back end
  • uno strato di API javascript che permetta funzionalità di “diff”, “rollbacks” ma anche visualizzare l’history, fare confronti tra versioni sia sui dati spaziali sia sui dati associati. Questa fase è considerata molto complicata in quanto si tratta di andare ad affrontare concetti completamente nuovi se applicati ad un contesto geospaziale: quali sono i significati di un “diff”, un “merge” o un “clone” nel contesto del versionamento distribuito di dati spaziali?
  • integrazione in GeoNode
  • integrazioni sia nel mondo Mobile sia nel mondo Desktop. In particolare per quest’ultimo aspetto c’è da considerare la proliferazione di strumenti sia open source sia proprietari

In conclusione quindi GeoGit si presenta come soluzione tutt’altro che matura, anzi, nella versione attuale decisamente limitata, ma indubbiamente si tratta di un progetto interessante da seguire nelle sue evoluzioni.

Fonte: Blog OpenGeo

Crowdmapping: se ne parla sempre più spesso


Seguendo sulle rete le news legate al mondo GIS e i suoi dintorni,  in questi ultimi tempi emerge in misura crescente l’interesse sul fenomeno del crowdmapping.

Iniziano ad esserci esperienze o tentativi di un maggiore coinvolgimento della componente volontaristica da parte di Enti, Pubbliche Amministazioni, ecc .. nel processo di raccolta e condivisione distribuita delle informazioni georiferite.

Le modalità sono le più diverse ed eterogenee, ma il segnale comune sembra essere quello che due mondi, quello delle istituzioni pubbliche che “ufficialmente” detengono i dati e il mondo del VGI (Volunteered Geographic Information) in generale, inizino a parlarsi cercando collaborazioni ed interazioni.

Sicuramente il movimento degli Open Data ha contribuito a creare il terreno con l’humus giusto su cui basare queste collaborazioni, anche perchè una volta che i dati sono resi liberamente disponibili, occorre capire come gestire i processi di aggiornamento del dato stesso, che oggi potrebbero avere modalità e canali diversi rispetto  al recente passato, si pensi alla distribuzione dei dispositivi mobili in grado di raccogliere o comunque fornire supporto ed essere abilitanti per la raccolta / aggiornamento di molti dati, e all’esistenza di realtà / comunità come quella di OpenStreet Map in grado di avere una platea molto ampia di potenziali (ed entusiasti …), contributori.

In questo contesto riporto alcune delle iniziative che considero più significative.

HealthMap, la crowdmap per le emergenze sanitarie (fonte: Sardinia OpenData), è un progetto basato su Ushahidi che offre una mappa utilizzata per monitorare epidemie e informazioni sulla salute in tutto il mondo.

La mappa, gestita da un team del Boston’s Children’s Hospital,  rappresenta i tipi di malattia e luoghi in cui si manifestano, il numero di casi, gli avvisi e gli avvertimenti di eventuali epidemie

Lo strumento include anche informazioni sui sintomi della malattia, così come una serie di dati sulla salute degli animali e dell’ambiente.

I dati vengono estratti da diverse fonti aperte, relazioni dei testimoni oculari, aggregatori di notizie on-line e validati rapporti ufficiali. Le fonti includono dati dell’Organizzazione Mondiale della Sanità, dell’Organizzazione mondiale per la salute degli animali, l’alimentazione e l’agricoltura (UN) e altri.

Attraverso un processo automatico, i dati vengono analizzati ogni ora, prendendo in considerazione le diverse tipologie di malattia e la loro posizione, che man mano vengono ritirate dal set di dati.

HealthMap è disponibile online e su dispositivi mobili, come Android e iPhone.

HealthMap anche creato l’applicazione Outbreaks Near Me, che fornisce le ultime segnalazioni di epidemie e malattie infettive. Inoltre, è stata creata anche Flu Near You, che tiene traccia della diffusione del virus dell’influenza chiedendo ai partecipanti di compilare sondaggi periodici sullo stato di salute. Infine c’è il Vaccine Finder che può essere aggiunto al tuo sito web sotto forma di widget.

Lo U.S. Geological Survey  ha attivato un programma denominato The National Map Corps (fonte: @pietroblu) che ha come obiettivo quello di espandere il coinvolgimento dei volontari nel migliorare la raccolta delle informazioni sia aggiungendo nuove features, sia correggendo dati esistenti usando The National Map database. I livelli informativi coinvolti sono scuole, ospedali, uffici postali, stazioni di polizia, ecc ….

Sono già stati fatti dei progetti pilota in Colorado che hanno avuto una durata di 10 mesi coinvolgendo 143 volontari che hanno operato su più di 6.400 strutture.

Ora il progetto saràò esteso ad altri stati americani quali: Arkansas, Alaska, Colorado, Delaware, Georgia, Idaho, Maryland, Michigan, Montana, North Dakota, New Jersey, New Mexico, Ohio, Oregon, South Carolina, Utah, Washington, West Virginia.

I dati raccolti grazie ai volontari saranno disponibili agli utenti “free of charge

La città di Chicago ha deciso di utililizzare GitHub per condividere i propri dati con gli utenti sollecitandone i fork per gli aggiornamenti.

github-chicago

L’utilizzo di GitHub per tale scopo è senz’altro di interesse e quindi degno di nota.

Questa iniziativa non ha intenzione di andare a sostituirsi al portale degli open data di Chicago,  ma è stata presentata come un esperimento per testare un modello collaborativo.

La scelta di GitHub è stata fatta in quanto lo strumento permette di fare download, fork e merge sui dati originali analogamente a come avviene per la gestione software per cui lo strumento è principalmente utilizzato.

E sin qui abbiamo esempi di crowdsourcing spontaneo, ma riporto anche un  riferimento di un caso di crowdsourcing diversamente spontaneo nell’utilizzo di tools di CAPTCHA per riconoscere o verificare un numero civico all’interno della piattaforma Blogger di Google all’atto della conferma di commenti a dei post, cosa che ovviamente sembra essere un po’ per lo meno borderline rispetto ad un coinvolgimento consapevole da parte dell’utente.

 

ESRI entra nel mondo GIS open source?

6 settembre 2012 1 commento

Qualche giorno fa è apparsa sulla rete la notizia che ESRI si presentava ufficialmente su Github con l’obiettivo di iniziare a mettere, e condividere, in modalità open source parte del proprio codice.

Quest’iniziativa sembra nascere, come primo risultato tangibile, della recente acquisizione da parte di ESRI di GeoIQ, news che ha suscitato un po’ di scalpore in quanto sembrava la classica notizia del “gigante” si mangia un “piccolo concorrente” scomodo con  l’obiettivo di farlo sparire.

Il tono dell’articolo, che è comparso su un blog ufficiale ESRI, sembra tuttavia pieno di aspettative e con obiettivi di mettere davvero in condivisione, anche ad attori esterni, parte del codice dei prodotti ESRI.

Sinora il gigante (nel panorama GIS), di Redlands ha sempre avuto un approccio per lo meno “personale” con l’open source reinterpretando (spesso a suo modo ……), negli anni passati il concetto e in ogni caso ad oggi gli unici prodotti open source che mi ricordo sono ArcGIS Editor for OpenStreetMap, l’estensione di ArcGIS per fare editing dei dati di OSM (non so dire quanto nella realtà utilizzata dalla comunità OSM), ed Esri Geoportal Server, e, se vogliamo, le ArcGIS Mapping API.

A dire il vero negli ultimi due – tre anni l’approccio sembra essere un po’ cambiato, in quanto lo stesso Jack Dangermond nelle interviste ufficiali (vedi ad esempio i Q&A in corrispondenza con le ESRI International User Conference), suggerisce ai progetti soluzioni tecnologiche “miste”, per fruttare al meglio caratteristiche e potenzialità sia delle soluzioni proprietarie (ESRI ovviamente), sia del mondo Open Source.

Ora sembra che i ragazzi di GeoIQ vogliano provare a dare un deciso cambio di direzione, facendo leva a sfruttando la loro esperienza e skill, per portare ESRI ad una maggiore partecipazione e contribuzione nell’open source, che vada al di là dell’ospitare codice sorgente offerto per lo più dagli utenti, come avviene nel mondo ArcScripts.

Sembrano anche essere consci che non sarà un lavoro nè facile nè veloce (” ….More of Esri’s code should and will be open sourced in the coming days, weeks, months, and years. Patience is needed, of course, but we’re on our way…..“), ma nel contempo sembrano essere altrettanti decisi a perseguire questa strada.

Come strumento per la condivisione e la collaborazione, sia interna sia esterna (“ …..We want Esri developers to  have faces, be active on Github, and work more closely with those outside the company. .. ,“) hanno scelto Github sui cui quindi progressivamente  dovremmo vedere la centralizzazione del software open source ESRI.

La presenza di ESRI su Github si concentra su due account separati (non se ne capisce bene il senso ma tant’è …..),  http://github.com/esri e http://github.com/arcgis dove il primo ospiterà codice software più interessante e generico  rivolto anche ad una comunità “non GIS” o non strettamente GIS come esempi di visualizzazione o di scripting, mentre il secondo si concentrerà sul codice software più legato alla piattaforma ArcGis come templates ArcGIS Online ed estensioni per ArcGIS Dektop.

Siamo di fronte ad un cambio “epocale” che potrebbe davvero portare nel prossimo futuro un nuovo attore nel campo  dell’open source nel mondo GIS oppure si tratta di una mera operazione di facciata? Come si dice … ai posteri  l’ardua sentenza !!!

Sicuramente una mera operazione di marketing, una nuova reinterpretazione del concetto di open source, una  riproposizione di cose già viste (ArcScripts … ), potrebbero essere solo dei pericolosi boomerang, anche di immagine, e non porterebbero ad alcun risultato positivo.

Se invece ESRI avesse deciso di rivedere davvero le proprie politiche in tal senso sicuramente ne ha tutte le capacità,  skill,  konw-how e potenzialità tecnologiche per giocare un ruolo attivo in questi campi.

Vista l’offerta via cloud della propria piattaforma ArcGIS Online (sia direttamente attraverso ESRI ma anche con la recente  possibilità di poter  sfruttare la soluzione ArcGIS Online for organizations direttamente da altri attori), e viste le modalità
di utilizzo della stessa via API tecnologiche diverse, sicuramente ESRI vorrà affiancare ai tradizionali mercati del GIS Desktop e Server quello nuovo del GIS offerto come SaaS con in mezzo, come fruitore, il mondo mobile che si va sempre più estendendo. GIS SaaS e GIS mobile nei prossimi anni hanno sicuramente numeri di crescita, in termini di volumi, superiori a quelli del mondo GIS tradizionale (desktop e server)

Potrebbe essere che ESRI qui voglia adottare dei modelli di business diversi: un possibile approccio potrebbe essere quello adottato da Google stessa, offrire liberamente uno strato di API leggere, efficaci e potenti ma mantenere un presidio forte (e ben stretto …), sul core funzionale del proprio sistema.

Ovviamente, opinione personale … staremo a vedere!