wiki:GSoC/2014/MetadataForGRASS

Version 32 (modified by krejcmat, 10 years ago) ( diff )

--

GSoC 2014 Metadata for GRASS GIS maps and datasets

Title: Metadata for GRASS GIS maps and datasets
Student Name: Matej Krejci, Czech Technical University in Prague
Organization: OSGeo - Open Source Geospatial Foundation
Mentor Name: Martin Landa, Margherita Di Leo
GSoC proposal: view proposal

Motivation

Current GRASS GIS offers just a poor and out-of-date administration of metadata. The goal of this project is to implement administration of metadata according to the standards of ISO 19115, ISO 19139 and to create a graphical user interface which would allow the user to operate with metadata, such as creating, updating, browsing, searching etc.

Timeline

timeline from proposal newly proposed timeline status
MAY 1- 7 "Early starts" Study ISO, INSPIRE and FGDC standards +
MAY 7 - 14 Getting familiar with GRASS GIS modules code. +
MAY 14 - 19 Design of metadata GRASS library design GRASS library (in Python) to read / write metadata based on ISO as flat XML files+
MAY 19 Starting GoSC x +
MAY 19- 25 Support of different metadata profiles design GRASS library (in Python) to read / write metadata based on ISO as flat XML files including profies (XSD validation, Inspire as the show-case)+
MAY 26 - JUN 16 "Break"(Prepare for bachelor final exam) add support for conversion GRASS (current) metadata files <-> XML ISO metadata +
JUN 16 - 24 Implement basic library model for command line design cmd modules for reading and writing ISO-based metadata -> r.info.iso + v.info.iso (including support for conversion GRASS (current) metadata files <-> XML ISO metadata)+
JUN 24 - 30 Modules functionality (searching, publishing metadata) design GUI for reading and writing ISO-based metadata
JULY 1 - 7 Design GUI design GUI for reading and writing ISO-based metadata -> g.gui.metadata
JULY 7 - 14 Connect GUI library, basic functions advanced metadata publishing/searching based on owslib + pycsw
JULY 14 - 21 Implementation of search function to GUI advanced metadata publishing/searching based on owslib + pycsw
JULY 21 - 30 Improve metadata validation using designed GUI advanced metadata publishing/searching based on owslib + pycsw -> testing prototype
AUGUST 1 - 9 Polishing code polishing code
AUGUST 9 - 18 Testing and documentation testing and documentation
AUGUST 18 The end of GSoC the end of GSoC

Development

Dependencies

Current development of metadata management have dependence on external libraries:

  • OWSLib (no additional dependence),
  • Jinja templates (suitable to remake)

Architecture

The new designed metadata management in GRASS is based on external python modules without interference to GRASS core.

  • First step which is partially successful is to create basic modules for exporting ISO based metadata for raster and vector maps. The modules are contented to implemented class which is providing parsing metadata from r.info and v.info. This metadata are unassigned to ISO attributes with using OWSLib. The OWSLib is offering to create instances of ISO element. The instances are suitable to filled in the predefined Jinja xml ISO profile. From this part are created r.info.iso and v.info.iso

r.info.iso and v.info.iso

  • The modules are based on the said implementation.
  • Offers converting metadata from *.info to xml file based on ISO standard
    • Current available metadata profile for GRASS.
      • INSPIRE profile,
      • GRASS BASIC profile - this profile are mainly including available metadata from GRASS.

g.gui.metadata

Current task is to design the GUI interface and the implementation. Below is the first design. Main aggravating factor is the fact that some attributes in ISO can be define multiple times. For the solution is necessary to crate interface for getting information from some source. Currently the easier way is to get information form predefined XML Jinja template. Interface ensure independence between editor and source of informations. This is useful for future development. The editor will support:

version function
1.0 to implement main window and layout
function for browsing maps with using treeCtrl
to create xml ISO file (with using v/r.info.iso)
interface to get information about ISO attributes
1.1 editing of created xml file with using Jinja templates
1.2 to add multiple values for specific attributes
1.3 validator of inspire xml
options for update r/v.support by changed values values in editor.
1.4 multiple metadata editing ( choose maps, chooses attributes with are same for chosen maps.

source:/grass/browser/sandbox/krejcmat/pic/diagram.png (scheme of a designed implementation) source:/grass/browser/sandbox/krejcmat/pic/prototyp1.png (draft of a GUI editor) source:/grass/browser/sandbox/krejcmat/pic/main.png (draft of a GUI for choosing ISO profile or option for just edit xml )

Weekly reports

Week 1 (May 23)

studied metadata and tried to find suitable python lib during last three weeks:

  • studied ISO 19115 and EN ISO 19119
    • INSPIRE
    • be advised to leave out implementation of FGDC - just ISO, INSPIRE
  • get familiar with OWSLib and pycsw
    • set pycsw metadata server catalog
    • handled metadata by OWSLib
  • spent time with design lib based on automated generation of XML from XSD - failed
  • tested suitability of generateDS to generate python object from XML scheme (XSD)
  • designed library for parse GRASS GIS metadata to XML based on md. ISO
    • parsed metadata from:
      • r.info
      • v.info
  • designed essential metadata profile for raster and vector maps (based on ISO standard)
    • prepared lib for new update of OWSLib that will be ready during next week. (in contact with author)
  • created new timeline - main changes:
    • will create basic metadata management based on creating, editing, validating ISO. (obligatory)
    • will create advanced management based on client-server with using pycsw. (optional)

report email

Week 2 (May 30)

created cmd modules for writing ISO-based metadata -> r.info.iso + v.info.iso support:

  • basic grass ISO profile
  • inspire profile (for subsequent editing in future wxGUI editor)

report email

Week 3 (June 06)

  • Consulted design of metadata editor with mentors.
  • Consulted current implementation of v.info.iso and r.info.iso
  • Search for alternatives to Jinja templates (current implementation)
  • Learned basics of wxPython

report email

Attachments (9)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.