GRASS SoC Ideas 2013

From GRASS-Wiki
Revision as of 01:56, 27 February 2013 by Huhabla (talk | contribs) (Temporal GIS Algebra)

Jump to: navigation, search

About

This is the GRASS page for Google Summer of Code 2013. Here we will list project ideas and and other information related to the GRASS GSoC projects.

Ideas

  • Project ideas of your own are also most welcome and often the best.

Symbology / Cartography

  • Allow display of a vector legend in the map display (equivalent to current d.legend implementation for rasters)
HB: note that SoC only accepts coding projects, not graphics design or documentation projects. Adding svg/eps support to a d.* module and ps.map would be quite helpful. See the d.graph help page and ps.map's "eps" and "vpoints" instructions.

Imagery

  • Based on the work on segmentation in GSoC 2012 develop routines for object-based (ore region-based) image classification. This probably entails:
    • Characterizing segments. Thsi includes producing statistics such as mean, median, variance of the segmented data within each delineated segment.
    • Classifying segments based on the characteristics and (possibly) training areas
    • Interface with other modules in a consistent workflow (i.cluster, r.fuzzy, etc)
  • Implement hierarchical classification tools (e.g. being able to create a large class "forest", with subclasses of different types of forests)
  • Interface with the Orfeo toolbox (OTB), which is an open source, ITK-based, C++ library of (spatial) image processing library. OTB implements a very wide set of interesting features for anybody working with raster data - in particular satellite imagery: radiometric corrections, orthorectification, filtering, feature extraction, image segmentation , classification, change detection, etc.

Temporal GIS Algebra

We (Soeren Gebbert and Thomas Leppelt) would like to implement a spatio-temporal map algebra for raster and vector data in GRASS7.

Role:

  • Mentor: Soeren Gebbert
  • GSoC Student: Thomas Leppelt

Implementation goals:

  • Spatio-temporal vector algebra module t.vect.mapcalc
    • The algebra will be based on vector map operations provided from v.overlay (and, or, xor, not), v.buffer (buff_point, buff_line, buff_area), v.patch (patch), ... , temporal variables (day of year, weekday, datum, time, ...) and temporal topology relations (predecessor, successor, follows, equals, ...)
    • The resulting module will be able to process space time vector datasets using expressions like:
# Compute the intersection between the space time vector datasets A and B
# from maps with equal time stamps. The STVDS A is used as temporal reference.
# A new STVDS C will be created with the same time stamps as A.
t.vect.mapcalc inputs=A,B timeref=A output=C expr="C = if(equal(B), and(A,B))"

# Nested boolean operations are supported and temporal neighborhood computation
t.vect.mapcalc input=A,B,C tempref=A output=D \
    expr="D = if(successor(B) && predecessor(C), and(A, xor(successor(B), buff_point(predecessor(C), 100)))"

# Date and time can be used in the expression
t.vect.mapcalc input=A,B tempref=A output=C \
    expr="C = if(start_year() >= 2001 || start_year() <= 2010, and(A,B))"
  • Spatio-temporal raster algebra module t.rast.mapcalc
    • The algebra will be based on the existing r.mapcalc raster map algebra, temporal variables (day of year, weekday, datum, time, ...) and temporal topology relations (predecessor, successor, follows, equals, ...)
    • The resulting module will be able to process space time raster datasets using expressions like:
# Compute the sum between the space time raster datasets A and B
# from maps with equal time stamps. The STRDS A is used as temporal reference.
# A new STRDS C will be created with the same time stamps as A.
t.rast.mapcalc inputs=A,B timeref=A output=C expr="C = if(equal(B), A + B)"

# Spatio-temporal neighborhood computation. STRDS C will have the same time stamps as A.
t.rast.mapcalc input=B timeref=A output=C \
    expr="C = if(successor(B) && predecessor(B), (successor(B)[0,0] + B[0,0] + predecessor(B)[0,0])/3.0, B[0,0])"
  • The GRASS GIS temporal framework will be utilized and the pygrass module interface
  • PLY will be used for lexical analysis and parser generation
  • Temporal algebra will be equivalent for booth modules