Лого проекта

pycsw: начало работы

pycsw является реализацией сервера OGC CSW на языке Python.

pycsw реализует положения параграфа 10 (HTTP protocol binding (Catalogue Services for the Web, CSW)) спецификации`OpenGIS Catalogue Service Implementation Specification`_, версия 2.0.2. Процесс разработки начался в 2010 г. (официальный анонс сделан в 2011 г.).

pycsw позволяет публиковать и просматривать пространственные метаданные. Существующие репозитории метаданных должны могут быть сделаны доступными через OGC:CSW 2.0.2.

pycsw имеет открытый код, распространяется под лицензией MIT и работает на всех основных платформах (Windows, Linux, Mac OS X).

pycsw входит в состав OSGeo-Live. Этот документ показывает, как:

  • выполнить установку pycsw;
  • проверить работоспособность pycsw при помощи проверочного приложения;
  • редактировать документ Capabilities и отображать эту информацию в браузере;
  • создавать описание метаданных в формате ISO 19139 (при помощи INSPIRE Metadata Editor или GIMED);
  • загружать созданный файлы метаданных в базу данных pycsw;
  • установить модуль CSWClient для QGIS;
  • выполнять поиск данных в каталоге pycsw из QGIS.

Установка

Системные требования

Для работы pycsw необходимо наличие следующих библиотек:

  • lxml (версия >= 2.2.3) для работы с XML
  • SQLAlchemy (версия >= 0.0.5) для взаимодействия с базами данных
  • Shapely (версия >= 1.2.8) для поддержки пространственных запросов
  • pyproj (версия >= 1.8.9) для преобразования координат

Установка из исходных кодов

Загрузите последнюю версию pycsw или получите код из svn:

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

