project logo

Guida rapida pycsw

pycsw è un server OGC CSW scritto in Python.

pycsw implementa 10 clausole (HTTP protocol binding (Catalogue Services for the Web, CSW)) delle specifiche di implementazione del OpenGIS Catalogue Service, versione 2.0.2. Sviluppo avviato nel 2010 (formalmente annunciato nel 2011).

pycsw permette la pubblicazione e la ricerca di metadati geospaziali. Repository esistenti di metadati geospaziali possono essere esposti attraverso lo standard OGC:CSW 2.0.2.

pycsw è Open Source, rilasciato sotto un licenza MIT, e si può eseguire sulle maggiori piattaforme (Windows, Linux, Mac OS X).

pycsw è installato di default su OSGeo-Live DVD. Questa guida rapida descriverà come:

  • realizzare una nuova installazione di pycsw
  • testare pycsw attraverso l’applicazione di test
  • modificate il documento Capabilities di pycsw e di visualizzare queste informazioni in un browser
  • creare file di metadati ISO 19139 XML (attraverso INSPIRE Metadata Editor o GIMED)
  • caricare i file metadati XML create nel database di pycsw
  • installare QGIS CSW Client plugin
  • eseguire il rilevamento dei dati attraverso il Catalogue Service pycsw con QGIS

Installazione

Requisiti di sistema

pycsw richiede le seguenti librerie:

  • lxml (version >= 2.2.3) per il supporto XML
  • SQLAlchemy (version >= 0.0.5) per interfacciarsi con il database
  • Shapely (version >= 1.2.8) per interrogazioni spaziali / supporto geometrico
  • pyproj (version >= 1.8.9) per le trasformazioni di coordinate

Installazione dalla sorgente

Scaricate l’ultima versione pycsw o prendete la versione di sviluppo dal svn:

$ svn co https://pycsw.svn.sourceforge.net/svnroot/pycsw pycsw

