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:
pycsw richiede le seguenti librerie:
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>
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.
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.
Per testare pycsw, usare il launcher pycsw dal gruppo Web Services, o aprire Firefox e andate all’indirizzo http://localhost/pycsw/tester/index.html:
Selezionando la lista drop-down a sinistra, l’utente può vedere diverse richieste POST predefinite, codificate come XML, che possono essere spedire a pycsw:
Per esempio, selezionando “apiso/DescribeRecord”, e cliccando il pulsante “Send”, una descrizione del ISO Application Profile record è visualizzato nel pannello di destra:
Selezionandog “GetCapabilities-SOAP” e cliccando il pulsante “Send”, una richiesta SOAP è spedita al server e ritorna le capacità del servizio web:
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:
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.
Le capacità dell’installazione di pycsw può essere trovate all’indirizzo http://localhost/pycsw/csw.py?service=CSW&version=2.0.2&request=GetCapabilities.
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.
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
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.
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.
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.
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.
pycsw supporta i seguenti database:
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
$ 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.
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
Avviate QGIS dal gruppo Desktop GIS e andate in “Manage Plugins”
Attivate il plugin CSW dalla lista
Quindi selezionate il bottone CSW dalla barra degli strumenti e lanciate CSW Client
Aggiungetr il server pycsw premendo il bottone “New” e digitate http://localhost/pycsw/csw.py
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”
Eseguire la ricerca utilizzando il catalogo, o tramite valore stringa o con un rettangolo di selezione
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
Per maggiori informazioni su pycsw, guardare la documentazione sul sito di pycsw.