pycsw project status report

Angelos Tzotsos / @tzotsos
Tom Kralidis / @tomkralidis
Jeff McKenna / @mapserving

FOSS4GE 2015 Como

Outline

  • Introduction to pycsw
  • Features
  • Architecture
  • Installation/Configuration
  • Client Applications
  • Open Data and pycsw Deployments
  • Future Developments
  • Community

Introduction

  • pycsw is a OGC CSW server implementation written in Python.
  • Open Source project released under the MIT license.
  • Runs on all major platforms (Windows, Linux, Mac OS X)
  • OSGeo Project since 11 March 2015

Introduction

  • pycsw fully implements the OpenGIS Catalogue Service Implementation Specification [Catalogue Service for the Web]
  • pycsw allows for the publishing and discovery of geospatial metadata

Introduction

The project is certified OGC Compliant, and is an OGC Reference Implementation

This product conforms to the OpenGIS Catalogue Service Implementation Specification [Catalogue Service for the Web], Revision 2.0.2. OGC, OGC®, and CERTIFIED OGC COMPLIANT are trademarks or registered trademarks of the Open Geospatial Consortium, Inc. in the United States and other countries.

This product conforms to the OpenGIS Catalogue Service Implementation Specification [Catalogue Service for the Web], Revision 2.0.2. OGC, OGC®, and CERTIFIED OGC COMPLIANT are trademarks or registered trademarks of the Open Geospatial Consortium, Inc. in the United States and other countries.

pycsw is an official OSGeo Project

OSGeo Project

Project History

  • 2010: Development started by Tom Kralidis
  • Feb 2011: Project officially announced
  • Apr 2011: First official release (0.1) was released and already passed all CITE tests
  • Jul 2011: Version 1.0 released
  • Feb 2012: pycsw included in OSGeoLive 5.5
  • Jan 2013: pycsw 1.4 certified as OGC Compliant
  • Apr 2013: pycsw entered OSGeo Incubation
  • Feb 2014: pycsw powers data.gov
  • Mar 2015: pycsw graduates OSGeo Incubation
  • Jul 2015: Latest stable release (1.10.2)

Goals

  • Lightweight and easy to setup: a standalone catalogue, no GUI or metadata editing front end, designed for the use case of exposing ready-to-go metadata (files or in existing DB) through a CSW interface
  • Extensible: the ability to add metadata formats and mapping them to a common information model and core/additional queryables
  • OGC compliant: always pass CITE tests

Features

  • Harvesting support for WMS, WFS, WCS, WPS, WAF, CSW, SOS
  • Implements ISO Metadata Application Profile 1.0.0
  • Implements FGDC CSDGM Application Profile for CSW 2.0
  • Implements INSPIRE Discovery Services 3.0
  • Supports ISO, Dublin Core, DIF, FGDC and Atom metadata models
  • Standalone of embedded deployment (CGI or WSGI)
  • Transactional capabilities (CSW-T)
  • Flexible repository configuration (SQLite, PostgreSQL, PostGIS, MySQL)
  • Federated catalogue distributed searching

More features...

  • Simple configuration
  • Extensible plugin architecture (profiles, repositories/backends)
  • Seamless integration with Python environments (e.g. GeoNode, Open Data Catalog)
  • Integration with CKAN through ckanext-spatial and ckanext-publicamundi
  • Includes commandline utility to administer the metadata repository
  • Implements the Search/Retrieval via URL (SRU) search protocol
  • Implements OpenSearch
  • Realtime XML Schema validation

Standards Support

  • OGC CSW 2.0.2
  • OGC Filter 1.1.0
  • OGC OWS Common 1.0.0
  • OGC GML 3.1.1
  • OGC SFSQL 1.2.1
  • Dublin Core 1.1
  • SOAP 1.2
  • ISO 19115 2003
  • ISO 19139 2007
  • ISO 19119 2005
  • NASA DIF 9.7
  • FGDC CSDGM 1998
  • SRU 1.1
  • A9 OpenSearch 1.1
  • OGC OpenSearch Geo/Time extensions 1.0

Supported CSW Operations

  • GetCapabilities
  • DescribeRecord
  • GetRecords
  • GetRecordById
  • GetRepositoryItem
  • GetDomain
  • Harvest
  • Transaction

Component Architecture

Software Architecture

Installation: the proper way

  • Python Package Index (PyPi)
  • openSUSE Application:Geo RPM packages
  • UbuntuGIS deb packages
  • DebianGIS deb packages

4 Minute Install



$ virtualenv pycsw && cd pycsw && . bin/activate
$ git clone git@github.com:geopython/pycsw.git && cd pycsw
$ pip install -e . && pip install -r requirements.txt
$ cp default-sample.cfg default.cfg
$ vi default.cfg
# adjust paths in
# - server.home
# - repository.database
# set server.url to http://localhost:8000/
$ python csw.wsgi
$ curl http://localhost:8000/?service=CSW&version=2.0.2&request=GetCapabilities

                

OSGeoLive

pycsw is available to test in OSGeoLive since version 5.5

Project Overview and Quickstart Tutorial are included

pycsw 1.10 features

  • Repository filtering
  • Database connection pooling for WSGI
  • PostgreSQL FTS (Full Text Search)
  • Link type detection
  • OGC OpenSearch Geo/Time extensions 1.0

Upcoming pycsw 2.0 release

  • CSW 3.0.0 support has just landed on git master!
  • pycsw is planned to be OGC CSW 3 Reference Implementation
  • DCAT and GeoDCAT support to be implemented soon
  • pycsw 2.0 release is expected after OGC finalizes CSW 3.0 standard

OSGeo Incubation process

Recent Deployments

See more at the pycsw Live Deployments Map

Workshop

Oregon Coastal & Marine Data Network pycsw Workshop materials available at http://www.coastalmarinedata.net/?p=229

Workshop source code available on https://github.com/geopython/pycsw-workshop

Getting Involved

Community

http://pycsw.org/community.html

Google+


Mailing List and IRC

http://lists.osgeo.org/mailman/listinfo/pycsw-devel

#pycsw and #geopython on Freenode


Source Code, Wiki, Issues on GitHub

https://github.com/geopython/pycsw


Professional support

http://www.osgeo.org/search_profile


Thank you

Questions?