Assicurateiv che CGI sia abilitato per la vostra cartella d’installazione. Per esempio, su Apache, se voi impostate pycsw in /srv/www/htdocs/pycsw (dove il vostro URL sarà http://host/pycsw/csw.py), aggiungete il seguente codice in httpd.conf:

<Location /pycsw/>
 Options FollowSymLinks +ExecCGI
 Allow from all
 AddHandler cgi-script .py
</Location>

Installare su Ubuntu/Xubuntu/Kubuntu

Al fine di installare pycsw su una distribuzione basata su Ubuntu, potete usare lo script d’installazione di OSGeo-Live situato in pycsw/etc/dist:

$ cd pycsw/etc/dist
$ sudo ./install_pycsw.sh

Lo script installa le dipendenze (Apache, lxml, sqlalchemy, shapely, pyproj) e poi pycsw in /var/www.

Installare su openSUSE

Al fine di installare il pacchetto OBS in openSUSE 12.1, potete eseguire i seguenti comandi come utente root:

$ zypper -ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_12.1/ GEO
$ zypper -ar http://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_12.1/ python
$ zypper refresh
$ zypper install pycsw

Per le versioni precedenti di openSUSE cambiare 12.1 con 11.4. Per le versioni future di openSUSE usare Factory. La versione Rolling Tumbleweed è anch’essa supportata. pycsw è inclusa nel repository ufficiale Application::Geo del OpenSUSE Build Service.

Testare l’applicazione

Per testare pycsw, usare il launcher pycsw dal gruppo Web Services, o aprire Firefox e andate all’indirizzo http://localhost/pycsw/tester/index.html:

../../_images/pycsw_tester_startup6.png

Selezionando la lista drop-down a sinistra, l’utente può vedere diverse richieste POST predefinite, codificate come XML, che possono essere spedire a pycsw:

../../_images/pycsw_tester_selection6.png

Per esempio, selezionando “apiso/DescribeRecord”, e cliccando il pulsante “Send”, una descrizione del ISO Application Profile record è visualizzato nel pannello di destra:

../../_images/pycsw_tester_describe_apiso_record6.png

Selezionandog “GetCapabilities-SOAP” e cliccando il pulsante “Send”, una richiesta SOAP è spedita al server e ritorna le capacità del servizio web:

../../_images/pycsw_tester_soap_capabillities6.png

Inoltre, l’utente può cercare i dati, effettuando un’interrogazione spaziale attraverso una bounding box, selezionando “GetRecords-filter-bbox” e modificando le coordinate nella richiesta XML:

../../_images/pycsw_tester_getrecords_bbox_filter6.png

L’utente può andare attraverso tutte le richieste disponibili ed eseguire diverse richieste per questa applicazione di test. Una via più robuste e grafica per eseguire queste richieste è descritta in un capitolo seguente di questo tutorial.

Capabilities Document e configurazione

Le capacità dell’installazione di pycsw può essere trovate all’indirizzo http://localhost/pycsw/csw.py?service=CSW&version=2.0.2&request=GetCapabilities.

../../_images/pycsw_getcapabilities_response6.png

Per modificare il servizio web dei metadati, inclusi nel documento delle capabilities, l’utente può modificare il file /var/www/pycsw/default.cfg sotto il tag [metadata:main]. Se l’utente vuole abilitare il supporto INSPIRE Discovery Service, i metadati sotto il tag [metadata:inspire] dev’essere riempito con la proprietà enabled dev’essere impostata a true.

Per le piene funzionalità e le opzioni di configurazione, per favore consultate documentazione nel sito internet pycsw.

Creazione dei metadati

Utilizzando European Open Source Metadata Editor (EUOSME)

I file dei Metadati per un set di dati spaziali o un servizio we spaziale può essere creato attraverso le implementazioni open source della direttiva INSPIRE per i metadati, European Open Source Metadata Editor (EUOSME). Questo software può essere trovato http://inspire-geoportal.ec.europa.eu/editor/. Il codice sorgente è disponibile https://joinup.ec.europa.eu/svn/euosme/trunk

../../_images/pycsw_euosme_homepage6.png

L’utente compila i campi dei metadati obbligatori, attraverso le tabelle dell’applicazione, aggiungendo informazioni come il nome del proprietario dei dati, parole chiavi, la posizione della risorsa del web, la posizione geografica (usando una bounding box o il nome di uno stato) etc.

../../_images/pycsw_euosme_metadata_input6.png ../../_images/pycsw_euosme_metadata_bbox6.png

Dopo che l’utente ha aggiunto tutte le informazioni disponibili, bisogna spingere il pulsante di validazione in alto della pagina, questo controllo può essere eseguito per consistenza con la direttiva INSPIRE.

../../_images/pycsw_euosme_save_metadata6.png

Dopo una validazione andata a buon fine, il file XML può essere salvato nel disco locale e visto attraverso une editor testuale o un browser.

../../_images/pycsw_euosme_xml6.png

Usando GIMED

GIMED è un Software Libero per creare e gestire file XML per metadati compatibili con INSPIRE. Per installare l’applicazione, usare i seguenti comandi da un terminale:

$ wget http://downloads.sourceforge.net/project/gimed/GIMED_v1.3.0.tar.gz
$ tar zxvf GIMED_v1.3.0.tar.gz
$ mono ./GIMED_v1.3.0/bin/GIMED.exe

L’utente può seguire la stessa procedura come per EUOSME per agiungere o modificate metadata, senza il bisogna di una connessione internet.

../../_images/pycsw_gimed6.png

Caricare Metadata

Impostare il repository dei Metadata

pycsw supporta i seguenti database:

  • SQLite3
  • PostgreSQL
  • MySQL

Nel OSGeo-Live, un semplice SQLite è stato utilizzato. Il database può essere trovato in /var/www/pycsw/data/cite

In caso di un nuovo database il processo di installazione è:

$ cd /path/to/pycsw
$ export PYTHONPATH=`pwd`
$ python ./sbin/setup_db.py sqlite:////path/to/records.db

Importare Metadata

$ cd /path/to/pycsw
$ export PYTHONPATH=`pwd`
$ python ./sbin/load_records.py /path/to/records sqlite:////path/to/records.db

Questo importerà tutti i file *.xml da /path/to/records in records.db e configura il repository per essere interrogabile come per Table 53 di OGC:CSW.

../../_images/pycsw_import_metadata6.png

Installazione del client CSW di QGIS

The HTTP request/response mechanism is not friendly enough to the end user in order to perform queries to the Catalogue Service. Per questa ragione, ci sono molti Clients CSW nel form di applicazioni web come INSPIRE Geoportal o GeoNetwork. Per questo tutorial, noi useremo il plugin per QGIS OGC Catalogue Service Client.

Per installare il plugin:

$ cd ~
$ cd .qgis/python/plugins
$ svn co https://qgiscommunitypl.svn.sourceforge.net/svnroot/qgiscommunitypl/python/plugins/qgcsw/trunk qgcsw

Scoprire dati

QGIS CSW Plugin

Avviate QGIS dal gruppo Desktop GIS e andate in “Manage Plugins”

../../_images/pycsw_qgis_plugin6.png

Attivate il plugin CSW dalla lista

../../_images/pycsw_qgis_plugin_enable6.png

Quindi selezionate il bottone CSW dalla barra degli strumenti e lanciate CSW Client

../../_images/pycsw_qgis_csw_plugin_open6.png

Aggiungetr il server pycsw premendo il bottone “New” e digitate http://localhost/pycsw/csw.py

../../_images/pycsw_qgis_csw_plugin_add_server6.png

L’utente può aggiungere alcuni server di default usando il bottone “Add default servers” e anche ottenere le capabilities del server usando il bottone “Server info”

../../_images/pycsw_qgis_csw_plugin_server_info6.png

Eseguire la ricerca utilizzando il catalogo, o tramite valore stringa o con un rettangolo di selezione

../../_images/pycsw_qgis_csw_plugin_search6.png

Test dell’applicazione

Per scoprire i dati può essere anche eseguita tramite l’applicazione Tester impostando le appropriate richieste per esempio qualsiasi ricerca di testo con la stringa “imagery” scoprendo i dati XML creato in precedenza dal EUOSME

../../_images/pycsw_tester_discovery6.png

Per maggiori informazioni su pycsw, guardare la documentazione sul sito di pycsw.

Copyright & Disclaimer