Убедитесь, что для каталога установки разрешен CGI. Например, при использовании Apache, если вы установили pycsw в /srv/www/htdocs/pycsw (и ваш URL будет иметь вид http://host/pycsw/csw.py), добавьте следующие строки в httpd.conf:

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

Установка в Ubuntu/Lubuntu/Kubuntu

Для установки pycsw в Ubuntu и производных можно использовать установочный скрипт OSGeo-Live из pycsw/etc/dist:

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

Этот скрипт выполнит установку всех необходимых зависимостей (Apache, lxml, sqlalchemy, shapely, pyproj) и затем установит pycsw в /var/www.

Установка в openSUSE

Установить OBS-пакет в openSUSE 12.1 можно, выполнив следующие команду от имени 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

Для предыдущих версий замените 12.1 на 11.4. Для будущих версий openSUSE используйте Factory. Также поддерживается и rolling-ветка Tumbleweed. pycsw включен в официальный репозиторий Application::Geo OpenSUSE Build Service.

Проверочное приложение

Запустить проверочное приложение pycsw можно при помощи ярлыка pycsw в группе Web Services или открыв Firefox и указав адрес http://localhost/pycsw/tester/index.html:

../../_images/pycsw_tester_startup12.png

В левом выпадающем списке пользователь может выбирать предустановленные POST-запросы в формате XML, которые затем будут отправлены pycsw:

../../_images/pycsw_tester_selection12.png

Например, если выбрать “apiso/DescribeRecord” и нажать кнопку “Send”, в правой панели отобразится описание записи в ISO Application Profile:

../../_images/pycsw_tester_describe_apiso_record12.png

Если выбрать “GetCapabilities-SOAP” и нажать кнопку “Send”, на сервер будет отправлен SOAP-запрос на получение его возможностей:

../../_images/pycsw_tester_soap_capabillities12.png

Кроме того, пользователь может выполнять поиск данных с фильтрацией по охвату, выбрав “GetRecords-filter-bbox” и отредактировав координаты в XML-представлении запроса:

../../_images/pycsw_tester_getrecords_bbox_filter12.png

Пользователь может пройтись по всем доступным запросам и выполнять различные операции из этого приложения. Более надежный и удобный способ выполнения запросов описан ниже.

Документа Capabilities и настрока

Описание capabilities можно просмотреть по адресу http://localhost/pycsw/csw.py?service=CSW&version=2.0.2&request=GetCapabilities.

Чтобы отредактировать метаданные сервиса, входящие в состав документа capabilities, необходимо изменить файл /var/www/pycsw/default.cfg, а именно раздел [metadata:main]. Если необходимо включить поддержку INSPIRE Discovery Service, заполните метаданые в разделе [metadata:inspire] и установите значение свойства enabled в true.

За подробным описаним настроек обратитесь к документации на сайте pycsw.

Создание метаданных

При помощи European Open Source Metadata Editor (EUOSME)

Описание метаданных пространственного набора данных или пространственного веб-сервиса можно создать при помощи открытой реализации редактора INSPIRE, European Open Source Metadata Editor (EUOSME). Это приложение можно найти по адресу http://inspire-geoportal.ec.europa.eu/editor/. Также доступен исходный код https://joinup.ec.europa.eu/svn/euosme/trunk

Пользователь заполняет необходимые поля метаданных, переключаясь между вкладками приложения, и внося информацию о владельце данных, ключевых словах, размещении, географическом охвате (задавая координаты ограничивающего прямоугольника или название страны) и т.д.

../../_images/pycsw_euosme_metadata_input12.png

После добавления всей необходимой информации необходимо нажать кнопку валидации вверху страницы, чтобы проверить целостность и соответствие директивам INSPIRE.

../../_images/pycsw_euosme_save_metadata12.png

После успешной валидации файл можно сохранить на диск и просмотреть, используя текстовый редактор либо браузер.

При помощи GIMED

GIMED — свободное приложение для создания и редактирования метаданных в формате XML, совместимом с директивами INSPIRE. Для установки приложения введите следующие команды в окне терминала:

$ 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

Пользователь может вводить или редактировать метаданные как и при использовании EUOSME, но без необходимости в подключении к Интернет.

../../_images/pycsw_gimed12.png

Загрузка метаданных

Настройка репозитория метаданных

pycsw поддерживает следующие базы данных:

  • SQLite3
  • PostgreSQL
  • MySQL

В OSGeo-Live использован простой вариант с SQLite. Базу данных можно найти в /var/www/pycsw/data/cite

В случае новой базы данных, процесс установки будет выглядеть так:

$ 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

Эта последовательность команд импортирует все записи *.xml из /path/to/records в records.db и настроит репозиторий на отображение информации в соответствии с таблицей 53 OGC:CSW.

Установка CSW Client для QGIS

Механизм HTTP запросов/ответов не достаточно удобен для конечных пользователей. Поэтому существует несколько различных клиентов CSW в форме веб-приложений как INSPIRE Geoportal или GeoNetwork. В этом документе мы будем использовать модуль OGC Catalogue Service Client для QGIS.

Для установки модуля выполните:

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

Поиск данных

Модуль CSW для QGIS

Запустите QGIS из группы Desktop GIS и найдите пункт “Manage Plugins”

../../_images/pycsw_qgis_plugin12.png

Активируйте модуль CSW

../../_images/pycsw_qgis_plugin_enable12.png

Затем при помощи кнопки CSW на панели инструментов запустите CSW Client

../../_images/pycsw_qgis_csw_plugin_open12.png

Добавьте сервер pycsw, нажав на кнопку “New” и введя адрес http://localhost/pycsw/csw.py

../../_images/pycsw_qgis_csw_plugin_add_server12.png

Также можно добавить несколько предустановленных серверов, нажав кнопку “Add default servers” и получить описание возможностей сервера при помощи кнопки “Server info”

../../_images/pycsw_qgis_csw_plugin_server_info12.png

Выполнять поиск данных в каталоге можно как по описанию, так и по охвату

../../_images/pycsw_qgis_csw_plugin_search12.png

Проверочное приложение

Поиск данных также можно выполнять из проверочного приложения, задав соответствущий запрос, например, поиск по фразе “imagery” приведет к отображению всех данных, созданных ранее в EUOSME

../../_images/pycsw_tester_discovery12.png

Более подробное описание pycsw можно получить в документации, размещенной на официальном сайте.