Developing Geospatial software with Python, Part 1
GeoNode per il Supporto alle Emergenze Umanitarie
1. GeoNode per il Supporto alle
Emergenze Umanitarie
ASITA 2014 – Firenze
16 Ottobre 2014
Simone Dalmasso, EU Joint Research Centre
Paolo Corti, UN World Food Programme
2. Cos’è?
GeoNode è uno spatial content management system
È una piattaforma per la gestione e la pubblicazione di dati
spaziali
È Open Source e basato su strumenti Open source
Consente ad utenti non esperti di GIS di creare mappe
Integra il catalogo di metadati con strumenti di mapping
Offre un sistema granulare di permessi per ogni risorsa
E’ uno strumento sociale dove utenti possono commentare e
fornire valutazioni di qualità sui dati
E’ facilmente personalizzabile ed estendibile
3. Perchè?
• Spesso si affronta il problema di mettere
efficacemente in comunicazione le parti
coinvolte
• I dati sono spesso scambiati tramite email
• Non si ha un’immediata percezione del loro
significato
• Non sono distribuiti secondo standards
5. Web services inclusi
OGC WMS - Web Map Service (GeoServer)
OGC WFS/WFS-T - Web Feature Service
(GeoServer)
OGC WCS - Web Coverage Service
(GeoServer)
OGC CSW - Catalog Service for the Web
(pycsw, GeoNetwork)
OGC WMST - Web Map Tiling Service
(GeoWebCache)
REST GeoServer API
6. Django Apps
GeoNode è creato da apps (Base, Layers, Maps, Documents...)
GeoNode stesso è basato da varie Django apps (avatar, dialogos,
django_notification, django_pagination, django_taggit,...)
E’ quindi semplice da personalizzare usando altre apps (django-
cms, django-mingus, django-schedule, django-revision, django-
social-auth, pyston)
7. Come il WFP ed il JRC lavorano
insieme
• Le due agenzie contribuiscono mettendo a
disposizione un core developer ciascuna
• Teniamo regolarmente meetings e sprint code
• Contribuiamo attivamente al ramo master di GeoNode
dal quale deriviamo i nostri progetti
• Le nostre organizzazioni vedono chiaramente I benefici
di pagare una sola risorsa ma ottenere molto di più.
8. JRC
Il Joint Research Centre è il servizio
scientifico interno della Commissione Europea
E’ organizzato in 7 istituti, unità ed azioni.
8
9. JRC – Syria Damage Assessment SDI
9
Obiettivo
Raccogliere e condividere dati spaziali e non relativi alle stime di
post impatto per la crisi Siriana.
Contiene ~80 layers spaziali, ~20 mappe, ~35 documenti, ~30 utenti.
10. JRC – Syria Damage Assessment SDI
10
Obiettivo
Fornite una piattaforma dove i donors possono migliorare la
coordinazione lavorando su dati reali e in real time derivati da
analisi spaziali e da dati complementari.
11. JRC – Syria Damage Assessment SDI
11
Caratteristiche
Interfaccia personalizzata per
facilitare l’accesso a vari tipi di
documenti
Fornire l’accesso ai dati spaziali
mediante focus area
Motore di ricerca personalizzato per
semplificare la ricerca per tipo di dato
E’ basato su GeoNode 2.0 ed è
personalizato usando il GeoNode
project
https://github.com/GeoNode/geonode-project
12. JRC – Syria Damage Assessment SDI
12
Mobile data collection
La piattaforma ha una funzionalità
sperimentale che integra il mobile
data collection tramite Formhub ed
ODK.
Richiede il caricamento di un file xls
con la struttura del layer desiderato
Il layer diviene disponibile sul telefono
ed è possibile aggiungere nuovi punti
e foto geolocalizzate tramite un
semplice form.
Il nuovo punto viene integrato nel
database Postgis e disponibile tramite
Geoserver non appena si ha a
disposizione una connessione.
13. World Food Programme
• UN WFP e’ la piu’ grande agenzia umanitaria a combattere la
fame nel mondo
• durante le emergenze (disastri naturali, guerre, conflitti civili) il
WFP invia cibo ove necessario
• successivamente ad un’emergenza, il WFP utilizza il cibo per
aiutare la ricostruzione delle comunita’ colpite
• il WFP e’ parte delle Nazioni Unite, ed e’ stato fondato nel 1961
• in media ogni anno il WFP, grazie al lavoro di circa 12.000
persone, la maggior parte inviate in aree remote, fornisce cibo ad
oltre 80 milioni di individui in quasi 80 diversi stati
14. Il GIS nel WFP
• 10 specialisti GIS nell’HQ (Roma), altri ancora sparsi nei 6
Regional Bureaux e negli oltre 70 country offices
• molti altri colleghi analisti che usano dati statistici sono sempre
maggiormente interessati a tecnologie geospaziali
• software: Open Source (GeoNodeGDALQGIS) and ESRI (ArcGIS
Server e ArcGIS Desktop), situazione molto variegata
• sviluppatori: Python con GDAL/QGIS e in qualche caso ArcPy
• analisti: QGIS, GDAL, ArcGIS desktop
• Mappers: ArcGIS desktop principalmente, ma QGIS guadagna
popolarita’ versione dopo versione
15. WFP GeoNode
• personalizzazione di GeoNode basata su Django project template
• altre Django applications incluse in GeoNode per aggiungere
funzionalita’ (static map catalog, layers API)
• ~400 layers, ~50 maps, ~150 users
16. Come GeoNode viene usato dal WFP
GeoNode si pone come singolo nodo per centralizzare l’informazione
geospaziale del WFP proveniente in forma, fonti e da tecnologia
eterogenee
•metadata catalog (basato su pyWCS)
•data stores (PostGIS, ESRI ArcSDE/PostGIS)
•web map engine (GeoServer, REST ArcGIS Server tramite GeoNode
remote services)
•ambiente di condivisione e pubblicazione (layer upload, map
composition, styling, editing via WFS-T)
•meccanismo di permessi granulare tipo un CMS (ad esempio un
utente puo’ editare un layer e cambiarne I metadati, ma non puo’
modificarne lo stile…)
•OGC web services per applicazioni esterne
•API Restful per integrare l’informazione geospaziale in altri sistemi
WFP
17. Come il WFP e’ coinvolto in GeoNode
• il WFP usa GeoNode dal 2011
• uno sviluppatore partecipa direttamente al core project
• partecipazione molto attiva alla GeoNode community (mailing list,
documentazione, issue tracker etc...)
• supporta e assume altri sviluppatori GeoNode/GeoServer per varie
attivita’ correlate a GeoNode seguendo l’approccio Open Source
• partecipa regolarmente agli sprint e summit annuali di GeoNode
• ha organizzato l’ultimo sprint, a Roma (3-5 April 2014, 15+
sviluppatori)
18. Roadmap 2.4
Gruppi e permessi di gruppo
Nuovo sistema di permessi
Servizi aka Federazione
REST GeoNode API
Pronto per la ricerca full text (haystack)
Nuovo layout (bootstrap 3)
2.4+: supporto per ulteriori motori di mappe
(MapServer, Mapnik)