<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Hao2309</id>
	<title>OSGeo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Hao2309"/>
	<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/wiki/Special:Contributions/Wiki-Hao2309"/>
	<updated>2026-05-25T04:19:53Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2016_Accepted&amp;diff=99176</id>
		<title>Google Summer of Code 2016 Accepted</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2016_Accepted&amp;diff=99176"/>
		<updated>2016-06-06T20:45:48Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: /* Accepted Proposals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:GSoC2016Logo.jpg|500px|link=https://summerofcode.withgoogle.com/]] &amp;lt;font size=&amp;quot;+3&amp;quot;&amp;gt; @ &amp;lt;/font&amp;gt; [[Image:OSGeo_300_127_pixel.png|200px|link=http://www.osgeo.org]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Back to the main OSGeo [[Google Summer of Code 2016]] @ OSGeo wiki page.&lt;br /&gt;
&lt;br /&gt;
== Accepted Proposals ==&lt;br /&gt;
&lt;br /&gt;
This year OSGeo accepted 22 students working on the following projects.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;   border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#D7E3D1; font-size:95%; empty-cells:show;&amp;quot; &lt;br /&gt;
|'''Community'''&lt;br /&gt;
|'''Project'''&lt;br /&gt;
|'''Student'''&lt;br /&gt;
|'''1st mentor'''&lt;br /&gt;
|'''2nd mentor'''&lt;br /&gt;
|'''Wiki page'''&lt;br /&gt;
|'''Repository'''&lt;br /&gt;
|-&lt;br /&gt;
|GDAL&lt;br /&gt;
|Introduce Triangulated Surface, Polyhedral Surface and Triangle API in the OGRGeometry core and implement their support in OGR drivers for GDAL &lt;br /&gt;
|Avyav Kumar Singh&lt;br /&gt;
|Rob Emanuele &lt;br /&gt;
|Even Rouault&lt;br /&gt;
|[https://github.com/avyavkumar/gdal/wiki Github]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GDAL&lt;br /&gt;
|GDAL DWG support &lt;br /&gt;
|Alexandr Borzykh&lt;br /&gt;
|Dmitry Baryshnikov &lt;br /&gt;
|Even Rouault&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/GDALDWG_SoC_2016 Wiki]&lt;br /&gt;
|[https://github.com/sandyre/libopencad Github]&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|Complete basic cartography suite in GRASS GIS wxGUI Map Display &lt;br /&gt;
|Adam Laža&lt;br /&gt;
|Anna Petrasova &lt;br /&gt;
|Vaclav Petras&lt;br /&gt;
|[https://trac.osgeo.org/grass/wiki/GSoC/2016/BasicCartographySuiteInGRASS Trac]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - Additional segmentation algorithms for i.segment &lt;br /&gt;
|Bo Yang&lt;br /&gt;
|Moritz Lennert &lt;br /&gt;
|Markus Neteler&lt;br /&gt;
|[https://trac.osgeo.org/grass/wiki/GSoC/2016/Additional_segmentation_algorithms Trac]&lt;br /&gt;
|[https://trac.osgeo.org/grass/browser/sandbox/bo/i.segment.gsoc2016 Sandbox]&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - PyQt implementation of GUI forms generated automatically from XML &lt;br /&gt;
|Ondřej Pešek&lt;br /&gt;
|Vaclav Petras &lt;br /&gt;
|Anna Petrasova&lt;br /&gt;
|[https://trac.osgeo.org/grass/wiki/GSoC/2016/PyQtGUI Trac]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - WEBGRASS &lt;br /&gt;
|Mayank Agrawal&lt;br /&gt;
|Rashad Kanavath &lt;br /&gt;
|Massimo Di Stefano&lt;br /&gt;
|[https://github.com/mayank33/webgrass/wiki Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gvSIG&lt;br /&gt;
|Add tests and educational games support to gvSIG Educa.&lt;br /&gt;
|Carlos I. Colombana&lt;br /&gt;
|Oscar Martinez&lt;br /&gt;
|Joaquin del Cerro&lt;br /&gt;
|[[GvSIG-Educational-Games_GSoC_2016|Wiki]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gvSIG&lt;br /&gt;
|Development of a model for woody debris flooding hazard in gvSIG&lt;br /&gt;
|Silvia Franceschi&lt;br /&gt;
|Andrea Antonello&lt;br /&gt;
|Riccardo Rigon&lt;br /&gt;
|[https://github.com/moovida/jgrasstools/wiki/Google-Summer-of-Code-2016 github]&lt;br /&gt;
|[https://github.com/silviafranceschi/jgrasstools github]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|Android istSOS client&lt;br /&gt;
|Florin-Daniel Cioloboc&lt;br /&gt;
|Mirko Cardoso&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/Android_istSOS Wiki]&lt;br /&gt;
|[https://github.com/istSOS/java-core Github] [https://github.com/masterflorin/java-core Fork]&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|istSOS Web API&lt;br /&gt;
|Luka Glušica&lt;br /&gt;
|Massimiliano Cannata&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/IstSOS_Web_API Wiki]&lt;br /&gt;
|[https://github.com/istSOS/javascript-core GitHub] [https://github.com/WebPractice-LukaG/javascript-core Fork]&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|VistSOS: the istSOS Data Visualization Framework&lt;br /&gt;
|Felipe Poveda&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|Massimiliano Cannata&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/VistSOS_Data_Visualization_Framework Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NASA World Wind&lt;br /&gt;
|NASA Web World Wind - Multidimensional Visualization Tool for Environmental Variables&lt;br /&gt;
|Gabriele Prestifilippo&lt;br /&gt;
|Jakub Balhar&lt;br /&gt;
|Patrick Hogan&lt;br /&gt;
|[[NASA Web WorldWind Multidimension Visualization Tool GSoC 2016|Wiki]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenLayers3 - Google maps&lt;br /&gt;
|OGC protocols support within OL3-Google-Maps&lt;br /&gt;
|Samuel Lapointe&lt;br /&gt;
|Alexandre Dube&lt;br /&gt;
|Jessica Lapointe&lt;br /&gt;
|[[OL3-GoogleMaps_GSoC_2016|Wiki]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OneBusAway/Transitime&lt;br /&gt;
|Tansitime Quickstart application &lt;br /&gt;
|Brendan Egan&lt;br /&gt;
|Og Crudden&lt;br /&gt;
|Stefan Steiner&lt;br /&gt;
|[https://github.com/Egan109/core/wiki/Transitime-QuickStart-Gsoc-2016 Github Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OSSIM&lt;br /&gt;
|A complete photogrammetric OSSIM tool for automatic DSMs generation using multi-view optical and SAR images&lt;br /&gt;
|Martina Di Rita&lt;br /&gt;
|Oscar Kramer&lt;br /&gt;
|Dave Burken&lt;br /&gt;
|[https://trac.osgeo.org/ossim/wiki/GSoC_2016  Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Flow Algorithms for pgRouting&lt;br /&gt;
|Andrea Nardelli&lt;br /&gt;
|Daniel Kastl&lt;br /&gt;
|Vicky Vergara&lt;br /&gt;
|[https://github.com/Illedran/pgrouting/wiki/GSoC-2016-Flow Github Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implementation of a framework which supports addition of contraction techniques for pgRouting&lt;br /&gt;
|Sankepally Rohith Reddy&lt;br /&gt;
|Vicky Vergara&lt;br /&gt;
|Daniel Kastl&lt;br /&gt;
|[https://github.com/sankepallyrohithreddy/pgrouting/wiki/GSoc-2016-Contraction Github Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PyWPS&lt;br /&gt;
|Remote Output Storage for PyWPS&lt;br /&gt;
|Vikas Mishra&lt;br /&gt;
|Jachym Cepicky&lt;br /&gt;
|Jonas Eberle&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/User:Vikasmishra95 Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PyWPS&lt;br /&gt;
|Web-based administration &amp;amp; process management for PyWPS&lt;br /&gt;
|Jan Rudolf&lt;br /&gt;
|Jonas Eberle&lt;br /&gt;
|Jachym Cepicky&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/GSoC_2016_Web_administration_and_process_management_for_PyWPS Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|QGIS&lt;br /&gt;
|QGIS Styles, Symbols, and SVG Markers Sharing Repository&lt;br /&gt;
|Akbar Gumbira&lt;br /&gt;
|Alessandro Pasotti&lt;br /&gt;
|Anita Graser&lt;br /&gt;
|[[QGIS Sharing Repository|Wiki]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Bringing pyModis to the web through ZOO-Project&lt;br /&gt;
|Chingchai Humhong&lt;br /&gt;
|Luca Delucchi&lt;br /&gt;
|Gerald Fenoy&lt;br /&gt;
|[http://zoo-project.org/trac/wiki/Bringing_pyModis_to_the_web_through_ZOO-Project_GSoC_2016 Wiki]&lt;br /&gt;
|[https://github.com/chingchai/pyModis/tree/gsoc-2016/zoo-pymodis/ Github]&lt;br /&gt;
|-&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Implementing WPS for Geopaparazzi field data collection tool using ZOO-Project: Simplifying integration of field data and GIS&lt;br /&gt;
|Niroshan Sanjaya&lt;br /&gt;
|Gerald Fenoy&lt;br /&gt;
|Andrea Antonello&lt;br /&gt;
|[http://zoo-project.org/trac/wiki/IMPLEMENTING_WPS_FOR_GEOPAPARAZZI_FIELD_DATA_COLLECTION_TOOL_USING_ZOO-PROJECT%3ASIMPLIFYING_INTEGRATION_OF_FIELD_DATA_AND_GIS Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See the [https://summerofcode.withgoogle.com/organizations/6273632556810240/ accepted projects on Google's platform].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2016_Accepted&amp;diff=99174</id>
		<title>Google Summer of Code 2016 Accepted</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2016_Accepted&amp;diff=99174"/>
		<updated>2016-06-06T20:42:03Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: /* Accepted Proposals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:GSoC2016Logo.jpg|500px|link=https://summerofcode.withgoogle.com/]] &amp;lt;font size=&amp;quot;+3&amp;quot;&amp;gt; @ &amp;lt;/font&amp;gt; [[Image:OSGeo_300_127_pixel.png|200px|link=http://www.osgeo.org]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Back to the main OSGeo [[Google Summer of Code 2016]] @ OSGeo wiki page.&lt;br /&gt;
&lt;br /&gt;
== Accepted Proposals ==&lt;br /&gt;
&lt;br /&gt;
This year OSGeo accepted 22 students working on the following projects.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;   border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#D7E3D1; font-size:95%; empty-cells:show;&amp;quot; &lt;br /&gt;
|'''Community'''&lt;br /&gt;
|'''Project'''&lt;br /&gt;
|'''Student'''&lt;br /&gt;
|'''1st mentor'''&lt;br /&gt;
|'''2nd mentor'''&lt;br /&gt;
|'''Wiki page'''&lt;br /&gt;
|'''Repository'''&lt;br /&gt;
|-&lt;br /&gt;
|GDAL&lt;br /&gt;
|Introduce Triangulated Surface, Polyhedral Surface and Triangle API in the OGRGeometry core and implement their support in OGR drivers for GDAL &lt;br /&gt;
|Avyav Kumar Singh&lt;br /&gt;
|Rob Emanuele &lt;br /&gt;
|Even Rouault&lt;br /&gt;
|[https://github.com/avyavkumar/gdal/wiki Github]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GDAL&lt;br /&gt;
|GDAL DWG support &lt;br /&gt;
|Alexandr Borzykh&lt;br /&gt;
|Dmitry Baryshnikov &lt;br /&gt;
|Even Rouault&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/GDALDWG_SoC_2016 Wiki]&lt;br /&gt;
|[https://github.com/sandyre/libopencad Github]&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|Complete basic cartography suite in GRASS GIS wxGUI Map Display &lt;br /&gt;
|Adam Laža&lt;br /&gt;
|Anna Petrasova &lt;br /&gt;
|Vaclav Petras&lt;br /&gt;
|[https://trac.osgeo.org/grass/wiki/GSoC/2016/BasicCartographySuiteInGRASS Trac]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - Additional segmentation algorithms for i.segment &lt;br /&gt;
|Bo Yang&lt;br /&gt;
|Moritz Lennert &lt;br /&gt;
|Markus Neteler&lt;br /&gt;
|[https://trac.osgeo.org/grass/wiki/GSoC/2016/Additional_segmentation_algorithms Trac]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - PyQt implementation of GUI forms generated automatically from XML &lt;br /&gt;
|Ondřej Pešek&lt;br /&gt;
|Vaclav Petras &lt;br /&gt;
|Anna Petrasova&lt;br /&gt;
|[https://trac.osgeo.org/grass/wiki/GSoC/2016/PyQtGUI Trac]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - WEBGRASS &lt;br /&gt;
|Mayank Agrawal&lt;br /&gt;
|Rashad Kanavath &lt;br /&gt;
|Massimo Di Stefano&lt;br /&gt;
|[https://github.com/mayank33/webgrass/wiki Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gvSIG&lt;br /&gt;
|Add tests and educational games support to gvSIG Educa.&lt;br /&gt;
|Carlos I. Colombana&lt;br /&gt;
|Oscar Martinez&lt;br /&gt;
|Joaquin del Cerro&lt;br /&gt;
|[[GvSIG-Educational-Games_GSoC_2016|Wiki]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|gvSIG&lt;br /&gt;
|Development of a model for woody debris flooding hazard in gvSIG&lt;br /&gt;
|Silvia Franceschi&lt;br /&gt;
|Andrea Antonello&lt;br /&gt;
|Riccardo Rigon&lt;br /&gt;
|[https://github.com/moovida/jgrasstools/wiki/Google-Summer-of-Code-2016 github]&lt;br /&gt;
|[https://github.com/silviafranceschi/jgrasstools github]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|Android istSOS client&lt;br /&gt;
|Florin-Daniel Cioloboc&lt;br /&gt;
|Mirko Cardoso&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/Android_istSOS Wiki]&lt;br /&gt;
|[https://github.com/istSOS/java-core Github] [https://github.com/masterflorin/java-core Fork]&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|istSOS Web API&lt;br /&gt;
|Luka Glušica&lt;br /&gt;
|Massimiliano Cannata&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/IstSOS_Web_API Wiki]&lt;br /&gt;
|[https://github.com/istSOS/javascript-core GitHub] [https://github.com/WebPractice-LukaG/javascript-core Fork]&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|VistSOS: the istSOS Data Visualization Framework&lt;br /&gt;
|Felipe Poveda&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|Massimiliano Cannata&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/VistSOS_Data_Visualization_Framework Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|NASA World Wind&lt;br /&gt;
|NASA Web World Wind - Multidimensional Visualization Tool for Environmental Variables&lt;br /&gt;
|Gabriele Prestifilippo&lt;br /&gt;
|Jakub Balhar&lt;br /&gt;
|Patrick Hogan&lt;br /&gt;
|[[NASA Web WorldWind Multidimension Visualization Tool GSoC 2016|Wiki]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OpenLayers3 - Google maps&lt;br /&gt;
|OGC protocols support within OL3-Google-Maps&lt;br /&gt;
|Samuel Lapointe&lt;br /&gt;
|Alexandre Dube&lt;br /&gt;
|Jessica Lapointe&lt;br /&gt;
|[[OL3-GoogleMaps_GSoC_2016|Wiki]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OneBusAway/Transitime&lt;br /&gt;
|Tansitime Quickstart application &lt;br /&gt;
|Brendan Egan&lt;br /&gt;
|Og Crudden&lt;br /&gt;
|Stefan Steiner&lt;br /&gt;
|[https://github.com/Egan109/core/wiki/Transitime-QuickStart-Gsoc-2016 Github Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|OSSIM&lt;br /&gt;
|A complete photogrammetric OSSIM tool for automatic DSMs generation using multi-view optical and SAR images&lt;br /&gt;
|Martina Di Rita&lt;br /&gt;
|Oscar Kramer&lt;br /&gt;
|Dave Burken&lt;br /&gt;
|[https://trac.osgeo.org/ossim/wiki/GSoC_2016  Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Flow Algorithms for pgRouting&lt;br /&gt;
|Andrea Nardelli&lt;br /&gt;
|Daniel Kastl&lt;br /&gt;
|Vicky Vergara&lt;br /&gt;
|[https://github.com/Illedran/pgrouting/wiki/GSoC-2016-Flow Github Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implementation of a framework which supports addition of contraction techniques for pgRouting&lt;br /&gt;
|Sankepally Rohith Reddy&lt;br /&gt;
|Vicky Vergara&lt;br /&gt;
|Daniel Kastl&lt;br /&gt;
|[https://github.com/sankepallyrohithreddy/pgrouting/wiki/GSoc-2016-Contraction Github Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PyWPS&lt;br /&gt;
|Remote Output Storage for PyWPS&lt;br /&gt;
|Vikas Mishra&lt;br /&gt;
|Jachym Cepicky&lt;br /&gt;
|Jonas Eberle&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/User:Vikasmishra95 Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|PyWPS&lt;br /&gt;
|Web-based administration &amp;amp; process management for PyWPS&lt;br /&gt;
|Jan Rudolf&lt;br /&gt;
|Jonas Eberle&lt;br /&gt;
|Jachym Cepicky&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/GSoC_2016_Web_administration_and_process_management_for_PyWPS Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|QGIS&lt;br /&gt;
|QGIS Styles, Symbols, and SVG Markers Sharing Repository&lt;br /&gt;
|Akbar Gumbira&lt;br /&gt;
|Alessandro Pasotti&lt;br /&gt;
|Anita Graser&lt;br /&gt;
|[[QGIS Sharing Repository|Wiki]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Bringing pyModis to the web through ZOO-Project&lt;br /&gt;
|Chingchai Humhong&lt;br /&gt;
|Luca Delucchi&lt;br /&gt;
|Gerald Fenoy&lt;br /&gt;
|[http://zoo-project.org/trac/wiki/Bringing_pyModis_to_the_web_through_ZOO-Project_GSoC_2016 Wiki]&lt;br /&gt;
|[https://github.com/chingchai/pyModis/tree/gsoc-2016/zoo-pymodis/ Github]&lt;br /&gt;
|-&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Implementing WPS for Geopaparazzi field data collection tool using ZOO-Project: Simplifying integration of field data and GIS&lt;br /&gt;
|Niroshan Sanjaya&lt;br /&gt;
|Gerald Fenoy&lt;br /&gt;
|Andrea Antonello&lt;br /&gt;
|[http://zoo-project.org/trac/wiki/IMPLEMENTING_WPS_FOR_GEOPAPARAZZI_FIELD_DATA_COLLECTION_TOOL_USING_ZOO-PROJECT%3ASIMPLIFYING_INTEGRATION_OF_FIELD_DATA_AND_GIS Wiki]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See the [https://summerofcode.withgoogle.com/organizations/6273632556810240/ accepted projects on Google's platform].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=GRASS_GSoC_2016_Segment_Algorithms&amp;diff=99033</id>
		<title>GRASS GSoC 2016 Segment Algorithms</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=GRASS_GSoC_2016_Segment_Algorithms&amp;diff=99033"/>
		<updated>2016-05-30T15:28:34Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''OSGeo Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Neteler|Neteler]] ([[User talk:Neteler|talk]]) 14:50, 29 April 2016 (PDT)&lt;br /&gt;
&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert,  Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://trac.osgeo.org/grass/browser/sandbox/bo/i.segment.gsoc2016  i.segment sandbox]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS GIS has the i.segment which provides the possibility to segment an image into objects. This is a basic step in object-based image analysis (OBIA). Currently, the module only provides one segmentation algorithm: region-growing. The code of i.segment was structured in a way that allows addition of other algorithms. The core of proposed GSoC project would thus be to add a series of these algorithms. It would be more useful and comprehensive to add more segment methods to the i.segment module, such as mean-shift and watershed, which could be used in more types of satellite image processing. Special care should be taken for the whole project to code as efficiently as possible, i.e. to make the code run in reasonable time, even for very large images.&lt;br /&gt;
&lt;br /&gt;
Idea for this project was suggested by Moritz at [https://trac.osgeo.org/grass/wiki/GSoC/2016/ GRASS GIS SoC Ideas].&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
* Image segmentation or object recognition is the process of grouping similar pixels into unique objects. Segmentation of remote sensing images is a challenging task. A myriad of different methods have been proposed and implemented in recent years. In spite of the huge effort invested in this problem, there is no single approach that can generally solve the problem of segmentation for the large variety of image modalities existing today. The most effective segmentation algorithms are obtained by carefully customizing combinations of components. The parameters of these components are tuned for the characteristics of the image modality used as input and the features of the objects to be segmented. [1]&lt;br /&gt;
* In the GRASS i.segment module currently only region growing and merging algorithm is implemented. Each object found during the segmentation process is given a unique ID and is a collection of contiguous pixels meeting some criteria. Note the contrast with image classification where all pixels similar to each other are assigned to the same class and do not need to be contiguous. The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation preprocessing step can reduce noise and speed up the classification. [2]&lt;br /&gt;
&lt;br /&gt;
== Segmentation Methods ==&lt;br /&gt;
&lt;br /&gt;
* 1.	Region growing and merging (available in i.segment module )&lt;br /&gt;
This segmentation algorithm sequentially examines all current segments in the raster map. The similarity between the current segment and each of its neighbors is calculated according to the given distance formula. The basic approach of a region growing algorithm is to start from a seed region (typically one or more pixels) that are considered to be inside the object to be segmented. The pixels neighboring this region are evaluated to determine if they should also be considered part of the object. If so, they are merge to the region and the process continues as long as new pixels are added to the region [3].&lt;br /&gt;
* 2.	Mean-shift (plan to be implemented during GSoC 2016)&lt;br /&gt;
The mean shift segmentation is a local homogenization technique that is very useful for damping shading or tonality differences in localized objects. For the algorithm implementation of this case, basically the algorithm replaces each pixel with the mean of the pixels in a range-r neighborhood and whose value is within a distance d. The Mean Shift takes usually 3 inputs: 1) A distance function for measuring distances between pixels. Usually the Euclidean distance, but any other well defined distance function could be used. The Manhattan Distance is another useful choice sometimes. 2) A radius. All pixels within this radius (measured according the above distance) will be accounted for the calculation. 3) A value difference. From all pixels inside radius r, we will take only those whose values are within this difference for calculating the mean [4].&lt;br /&gt;
&lt;br /&gt;
* 3.	Watershed (plan to be implemented during GSoC 2016)&lt;br /&gt;
Watershed segmentation classifies pixels into regions using gradient descent on image features and analysis of weak points along region boundaries. Imagine water raining onto a landscape topology and flowing with gravity to collect in low basins. The size of those basins will grow with increasing amounts of precipitation until they spill into one another, causing small basins to merge together into larger basins. Catchment basins are formed by using local geometric structure to associate points in the image domain with local extrema in some feature measurement such as curvature or gradient magnitude. The watersheds technique is also more flexible in that it does not produce a single image segmentation, but rather a hierarchy of segmentations from which a single region or set of regions can be extracted a-priori, using a threshold, or interactively, with the help of a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
* Preparation: Discuss with Mentors. Gather ideas from the community. Feature requests, image segmentation literature, and any other ideas and suggestions. &lt;br /&gt;
* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual, test through existing code.&lt;br /&gt;
* 23 -- 28 May week 1: Start coding, develop pseudo code to outline the work&lt;br /&gt;
* 30 May -- 4 June week 2: implement mean-shift image segmentation algorithm&lt;br /&gt;
* 6 -- 11 June week 3: Validation mean-shift algorithm&lt;br /&gt;
* 13 -- 18 June week 4: Debugging mean-shift algorithm&lt;br /&gt;
* 20 -- 26 June Week 5: Caching week, further refine and validate the code&lt;br /&gt;
* 27 June Mid-term evaluation: Evaluate the existing program, determine the plan for the remaining 3-4 weeks.&lt;br /&gt;
* 28 June -- 2 July Week 6: based on the evaluation of the mid-term, test and ensure a solid existing program.&lt;br /&gt;
* 4 -- 9 July Week 7: Implement watershed image segmentation algorithm&lt;br /&gt;
* 11 -- 16 July Week 8: Validation and debugging watershed algorithm&lt;br /&gt;
* 18 -- 23 July: Further refine tests and documentation for the whole project.&lt;br /&gt;
* 25 July – 13 August Week 9-11: Improving the main algorithm, if time permits, adding shape as an additional merge criteria,&lt;br /&gt;
* 15 August - 23 August Final week: Tidy code, write tests, improve documentation and submit code sample. &lt;br /&gt;
&lt;br /&gt;
== Main Goal ==&lt;br /&gt;
&lt;br /&gt;
Implement more image segmentation methods to extend the available i.segment for image processing in GRASS. As the general logistics of the i.segment module is in place, adding mean-shift and watershed segmentation algorithms should be possible. The core of the GSoC project thus is to add a series of these algorithms. In addition, the current implementation only uses distance within the multidimensional space of all input bands as the criteria whether to merge segments or not. Adding shape as an additional merge criteria will be helpful. If time permits, this feature of additional shape criteria will be implemented. &lt;br /&gt;
&lt;br /&gt;
== ToDo List ==&lt;br /&gt;
* Get an OSGeo user id [http://www.osgeo.org/osgeo_userid/]: this will give you access to trac, including the wiki part of trac&lt;br /&gt;
* Set up a complete build environment allowing you to check out different versions of GRASS, compile and run them [https://grasswiki.osgeo.org/wiki/Compile_and_Install]&lt;br /&gt;
* Read the programming manual [https://grass.osgeo.org/programming7/], notably the chapters General (aka GIS Library), Imagery, Raster, Segment&lt;br /&gt;
* Read submitting (coding standard) rules [https://trac.osgeo.org/grass/wiki/Submitting], especially the C-rules.&lt;br /&gt;
* Register on the OSGeo wiki (making yourself automatically a member of OSgeo)&lt;br /&gt;
* More will be added...&lt;br /&gt;
&lt;br /&gt;
== Possible difficulties and solution ==&lt;br /&gt;
&lt;br /&gt;
As it usually happens with software development, I might come across problems during implementation of the above mentioned ideas which may take longer than I expected, in such a case, I have kept two weeks (week 5 and week 9) as caching weeks which are intended to let me catch up on unimplemented parts of the project.&lt;br /&gt;
I will be working on this project full time as of now. I plan to keep in touch with my mentor as much as I can and will be reporting to him every time I am done with finishing things on my to-do list. My college semester ends on May 5. New semester starts at the middle of August and hence only about one weeks of the GSoC project would overlap with college work, this will not be a problem as there isn’t much work in the first few weeks of college. After that, I have no other obligations whatsoever and am completely free to work on the project.&lt;br /&gt;
If my project need more work or maintenance after the summer ends, I would love to stick around and help. I actually have an own idea and want to implement and add to the GRASS lib after the training through GSoC. Afterwards I will look at other projects and see what I’m interested in.&lt;br /&gt;
&lt;br /&gt;
== Student's Biography ==&lt;br /&gt;
&lt;br /&gt;
My name is Bo Yang, I have finished Master degree in Geography at [http://www.UC.edu/ University of Cincinnati], now I am in the second year of Ph.D. study of Geography at UC. I also have a bachelor degree in Mathematics and MS in Computer Science.  I like Python language, but I have also used other languages (C language, PHP), and have utilized QGIS and GRASS a lot in my study and research project. &lt;br /&gt;
* Email: hao2309@gmail.com&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [1] OTB software guide: https://www.orfeo-toolbox.org/packages/OTBSoftwareGuide.pdf&lt;br /&gt;
* [2] GRASS Manuals: https://grass.osgeo.org/grass71/manuals/i.segment.html&lt;br /&gt;
* [3] Comaniciu, D., &amp;amp; Meer, P. (2002). Mean shift: a robust approach toward feature space analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(5), 1–37. &lt;br /&gt;
* [4] http://stackoverflow.com/questions/4831813/image-segmentation-using-mean-shift-explained&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=GRASS_GSoC_2016_Segment_Algorithms&amp;diff=99032</id>
		<title>GRASS GSoC 2016 Segment Algorithms</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=GRASS_GSoC_2016_Segment_Algorithms&amp;diff=99032"/>
		<updated>2016-05-30T15:27:21Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''OSGeo Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Neteler|Neteler]] ([[User talk:Neteler|talk]]) 14:50, 29 April 2016 (PDT)&lt;br /&gt;
&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert,  Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS GIS has the i.segment which provides the possibility to segment an image into objects. This is a basic step in object-based image analysis (OBIA). Currently, the module only provides one segmentation algorithm: region-growing. The code of i.segment was structured in a way that allows addition of other algorithms. The core of proposed GSoC project would thus be to add a series of these algorithms. It would be more useful and comprehensive to add more segment methods to the i.segment module, such as mean-shift and watershed, which could be used in more types of satellite image processing. Special care should be taken for the whole project to code as efficiently as possible, i.e. to make the code run in reasonable time, even for very large images.&lt;br /&gt;
&lt;br /&gt;
Idea for this project was suggested by Moritz at [https://trac.osgeo.org/grass/wiki/GSoC/2016/ GRASS GIS SoC Ideas].&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
* Image segmentation or object recognition is the process of grouping similar pixels into unique objects. Segmentation of remote sensing images is a challenging task. A myriad of different methods have been proposed and implemented in recent years. In spite of the huge effort invested in this problem, there is no single approach that can generally solve the problem of segmentation for the large variety of image modalities existing today. The most effective segmentation algorithms are obtained by carefully customizing combinations of components. The parameters of these components are tuned for the characteristics of the image modality used as input and the features of the objects to be segmented. [1]&lt;br /&gt;
* In the GRASS i.segment module currently only region growing and merging algorithm is implemented. Each object found during the segmentation process is given a unique ID and is a collection of contiguous pixels meeting some criteria. Note the contrast with image classification where all pixels similar to each other are assigned to the same class and do not need to be contiguous. The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation preprocessing step can reduce noise and speed up the classification. [2]&lt;br /&gt;
&lt;br /&gt;
== Segmentation Methods ==&lt;br /&gt;
&lt;br /&gt;
* 1.	Region growing and merging (available in i.segment module )&lt;br /&gt;
This segmentation algorithm sequentially examines all current segments in the raster map. The similarity between the current segment and each of its neighbors is calculated according to the given distance formula. The basic approach of a region growing algorithm is to start from a seed region (typically one or more pixels) that are considered to be inside the object to be segmented. The pixels neighboring this region are evaluated to determine if they should also be considered part of the object. If so, they are merge to the region and the process continues as long as new pixels are added to the region [3].&lt;br /&gt;
* 2.	Mean-shift (plan to be implemented during GSoC 2016)&lt;br /&gt;
The mean shift segmentation is a local homogenization technique that is very useful for damping shading or tonality differences in localized objects. For the algorithm implementation of this case, basically the algorithm replaces each pixel with the mean of the pixels in a range-r neighborhood and whose value is within a distance d. The Mean Shift takes usually 3 inputs: 1) A distance function for measuring distances between pixels. Usually the Euclidean distance, but any other well defined distance function could be used. The Manhattan Distance is another useful choice sometimes. 2) A radius. All pixels within this radius (measured according the above distance) will be accounted for the calculation. 3) A value difference. From all pixels inside radius r, we will take only those whose values are within this difference for calculating the mean [4].&lt;br /&gt;
&lt;br /&gt;
* 3.	Watershed (plan to be implemented during GSoC 2016)&lt;br /&gt;
Watershed segmentation classifies pixels into regions using gradient descent on image features and analysis of weak points along region boundaries. Imagine water raining onto a landscape topology and flowing with gravity to collect in low basins. The size of those basins will grow with increasing amounts of precipitation until they spill into one another, causing small basins to merge together into larger basins. Catchment basins are formed by using local geometric structure to associate points in the image domain with local extrema in some feature measurement such as curvature or gradient magnitude. The watersheds technique is also more flexible in that it does not produce a single image segmentation, but rather a hierarchy of segmentations from which a single region or set of regions can be extracted a-priori, using a threshold, or interactively, with the help of a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
* Preparation: Discuss with Mentors. Gather ideas from the community. Feature requests, image segmentation literature, and any other ideas and suggestions. &lt;br /&gt;
* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual, test through existing code.&lt;br /&gt;
* 23 -- 28 May week 1: Start coding, develop pseudo code to outline the work&lt;br /&gt;
* 30 May -- 4 June week 2: implement mean-shift image segmentation algorithm&lt;br /&gt;
* 6 -- 11 June week 3: Validation mean-shift algorithm&lt;br /&gt;
* 13 -- 18 June week 4: Debugging mean-shift algorithm&lt;br /&gt;
* 20 -- 26 June Week 5: Caching week, further refine and validate the code&lt;br /&gt;
* 27 June Mid-term evaluation: Evaluate the existing program, determine the plan for the remaining 3-4 weeks.&lt;br /&gt;
* 28 June -- 2 July Week 6: based on the evaluation of the mid-term, test and ensure a solid existing program.&lt;br /&gt;
* 4 -- 9 July Week 7: Implement watershed image segmentation algorithm&lt;br /&gt;
* 11 -- 16 July Week 8: Validation and debugging watershed algorithm&lt;br /&gt;
* 18 -- 23 July: Further refine tests and documentation for the whole project.&lt;br /&gt;
* 25 July – 13 August Week 9-11: Improving the main algorithm, if time permits, adding shape as an additional merge criteria,&lt;br /&gt;
* 15 August - 23 August Final week: Tidy code, write tests, improve documentation and submit code sample. &lt;br /&gt;
&lt;br /&gt;
== Main Goal ==&lt;br /&gt;
&lt;br /&gt;
Implement more image segmentation methods to extend the available i.segment for image processing in GRASS. As the general logistics of the i.segment module is in place, adding mean-shift and watershed segmentation algorithms should be possible. The core of the GSoC project thus is to add a series of these algorithms. In addition, the current implementation only uses distance within the multidimensional space of all input bands as the criteria whether to merge segments or not. Adding shape as an additional merge criteria will be helpful. If time permits, this feature of additional shape criteria will be implemented. &lt;br /&gt;
&lt;br /&gt;
== ToDo List ==&lt;br /&gt;
* Get an OSGeo user id [http://www.osgeo.org/osgeo_userid/]: this will give you access to trac, including the wiki part of trac&lt;br /&gt;
* Set up a complete build environment allowing you to check out different versions of GRASS, compile and run them [https://grasswiki.osgeo.org/wiki/Compile_and_Install]&lt;br /&gt;
* Read the programming manual [https://grass.osgeo.org/programming7/], notably the chapters General (aka GIS Library), Imagery, Raster, Segment&lt;br /&gt;
* Read submitting (coding standard) rules [https://trac.osgeo.org/grass/wiki/Submitting], especially the C-rules.&lt;br /&gt;
* Register on the OSGeo wiki (making yourself automatically a member of OSgeo)&lt;br /&gt;
* More will be added...&lt;br /&gt;
&lt;br /&gt;
== Possible difficulties and solution ==&lt;br /&gt;
&lt;br /&gt;
As it usually happens with software development, I might come across problems during implementation of the above mentioned ideas which may take longer than I expected, in such a case, I have kept two weeks (week 5 and week 9) as caching weeks which are intended to let me catch up on unimplemented parts of the project.&lt;br /&gt;
I will be working on this project full time as of now. I plan to keep in touch with my mentor as much as I can and will be reporting to him every time I am done with finishing things on my to-do list. My college semester ends on May 5. New semester starts at the middle of August and hence only about one weeks of the GSoC project would overlap with college work, this will not be a problem as there isn’t much work in the first few weeks of college. After that, I have no other obligations whatsoever and am completely free to work on the project.&lt;br /&gt;
If my project need more work or maintenance after the summer ends, I would love to stick around and help. I actually have an own idea and want to implement and add to the GRASS lib after the training through GSoC. Afterwards I will look at other projects and see what I’m interested in.&lt;br /&gt;
&lt;br /&gt;
== Student's Biography ==&lt;br /&gt;
&lt;br /&gt;
My name is Bo Yang, I have finished Master degree in Geography at [http://www.UC.edu/ University of Cincinnati], now I am in the second year of Ph.D. study of Geography at UC. I also have a bachelor degree in Mathematics and MS in Computer Science.  I like Python language, but I have also used other languages (C language, PHP), and have utilized QGIS and GRASS a lot in my study and research project. &lt;br /&gt;
* Email: hao2309@gmail.com&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [1] OTB software guide: https://www.orfeo-toolbox.org/packages/OTBSoftwareGuide.pdf&lt;br /&gt;
* [2] GRASS Manuals: https://grass.osgeo.org/grass71/manuals/i.segment.html&lt;br /&gt;
* [3] Comaniciu, D., &amp;amp; Meer, P. (2002). Mean shift: a robust approach toward feature space analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(5), 1–37. &lt;br /&gt;
* [4] http://stackoverflow.com/questions/4831813/image-segmentation-using-mean-shift-explained&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99031</id>
		<title>User talk:Weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99031"/>
		<updated>2016-05-30T14:52:45Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual ==&lt;br /&gt;
* A small exercise too get you more familiar with basic GRASS code&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=GRASS_GSoC_2016_Segment_Algorithms/weekly_report&amp;diff=99030</id>
		<title>GRASS GSoC 2016 Segment Algorithms/weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=GRASS_GSoC_2016_Segment_Algorithms/weekly_report&amp;diff=99030"/>
		<updated>2016-05-30T14:52:20Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: Hao2309 moved page GRASS GSoC 2016 Segment Algorithms/weekly report to User talk:Weekly report: Weekly report page has been move to GRASS trac&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[User talk:Weekly report]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99029</id>
		<title>User talk:Weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99029"/>
		<updated>2016-05-30T14:52:20Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: Hao2309 moved page GRASS GSoC 2016 Segment Algorithms/weekly report to User talk:Weekly report: Weekly report page has been move to GRASS trac&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual ==&lt;br /&gt;
* A small exercise too get you more familiar with basic GRASS code&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
As as part of bonding period, and as you are now able to compile GRASS, I would like to propose a small exercise which is already a first step in the direction of your project and which should allow you to become a bit more familiar with the code and with coding practices: As currently i.segment only provides one algorithm, the entire layout of the module GUI is related to that one algorithm. In the attached screenshot you see the current GUI. My idea would be to have the three  mandatory inputs in the Required tab, then one tab per algorithm with algorithm-specific parameters, then the Optional tab. Otherwise, I'm afraid that the current'Settings' tab becomes overcrowded.&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
The code that defines options and which 'guisection' they are in is in parse_args.c [1]. For more info about how the command parser and its options work, see [2], but the existing examples in the code might already be enough.&lt;br /&gt;
&lt;br /&gt;
You can add new parameters there without them being used in the code, yet, so don't hesitate, at this stage, to add one phony parameter per new algorithm, just to get the relevant tabs.&lt;br /&gt;
&lt;br /&gt;
Once you've done this, compile just the i.segment module (by running make in the directory) and see if the GUI corresponds to what you aim for. Then, send me a diff of the code.&lt;br /&gt;
&lt;br /&gt;
* Exercise has been finished&lt;br /&gt;
{{{&lt;br /&gt;
I think I've finished the exercise. For the time being I applied the following changes to the module GUI:&lt;br /&gt;
1.  I kept &amp;quot;required&amp;quot; tab and add the selection of algorithms. Because I think for all of the three algorithms the input data and output location are required, so this tab now is designed for the inputs and outputs for all three algorithms &lt;br /&gt;
2. The &amp;quot;setting&amp;quot; tab has been changed to the setting of &amp;quot;region growth&amp;quot; since previously it only provided the setting of that algorithm.&lt;br /&gt;
3. Two Tabs of &amp;quot;shift_mean&amp;quot; and &amp;quot;watershed&amp;quot; were added to input the setting of each algorithm. I just give some preliminary input parameters for them, when we start coding I will give more substantial parameters required in the algorithm.&lt;br /&gt;
The user are supposed to give the input, output, and select which algorithm are utilized. Then define settings of that algorithm in the corresponding tab. The option tab are supposed to be additional settings. Please see attached pics for new GUI and advise if you think this setting logistic works.&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
== 23 - 28 May week 1: Start coding, develop pseudo code to outline the work ==&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99016</id>
		<title>User talk:Weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99016"/>
		<updated>2016-05-29T17:30:52Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual ==&lt;br /&gt;
* A small exercise too get you more familiar with basic GRASS code&lt;br /&gt;
&lt;br /&gt;
{{{&lt;br /&gt;
As as part of bonding period, and as you are now able to compile GRASS, I would like to propose a small exercise which is already a first step in the direction of your project and which should allow you to become a bit more familiar with the code and with coding practices: As currently i.segment only provides one algorithm, the entire layout of the module GUI is related to that one algorithm. In the attached screenshot you see the current GUI. My idea would be to have the three  mandatory inputs in the Required tab, then one tab per algorithm with algorithm-specific parameters, then the Optional tab. Otherwise, I'm afraid that the current'Settings' tab becomes overcrowded.&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
The code that defines options and which 'guisection' they are in is in parse_args.c [1]. For more info about how the command parser and its options work, see [2], but the existing examples in the code might already be enough.&lt;br /&gt;
&lt;br /&gt;
You can add new parameters there without them being used in the code, yet, so don't hesitate, at this stage, to add one phony parameter per new algorithm, just to get the relevant tabs.&lt;br /&gt;
&lt;br /&gt;
Once you've done this, compile just the i.segment module (by running make in the directory) and see if the GUI corresponds to what you aim for. Then, send me a diff of the code.&lt;br /&gt;
&lt;br /&gt;
* Exercise has been finished&lt;br /&gt;
{{{&lt;br /&gt;
I think I've finished the exercise. For the time being I applied the following changes to the module GUI:&lt;br /&gt;
1.  I kept &amp;quot;required&amp;quot; tab and add the selection of algorithms. Because I think for all of the three algorithms the input data and output location are required, so this tab now is designed for the inputs and outputs for all three algorithms &lt;br /&gt;
2. The &amp;quot;setting&amp;quot; tab has been changed to the setting of &amp;quot;region growth&amp;quot; since previously it only provided the setting of that algorithm.&lt;br /&gt;
3. Two Tabs of &amp;quot;shift_mean&amp;quot; and &amp;quot;watershed&amp;quot; were added to input the setting of each algorithm. I just give some preliminary input parameters for them, when we start coding I will give more substantial parameters required in the algorithm.&lt;br /&gt;
The user are supposed to give the input, output, and select which algorithm are utilized. Then define settings of that algorithm in the corresponding tab. The option tab are supposed to be additional settings. Please see attached pics for new GUI and advise if you think this setting logistic works.&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
== 23 - 28 May week 1: Start coding, develop pseudo code to outline the work ==&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99015</id>
		<title>User talk:Weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99015"/>
		<updated>2016-05-29T17:29:14Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: /* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual ==&lt;br /&gt;
* A small exercise too get you more familiar with basic GRASS code&lt;br /&gt;
&lt;br /&gt;
&amp;gt; As as part of bonding period, and as you are now able to compile GRASS, I would like to propose a small exercise which is already a first step in the direction of your project and which should allow you to become a bit more familiar with the code and with coding practices: As currently i.segment only provides one algorithm, the entire layout of the module GUI is related to that one algorithm. In the attached screenshot you see the current GUI. My idea would be to have the three  mandatory inputs in the Required tab, then one tab per algorithm with algorithm-specific parameters, then the Optional tab. Otherwise, I'm afraid that the current'Settings' tab becomes overcrowded.&lt;br /&gt;
&amp;gt; The code that defines options and which 'guisection' they are in is in parse_args.c [1]. For more info about how the command parser and its options work, see [2], but the existing examples in the code might already be enough.&lt;br /&gt;
&amp;gt; You can add new parameters there without them being used in the code, yet, so don't hesitate, at this stage, to add one phony parameter per new algorithm, just to get the relevant tabs.&lt;br /&gt;
&amp;gt; Once you've done this, compile just the i.segment module (by running make in the directory) and see if the GUI corresponds to what you aim for. Then, send me a diff of the code.&lt;br /&gt;
&lt;br /&gt;
* Exercise has been finished&lt;br /&gt;
{{{&lt;br /&gt;
I think I've finished the exercise. For the time being I applied the following changes to the module GUI:&lt;br /&gt;
1.  I kept &amp;quot;required&amp;quot; tab and add the selection of algorithms. Because I think for all of the three algorithms the input data and output location are required, so this tab now is designed for the inputs and outputs for all three algorithms &lt;br /&gt;
2. The &amp;quot;setting&amp;quot; tab has been changed to the setting of &amp;quot;region growth&amp;quot; since previously it only provided the setting of that algorithm.&lt;br /&gt;
3. Two Tabs of &amp;quot;shift_mean&amp;quot; and &amp;quot;watershed&amp;quot; were added to input the setting of each algorithm. I just give some preliminary input parameters for them, when we start coding I will give more substantial parameters required in the algorithm.&lt;br /&gt;
The user are supposed to give the input, output, and select which algorithm are utilized. Then define settings of that algorithm in the corresponding tab. The option tab are supposed to be additional settings. Please see attached pics for new GUI and advise if you think this setting logistic works.&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
== 23 - 28 May week 1: Start coding, develop pseudo code to outline the work ==&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99014</id>
		<title>User talk:Weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99014"/>
		<updated>2016-05-29T17:25:42Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: /* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual ==&lt;br /&gt;
* A small exercise too get you more familiar with basic GRASS code&lt;br /&gt;
{{{ &lt;br /&gt;
As as part of bonding period, and as you are now able to compile GRASS, I would like to propose a small exercise which is already a first step in the direction of your project and which should allow you to become a bit more familiar with the code and with coding practices:&lt;br /&gt;
 As currently i.segment only provides one algorithm, the entire layout of the module GUI is related to that one algorithm. In the attached screenshot you see the current GUI. My idea would be to have the three mandatory inputs in the Required tab, then one tab per algorithm with algorithm-specific parameters, then the Optional tab. Otherwise, I'm afraid that the current 'Settings' tab becomes overcrowded.&lt;br /&gt;
 The code that defines options and which 'guisection' they are in is in parse_args.c [1]. For more info about how the command parser and its options work, see [2], but the existing examples in the code might already be enough.&lt;br /&gt;
 You can add new parameters there without them being used in the code, yet, so don't hesitate, at this stage, to add one phony parameter per new algorithm, just to get the relevant tabs.&lt;br /&gt;
 Once you've done this, compile just the i.segment module (by running make in the directory) and see if the GUI corresponds to what you aim for. Then, send me a diff of the code.&lt;br /&gt;
}}}&lt;br /&gt;
* Exercise has been finished&lt;br /&gt;
{{{&lt;br /&gt;
I think I've finished the exercise. For the time being I applied the following changes to the module GUI:&lt;br /&gt;
1.  I kept &amp;quot;required&amp;quot; tab and add the selection of algorithms. Because I think for all of the three algorithms the input data and output location are required, so this tab now is designed for the inputs and outputs for all three algorithms &lt;br /&gt;
2. The &amp;quot;setting&amp;quot; tab has been changed to the setting of &amp;quot;region growth&amp;quot; since previously it only provided the setting of that algorithm.&lt;br /&gt;
3. Two Tabs of &amp;quot;shift_mean&amp;quot; and &amp;quot;watershed&amp;quot; were added to input the setting of each algorithm. I just give some preliminary input parameters for them, when we start coding I will give more substantial parameters required in the algorithm.&lt;br /&gt;
The user are supposed to give the input, output, and select which algorithm are utilized. Then define settings of that algorithm in the corresponding tab. The option tab are supposed to be additional settings. Please see attached pics for new GUI and advise if you think this setting logistic works.&lt;br /&gt;
}}}&lt;br /&gt;
&lt;br /&gt;
== 23 - 28 May week 1: Start coding, develop pseudo code to outline the work ==&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99013</id>
		<title>User talk:Weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99013"/>
		<updated>2016-05-29T17:24:28Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: /* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual ==&lt;br /&gt;
* A small exercise too get you more familiar with basic GRASS code&lt;br /&gt;
&amp;gt;&amp;gt; As as part of bonding period, and as you are now able to compile GRASS, I would like to propose a small exercise which is already a first step in the direction of your project and which should allow you to become a bit more familiar with the code and with coding practices:&lt;br /&gt;
&amp;gt;&amp;gt; As currently i.segment only provides one algorithm, the entire layout of the module GUI is related to that one algorithm. In the attached screenshot you see the current GUI. My idea would be to have the three mandatory inputs in the Required tab, then one tab per algorithm with algorithm-specific parameters, then the Optional tab. Otherwise, I'm afraid that the current 'Settings' tab becomes overcrowded.&lt;br /&gt;
&amp;gt;&amp;gt; The code that defines options and which 'guisection' they are in is in parse_args.c [1]. For more info about how the command parser and its options work, see [2], but the existing examples in the code might already be enough.&lt;br /&gt;
&amp;gt;&amp;gt; You can add new parameters there without them being used in the code, yet, so don't hesitate, at this stage, to add one phony parameter per new algorithm, just to get the relevant tabs.&lt;br /&gt;
&amp;gt;&amp;gt; Once you've done this, compile just the i.segment module (by running make in the directory) and see if the GUI corresponds to what you aim for. Then, send me a diff of the code.&lt;br /&gt;
* Exercise has been finished&lt;br /&gt;
&amp;gt; I think I've finished the exercise. For the time being I applied the following changes to the module GUI:&lt;br /&gt;
&amp;gt; 1.  I kept &amp;quot;required&amp;quot; tab and add the selection of algorithms. Because &lt;br /&gt;
&amp;gt; I think for all of the three algorithms the input data and output location are required, so this tab now is designed for the inputs and outputs for all three algorithms 2. The &amp;quot;setting&amp;quot; tab has been changed to the setting of &amp;quot;region growth&amp;quot; since previously it only provided the setting of that algorithm.&lt;br /&gt;
&amp;gt; 3. Two Tabs of &amp;quot;shift_mean&amp;quot; and &amp;quot;watershed&amp;quot; were added to input the setting of each algorithm. I just give some preliminary input parameters for them, when we start coding I will give more substantial parameters required in the algorithm.&lt;br /&gt;
&amp;gt; The user are supposed to give the input, output, and select which algorithm are utilized. Then define settings of that algorithm in the corresponding tab. The option tab are supposed to be additional settings. Please see attached pics for new GUI and advise if you think this setting logistic works.&lt;br /&gt;
&lt;br /&gt;
== 23 - 28 May week 1: Start coding, develop pseudo code to outline the work ==&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99012</id>
		<title>User talk:Weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99012"/>
		<updated>2016-05-29T17:22:00Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual ==&lt;br /&gt;
&lt;br /&gt;
== 23 - 28 May week 1: Start coding, develop pseudo code to outline the work ==&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99011</id>
		<title>User talk:Weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99011"/>
		<updated>2016-05-29T17:21:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual, test through existing code ==&lt;br /&gt;
&lt;br /&gt;
== 23 - 28 May week 1: Start coding, develop pseudo code to outline the work ==&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99010</id>
		<title>User talk:Weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99010"/>
		<updated>2016-05-29T17:17:26Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 23 - 28 May week 1: Start coding, develop pseudo code to outline the work ==&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99009</id>
		<title>User talk:Weekly report</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Weekly_report&amp;diff=99009"/>
		<updated>2016-05-29T17:16:15Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: Created page with &amp;quot; == GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==  {| {{Prettytable}} | Student Name:  | Bo Yang |- | Organization: | [http://www.osgeo.org/ OSGeo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=GRASS_GSoC_2016_Segment_Algorithms&amp;diff=98765</id>
		<title>GRASS GSoC 2016 Segment Algorithms</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=GRASS_GSoC_2016_Segment_Algorithms&amp;diff=98765"/>
		<updated>2016-05-18T16:26:32Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''OSGeo Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Neteler|Neteler]] ([[User talk:Neteler|talk]]) 14:50, 29 April 2016 (PDT)&lt;br /&gt;
&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS GIS has the i.segment which provides the possibility to segment an image into objects. This is a basic step in object-based image analysis (OBIA). Currently, the module only provides one segmentation algorithm: region-growing. The code of i.segment was structured in a way that allows addition of other algorithms. The core of proposed GSoC project would thus be to add a series of these algorithms. It would be more useful and comprehensive to add more segment methods to the i.segment module, such as mean-shift and watershed, which could be used in more types of satellite image processing. Special care should be taken for the whole project to code as efficiently as possible, i.e. to make the code run in reasonable time, even for very large images.&lt;br /&gt;
&lt;br /&gt;
Idea for this project was suggested by Moritz at [https://trac.osgeo.org/grass/wiki/GSoC/2016/ GRASS GIS SoC Ideas].&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
* Image segmentation or object recognition is the process of grouping similar pixels into unique objects. Segmentation of remote sensing images is a challenging task. A myriad of different methods have been proposed and implemented in recent years. In spite of the huge effort invested in this problem, there is no single approach that can generally solve the problem of segmentation for the large variety of image modalities existing today. The most effective segmentation algorithms are obtained by carefully customizing combinations of components. The parameters of these components are tuned for the characteristics of the image modality used as input and the features of the objects to be segmented. [1]&lt;br /&gt;
* In the GRASS i.segment module currently only region growing and merging algorithm is implemented. Each object found during the segmentation process is given a unique ID and is a collection of contiguous pixels meeting some criteria. Note the contrast with image classification where all pixels similar to each other are assigned to the same class and do not need to be contiguous. The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation preprocessing step can reduce noise and speed up the classification. [2]&lt;br /&gt;
&lt;br /&gt;
== Segmentation Methods ==&lt;br /&gt;
&lt;br /&gt;
* 1.	Region growing and merging (available in i.segment module )&lt;br /&gt;
This segmentation algorithm sequentially examines all current segments in the raster map. The similarity between the current segment and each of its neighbors is calculated according to the given distance formula. The basic approach of a region growing algorithm is to start from a seed region (typically one or more pixels) that are considered to be inside the object to be segmented. The pixels neighboring this region are evaluated to determine if they should also be considered part of the object. If so, they are merge to the region and the process continues as long as new pixels are added to the region [3].&lt;br /&gt;
* 2.	Mean-shift (plan to be implemented during GSoC 2016)&lt;br /&gt;
The mean shift segmentation is a local homogenization technique that is very useful for damping shading or tonality differences in localized objects. For the algorithm implementation of this case, basically the algorithm replaces each pixel with the mean of the pixels in a range-r neighborhood and whose value is within a distance d. The Mean Shift takes usually 3 inputs: 1) A distance function for measuring distances between pixels. Usually the Euclidean distance, but any other well defined distance function could be used. The Manhattan Distance is another useful choice sometimes. 2) A radius. All pixels within this radius (measured according the above distance) will be accounted for the calculation. 3) A value difference. From all pixels inside radius r, we will take only those whose values are within this difference for calculating the mean [4].&lt;br /&gt;
&lt;br /&gt;
* 3.	Watershed (plan to be implemented during GSoC 2016)&lt;br /&gt;
Watershed segmentation classifies pixels into regions using gradient descent on image features and analysis of weak points along region boundaries. Imagine water raining onto a landscape topology and flowing with gravity to collect in low basins. The size of those basins will grow with increasing amounts of precipitation until they spill into one another, causing small basins to merge together into larger basins. Catchment basins are formed by using local geometric structure to associate points in the image domain with local extrema in some feature measurement such as curvature or gradient magnitude. The watersheds technique is also more flexible in that it does not produce a single image segmentation, but rather a hierarchy of segmentations from which a single region or set of regions can be extracted a-priori, using a threshold, or interactively, with the help of a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
* Preparation: Discuss with Mentors. Gather ideas from the community. Feature requests, image segmentation literature, and any other ideas and suggestions. &lt;br /&gt;
* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual, test through existing code.&lt;br /&gt;
* 23 -- 28 May week 1: Start coding, develop pseudo code to outline the work&lt;br /&gt;
* 30 May -- 4 June week 2: implement mean-shift image segmentation algorithm&lt;br /&gt;
* 6 -- 11 June week 3: Validation mean-shift algorithm&lt;br /&gt;
* 13 -- 18 June week 4: Debugging mean-shift algorithm&lt;br /&gt;
* 20 -- 26 June Week 5: Caching week, further refine and validate the code&lt;br /&gt;
* 27 June Mid-term evaluation: Evaluate the existing program, determine the plan for the remaining 3-4 weeks.&lt;br /&gt;
* 28 June -- 2 July Week 6: based on the evaluation of the mid-term, test and ensure a solid existing program.&lt;br /&gt;
* 4 -- 9 July Week 7: Implement watershed image segmentation algorithm&lt;br /&gt;
* 11 -- 16 July Week 8: Validation and debugging watershed algorithm&lt;br /&gt;
* 18 -- 23 July: Further refine tests and documentation for the whole project.&lt;br /&gt;
* 25 July – 13 August Week 9-11: Improving the main algorithm, if time permits, adding shape as an additional merge criteria,&lt;br /&gt;
* 15 August - 23 August Final week: Tidy code, write tests, improve documentation and submit code sample. &lt;br /&gt;
&lt;br /&gt;
== Main Goal ==&lt;br /&gt;
&lt;br /&gt;
Implement more image segmentation methods to extend the available i.segment for image processing in GRASS. As the general logistics of the i.segment module is in place, adding mean-shift and watershed segmentation algorithms should be possible. The core of the GSoC project thus is to add a series of these algorithms. In addition, the current implementation only uses distance within the multidimensional space of all input bands as the criteria whether to merge segments or not. Adding shape as an additional merge criteria will be helpful. If time permits, this feature of additional shape criteria will be implemented. &lt;br /&gt;
&lt;br /&gt;
== ToDo List ==&lt;br /&gt;
* Get an OSGeo user id [http://www.osgeo.org/osgeo_userid/]: this will give you access to trac, including the wiki part of trac&lt;br /&gt;
* Set up a complete build environment allowing you to check out different versions of GRASS, compile and run them [https://grasswiki.osgeo.org/wiki/Compile_and_Install]&lt;br /&gt;
* Read the programming manual [https://grass.osgeo.org/programming7/], notably the chapters General (aka GIS Library), Imagery, Raster, Segment&lt;br /&gt;
* Read submitting (coding standard) rules [https://trac.osgeo.org/grass/wiki/Submitting], especially the C-rules.&lt;br /&gt;
* Register on the OSGeo wiki (making yourself automatically a member of OSgeo)&lt;br /&gt;
* More will be added...&lt;br /&gt;
&lt;br /&gt;
== Possible difficulties and solution ==&lt;br /&gt;
&lt;br /&gt;
As it usually happens with software development, I might come across problems during implementation of the above mentioned ideas which may take longer than I expected, in such a case, I have kept two weeks (week 5 and week 9) as caching weeks which are intended to let me catch up on unimplemented parts of the project.&lt;br /&gt;
I will be working on this project full time as of now. I plan to keep in touch with my mentor as much as I can and will be reporting to him every time I am done with finishing things on my to-do list. My college semester ends on May 5. New semester starts at the middle of August and hence only about one weeks of the GSoC project would overlap with college work, this will not be a problem as there isn’t much work in the first few weeks of college. After that, I have no other obligations whatsoever and am completely free to work on the project.&lt;br /&gt;
If my project need more work or maintenance after the summer ends, I would love to stick around and help. I actually have an own idea and want to implement and add to the GRASS lib after the training through GSoC. Afterwards I will look at other projects and see what I’m interested in.&lt;br /&gt;
&lt;br /&gt;
== Student's Biography ==&lt;br /&gt;
&lt;br /&gt;
My name is Bo Yang, I have finished Master degree in Geography at [http://www.UC.edu/ University of Cincinnati], now I am in the second year of Ph.D. study of Geography at UC. I also have a bachelor degree in Mathematics and MS in Computer Science.  I like Python language, but I have also used other languages (C language, PHP), and have utilized QGIS and GRASS a lot in my study and research project. &lt;br /&gt;
* Email: hao2309@gmail.com&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [1] OTB software guide: https://www.orfeo-toolbox.org/packages/OTBSoftwareGuide.pdf&lt;br /&gt;
* [2] GRASS Manuals: https://grass.osgeo.org/grass71/manuals/i.segment.html&lt;br /&gt;
* [3] Comaniciu, D., &amp;amp; Meer, P. (2002). Mean shift: a robust approach toward feature space analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(5), 1–37. &lt;br /&gt;
* [4] http://stackoverflow.com/questions/4831813/image-segmentation-using-mean-shift-explained&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2016_Accepted&amp;diff=98520</id>
		<title>Google Summer of Code 2016 Accepted</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2016_Accepted&amp;diff=98520"/>
		<updated>2016-05-03T17:12:07Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: /* Accepted Proposals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:GSoC2016Logo.jpg|500px|link=https://summerofcode.withgoogle.com/]] &amp;lt;font size=&amp;quot;+3&amp;quot;&amp;gt; @ &amp;lt;/font&amp;gt; [[Image:OSGeo_300_127_pixel.png|200px|link=http://www.osgeo.org]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Back to the main OSGeo [[Google Summer of Code 2016]] @ OSGeo wiki page.&lt;br /&gt;
&lt;br /&gt;
== Accepted Proposals ==&lt;br /&gt;
&lt;br /&gt;
This year OSGeo accepted 22 students working on the following projects.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;   border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#D7E3D1; font-size:95%; empty-cells:show;&amp;quot; &lt;br /&gt;
|'''Community'''&lt;br /&gt;
|'''Project'''&lt;br /&gt;
|'''Student'''&lt;br /&gt;
|'''1st mentor'''&lt;br /&gt;
|'''2nd mentor'''&lt;br /&gt;
|'''Links'''&lt;br /&gt;
|-&lt;br /&gt;
|GDAL&lt;br /&gt;
|Introduce Triangulated Surface, Polyhedral Surface and Triangle API in the OGRGeometry core and implement their support in OGR drivers for GDAL &lt;br /&gt;
|Avyav Kumar Singh&lt;br /&gt;
|Rob Emanuele &lt;br /&gt;
|Even Rouault&lt;br /&gt;
|[https://github.com/avyavkumar/gdal/wiki Github]&lt;br /&gt;
|-&lt;br /&gt;
|GDAL&lt;br /&gt;
|GDAL DWG support &lt;br /&gt;
|Alexandr Borzykh&lt;br /&gt;
|Dmitry Baryshnikov &lt;br /&gt;
|Even Rouault&lt;br /&gt;
|[https://github.com/sandyre/libopencad Github]&lt;br /&gt;
[https://wiki.osgeo.org/wiki/GDALDWG_SoC_2016 Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|Complete basic cartography suite in GRASS GIS wxGUI Map Display &lt;br /&gt;
|Adam Laža&lt;br /&gt;
|Anna Petrasova &lt;br /&gt;
|Vaclav Petras&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - Additional segmentation algorithms for i.segment &lt;br /&gt;
|Bo Yang&lt;br /&gt;
|Moritz Lennert &lt;br /&gt;
|Markus Neteler&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/GRASS_GSoC_2016_Segment_Algorithms Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - PyQt implementation of GUI forms generated automatically from XML &lt;br /&gt;
|Ondřej Pešek&lt;br /&gt;
|Vaclav Petras &lt;br /&gt;
|Anna Petrasova&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - WEBGRASS &lt;br /&gt;
|Mayank Agrawal&lt;br /&gt;
|Rashad Kanavath &lt;br /&gt;
|Massimo Di Stefano&lt;br /&gt;
|[https://github.com/mayank33/webgrass/wiki Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|gvSIG&lt;br /&gt;
|Add tests and educational games support to gvSIG Educa.&lt;br /&gt;
|Carlos I. Colombana&lt;br /&gt;
|Oscar Martinez&lt;br /&gt;
|Joaquin del Cerro&lt;br /&gt;
|[[GvSIG-Educational-Games_GSoC_2016|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|gvSIG&lt;br /&gt;
|Development of a model for woody debris flooding hazard in gvSIG&lt;br /&gt;
|Silvia Franceschi&lt;br /&gt;
|Andrea Antonello&lt;br /&gt;
|Riccardo Rigon&lt;br /&gt;
|[https://github.com/moovida/jgrasstools/wiki/Google-Summer-of-Code-2016 github]&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|Android istSOS client&lt;br /&gt;
|Cioloboc FlorinDaniel&lt;br /&gt;
|Mirko Cardoso&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|istSOS Web API&lt;br /&gt;
|Luka Glušica&lt;br /&gt;
|Massimiliano Cannata&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/IstSOS_Web_API Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|VistSOS: the istSOS Data Visualization Framework&lt;br /&gt;
|Felipe Poveda&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|Massimiliano Cannata&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|NASA World Wind&lt;br /&gt;
|NASA Web World Wind - Multidimensional Visualization Tool for Environmental Variables&lt;br /&gt;
|Gabriele Prestifilippo&lt;br /&gt;
|Jakub Balhar&lt;br /&gt;
|Patrick Hogan&lt;br /&gt;
||[[NASA Web WorldWind Multidimension Visualization Tool GSoC 2016|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|OpenLayers3 - Google maps&lt;br /&gt;
|OGC protocols support within OL3-Google-Maps&lt;br /&gt;
|Samuel Lapointe&lt;br /&gt;
|Alexandre Dube&lt;br /&gt;
|Jessica Lapointe&lt;br /&gt;
| [[OL3-GoogleMaps_GSoC_2016|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|One bus Away&lt;br /&gt;
|One bus Away Quick start&lt;br /&gt;
|Brendan Egan&lt;br /&gt;
|Og Crudden&lt;br /&gt;
|Stefan Steiner&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|OSSIM&lt;br /&gt;
|A complete photogrammetric OSSIM tool for automatic DSMs generation using multi-view optical and SAR images&lt;br /&gt;
|Martina Di Rita&lt;br /&gt;
|Oscar Kramer&lt;br /&gt;
|Dave Burken&lt;br /&gt;
|[https://trac.osgeo.org/ossim/wiki/GSoC_2016  Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Flow Algorithms for pgRouting&lt;br /&gt;
|Andrea Nardelli&lt;br /&gt;
|Daniel Kastl&lt;br /&gt;
|Vicky Vergara&lt;br /&gt;
|[https://github.com/Illedran/pgrouting/wiki/GSoC-2016-Flow Github Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implementation of a framework which supports addition of contraction techniques for pgRouting&lt;br /&gt;
|Sankepally Rohith Reddy&lt;br /&gt;
|Vicky Vergara&lt;br /&gt;
|Daniel Kastl&lt;br /&gt;
|[https://github.com/sankepallyrohithreddy/pgrouting/wiki/GSoc-2016-Contraction Github Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|PyWPS&lt;br /&gt;
|Remote Output Storage for PyWPS&lt;br /&gt;
|Vikas Mishra&lt;br /&gt;
|Jachym Cepicky&lt;br /&gt;
|Jonas Eberle&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/User:Vikasmishra95 Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|PyWPS&lt;br /&gt;
|Web-based administration &amp;amp; process management for PyWPS&lt;br /&gt;
|Jan Rudolf&lt;br /&gt;
|Jonas Eberle&lt;br /&gt;
|Jachym Cepicky&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|QGIS&lt;br /&gt;
|QGIS Styles, Symbols, and SVG Markers Sharing Repository&lt;br /&gt;
|Akbar Gumbira&lt;br /&gt;
|Alessandro Pasotti&lt;br /&gt;
|Anita Graser&lt;br /&gt;
| [[QGIS Sharing Repository|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Bringing pyModis to the web through ZOO-Project&lt;br /&gt;
|Chingchai Humhong&lt;br /&gt;
|Luca Delucchi&lt;br /&gt;
|Gerald Fenoy&lt;br /&gt;
|[http://zoo-project.org/trac/wiki/Bringing_pyModis_to_the_web_through_ZOO-Project_GSoC_2016 Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Implementing WPS for Geopaparazzi field data collection tool using ZOO-Project: Simplifying integration of field data and GIS&lt;br /&gt;
|Niroshan Sanjaya&lt;br /&gt;
|Gerald Fenoy&lt;br /&gt;
|Andrea Antonello&lt;br /&gt;
|[http://zoo-project.org/trac/wiki/IMPLEMENTING_WPS_FOR_GEOPAPARAZZI_FIELD_DATA_COLLECTION_TOOL_USING_ZOO-PROJECT%3ASIMPLIFYING_INTEGRATION_OF_FIELD_DATA_AND_GIS Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See the [https://summerofcode.withgoogle.com/organizations/6273632556810240/ accepted projects on Google's platform].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=GRASS_GSoC_2016_Segment_Algorithms&amp;diff=98519</id>
		<title>GRASS GSoC 2016 Segment Algorithms</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=GRASS_GSoC_2016_Segment_Algorithms&amp;diff=98519"/>
		<updated>2016-05-03T17:01:04Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: Initial page by Bo Yang&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''OSGeo Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Neteler|Neteler]] ([[User talk:Neteler|talk]]) 14:50, 29 April 2016 (PDT)&lt;br /&gt;
&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS GIS has the i.segment which provides the possibility to segment an image into objects. This is a basic step in object-based image analysis (OBIA). Currently, the module only provides one segmentation algorithm: region-growing. The code of i.segment was structured in a way that allows addition of other algorithms. The core of proposed GSoC project would thus be to add a series of these algorithms. It would be more useful and comprehensive to add more segment methods to the i.segment module, such as mean-shift and watershed, which could be used in more types of satellite image processing. Special care should be taken for the whole project to code as efficiently as possible, i.e. to make the code run in reasonable time, even for very large images.&lt;br /&gt;
&lt;br /&gt;
Idea for this project was suggested by Moritz at [https://trac.osgeo.org/grass/wiki/GSoC/2016/ GDAL SoC Ideas].&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
* Image segmentation or object recognition is the process of grouping similar pixels into unique objects. Segmentation of remote sensing images is a challenging task. A myriad of different methods have been proposed and implemented in recent years. In spite of the huge effort invested in this problem, there is no single approach that can generally solve the problem of segmentation for the large variety of image modalities existing today. The most effective segmentation algorithms are obtained by carefully customizing combinations of components. The parameters of these components are tuned for the characteristics of the image modality used as input and the features of the objects to be segmented. [1]&lt;br /&gt;
* In the GRASS i.segment module currently only region growing and merging algorithm is implemented. Each object found during the segmentation process is given a unique ID and is a collection of contiguous pixels meeting some criteria. Note the contrast with image classification where all pixels similar to each other are assigned to the same class and do not need to be contiguous. The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation preprocessing step can reduce noise and speed up the classification. [2]&lt;br /&gt;
&lt;br /&gt;
== Segmentation Methods ==&lt;br /&gt;
&lt;br /&gt;
* 1.	Region growing and merging (available in i.segment module )&lt;br /&gt;
This segmentation algorithm sequentially examines all current segments in the raster map. The similarity between the current segment and each of its neighbors is calculated according to the given distance formula. The basic approach of a region growing algorithm is to start from a seed region (typically one or more pixels) that are considered to be inside the object to be segmented. The pixels neighboring this region are evaluated to determine if they should also be considered part of the object. If so, they are merge to the region and the process continues as long as new pixels are added to the region [3].&lt;br /&gt;
* 2.	Mean-shift (plan to be implemented during GSoC 2016)&lt;br /&gt;
The mean shift segmentation is a local homogenization technique that is very useful for damping shading or tonality differences in localized objects. For the algorithm implementation of this case, basically the algorithm replaces each pixel with the mean of the pixels in a range-r neighborhood and whose value is within a distance d. The Mean Shift takes usually 3 inputs: 1) A distance function for measuring distances between pixels. Usually the Euclidean distance, but any other well defined distance function could be used. The Manhattan Distance is another useful choice sometimes. 2) A radius. All pixels within this radius (measured according the above distance) will be accounted for the calculation. 3) A value difference. From all pixels inside radius r, we will take only those whose values are within this difference for calculating the mean [4].&lt;br /&gt;
&lt;br /&gt;
* 3.	Watershed (plan to be implemented during GSoC 2016)&lt;br /&gt;
Watershed segmentation classifies pixels into regions using gradient descent on image features and analysis of weak points along region boundaries. Imagine water raining onto a landscape topology and flowing with gravity to collect in low basins. The size of those basins will grow with increasing amounts of precipitation until they spill into one another, causing small basins to merge together into larger basins. Catchment basins are formed by using local geometric structure to associate points in the image domain with local extrema in some feature measurement such as curvature or gradient magnitude. The watersheds technique is also more flexible in that it does not produce a single image segmentation, but rather a hierarchy of segmentations from which a single region or set of regions can be extracted a-priori, using a threshold, or interactively, with the help of a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
* Preparation: Discuss with Mentors. Gather ideas from the community. Feature requests, image segmentation literature, and any other ideas and suggestions. &lt;br /&gt;
* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual, test through existing code.&lt;br /&gt;
* 23 -- 28 May week 1: Start coding, develop pseudo code to outline the work&lt;br /&gt;
* 30 May -- 4 June week 2: implement mean-shift image segmentation algorithm&lt;br /&gt;
* 6 -- 11 June week 3: Validation mean-shift algorithm&lt;br /&gt;
* 13 -- 18 June week 4: Debugging mean-shift algorithm&lt;br /&gt;
* 20 -- 26 June Week 5: Caching week, further refine and validate the code&lt;br /&gt;
* 27 June Mid-term evaluation: Evaluate the existing program, determine the plan for the remaining 3-4 weeks.&lt;br /&gt;
* 28 June -- 2 July Week 6: based on the evaluation of the mid-term, test and ensure a solid existing program.&lt;br /&gt;
* 4 -- 9 July Week 7: Implement watershed image segmentation algorithm&lt;br /&gt;
* 11 -- 16 July Week 8: Validation and debugging watershed algorithm&lt;br /&gt;
* 18 -- 23 July: Further refine tests and documentation for the whole project.&lt;br /&gt;
* 25 July – 13 August Week 9-11: Improving the main algorithm, if time permits, adding shape as an additional merge criteria,&lt;br /&gt;
* 15 August - 23 August Final week: Tidy code, write tests, improve documentation and submit code sample. &lt;br /&gt;
&lt;br /&gt;
== Main Goal ==&lt;br /&gt;
&lt;br /&gt;
Implement more image segmentation methods to extend the available i.segment for image processing in GRASS. As the general logistics of the i.segment module is in place, adding mean-shift and watershed segmentation algorithms should be possible. The core of the GSoC project thus is to add a series of these algorithms. In addition, the current implementation only uses distance within the multidimensional space of all input bands as the criteria whether to merge segments or not. Adding shape as an additional merge criteria will be helpful. If time permits, this feature of additional shape criteria will be implemented. &lt;br /&gt;
&lt;br /&gt;
== ToDo List ==&lt;br /&gt;
* Get an OSGeo user id [http://www.osgeo.org/osgeo_userid/]: this will give you access to trac, including the wiki part of trac&lt;br /&gt;
* Set up a complete build environment allowing you to check out different versions of GRASS, compile and run them [https://grasswiki.osgeo.org/wiki/Compile_and_Install]&lt;br /&gt;
* Read the programming manual [https://grass.osgeo.org/programming7/], notably the chapters General (aka GIS Library), Imagery, Raster, Segment&lt;br /&gt;
* Read submitting (coding standard) rules [https://trac.osgeo.org/grass/wiki/Submitting], especially the C-rules.&lt;br /&gt;
* Register on the OSGeo wiki (making yourself automatically a member of OSgeo)&lt;br /&gt;
* More will be added...&lt;br /&gt;
&lt;br /&gt;
== Possible difficulties and solution ==&lt;br /&gt;
&lt;br /&gt;
As it usually happens with software development, I might come across problems during implementation of the above mentioned ideas which may take longer than I expected, in such a case, I have kept two weeks (week 5 and week 9) as caching weeks which are intended to let me catch up on unimplemented parts of the project.&lt;br /&gt;
I will be working on this project full time as of now. I plan to keep in touch with my mentor as much as I can and will be reporting to him every time I am done with finishing things on my to-do list. My college semester ends on May 5. New semester starts at the middle of August and hence only about one weeks of the GSoC project would overlap with college work, this will not be a problem as there isn’t much work in the first few weeks of college. After that, I have no other obligations whatsoever and am completely free to work on the project.&lt;br /&gt;
If my project need more work or maintenance after the summer ends, I would love to stick around and help. I actually have an own idea and want to implement and add to the GRASS lib after the training through GSoC. Afterwards I will look at other projects and see what I’m interested in.&lt;br /&gt;
&lt;br /&gt;
== Student's Biography ==&lt;br /&gt;
&lt;br /&gt;
My name is Bo Yang, I have finished Master degree in Geography at [http://www.UC.edu/ University of Cincinnati], now I am in the second year of Ph.D. study of Geography at UC. I also have a bachelor degree in Mathematics and MS in Computer Science.  I like Python language, but I have also used other languages (C language, PHP), and have utilized QGIS and GRASS a lot in my study and research project. &lt;br /&gt;
* Email: hao2309@gmail.com&lt;br /&gt;
* Address: 477 Riddle Rd, Cincinnati, OH 45220&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [1] OTB software guide: https://www.orfeo-toolbox.org/packages/OTBSoftwareGuide.pdf&lt;br /&gt;
* [2] GRASS Manuals: https://grass.osgeo.org/grass71/manuals/i.segment.html&lt;br /&gt;
* [3] Comaniciu, D., &amp;amp; Meer, P. (2002). Mean shift: a robust approach toward feature space analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(5), 1–37. &lt;br /&gt;
* [4] http://stackoverflow.com/questions/4831813/image-segmentation-using-mean-shift-explained&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Hao2309&amp;diff=98497</id>
		<title>User talk:Hao2309</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Hao2309&amp;diff=98497"/>
		<updated>2016-05-03T04:21:05Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''OSGeo Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Neteler|Neteler]] ([[User talk:Neteler|talk]]) 14:50, 29 April 2016 (PDT)&lt;br /&gt;
&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS GIS has the i.segment which provides the possibility to segment an image into objects. This is a basic step in object-based image analysis (OBIA). Currently, the module only provides one segmentation algorithm: region-growing. The code of i.segment was structured in a way that allows addition of other algorithms. The core of proposed GSoC project would thus be to add a series of these algorithms. It would be more useful and comprehensive to add more segment methods to the i.segment module, such as mean-shift and watershed, which could be used in more types of satellite image processing. Special care should be taken for the whole project to code as efficiently as possible, i.e. to make the code run in reasonable time, even for very large images.&lt;br /&gt;
&lt;br /&gt;
Idea for this project was suggested by Moritz at [https://trac.osgeo.org/grass/wiki/GSoC/2016/ GDAL SoC Ideas].&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
* Image segmentation or object recognition is the process of grouping similar pixels into unique objects. Segmentation of remote sensing images is a challenging task. A myriad of different methods have been proposed and implemented in recent years. In spite of the huge effort invested in this problem, there is no single approach that can generally solve the problem of segmentation for the large variety of image modalities existing today. The most effective segmentation algorithms are obtained by carefully customizing combinations of components. The parameters of these components are tuned for the characteristics of the image modality used as input and the features of the objects to be segmented. [1]&lt;br /&gt;
* In the GRASS i.segment module currently only region growing and merging algorithm is implemented. Each object found during the segmentation process is given a unique ID and is a collection of contiguous pixels meeting some criteria. Note the contrast with image classification where all pixels similar to each other are assigned to the same class and do not need to be contiguous. The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation preprocessing step can reduce noise and speed up the classification. [2]&lt;br /&gt;
&lt;br /&gt;
== Segmentation Methods ==&lt;br /&gt;
&lt;br /&gt;
* 1.	Region growing and merging (available in i.segment module )&lt;br /&gt;
This segmentation algorithm sequentially examines all current segments in the raster map. The similarity between the current segment and each of its neighbors is calculated according to the given distance formula. The basic approach of a region growing algorithm is to start from a seed region (typically one or more pixels) that are considered to be inside the object to be segmented. The pixels neighboring this region are evaluated to determine if they should also be considered part of the object. If so, they are merge to the region and the process continues as long as new pixels are added to the region [3].&lt;br /&gt;
* 2.	Mean-shift (plan to be implemented during GSoC 2016)&lt;br /&gt;
The mean shift segmentation is a local homogenization technique that is very useful for damping shading or tonality differences in localized objects. For the algorithm implementation of this case, basically the algorithm replaces each pixel with the mean of the pixels in a range-r neighborhood and whose value is within a distance d. The Mean Shift takes usually 3 inputs: 1) A distance function for measuring distances between pixels. Usually the Euclidean distance, but any other well defined distance function could be used. The Manhattan Distance is another useful choice sometimes. 2) A radius. All pixels within this radius (measured according the above distance) will be accounted for the calculation. 3) A value difference. From all pixels inside radius r, we will take only those whose values are within this difference for calculating the mean [4].&lt;br /&gt;
&lt;br /&gt;
* 3.	Watershed (plan to be implemented during GSoC 2016)&lt;br /&gt;
Watershed segmentation classifies pixels into regions using gradient descent on image features and analysis of weak points along region boundaries. Imagine water raining onto a landscape topology and flowing with gravity to collect in low basins. The size of those basins will grow with increasing amounts of precipitation until they spill into one another, causing small basins to merge together into larger basins. Catchment basins are formed by using local geometric structure to associate points in the image domain with local extrema in some feature measurement such as curvature or gradient magnitude. The watersheds technique is also more flexible in that it does not produce a single image segmentation, but rather a hierarchy of segmentations from which a single region or set of regions can be extracted a-priori, using a threshold, or interactively, with the help of a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
* Preparation: Discuss with Mentors. Gather ideas from the community. Feature requests, image segmentation literature, and any other ideas and suggestions. &lt;br /&gt;
* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual, test through existing code.&lt;br /&gt;
* 23 -- 28 May week 1: Start coding, develop pseudo code to outline the work&lt;br /&gt;
* 30 May -- 4 June week 2: implement mean-shift image segmentation algorithm&lt;br /&gt;
* 6 -- 11 June week 3: Validation mean-shift algorithm&lt;br /&gt;
* 13 -- 18 June week 4: Debugging mean-shift algorithm&lt;br /&gt;
* 20 -- 26 June Week 5: Caching week, further refine and validate the code&lt;br /&gt;
* 27 June Mid-term evaluation: Evaluate the existing program, determine the plan for the remaining 3-4 weeks.&lt;br /&gt;
* 28 June -- 2 July Week 6: based on the evaluation of the mid-term, test and ensure a solid existing program.&lt;br /&gt;
* 4 -- 9 July Week 7: Implement watershed image segmentation algorithm&lt;br /&gt;
* 11 -- 16 July Week 8: Validation and debugging watershed algorithm&lt;br /&gt;
* 18 -- 23 July: Further refine tests and documentation for the whole project.&lt;br /&gt;
* 25 July – 13 August Week 9-11: Improving the main algorithm, if time permits, adding shape as an additional merge criteria,&lt;br /&gt;
* 15 August - 23 August Final week: Tidy code, write tests, improve documentation and submit code sample. &lt;br /&gt;
&lt;br /&gt;
== Main Goal ==&lt;br /&gt;
&lt;br /&gt;
Implement more image segmentation methods to extend the available i.segment for image processing in GRASS. As the general logistics of the i.segment module is in place, adding mean-shift and watershed segmentation algorithms should be possible. The core of the GSoC project thus is to add a series of these algorithms. In addition, the current implementation only uses distance within the multidimensional space of all input bands as the criteria whether to merge segments or not. Adding shape as an additional merge criteria will be helpful. If time permits, this feature of additional shape criteria will be implemented. &lt;br /&gt;
&lt;br /&gt;
== ToDo List ==&lt;br /&gt;
* Get an OSGeo user id [http://www.osgeo.org/osgeo_userid/]: this will give you access to trac, including the wiki part of trac&lt;br /&gt;
* Set up a complete build environment allowing you to check out different versions of GRASS, compile and run them [https://grasswiki.osgeo.org/wiki/Compile_and_Install]&lt;br /&gt;
* Read the programming manual [https://grass.osgeo.org/programming7/], notably the chapters General (aka GIS Library), Imagery, Raster, Segment&lt;br /&gt;
* Read submitting (coding standard) rules [https://trac.osgeo.org/grass/wiki/Submitting], especially the C-rules.&lt;br /&gt;
* Register on the OSGeo wiki (making yourself automatically a member of OSgeo)&lt;br /&gt;
* More will be added...&lt;br /&gt;
&lt;br /&gt;
== Possible difficulties and solution ==&lt;br /&gt;
&lt;br /&gt;
As it usually happens with software development, I might come across problems during implementation of the above mentioned ideas which may take longer than I expected, in such a case, I have kept two weeks (week 5 and week 9) as caching weeks which are intended to let me catch up on unimplemented parts of the project.&lt;br /&gt;
I will be working on this project full time as of now. I plan to keep in touch with my mentor as much as I can and will be reporting to him every time I am done with finishing things on my to-do list. My college semester ends on May 5. New semester starts at the middle of August and hence only about one weeks of the GSoC project would overlap with college work, this will not be a problem as there isn’t much work in the first few weeks of college. After that, I have no other obligations whatsoever and am completely free to work on the project.&lt;br /&gt;
If my project need more work or maintenance after the summer ends, I would love to stick around and help. I actually have an own idea and want to implement and add to the GRASS lib after the training through GSoC. Afterwards I will look at other projects and see what I’m interested in.&lt;br /&gt;
&lt;br /&gt;
== Student's Biography ==&lt;br /&gt;
&lt;br /&gt;
My name is Bo Yang, I have finished Master degree in Geography at [http://www.UC.edu/ University of Cincinnati], now I am in the second year of Ph.D. study of Geography at UC. I also have a bachelor degree in Mathematics and MS in Computer Science.  I like Python language, but I have also used other languages (C language, PHP), and have utilized QGIS and GRASS a lot in my study and research project. &lt;br /&gt;
* Email: hao2309@gmail.com&lt;br /&gt;
* Address: 477 Riddle Rd, Cincinnati, OH 45220&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [1] OTB software guide: https://www.orfeo-toolbox.org/packages/OTBSoftwareGuide.pdf&lt;br /&gt;
* [2] GRASS Manuals: https://grass.osgeo.org/grass71/manuals/i.segment.html&lt;br /&gt;
* [3] Comaniciu, D., &amp;amp; Meer, P. (2002). Mean shift: a robust approach toward feature space analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(5), 1–37. &lt;br /&gt;
* [4] http://stackoverflow.com/questions/4831813/image-segmentation-using-mean-shift-explained&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Hao2309&amp;diff=98474</id>
		<title>User talk:Hao2309</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Hao2309&amp;diff=98474"/>
		<updated>2016-05-02T03:17:39Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''OSGeo Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Neteler|Neteler]] ([[User talk:Neteler|talk]]) 14:50, 29 April 2016 (PDT)&lt;br /&gt;
&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Neteler, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS GIS has the i.segment which provides the possibility to segment an image into objects. This is a basic step in object-based image analysis (OBIA). Currently, the module only provides one segmentation algorithm: region-growing. The code of i.segment was structured in a way that allows addition of other algorithms. The core of proposed GSoC project would thus be to add a series of these algorithms. It would be more useful and comprehensive to add at least one or two top-down methods to the i.segment module because the current region growing approach only allows bottom-up hierarchical segmentation. New segment methods, such as mean-shift, split-window and watershed, would allow top-down hierarchical segmentation, which could be used in more types of satellite image processing. Special care should be taken for the whole project to code as efficiently as possible, i.e. to make the code run in reasonable time, even for very large images.&lt;br /&gt;
&lt;br /&gt;
Idea for this project was suggested by Moritz at [https://trac.osgeo.org/grass/wiki/GSoC/2016/ GDAL SoC Ideas].&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
* Image segmentation or object recognition is the process of grouping similar pixels into unique objects. Segmentation of remote sensing images is a challenging task. A myriad of different methods have been proposed and implemented in recent years. In spite of the huge effort invested in this problem, there is no single approach that can generally solve the problem of segmentation for the large variety of image modalities existing today. The most effective segmentation algorithms are obtained by carefully customizing combinations of components. The parameters of these components are tuned for the characteristics of the image modality used as input and the features of the objects to be segmented. [1]&lt;br /&gt;
* In the GRASS i.segment module currently only region growing and merging algorithm is implemented. Each object found during the segmentation process is given a unique ID and is a collection of contiguous pixels meeting some criteria. Note the contrast with image classification where all pixels similar to each other are assigned to the same class and do not need to be contiguous. The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation preprocessing step can reduce noise and speed up the classification. [2]&lt;br /&gt;
&lt;br /&gt;
== Segmentation Methods ==&lt;br /&gt;
&lt;br /&gt;
* 1.	Region growing and merging (available in i.segment module )&lt;br /&gt;
This segmentation algorithm sequentially examines all current segments in the raster map. The similarity between the current segment and each of its neighbors is calculated according to the given distance formula. The basic approach of a region growing algorithm is to start from a seed region (typically one or more pixels) that are considered to be inside the object to be segmented. The pixels neighboring this region are evaluated to determine if they should also be considered part of the object. If so, they are merge to the region and the process continues as long as new pixels are added to the region [3].&lt;br /&gt;
* 2.	Mean-shift (plan to be implemented during GSoC 2016)&lt;br /&gt;
The mean shift segmentation is a local homogenization technique that is very useful for damping shading or tonality differences in localized objects. For the algorithm implementation of this case, basically the algorithm replaces each pixel with the mean of the pixels in a range-r neighborhood and whose value is within a distance d. The Mean Shift takes usually 3 inputs: 1) A distance function for measuring distances between pixels. Usually the Euclidean distance, but any other well defined distance function could be used. The Manhattan Distance is another useful choice sometimes. 2) A radius. All pixels within this radius (measured according the above distance) will be accounted for the calculation. 3) A value difference. From all pixels inside radius r, we will take only those whose values are within this difference for calculating the mean [4].&lt;br /&gt;
&lt;br /&gt;
* 3.	Watershed (plan to be implemented during GSoC 2016)&lt;br /&gt;
Watershed segmentation classifies pixels into regions using gradient descent on image features and analysis of weak points along region boundaries. Imagine water raining onto a landscape topology and flowing with gravity to collect in low basins. The size of those basins will grow with increasing amounts of precipitation until they spill into one another, causing small basins to merge together into larger basins. Catchment basins are formed by using local geometric structure to associate points in the image domain with local extrema in some feature measurement such as curvature or gradient magnitude. The watersheds technique is also more flexible in that it does not produce a single image segmentation, but rather a hierarchy of segmentations from which a single region or set of regions can be extracted a-priori, using a threshold, or interactively, with the help of a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
* Preparation: Discuss with Mentors. Gather ideas from the community. Feature requests, image segmentation literature, and any other ideas and suggestions. &lt;br /&gt;
* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual, test through existing code.&lt;br /&gt;
* 23 -- 28 May week 1: Start coding, develop pseudo code to outline the work&lt;br /&gt;
* 30 May -- 4 June week 2: implement mean-shift image segmentation algorithm&lt;br /&gt;
* 6 -- 11 June week 3: Validation mean-shift algorithm&lt;br /&gt;
* 13 -- 18 June week 4: Debugging mean-shift algorithm&lt;br /&gt;
* 20 -- 26 June Week 5: Caching week, further refine and validate the code&lt;br /&gt;
* 27 June Mid-term evaluation: Evaluate the existing program, determine the plan for the remaining 3-4 weeks.&lt;br /&gt;
* 28 June -- 2 July Week 6: based on the evaluation of the mid-term, test and ensure a solid existing program.&lt;br /&gt;
* 4 -- 9 July Week 7: Implement watershed image segmentation algorithm&lt;br /&gt;
* 11 -- 16 July Week 8: Validation and debugging watershed algorithm&lt;br /&gt;
* 18 -- 23 July: Further refine tests and documentation for the whole project.&lt;br /&gt;
* 25 July – 13 August Week 9-11: Improving the main algorithm, if time permits, adding shape as an additional merge criteria,&lt;br /&gt;
* 15 August - 23 August Final week: Tidy code, write tests, improve documentation and submit code sample. &lt;br /&gt;
&lt;br /&gt;
== Main Goal ==&lt;br /&gt;
&lt;br /&gt;
Implement more image segmentation methods to extend the available i.segment for image processing in GRASS. As the general logistics of the i.segment module is in place, adding mean-shift and watershed segmentation algorithms should be possible. The core of the GSoC project thus is to add a series of these algorithms. In addition, the current implementation only uses distance within the multidimensional space of all input bands as the criteria whether to merge segments or not. Adding shape as an additional merge criteria will be helpful. If time permits, this feature of additional shape criteria will be implemented. &lt;br /&gt;
&lt;br /&gt;
== ToDo List ==&lt;br /&gt;
* Get an OSGeo user id [http://www.osgeo.org/osgeo_userid/]: this will give you access to trac, including the wiki part of trac&lt;br /&gt;
* Set up a complete build environment allowing you to check out different versions of GRASS, compile and run them [https://grasswiki.osgeo.org/wiki/Compile_and_Install]&lt;br /&gt;
* Read the programming manual [https://grass.osgeo.org/programming7/], notably the chapters General (aka GIS Library), Imagery, Raster, Segment&lt;br /&gt;
* Read submitting (coding standard) rules [https://trac.osgeo.org/grass/wiki/Submitting], especially the C-rules.&lt;br /&gt;
* Register on the OSGeo wiki (making yourself automatically a member of OSgeo)&lt;br /&gt;
* More will be added...&lt;br /&gt;
&lt;br /&gt;
== Possible difficulties and solution ==&lt;br /&gt;
&lt;br /&gt;
As it usually happens with software development, I might come across problems during implementation of the above mentioned ideas which may take longer than I expected, in such a case, I have kept two weeks (week 5 and week 9) as caching weeks which are intended to let me catch up on unimplemented parts of the project.&lt;br /&gt;
I will be working on this project full time as of now. I plan to keep in touch with my mentor as much as I can and will be reporting to him every time I am done with finishing things on my to-do list. My college semester ends on May 5. New semester starts at the middle of August and hence only about one weeks of the GSoC project would overlap with college work, this will not be a problem as there isn’t much work in the first few weeks of college. After that, I have no other obligations whatsoever and am completely free to work on the project.&lt;br /&gt;
If my project need more work or maintenance after the summer ends, I would love to stick around and help. I actually have an own idea and want to implement and add to the GRASS lib after the training through GSoC. Afterwards I will look at other projects and see what I’m interested in.&lt;br /&gt;
&lt;br /&gt;
== Student's Biography ==&lt;br /&gt;
&lt;br /&gt;
My name is Bo Yang, I have finished Master degree in Geography at [http://www.UC.edu/ University of Cincinnati], now I am in the second year of Ph.D. study of Geography at UC. I also have a bachelor degree in Mathematics and MS in Computer Science.  I like Python language, but I have also used other languages (C language, PHP), and have utilized QGIS and GRASS a lot in my study and research project. &lt;br /&gt;
* Email: hao2309@gmail.com&lt;br /&gt;
* Address: 477 Riddle Rd, Cincinnati, OH 45220&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [1] OTB software guide: https://www.orfeo-toolbox.org/packages/OTBSoftwareGuide.pdf&lt;br /&gt;
* [2] GRASS Manuals: https://grass.osgeo.org/grass71/manuals/i.segment.html&lt;br /&gt;
* [3] Comaniciu, D., &amp;amp; Meer, P. (2002). Mean shift: a robust approach toward feature space analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(5), 1–37. &lt;br /&gt;
* [4] http://stackoverflow.com/questions/4831813/image-segmentation-using-mean-shift-explained&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2016_Accepted&amp;diff=98470</id>
		<title>Google Summer of Code 2016 Accepted</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2016_Accepted&amp;diff=98470"/>
		<updated>2016-05-02T01:03:46Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: /* Accepted Proposals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:GSoC2016Logo.jpg|500px|link=https://summerofcode.withgoogle.com/]] &amp;lt;font size=&amp;quot;+3&amp;quot;&amp;gt; @ &amp;lt;/font&amp;gt; [[Image:OSGeo_300_127_pixel.png|200px|link=http://www.osgeo.org]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Back to the main OSGeo [[Google Summer of Code 2016]] @ OSGeo wiki page.&lt;br /&gt;
&lt;br /&gt;
== Accepted Proposals ==&lt;br /&gt;
&lt;br /&gt;
This year OSGeo accepted 22 students working on the following projects.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;   border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#D7E3D1; font-size:95%; empty-cells:show;&amp;quot; &lt;br /&gt;
|'''Community'''&lt;br /&gt;
|'''Project'''&lt;br /&gt;
|'''Student'''&lt;br /&gt;
|'''1st mentor'''&lt;br /&gt;
|'''2nd mentor'''&lt;br /&gt;
|'''Links'''&lt;br /&gt;
|-&lt;br /&gt;
|GDAL&lt;br /&gt;
|Introduce Triangulated Surface, Polyhedral Surface and Triangle API in the OGRGeometry core and implement their support in OGR drivers for GDAL &lt;br /&gt;
|Avyav Kumar Singh&lt;br /&gt;
|Rob Emanuele &lt;br /&gt;
|Even Rouault&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|GDAL&lt;br /&gt;
|GDAL DWG support &lt;br /&gt;
|Alexandr Borzykh&lt;br /&gt;
|Dmitry Baryshnikov &lt;br /&gt;
|Even Rouault&lt;br /&gt;
|[https://github.com/sandyre/libopencad Github]&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|Complete basic cartography suite in GRASS GIS wxGUI Map Display &lt;br /&gt;
|Adam Laža&lt;br /&gt;
|Anna Petrasova &lt;br /&gt;
|Vaclav Petras&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - Additional segmentation algorithms for i.segment &lt;br /&gt;
|Bo Yang&lt;br /&gt;
|Moritz Lennert &lt;br /&gt;
|Markus Neteler&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/User_talk:Hao2309 Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - PyQt implementation of GUI forms generated automatically from XML &lt;br /&gt;
|Ondřej Pešek&lt;br /&gt;
|Vaclav Petras &lt;br /&gt;
|Anna Petrasova&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - WEBGRASS &lt;br /&gt;
|Mayank Agrawal&lt;br /&gt;
|Rashad Kanavath &lt;br /&gt;
|Massimo Di Stefano&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|gvSIG&lt;br /&gt;
|Add tests and educational games support to gvSIG Educa.&lt;br /&gt;
|Carlos I. Colombana&lt;br /&gt;
|Oscar Martinez&lt;br /&gt;
|Joaquin del Cerro&lt;br /&gt;
|[[GvSIG-Educational-Games_GSoC_2016|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|gvSIG&lt;br /&gt;
|Development of a model for woody debris flooding hazard in gvSIG&lt;br /&gt;
|Silvia Franceschi&lt;br /&gt;
|Andrea Antonello&lt;br /&gt;
|Riccardo Rigon&lt;br /&gt;
|[https://github.com/moovida/jgrasstools/wiki/Google-Summer-of-Code-2016 github]&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|Android istSOS client&lt;br /&gt;
|Cioloboc FlorinDaniel&lt;br /&gt;
|Mirko Cardoso&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|istSOS Web API&lt;br /&gt;
|Luka Glušica&lt;br /&gt;
|Massimiliano Cannata&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/IstSOS_Web_API Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|VistSOS: the istSOS Data Visualization Framework&lt;br /&gt;
|Felipe Poveda&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|Massimiliano Cannata&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|NASA World Wind&lt;br /&gt;
|NASA Web World Wind - Multidimensional Visualization Tool for Environmental Variables&lt;br /&gt;
|Gabriele Prestifilippo&lt;br /&gt;
|Jakub Balhar&lt;br /&gt;
|Patrick Hogan&lt;br /&gt;
||[[NASA Web WorldWind Multidimension Visualization Tool GSoC 2016|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|OpenLayers3 - Google maps&lt;br /&gt;
|OGC protocols support within OL3-Google-Maps&lt;br /&gt;
|Samuel Lapointe&lt;br /&gt;
|Alexandre Dube&lt;br /&gt;
|Jessica Lapointe&lt;br /&gt;
| [[OL3-GoogleMaps_GSoC_2016|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|One bus Away&lt;br /&gt;
|One bus Away Quick start&lt;br /&gt;
|Brendan Egan&lt;br /&gt;
|Og Crudden&lt;br /&gt;
|Stefan Steiner&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|OSSIM&lt;br /&gt;
|A complete photogrammetric OSSIM tool for automatic DSMs generation using multi-view optical and SAR images&lt;br /&gt;
|Martina Di Rita&lt;br /&gt;
|Oscar Kramer&lt;br /&gt;
|Dave Burken&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Flow Algorithms for pgRouting&lt;br /&gt;
|Andrea Nardelli&lt;br /&gt;
|Daniel Kastl&lt;br /&gt;
|Vicky Vergara&lt;br /&gt;
|[https://github.com/Illedran/pgrouting/wiki/GSoC-2016-Flow Github Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implementation of a framework which supports addition of contraction techniques for pgRouting&lt;br /&gt;
|Sankepally Rohith Reddy&lt;br /&gt;
|Vicky Vergara&lt;br /&gt;
|Daniel Kastl&lt;br /&gt;
|[https://github.com/sankepallyrohithreddy/pgrouting/wiki/GSoc-2016-Contraction Github Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|PyWPS&lt;br /&gt;
|Remote Output Storage for PyWPS&lt;br /&gt;
|Vikas Mishra&lt;br /&gt;
|Jachym Cepicky&lt;br /&gt;
|Jonas Eberle&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|PyWPS&lt;br /&gt;
|Web-based administration &amp;amp; process management for PyWPS&lt;br /&gt;
|Jan Rudolf&lt;br /&gt;
|Jonas Eberle&lt;br /&gt;
|Jachym Cepicky&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|QGIS&lt;br /&gt;
|QGIS Styles, Symbols, and SVG Markers Sharing Repository&lt;br /&gt;
|Akbar Gumbira&lt;br /&gt;
|Alessandro Pasotti&lt;br /&gt;
|Anita Graser&lt;br /&gt;
| [[QGIS Sharing Repository|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Bringing pyModis to the web through ZOO-Project&lt;br /&gt;
|Chingchai Humhong&lt;br /&gt;
|Luca Delucchi&lt;br /&gt;
|Gerald Fenoy&lt;br /&gt;
|[http://zoo-project.org/trac/wiki/Bringing_pyModis_to_the_web_through_ZOO-Project_GSoC_2016 Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Implementing WPS for Geopaparazzi field data collection tool using ZOO-Project: Simplifying integration of field data and GIS&lt;br /&gt;
|Niroshan Sanjaya&lt;br /&gt;
|Gerald Fenoy&lt;br /&gt;
|Andrea Antonello&lt;br /&gt;
|[http://zoo-project.org/trac/wiki/IMPLEMENTING_WPS_FOR_GEOPAPARAZZI_FIELD_DATA_COLLECTION_TOOL_USING_ZOO-PROJECT%3ASIMPLIFYING_INTEGRATION_OF_FIELD_DATA_AND_GIS]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See the [https://summerofcode.withgoogle.com/organizations/6273632556810240/ accepted projects on Google's platform].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Hao2309&amp;diff=98469</id>
		<title>User talk:Hao2309</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Hao2309&amp;diff=98469"/>
		<updated>2016-05-02T01:03:20Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''OSGeo Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Neteler|Neteler]] ([[User talk:Neteler|talk]]) 14:50, 29 April 2016 (PDT)&lt;br /&gt;
&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS GIS has the i.segment which provides the possibility to segment an image into objects. This is a basic step in object-based image analysis (OBIA). Currently, the module only provides one segmentation algorithm: region-growing. The code of i.segment was structured in a way that allows addition of other algorithms. The core of proposed GSoC project would thus be to add a series of these algorithms. It would be more useful and comprehensive to add at least one or two top-down methods to the i.segment module because the current region growing approach only allows bottom-up hierarchical segmentation. New segment methods, such as mean-shift, split-window and watershed, would allow top-down hierarchical segmentation, which could be used in more types of satellite image processing. Special care should be taken for the whole project to code as efficiently as possible, i.e. to make the code run in reasonable time, even for very large images.&lt;br /&gt;
&lt;br /&gt;
Idea for this project was suggested by Moritz at [https://trac.osgeo.org/grass/wiki/GSoC/2016/ GDAL SoC Ideas].&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
* Image segmentation or object recognition is the process of grouping similar pixels into unique objects. Segmentation of remote sensing images is a challenging task. A myriad of different methods have been proposed and implemented in recent years. In spite of the huge effort invested in this problem, there is no single approach that can generally solve the problem of segmentation for the large variety of image modalities existing today. The most effective segmentation algorithms are obtained by carefully customizing combinations of components. The parameters of these components are tuned for the characteristics of the image modality used as input and the features of the objects to be segmented. [1]&lt;br /&gt;
* In the GRASS i.segment module currently only region growing and merging algorithm is implemented. Each object found during the segmentation process is given a unique ID and is a collection of contiguous pixels meeting some criteria. Note the contrast with image classification where all pixels similar to each other are assigned to the same class and do not need to be contiguous. The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation preprocessing step can reduce noise and speed up the classification. [2]&lt;br /&gt;
&lt;br /&gt;
== Segmentation Methods ==&lt;br /&gt;
&lt;br /&gt;
* 1.	Region growing and merging (available in i.segment module )&lt;br /&gt;
This segmentation algorithm sequentially examines all current segments in the raster map. The similarity between the current segment and each of its neighbors is calculated according to the given distance formula. The basic approach of a region growing algorithm is to start from a seed region (typically one or more pixels) that are considered to be inside the object to be segmented. The pixels neighboring this region are evaluated to determine if they should also be considered part of the object. If so, they are merge to the region and the process continues as long as new pixels are added to the region [3].&lt;br /&gt;
* 2.	Mean-shift (plan to be implemented during GSoC 2016)&lt;br /&gt;
The mean shift segmentation is a local homogenization technique that is very useful for damping shading or tonality differences in localized objects. For the algorithm implementation of this case, basically the algorithm replaces each pixel with the mean of the pixels in a range-r neighborhood and whose value is within a distance d. The Mean Shift takes usually 3 inputs: 1) A distance function for measuring distances between pixels. Usually the Euclidean distance, but any other well defined distance function could be used. The Manhattan Distance is another useful choice sometimes. 2) A radius. All pixels within this radius (measured according the above distance) will be accounted for the calculation. 3) A value difference. From all pixels inside radius r, we will take only those whose values are within this difference for calculating the mean [4].&lt;br /&gt;
&lt;br /&gt;
* 3.	Watershed (plan to be implemented during GSoC 2016)&lt;br /&gt;
Watershed segmentation classifies pixels into regions using gradient descent on image features and analysis of weak points along region boundaries. Imagine water raining onto a landscape topology and flowing with gravity to collect in low basins. The size of those basins will grow with increasing amounts of precipitation until they spill into one another, causing small basins to merge together into larger basins. Catchment basins are formed by using local geometric structure to associate points in the image domain with local extrema in some feature measurement such as curvature or gradient magnitude. The watersheds technique is also more flexible in that it does not produce a single image segmentation, but rather a hierarchy of segmentations from which a single region or set of regions can be extracted a-priori, using a threshold, or interactively, with the help of a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
* Preparation: Discuss with Mentors. Gather ideas from the community. Feature requests, image segmentation literature, and any other ideas and suggestions. &lt;br /&gt;
* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual, test through existing code.&lt;br /&gt;
* 23 -- 28 May week 1: Start coding, develop pseudo code to outline the work&lt;br /&gt;
* 30 May -- 4 June week 2: implement mean-shift image segmentation algorithm&lt;br /&gt;
* 6 -- 11 June week 3: Validation mean-shift algorithm&lt;br /&gt;
* 13 -- 18 June week 4: Debugging mean-shift algorithm&lt;br /&gt;
* 20 -- 26 June Week 5: Caching week, further refine and validate the code&lt;br /&gt;
* 27 June Mid-term evaluation: Evaluate the existing program, determine the plan for the remaining 3-4 weeks.&lt;br /&gt;
* 28 June -- 2 July Week 6: based on the evaluation of the mid-term, test and ensure a solid existing program.&lt;br /&gt;
* 4 -- 9 July Week 7: Implement watershed image segmentation algorithm&lt;br /&gt;
* 11 -- 16 July Week 8: Validation and debugging watershed algorithm&lt;br /&gt;
* 18 -- 23 July: Further refine tests and documentation for the whole project.&lt;br /&gt;
* 25 July – 13 August Week 9-11: Improving the main algorithm, if time permits, adding shape as an additional merge criteria,&lt;br /&gt;
* 15 August - 23 August Final week: Tidy code, write tests, improve documentation and submit code sample. &lt;br /&gt;
&lt;br /&gt;
== Main Goal ==&lt;br /&gt;
&lt;br /&gt;
Implement more image segmentation methods to extend the available i.segment for image processing in GRASS. As the general logistics of the i.segment module is in place, adding mean-shift and watershed segmentation algorithms should be possible. The core of the GSoC project thus is to add a series of these algorithms. In addition, the current implementation only uses distance within the multidimensional space of all input bands as the criteria whether to merge segments or not. Adding shape as an additional merge criteria will be helpful. If time permits, this feature of additional shape criteria will be implemented. &lt;br /&gt;
&lt;br /&gt;
== ToDo List ==&lt;br /&gt;
* get an OSGeo user id [http://www.osgeo.org/osgeo_userid/]: this will give you access to trac, including the wiki part of trac&lt;br /&gt;
* set up a complete build environment allowing you to check out different versions of GRASS, compile and run them [https://grasswiki.osgeo.org/wiki/Compile_and_Install]&lt;br /&gt;
* read the programming manual [https://grass.osgeo.org/programming7/], notably the chapters General (aka GIS Library), Imagery, Raster, Segment&lt;br /&gt;
* read submitting (coding standard) rules [https://trac.osgeo.org/grass/wiki/Submitting], especially the C-rules.&lt;br /&gt;
* Register on the OSGeo wiki (making yourself automatically a member of OSgeo)&lt;br /&gt;
* More will be added...&lt;br /&gt;
&lt;br /&gt;
== Possible difficulties and solution ==&lt;br /&gt;
&lt;br /&gt;
As it usually happens with software development, I might come across problems during implementation of the above mentioned ideas which may take longer than I expected, in such a case, I have kept two weeks (week 5 and week 9) as caching weeks which are intended to let me catch up on unimplemented parts of the project.&lt;br /&gt;
I will be working on this project full time as of now. I plan to keep in touch with my mentor as much as I can and will be reporting to him every time I am done with finishing things on my to-do list. My college semester ends on May 5. New semester starts at the middle of August and hence only about one weeks of the GSoC project would overlap with college work, this will not be a problem as there isn’t much work in the first few weeks of college. After that, I have no other obligations whatsoever and am completely free to work on the project.&lt;br /&gt;
If my project need more work or maintenance after the summer ends, I would love to stick around and help. I actually have an own idea and want to implement and add to the GRASS lib after the training through GSoC. Afterwards I will look at other projects and see what I’m interested in.&lt;br /&gt;
&lt;br /&gt;
== Student's Biography ==&lt;br /&gt;
&lt;br /&gt;
My name is Bo Yang, I have finished Master degree in Geography at [http://www.UC.edu/ University of Cincinnati], now I am in the second year of Ph.D. study of Geography at UC. I also have a bachelor degree in Mathematics and MS in Computer Science.  I like Python language, but I have also used other languages (C language, PHP), and have utilized QGIS and GRASS a lot in my study and research project. &lt;br /&gt;
* Email: hao2309@gmail.com&lt;br /&gt;
* Address: 477 Riddle Rd, Cincinnati, OH 45220&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [1] OTB software guide: https://www.orfeo-toolbox.org/packages/OTBSoftwareGuide.pdf&lt;br /&gt;
* [2] GRASS Manuals: https://grass.osgeo.org/grass71/manuals/i.segment.html&lt;br /&gt;
* [3] Comaniciu, D., &amp;amp; Meer, P. (2002). Mean shift: a robust approach toward feature space analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(5), 1–37. &lt;br /&gt;
* [4] http://stackoverflow.com/questions/4831813/image-segmentation-using-mean-shift-explained&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2016_Accepted&amp;diff=98468</id>
		<title>Google Summer of Code 2016 Accepted</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Google_Summer_of_Code_2016_Accepted&amp;diff=98468"/>
		<updated>2016-05-02T01:01:55Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
[[Image:GSoC2016Logo.jpg|500px|link=https://summerofcode.withgoogle.com/]] &amp;lt;font size=&amp;quot;+3&amp;quot;&amp;gt; @ &amp;lt;/font&amp;gt; [[Image:OSGeo_300_127_pixel.png|200px|link=http://www.osgeo.org]]&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Back to the main OSGeo [[Google Summer of Code 2016]] @ OSGeo wiki page.&lt;br /&gt;
&lt;br /&gt;
== Accepted Proposals ==&lt;br /&gt;
&lt;br /&gt;
This year OSGeo accepted 22 students working on the following projects.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;   border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; rules=&amp;quot;all&amp;quot; style=&amp;quot;margin:1em 1em 1em 0; border:solid 1px #AAAAAA; border-collapse:collapse; background-color:#D7E3D1; font-size:95%; empty-cells:show;&amp;quot; &lt;br /&gt;
|'''Community'''&lt;br /&gt;
|'''Project'''&lt;br /&gt;
|'''Student'''&lt;br /&gt;
|'''1st mentor'''&lt;br /&gt;
|'''2nd mentor'''&lt;br /&gt;
|'''Links'''&lt;br /&gt;
|-&lt;br /&gt;
|GDAL&lt;br /&gt;
|Introduce Triangulated Surface, Polyhedral Surface and Triangle API in the OGRGeometry core and implement their support in OGR drivers for GDAL &lt;br /&gt;
|Avyav Kumar Singh&lt;br /&gt;
|Rob Emanuele &lt;br /&gt;
|Even Rouault&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|GDAL&lt;br /&gt;
|GDAL DWG support &lt;br /&gt;
|Alexandr Borzykh&lt;br /&gt;
|Dmitry Baryshnikov &lt;br /&gt;
|Even Rouault&lt;br /&gt;
|[https://github.com/sandyre/libopencad Github]&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|Complete basic cartography suite in GRASS GIS wxGUI Map Display &lt;br /&gt;
|Adam Laža&lt;br /&gt;
|Anna Petrasova &lt;br /&gt;
|Vaclav Petras&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - Additional segmentation algorithms for i.segment &lt;br /&gt;
|Bo Yang&lt;br /&gt;
|Moritz Lennert &lt;br /&gt;
|Markus Neteler&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/User_talk:Hao2309/ Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - PyQt implementation of GUI forms generated automatically from XML &lt;br /&gt;
|Ondřej Pešek&lt;br /&gt;
|Vaclav Petras &lt;br /&gt;
|Anna Petrasova&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|GRASS GIS&lt;br /&gt;
|GRASS GIS - WEBGRASS &lt;br /&gt;
|Mayank Agrawal&lt;br /&gt;
|Rashad Kanavath &lt;br /&gt;
|Massimo Di Stefano&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|gvSIG&lt;br /&gt;
|Add tests and educational games support to gvSIG Educa.&lt;br /&gt;
|Carlos I. Colombana&lt;br /&gt;
|Oscar Martinez&lt;br /&gt;
|Joaquin del Cerro&lt;br /&gt;
|[[GvSIG-Educational-Games_GSoC_2016|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|gvSIG&lt;br /&gt;
|Development of a model for woody debris flooding hazard in gvSIG&lt;br /&gt;
|Silvia Franceschi&lt;br /&gt;
|Andrea Antonello&lt;br /&gt;
|Riccardo Rigon&lt;br /&gt;
|[https://github.com/moovida/jgrasstools/wiki/Google-Summer-of-Code-2016 github]&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|Android istSOS client&lt;br /&gt;
|Cioloboc FlorinDaniel&lt;br /&gt;
|Mirko Cardoso&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|istSOS Web API&lt;br /&gt;
|Luka Glušica&lt;br /&gt;
|Massimiliano Cannata&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|[https://wiki.osgeo.org/wiki/IstSOS_Web_API Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|istSOS&lt;br /&gt;
|VistSOS: the istSOS Data Visualization Framework&lt;br /&gt;
|Felipe Poveda&lt;br /&gt;
|Milan Antonovic&lt;br /&gt;
|Massimiliano Cannata&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|NASA World Wind&lt;br /&gt;
|NASA Web World Wind - Multidimensional Visualization Tool for Environmental Variables&lt;br /&gt;
|Gabriele Prestifilippo&lt;br /&gt;
|Jakub Balhar&lt;br /&gt;
|Patrick Hogan&lt;br /&gt;
||[[NASA Web WorldWind Multidimension Visualization Tool GSoC 2016|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|OpenLayers3 - Google maps&lt;br /&gt;
|OGC protocols support within OL3-Google-Maps&lt;br /&gt;
|Samuel Lapointe&lt;br /&gt;
|Alexandre Dube&lt;br /&gt;
|Jessica Lapointe&lt;br /&gt;
| [[OL3-GoogleMaps_GSoC_2016|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|One bus Away&lt;br /&gt;
|One bus Away Quick start&lt;br /&gt;
|Brendan Egan&lt;br /&gt;
|Og Crudden&lt;br /&gt;
|Stefan Steiner&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|OSSIM&lt;br /&gt;
|A complete photogrammetric OSSIM tool for automatic DSMs generation using multi-view optical and SAR images&lt;br /&gt;
|Martina Di Rita&lt;br /&gt;
|Oscar Kramer&lt;br /&gt;
|Dave Burken&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Flow Algorithms for pgRouting&lt;br /&gt;
|Andrea Nardelli&lt;br /&gt;
|Daniel Kastl&lt;br /&gt;
|Vicky Vergara&lt;br /&gt;
|[https://github.com/Illedran/pgrouting/wiki/GSoC-2016-Flow Github Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|pgRouting&lt;br /&gt;
|Implementation of a framework which supports addition of contraction techniques for pgRouting&lt;br /&gt;
|Sankepally Rohith Reddy&lt;br /&gt;
|Vicky Vergara&lt;br /&gt;
|Daniel Kastl&lt;br /&gt;
|[https://github.com/sankepallyrohithreddy/pgrouting/wiki/GSoc-2016-Contraction Github Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|PyWPS&lt;br /&gt;
|Remote Output Storage for PyWPS&lt;br /&gt;
|Vikas Mishra&lt;br /&gt;
|Jachym Cepicky&lt;br /&gt;
|Jonas Eberle&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|PyWPS&lt;br /&gt;
|Web-based administration &amp;amp; process management for PyWPS&lt;br /&gt;
|Jan Rudolf&lt;br /&gt;
|Jonas Eberle&lt;br /&gt;
|Jachym Cepicky&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
|QGIS&lt;br /&gt;
|QGIS Styles, Symbols, and SVG Markers Sharing Repository&lt;br /&gt;
|Akbar Gumbira&lt;br /&gt;
|Alessandro Pasotti&lt;br /&gt;
|Anita Graser&lt;br /&gt;
| [[QGIS Sharing Repository|Wiki]]&lt;br /&gt;
|-&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Bringing pyModis to the web through ZOO-Project&lt;br /&gt;
|Chingchai Humhong&lt;br /&gt;
|Luca Delucchi&lt;br /&gt;
|Gerald Fenoy&lt;br /&gt;
|[http://zoo-project.org/trac/wiki/Bringing_pyModis_to_the_web_through_ZOO-Project_GSoC_2016 Wiki]&lt;br /&gt;
|-&lt;br /&gt;
|ZOO-Project&lt;br /&gt;
|Implementing WPS for Geopaparazzi field data collection tool using ZOO-Project: Simplifying integration of field data and GIS&lt;br /&gt;
|Niroshan Sanjaya&lt;br /&gt;
|Gerald Fenoy&lt;br /&gt;
|Andrea Antonello&lt;br /&gt;
|[http://zoo-project.org/trac/wiki/IMPLEMENTING_WPS_FOR_GEOPAPARAZZI_FIELD_DATA_COLLECTION_TOOL_USING_ZOO-PROJECT%3ASIMPLIFYING_INTEGRATION_OF_FIELD_DATA_AND_GIS]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
See the [https://summerofcode.withgoogle.com/organizations/6273632556810240/ accepted projects on Google's platform].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Hao2309&amp;diff=98467</id>
		<title>User talk:Hao2309</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Hao2309&amp;diff=98467"/>
		<updated>2016-05-02T00:59:09Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''OSGeo Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Neteler|Neteler]] ([[User talk:Neteler|talk]]) 14:50, 29 April 2016 (PDT)&lt;br /&gt;
&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| Student Name: &lt;br /&gt;
| Bo Yang&lt;br /&gt;
|-&lt;br /&gt;
| Organization:&lt;br /&gt;
| [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation]&lt;br /&gt;
|-&lt;br /&gt;
| Mentors: &lt;br /&gt;
| Moritz Lennert, Markus Metz&lt;br /&gt;
|-&lt;br /&gt;
| Title: &lt;br /&gt;
| Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|-&lt;br /&gt;
| Repository:&lt;br /&gt;
| GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html  i.segment]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS GIS has the i.segment which provides the possibility to segment an image into objects. This is a basic step in object-based image analysis (OBIA). Currently, the module only provides one segmentation algorithm: region-growing. The code of i.segment was structured in a way that allows addition of other algorithms. The core of proposed GSoC project would thus be to add a series of these algorithms. It would be more useful and comprehensive to add at least one or two top-down methods to the i.segment module because the current region growing approach only allows bottom-up hierarchical segmentation. New segment methods, such as mean-shift, split-window and watershed, would allow top-down hierarchical segmentation, which could be used in more types of satellite image processing. Special care should be taken for the whole project to code as efficiently as possible, i.e. to make the code run in reasonable time, even for very large images.&lt;br /&gt;
&lt;br /&gt;
Idea for this project was suggested by Moritz at [https://trac.osgeo.org/grass/wiki/GSoC/2016/ GDAL SoC Ideas].&lt;br /&gt;
&lt;br /&gt;
=== Background ===&lt;br /&gt;
&lt;br /&gt;
* Image segmentation or object recognition is the process of grouping similar pixels into unique objects. Segmentation of remote sensing images is a challenging task. A myriad of different methods have been proposed and implemented in recent years. In spite of the huge effort invested in this problem, there is no single approach that can generally solve the problem of segmentation for the large variety of image modalities existing today. The most effective segmentation algorithms are obtained by carefully customizing combinations of components. The parameters of these components are tuned for the characteristics of the image modality used as input and the features of the objects to be segmented. [1]&lt;br /&gt;
* In the GRASS i.segment module currently only region growing and merging algorithm is implemented. Each object found during the segmentation process is given a unique ID and is a collection of contiguous pixels meeting some criteria. Note the contrast with image classification where all pixels similar to each other are assigned to the same class and do not need to be contiguous. The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation preprocessing step can reduce noise and speed up the classification. [2]&lt;br /&gt;
&lt;br /&gt;
== Segmentation Methods ==&lt;br /&gt;
&lt;br /&gt;
* 1.	Region growing and merging (available in i.segment module )&lt;br /&gt;
This segmentation algorithm sequentially examines all current segments in the raster map. The similarity between the current segment and each of its neighbors is calculated according to the given distance formula. The basic approach of a region growing algorithm is to start from a seed region (typically one or more pixels) that are considered to be inside the object to be segmented. The pixels neighboring this region are evaluated to determine if they should also be considered part of the object. If so, they are merge to the region and the process continues as long as new pixels are added to the region [3].&lt;br /&gt;
* 2.	Mean-shift (plan to be implemented during GSoC 2016)&lt;br /&gt;
The mean shift segmentation is a local homogenization technique that is very useful for damping shading or tonality differences in localized objects. For the algorithm implementation of this case, basically the algorithm replaces each pixel with the mean of the pixels in a range-r neighborhood and whose value is within a distance d. The Mean Shift takes usually 3 inputs: 1) A distance function for measuring distances between pixels. Usually the Euclidean distance, but any other well defined distance function could be used. The Manhattan Distance is another useful choice sometimes. 2) A radius. All pixels within this radius (measured according the above distance) will be accounted for the calculation. 3) A value difference. From all pixels inside radius r, we will take only those whose values are within this difference for calculating the mean [4].&lt;br /&gt;
&lt;br /&gt;
* 3.	Watershed (plan to be implemented during GSoC 2016)&lt;br /&gt;
Watershed segmentation classifies pixels into regions using gradient descent on image features and analysis of weak points along region boundaries. Imagine water raining onto a landscape topology and flowing with gravity to collect in low basins. The size of those basins will grow with increasing amounts of precipitation until they spill into one another, causing small basins to merge together into larger basins. Catchment basins are formed by using local geometric structure to associate points in the image domain with local extrema in some feature measurement such as curvature or gradient magnitude. The watersheds technique is also more flexible in that it does not produce a single image segmentation, but rather a hierarchy of segmentations from which a single region or set of regions can be extracted a-priori, using a threshold, or interactively, with the help of a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
* Preparation: Discuss with Mentors. Gather ideas from the community. Feature requests, image segmentation literature, and any other ideas and suggestions. &lt;br /&gt;
* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual, test through existing code.&lt;br /&gt;
* 23 -- 28 May week 1: Start coding, develop pseudo code to outline the work&lt;br /&gt;
* 30 May -- 4 June week 2: implement mean-shift image segmentation algorithm&lt;br /&gt;
* 6 -- 11 June week 3: Validation mean-shift algorithm&lt;br /&gt;
* 13 -- 18 June week 4: Debugging mean-shift algorithm&lt;br /&gt;
* 20 -- 26 June Week 5: Caching week, further refine and validate the code&lt;br /&gt;
* 27 June Mid-term evaluation: Evaluate the existing program, determine the plan for the remaining 3-4 weeks.&lt;br /&gt;
* 28 June -- 2 July Week 6: based on the evaluation of the mid-term, test and ensure a solid existing program.&lt;br /&gt;
* 4 -- 9 July Week 7: Implement watershed image segmentation algorithm&lt;br /&gt;
* 11 -- 16 July Week 8: Validation and debugging watershed algorithm&lt;br /&gt;
* 18 -- 23 July: Further refine tests and documentation for the whole project.&lt;br /&gt;
* 25 July – 13 August Week 9-11: Improving the main algorithm, if time permits, adding shape as an additional merge criteria,&lt;br /&gt;
* 15 August - 23 August Final week: Tidy code, write tests, improve documentation and submit code sample. &lt;br /&gt;
&lt;br /&gt;
== Main Goal ==&lt;br /&gt;
&lt;br /&gt;
Implement more image segmentation methods to extend the available i.segment for image processing in GRASS. As the general logistics of the i.segment module is in place, adding mean-shift and watershed segmentation algorithms should be possible. The core of the GSoC project thus is to add a series of these algorithms. In addition, the current implementation only uses distance within the multidimensional space of all input bands as the criteria whether to merge segments or not. Adding shape as an additional merge criteria will be helpful. If time permits, this feature of additional shape criteria will be implemented. &lt;br /&gt;
&lt;br /&gt;
== ToDo List ==&lt;br /&gt;
* get an OSGeo user id [http://www.osgeo.org/osgeo_userid/]: this will give you access to trac, including the wiki part of trac&lt;br /&gt;
* set up a complete build environment allowing you to check out different versions of GRASS, compile and run them [https://grasswiki.osgeo.org/wiki/Compile_and_Install]&lt;br /&gt;
* read the programming manual [https://grass.osgeo.org/programming7/], notably the chapters General (aka GIS Library), Imagery, Raster, Segment&lt;br /&gt;
* read submitting (coding standard) rules [https://trac.osgeo.org/grass/wiki/Submitting], especially the C-rules.&lt;br /&gt;
* Register on the OSGeo wiki (making yourself automatically a member of OSgeo)&lt;br /&gt;
* More will be added...&lt;br /&gt;
&lt;br /&gt;
== Possible difficulties and solution ==&lt;br /&gt;
&lt;br /&gt;
As it usually happens with software development, I might come across problems during implementation of the above mentioned ideas which may take longer than I expected, in such a case, I have kept two weeks (week 5 and week 9) as caching weeks which are intended to let me catch up on unimplemented parts of the project.&lt;br /&gt;
I will be working on this project full time as of now. I plan to keep in touch with my mentor as much as I can and will be reporting to him every time I am done with finishing things on my to-do list. My college semester ends on May 5. New semester starts at the middle of August and hence only about one weeks of the GSoC project would overlap with college work, this will not be a problem as there isn’t much work in the first few weeks of college. After that, I have no other obligations whatsoever and am completely free to work on the project.&lt;br /&gt;
If my project need more work or maintenance after the summer ends, I would love to stick around and help. I actually have an own idea and want to implement and add to the GRASS lib after the training through GSoC. Afterwards I will look at other projects and see what I’m interested in.&lt;br /&gt;
&lt;br /&gt;
== Student's Biography ==&lt;br /&gt;
&lt;br /&gt;
My name is Bo Yang, I have finished Master degree in Geography at [http://www.UC.edu/ University of Cincinnati], now I am in the second year of Ph.D. study of Geography at UC. I also have a bachelor degree in Mathematics and MS in Computer Science.  I like Python language, but I have also used other languages (C language, PHP), and have utilized QGIS and GRASS a lot in my study and research project. &lt;br /&gt;
* Email: hao2309@gmail.com&lt;br /&gt;
* Address: 477 Riddle Rd, Cincinnati, OH 45220&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [1] OTB software guide: https://www.orfeo-toolbox.org/packages/OTBSoftwareGuide.pdf&lt;br /&gt;
* [2] GRASS Manuals: https://grass.osgeo.org/grass71/manuals/i.segment.html&lt;br /&gt;
* [3] Comaniciu, D., &amp;amp; Meer, P. (2002). Mean shift: a robust approach toward feature space analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence, 24(5), 1–37. &lt;br /&gt;
* [4] http://stackoverflow.com/questions/4831813/image-segmentation-using-mean-shift-explained&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=User_talk:Hao2309&amp;diff=98463</id>
		<title>User talk:Hao2309</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=User_talk:Hao2309&amp;diff=98463"/>
		<updated>2016-05-01T17:41:58Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: /* GRASS GSoC 2016 Additional Image Segmentation for i.segment */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to ''OSGeo Wiki''!'''&lt;br /&gt;
We hope you will contribute much and well.&lt;br /&gt;
You will probably want to read the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents help pages].&lt;br /&gt;
Again, welcome and have fun! [[User:Neteler|Neteler]] ([[User talk:Neteler|talk]]) 14:50, 29 April 2016 (PDT)&lt;br /&gt;
&lt;br /&gt;
== GRASS GSoC 2016 Additional Image Segmentation for i.segment ==&lt;br /&gt;
&lt;br /&gt;
{| {{Prettytable}}&lt;br /&gt;
| The Google Summer of Code project is finished. Results and source codes are published on project web page: [http://www.klokan.cz/projects/gdal2tiles/ GDAL2Tiles: Utility for easy tile-based publishing of raster maps and KML generation]. Usage tips and manual page is available on GDAL wiki page [http://trac.osgeo.org/gdal/wiki/UserDocs/Gdal2Tiles Gdal2Tiles Utility]. Project was accepted by GDAL community as [http://trac.osgeo.org/gdal/ticket/1763 #1763]. Utility is going to be distributed with new version of GDAL 1.5.0, but it is usable also now with stable branch of GDAL and FWTools. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For suggestions and new ideas please use [[Talk:GDAL2Tiles_SoC_2007]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Pyramid.jpg|thumb|right|286px|Pyramid Tile Structure]]&lt;br /&gt;
Implementation of [http://www.gdal.org/gdal_drivertut.html Raster Driver for GDAL library], which will allow to write PNG/JPG '''Pyramid Tile Structure''' as a newly supported file-format. Generated tiles will contain also XML metadata, so after putting them on any webserver they could be used as data source for:&lt;br /&gt;
&lt;br /&gt;
*[http://earth.google.com/ Google Earth] (with [http://earth.google.com/kml/kml_21tutorial.html#superoverlays SuperOverlay KML])&lt;br /&gt;
*[http://maps.google.com/ Google Maps]&lt;br /&gt;
*[http://www.openlayers.org/ OpenLayers]&lt;br /&gt;
*[http://www.worldkit.org/ WorldKit]&lt;br /&gt;
&lt;br /&gt;
and probably other viewers.&lt;br /&gt;
&lt;br /&gt;
Tile structure will follow recommendation from [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification OSGEO Tile Map Service Specification]. &lt;br /&gt;
Simple utility 'gdal2tiles' for converting [http://www.gdal.org/formats_list.html supported file-formats] into new tile structure will be created.&lt;br /&gt;
&lt;br /&gt;
Implemetation of the file format driver will allow to export map raster data into Google Earth, Google Maps and other online viewers from any of applications which use GDAL library. &lt;br /&gt;
&lt;br /&gt;
Idea for this project was suggested by FrankW at [[GDAL SoC Ideas]].&lt;br /&gt;
&lt;br /&gt;
== Implementation details ==&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
* GRASS GIS has the i.segment which provides the possibility to segment an image into objects. This is a basic step in object-based image analysis (OBIA). Currently, the module only provides one segmentation algorithm: region-growing. The code of i.segment was structured in a way that allows addition of other algorithms. The core of proposed GSoC project would thus be to add a series of these algorithms. It would be more useful and comprehensive to add at least one or two top-down methods to the i.segment module because the current region growing approach only allows bottom-up hierarchical segmentation. New segment methods, such as mean-shift, split-window and watershed, would allow top-down hierarchical segmentation, which could be used in more types of satellite image processing. Special care should be taken for the whole project to code as efficiently as possible, i.e. to make the code run in reasonable time, even for very large images.&lt;br /&gt;
&lt;br /&gt;
=== Background ===&lt;br /&gt;
&lt;br /&gt;
* Image segmentation or object recognition is the process of grouping similar pixels into unique objects. Segmentation of remote sensing images is a challenging task. A myriad of different methods have been proposed and implemented in recent years. In spite of the huge effort invested in this problem, there is no single approach that can generally solve the problem of segmentation for the large variety of image modalities existing today. The most effective segmentation algorithms are obtained by carefully customizing combinations of components. The parameters of these components are tuned for the characteristics of the image modality used as input and the features of the objects to be segmented&lt;br /&gt;
* In the GRASS i.segment module currently only region growing and merging algorithm is implemented. Each object found during the segmentation process is given a unique ID and is a collection of contiguous pixels meeting some criteria. Note the contrast with image classification where all pixels similar to each other are assigned to the same class and do not need to be contiguous. The image segmentation results can be useful on their own, or used as a preprocessing step for image classification. The segmentation preprocessing step can reduce noise and speed up the classification&lt;br /&gt;
&lt;br /&gt;
=== Segmentation Methods ===&lt;br /&gt;
&lt;br /&gt;
* Command-line utility similar to existing [http://www.gdal.org/gdal_utilities.html GDAL utilities].&lt;br /&gt;
* Should be able to process files without proper georeference (to publish X-Ray images, vedute and other large bitmap files too).&lt;br /&gt;
&lt;br /&gt;
== Possible future extension (not necessarily part of SoC project) ==&lt;br /&gt;
&lt;br /&gt;
* 1.	Region growing and merging (available in i.segment module )&lt;br /&gt;
This segmentation algorithm sequentially examines all current segments in the raster map. The similarity between the current segment and each of its neighbors is calculated according to the given distance formula. The basic approach of a region growing algorithm is to start from a seed region (typically one or more pixels) that are considered to be inside the object to be segmented. The pixels neighboring this region are evaluated to determine if they should also be considered part of the object. If so, they are merge to the region and the process continues as long as new pixels are added to the region [3].&lt;br /&gt;
* 2.	Mean-shift (plan to be implemented during GSoC 2016)&lt;br /&gt;
The mean shift segmentation is a local homogenization technique that is very useful for damping shading or tonality differences in localized objects. For the algorithm implementation of this case, basically the algorithm replaces each pixel with the mean of the pixels in a range-r neighborhood and whose value is within a distance d. The Mean Shift takes usually 3 inputs: 1) A distance function for measuring distances between pixels. Usually the Euclidean distance, but any other well defined distance function could be used. The Manhattan Distance is another useful choice sometimes. 2) A radius. All pixels within this radius (measured according the above distance) will be accounted for the calculation. 3) A value difference. From all pixels inside radius r, we will take only those whose values are within this difference for calculating the mean [4].&lt;br /&gt;
&lt;br /&gt;
* 3.	Watershed (plan to be implemented during GSoC 2016)&lt;br /&gt;
Watershed segmentation classifies pixels into regions using gradient descent on image features and analysis of weak points along region boundaries. Imagine water raining onto a landscape topology and flowing with gravity to collect in low basins. The size of those basins will grow with increasing amounts of precipitation until they spill into one another, causing small basins to merge together into larger basins. Catchment basins are formed by using local geometric structure to associate points in the image domain with local extrema in some feature measurement such as curvature or gradient magnitude. The watersheds technique is also more flexible in that it does not produce a single image segmentation, but rather a hierarchy of segmentations from which a single region or set of regions can be extracted a-priori, using a threshold, or interactively, with the help of a graphical user interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
* Preparation: Discuss with Mentors. Gather ideas from the community. Feature requests, image segmentation literature, and any other ideas and suggestions. &lt;br /&gt;
* 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual, test through existing code.&lt;br /&gt;
* 23 -- 28 May week 1: Start coding, develop pseudo code to outline the work&lt;br /&gt;
* 30 May -- 4 June week 2: implement mean-shift image segmentation algorithm&lt;br /&gt;
* 6 -- 11 June week 3: Validation mean-shift algorithm&lt;br /&gt;
* 13 -- 18 June week 4: Debugging mean-shift algorithm&lt;br /&gt;
* 20 -- 26 June Week 5: Caching week, further refine and validate the code&lt;br /&gt;
* 27 June Mid-term evaluation: Evaluate the existing program, determine the plan for the remaining 3-4 weeks.&lt;br /&gt;
* 28 June -- 2 July Week 6: based on the evaluation of the mid-term, test and ensure a solid existing program.&lt;br /&gt;
* 4 -- 9 July Week 7: Implement watershed image segmentation algorithm&lt;br /&gt;
* 11 -- 16 July Week 8: Validation and debugging watershed algorithm&lt;br /&gt;
* 18 -- 23 July: Further refine tests and documentation for the whole project.&lt;br /&gt;
* 25 July – 13 August Week 9-11: Improving the main algorithm, if time permits, adding shape as an additional merge criteria,&lt;br /&gt;
* 15 August - 23 August Final week: Tidy code, write tests, improve documentation and submit code sample. &lt;br /&gt;
&lt;br /&gt;
== Main Goal ==&lt;br /&gt;
&lt;br /&gt;
Implement more image segmentation methods to extend the available i.segment for image processing in GRASS. As the general logistics of the i.segment module is in place, adding mean-shift and watershed segmentation algorithms should be possible. The core of the GSoC project thus is to add a series of these algorithms. In addition, the current implementation only uses distance within the multidimensional space of all input bands as the criteria whether to merge segments or not. Adding shape as an additional merge criteria will be helpful. If time permits, this feature of additional shape criteria will be implemented. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Possible difficulties and solution ==&lt;br /&gt;
&lt;br /&gt;
As it usually happens with software development, I might come across problems during implementation of the above mentioned ideas which may take longer than I expected, in such a case, I have kept two weeks (week 5 and week 9) as caching weeks which are intended to let me catch up on unimplemented parts of the project.&lt;br /&gt;
I will be working on this project full time as of now. I plan to keep in touch with my mentor as much as I can and will be reporting to him every time I am done with finishing things on my to-do list. My college semester ends on May 5. New semester starts at the middle of August and hence only about one weeks of the GSoC project would overlap with college work, this will not be a problem as there isn’t much work in the first few weeks of college. After that, I have no other obligations whatsoever and am completely free to work on the project.&lt;br /&gt;
If my project need more work or maintenance after the summer ends, I would love to stick around and help. I actually have an own idea and want to implement and add to the GRASS lib after the training through GSoC. Afterwards I will look at other projects and see what I’m interested in.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Who will use results of this project ==&lt;br /&gt;
&lt;br /&gt;
Several organizations and individuals who handle processing of maps.&lt;br /&gt;
&lt;br /&gt;
Institutions which will use the 'gdal2tiles' utility from this project, as I am cooperating with them:&lt;br /&gt;
* Moravian Library in Brno, Czech Republic&lt;br /&gt;
* Historical institute of Czech Academy of Sciences&lt;br /&gt;
* Czech National Library&lt;br /&gt;
* National Library of Scotland&lt;br /&gt;
* University of Connecticut Library (with their grant [http://www.rlg.org/en/page.php?Page_ID=20522#article1 &amp;quot;Building a Globally Distributed Historical Sheet Map Set of Austro-Hungarian Topographic Maps, 1877-1914&amp;quot;], cooperating with New York Public Library, University of Connecticut Library, and Library of the American Geographical Society. It is a grant about building a scalable workflow and toolset for map libraries to add cartographic content to the Web.)&lt;br /&gt;
&lt;br /&gt;
== Student's Biography ==&lt;br /&gt;
&lt;br /&gt;
My name is Bo Yang, I have finished Master degree in Applied Informatics at [http://www.muni.cz/ Masaryk University in Brno], now I am in the first semester of postgraduate study of Cartography at [http://www.cvut.cz/ Czech Technical University in Prague]. My Master thesis subject was [http://is.muni.cz/th/39656/fi_m/annotation_english.txt &amp;quot;Processing and Digital Publishing of Historical Documents&amp;quot;] ([http://www.staremapy.cz/th.pdf PDF of thesis in Czech]).&lt;br /&gt;
&lt;br /&gt;
I am familiar with open-source projects. I have experience with Linux/Solaris system administration. I like Python language, but I have also used other languages (C language, PHP).&lt;br /&gt;
I have supplied some patches into Gnumeric ([http://bugzilla.gnome.org/show_bug.cgi?id=330129 #330129], [http://bugzilla.gnome.org/show_bug.cgi?id=334257 #334257]).&lt;br /&gt;
I founded a http://mplayerosx.sf.net/ project and I also won a competition in programming application for Mac using http://dictosx.sf.net/ (Objective-C).&lt;br /&gt;
My primary desktop is Gnome and Linux, but I also use Mac, Windows and Solaris. I did programming for all of these platforms (mostly smaller projects).&lt;br /&gt;
&lt;br /&gt;
I am interested in historical cartography, I have several presentations about old maps and free software. I made a czech web page about it at http://www.staremapy.cz/ and registered domain http://www.oldmapsonline.org/ (which is not in use yet).&lt;br /&gt;
&lt;br /&gt;
My homepage with contact info: http://www.klokan.cz/.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=GDAL2Tiles_SoC_2007&amp;diff=98462</id>
		<title>GDAL2Tiles SoC 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=GDAL2Tiles_SoC_2007&amp;diff=98462"/>
		<updated>2016-05-01T17:30:23Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Hao2309: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| {{Prettytable}}&lt;br /&gt;
| The Google Summer of Code project is finished. Results and source codes are published on project web page: [http://www.klokan.cz/projects/gdal2tiles/ GDAL2Tiles: Utility for easy tile-based publishing of raster maps and KML generation]. Usage tips and manual page is available on GDAL wiki page [http://trac.osgeo.org/gdal/wiki/UserDocs/Gdal2Tiles Gdal2Tiles Utility]. Project was accepted by GDAL community as [http://trac.osgeo.org/gdal/ticket/1763 #1763]. Utility is going to be distributed with new version of GDAL 1.5.0, but it is usable also now with stable branch of GDAL and FWTools. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For suggestions and new ideas please use [[Talk:GDAL2Tiles_SoC_2007]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Pyramid.jpg|thumb|right|286px|Pyramid Tile Structure]]&lt;br /&gt;
Implementation of [http://www.gdal.org/gdal_drivertut.html Raster Driver for GDAL library], which will allow to write PNG/JPG '''Pyramid Tile Structure''' as a newly supported file-format. Generated tiles will contain also XML metadata, so after putting them on any webserver they could be used as data source for:&lt;br /&gt;
&lt;br /&gt;
*[http://earth.google.com/ Google Earth] (with [http://earth.google.com/kml/kml_21tutorial.html#superoverlays SuperOverlay KML])&lt;br /&gt;
*[http://maps.google.com/ Google Maps]&lt;br /&gt;
*[http://www.openlayers.org/ OpenLayers]&lt;br /&gt;
*[http://www.worldkit.org/ WorldKit]&lt;br /&gt;
&lt;br /&gt;
and probably other viewers.&lt;br /&gt;
&lt;br /&gt;
Tile structure will follow recommendation from [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification OSGEO Tile Map Service Specification]. &lt;br /&gt;
Simple utility 'gdal2tiles' for converting [http://www.gdal.org/formats_list.html supported file-formats] into new tile structure will be created.&lt;br /&gt;
&lt;br /&gt;
Implemetation of the file format driver will allow to export map raster data into Google Earth, Google Maps and other online viewers from any of applications which use GDAL library. &lt;br /&gt;
&lt;br /&gt;
Idea for this project was suggested by FrankW at [[GDAL SoC Ideas]].&lt;br /&gt;
&lt;br /&gt;
== Implementation details ==&lt;br /&gt;
&lt;br /&gt;
=== Pyramid Tile Structure and Metadata ===&lt;br /&gt;
&lt;br /&gt;
* Metadata from [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification TMS Specification] will be created as a main source of georeference (especially [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification#TileMap_Resource TileMap Resource XML]). &lt;br /&gt;
* KML supports only EPSG:4326 (latlong with WGS84 datum) projection, so reprojection is needed if source projection is different. How to turn off unneeded tiles by Regions in KML?&lt;br /&gt;
* It would be nice to support zoom levels of Google Maps tiles (this have to be checked, maybe from [http://mapnik.org/ Mapnik] project, example of [http://mapnik.org/tiling/oxford/ generated tiles]. More info is available here: http://michal.guerquin.com/googlemaps.html and http://docs.codehaus.org/display/GEOSDOC/Google+Maps&lt;br /&gt;
&lt;br /&gt;
=== GDAL Driver ===&lt;br /&gt;
&lt;br /&gt;
* implements Create() function, so random access to format is possible (so for example direct warping of image into tiles will run).&lt;br /&gt;
&lt;br /&gt;
=== GDAL2Tiles utility ===&lt;br /&gt;
&lt;br /&gt;
* Command-line utility similar to existing [http://www.gdal.org/gdal_utilities.html GDAL utilities].&lt;br /&gt;
* Should be able to process files without proper georeference (to publish X-Ray images, vedute and other large bitmap files too).&lt;br /&gt;
&lt;br /&gt;
== Possible future extension (not necessarily part of SoC project) ==&lt;br /&gt;
&lt;br /&gt;
* Support for [http://dev.live.com/virtualearth/sdk/ Microsoft Virtual Earth] - they have generator [http://research.microsoft.com/mapcruncher/ MapCruncher]&lt;br /&gt;
* Support for [http://worldwind.arc.nasa.gov/ NASA World Wind]. Tile generation for [http://www.worldwindcentral.com World Wind] is done via GDAL using the dstile utility available [http://www.worldwindcentral.com/wiki/Dstile_howto here]. Source code is [http://www.worldwindcentral.com/wiki/Making_Layers here]. Does it have only fixed internal structure of tiles or tile structure (names of directories and png files) could be done by TMS recomendation?&lt;br /&gt;
* Maybe support of [http://www.ossim.org/OSSIM/ossimPlanet.html OSSIM Planet].&lt;br /&gt;
* Simple GUI for 'gdal2tiles' under Windows/Linux/Mac done with Python (one of WxWidgets/TKinter/EasyDialogs).&lt;br /&gt;
* Implementation of GDAL Reader for generated tile structure (could be based on [https://svn.osgeo.org/svn/gdal/trunk/gdal/frmts/wcs/ gdal/frmts/wcs], thanks FrankW)&lt;br /&gt;
* [http://www.staremapy.cz/zoomify-analyza/ Zoomify Tile Structure] as alternative or modification of Zoomify with support for generated structure&lt;br /&gt;
* Maybe implementation of georeference for tilestructure by use of GML.&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
* May 28: Designing the file format, XML Metadata formats(KML, TMS XML files, MS Virtual Earth, ...?) which will be supported have to be chosen and tested with their respective viewer applications, sample map is published.&lt;br /&gt;
* July 9: Alfa version of GDAL Driver for Tile Structure Writer is uploaded into official SVN.&lt;br /&gt;
* August 20: Final version of the driver as well as gdal2tiles utility are uploaded and reviewed.&lt;br /&gt;
&lt;br /&gt;
== Competitors ==&lt;br /&gt;
&lt;br /&gt;
Proprietary applications like: [http://www.arc2earth.com/ Arc2Earth] have similar functionality. Several (mostly proprietary) generators for Google Earth tiles were mentioned on http://www.ogleearth.com/.&lt;br /&gt;
&lt;br /&gt;
Microsoft Research project [http://research.microsoft.com/mapcruncher/ MapCruncher] also generates tiles, but with metadata only for their MS Virtual Earth.&lt;br /&gt;
&lt;br /&gt;
[http://www.zoomify.com/ Zoomify] could be now used as tiling program for SuperOverlay in GoogleEarth with free [http://www.zoomify.com/express.htm ZoomifyerEZ] and generator [http://www.staremapy.cz/zoomifykml/ ZoomifyKML] (which I created as a part of my Master Thesis).&lt;br /&gt;
&lt;br /&gt;
== What new functionality this project brings ==&lt;br /&gt;
&lt;br /&gt;
Clean open-source implementation of tile structure export. Any application which uses GDAL library will easily be able to export files into a tile structure. Supplied utility gdal2tiles will convert [http://www.gdal.org/formats_list.html any supported file format] with georeference into tiles, it will also allow batch mode processing of files.&lt;br /&gt;
&lt;br /&gt;
GDAL is strong library for processing maps and large raster files, including reprojection, so any already georeferenced maps could be easily converted for simple on-line publishing on a webserver without special server requirements (like MapServer is). Advantages of this approach are described in [http://wiki.osgeo.org/index.php/Tile_Map_Service_Specification TMS Specification].&lt;br /&gt;
&lt;br /&gt;
Reader could be implemented later, which will (with support on the side of UNM MapServer) allow to access published tile structure using WMS standard, where UNM MapServer will act as a proxy.&lt;br /&gt;
&lt;br /&gt;
== Who will use results of this project ==&lt;br /&gt;
&lt;br /&gt;
Several organizations and individuals who handle processing of maps.&lt;br /&gt;
&lt;br /&gt;
Institutions which will use the 'gdal2tiles' utility from this project, as I am cooperating with them:&lt;br /&gt;
* Moravian Library in Brno, Czech Republic&lt;br /&gt;
* Historical institute of Czech Academy of Sciences&lt;br /&gt;
* Czech National Library&lt;br /&gt;
* National Library of Scotland&lt;br /&gt;
* University of Connecticut Library (with their grant [http://www.rlg.org/en/page.php?Page_ID=20522#article1 &amp;quot;Building a Globally Distributed Historical Sheet Map Set of Austro-Hungarian Topographic Maps, 1877-1914&amp;quot;], cooperating with New York Public Library, University of Connecticut Library, and Library of the American Geographical Society. It is a grant about building a scalable workflow and toolset for map libraries to add cartographic content to the Web.)&lt;br /&gt;
&lt;br /&gt;
== Student's Biography ==&lt;br /&gt;
&lt;br /&gt;
My name is Klokan Petr Přidal, I have finished Master degree in Applied Informatics at [http://www.muni.cz/ Masaryk University in Brno], now I am in the first semester of postgraduate study of Cartography at [http://www.cvut.cz/ Czech Technical University in Prague]. My Master thesis subject was [http://is.muni.cz/th/39656/fi_m/annotation_english.txt &amp;quot;Processing and Digital Publishing of Historical Documents&amp;quot;] ([http://www.staremapy.cz/th.pdf PDF of thesis in Czech]).&lt;br /&gt;
&lt;br /&gt;
I am familiar with open-source projects. I have experience with Linux/Solaris system administration. I like Python language, but I have also used other languages (C language, PHP).&lt;br /&gt;
I have supplied some patches into Gnumeric ([http://bugzilla.gnome.org/show_bug.cgi?id=330129 #330129], [http://bugzilla.gnome.org/show_bug.cgi?id=334257 #334257]).&lt;br /&gt;
I founded a http://mplayerosx.sf.net/ project and I also won a competition in programming application for Mac using http://dictosx.sf.net/ (Objective-C).&lt;br /&gt;
My primary desktop is Gnome and Linux, but I also use Mac, Windows and Solaris. I did programming for all of these platforms (mostly smaller projects).&lt;br /&gt;
&lt;br /&gt;
I am interested in historical cartography, I have several presentations about old maps and free software. I made a czech web page about it at http://www.staremapy.cz/ and registered domain http://www.oldmapsonline.org/ (which is not in use yet).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Google Summer of Code]]&lt;/div&gt;</summary>
		<author><name>Wiki-Hao2309</name></author>
	</entry>
</feed>