= GSoC 2015 Improved metadata for GRASS GIS = || Title: || '''Improved Metadata for GRASS GIS''' || ||Student Name: || Matej Krejci, [http://www.cvut.cz Czech Technical University in Prague] || ||Organization: || [http://www.osgeo.org OSGeo - Open Source Geospatial Foundation] || || Mentor Name: || [http://grass.osgeo.org/wiki/User:Landa Martin Landa], Angelos Tzotsos, Luca Delucchi || || GSoC proposal: || [http://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2015/krejcmat/5689792285114368 view proposal] || || Link to code: || [http://svn.osgeo.org/grass/sandbox/krejcmat/src/GSOC2015/ tmp dir ] || Documentation: || [https://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support] == Abstract == Current GRASS GIS offers ISO-based Metadata support. This package includes three modules designed to generate, create and edit metadata. The goal of this work consist of two main parts. First aim is to improve current package by adding a few functionality for extend metadata handling. The second goal is to implement module for interaction with metadata catalogue services (CSW). Additional benefit of this part allows access of metadata between GRASS GIS and QGIS Meta_Search plugin. == Timeline == |||||| '''timeline from proposal''' || |||| ||status|| ||MAY 25 ||Starting GoSC||*|| ||MAY 25 - 29 ||Implementing support for exporting metadata (report) to PDF||*|| ||JUN 1 - 5 ||Adding an option for fetching predefined metadata values from database||*|| ||JUN 8 - 12 ||Adding metadata support for Temporal GIS||*|| ||JUN 15 - 19 ||Testing, debugging g.gui.metadata||*|| ||JUN 22 - 30 ||Getting more familiar with pycsw and owslib python library||*|| ||JUN 30 - 6 ||Designing csw module (g.gui.metadatacsw) ||*|| ||'''Mid term evaluation''' || ||*|| ||JULY 6 - 10 ||Implementing manager for connection to service (service info, “getCapabilities” response, add/delete service, edit service)||*|| ||JULY 13 - 17 ||Adding support for publishing metadata to csw||*|| ||JULY 20 - 24 ||Design and implementation module for establishing csw on localhost PC (pycsw)||*|| ||JULY 27 - 31 ||Design and implementation of catalogue browser based on filtering by bounding box and keywords||*|| ||AUGUST 3 - 7 ||Adding interface for connecting r.in.wms, v.in.wfs with g.gui.metadatacsw||*|| ||AUGUST 10 - 14 ||Implementing function for metadata management on local csw (removing, harvesting from remote csw )||*|| ||AUGUST 17 - 23 ||Testing, polishing code and writing documentation|||| ||AUGUST 24 ||Ending GoSC|||||| ---- ||||||''' timeline from mid term''' || |||| ||status|| ||JULY 6 - 10 ||Implementing manager for connection to service (service info, “getCapabilities” response, add/delete service, edit service)||*|| ||JULY 13 - 17 ||Design and implementation of catalogue browser based on filtering by bounding box and keywords||*|| ||JULY 20 - 24 ||Adding interface for connecting r.in.wms, v.in.wfs with g.gui.metadatacsw||*|| ||JULY 27 - 31 ||Design and implementation module for establishing csw on localhost PC (pycsw)||*|| ||AUGUST 3 - 7 ||Adding support for publishing metadata to csw in g.gui.metadata||*|| ||AUGUST 10 - 14 ||Implementing function for metadata management on local csw (removing, harvesting from remote csw )||*|| ||AUGUST 17 - 23 ||Testing, polishing code and writing documentation|||| ||AUGUST 24 ||Ending GoSC|||||| == Requirements == [http://grass.osgeo.org/download/software/#g71x GRASS 7.1] == Dependencies == Current development of wx.metadata package has dependence on external libraries: * OWSLib (no additional dependence) development version () {{{ git clone git://github.com/geopython/OWSLib.git cd OWSLib && sudo python setup.py install }}} * Jinja templates {{{ git clone git://github.com/mitsuhiko/jinja2.git cd jinja2 && sudo python setup.py install }}} == Development == === Pdf reports === used library: [http://www.reportlab.com/apis/reportlab/2.4/platypus.html reportlab.platypus] == Weekly reports == === Week 1 (May 30) === * Designed and implemented support of creating pdf reports of metadata. * Fixed some defects in metadata editor which arose from changes in GRASS core. [https://trac.osgeo.org/grass/changeset/65349/ changeset] [https://www.youtube.com/watch?v=V7tgOOuRyuA&feature=youtu.be video] [[Image(pdfexp.png)]] [http://lists.osgeo.org/pipermail/grass-dev/2015-May/075195.html report email] === Week 2 (June 8) === * Added widget which supports fetching metadata thesauri from database * Added few metadata thesauri to database * Added widgets for atrributes with explicit values [[Image(keywords.png)]] [https://trac.osgeo.org/grass/changeset/65422/ changeset] [http://lists.osgeo.org/pipermail/grass-dev/2015-June/075266.html report email] === Week 3-4 (June 14-21) === Due to exam block at university I worked less than I proposed in timeline. * Try to get familiar with ISO 19108 * Designed ISO profile for temporal framework. * Added support of temporal metadata to g.gui.metadata module. [https://trac.osgeo.org/grass/changeset/65507/ changeset] [http://lists.osgeo.org/pipermail/grass-dev/2015-June/075418.html report email] [http://lists.osgeo.org/pipermail/grass-dev/2015-June/075541.html report email] === Week 5-6 (June 21-July 6) === * Started with implementation of g.gui.metacsw module * Added panel for managing connection to service: * reading default xml file with predefined connection which is compatible with Meta_Search from QGIS, * showing basic inforamtion about service * managing services * adding new * removing * loading list of connection from xml file * User can manage connection in two ways: * First one is with using hidden storage provided by [http://wxpython.org/Phoenix/docs/html/ConfigBase.html#ConfigBase.DeleteGroup wx.Config]. This way is without accesing default connection list. * After prompt user also can add/remove connection from default .xml file file [[Image(connectionMgr.png)]] [http://lists.osgeo.org/pipermail/grass-dev/2015-June/075601.html report email] [http://lists.osgeo.org/pipermail/grass-dev/2015-July/075657.html report email] === Week 7 (July 6-12) === * Added panel for browsing through catalog. Templates for view of service/dataset metadata used from Metasearch plugin * Keywords filtering * basic multiple keywords filtering (&& condition) * advanced constraints filtering based on boolean operations * OR * AND * combination * bounding box filtering * global by default * from map extent [[Image(find2.png)]] [[Image(find1.png)]] === Week 8 (July 13-19) === [http://lists.osgeo.org/pipermail/grass-dev/2015-July/075778.html report email] === Week 9 (July 19-27) === * Implemented command line based module(db.csw) for handling csw server on localhost. current functions : * setup db(prepare tables,indexes) * load metadata * delete records * optimize db * export records * executing csw requests from xml * function for automatic setup server and establishing catalog in default GRASS database backend [http://lists.osgeo.org/pipermail/grass-dev/2015-July/075833.html report email] === Week 10 (July 27-31) === [http://lists.osgeo.org/pipermail/grass-dev/2015-August/075872.html report email] === Week 11 (August 3-7) === [https://lists.osgeo.org/pipermail/grass-dev/2015-August/075937.html report email] == TODO&IDEAS ==