<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://grasswiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E2%9A%A0%EF%B8%8FJachym</id>
	<title>GRASS-Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://grasswiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%E2%9A%A0%EF%B8%8FJachym"/>
	<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/wiki/Special:Contributions/%E2%9A%A0%EF%B8%8FJachym"/>
	<updated>2026-05-25T17:46:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Team&amp;diff=20323</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Team&amp;diff=20323"/>
		<updated>2014-03-27T16:10:09Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: Jachym updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The GRASS GIS project is an international team effort with scientists and developers participating from various fields. Below is a list of the current team.&lt;br /&gt;
&lt;br /&gt;
All general queries concerning GRASS should be addressed to the respective [http://grass.osgeo.org/support/mailing-lists/ GRASS mailing lists]. If you miss yourself or somebody else on the lists below, please feel free to edit this Wiki page or send mail to the [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]. &lt;br /&gt;
__TOC__&lt;br /&gt;
== Current contributors to the development of the GRASS code ==&lt;br /&gt;
&lt;br /&gt;
In alphabetical order; see for example [http://www.ohloh.net/p/grass_gis/contributors here] for contribution statistics.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: 1em auto 1em auto; text-align:left&amp;quot;&lt;br /&gt;
| width=200px | [[Image:Grasslogo vector small.png|100px|center]]&lt;br /&gt;
| '''Anna Kratochvílová''': GRASS 7 wxGUI development, Prague, CZ, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:benjamin.png|100px|center|center]] &lt;br /&gt;
| '''Benjamin Ducke''': extension manager, spatial statistics, archaeological applications, predictive modelling Location: Berlin, Germany, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]] &lt;br /&gt;
| '''Glynn Clements''': core development, UK, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:hamish.jpg|100px|center]] &lt;br /&gt;
| '''Hamish Bowman''': Development of display, PostScript, raster, and GPS modules as well as general sanitation of the code, help, and web pages. Location: Department of Marine Science, University of Otago. Dunedin, New Zealand mail: hamish_b AT yahoo com [http://hamish.bowman.googlepages.com/grassfiles http://hamish.bowman.googlepages.com/grassfiles] &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:helena.jpg|100px|center]] &lt;br /&gt;
| '''Helena Mitasova''': surface and volume modeling and analysis (RST modules), topographic analysis, hydrologic and erosion modelling, assistance with visualization, working with students on new module development, testing, and bug fixing Location: Raleigh, North Carolina, USA, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list ][http://www4.ncsu.edu/~hmitaso/ http://www4.ncsu.edu/~hmitaso/]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:hellik.png|100px|center]]&lt;br /&gt;
| '''Helmut Kudrnovsky''': [http://grass.osgeo.org/grass64/binary/mswindows/native/ winGRASS packaging],german translation, Austria, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:lucadelu.png|100px|center]]&lt;br /&gt;
| '''Luca Delucchi''': Python GRASS development (GUI and Modules), Documentation, Italian Translation, Location: Trento (Italy), mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Maris_nartiss.jpg|100px|center]]&lt;br /&gt;
| '''[[user:MarisN|Maris Nartiss]]''': Tcl/TK GUI development, Latvia, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]]&lt;br /&gt;
| '''Markus Metz''': GRASS 7 development, massive data processing, vector library, Italy + Germany, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:markus.jpg|100px|center]] &lt;br /&gt;
| '''Markus Neteler''': various contributions, coordination, main Web site and mailing lists maintenance, Location: Trento, Italy, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list], IRC Nick: markusN [http://www.grassbook.org/neteler/ http://www.grassbook.org/neteler/]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:mlanda.png|100px|center]] &lt;br /&gt;
| '''Martin Landa''': various contributions, vector engine improvements, [[wxGUI]], Location: Prague, Czech Republic Mail: landa.martin AT gmail.com Homepage: [http://geo.fsv.cvut.cz/~landa http://geo.fsv.cvut.cz/~landa]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:michael.jpg|100px|center]] &lt;br /&gt;
| '''Michael Barton ''': GRASS native GUI development Location: Tempe, Arizona, USA mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list ][http://www.public.asu.edu/~cmbarton/ http://www.public.asu.edu/~cmbarton/]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]]&lt;br /&gt;
| '''Moritz Lennert''': display tools, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]] &lt;br /&gt;
| '''Soeren Gebbert''': improvements of [http://www-pool.math.tu-berlin.de/~soeren/grass/ 3D functionality] mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]]&lt;br /&gt;
| '''Stepan Turek''': GRASS 7 wxGUI development, Prague, CZ, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]]&lt;br /&gt;
| '''Vaclav Petras''': GRASS 7 wxGUI development, Prague, CZ, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]]&lt;br /&gt;
| '''William Kyngesburye''': [http://www.kyngchaos.com/software:grass/ Mac OS X packaging], USA, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]]&lt;br /&gt;
| '''Yann Chemin''': image processing, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]] &lt;br /&gt;
| '''''your name''': what-you-do, Location: xyz, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list], link: ''&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Former or currently inactive developers ==&lt;br /&gt;
&lt;br /&gt;
(in alphabetical order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;margin: 1em auto 1em auto; text-align:left&amp;quot;&lt;br /&gt;
| width=200px | [[Image:Grasslogo vector small.png|100px|center]] &lt;br /&gt;
| '''Bob Covill''' Role: visualization, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]] &lt;br /&gt;
| '''Brad Douglas''' Role: bug fixing, code portability, imagery modules Location: Fremont, California, USA, IRC Nick: bdouglas, mail: rez AT touchofmadness com &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:cedric.jpg|100px|center]] &lt;br /&gt;
| '''Cedric Shock''' Role: user interface enhancements, debugging Location: Eugene, Oregon, USA, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list], [http://www.shockfamily.net/cedric/ http://www.shockfamily.net/cedric/] &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:DaveSampson.png|100px|center]]&lt;br /&gt;
| '''Dave Sampson''' Role: tutorials, data sets &amp;amp;amp; public data licensing, GRASS map gallery, Ottawa Chapter of OSGeo, Location: Ottawa, Ontario, Canada, mail: samper.d at gmail dot com [http://davidsampson.ca/ http://davidsampson.ca] &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]] &lt;br /&gt;
| '''Huidae Cho''' Role: bug fixing, hydrologic modeling (TOPMODEL modules), DXF modules, FreeType support. Location: Fairfax, Virginia, USA mail: grass4u AT gmail com, IRC Nick: grass4u [http://geni.ath.cx/ http://geni.ath.cx]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:jachym.png|100px|center]] &lt;br /&gt;
| '''Jachym Cepicky''' Role: bug fixing, support of 3D vectors, tester and translator, UI developer, Czech Republic, mail: jachym.cepicky AT gmail.com [http://les-ejk.cz/ http://les-ejk.cz/] &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]] &lt;br /&gt;
| '''Jaroslav Hofierka''' Role: development of modules for solar irradiation, flow routing, surface and volume modelling and analysis (RST modules), hydrologic and erosion modelling, assistance with visualization Location: Presov, Slovakia, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:maciek.png|100px|center]] &lt;br /&gt;
| '''Maciej Sieczka''' Role: power user, testing Location: Wroclaw, Poland, mail: msieczka AT sieczka.org [http://www.sieczka.org/ http://www.sieczka.org] &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]] &lt;br /&gt;
| '''Marco Pasetti''' Role: Microsoft Windows native binary port of GRASS Location: Brescia, Italy, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list], link: [http://grass.osgeo.org/grass64/binary/mswindows/native/ WinGRASS Project Homepage] &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Grasslogo vector small.png|100px|center]] &lt;br /&gt;
| '''Paul Kelly''' Role: Proj integration, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list ]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:radim.jpg|100px|center]]&lt;br /&gt;
| '''Radim Blazek''' Role: DBMI, vector engine core developer, Location: Trento, Italy till 2006, mail: [http://lists.osgeo.org/mailman/listinfo/grass-dev GRASS developers mailing list]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:scott.jpg|100px|center]] &lt;br /&gt;
| '''Scott Mitchell''' Role: tutorial and documentation development, web site maintenance, Ottawa User's Group, OSGeo Journal News and Events Editor Location: Ottawa, Ontario, Canada, mail: [http://lists.osgeo.org/mailman/listinfo/grass-web GRASS web site maintenance mailing list] [http://www.carleton.ca/~smitch http://www.carleton.ca/~smitch] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The following institutions are currently supporting the GRASS-Project ==&lt;br /&gt;
&lt;br /&gt;
Please see our [http://grass.osgeo.org/donations/ GRASS sponsoring] page. &lt;br /&gt;
&lt;br /&gt;
And a ''thank-you'' to:&lt;br /&gt;
&lt;br /&gt;
* the many people who have contributed in the past&lt;br /&gt;
* the various users who have contributed bug reports and tested unstable GRASS versions; &lt;br /&gt;
* all the sites (and the people behind them) that provide mirrors for the GRASS web pages.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Propaganda&amp;diff=5835</id>
		<title>GRASS Propaganda</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Propaganda&amp;diff=5835"/>
		<updated>2008-02-13T08:33:53Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Debian GRASS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Unofficial GRASS Banners, wallpapers and other art.&lt;br /&gt;
&lt;br /&gt;
See also [[Promotional material]]&lt;br /&gt;
&lt;br /&gt;
= Wallpapers =&lt;br /&gt;
Make your own GIS desktop!&lt;br /&gt;
&lt;br /&gt;
==== Debian GRASS ====&lt;br /&gt;
This wallpaper is based on one old Debian wallpaper.&lt;br /&gt;
[[Image:Debian073-grass.jpg]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=File:Debian073-grass.jpg&amp;diff=5834</id>
		<title>File:Debian073-grass.jpg</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=File:Debian073-grass.jpg&amp;diff=5834"/>
		<updated>2008-02-13T08:33:03Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: GRASS Wallpaper based on old Debian one.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GRASS Wallpaper based on old Debian one.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Screenshot_suggestions&amp;diff=4811</id>
		<title>Screenshot suggestions</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Screenshot_suggestions&amp;diff=4811"/>
		<updated>2007-10-04T12:14:11Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Web Services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please put suggestions for screenshots to go onto the main website on this page. You can post URLs or [[Special:Upload|upload images]] directly to the wiki. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note that all screenshots are to be licensed under the [http://creativecommons.org/ Creative Commons] [http://creativecommons.org/licenses/by-sa/2.5/ Attribution ShareAlike 2.5] License.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the new work-in-progress screenshots page:&lt;br /&gt;
* http://grass.itc.it/screenshots/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Stuff still to merge &amp;amp; places to draw from:&lt;br /&gt;
* Old screenshots from the website [grass6?/screenshots/]&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass60/screenshots/&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass61/screenshots/&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass63/screenshots/&lt;br /&gt;
* stuff in the main website images/ dir (mostly GRASS 5 shots)&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/images/&lt;br /&gt;
* Screenshots from http://www.osgeo.org/grass/&lt;br /&gt;
* The wiki image [[Special:Log/upload|upload log]]&lt;br /&gt;
* Old GRASSNews and OSGeo journal articles&lt;br /&gt;
* Scans of old GRASS-Clippings articles?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Subcategories are:&lt;br /&gt;
== User Interface ==&lt;br /&gt;
&lt;br /&gt;
=== Startup screen ===&lt;br /&gt;
&lt;br /&gt;
* Mapset picker&lt;br /&gt;
* Define new location by EPSG &amp;amp; custom params&lt;br /&gt;
* Markus has some on the [[FOSS4G2007 IntegrationShowcase]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== TclTk GUI ===&lt;br /&gt;
&lt;br /&gt;
* GUI and tools in action&lt;br /&gt;
&lt;br /&gt;
=== wxPython interface ===&lt;br /&gt;
&lt;br /&gt;
* GIS manager&lt;br /&gt;
* module window&lt;br /&gt;
&lt;br /&gt;
== Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
=== Mac ===&lt;br /&gt;
=== Windows ===&lt;br /&gt;
=== Handhelds ===&lt;br /&gt;
&lt;br /&gt;
== Raster map operations ==&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Vector map operations ==&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Image Processing ==&lt;br /&gt;
&lt;br /&gt;
* clustering&lt;br /&gt;
* sat img edge detection  (Markus posted one recently)&lt;br /&gt;
* i.landsat.rgb trials (from Hamish's website)&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
== Remote Sensing and LIDAR ==&lt;br /&gt;
&lt;br /&gt;
=== Satellite Data ===&lt;br /&gt;
MODIS, Quickbird, etc, I thought to put some sites/vector points stuff here too. Maybe split that out into its own category?&lt;br /&gt;
&lt;br /&gt;
=== LIDAR and Sonar Data ===&lt;br /&gt;
* Jockey's Ridge&lt;br /&gt;
* gdalwarping of sidescan sonar track?&lt;br /&gt;
&lt;br /&gt;
=== Sites (point) data ===&lt;br /&gt;
* where to put this?&lt;br /&gt;
&lt;br /&gt;
== 3D Visualization ==&lt;br /&gt;
&lt;br /&gt;
* NVIZ, r3.out.vtk, ...&lt;br /&gt;
* MARS MOLA data (Hamish has one)&lt;br /&gt;
&lt;br /&gt;
== Cartography ==&lt;br /&gt;
(aim for publication quality)&lt;br /&gt;
&lt;br /&gt;
* ps.map, nice PS,PNG driver renders&lt;br /&gt;
** I do not know, if it suits, but this I got some time ago with pure ps.map [[http://wwwold.fle.czu.cz/~jachym/img/grass/krkonose_prehledka.jpg]]&lt;br /&gt;
* (TODO) Post ps.map instructions for the Norway geo map to the ps.map example page on the wiki.&lt;br /&gt;
&lt;br /&gt;
== Web Services ==&lt;br /&gt;
&lt;br /&gt;
* Markus's PHP earthquake map&lt;br /&gt;
* Jachym's contibutions&lt;br /&gt;
** PyWPS&lt;br /&gt;
** The new one&lt;br /&gt;
** There is a lot of the stuff&lt;br /&gt;
*** http://www.bnhelp.cz/mapserv/pokusy/OpenLayers/jachym/openlayers/examples/wps.html&lt;br /&gt;
*** http://pywps.ominiverdi.org - more stuff&lt;br /&gt;
*** http://www.bnhelp.cz/mapserv/pokusy/openlayers/bonifacio&lt;br /&gt;
* r.in.wms&lt;br /&gt;
&lt;br /&gt;
== Modeling and Statistics ==&lt;br /&gt;
''this sections needs a better title''&lt;br /&gt;
&lt;br /&gt;
* Dylan's Speafish bugsites cluster plot&lt;br /&gt;
* Some R variograms etc&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
=== 2D MPEGs ===&lt;br /&gt;
(r.out.mpeg et al)&lt;br /&gt;
&lt;br /&gt;
* old MPEG-1 canyon fly through&lt;br /&gt;
* Bob Covill had some ETOPO5 world bathymetry fly throughs&lt;br /&gt;
&lt;br /&gt;
=== 3.5 and 4D ===&lt;br /&gt;
&lt;br /&gt;
* moving NVIZ cutting planes&lt;br /&gt;
&lt;br /&gt;
== More sections? ==&lt;br /&gt;
&lt;br /&gt;
Feel free to suggest something.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Screenshot_suggestions&amp;diff=4810</id>
		<title>Screenshot suggestions</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Screenshot_suggestions&amp;diff=4810"/>
		<updated>2007-10-04T12:12:05Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: some screenshot added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please put suggestions for screenshots to go onto the main website on this page. You can post URLs or [[Special:Upload|upload images]] directly to the wiki. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note that all screenshots are to be licensed under the [http://creativecommons.org/ Creative Commons] [http://creativecommons.org/licenses/by-sa/2.5/ Attribution ShareAlike 2.5] License.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the new work-in-progress screenshots page:&lt;br /&gt;
* http://grass.itc.it/screenshots/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Stuff still to merge &amp;amp; places to draw from:&lt;br /&gt;
* Old screenshots from the website [grass6?/screenshots/]&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass60/screenshots/&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass61/screenshots/&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass63/screenshots/&lt;br /&gt;
* stuff in the main website images/ dir (mostly GRASS 5 shots)&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/images/&lt;br /&gt;
* Screenshots from http://www.osgeo.org/grass/&lt;br /&gt;
* The wiki image [[Special:Log/upload|upload log]]&lt;br /&gt;
* Old GRASSNews and OSGeo journal articles&lt;br /&gt;
* Scans of old GRASS-Clippings articles?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Subcategories are:&lt;br /&gt;
== User Interface ==&lt;br /&gt;
&lt;br /&gt;
=== Startup screen ===&lt;br /&gt;
&lt;br /&gt;
* Mapset picker&lt;br /&gt;
* Define new location by EPSG &amp;amp; custom params&lt;br /&gt;
* Markus has some on the [[FOSS4G2007 IntegrationShowcase]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== TclTk GUI ===&lt;br /&gt;
&lt;br /&gt;
* GUI and tools in action&lt;br /&gt;
&lt;br /&gt;
=== wxPython interface ===&lt;br /&gt;
&lt;br /&gt;
* GIS manager&lt;br /&gt;
* module window&lt;br /&gt;
&lt;br /&gt;
== Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
=== Mac ===&lt;br /&gt;
=== Windows ===&lt;br /&gt;
=== Handhelds ===&lt;br /&gt;
&lt;br /&gt;
== Raster map operations ==&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Vector map operations ==&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Image Processing ==&lt;br /&gt;
&lt;br /&gt;
* clustering&lt;br /&gt;
* sat img edge detection  (Markus posted one recently)&lt;br /&gt;
* i.landsat.rgb trials (from Hamish's website)&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
== Remote Sensing and LIDAR ==&lt;br /&gt;
&lt;br /&gt;
=== Satellite Data ===&lt;br /&gt;
MODIS, Quickbird, etc, I thought to put some sites/vector points stuff here too. Maybe split that out into its own category?&lt;br /&gt;
&lt;br /&gt;
=== LIDAR and Sonar Data ===&lt;br /&gt;
* Jockey's Ridge&lt;br /&gt;
* gdalwarping of sidescan sonar track?&lt;br /&gt;
&lt;br /&gt;
=== Sites (point) data ===&lt;br /&gt;
* where to put this?&lt;br /&gt;
&lt;br /&gt;
== 3D Visualization ==&lt;br /&gt;
&lt;br /&gt;
* NVIZ, r3.out.vtk, ...&lt;br /&gt;
* MARS MOLA data (Hamish has one)&lt;br /&gt;
&lt;br /&gt;
== Cartography ==&lt;br /&gt;
(aim for publication quality)&lt;br /&gt;
&lt;br /&gt;
* ps.map, nice PS,PNG driver renders&lt;br /&gt;
** I do not know, if it suits, but this I got some time ago with pure ps.map [[http://wwwold.fle.czu.cz/~jachym/img/grass/krkonose_prehledka.jpg]]&lt;br /&gt;
* (TODO) Post ps.map instructions for the Norway geo map to the ps.map example page on the wiki.&lt;br /&gt;
&lt;br /&gt;
== Web Services ==&lt;br /&gt;
&lt;br /&gt;
* Markus's PHP earthquake map&lt;br /&gt;
* Jachym's contibutions&lt;br /&gt;
** PyWPS&lt;br /&gt;
** The new one&lt;br /&gt;
* r.in.wms&lt;br /&gt;
&lt;br /&gt;
== Modeling and Statistics ==&lt;br /&gt;
''this sections needs a better title''&lt;br /&gt;
&lt;br /&gt;
* Dylan's Speafish bugsites cluster plot&lt;br /&gt;
* Some R variograms etc&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
=== 2D MPEGs ===&lt;br /&gt;
(r.out.mpeg et al)&lt;br /&gt;
&lt;br /&gt;
* old MPEG-1 canyon fly through&lt;br /&gt;
* Bob Covill had some ETOPO5 world bathymetry fly throughs&lt;br /&gt;
&lt;br /&gt;
=== 3.5 and 4D ===&lt;br /&gt;
&lt;br /&gt;
* moving NVIZ cutting planes&lt;br /&gt;
&lt;br /&gt;
== More sections? ==&lt;br /&gt;
&lt;br /&gt;
Feel free to suggest something.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Screenshot_suggestions&amp;diff=4809</id>
		<title>Screenshot suggestions</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Screenshot_suggestions&amp;diff=4809"/>
		<updated>2007-10-04T12:10:34Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Cartography */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please put suggestions for screenshots to go onto the main website on this page. You can post URLs or [[Special:Upload|upload images]] directly to the wiki. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note that all screenshots are to be licensed under the [http://creativecommons.org/ Creative Commons] [http://creativecommons.org/licenses/by-sa/2.5/ Attribution ShareAlike 2.5] License.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here is the new work-in-progress screenshots page:&lt;br /&gt;
* http://grass.itc.it/screenshots/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Stuff still to merge &amp;amp; places to draw from:&lt;br /&gt;
* Old screenshots from the website [grass6?/screenshots/]&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass60/screenshots/&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass61/screenshots/&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass63/screenshots/&lt;br /&gt;
* stuff in the main website images/ dir (mostly GRASS 5 shots)&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/images/&lt;br /&gt;
* Screenshots from http://www.osgeo.org/grass/&lt;br /&gt;
* The wiki image [[Special:Log/upload|upload log]]&lt;br /&gt;
* Old GRASSNews and OSGeo journal articles&lt;br /&gt;
* Scans of old GRASS-Clippings articles?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Subcategories are:&lt;br /&gt;
== User Interface ==&lt;br /&gt;
&lt;br /&gt;
=== Startup screen ===&lt;br /&gt;
&lt;br /&gt;
* Mapset picker&lt;br /&gt;
* Define new location by EPSG &amp;amp; custom params&lt;br /&gt;
* Markus has some on the [[FOSS4G2007 IntegrationShowcase]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== TclTk GUI ===&lt;br /&gt;
&lt;br /&gt;
* GUI and tools in action&lt;br /&gt;
&lt;br /&gt;
=== wxPython interface ===&lt;br /&gt;
&lt;br /&gt;
* GIS manager&lt;br /&gt;
* module window&lt;br /&gt;
&lt;br /&gt;
== Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
=== Mac ===&lt;br /&gt;
=== Windows ===&lt;br /&gt;
=== Handhelds ===&lt;br /&gt;
&lt;br /&gt;
== Raster map operations ==&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Vector map operations ==&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
== Image Processing ==&lt;br /&gt;
&lt;br /&gt;
* clustering&lt;br /&gt;
* sat img edge detection  (Markus posted one recently)&lt;br /&gt;
* i.landsat.rgb trials (from Hamish's website)&lt;br /&gt;
?&lt;br /&gt;
&lt;br /&gt;
== Remote Sensing and LIDAR ==&lt;br /&gt;
&lt;br /&gt;
=== Satellite Data ===&lt;br /&gt;
MODIS, Quickbird, etc, I thought to put some sites/vector points stuff here too. Maybe split that out into its own category?&lt;br /&gt;
&lt;br /&gt;
=== LIDAR and Sonar Data ===&lt;br /&gt;
* Jockey's Ridge&lt;br /&gt;
* gdalwarping of sidescan sonar track?&lt;br /&gt;
&lt;br /&gt;
=== Sites (point) data ===&lt;br /&gt;
* where to put this?&lt;br /&gt;
&lt;br /&gt;
== 3D Visualization ==&lt;br /&gt;
&lt;br /&gt;
* NVIZ, r3.out.vtk, ...&lt;br /&gt;
* MARS MOLA data (Hamish has one)&lt;br /&gt;
&lt;br /&gt;
== Cartography ==&lt;br /&gt;
(aim for publication quality)&lt;br /&gt;
&lt;br /&gt;
* ps.map, nice PS,PNG driver renders&lt;br /&gt;
** I do not know, if it suits, but this I got some time ago with pure ps.map http://wwwold.fle.czu.cz/~jachym/img/grass/krkonose_prehledka.jpg&lt;br /&gt;
* (TODO) Post ps.map instructions for the Norway geo map to the ps.map example page on the wiki.&lt;br /&gt;
&lt;br /&gt;
== Web Services ==&lt;br /&gt;
&lt;br /&gt;
* Markus's PHP earthquake map&lt;br /&gt;
* Jachym's contibutions&lt;br /&gt;
** PyWPS&lt;br /&gt;
** The new one&lt;br /&gt;
* r.in.wms&lt;br /&gt;
&lt;br /&gt;
== Modeling and Statistics ==&lt;br /&gt;
''this sections needs a better title''&lt;br /&gt;
&lt;br /&gt;
* Dylan's Speafish bugsites cluster plot&lt;br /&gt;
* Some R variograms etc&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
=== 2D MPEGs ===&lt;br /&gt;
(r.out.mpeg et al)&lt;br /&gt;
&lt;br /&gt;
* old MPEG-1 canyon fly through&lt;br /&gt;
* Bob Covill had some ETOPO5 world bathymetry fly throughs&lt;br /&gt;
&lt;br /&gt;
=== 3.5 and 4D ===&lt;br /&gt;
&lt;br /&gt;
* moving NVIZ cutting planes&lt;br /&gt;
&lt;br /&gt;
== More sections? ==&lt;br /&gt;
&lt;br /&gt;
Feel free to suggest something.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_7_ideas_collection&amp;diff=4209</id>
		<title>GRASS 7 ideas collection</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_7_ideas_collection&amp;diff=4209"/>
		<updated>2007-05-22T05:18:28Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Conceptual changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raster ==&lt;br /&gt;
&lt;br /&gt;
=== Library ===&lt;br /&gt;
&lt;br /&gt;
* Split libgis into G_() part and Rast_() part&lt;br /&gt;
* Rewrite library from scratch. See [http://grass.itc.it/pipermail/grass-dev/2006-August/025025.html suggestions]&lt;br /&gt;
* Insert 'vertical' 2d rasters (e.g. [http://woodshole.er.usgs.gov/project-pages/longislandsound/images/Ghist_square2.jpg geophysical survey data])&lt;br /&gt;
* [http://freegis.org/cgi-bin/viewcvs.cgi/grass/gips/gip-0002.txt?rev=HEAD&amp;amp;content-type=text/vnd.viewcvs-markup GRASS raster &amp;quot;live links&amp;quot; via GDAL]&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
&lt;br /&gt;
* Remove r.in.arc and r.out.arc, '''if''' a [http://intevation.de/rt/webrt?serial_num=4897 related bug in r.in.gdal] is fixed. The [http://bugzilla.remotesensing.org/show_bug.cgi?id=1071 integer/floating point detection for AAIGrid driver in GDAL] was fixed after 1.3.2 release, so r.in.gdal and r.out.gdal should be enough now.&lt;br /&gt;
&lt;br /&gt;
* Remove the code from r.info that makes it print projection information - we have g.region and g.proj for that. Moreover, r.info always prints a bogus '''(zone 0)''' information in non-UTM locations, which is confussing. See [http://intevation.de/rt/webrt?serial_num=3054 a bug report].&lt;br /&gt;
&lt;br /&gt;
* fix the raster map history management (truncating long history, odd storage). It should work like for vector maps in GRASS 6.&lt;br /&gt;
&lt;br /&gt;
* dispose '''r.resample''' and '''r.bilinear''' in favor of '''r.resamp.interp'''&lt;br /&gt;
&lt;br /&gt;
* merge '''r.surf.idw''' and '''r.surf.idw2'''&lt;br /&gt;
&lt;br /&gt;
* drop '''r.univar.sh'''; newly implemented '''r.univar''' features cover it&lt;br /&gt;
&lt;br /&gt;
* r.sum, r.mode, r.median, r.average, r.statistics, r.univar, r.univar2 - maybe they can be reduced to just r.statistics and r.univar? See [http://intevation.de/rt/webrt?serial_num=1848 RT #1848] and a [http://grass.itc.it/pipermail/grass-dev/2006-November/027665.html thread on the GRASS dev list]&lt;br /&gt;
&lt;br /&gt;
* Dispose r.out.tiff. New C r.out.gdal should cover all it's option now (doublecheck!). See [http://intevation.de/rt/webrt?serial_num=3680 RT #3680] (starting with date Sun, Nov 26 2006 14:54:23).&lt;br /&gt;
&lt;br /&gt;
* Remove remaining -v and -q flags for verbosity levels of modules.&lt;br /&gt;
&lt;br /&gt;
* fix lseek() usage for Large File Support: see [http://grass.itc.it/pipermail/grass-dev/2006-December/028231.html list of affected modules]&lt;br /&gt;
&lt;br /&gt;
* r.resamp.rst: make resolution management identical to the other modules&lt;br /&gt;
&lt;br /&gt;
== Vector ==&lt;br /&gt;
=== Library ===&lt;br /&gt;
* 2d 'vertical' vector data (e.g. [http://sofia.usgs.gov/publications/maps/florida_geology/Txsectionbh.jpg Geologic Cross Sections])&lt;br /&gt;
* implement transactions for geometry handling (esp. v.edit, v.digit and to avoid leftover files when a vector command fails)&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
&lt;br /&gt;
* rename v.mkgrid to v.grid&lt;br /&gt;
* merge v.select and v.overlay&lt;br /&gt;
* Remove [http://intevation.de/rt/webrt?serial_num=3600 doubled units in v.to.db GUI]&lt;br /&gt;
&lt;br /&gt;
* Fix the [http://intevation.de/rt/webrt?serial_num=3623 Column 'cat_' already exists (duplicate name)] in v.in.ogr. Maybe by creating columns ''cat_1'', ''cat_2'' etc.  each time a Grass vector is exported to shapefile and imported back to Grass?&lt;br /&gt;
* write Vect_map_exists() and implement in g.remove and v.digit -n (why wait for GRASS 7 ??)&lt;br /&gt;
* add '-d' dissolve to v.reclass&lt;br /&gt;
* add 'where=' to v.to.rast (why wait for GRASS 7 ??)&lt;br /&gt;
* implement Douglas-Peucker generalization ([http://www.ngdc.noaa.gov/mgg/shorelines/data/gshhs/ C code file])to substitute prune tool of v.clean (why wait for GRASS 7 ??)&lt;br /&gt;
* Rewrite vector labeling. Needs more placement control options (may be db field value based), label overlaping prevention would be also good. May be we could borrow some ideas from MapServer?&lt;br /&gt;
* v.what.vect - rename parameters &amp;amp;quot;vector&amp;amp;quot; to &amp;amp;quot;map&amp;amp;quot;, &amp;amp;quot;qvector&amp;amp;quot; to &amp;amp;quot;qmap&amp;amp;quot;&lt;br /&gt;
* drop v.univar.sh; newly implemented v.univar features cover it&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
=== Library ===&lt;br /&gt;
* Add support for planetary bodies reference systems&lt;br /&gt;
* Add new partial differential equation (PDE) library with OpenMP support&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
&lt;br /&gt;
* g.remove, g.mremove, g.rename, g.copy: don't allow for default datatype (which is currently raster) [http://intevation.de/rt/webrt?serial_num=3009].&lt;br /&gt;
* g.region&lt;br /&gt;
** [http://grass.itc.it/pipermail/grassuser/2007-February/038337.html Glynn's notes] - cleaning the print flags and new &amp;lt;tt&amp;gt;print=&amp;lt;/tt&amp;gt; option&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
=== Library ===&lt;br /&gt;
=== Modules ===&lt;br /&gt;
&lt;br /&gt;
== Imagery ==&lt;br /&gt;
=== Library ===&lt;br /&gt;
&lt;br /&gt;
Do merge of image libraries:&lt;br /&gt;
&lt;br /&gt;
* A)&lt;br /&gt;
** lib/imagery/: standard lib, in use (i.* except for i.points3, i.rectify3)&lt;br /&gt;
** imagery/i.ortho.photo/libes/: standard lib, in use (i.ortho.photo, photo.*)&lt;br /&gt;
* B)&lt;br /&gt;
** lib/image3/: never finished improvement which integrated the standard lib and the ortho lib. Seems to provide also ortho rectification for satellite data (i.points3, i.rectify3)&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
&lt;br /&gt;
* merge of i.points, i.vpoints, i.points3&lt;br /&gt;
* merge of i.rectify and i.rectify3&lt;br /&gt;
* addition of new resampling algorithms such as bilinear, cubic convolution (take from r.proj?)&lt;br /&gt;
* add other warping methods (maybe thin splines from GDAL?)&lt;br /&gt;
* implement/finish linewise ortho-rectification of satellite data&lt;br /&gt;
* Depreciate tape functions in next major revision of GRASS and create a tape module that accomplishes tape access.&lt;br /&gt;
&lt;br /&gt;
== Raster3D ==&lt;br /&gt;
=== Library ===&lt;br /&gt;
* renaming of all G3D library functions to fulfil the grass coding standard&lt;br /&gt;
* extent/rewrite documentation &lt;br /&gt;
* localisation support (why wait for GRASS 7 ??)&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* report and support modules like r3.stats, r3.support&lt;br /&gt;
* voxel -&amp;gt; vector (isosurfaces ...) and vector -&amp;gt; voxel (lines, faces, volumes) conversion modules&lt;br /&gt;
* module for 3d Kriging interpolation based on vector points&lt;br /&gt;
* a GRASS-Python/VTK visualisation/manipulation tool&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* d.font etc.&lt;br /&gt;
** Huidae Cho merged d.text.freetype and d.text into d.text.new; drop them and rename d.text.new into d.text&lt;br /&gt;
** merge d.font and d.font.freetype too&lt;br /&gt;
* d.vect&lt;br /&gt;
** consolidate parameter names (attrcol, wcolumn, rgb_column)&lt;br /&gt;
&lt;br /&gt;
== Postscript ==&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* ps.map&lt;br /&gt;
** remove scale parameter&lt;br /&gt;
** rename sizecol to sizecolumn (remove the given warning)&lt;br /&gt;
&lt;br /&gt;
== Parser ==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Add another semantic meaning to the parser system for a type safe enumerated list&amp;quot; (Cedric's words commenting the bug that  [http://intevation.de/rt/webrt?serial_num=2969 '''v.type''' doesn't allow for selecting input and output type in '''GUI''']&lt;br /&gt;
&lt;br /&gt;
* Making GRASS modules be less verbose. Use --verbose flag and GRASS_VERBOSE environment variable. All output (G_message, G_percetn, G_warning) should go to GRASS_LOG file which could be grassdata/location/mapset/.grass.log by default.&lt;br /&gt;
&lt;br /&gt;
== Data management ==&lt;br /&gt;
&lt;br /&gt;
* store vertical units on per-map base, using code from [http://www.gnu.org/software/units/ units] software&lt;br /&gt;
* store vertical map datum on per-location base (GDAL/OGR needs the same [http://lists.maptools.org/pipermail/gdal-dev/2005-October/006857.html enhancement])&lt;br /&gt;
* add versioning for maps (to recover previous map versions)&lt;br /&gt;
&lt;br /&gt;
== Time series ==&lt;br /&gt;
&lt;br /&gt;
* Implement better [[Time series in GRASS]] support (series of satellite data etc)&lt;br /&gt;
&lt;br /&gt;
== Visualization ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== CLI ==&lt;br /&gt;
&lt;br /&gt;
Fix the parameters and flags. Make it a concept. See proposal in GRASS 5 [http://freegis.org/cgi-bin/viewcvs.cgi/grass/documents/parameter_proposal.txt?rev=HEAD&amp;amp;content-type=text/vnd.viewcvs-markup documents/parameter_proposal.txt]&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
* Multiplatform&lt;br /&gt;
* Fast&lt;br /&gt;
* Small on monitor&lt;br /&gt;
* Number of window reduction&lt;br /&gt;
* Managable from command line via d.* modules (which will have to be rewritten too)&lt;br /&gt;
* Facilitating easy development of custom GUI application based on GRASS&lt;br /&gt;
&lt;br /&gt;
* [[GRASS and Python|Python]]?&lt;br /&gt;
* WxWidgets?&lt;br /&gt;
* Qt4&lt;br /&gt;
&lt;br /&gt;
== Conceptual changes ==&lt;br /&gt;
&lt;br /&gt;
* File organization in binaries:&lt;br /&gt;
** the grass etc dir is a mess... module should maintain arch-deps and arch-indep things in different paths -- &amp;lt;cite&amp;gt; frankie at #grass irc&amp;lt;/cite&amp;gt;&lt;br /&gt;
** it's basically a FHS violation, i dunno if it is reported by lintian, anyway /usr/lib/grass should be used for arch-deps data, not for mixed stuff -- &amp;lt;cite&amp;gt; frankie at #grass irc&amp;lt;/cite&amp;gt;&lt;br /&gt;
* Creating $HOME/.grass directory for&lt;br /&gt;
** Custom fonts&lt;br /&gt;
** R.li and other modules temp. files&lt;br /&gt;
** Gem addons installation&lt;br /&gt;
** Default path for custom scripts&lt;br /&gt;
** Add here new item&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Release Roadmap]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=3959</id>
		<title>AddOns</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=3959"/>
		<updated>2007-03-22T16:44:48Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Raster add-ons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded [http://grass.itc.it/download/index.php here]).&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Copyright and licensing information==&lt;br /&gt;
&lt;br /&gt;
''Please be sure to include copyright and licensing information in the header comments of your code so that others may know how they can use, extend, modify, and redistribute your work.''&lt;br /&gt;
&lt;br /&gt;
e.g. at the top of a shell script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
############################################################################&lt;br /&gt;
#&lt;br /&gt;
# MODULE:       v.in.e00&lt;br /&gt;
#&lt;br /&gt;
# AUTHOR(S):    Markus Neteler, Otto Dassau&lt;br /&gt;
#&lt;br /&gt;
# PURPOSE:      Import E00 data into a GRASS vector map&lt;br /&gt;
#               Imports single and split E00 files (.e00, .e01, .e02 ...)&lt;br /&gt;
#&lt;br /&gt;
# COPYRIGHT:    (c) 2004, 2005 GDF Hannover bR, http://www.gdf-hannover.de&lt;br /&gt;
#&lt;br /&gt;
#               This program is free software under the GNU General Public&lt;br /&gt;
#               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
#               for details.&lt;br /&gt;
#&lt;br /&gt;
#############################################################################&lt;br /&gt;
#&lt;br /&gt;
# REQUIREMENTS:&lt;br /&gt;
#      -  avcimport: http://avce00.maptools.org&lt;br /&gt;
&lt;br /&gt;
[script follows]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shell script coding standards==&lt;br /&gt;
&lt;br /&gt;
Please have a look at our [http://grass.itc.it/grass63/source/SUBMITTING_SCRIPTS Shell script coding standards] before submitting here.&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous Add-ons==&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/utm_which_zone.sh utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] to be installed. A shell-only version is [http://dcalvelo.free.fr/grass/utm_which_zone_sh.sh available] which only requires awk.&amp;lt;BR&amp;gt;'''Authors''': Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Perl scripts for converting data forth and back between Excel files and PostgreSQL: [http://dcalvelo.free.fr/grass/pg2xls.pl pg2xls.pl] reads data from PostgreSQL and produces an excel workbook; [http://dcalvelo.free.fr/grass/xls2sql.pl xls2sql.pl] reads excel files and outputs SQL statements to be fed into an RDBMS. Both scripts need modules from [http://www.cpan.org CPAN], especially [http://search.cpan.org/dist/Spreadsheet-ParseExcel/  Spreadsheet::ParseExcel] for xls2sql.pl and [http://search.cpan.org/~tmtm/Spreadsheet-WriteExcel-FromDB Spreadsheet::WriteExcel::FromDB] and its dependencies for pg2sql.pl. Check the source headers for more info.&amp;lt;BR&amp;gt;'''Authors:''' Daniel Calvelo (xls2sql.pl), Markus Neteler (pg2xls.pl)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://dream.lrrl.arch.tu-muenchen.de/~wqual/perl/dbf2sql.tgz dbf2sql] is a Perl script for translating dbf-tables into a sql-command. dbf-tables are read using dbfdump-command from dbd-xbase-perl module ([http://search.cpan.org/~janpaz/DBD-XBase-0.241/ dbd::xbase] and [http://search.cpan.org/~jv/Getopt-Long-2.35/lib/Getopt/Long.pm getopt::long] have to be installed from CPAN first). There are problems, if the last column of the table contains characters. Suggestions for improvements welcome! &amp;lt;BR&amp;gt;'''Author:'''Wolfgang Qual&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.igc.usp.br/pessoais/guano/downloads/azimuth2.c azimuth2.c] is a small C program to calculate the azimuth and length of vector lines exported by GRASS-GIS as ASCII files (like this: v.out.ascii input=vector output=ascii format=standard). It is useful for create rose diagrams of lineament maps. Improvements on the original code after suggestions by Örs Téglásy, Hungary.&amp;lt;BR&amp;gt;'''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
==GRASS 5.x==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons for GRASS 5===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.itc.it/download/addons.php&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons for GRASS 5===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.itc.it/download/addons.php&lt;br /&gt;
&lt;br /&gt;
* [http://www.valledemexico.ambitiouslemon.com/gwmodelling.html r.gmtg] The groundwater modelling tool for grass. A module to use MODFLOW within GRASS. &amp;lt;BR&amp;gt;'''Author''': Jaime Carrera&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GRASS 6.x==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://geni.ath.cx/grass/v.out.gmt v.out.gmt] is a shell script that exports a polygon vector file into GMT xy file. psbasemap code was copied from Hamish's r.out.gmt. &amp;lt;BR&amp;gt;'''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.pois.org/florian/downloads/grass/v.strahler.tgz v.strahler] is a module that calculates the Strahler Order for all lines of a given dendritic network. &amp;lt;BR&amp;gt;'''Author:''' Florian Kindl. Available via SVN: svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons/v.strahler&lt;br /&gt;
&lt;br /&gt;
* [http://svg.cc/grass/index.html v.out.svg] is a module that exports SVG notation along with optional attribute data directly from GRASS 6.x vector layers. Now part of grass63-cvs. &amp;lt;BR&amp;gt;'''Author:''' Klaus Förster&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/ v.trees3d] is a module for making 3D trees from input vector point file. &amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.lda v.lda] is a shell script for calculating Ian Johnson's (U. Sidney) Local Density Analysis values to measure clustering of point data at different neighborhood radii. There is an option to create a simple line graph of the results. There have been reports of problems creating the line graph on Cygwin installations of GRASS.&amp;lt;BR&amp;gt;'''Author:''' Michael Barton &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.append v.append] is a shell script combining two vector files AND their associated attribute tables. The vector files should be of the same type and, for best results, should have identically formatted attribute tables.&amp;lt;BR&amp;gt;'''Author:''' Michael Barton &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.shockfamily.net/cedric/grass/v.group v.group] generates a new vector map with the same geometry as an existing map. The new map has categories and a table based on grouping by the values in certain columns of the existing map's table. The values in these columns are preserved in the table for the new map. It's like a v.reclass that preserves data.&amp;lt;BR&amp;gt;'''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/v.out.ascii.db v.out.ascii.db] is a shell script for exporting vector point data coordinates and selected attribute columns to either a file or to the console.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs v.rasterbounds] is a shell script for creating polygon-vector file of rasterfile boundaries. The best version of GRASS is 6.1+. If you are using GRASS &amp;lt; 6.1, you  have to be in the same mapset as your raster maps are from.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.clubwebcanada.ca/twiens/v.sample.buffer.tgz v.sample.buffer] is a shell script that samples rasters in buffers of a specified size around features in a specified vector file. Sampling results are added as attributes to the vector file. This script was designed for sampling vegetation indices and DEM derived attributes for bird point counts. Sampling results can be one or more basic statistics such as mean, range, max, etc.&amp;lt;BR&amp;gt;'''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.gfosservices.it/materiale_didattico/moduli/grass_kriging.tar.gz v.variogram] is a script that create an omnidirectional experimental semi-variogram. This scripts require R-statistics software installed on your machine. Now the script is updated to run on spgrass6 &amp;gt;= 0.3 and sp &amp;gt;= 0.9 [http://grass.itc.it/pipermail/statsgrass/2006-October/000455.html reply]. &amp;lt;BR&amp;gt;'''Author:''' Ivan Marchesini, Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.gfosservices.it/materiale_didattico/moduli/grass_kriging.tar.gz v.surf.krige] is a script that do a surface interpolation from vector point data by Kriging method. The interpolated value of a cell is determined by using an omnidirectional variogram model fitted starting from model parameter given by user shown from the experimental semi variogram produced by v.variogram. The script can perform also the Leave-One-out cross validation to test the variogram model &amp;quot;fitted by eye&amp;quot; and an automatic fitted variogram model. The cross validation helps the user to choose the best variogram model to interpolate own data. &amp;lt;BR&amp;gt;'''Author:''' Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://ngeo.de/grassstuff/v.lmeasure v.lmeasure] and [http://ngeo.de/grassstuff/v.revlmeasure v.revlmeasure] are two perl scripts that place equidistant vector points along a given arbitrary vector line starting from the beginning or end of the vector line, respectively. Resulting  vector points are labeled with the distance from origin.&amp;lt;BR&amp;gt;'''Author:''' Mats Schuh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/v.swathwidth v.swathwidth] creates a vector map representing the sea bottom coverage of a multibeam (swath) sonar survey.&amp;lt;BR&amp;gt;'''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://kufaya.googlepages.com/v.flip.zip v.flip] flips the direction of selected vector lines.&amp;lt;BR&amp;gt;'''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://phygeo7.geo.uni-augsburg.de/gis2/scripts/v.digatt v.digatt] (shell script) Interactively assign numeric table attributes to series of vector objects. It is meant to be effective by avoiding to type in the attribute value for all single objects again and again. The user is prompted for typing in an attribute value which is assigned to all objects selected by mouseclick afterwards. Next the display is redrawn after updating the table column. Zooming allows to change the region before the old value can be reused or a new one can be typed in (or copied by mouse from another object) in order to assign it to the next series of objects etc. It is tested not very extensively yet. Therefore better work with a copy of your map and consider using v.digit or d.what.vect -e alternatively. [http://phygeo7.geo.uni-augsburg.de/gis2/scripts/v.digatt.png screenshot]. &amp;lt;BR&amp;gt;'''Author:''' Andreas Philipp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://k153-85.fsv.cvut.cz/cgi-bin/viewcvs.cgi/grass6/vector/v.in.gama/ v.in.gama] converts [http://www.gnu.org/software/gama/ GNU GaMa] XML output file to a GRASS vector map layer.&amp;lt;br /&amp;gt;'''Author:''' Martin Landa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://kufaya.googlepages.com/v.breach.zip v.breach] creates vector maps of lines and points of continously lowering elevation down the input watercourses, based on the input raster DEM.&amp;lt;BR&amp;gt;'''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://kufaya.googlepages.com/v.line.center.zip v.line.center] creates a points vector map with each point located in the middle of the length of one input vector line.&amp;lt;BR&amp;gt;'''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://www.igc.usp.br/pessoais/guano/downloads/r.roughness r.roughness] is a shell script to calculate the surface roughness of a DEM, using r.surf.area and v.surf.rst. (for GRASS versions 6.1 and above)&lt;br /&gt;
* [http://www.igc.usp.br/pessoais/guano/downloads/r.roughness60 r.roughness60] - for GRASS versions 6.0.X&amp;lt;BR&amp;gt;'''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/r.gauss.tgz r.gauss] is Gaussian and Laplacian of Gaussian filter for GRASS. It is written in C language.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/r.mlv.tgz r.mlv] is Mean of least variance filter for GRASS. It is an edge-preserving (or even edge-enhacing) filter, which should serve for removing additive noise from images. It is written in C language.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/r.bilateral.tgz r.bilateral] Bilateral filter is an edge-preserving filter, which combines domain and range filtering. It is written in C language.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/zc.pl Zero crossing] is a simple Perl script, finds the ,,zero crossings`` from the Laplacian of Gaussian filter (see above). It is really &amp;lt;em&amp;gt;very&amp;lt;/em&amp;gt; simple, the edges don't need to be really on that pixel, where they are detected, no interpolation is performed.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
     '''Usage:'''&lt;br /&gt;
     zc.pl -i input -o output |r.mapcalc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/local_max.pl Local maxima] is a Perl script for &amp;lt;code&amp;gt;r.mapcalc&amp;lt;/code&amp;gt;. It detects local maxima of the image.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
     '''Usage:'''&lt;br /&gt;
     local_maxima.pl -i input -o output -s matrix_size|r.mapcalc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/r.out.gmt r.out.gmt] is a GRASS script for exporting a GRASS raster map into a [[http://www.soest.hawaii.edu/gmt/ GMT]] grid file. It also creates a GMT color table from the data and can generate some GMT commands for plotting a postscript file. (code is experimental, but functional)&amp;lt;BR&amp;gt;see  also http://169.237.35.250/~dylan/grass_user_group/#GMT_and_GRASS-overview&amp;lt;BR&amp;gt;'''Authors:''' Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://geni.ath.cx/grass/r.out.gmt yet another r.out.gmt] is a modified version of Hamish's r.out.gmt.  Added options for title, xlabel, ylabel, comment, and map width.  Removed any settings that can be changed by gmtset for more flexibility.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman, Huidae Cho, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/r.pack r.pack] and [http://bambi.otago.ac.nz/hamish/grass/r.unpack r.unpack] are two GRASS scripts for transfering raster maps to another computer as a single file.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/dominant_dir.m dominant_dir.m] and [http://bambi.otago.ac.nz/hamish/grass/calc_terraflow_dir.m calc_terraflow_dir.m] are two Matlab scripts for determining the dominant flow direction from a r.terraflow MFD map and converting into a GRASS aspect map for use with d.rast.arrow, etc.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www-pool.math.tu-berlin.de/~soeren/grass/modules/ r.in.onearth] for download and import satellite images direct from the NASA onearth WMS server into GRASS.&amp;lt;BR&amp;gt;'''Author:''' Soeren Gebbert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/files/programs/grass/r.in.wms.tgz r.in.wms] for download and import maps direct from  WMS servers into GRASS. This script is written in Python Programming language. &amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.shockfamily.net/cedric/grass/r.tileset r.tileset] generates a list of tiles and sizes in a source projection that cover the region in the current database with appropriate resolution. The size of individual tiles can be constrained. Only tiles intersecting the current region are returned. These tilings are appropriate for requesting data from another projection to meet the specifications of the current region. For example, it could be used to generate tile requests to a latitude / longitude WMS server like this &amp;lt;code&amp;gt;r.tileset -w sourceproj=&amp;quot;+init=epsg:4326&amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;BR&amp;gt;'''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/r.csr.tar.bz2 r.csr] integrates several Grass programs to produce colored, shaded-relief rasters in one step. Accepts single or multiple elevation/bathymetry maps as input; optionally will fill data holidays with 3x3 median filter, multiple times, if required; can apply color maps from a) input raster, b) another raster in MAPSET, or c) from a rules file; otherwise, rainbow colorbar is applied. Output colored, shaded-relief rasters can optionally be exported to tiff format and archived using tar with gzip/bzip2 compression if appropriate flags are given. Shading parameters can be modified, though useful defaults are given. &amp;lt;BR&amp;gt;'''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/r.fragment.tar.bz2 r.fragment] fragments a raster into a user-defined set of smaller tiles according to an input number of rows and columns. Optionally, a null value threshold can be set to filter out candidate tiles that would have a large percentage of null cells. &amp;lt;BR&amp;gt;'''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/r.eucdist r.eucdist] creates a raster map estimating the euclidean distance from known cells.&amp;lt;BR&amp;gt;'''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/r.smoothpatch r.smoothpatch] creates a composite of two rasters using a distance-weighted average across the transition to smooth the edges.&amp;lt;BR&amp;gt;'''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.faunalia.it/download/r_li/ r.li] is a more flexible and faster replacement of the old r.le. '''''Moved into 6.3-CVS'''''.&amp;lt;BR&amp;gt;'''Authors:''' Claudio Porta, Davide Spano, Serena Pallecchi, [http://www.faunalia.it Faunalia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://kufaya.googlepages.com/r.surf.nnbathy.zip r.surf.nnbathy] interpolates a surface from a raster input using the [http://www.marine.csiro.au/~sakov/ nn] natural neighbor interpolation library. Provides triangulation, Sibson natural neighbor interpolation and non-Sibsonian interpolation. &amp;lt;BR&amp;gt;'''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The GRASS Image Processing Environment (GIPE) has USLE, Energy-balance and radiance-reflectance correction models. &amp;lt;BR&amp;gt;'''Author:''' Yann Chemin (unless specified otherwise).&amp;lt;br&amp;gt; It is available by anonymous reading through this command (thanks Markus!):&amp;lt;br&amp;gt;&lt;br /&gt;
svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons grassaddons/gipe&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 - r.usler creates USLE R factor (Rainfall erosivity) from annual precipitations.&lt;br /&gt;
 It has 4 methods, Morgan, Roose, Foster and El-Swaify to choose from.&lt;br /&gt;
 '''Authors:''' Natalia Medvedeva and Yann Chemin &amp;lt;br&amp;gt;&lt;br /&gt;
 - r.uslek creates USLE K factor (soil erodibility) from sand, clay, silt fractions&lt;br /&gt;
 and organic matter fraction. Based on USDA 1951 (p209) quoted in FAO World Soil CD,&lt;br /&gt;
 and from some generic [soil class+OM] to K conversion table. &amp;lt;br&amp;gt;&lt;br /&gt;
 - r.albedo creates Albedo. Albedo is the shortwave surface reflectance in the range&lt;br /&gt;
 of 0.3-3 micro-meters. This module takes Modis, Aster, Landsat or AVHRR individual&lt;br /&gt;
 surface reflectance bands to calculate Albedo. This module is a precursor to r.sun &lt;br /&gt;
 or any Energy-Balance related processing. &amp;lt;br&amp;gt;&lt;br /&gt;
 - r.eb.* are a set of 10+ GRASS modules that together perform the main functions of &lt;br /&gt;
 the SEBAL model (Bastiaanssen, 1995). Those functions include (but are not limited to)&lt;br /&gt;
 Soil heat flux, sensible heat flux, net radiation, evaporative fraction at satellite&lt;br /&gt;
 overpass, diurnal actual evapotranspiration, momentum roughness length, etc. These &lt;br /&gt;
 modules are also part of any Energy-Balance related processing. &amp;lt;br&amp;gt;&lt;br /&gt;
 - r.evapo.potrad creates diurnal Potential evapotranspiration assuming all net radiation&lt;br /&gt;
 becomes ET, according to SEBAL model (Bastiaanssen, 1995). This module also has a flag for&lt;br /&gt;
 diurnal net radiation as required by SEBAL in r.eb.eta. &amp;lt;br&amp;gt;&lt;br /&gt;
 - r.vi creates a given Vegetation index from a list of 13 of them, most of them only&lt;br /&gt;
 requiring Red and NIR. Updated to accept all types of input data.&lt;br /&gt;
 '''Authors:''' Baburao Kamble and Yann Chemin &amp;lt;br&amp;gt;&lt;br /&gt;
 - r.vi.mpi is the mpi verion for cluster GRASS GIS education (no speed up here!).&lt;br /&gt;
 '''Author:''' Shamim Akhter &amp;lt;br&amp;gt;&lt;br /&gt;
 - r.dn2ref.l7, r.dn2ref.ast create top of atmosphere reflectance for Landsat 7ETM+ and&lt;br /&gt;
 ASTER. These modules also have a flag for radiance output. Updated r.dn2ref.l7 to read .met&lt;br /&gt;
 calibration file.  &amp;lt;br&amp;gt;&lt;br /&gt;
 - r.dn2full.l7 is an attempt to get all bands of Landsat7 calibrated and corrected to &lt;br /&gt;
 either reflectance or temperature, reads only the .met file.  &amp;lt;br&amp;gt;&lt;br /&gt;
 - r.dn2potrad.l7] is an attempt to get ET potential from DN of Landsat 7 (Careful! No&lt;br /&gt;
 Atmospheric correction!).  &amp;lt;br&amp;gt;&lt;br /&gt;
 - r.biomass creates biomass growth map from fPAR, lightuse efficiency, water availability&lt;br /&gt;
 (or evap.fraction), Lat, doy and tsw.&lt;br /&gt;
&lt;br /&gt;
* r.boxcount and r.boxcount.sh calculate the fractal dimension for a given map. These are versions for grass6 of [http://www.ucl.ac.uk/~tcrnmar/ Mark Lake's modules] for grass43.&amp;lt;br&amp;gt; '''Authors:''' Mark Lake, grass6 port: Florian Kindl. Available via SVN: svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons&lt;br /&gt;
&lt;br /&gt;
===General add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://www.nature-consult.de/dassau/g.laptop/g.laptop.sh g.laptop.sh] is an interactive shell script to extract raster and vector data from current Location into a new one. Data can be copied or extracted in current or original resolution and region extend. This script was written to extract smaller parts of a GRASS location to be able to present them on a laptop without the necessity to transfer huge data. Maps do not have to be in the same mapset.&amp;lt;BR&amp;gt;'''Author:''' Otto Dassau &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''''Readline completion''''' for GRASS commands under the bash shell: [http://www.sorokine.info/grass-complete/ grass-complete] won't clutter the environment but needs to be installed; [http://dcalvelo.free.fr/grass/grass_rlcompleter.sh grass_rlcompleter.sh] needs almost no installation but will pollute the environment. Grass-Complete currently requires Bash version 2.05 for proper install.&amp;lt;BR&amp;gt;'''Author:''' Alexandre Sorokine (grass-complete), Daniel Calvelo (grass_rlcompleter.sh)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Imagery add-ons ===&lt;br /&gt;
&lt;br /&gt;
* i.atcorr: Atmospheric Correction using Christo Zietsman's implementation of 6s code in C/C++. Available in SVN:&amp;lt;br&amp;gt;&lt;br /&gt;
svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons grassaddons/gipe &lt;br /&gt;
 &amp;lt;BR&amp;gt;'''Author:''' Christo Zietsman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/gdal/i.warp61 i.warp61] is a shell script that will use gdalwarp to rectify a raw input image using thin plate splines. The map should be imported into GRASS with r.in.gdal and GCPs set with i.points. Input is the raw image (GeoTIFF, JPEG, etc). Output is a GeoTIFF in the imagery group's target location's map projection. Requires a recent (early 2006) version of GRASS 6.1, or newer.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Display add-ons ===&lt;br /&gt;
&lt;br /&gt;
==== [[IconSymbols]] ====&lt;br /&gt;
* [[IconSymbols|Symbols]] which can be used with ''d.vect, d.graph'', and ''ps.map''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modules ====&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.frame.quarter d.frame.quarter] is a shell script that will split the display into four quadrants using ''d.frame''. Individual frames are named ''uno, dos, tres, cuatro'', and ''full_screen''.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/d.hyperlink.tar.bz2 d.hyperlink] is an interactive shell script that allows the viewing of hyperlinked images from a vector's attribute table in an external image viewer. Queries can be made via SQL statements or interactive mouse-clicking. The attribute table must be pre-populated with a column containing the image to link the vector to; the user also specifies the image folder in the current MAPSET where the images are located. The script currently supports gimp, Eye of Gnome, gthumb, gpdf, and Inkscape image viewers. &amp;lt;BR&amp;gt;'''Author: '''Eric Patton&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.ornl.gov/sci/gist/software/grass/ pd-GRASS]: Parallel Display for GRASS GIS&amp;lt;BR&amp;gt;'''Author:''' Alex Sorokine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.region.box d.region.box] is a shell script that quickly displays a box around the current region.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.stations d.stations] is a shell script that quickly displays vector points (or sites for GRASS 5.4 and below).&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.varea d.varea] is a shell script that quickly displays vector areas.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
===Postscript add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/ps.atlas ps.atlas] is a shell script that makes more maps on current region according to input *.psmap file. General map can be stored as vector file. The resulting *.eps maps can be automatically converted to *.pdf files.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ps.map scripts|ps.map samples/templates]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[AreaFillPatterns]] ====&lt;br /&gt;
* Hatches for ps.map's vareas&lt;br /&gt;
&lt;br /&gt;
===GRASS and UMN Mapserver===&lt;br /&gt;
&lt;br /&gt;
* [http://www.mail-archive.com/mapserver-users@lists.umn.edu/msg00086.html See interesting posting]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.2_Feature_Plan&amp;diff=3900</id>
		<title>GRASS 6.2 Feature Plan</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.2_Feature_Plan&amp;diff=3900"/>
		<updated>2007-03-12T09:00:14Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* WONTFIX? Later? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS 6.2.x feature plan ==&lt;br /&gt;
&lt;br /&gt;
There is the release branch for 6.2.x, see details at [http://grass.itc.it/devel/cvstags.php CVS: tags and branches]. A release branch is considered as &amp;quot;frozen&amp;quot;, only bugfixes can be done.&lt;br /&gt;
&lt;br /&gt;
=== GRASS 6.2.0 ===&lt;br /&gt;
&lt;br /&gt;
In general 6.2 does not deviate too much from the 6.1.0 to avoid a major delay. &lt;br /&gt;
&lt;br /&gt;
==== Beta0 ====&lt;br /&gt;
&lt;br /&gt;
(never released)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt; &amp;lt;!-- done --&amp;gt;&lt;br /&gt;
* unlimited number of raster map (r.patch, r.series etc) (Glynn)&lt;br /&gt;
* several MinGW fixes for native MS-Windows support (Glynn)&lt;br /&gt;
* several fixes for MS-Windows/Cygwin support (Huidae)&lt;br /&gt;
* no hardcoded ARCH for Python-SWIG (Markus)&lt;br /&gt;
* vector/lidar: added missing includes (Markus)&lt;br /&gt;
* g.region b&amp;gt;t bug fixed (Martin)&lt;br /&gt;
* GRASS_PAGER (Glynn)&lt;br /&gt;
* r.mapcalc rand() (Glynn)&lt;br /&gt;
* tcl i18n install fix (Markus)&lt;br /&gt;
* LOCALE awk fixes to some scripts (Markus)&lt;br /&gt;
* SUN compilation fixes (Glynn)&lt;br /&gt;
* user docs fixes (Maciek)&lt;br /&gt;
* r.bilinear: Read/write maps as DCELL; Remove +0.5 from result (Glynn)&lt;br /&gt;
* NVIZ height update to avoid scene jump (Bob)&lt;br /&gt;
* Add the new v.lidar.* tools (needed for FOSS4G2006) (Roberto A. + Markus)&lt;br /&gt;
* lidar and simwe compilation issues on MacOSX fixed (William)&lt;br /&gt;
* Makefile cleanup for extra libraries (lidar, simwe, lrs) (Glynn + Markus)&lt;br /&gt;
* keywords backported from 6.3-CVS (Markus)&lt;br /&gt;
* renamed dbmi driver html files to include 'grass-' to avoid package conflicts (Markus)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beta 1 ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* v.digit: split icons into two rows for 800x600 screens (backport) (Michael, Hamish)&lt;br /&gt;
* gis.m fixes (Michael)&lt;br /&gt;
* v.proj: treat z as ellipsoidal height (Paul)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beta 2 ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* g.proj compile fix (Markus)&lt;br /&gt;
* NVIZ: Tk8.5 fix (Markus)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beta 3 ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* docs improvements (Eric, Trevor, Moritz, Michael)&lt;br /&gt;
* v.digit cosmetics (Hamish)&lt;br /&gt;
* v.outlier: parameter fix (markus)&lt;br /&gt;
* NVIZ: off-screen rendering fix for broken openGL drivers&lt;br /&gt;
* grass-xterm-wrapper: simplified for broken gnome-terminal (markus)&lt;br /&gt;
* rename v.bspline to v.surf.bspline for consistency&lt;br /&gt;
* further gis.m fixes (moritz, michael, cho)&lt;br /&gt;
* d.barscale segfault fix (hamish)&lt;br /&gt;
* d.grid segfault fix (hamish)&lt;br /&gt;
* d.graph segfault fix (hamish)&lt;br /&gt;
* r.buffer, r.what: docs fixes (hamish)&lt;br /&gt;
* added v.centroids and v.dissolve scripts (hamish)&lt;br /&gt;
* Czech translation updated (Martin)&lt;br /&gt;
* nviz: off-screen fixes (Glynn)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC1 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* d.vect.thematic -s fixes (michael)&lt;br /&gt;
* Vietnamese translation (Bui Huu Manh)&lt;br /&gt;
* reverted Pbuffer changes in NVIZ (Brad)&lt;br /&gt;
* projection codes updated to EPSG 6.11 (Markus)&lt;br /&gt;
* g.region zoom= off by one error (Glynn)&lt;br /&gt;
* fix hardcoded Helvetica tcl fonts to a single file setting (in $GISBASE/etc/gtcltk/options.tcl) (michael)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC2 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* r.random on MacOSX (Glynn)&lt;br /&gt;
* document improvements (various)&lt;br /&gt;
* v.in.ogr: check valid output filename (Brad)&lt;br /&gt;
* various r.le fixes (Hamish)&lt;br /&gt;
* MinGW fix (Radim)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC3 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* r.le.setup fixes (Glynn, Hamish)&lt;br /&gt;
* default color map range (bug #5212) (Glynn)&lt;br /&gt;
* fix v.digit/toolbox.tcl for tcl8.3 (Hamish)&lt;br /&gt;
* update to EPSG 6.11.1 (Markus)&lt;br /&gt;
* close GRASS after creating new location from file (Markus)&lt;br /&gt;
* Fine tune intro text when launching GRASS in text mode (Paul)&lt;br /&gt;
* gis.m zooming in mapcanvas.tcl (Michael)&lt;br /&gt;
* missing Polish EPSG codes&lt;br /&gt;
* initial Arabic translation (Alaa Masoud)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Final 6.2.0 ====&lt;br /&gt;
(released 31 Oct 2006)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* continued Polish translation (Artur Niescior)&lt;br /&gt;
* r.watershed slowliness due to long color tables (C. Ehlschlaeger)&lt;br /&gt;
* gis.m broken for Tcl/Tk 8.3 (Hamish, Michael)&lt;br /&gt;
* test gis.m&lt;br /&gt;
* write impressive [http://grass.itc.it/announces/announce_grass620.html press release] (best done in [http://grass.itc.it/devel/cvs.php#web CVS Web])&lt;br /&gt;
** also prepare the short [http://grass.itc.it/announces/abstract_grass620.txt abstract] version.&lt;br /&gt;
** HB: I did some work on this the other day, of course it can always be better!&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 6.2.1 ===&lt;br /&gt;
&lt;br /&gt;
==== 6.2.1RC1 ====&lt;br /&gt;
(released 6 Dec. 2006)&lt;br /&gt;
&lt;br /&gt;
''Bugs:''&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* gis.m fixes for geo rectifier (Michael)&lt;br /&gt;
* gis.m zoom fixes (Michael)&lt;br /&gt;
* install of include files problem on Solaris (Glynn)&lt;br /&gt;
* Handle non-standard ETRS_1989 datum name (Paul)&lt;br /&gt;
* d.histogram: clear just the current frame, not the full screen (Hamish)&lt;br /&gt;
* i.group: fix subgroup listing (Hamish)&lt;br /&gt;
* ps.map: broken for named paper sizes (Hamish, Glynn)&lt;br /&gt;
* gis.m: meaningful error messages on startup (Michael)&lt;br /&gt;
* v.db.select: fix SQL where= option error (Hamish)&lt;br /&gt;
* Add module r.to.rast3elev&lt;br /&gt;
* crash v.in.ogr with gcc4.1.x and non-C locale (Andrey Kiselev)&lt;br /&gt;
* v.in.db: with where=&amp;quot;condition&amp;quot; it copies the entire attribute table (Martin)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Final 6.2.1 ====&lt;br /&gt;
(released 12 Dec. 2006)&lt;br /&gt;
&lt;br /&gt;
* [http://grass.itc.it/grass62/source/ Download source code]&lt;br /&gt;
* [http://grass.itc.it/grass62/source/snapshot/ Download source code diff's to 6.2.0]&lt;br /&gt;
: (to be changed to 6.2.1 diffs?   HB: can we have both? include binary file changes? [diff -a?])&lt;br /&gt;
&lt;br /&gt;
Bugs:&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* d.frame: bugfix: make -l list map names flag work (Hamish)&lt;br /&gt;
* Latvian translation update: Maris Nartiss&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://grass.itc.it/announces/announce_grass621.html press release] ([http://grass.itc.it/announces/abstract_grass621.txt abstract])&lt;br /&gt;
&lt;br /&gt;
=== 6.2.2 ===&lt;br /&gt;
''This version has not yet been released''&lt;br /&gt;
&lt;br /&gt;
==== 6.2.2-cvs ====&lt;br /&gt;
&lt;br /&gt;
===== Fixed =====&lt;br /&gt;
* &amp;lt;strike&amp;gt;DB bug&amp;lt;/strike&amp;gt; (Radim)  '''[please expand]'''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;r.proj bilinear: Fix interpolation expression (row/column were swapped)&amp;lt;/strike&amp;gt; (Glynn)&lt;br /&gt;
: [http://www.zen87603.zen.co.uk/proj-old.png old version] vs. [http://www.zen87603.zen.co.uk/proj-new.png new version]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Allow r.profile data from stdin&amp;lt;/strike&amp;gt; (Hamish)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Slovakia Hermannskogel datum (bug #5396)&amp;lt;/strike&amp;gt; (Jaro Hofierka/Dr. Klobusiak/Martin)&lt;br /&gt;
* &amp;lt;strike&amp;gt;ps.map: Fix map scaling when map projection is not measured in meters&amp;lt;/strike&amp;gt; (Hamish)&lt;br /&gt;
* &amp;lt;strike&amp;gt;r.tileset: Fix break due to platform specific units parsing; Requires Bash&amp;lt;/strike&amp;gt; (Hamish)&lt;br /&gt;
* &amp;lt;strike&amp;gt;added missing SQL TIME support for DBF driver &amp;lt;/strike&amp;gt; (Markus)&lt;br /&gt;
* &amp;lt;strike&amp;gt;2 bugs in v.build.polylines [http://intevation.de/rt/webrt?serial_num=4247 #4247] [http://intevation.de/rt/webrt?serial_num=4249 #4249]&amp;lt;/strike&amp;gt; (MartinL)&lt;br /&gt;
&lt;br /&gt;
===== TODO =====&lt;br /&gt;
&lt;br /&gt;
''Bugs:''&lt;br /&gt;
* backport false easting/northing test from lib/gis/&lt;br /&gt;
* backport ogsf fix&lt;br /&gt;
* remove &amp;quot;let&amp;quot; bashisms from d.vect.thematic&lt;br /&gt;
&lt;br /&gt;
''Enhancements:''&lt;br /&gt;
* backport in EPSG code search tool from CVS/HEAD&lt;br /&gt;
: see [http://freegis.org/cgi-bin/viewcvs.cgi/grass6/lib/init/Attic/epsg_option.tcl.in lib/init/epsg_option.tcl.in] versions 1.11 - 1.15&lt;br /&gt;
&lt;br /&gt;
''Final details:''&lt;br /&gt;
&lt;br /&gt;
* Generate inter-release ChangeLog:&lt;br /&gt;
 gzip -d ChangeLog_6.2.1.gz&lt;br /&gt;
 cp ChangeLog_6.2.1 ChangeLog_6.2.0-6.2.1&lt;br /&gt;
 vi ChangeLog_6.2.0-6.2.1&lt;br /&gt;
 # /6.2.0 release&lt;br /&gt;
 # j (down a line)&lt;br /&gt;
 # 50000dd&lt;br /&gt;
 # :wq&lt;br /&gt;
 gzip ChangeLog_6.2.0-6.2.1&lt;br /&gt;
&lt;br /&gt;
* Prepare release announcement and blurb&lt;br /&gt;
&lt;br /&gt;
=== WONTFIX? Later? ===&lt;br /&gt;
&lt;br /&gt;
* r.out.gdal region sensitive (backport new r.out.gdal from CVS HEAD?) -- We can just take enhanced shell version from CVS HEAD (r.out.gdal.sh) --[[User:Jachym|Jachym]] 10:00, 12 March 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
* NVIZ volume problem (test with slovakia3d dataset) - sometimes it works&lt;br /&gt;
** HB: fails from command line; ok if the volume added within NVIZ ([http://intevation.de/rt/webrt?serial_num=4725 bug #4725])&amp;lt;BR&amp;gt;G_warning() message suggesting a work-around added to 6.2 release branch.&lt;br /&gt;
&lt;br /&gt;
* r.distance null distance&lt;br /&gt;
** This is in 6.3 and will be tested&lt;br /&gt;
&lt;br /&gt;
=== Releases ===&lt;br /&gt;
* [http://grass.itc.it/grass62/source/snapshot/ Source code Snapshot]&lt;br /&gt;
* 6.2.0beta1 released 28 August 2006&lt;br /&gt;
* 6.2.0beta2 released 30 August 2006&lt;br /&gt;
* 6.2.0beta3 released 18 September 2006&lt;br /&gt;
* 6.2.0RC1 released 26 September 2006&lt;br /&gt;
* 6.2.0RC2 released 6 October 2006&lt;br /&gt;
* 6.2.0RC3 released 24 October 2006&lt;br /&gt;
* 6.2.0 released 31 October 2006&lt;br /&gt;
* 6.2.1 released 12 December 2006&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Release Roadmap]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3845</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3845"/>
		<updated>2007-03-02T17:25:03Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Graphical toolkit choise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Graphical toolkit choise =&lt;br /&gt;
&lt;br /&gt;
http://www.wxwidgets.org/wiki/index.php/WxWidgets_Compared_To_Other_Toolkits&lt;br /&gt;
&lt;br /&gt;
== Sourceforge.net statistics ==&lt;br /&gt;
http://sourceforge.net/softwaremap/trove_list.php&lt;br /&gt;
&lt;br /&gt;
* Projects using Python as programming language: 6217&lt;br /&gt;
* Projects using '''GTK+''': 1328&lt;br /&gt;
* Projects using '''GTK+''' graphical library and Python programming language: 348&lt;br /&gt;
* Projects using '''GTK+''' graphical library and Python programming language and '''OpenGL''': 7&lt;br /&gt;
* Projects using '''wxWidgets''': 880&lt;br /&gt;
* Projects using '''wxWidgets''' graphical library and Python programming language: 360&lt;br /&gt;
* Projects using '''wxWidgets''' graphical library and Python programming language and '''OpenGL''': 4&lt;br /&gt;
&lt;br /&gt;
= wxPython GUI =&lt;br /&gt;
&lt;br /&gt;
* Generic [[GRASS and Python]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
''''' Move into [[GRASS_GUI#Components|Components]] section below '''''&lt;br /&gt;
&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
''TSW Comment: perhaps it would be simpler to have AddLayer and pass the type as a parameter. Automatic would be nice, but since it is possible for vector and raster files to have the same name, this wouldn't work. Another option to consider would be to use AddLayer as a base class AddLayerRaster, ... as subclasses. This would make things more modular and theoretically at least, easier to maintain and develop.''&lt;br /&gt;
&lt;br /&gt;
''JC Comment: I made separate functions for raster and vector, because of their attributes are completely different. There should be also AddWMSLayer etc. functions. IMHO it does not matter, if we have general AddLayer with parameter layer_type, or separate functions for all layer types.''&lt;br /&gt;
&lt;br /&gt;
* '''DigitToolbar''' -- Pop-up toolbar with digitising functions&lt;br /&gt;
* '''DisplayToolBar''' -- Pop-up toolbar with substitution of other d.* modules&lt;br /&gt;
&lt;br /&gt;
* '''MapDisplay''' -- Frame (in [http://wiki.wxpython.org/index.cgi/Frequently_Asked_Questions#head-829eea79fe17c04c65c00a7dc0bffa69f2473167 wxWidgets terminology]) with embed toolbar for zooming and paning and maybe data quering and pop-up toolbar for substitution of other d.* modules (d.path, d.profile, ...)&lt;br /&gt;
NOTE: This section should be completed&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width&lt;br /&gt;
*** Height&lt;br /&gt;
*** Mouse -- mouse actions, movements, presed buttons etc.&lt;br /&gt;
*** Map -- ''Map'' class&lt;br /&gt;
** ''Methods'' -- just very coarse definition&lt;br /&gt;
*** Zoom -- for zooming and paning&lt;br /&gt;
*** DrawBox -- For box drawing&lt;br /&gt;
*** DrawLine -- For line drawing&lt;br /&gt;
*** DrawPoint -- for points drawing&lt;br /&gt;
&lt;br /&gt;
* '''GisManager''' -- GIS Manager frame&lt;br /&gt;
** '''Attributes''' &lt;br /&gt;
*** Displays -- array with map displayes&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddDisplay -- Creates new map display&lt;br /&gt;
*** AddLayer -- Adds layer of defined type&lt;br /&gt;
*** EditLayer -- Opens pop-up window with layer attributes definition&lt;br /&gt;
*** ExecuteCommand -- Executes module from command line or menu&lt;br /&gt;
&lt;br /&gt;
* '''GCPDisplay''' -- Special type of MapDisplay with tool for setting GCPs&lt;br /&gt;
* '''HCPDisplay''' -- Special type of MapDisplay with tools for creating configuration files for hardcopy maps&lt;br /&gt;
&lt;br /&gt;
=== Used tools ===&lt;br /&gt;
wxPython seems to be the best tool for &amp;quot;new generation gui&amp;quot;, because of it's multiplatformity and native look&amp;amp;feel on various platforms.&lt;br /&gt;
&lt;br /&gt;
* [http://www.poromenos.org/tutorials/python 10 minute Python tutorial] for programmers of other languages&lt;br /&gt;
&lt;br /&gt;
=== Where to get it ===&lt;br /&gt;
Jachym suggests to move the development to GRASS-Addons subversion repository, until it is &amp;quot;mature enough&amp;quot;. Subversion enables for example to rename files, which could be useful. Current version can be found at https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/#_trunk_grassaddons_gui_ and downloaded with command&lt;br /&gt;
&lt;br /&gt;
 svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons/gui&lt;br /&gt;
&lt;br /&gt;
Write access to the GRASS-Addons SVN is managed by Markus Neteler.&lt;br /&gt;
&lt;br /&gt;
=== Layout Concepts ===&lt;br /&gt;
&lt;br /&gt;
==== Screenshots with proposed shapes ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| [[Image:Gism.png]] || [[Image:Gism2.jpeg]]&lt;br /&gt;
|- &lt;br /&gt;
| The wxGlade definition file is avaliable [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/gism.wxg in the subversion repository] || Another proposal by Michael Barton&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Discussion / Comments ====&lt;br /&gt;
&lt;br /&gt;
If the goal is to move toward a single command line interface integrated into the GUI, perhaps we should use the shape of a terminal window as the the shape of the new GIS manager. In this way the layers tree could appear next to the layer attributes in the same way the currently gis.m displays the layer attributes below the tree. The downside to this is having space on the desktop.&lt;br /&gt;
&lt;br /&gt;
Another possibility would be to link the command window to the map display in the shape of an xterm, in this way the gis manager could have a profile shape by default that could easily fit onto a single screen for those without multiple display systems. Another possibility that might be desirable is to be able to 'tear off' the command window separately or link it to either the GIS manager tree or the display window.&lt;br /&gt;
&lt;br /&gt;
It appears in the screen shots that multiple command windows are being considered (1 per map). In some ways this is potentially quite elegant especially if they are set up as separate sessions altogether so we wouldn't need to use win override. What we do encounter is issues related to multiple users which are non-trivial. Still as the layout suggest this it may be worth considering the impact of this, although the current solution in gis.m is probably the best for now.&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== Core GIS manager ===&lt;br /&gt;
* name? (does it even need one?)&lt;br /&gt;
&lt;br /&gt;
=== Module GUIs ===&lt;br /&gt;
* Generate from XML --interface-description or new --wxpython switch?&lt;br /&gt;
&lt;br /&gt;
=== Startup GUI ===&lt;br /&gt;
* for picking mapset etc&lt;br /&gt;
&lt;br /&gt;
=== New location GUI ===&lt;br /&gt;
* Wizard for creating new location &amp;amp; region.&lt;br /&gt;
:see QGIS's one&lt;br /&gt;
&lt;br /&gt;
=== Cartography: GUI front end for ps.map ===&lt;br /&gt;
&lt;br /&gt;
* This is a cartographic composer, intended to be a stand alone hardcopy plot generator. It is not meant to be a '''Print''' button for the maps currently displayed in the GIS manager, that will need it own controls.&lt;br /&gt;
&lt;br /&gt;
* The GUI will prepare a semi-WYSIWYG + tree menu controls which can write a ps.map control file, and then run ps.map to create PostScript and PDF output directly. Loading a ps.map control file is harder and can happen later.&lt;br /&gt;
&lt;br /&gt;
* For a start at a Tcl/Tk composer see gui/tcltk/d.m/print.tcl&lt;br /&gt;
&lt;br /&gt;
* Start with most important mapping instructions&lt;br /&gt;
** paper&lt;br /&gt;
** scale&lt;br /&gt;
** maploc&lt;br /&gt;
** rast&lt;br /&gt;
** vects&lt;br /&gt;
** grids&lt;br /&gt;
** scalebar&lt;br /&gt;
** mapinfo&lt;br /&gt;
** text labels&lt;br /&gt;
&lt;br /&gt;
==== Outputs ====&lt;br /&gt;
&lt;br /&gt;
* ps.map instructions file&lt;br /&gt;
* PostScript file [ps.map instructions tmp file]&lt;br /&gt;
* lpr [PostScript tmp file]&lt;br /&gt;
* PDF File (pstopdf? ps2pdf? GNU Ghostscript?) [PostScript tmp file]&lt;br /&gt;
&lt;br /&gt;
==== Inputs ====&lt;br /&gt;
&lt;br /&gt;
* Ability to load in saved ps.map scripts. I consider this to be a low priority, deal with it after map creation is fully functional. Start with scripts saved using the GUI, after that is working expand to load any ps.map instructions file.&lt;br /&gt;
&lt;br /&gt;
=== Georectifier ===&lt;br /&gt;
* Should be a simple port of Michael's tcltk Georectifier for gis.m&lt;br /&gt;
&lt;br /&gt;
=== Digitizer ===&lt;br /&gt;
&lt;br /&gt;
==== Vector ====&lt;br /&gt;
&lt;br /&gt;
* Rewrite v.digit. Replace r.digit (r.in.poly format isn't far from v.in.ascii standard format)&lt;br /&gt;
* v.edit?&lt;br /&gt;
* Integrate d.rast.edit, d.rast.num functionality in another tool?&lt;br /&gt;
* We can use QGIS's digitizer in the interim.&lt;br /&gt;
* When to drop v.digit?&lt;br /&gt;
&lt;br /&gt;
==== Raster ====&lt;br /&gt;
* r.digit (merge with v.digit?)&lt;br /&gt;
* d.rast.edit&lt;br /&gt;
: Idea: get cell center coords and new values from GUI interaction, then pass those through r.in.xyz, and r.patch the new values over the top of the old map.&lt;br /&gt;
&lt;br /&gt;
* merge with Georectifier? (i.points, i.vpoints)&lt;br /&gt;
&lt;br /&gt;
==== Ortho photos ====&lt;br /&gt;
* To replace i.ortho.photo and friends&lt;br /&gt;
&lt;br /&gt;
= Tcl/Tk GUI =&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3844</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3844"/>
		<updated>2007-03-02T17:24:39Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Sourceforge.net statistics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Graphical toolkit choise =&lt;br /&gt;
== Sourceforge.net statistics ==&lt;br /&gt;
http://sourceforge.net/softwaremap/trove_list.php&lt;br /&gt;
&lt;br /&gt;
* Projects using Python as programming language: 6217&lt;br /&gt;
* Projects using '''GTK+''': 1328&lt;br /&gt;
* Projects using '''GTK+''' graphical library and Python programming language: 348&lt;br /&gt;
* Projects using '''GTK+''' graphical library and Python programming language and '''OpenGL''': 7&lt;br /&gt;
* Projects using '''wxWidgets''': 880&lt;br /&gt;
* Projects using '''wxWidgets''' graphical library and Python programming language: 360&lt;br /&gt;
* Projects using '''wxWidgets''' graphical library and Python programming language and '''OpenGL''': 4&lt;br /&gt;
&lt;br /&gt;
http://www.wxwidgets.org/wiki/index.php/WxWidgets_Compared_To_Other_Toolkits&lt;br /&gt;
&lt;br /&gt;
= wxPython GUI =&lt;br /&gt;
&lt;br /&gt;
* Generic [[GRASS and Python]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
''''' Move into [[GRASS_GUI#Components|Components]] section below '''''&lt;br /&gt;
&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
''TSW Comment: perhaps it would be simpler to have AddLayer and pass the type as a parameter. Automatic would be nice, but since it is possible for vector and raster files to have the same name, this wouldn't work. Another option to consider would be to use AddLayer as a base class AddLayerRaster, ... as subclasses. This would make things more modular and theoretically at least, easier to maintain and develop.''&lt;br /&gt;
&lt;br /&gt;
''JC Comment: I made separate functions for raster and vector, because of their attributes are completely different. There should be also AddWMSLayer etc. functions. IMHO it does not matter, if we have general AddLayer with parameter layer_type, or separate functions for all layer types.''&lt;br /&gt;
&lt;br /&gt;
* '''DigitToolbar''' -- Pop-up toolbar with digitising functions&lt;br /&gt;
* '''DisplayToolBar''' -- Pop-up toolbar with substitution of other d.* modules&lt;br /&gt;
&lt;br /&gt;
* '''MapDisplay''' -- Frame (in [http://wiki.wxpython.org/index.cgi/Frequently_Asked_Questions#head-829eea79fe17c04c65c00a7dc0bffa69f2473167 wxWidgets terminology]) with embed toolbar for zooming and paning and maybe data quering and pop-up toolbar for substitution of other d.* modules (d.path, d.profile, ...)&lt;br /&gt;
NOTE: This section should be completed&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width&lt;br /&gt;
*** Height&lt;br /&gt;
*** Mouse -- mouse actions, movements, presed buttons etc.&lt;br /&gt;
*** Map -- ''Map'' class&lt;br /&gt;
** ''Methods'' -- just very coarse definition&lt;br /&gt;
*** Zoom -- for zooming and paning&lt;br /&gt;
*** DrawBox -- For box drawing&lt;br /&gt;
*** DrawLine -- For line drawing&lt;br /&gt;
*** DrawPoint -- for points drawing&lt;br /&gt;
&lt;br /&gt;
* '''GisManager''' -- GIS Manager frame&lt;br /&gt;
** '''Attributes''' &lt;br /&gt;
*** Displays -- array with map displayes&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddDisplay -- Creates new map display&lt;br /&gt;
*** AddLayer -- Adds layer of defined type&lt;br /&gt;
*** EditLayer -- Opens pop-up window with layer attributes definition&lt;br /&gt;
*** ExecuteCommand -- Executes module from command line or menu&lt;br /&gt;
&lt;br /&gt;
* '''GCPDisplay''' -- Special type of MapDisplay with tool for setting GCPs&lt;br /&gt;
* '''HCPDisplay''' -- Special type of MapDisplay with tools for creating configuration files for hardcopy maps&lt;br /&gt;
&lt;br /&gt;
=== Used tools ===&lt;br /&gt;
wxPython seems to be the best tool for &amp;quot;new generation gui&amp;quot;, because of it's multiplatformity and native look&amp;amp;feel on various platforms.&lt;br /&gt;
&lt;br /&gt;
* [http://www.poromenos.org/tutorials/python 10 minute Python tutorial] for programmers of other languages&lt;br /&gt;
&lt;br /&gt;
=== Where to get it ===&lt;br /&gt;
Jachym suggests to move the development to GRASS-Addons subversion repository, until it is &amp;quot;mature enough&amp;quot;. Subversion enables for example to rename files, which could be useful. Current version can be found at https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/#_trunk_grassaddons_gui_ and downloaded with command&lt;br /&gt;
&lt;br /&gt;
 svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons/gui&lt;br /&gt;
&lt;br /&gt;
Write access to the GRASS-Addons SVN is managed by Markus Neteler.&lt;br /&gt;
&lt;br /&gt;
=== Layout Concepts ===&lt;br /&gt;
&lt;br /&gt;
==== Screenshots with proposed shapes ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| [[Image:Gism.png]] || [[Image:Gism2.jpeg]]&lt;br /&gt;
|- &lt;br /&gt;
| The wxGlade definition file is avaliable [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/gism.wxg in the subversion repository] || Another proposal by Michael Barton&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Discussion / Comments ====&lt;br /&gt;
&lt;br /&gt;
If the goal is to move toward a single command line interface integrated into the GUI, perhaps we should use the shape of a terminal window as the the shape of the new GIS manager. In this way the layers tree could appear next to the layer attributes in the same way the currently gis.m displays the layer attributes below the tree. The downside to this is having space on the desktop.&lt;br /&gt;
&lt;br /&gt;
Another possibility would be to link the command window to the map display in the shape of an xterm, in this way the gis manager could have a profile shape by default that could easily fit onto a single screen for those without multiple display systems. Another possibility that might be desirable is to be able to 'tear off' the command window separately or link it to either the GIS manager tree or the display window.&lt;br /&gt;
&lt;br /&gt;
It appears in the screen shots that multiple command windows are being considered (1 per map). In some ways this is potentially quite elegant especially if they are set up as separate sessions altogether so we wouldn't need to use win override. What we do encounter is issues related to multiple users which are non-trivial. Still as the layout suggest this it may be worth considering the impact of this, although the current solution in gis.m is probably the best for now.&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== Core GIS manager ===&lt;br /&gt;
* name? (does it even need one?)&lt;br /&gt;
&lt;br /&gt;
=== Module GUIs ===&lt;br /&gt;
* Generate from XML --interface-description or new --wxpython switch?&lt;br /&gt;
&lt;br /&gt;
=== Startup GUI ===&lt;br /&gt;
* for picking mapset etc&lt;br /&gt;
&lt;br /&gt;
=== New location GUI ===&lt;br /&gt;
* Wizard for creating new location &amp;amp; region.&lt;br /&gt;
:see QGIS's one&lt;br /&gt;
&lt;br /&gt;
=== Cartography: GUI front end for ps.map ===&lt;br /&gt;
&lt;br /&gt;
* This is a cartographic composer, intended to be a stand alone hardcopy plot generator. It is not meant to be a '''Print''' button for the maps currently displayed in the GIS manager, that will need it own controls.&lt;br /&gt;
&lt;br /&gt;
* The GUI will prepare a semi-WYSIWYG + tree menu controls which can write a ps.map control file, and then run ps.map to create PostScript and PDF output directly. Loading a ps.map control file is harder and can happen later.&lt;br /&gt;
&lt;br /&gt;
* For a start at a Tcl/Tk composer see gui/tcltk/d.m/print.tcl&lt;br /&gt;
&lt;br /&gt;
* Start with most important mapping instructions&lt;br /&gt;
** paper&lt;br /&gt;
** scale&lt;br /&gt;
** maploc&lt;br /&gt;
** rast&lt;br /&gt;
** vects&lt;br /&gt;
** grids&lt;br /&gt;
** scalebar&lt;br /&gt;
** mapinfo&lt;br /&gt;
** text labels&lt;br /&gt;
&lt;br /&gt;
==== Outputs ====&lt;br /&gt;
&lt;br /&gt;
* ps.map instructions file&lt;br /&gt;
* PostScript file [ps.map instructions tmp file]&lt;br /&gt;
* lpr [PostScript tmp file]&lt;br /&gt;
* PDF File (pstopdf? ps2pdf? GNU Ghostscript?) [PostScript tmp file]&lt;br /&gt;
&lt;br /&gt;
==== Inputs ====&lt;br /&gt;
&lt;br /&gt;
* Ability to load in saved ps.map scripts. I consider this to be a low priority, deal with it after map creation is fully functional. Start with scripts saved using the GUI, after that is working expand to load any ps.map instructions file.&lt;br /&gt;
&lt;br /&gt;
=== Georectifier ===&lt;br /&gt;
* Should be a simple port of Michael's tcltk Georectifier for gis.m&lt;br /&gt;
&lt;br /&gt;
=== Digitizer ===&lt;br /&gt;
&lt;br /&gt;
==== Vector ====&lt;br /&gt;
&lt;br /&gt;
* Rewrite v.digit. Replace r.digit (r.in.poly format isn't far from v.in.ascii standard format)&lt;br /&gt;
* v.edit?&lt;br /&gt;
* Integrate d.rast.edit, d.rast.num functionality in another tool?&lt;br /&gt;
* We can use QGIS's digitizer in the interim.&lt;br /&gt;
* When to drop v.digit?&lt;br /&gt;
&lt;br /&gt;
==== Raster ====&lt;br /&gt;
* r.digit (merge with v.digit?)&lt;br /&gt;
* d.rast.edit&lt;br /&gt;
: Idea: get cell center coords and new values from GUI interaction, then pass those through r.in.xyz, and r.patch the new values over the top of the old map.&lt;br /&gt;
&lt;br /&gt;
* merge with Georectifier? (i.points, i.vpoints)&lt;br /&gt;
&lt;br /&gt;
==== Ortho photos ====&lt;br /&gt;
* To replace i.ortho.photo and friends&lt;br /&gt;
&lt;br /&gt;
= Tcl/Tk GUI =&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3842</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3842"/>
		<updated>2007-03-02T16:53:46Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Sourceforge.net statistics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Graphical toolkit choise =&lt;br /&gt;
== Sourceforge.net statistics ==&lt;br /&gt;
http://sourceforge.net/softwaremap/trove_list.php&lt;br /&gt;
&lt;br /&gt;
* Projects using Python as programming language: 6217&lt;br /&gt;
* Projects using '''GTK+''': 1328&lt;br /&gt;
* Projects using '''GTK+''' graphical library and Python programming language: 348&lt;br /&gt;
* Projects using '''GTK+''' graphical library and Python programming language and '''OpenGL''': 7&lt;br /&gt;
* Projects using '''wxWidgets''': 880&lt;br /&gt;
* Projects using '''wxWidgets''' graphical library and Python programming language: 360&lt;br /&gt;
* Projects using '''wxWidgets''' graphical library and Python programming language and '''OpenGL''': 4&lt;br /&gt;
&lt;br /&gt;
= wxPython GUI =&lt;br /&gt;
&lt;br /&gt;
* Generic [[GRASS and Python]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
''''' Move into [[GRASS_GUI#Components|Components]] section below '''''&lt;br /&gt;
&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
''TSW Comment: perhaps it would be simpler to have AddLayer and pass the type as a parameter. Automatic would be nice, but since it is possible for vector and raster files to have the same name, this wouldn't work. Another option to consider would be to use AddLayer as a base class AddLayerRaster, ... as subclasses. This would make things more modular and theoretically at least, easier to maintain and develop.''&lt;br /&gt;
&lt;br /&gt;
''JC Comment: I made separate functions for raster and vector, because of their attributes are completely different. There should be also AddWMSLayer etc. functions. IMHO it does not matter, if we have general AddLayer with parameter layer_type, or separate functions for all layer types.''&lt;br /&gt;
&lt;br /&gt;
* '''DigitToolbar''' -- Pop-up toolbar with digitising functions&lt;br /&gt;
* '''DisplayToolBar''' -- Pop-up toolbar with substitution of other d.* modules&lt;br /&gt;
&lt;br /&gt;
* '''MapDisplay''' -- Frame (in [http://wiki.wxpython.org/index.cgi/Frequently_Asked_Questions#head-829eea79fe17c04c65c00a7dc0bffa69f2473167 wxWidgets terminology]) with embed toolbar for zooming and paning and maybe data quering and pop-up toolbar for substitution of other d.* modules (d.path, d.profile, ...)&lt;br /&gt;
NOTE: This section should be completed&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width&lt;br /&gt;
*** Height&lt;br /&gt;
*** Mouse -- mouse actions, movements, presed buttons etc.&lt;br /&gt;
*** Map -- ''Map'' class&lt;br /&gt;
** ''Methods'' -- just very coarse definition&lt;br /&gt;
*** Zoom -- for zooming and paning&lt;br /&gt;
*** DrawBox -- For box drawing&lt;br /&gt;
*** DrawLine -- For line drawing&lt;br /&gt;
*** DrawPoint -- for points drawing&lt;br /&gt;
&lt;br /&gt;
* '''GisManager''' -- GIS Manager frame&lt;br /&gt;
** '''Attributes''' &lt;br /&gt;
*** Displays -- array with map displayes&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddDisplay -- Creates new map display&lt;br /&gt;
*** AddLayer -- Adds layer of defined type&lt;br /&gt;
*** EditLayer -- Opens pop-up window with layer attributes definition&lt;br /&gt;
*** ExecuteCommand -- Executes module from command line or menu&lt;br /&gt;
&lt;br /&gt;
* '''GCPDisplay''' -- Special type of MapDisplay with tool for setting GCPs&lt;br /&gt;
* '''HCPDisplay''' -- Special type of MapDisplay with tools for creating configuration files for hardcopy maps&lt;br /&gt;
&lt;br /&gt;
=== Used tools ===&lt;br /&gt;
wxPython seems to be the best tool for &amp;quot;new generation gui&amp;quot;, because of it's multiplatformity and native look&amp;amp;feel on various platforms.&lt;br /&gt;
&lt;br /&gt;
* [http://www.poromenos.org/tutorials/python 10 minute Python tutorial] for programmers of other languages&lt;br /&gt;
&lt;br /&gt;
=== Where to get it ===&lt;br /&gt;
Jachym suggests to move the development to GRASS-Addons subversion repository, until it is &amp;quot;mature enough&amp;quot;. Subversion enables for example to rename files, which could be useful. Current version can be found at https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/#_trunk_grassaddons_gui_ and downloaded with command&lt;br /&gt;
&lt;br /&gt;
 svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons/gui&lt;br /&gt;
&lt;br /&gt;
Write access to the GRASS-Addons SVN is managed by Markus Neteler.&lt;br /&gt;
&lt;br /&gt;
=== Layout Concepts ===&lt;br /&gt;
&lt;br /&gt;
==== Screenshots with proposed shapes ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| [[Image:Gism.png]] || [[Image:Gism2.jpeg]]&lt;br /&gt;
|- &lt;br /&gt;
| The wxGlade definition file is avaliable [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/gism.wxg in the subversion repository] || Another proposal by Michael Barton&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Discussion / Comments ====&lt;br /&gt;
&lt;br /&gt;
If the goal is to move toward a single command line interface integrated into the GUI, perhaps we should use the shape of a terminal window as the the shape of the new GIS manager. In this way the layers tree could appear next to the layer attributes in the same way the currently gis.m displays the layer attributes below the tree. The downside to this is having space on the desktop.&lt;br /&gt;
&lt;br /&gt;
Another possibility would be to link the command window to the map display in the shape of an xterm, in this way the gis manager could have a profile shape by default that could easily fit onto a single screen for those without multiple display systems. Another possibility that might be desirable is to be able to 'tear off' the command window separately or link it to either the GIS manager tree or the display window.&lt;br /&gt;
&lt;br /&gt;
It appears in the screen shots that multiple command windows are being considered (1 per map). In some ways this is potentially quite elegant especially if they are set up as separate sessions altogether so we wouldn't need to use win override. What we do encounter is issues related to multiple users which are non-trivial. Still as the layout suggest this it may be worth considering the impact of this, although the current solution in gis.m is probably the best for now.&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== Core GIS manager ===&lt;br /&gt;
* name? (does it even need one?)&lt;br /&gt;
&lt;br /&gt;
=== Module GUIs ===&lt;br /&gt;
* Generate from XML --interface-description or new --wxpython switch?&lt;br /&gt;
&lt;br /&gt;
=== Startup GUI ===&lt;br /&gt;
* for picking mapset etc&lt;br /&gt;
&lt;br /&gt;
=== New location GUI ===&lt;br /&gt;
* Wizard for creating new location &amp;amp; region.&lt;br /&gt;
:see QGIS's one&lt;br /&gt;
&lt;br /&gt;
=== Cartography: GUI front end for ps.map ===&lt;br /&gt;
&lt;br /&gt;
* This is a cartographic composer, intended to be a stand alone hardcopy plot generator. It is not meant to be a '''Print''' button for the maps currently displayed in the GIS manager, that will need it own controls.&lt;br /&gt;
&lt;br /&gt;
* The GUI will prepare a semi-WYSIWYG + tree menu controls which can write a ps.map control file, and then run ps.map to create PostScript and PDF output directly. Loading a ps.map control file is harder and can happen later.&lt;br /&gt;
&lt;br /&gt;
* For a start at a Tcl/Tk composer see gui/tcltk/d.m/print.tcl&lt;br /&gt;
&lt;br /&gt;
* Start with most important mapping instructions&lt;br /&gt;
** paper&lt;br /&gt;
** scale&lt;br /&gt;
** maploc&lt;br /&gt;
** rast&lt;br /&gt;
** vects&lt;br /&gt;
** grids&lt;br /&gt;
** scalebar&lt;br /&gt;
** mapinfo&lt;br /&gt;
** text labels&lt;br /&gt;
&lt;br /&gt;
==== Outputs ====&lt;br /&gt;
&lt;br /&gt;
* ps.map instructions file&lt;br /&gt;
* PostScript file [ps.map instructions tmp file]&lt;br /&gt;
* lpr [PostScript tmp file]&lt;br /&gt;
* PDF File (pstopdf? ps2pdf? GNU Ghostscript?) [PostScript tmp file]&lt;br /&gt;
&lt;br /&gt;
==== Inputs ====&lt;br /&gt;
&lt;br /&gt;
* Ability to load in saved ps.map scripts. I consider this to be a low priority, deal with it after map creation is fully functional. Start with scripts saved using the GUI, after that is working expand to load any ps.map instructions file.&lt;br /&gt;
&lt;br /&gt;
=== Georectifier ===&lt;br /&gt;
* Should be a simple port of Michael's tcltk Georectifier for gis.m&lt;br /&gt;
&lt;br /&gt;
=== Digitizer ===&lt;br /&gt;
&lt;br /&gt;
==== Vector ====&lt;br /&gt;
&lt;br /&gt;
* Rewrite v.digit. Replace r.digit (r.in.poly format isn't far from v.in.ascii standard format)&lt;br /&gt;
* v.edit?&lt;br /&gt;
* Integrate d.rast.edit, d.rast.num functionality in another tool?&lt;br /&gt;
* We can use QGIS's digitizer in the interim.&lt;br /&gt;
* When to drop v.digit?&lt;br /&gt;
&lt;br /&gt;
==== Raster ====&lt;br /&gt;
* r.digit (merge with v.digit?)&lt;br /&gt;
* d.rast.edit&lt;br /&gt;
: Idea: get cell center coords and new values from GUI interaction, then pass those through r.in.xyz, and r.patch the new values over the top of the old map.&lt;br /&gt;
&lt;br /&gt;
* merge with Georectifier? (i.points, i.vpoints)&lt;br /&gt;
&lt;br /&gt;
==== Ortho photos ====&lt;br /&gt;
* To replace i.ortho.photo and friends&lt;br /&gt;
&lt;br /&gt;
= Tcl/Tk GUI =&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3841</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3841"/>
		<updated>2007-03-02T16:53:06Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: Comparing graphical toolkits from, sourceforge.net&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Graphical toolkit choise =&lt;br /&gt;
== Sourceforge.net statistics ==&lt;br /&gt;
http://sourceforge.net/softwaremap/trove_list.php&lt;br /&gt;
&lt;br /&gt;
Projects using Python as programming language: 6217&lt;br /&gt;
Projects using '''GTK+''': 1328&lt;br /&gt;
Projects using '''GTK+''' graphical library and Python programming language: 348&lt;br /&gt;
Projects using '''GTK+''' graphical library and Python programming language and '''OpenGL''': 7&lt;br /&gt;
Projects using '''wxWidgets''': 880&lt;br /&gt;
Projects using '''wxWidgets''' graphical library and Python programming language: 360&lt;br /&gt;
Projects using '''wxWidgets''' graphical library and Python programming language and '''OpenGL''': 4&lt;br /&gt;
&lt;br /&gt;
= wxPython GUI =&lt;br /&gt;
&lt;br /&gt;
* Generic [[GRASS and Python]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
''''' Move into [[GRASS_GUI#Components|Components]] section below '''''&lt;br /&gt;
&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
''TSW Comment: perhaps it would be simpler to have AddLayer and pass the type as a parameter. Automatic would be nice, but since it is possible for vector and raster files to have the same name, this wouldn't work. Another option to consider would be to use AddLayer as a base class AddLayerRaster, ... as subclasses. This would make things more modular and theoretically at least, easier to maintain and develop.''&lt;br /&gt;
&lt;br /&gt;
''JC Comment: I made separate functions for raster and vector, because of their attributes are completely different. There should be also AddWMSLayer etc. functions. IMHO it does not matter, if we have general AddLayer with parameter layer_type, or separate functions for all layer types.''&lt;br /&gt;
&lt;br /&gt;
* '''DigitToolbar''' -- Pop-up toolbar with digitising functions&lt;br /&gt;
* '''DisplayToolBar''' -- Pop-up toolbar with substitution of other d.* modules&lt;br /&gt;
&lt;br /&gt;
* '''MapDisplay''' -- Frame (in [http://wiki.wxpython.org/index.cgi/Frequently_Asked_Questions#head-829eea79fe17c04c65c00a7dc0bffa69f2473167 wxWidgets terminology]) with embed toolbar for zooming and paning and maybe data quering and pop-up toolbar for substitution of other d.* modules (d.path, d.profile, ...)&lt;br /&gt;
NOTE: This section should be completed&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width&lt;br /&gt;
*** Height&lt;br /&gt;
*** Mouse -- mouse actions, movements, presed buttons etc.&lt;br /&gt;
*** Map -- ''Map'' class&lt;br /&gt;
** ''Methods'' -- just very coarse definition&lt;br /&gt;
*** Zoom -- for zooming and paning&lt;br /&gt;
*** DrawBox -- For box drawing&lt;br /&gt;
*** DrawLine -- For line drawing&lt;br /&gt;
*** DrawPoint -- for points drawing&lt;br /&gt;
&lt;br /&gt;
* '''GisManager''' -- GIS Manager frame&lt;br /&gt;
** '''Attributes''' &lt;br /&gt;
*** Displays -- array with map displayes&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddDisplay -- Creates new map display&lt;br /&gt;
*** AddLayer -- Adds layer of defined type&lt;br /&gt;
*** EditLayer -- Opens pop-up window with layer attributes definition&lt;br /&gt;
*** ExecuteCommand -- Executes module from command line or menu&lt;br /&gt;
&lt;br /&gt;
* '''GCPDisplay''' -- Special type of MapDisplay with tool for setting GCPs&lt;br /&gt;
* '''HCPDisplay''' -- Special type of MapDisplay with tools for creating configuration files for hardcopy maps&lt;br /&gt;
&lt;br /&gt;
=== Used tools ===&lt;br /&gt;
wxPython seems to be the best tool for &amp;quot;new generation gui&amp;quot;, because of it's multiplatformity and native look&amp;amp;feel on various platforms.&lt;br /&gt;
&lt;br /&gt;
* [http://www.poromenos.org/tutorials/python 10 minute Python tutorial] for programmers of other languages&lt;br /&gt;
&lt;br /&gt;
=== Where to get it ===&lt;br /&gt;
Jachym suggests to move the development to GRASS-Addons subversion repository, until it is &amp;quot;mature enough&amp;quot;. Subversion enables for example to rename files, which could be useful. Current version can be found at https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/#_trunk_grassaddons_gui_ and downloaded with command&lt;br /&gt;
&lt;br /&gt;
 svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons/gui&lt;br /&gt;
&lt;br /&gt;
Write access to the GRASS-Addons SVN is managed by Markus Neteler.&lt;br /&gt;
&lt;br /&gt;
=== Layout Concepts ===&lt;br /&gt;
&lt;br /&gt;
==== Screenshots with proposed shapes ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| [[Image:Gism.png]] || [[Image:Gism2.jpeg]]&lt;br /&gt;
|- &lt;br /&gt;
| The wxGlade definition file is avaliable [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/gism.wxg in the subversion repository] || Another proposal by Michael Barton&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Discussion / Comments ====&lt;br /&gt;
&lt;br /&gt;
If the goal is to move toward a single command line interface integrated into the GUI, perhaps we should use the shape of a terminal window as the the shape of the new GIS manager. In this way the layers tree could appear next to the layer attributes in the same way the currently gis.m displays the layer attributes below the tree. The downside to this is having space on the desktop.&lt;br /&gt;
&lt;br /&gt;
Another possibility would be to link the command window to the map display in the shape of an xterm, in this way the gis manager could have a profile shape by default that could easily fit onto a single screen for those without multiple display systems. Another possibility that might be desirable is to be able to 'tear off' the command window separately or link it to either the GIS manager tree or the display window.&lt;br /&gt;
&lt;br /&gt;
It appears in the screen shots that multiple command windows are being considered (1 per map). In some ways this is potentially quite elegant especially if they are set up as separate sessions altogether so we wouldn't need to use win override. What we do encounter is issues related to multiple users which are non-trivial. Still as the layout suggest this it may be worth considering the impact of this, although the current solution in gis.m is probably the best for now.&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== Core GIS manager ===&lt;br /&gt;
* name? (does it even need one?)&lt;br /&gt;
&lt;br /&gt;
=== Module GUIs ===&lt;br /&gt;
* Generate from XML --interface-description or new --wxpython switch?&lt;br /&gt;
&lt;br /&gt;
=== Startup GUI ===&lt;br /&gt;
* for picking mapset etc&lt;br /&gt;
&lt;br /&gt;
=== New location GUI ===&lt;br /&gt;
* Wizard for creating new location &amp;amp; region.&lt;br /&gt;
:see QGIS's one&lt;br /&gt;
&lt;br /&gt;
=== Cartography: GUI front end for ps.map ===&lt;br /&gt;
&lt;br /&gt;
* This is a cartographic composer, intended to be a stand alone hardcopy plot generator. It is not meant to be a '''Print''' button for the maps currently displayed in the GIS manager, that will need it own controls.&lt;br /&gt;
&lt;br /&gt;
* The GUI will prepare a semi-WYSIWYG + tree menu controls which can write a ps.map control file, and then run ps.map to create PostScript and PDF output directly. Loading a ps.map control file is harder and can happen later.&lt;br /&gt;
&lt;br /&gt;
* For a start at a Tcl/Tk composer see gui/tcltk/d.m/print.tcl&lt;br /&gt;
&lt;br /&gt;
* Start with most important mapping instructions&lt;br /&gt;
** paper&lt;br /&gt;
** scale&lt;br /&gt;
** maploc&lt;br /&gt;
** rast&lt;br /&gt;
** vects&lt;br /&gt;
** grids&lt;br /&gt;
** scalebar&lt;br /&gt;
** mapinfo&lt;br /&gt;
** text labels&lt;br /&gt;
&lt;br /&gt;
==== Outputs ====&lt;br /&gt;
&lt;br /&gt;
* ps.map instructions file&lt;br /&gt;
* PostScript file [ps.map instructions tmp file]&lt;br /&gt;
* lpr [PostScript tmp file]&lt;br /&gt;
* PDF File (pstopdf? ps2pdf? GNU Ghostscript?) [PostScript tmp file]&lt;br /&gt;
&lt;br /&gt;
==== Inputs ====&lt;br /&gt;
&lt;br /&gt;
* Ability to load in saved ps.map scripts. I consider this to be a low priority, deal with it after map creation is fully functional. Start with scripts saved using the GUI, after that is working expand to load any ps.map instructions file.&lt;br /&gt;
&lt;br /&gt;
=== Georectifier ===&lt;br /&gt;
* Should be a simple port of Michael's tcltk Georectifier for gis.m&lt;br /&gt;
&lt;br /&gt;
=== Digitizer ===&lt;br /&gt;
&lt;br /&gt;
==== Vector ====&lt;br /&gt;
&lt;br /&gt;
* Rewrite v.digit. Replace r.digit (r.in.poly format isn't far from v.in.ascii standard format)&lt;br /&gt;
* v.edit?&lt;br /&gt;
* Integrate d.rast.edit, d.rast.num functionality in another tool?&lt;br /&gt;
* We can use QGIS's digitizer in the interim.&lt;br /&gt;
* When to drop v.digit?&lt;br /&gt;
&lt;br /&gt;
==== Raster ====&lt;br /&gt;
* r.digit (merge with v.digit?)&lt;br /&gt;
* d.rast.edit&lt;br /&gt;
: Idea: get cell center coords and new values from GUI interaction, then pass those through r.in.xyz, and r.patch the new values over the top of the old map.&lt;br /&gt;
&lt;br /&gt;
* merge with Georectifier? (i.points, i.vpoints)&lt;br /&gt;
&lt;br /&gt;
==== Ortho photos ====&lt;br /&gt;
* To replace i.ortho.photo and friends&lt;br /&gt;
&lt;br /&gt;
= Tcl/Tk GUI =&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Development_Specs&amp;diff=3830</id>
		<title>Development Specs</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Development_Specs&amp;diff=3830"/>
		<updated>2007-02-28T09:00:50Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Verbosity levels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Systematic Approach ==&lt;br /&gt;
* Collect all possible error states from functions&lt;br /&gt;
* assign error codes for macros?&lt;br /&gt;
&lt;br /&gt;
* G_option() parameters (like output-&amp;gt;description = (&amp;quot;Path to resulting ASCII file&amp;quot;);)&lt;br /&gt;
&lt;br /&gt;
== How should Errors/Warnings/Messages be formatted ==&lt;br /&gt;
* strings &amp;amp;lt; &amp;amp;gt;&lt;br /&gt;
* numbers [ ]&lt;br /&gt;
&lt;br /&gt;
== Macros to be defined for C library ==&lt;br /&gt;
* MSG_RASTER_NOT_FOUND_IN_MAPSET - &amp;quot;Raster map &amp;lt;%s&amp;gt; not found in &amp;lt;%s&amp;gt;&amp;quot;&lt;br /&gt;
* MSG_CANNOT_OPEN_RASTER - &amp;quot;Failed opening raster map &amp;lt;%s&amp;gt;&amp;quot;&lt;br /&gt;
* MSG_CANNOT_OPEN_FILE - Cannot open file &amp;lt;%s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parameters and flags ==&lt;br /&gt;
&lt;br /&gt;
Fix the parameters and flags. Make it a concept. See proposal in GRASS 5 [http://freegis.org/cgi-bin/viewcvs.cgi/grass/documents/parameter_proposal.txt?rev=HEAD&amp;amp;content-type=text/vnd.viewcvs-markup documents/parameter_proposal.txt]&lt;br /&gt;
&lt;br /&gt;
== Verbosity levels ==&lt;br /&gt;
&lt;br /&gt;
;Abstract concept&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|standard || 3 || PERMSG_MODE || print progress and messages&lt;br /&gt;
|-&lt;br /&gt;
|standard || 2 || MESSAGE_MODE || print only messages&lt;br /&gt;
|-&lt;br /&gt;
|brief || 1 || PERCENT_MODE || print only progress information&lt;br /&gt;
|-&lt;br /&gt;
|silent but not mute || 0 || QUIET_MODE || print nothing (but ERR and WAR)&lt;br /&gt;
|-&lt;br /&gt;
|mute || 2&amp;gt;&amp;amp;1 &amp;gt; /dev/null&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;Proposal&lt;br /&gt;
&lt;br /&gt;
* module output (should be &amp;amp;quot;parsable&amp;amp;quot;) is not controlled by GRASS_VERBOSE [use fprintf (stdout, ...)]&lt;br /&gt;
* silent&lt;br /&gt;
** only warnings and fatal errors are printed&lt;br /&gt;
* brief&lt;br /&gt;
** all G_percent() and selected G_message() (especially connected to progress information, up to the programmer ??)&lt;br /&gt;
* standard&lt;br /&gt;
** all G_percent() and selected G_message()&lt;br /&gt;
* verbose&lt;br /&gt;
** all G_percent() + G_message()&lt;br /&gt;
&lt;br /&gt;
;Modification&lt;br /&gt;
&lt;br /&gt;
* remove verbose level &amp;amp;rarr; standard == all G_percent () + G_messages()&lt;br /&gt;
* move some messages to G_debug()&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_SoC_Ideas_2007&amp;diff=3824</id>
		<title>GRASS SoC Ideas 2007</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_SoC_Ideas_2007&amp;diff=3824"/>
		<updated>2007-02-27T17:33:31Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GRASS related ideas for the [http://wiki.osgeo.org/index.php/Google_Summer_of_Code Google Summer of Code] 2007:&lt;br /&gt;
&lt;br /&gt;
* carry on the work on r.li --[[User:Cavallini|Cavallini]] 14:37, 27 February 2007 (CET)&lt;br /&gt;
* better implement PostGIS support&lt;br /&gt;
* integrate GDAL as part of GRASS raster library&lt;br /&gt;
* integrate OGR as part of GRASS vector library&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.osgeo.org/index.php/Google_Summer_of_Code OSGeo involvement Google Summer of Code]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3698</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3698"/>
		<updated>2007-02-09T10:29:52Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Coder's point of view */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= wxPython GUI =&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
''''' Move into [[GRASS_GUI#Components|Components]] section below '''''&lt;br /&gt;
&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
''TSW Comment: perhaps it would be simpler to have AddLayer and pass the type as a parameter. Automatic would be nice, but since it is possible for vector and raster files to have the same name, this wouldn't work. Another option to consider would be to use AddLayer as a base class AddLayerRaster, ... as subclasses. This would make things more modular and theoretically at least, easier to maintain and develop.''&lt;br /&gt;
&lt;br /&gt;
''JC Comment: I made separate functions for raster and vector, because of their attributes are completely different. There should be also AddWMSLayer etc. functions. IMHO it does not matter, if we have general AddLayer with parameter layer_type, or separate functions for all layer types.''&lt;br /&gt;
&lt;br /&gt;
* '''DigitToolbar''' -- Pop-up toolbar with digitising functions&lt;br /&gt;
* '''DisplayToolBar''' -- Pop-up toolbar with substitution of other d.* modules&lt;br /&gt;
&lt;br /&gt;
* '''MapDisplay''' -- Frame (in [http://wiki.wxpython.org/index.cgi/Frequently_Asked_Questions#head-829eea79fe17c04c65c00a7dc0bffa69f2473167 wxWidgets terminology]) with embed toolbar for zooming and paning and maybe data quering and pop-up toolbar for substitution of other d.* modules (d.path, d.profile, ...)&lt;br /&gt;
NOTE: This section should be completed&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width&lt;br /&gt;
*** Height&lt;br /&gt;
*** Mouse -- mouse actions, movements, presed buttons etc.&lt;br /&gt;
*** Map -- ''Map'' class&lt;br /&gt;
** ''Methods'' -- just very coarse definition&lt;br /&gt;
*** Zoom -- for zooming and paning&lt;br /&gt;
*** DrawBox -- For box drawing&lt;br /&gt;
*** DrawLine -- For line drawing&lt;br /&gt;
*** DrawPoint -- for points drawing&lt;br /&gt;
&lt;br /&gt;
* '''GisManager''' -- GIS Manager frame&lt;br /&gt;
** '''Attributes''' &lt;br /&gt;
*** Displays -- array with map displayes&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddDisplay -- Creates new map display&lt;br /&gt;
*** AddLayer -- Adds layer of defined type&lt;br /&gt;
*** EditLayer -- Opens pop-up window with layer attributes definition&lt;br /&gt;
*** ExecuteCommand -- Executes module from command line or menu&lt;br /&gt;
&lt;br /&gt;
* '''GCPDisplay''' -- Special type of MapDisplay with tool for setting GCPs&lt;br /&gt;
* '''HCPDisplay''' -- Special type of MapDisplay with tools for creating configuration files for hardcopy maps&lt;br /&gt;
&lt;br /&gt;
=== Used tools ===&lt;br /&gt;
wxPython seems to be the best tool for &amp;quot;new generation gui&amp;quot;, because of it's multiplatformity and native look&amp;amp;feel on various platforms.&lt;br /&gt;
&lt;br /&gt;
=== Where to get it ===&lt;br /&gt;
Jachym suggests to move the development to GRASS-Addons subversion repository, until it is &amp;quot;mature enough&amp;quot;. Subversion enables for example to rename files, which could be useful. Current version can be found at https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/#_trunk_grassaddons_gui_ and downloaded with command&lt;br /&gt;
&lt;br /&gt;
 svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons grassaddons/gui&lt;br /&gt;
&lt;br /&gt;
Write access to the GRASS-Addons SVN is managed by Markus Neteler.&lt;br /&gt;
&lt;br /&gt;
=== Layout Concepts ===&lt;br /&gt;
&lt;br /&gt;
==== Screenshots with proposed shapes ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| [[Image:Gism.png]] || [[Image:Gism2.jpeg]]&lt;br /&gt;
|- &lt;br /&gt;
| The wxGlade definition file is avaliable [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/gism.wxg in the subversion repository] || Another proposal by Michael Barton&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Discussion / Comments ====&lt;br /&gt;
&lt;br /&gt;
If the goal is to move toward a single command line interface integrated into the GUI, perhaps we should use the shape of a terminal window as the the shape of the new GIS manager. In this way the layers tree could appear next to the layer attributes in the same way the currently gis.m displays the layer attributes below the tree. The downside to this is having space on the desktop.&lt;br /&gt;
&lt;br /&gt;
Another possibility would be to link the command window to the map display in the shape of an xterm, in this way the gis manager could have a profile shape by default that could easily fit onto a single screen for those without multiple display systems. Another possibility that might be desirable is to be able to 'tear off' the command window separately or link it to either the GIS manager tree or the display window.&lt;br /&gt;
&lt;br /&gt;
It appears in the screen shots that multiple command windows are being considered (1 per map). In some ways this is potentially quite elegant especially if they are set up as separate sessions altogether so we wouldn't need to use win override. What we do encounter is issues related to multiple users which are non-trivial. Still as the layout suggest this it may be worth considering the impact of this, although the current solution in gis.m is probably the best for now.&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== Core GIS manager ===&lt;br /&gt;
* name? (does it even need one?)&lt;br /&gt;
&lt;br /&gt;
=== Module GUIs ===&lt;br /&gt;
* Generate from XML --interface-description or new --wxpython switch?&lt;br /&gt;
&lt;br /&gt;
=== Startup GUI ===&lt;br /&gt;
* for picking mapset etc&lt;br /&gt;
&lt;br /&gt;
=== New location GUI ===&lt;br /&gt;
* Wizard for creating new location &amp;amp; region.&lt;br /&gt;
:see QGIS's one&lt;br /&gt;
&lt;br /&gt;
=== Cartography: GUI front end for ps.map ===&lt;br /&gt;
&lt;br /&gt;
* This is a cartographic composer, intended to be a stand alone hardcopy plot generator. It is not meant to be a '''Print''' button for the maps currently displayed in the GIS manager, that will need it own controls.&lt;br /&gt;
&lt;br /&gt;
* The GUI will prepare a semi-WYSIWYG + tree menu controls which can write a ps.map control file, and then run ps.map to create PostScript and PDF output directly. Loading a ps.map control file is harder and can happen later.&lt;br /&gt;
&lt;br /&gt;
* For a start at a Tcl/Tk composer see gui/tcltk/d.m/print.tcl&lt;br /&gt;
&lt;br /&gt;
* Start with most important mapping instructions&lt;br /&gt;
** paper&lt;br /&gt;
** scale&lt;br /&gt;
** maploc&lt;br /&gt;
** rast&lt;br /&gt;
** vects&lt;br /&gt;
** grids&lt;br /&gt;
** scalebar&lt;br /&gt;
** mapinfo&lt;br /&gt;
** text labels&lt;br /&gt;
&lt;br /&gt;
==== Outputs ====&lt;br /&gt;
&lt;br /&gt;
* ps.map instructions file&lt;br /&gt;
* PostScript file [ps.map instructions tmp file]&lt;br /&gt;
* lpr [PostScript tmp file]&lt;br /&gt;
* PDF File (pstopdf? ps2pdf? GNU Ghostscript?) [PostScript tmp file]&lt;br /&gt;
&lt;br /&gt;
==== Inputs ====&lt;br /&gt;
&lt;br /&gt;
* Ability to load in saved ps.map scripts. I consider this to be a low priority, deal with it after map creation is fully functional. Start with scripts saved using the GUI, after that is working expand to load any ps.map instructions file.&lt;br /&gt;
&lt;br /&gt;
=== Georectifier ===&lt;br /&gt;
* Should be a simple port of Michael's tcltk Georectifier for gis.m&lt;br /&gt;
&lt;br /&gt;
=== Digitizer ===&lt;br /&gt;
* Rewrite v.digit. Replace r.digit (r.in.poly format isn't far from v.in.ascii standard format)&lt;br /&gt;
* v.edit?&lt;br /&gt;
* Integrate d.rast.edit, d.rast.num functionality in another tool?&lt;br /&gt;
&lt;br /&gt;
= Tcl/Tk GUI =&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3616</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3616"/>
		<updated>2007-02-02T16:03:17Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Screenshots with proposed shapes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== wxPython GUI ==&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DigitToolbar''' -- Pop-up toolbar with digitising functions&lt;br /&gt;
* '''DisplayToolBar''' -- Pop-up toolbar with substitution of other d.* modules&lt;br /&gt;
&lt;br /&gt;
* '''MapDisplay''' -- Frame (in [http://wiki.wxpython.org/index.cgi/Frequently_Asked_Questions#head-829eea79fe17c04c65c00a7dc0bffa69f2473167 wxWidgets terminology]) with embed toolbar for zooming and paning and maybe data quering and pop-up toolbar for substitution of other d.* modules (d.path, d.profile, ...)&lt;br /&gt;
NOTE: This section should be completed&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width&lt;br /&gt;
*** Height&lt;br /&gt;
*** Mouse -- mouse actions, movements, presed buttons etc.&lt;br /&gt;
*** Map -- ''Map'' class&lt;br /&gt;
** ''Methods'' -- just very coarse definition&lt;br /&gt;
*** Zoom -- for zooming and paning&lt;br /&gt;
*** DrawBox -- For box drawing&lt;br /&gt;
*** DrawLine -- For line drawing&lt;br /&gt;
*** DrawPoint -- for points drawing&lt;br /&gt;
&lt;br /&gt;
* '''GisManager''' -- GIS Manager frame&lt;br /&gt;
** '''Attributes''' &lt;br /&gt;
*** Displays -- array with map displayes&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddDisplay -- Creates new map display&lt;br /&gt;
*** AddLayer -- Adds layer of defined type&lt;br /&gt;
*** EditLayer -- Opens pop-up window with layer attributes definition&lt;br /&gt;
*** ExecuteCommand -- Executes module from command line or menu&lt;br /&gt;
&lt;br /&gt;
* '''GCPDisplay''' -- Special type of MapDisplay with tool for setting GCPs&lt;br /&gt;
* '''HCPDisplay''' -- Special type of MapDisplay with tools for creating configuration files for hardcopy maps&lt;br /&gt;
&lt;br /&gt;
=== Used tools ===&lt;br /&gt;
wxPython seems to be the best tool for &amp;quot;new generation gui&amp;quot;, because of it's multiplatformity and native look&amp;amp;feel on various platforms.&lt;br /&gt;
&lt;br /&gt;
=== Where to get it ===&lt;br /&gt;
Jachym suggests to move the development to GRASS-Addons subversion repository, until it is &amp;quot;mature enough&amp;quot;. Subversion enables for example to rename files, which could be useful. Current version can be found at https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/#_trunk_grassaddons_gui_ and downloaded with command&lt;br /&gt;
&lt;br /&gt;
 svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons grassaddons/gui&lt;br /&gt;
&lt;br /&gt;
Write access to the GRASS-Addons SVN is managed by Markus Neteler.&lt;br /&gt;
&lt;br /&gt;
=== Screenshots with proposed shapes ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| [[Image:Gism.png]] || [[Image:Gism2.jpeg]]&lt;br /&gt;
|- &lt;br /&gt;
| The wxGlade definition file is avaliable [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/gism.wxg in the subversion repository] || Another proposal by Michael Barton&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk GUI ==&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=File:Gism2.jpeg&amp;diff=3615</id>
		<title>File:Gism2.jpeg</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=File:Gism2.jpeg&amp;diff=3615"/>
		<updated>2007-02-02T15:57:28Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: Proposed screenshot from Michael&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposed screenshot from Michael&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3613</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3613"/>
		<updated>2007-02-02T09:20:34Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Proposed screenshots */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== wxPython GUI ==&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DigitToolbar''' -- Pop-up toolbar with digitising functions&lt;br /&gt;
* '''DisplayToolBar''' -- Pop-up toolbar with substitution of other d.* modules&lt;br /&gt;
&lt;br /&gt;
* '''MapDisplay''' -- Frame (in [http://wiki.wxpython.org/index.cgi/Frequently_Asked_Questions#head-829eea79fe17c04c65c00a7dc0bffa69f2473167 wxWidgets terminology]) with embed toolbar for zooming and paning and maybe data quering and pop-up toolbar for substitution of other d.* modules (d.path, d.profile, ...)&lt;br /&gt;
NOTE: This section should be completed&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width&lt;br /&gt;
*** Height&lt;br /&gt;
*** Mouse -- mouse actions, movements, presed buttons etc.&lt;br /&gt;
*** Map -- ''Map'' class&lt;br /&gt;
** ''Methods'' -- just very coarse definition&lt;br /&gt;
*** Zoom -- for zooming and paning&lt;br /&gt;
*** DrawBox -- For box drawing&lt;br /&gt;
*** DrawLine -- For line drawing&lt;br /&gt;
*** DrawPoint -- for points drawing&lt;br /&gt;
&lt;br /&gt;
* '''GisManager''' -- GIS Manager frame&lt;br /&gt;
** '''Attributes''' &lt;br /&gt;
*** Displays -- array with map displayes&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddDisplay -- Creates new map display&lt;br /&gt;
*** AddLayer -- Adds layer of defined type&lt;br /&gt;
*** EditLayer -- Opens pop-up window with layer attributes definition&lt;br /&gt;
*** ExecuteCommand -- Executes module from command line or menu&lt;br /&gt;
&lt;br /&gt;
* '''GCPDisplay''' -- Special type of MapDisplay with tool for setting GCPs&lt;br /&gt;
* '''HCPDisplay''' -- Special type of MapDisplay with tools for creating configuration files for hardcopy maps&lt;br /&gt;
&lt;br /&gt;
=== Used tools ===&lt;br /&gt;
wxPython seems to be the best tool for &amp;quot;new generation gui&amp;quot;, because of it's multiplatformity and native look&amp;amp;feel on various platforms.&lt;br /&gt;
&lt;br /&gt;
=== Where to get it ===&lt;br /&gt;
Jachym suggests to move the development to GRASS-Addons subversion repository, until it is &amp;quot;mature enough&amp;quot;. Subversion enables for example to rename files, which could be useful. Current version can be found at https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/#_trunk_grassaddons_gui_ and downloaded with command&lt;br /&gt;
&lt;br /&gt;
 svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons grassaddons/gui&lt;br /&gt;
&lt;br /&gt;
=== Screenshots with proposed shapes ===&lt;br /&gt;
[[Image:Gism.png]]&lt;br /&gt;
The wxGlade definition file is avaliable [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/gism.wxg in the subversion repository]&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk GUI ==&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3612</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3612"/>
		<updated>2007-02-02T09:20:07Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Where to get it */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== wxPython GUI ==&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DigitToolbar''' -- Pop-up toolbar with digitising functions&lt;br /&gt;
* '''DisplayToolBar''' -- Pop-up toolbar with substitution of other d.* modules&lt;br /&gt;
&lt;br /&gt;
* '''MapDisplay''' -- Frame (in [http://wiki.wxpython.org/index.cgi/Frequently_Asked_Questions#head-829eea79fe17c04c65c00a7dc0bffa69f2473167 wxWidgets terminology]) with embed toolbar for zooming and paning and maybe data quering and pop-up toolbar for substitution of other d.* modules (d.path, d.profile, ...)&lt;br /&gt;
NOTE: This section should be completed&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width&lt;br /&gt;
*** Height&lt;br /&gt;
*** Mouse -- mouse actions, movements, presed buttons etc.&lt;br /&gt;
*** Map -- ''Map'' class&lt;br /&gt;
** ''Methods'' -- just very coarse definition&lt;br /&gt;
*** Zoom -- for zooming and paning&lt;br /&gt;
*** DrawBox -- For box drawing&lt;br /&gt;
*** DrawLine -- For line drawing&lt;br /&gt;
*** DrawPoint -- for points drawing&lt;br /&gt;
&lt;br /&gt;
* '''GisManager''' -- GIS Manager frame&lt;br /&gt;
** '''Attributes''' &lt;br /&gt;
*** Displays -- array with map displayes&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddDisplay -- Creates new map display&lt;br /&gt;
*** AddLayer -- Adds layer of defined type&lt;br /&gt;
*** EditLayer -- Opens pop-up window with layer attributes definition&lt;br /&gt;
*** ExecuteCommand -- Executes module from command line or menu&lt;br /&gt;
&lt;br /&gt;
* '''GCPDisplay''' -- Special type of MapDisplay with tool for setting GCPs&lt;br /&gt;
* '''HCPDisplay''' -- Special type of MapDisplay with tools for creating configuration files for hardcopy maps&lt;br /&gt;
&lt;br /&gt;
=== Used tools ===&lt;br /&gt;
wxPython seems to be the best tool for &amp;quot;new generation gui&amp;quot;, because of it's multiplatformity and native look&amp;amp;feel on various platforms.&lt;br /&gt;
&lt;br /&gt;
=== Where to get it ===&lt;br /&gt;
Jachym suggests to move the development to GRASS-Addons subversion repository, until it is &amp;quot;mature enough&amp;quot;. Subversion enables for example to rename files, which could be useful. Current version can be found at https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/#_trunk_grassaddons_gui_ and downloaded with command&lt;br /&gt;
&lt;br /&gt;
 svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons grassaddons/gui&lt;br /&gt;
&lt;br /&gt;
=== Proposed screenshots ===&lt;br /&gt;
[[Image:Gism.png]]&lt;br /&gt;
The wxGlade definition file is avaliable [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/gism.wxg in the subversion repository]&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk GUI ==&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=File:Gism.png&amp;diff=3611</id>
		<title>File:Gism.png</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=File:Gism.png&amp;diff=3611"/>
		<updated>2007-02-02T09:15:24Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: GIS Manager prepared using wxGlade.

NOTE: Missing toolbar and menu bar are not intention. I was just not able to embed it in the main window.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GIS Manager prepared using wxGlade.&lt;br /&gt;
&lt;br /&gt;
NOTE: Missing toolbar and menu bar are not intention. I was just not able to embed it in the main window.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3610</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3610"/>
		<updated>2007-02-02T09:07:25Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* wxPython GUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== wxPython GUI ==&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DigitToolbar''' -- Pop-up toolbar with digitising functions&lt;br /&gt;
* '''DisplayToolBar''' -- Pop-up toolbar with substitution of other d.* modules&lt;br /&gt;
&lt;br /&gt;
* '''MapDisplay''' -- Frame (in [http://wiki.wxpython.org/index.cgi/Frequently_Asked_Questions#head-829eea79fe17c04c65c00a7dc0bffa69f2473167 wxWidgets terminology]) with embed toolbar for zooming and paning and maybe data quering and pop-up toolbar for substitution of other d.* modules (d.path, d.profile, ...)&lt;br /&gt;
NOTE: This section should be completed&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width&lt;br /&gt;
*** Height&lt;br /&gt;
*** Mouse -- mouse actions, movements, presed buttons etc.&lt;br /&gt;
*** Map -- ''Map'' class&lt;br /&gt;
** ''Methods'' -- just very coarse definition&lt;br /&gt;
*** Zoom -- for zooming and paning&lt;br /&gt;
*** DrawBox -- For box drawing&lt;br /&gt;
*** DrawLine -- For line drawing&lt;br /&gt;
*** DrawPoint -- for points drawing&lt;br /&gt;
&lt;br /&gt;
* '''GisManager''' -- GIS Manager frame&lt;br /&gt;
** '''Attributes''' &lt;br /&gt;
*** Displays -- array with map displayes&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddDisplay -- Creates new map display&lt;br /&gt;
*** AddLayer -- Adds layer of defined type&lt;br /&gt;
*** EditLayer -- Opens pop-up window with layer attributes definition&lt;br /&gt;
*** ExecuteCommand -- Executes module from command line or menu&lt;br /&gt;
&lt;br /&gt;
* '''GCPDisplay''' -- Special type of MapDisplay with tool for setting GCPs&lt;br /&gt;
* '''HCPDisplay''' -- Special type of MapDisplay with tools for creating configuration files for hardcopy maps&lt;br /&gt;
&lt;br /&gt;
=== Used tools ===&lt;br /&gt;
wxPython seems to be the best tool for &amp;quot;new generation gui&amp;quot;, because of it's multiplatformity and native look&amp;amp;feel on various platforms.&lt;br /&gt;
&lt;br /&gt;
=== Where to get it ===&lt;br /&gt;
Jachym suggests to move the development to GRASS-Addons subversion repository, until it is &amp;quot;mature enough&amp;quot;. Subversion enables for example to rename files, which could be useful. Current version can be found at https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/gui/#_trunk_grassaddons_gui_ and downloaded with command&lt;br /&gt;
&lt;br /&gt;
 svn co https://grasssvn.itc.it/svn/grassaddons/trunk/grassaddons grassaddons/gui&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk GUI ==&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3609</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3609"/>
		<updated>2007-02-02T08:58:40Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Coder's point of view */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== wxPython GUI ==&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DigitToolbar''' -- Pop-up toolbar with digitising functions&lt;br /&gt;
* '''DisplayToolBar''' -- Pop-up toolbar with substitution of other d.* modules&lt;br /&gt;
&lt;br /&gt;
* '''MapDisplay''' -- Frame (in [http://wiki.wxpython.org/index.cgi/Frequently_Asked_Questions#head-829eea79fe17c04c65c00a7dc0bffa69f2473167 wxWidgets terminology]) with embed toolbar for zooming and paning and maybe data quering and pop-up toolbar for substitution of other d.* modules (d.path, d.profile, ...)&lt;br /&gt;
NOTE: This section should be completed&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width&lt;br /&gt;
*** Height&lt;br /&gt;
*** Mouse -- mouse actions, movements, presed buttons etc.&lt;br /&gt;
*** Map -- ''Map'' class&lt;br /&gt;
** ''Methods'' -- just very coarse definition&lt;br /&gt;
*** Zoom -- for zooming and paning&lt;br /&gt;
*** DrawBox -- For box drawing&lt;br /&gt;
*** DrawLine -- For line drawing&lt;br /&gt;
*** DrawPoint -- for points drawing&lt;br /&gt;
&lt;br /&gt;
* '''GisManager''' -- GIS Manager frame&lt;br /&gt;
** '''Attributes''' &lt;br /&gt;
*** Displays -- array with map displayes&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddDisplay -- Creates new map display&lt;br /&gt;
*** AddLayer -- Adds layer of defined type&lt;br /&gt;
*** EditLayer -- Opens pop-up window with layer attributes definition&lt;br /&gt;
*** ExecuteCommand -- Executes module from command line or menu&lt;br /&gt;
&lt;br /&gt;
* '''GCPDisplay''' -- Special type of MapDisplay with tool for setting GCPs&lt;br /&gt;
* '''HCPDisplay''' -- Special type of MapDisplay with tools for creating configuration files for hardcopy maps&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk GUI ==&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3608</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3608"/>
		<updated>2007-02-02T08:13:50Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Coder's point of view */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== wxPython GUI ==&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
NOTE: As I have no coders background, sorry for inept formulated thoughts. --[[User:Jachym|Jachym]] 09:13, 2 February 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
List of suggested classes and their purpose.&lt;br /&gt;
&lt;br /&gt;
* '''Layer''' -- Raster, vector, WMS, whatever layer&lt;br /&gt;
** '''Attributes''' -- Attributes are depending on layer type, but there are also common attributes marked with prefix &amp;quot;l_&amp;quot;  (for 'layer'):&lt;br /&gt;
*** l_type -- vector, raster, wms, text, graph, ...&lt;br /&gt;
*** l_mapfile -- renderd ppm file&lt;br /&gt;
*** l_maskfile -- pgm file with layer's alpha channel&lt;br /&gt;
*** l_active -- layer is active, will be rendered only if True&lt;br /&gt;
*** l_hidden - layer is hidden, will be allways rendered&lt;br /&gt;
*** l_opacity - layer opacity [0-1]&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** Render -- runs d.* and similar commands for making content of l_mapfile&lt;br /&gt;
&lt;br /&gt;
* '''Map''' -- Set of layers renderd to single PNG image, ready to display in Map display frame&lt;br /&gt;
** '''Attributes'''&lt;br /&gt;
*** Width -- map width&lt;br /&gt;
*** Height -- map height&lt;br /&gt;
*** Region -- Region boundaries and resolution&lt;br /&gt;
*** Layers -- Array of ''Layer''s displayed in this &amp;quot;map&amp;quot;&lt;br /&gt;
*** MapFile -- path to resulting PNG file with rendered map&lt;br /&gt;
** '''Methods'''&lt;br /&gt;
*** AddRasterLayer -- Adds GRASS-raster layer to list of layers&lt;br /&gt;
*** AddVectorLayer -- Adds GRASS-vector layer to list of layers&lt;br /&gt;
*** Add...Layer -- Adds some type of layer (wms, wfs, text, ...) to list of layers&lt;br /&gt;
*** GetListOfLayers -- Returns array of layers (''active, hidden, type'')&lt;br /&gt;
*** Render -- Creates final PNG image and stores it's path to ''MapFile''&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk GUI ==&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3607</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3607"/>
		<updated>2007-02-02T07:26:26Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* wxPython GUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== wxPython GUI ==&lt;br /&gt;
=== General GUI Design ===&lt;br /&gt;
==== User's point of view ====&lt;br /&gt;
* GUI has multiple map displays&lt;br /&gt;
* Each map display has several buttons for basic functions&lt;br /&gt;
** Zooming and Paning&lt;br /&gt;
** Data Quering&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with more complicated  and not-so-often-used display functions (substitutions for d.measure, d.profile, d.text, ...)&lt;br /&gt;
* Each map display will be able to fire up pop-up toolbar with v.digit substitution&lt;br /&gt;
* Monitors can be started from the command line and from the GIS Manager&lt;br /&gt;
* Monitors must be able to display following types of layers&lt;br /&gt;
** GRASS Raster&lt;br /&gt;
** GRASS Vector&lt;br /&gt;
** GDAL Raster&lt;br /&gt;
** GDAL Vector&lt;br /&gt;
** WMS Layer from remote server&lt;br /&gt;
** WCS and WFS layers too&lt;br /&gt;
** Text layers&lt;br /&gt;
** Graphics layers&lt;br /&gt;
** Grid&lt;br /&gt;
** Image layers&lt;br /&gt;
** ...&lt;br /&gt;
* GIS Manager is tool for &lt;br /&gt;
** Monitors management and monitor content management &lt;br /&gt;
** Layer look management&lt;br /&gt;
** Modules starting (from integrated command line or menu)&lt;br /&gt;
** Displaying output from modules (G_message, G_warning, G_fatal_error, G_percent)&lt;br /&gt;
* GIS Manager must be able to save and restore session&lt;br /&gt;
* There should be default session file, which will be loaded by default ones GRASS is started with -gui parameter&lt;br /&gt;
* Georectification tool should be part of new GUI. It should be special type of monitor with added GCP function&lt;br /&gt;
* Map Composer should be part of the new GUI. This tool should generate configuration files for hardcopy maps. The configuration files should be either ps.map files or maybe SVG&lt;br /&gt;
&lt;br /&gt;
==== Coder's point of view ====&lt;br /&gt;
&lt;br /&gt;
=== GUI History ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk GUI ==&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=3606</id>
		<title>GRASS and Python</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=3606"/>
		<updated>2007-02-02T06:56:56Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* wxPython GUI development for GRASS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Python SIGs==&lt;br /&gt;
Python Special Interest Groups are focused collaborative efforts to develop, improve, or maintain specific Python resources. Each SIG has a charter, a coordinator, a mailing list, and a directory on the Python website. SIG membership is informal, defined by subscription to the SIG's mailing list. Anyone can join a SIG, and participate in the development discussions via the SIG's mailing list. Below is the list of currently active Python SIGs, with links to their resources. &lt;br /&gt;
&lt;br /&gt;
See more at http://www.python.org/community/sigs/&lt;br /&gt;
&lt;br /&gt;
==Writing python scripts in GRASS==&lt;br /&gt;
Python is between shell and C programms. For C part - it can handle GRASS C functions via swig. For shell part, it can be processed with g.parser, so automatic input check and help generation (apart from translation) can be processed.&lt;br /&gt;
&lt;br /&gt;
Example of python script, which is processed by g.parser:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 &lt;br /&gt;
 import sys&lt;br /&gt;
 import os&lt;br /&gt;
 &lt;br /&gt;
 #%Module&lt;br /&gt;
 #%  description: g.parser test script&lt;br /&gt;
 #%  keywords: keyword1, keyword2&lt;br /&gt;
 #%End&lt;br /&gt;
 #%flag&lt;br /&gt;
 #%  key: f&lt;br /&gt;
 #%  description: a flag&lt;br /&gt;
 #%END&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: raster&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% gisprompt: old,cell,raster&lt;br /&gt;
 #% description: raster input map&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: vector&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% gisprompt: old,vector,vector&lt;br /&gt;
 #% description: vector input map&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: option1&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% description: an option&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 &lt;br /&gt;
 def main(): &lt;br /&gt;
 &lt;br /&gt;
     #add your code here&lt;br /&gt;
     print &amp;quot;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
     if ( os.getenv(&amp;quot;GIS_FLAG_f&amp;quot;) != &amp;quot;0&amp;quot; ):&lt;br /&gt;
         print &amp;quot;Flag -f set&amp;quot;&lt;br /&gt;
     else:&lt;br /&gt;
         print &amp;quot;Flag -f not set&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_option1: %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_option1&amp;quot;)&lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_raster:  %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_raster&amp;quot;)&lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_vect:    %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_vect&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
     #end of your code&lt;br /&gt;
     return &lt;br /&gt;
 &lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
     args = &amp;quot;&amp;quot;&lt;br /&gt;
     for arg in sys.argv:&lt;br /&gt;
         args += arg+&amp;quot; &amp;quot;&lt;br /&gt;
     try:&lt;br /&gt;
         if ( sys.argv[1] != &amp;quot;@ARGS_PARSED@&amp;quot; ):&lt;br /&gt;
             os.system(&amp;quot;g.parser %s &amp;quot; % (args))&lt;br /&gt;
     except IndexError:&lt;br /&gt;
         os.system(&amp;quot;g.parser %s&amp;quot; % (args)) &lt;br /&gt;
 &lt;br /&gt;
     if sys.argv[1] == &amp;quot;@ARGS_PARSED@&amp;quot;:&lt;br /&gt;
         main();&lt;br /&gt;
==Python extensions for GRASS GIS==&lt;br /&gt;
=== wxPython GUI development for GRASS ===&lt;br /&gt;
See section [[GRASS_and_Python#wxPython_GUI_development_for_GRASS]]&lt;br /&gt;
&lt;br /&gt;
===Python-SWIG-GRASS interface===&lt;br /&gt;
There is a prototype GRASS-SWIG interface available (thanks to Sajith VK), find it in GRASS 6-CVS: '''swig/python/'''. Draft documentation is [http://mpa.itc.it/markus/grass63progman/swig/ here]. It now wraps both raster and vector data C functions plus the general GIS (G_*()) functions.&lt;br /&gt;
&lt;br /&gt;
Background: [http://www.swig.org SWIG] (Simplified Wrapper and Interface Generator) is: &lt;br /&gt;
&lt;br /&gt;
* A compiler that turns ANSI C/C++ declarations into scripting language interfaces.&lt;br /&gt;
* Completely automated (produces a fully working Python extension module). &lt;br /&gt;
* Language neutral. SWIG can also target Tcl, Perl, Guile, MATLAB, etc... &lt;br /&gt;
* Attempts to eliminate the tedium of writing extension modules.&lt;br /&gt;
&lt;br /&gt;
Sample script for raster access (use within GRASS, Spearfish session):&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 import python_grass6 as g6lib&lt;br /&gt;
 &lt;br /&gt;
 input = 'roads'&lt;br /&gt;
 mapset = 'PERMANENT'&lt;br /&gt;
 &lt;br /&gt;
 # initialize&lt;br /&gt;
 g6lib.G_gisinit('')&lt;br /&gt;
 infd = g6lib.G_open_cell_old(input, mapset)&lt;br /&gt;
 cell = g6lib.G_allocate_cell_buf()&lt;br /&gt;
 &lt;br /&gt;
 rown=0&lt;br /&gt;
 # the API still needs error checking to be added&lt;br /&gt;
 while 1:&lt;br /&gt;
     myrow = g6lib.G_get_map_row_nomask(infd, cell, rown)&lt;br /&gt;
     print rown,myrow[0:10]&lt;br /&gt;
     rown = rown+1&lt;br /&gt;
     if rown==476:break&lt;br /&gt;
 &lt;br /&gt;
 g6lib.G_close_cell(infd)&lt;br /&gt;
 g6lib.G_free(cell)&lt;br /&gt;
&lt;br /&gt;
Sample script for vector access (use within GRASS, Spearfish session):&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 import python_grass6 as g6lib&lt;br /&gt;
 &lt;br /&gt;
 input = 'soils'&lt;br /&gt;
 mapset = 'PERMANENT'&lt;br /&gt;
 &lt;br /&gt;
 # initialize&lt;br /&gt;
 g6lib.G_gisinit('')&lt;br /&gt;
 &lt;br /&gt;
 # define map structure&lt;br /&gt;
 map = g6lib.Map_info()&lt;br /&gt;
 &lt;br /&gt;
 # define open level (level 2: topology)&lt;br /&gt;
 g6lib.Vect_set_open_level (2)&lt;br /&gt;
 &lt;br /&gt;
 # open existing map&lt;br /&gt;
 g6lib.Vect_open_old(map, input, mapset)&lt;br /&gt;
 &lt;br /&gt;
 # query&lt;br /&gt;
 print 'Vect is 3D: ', g6lib.Vect_is_3d (map)&lt;br /&gt;
 print 'Vect DB links: ', g6lib.Vect_get_num_dblinks(map)&lt;br /&gt;
 print 'Map Scale:  1:', g6lib.Vect_get_scale(map)&lt;br /&gt;
 &lt;br /&gt;
 # close map&lt;br /&gt;
 g6lib.Vect_close(map)&lt;br /&gt;
&lt;br /&gt;
'''TODO''': Implement modules support in a Python class using --interface-description and a Python-XML parser. This should be a generic class with module's name as parameter, returning back an object which describes the module (description, flags, parameters, status of not/required). See [http://freegis.org/cgi-bin/viewcvs.cgi/grass6/gui/wxpython/ GRASS 6 wxPython interface] for inspiration. Important is to auto-generate the GRASS-Python class at compile time with a Python script.&lt;br /&gt;
&lt;br /&gt;
=== Python-GRASS add-ons ===&lt;br /&gt;
&lt;br /&gt;
Stand-alone addons:&lt;br /&gt;
&lt;br /&gt;
# Jáchym Čepický's G-ps.map, a GUI to typeset printable maps with ps.map (http://193.84.38.2/~jachym/index.py?cat=gpsmap)&lt;br /&gt;
# Jáchym Čepický's v.pydigit, a GUI to v.edit (http://les-ejk.cz/?cat=vpydigit)&lt;br /&gt;
# Jáchym Čepický's PyWPS, GRASS-Web Processing Service (http://pywps.wald.intevation.org)&lt;br /&gt;
&lt;br /&gt;
=== Using Grass gui.tcl in python ===&lt;br /&gt;
&lt;br /&gt;
Here is some example code to use the grass automatically generated guis in python code. This could (should) all be bundled up and abstracted away so that the implementation can be replaced later.&lt;br /&gt;
&lt;br /&gt;
 import Tkinter&lt;br /&gt;
 import os&lt;br /&gt;
 &lt;br /&gt;
 # Startup (once):&lt;br /&gt;
 &lt;br /&gt;
 tk = Tkinter.Tk()&lt;br /&gt;
 tk.eval (&amp;quot;wm withdraw .&amp;quot;)&lt;br /&gt;
 tk.eval (&amp;quot;source $env(GISBASE)/etc/gui.tcl&amp;quot;)&lt;br /&gt;
 # Here you could do various things to change what the gui does&lt;br /&gt;
 # See gui.tcl and README.GUI&lt;br /&gt;
 &lt;br /&gt;
 # Make a gui (per dialog)&lt;br /&gt;
 # This sets up a window for the command.&lt;br /&gt;
 # This can be different to integrate with tkinter:&lt;br /&gt;
 tk.eval ('set path &amp;quot;.dialog$dlg&amp;quot;')&lt;br /&gt;
 tk.eval ('toplevel .dialog$dlg')&lt;br /&gt;
 # Load the code for this command:&lt;br /&gt;
 fd = os.popen (&amp;quot;d.vect --tcltk&amp;quot;)&lt;br /&gt;
 gui = fd.read()&lt;br /&gt;
 # Run it&lt;br /&gt;
 tk.eval(gui)&lt;br /&gt;
 dlg = tk.eval('set dlg') # This is used later to get and set &lt;br /&gt;
 &lt;br /&gt;
 # Get the current command in the gui we just made:&lt;br /&gt;
 currentcommand = tk.eval (&amp;quot;dialog_get_command &amp;quot; + dlg)&lt;br /&gt;
 &lt;br /&gt;
 # Set the command in the dialog we just made:&lt;br /&gt;
 tk.eval (&amp;quot;dialog_set_command &amp;quot; + dlg + &amp;quot; {d.vect map=roads}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* GRASS-SWIG interface http://mpa.itc.it/markus/grass63progman/swig/&lt;br /&gt;
* SWIG http://www.swig.org/&lt;br /&gt;
* SIP (C/C++ bindings generator) http://directory.fsf.org/all/Python-SIP.html&lt;br /&gt;
* Python and GDAL/OGR:&lt;br /&gt;
** [http://mapserver.gis.umn.edu/community/conferences/MUM3/workshop/python Open Source Python GIS Hacks Mum'03]&lt;br /&gt;
** http://hobu.biz/software/OSGIS_Hacks - Python OSGIS Hacks '05&lt;br /&gt;
** http://zcologia.com/news/categorylist_html?cat_id=8&lt;br /&gt;
** http://www.perrygeo.net/wordpress/?p=4&lt;br /&gt;
* Python bindings to PROJ:&lt;br /&gt;
** http://www.cdc.noaa.gov/people/jeffrey.s.whitaker/python/pyproj.html&lt;br /&gt;
* Other external projects&lt;br /&gt;
** Scientific Python: http://www.scipy.org/&lt;br /&gt;
&lt;br /&gt;
=== Presentations ===&lt;br /&gt;
&lt;br /&gt;
From FOSS4G2006:&lt;br /&gt;
* [http://www.foss4g2006.org/materialDisplay.py?contribId=136&amp;amp;amp;sessionId=48&amp;amp;amp;materialId=slides&amp;amp;amp;confId=1 A Python sweeps in the GRASS] - A. Frigeri 2006&lt;br /&gt;
* [http://www.foss4g2006.org/materialDisplay.py?contribId=67&amp;amp;amp;sessionId=48&amp;amp;amp;materialId=slides&amp;amp;amp;confId=1 GRASS goes web: PyWPS] - J. Cepicky 2006&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Linking to other languages]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3605</id>
		<title>GRASS GUI</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GUI&amp;diff=3605"/>
		<updated>2007-02-02T06:55:31Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* wxPython GUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== wxPython GUI ==&lt;br /&gt;
&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk GUI ==&lt;br /&gt;
Screenshots: http://grass.itc.it/grass61/screenshots/index.php&lt;br /&gt;
&lt;br /&gt;
===Draft GUI design specifications===&lt;br /&gt;
&lt;br /&gt;
* See attached file&lt;br /&gt;
&lt;br /&gt;
===Summary of 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file gives a distillation of several months of emails on the GRASS developers list. It includes a series of desired design features and specifications, along with supporting quotes.&lt;br /&gt;
&lt;br /&gt;
===Compiled emails from 2005 discussions on next generation UI for GRASS===&lt;br /&gt;
&lt;br /&gt;
* Attached file compiles all (or all that I could find) of the late 2005 emails on the GRASS developers list discussing proposed specifications for a next generation GRASS GUI. It is a series of rtm files that group the discussions according to a series of topics.&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=3604</id>
		<title>GRASS and Python</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=3604"/>
		<updated>2007-02-02T06:55:04Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* wxPython GUI development for GRASS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Python SIGs==&lt;br /&gt;
Python Special Interest Groups are focused collaborative efforts to develop, improve, or maintain specific Python resources. Each SIG has a charter, a coordinator, a mailing list, and a directory on the Python website. SIG membership is informal, defined by subscription to the SIG's mailing list. Anyone can join a SIG, and participate in the development discussions via the SIG's mailing list. Below is the list of currently active Python SIGs, with links to their resources. &lt;br /&gt;
&lt;br /&gt;
See more at http://www.python.org/community/sigs/&lt;br /&gt;
&lt;br /&gt;
==Writing python scripts in GRASS==&lt;br /&gt;
Python is between shell and C programms. For C part - it can handle GRASS C functions via swig. For shell part, it can be processed with g.parser, so automatic input check and help generation (apart from translation) can be processed.&lt;br /&gt;
&lt;br /&gt;
Example of python script, which is processed by g.parser:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 &lt;br /&gt;
 import sys&lt;br /&gt;
 import os&lt;br /&gt;
 &lt;br /&gt;
 #%Module&lt;br /&gt;
 #%  description: g.parser test script&lt;br /&gt;
 #%  keywords: keyword1, keyword2&lt;br /&gt;
 #%End&lt;br /&gt;
 #%flag&lt;br /&gt;
 #%  key: f&lt;br /&gt;
 #%  description: a flag&lt;br /&gt;
 #%END&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: raster&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% gisprompt: old,cell,raster&lt;br /&gt;
 #% description: raster input map&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: vector&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% gisprompt: old,vector,vector&lt;br /&gt;
 #% description: vector input map&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: option1&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% description: an option&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 &lt;br /&gt;
 def main(): &lt;br /&gt;
 &lt;br /&gt;
     #add your code here&lt;br /&gt;
     print &amp;quot;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
     if ( os.getenv(&amp;quot;GIS_FLAG_f&amp;quot;) != &amp;quot;0&amp;quot; ):&lt;br /&gt;
         print &amp;quot;Flag -f set&amp;quot;&lt;br /&gt;
     else:&lt;br /&gt;
         print &amp;quot;Flag -f not set&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_option1: %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_option1&amp;quot;)&lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_raster:  %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_raster&amp;quot;)&lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_vect:    %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_vect&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
     #end of your code&lt;br /&gt;
     return &lt;br /&gt;
 &lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
     args = &amp;quot;&amp;quot;&lt;br /&gt;
     for arg in sys.argv:&lt;br /&gt;
         args += arg+&amp;quot; &amp;quot;&lt;br /&gt;
     try:&lt;br /&gt;
         if ( sys.argv[1] != &amp;quot;@ARGS_PARSED@&amp;quot; ):&lt;br /&gt;
             os.system(&amp;quot;g.parser %s &amp;quot; % (args))&lt;br /&gt;
     except IndexError:&lt;br /&gt;
         os.system(&amp;quot;g.parser %s&amp;quot; % (args)) &lt;br /&gt;
 &lt;br /&gt;
     if sys.argv[1] == &amp;quot;@ARGS_PARSED@&amp;quot;:&lt;br /&gt;
         main();&lt;br /&gt;
==Python extensions for GRASS GIS==&lt;br /&gt;
=== wxPython GUI development for GRASS ===&lt;br /&gt;
See section&lt;br /&gt;
&lt;br /&gt;
===Python-SWIG-GRASS interface===&lt;br /&gt;
There is a prototype GRASS-SWIG interface available (thanks to Sajith VK), find it in GRASS 6-CVS: '''swig/python/'''. Draft documentation is [http://mpa.itc.it/markus/grass63progman/swig/ here]. It now wraps both raster and vector data C functions plus the general GIS (G_*()) functions.&lt;br /&gt;
&lt;br /&gt;
Background: [http://www.swig.org SWIG] (Simplified Wrapper and Interface Generator) is: &lt;br /&gt;
&lt;br /&gt;
* A compiler that turns ANSI C/C++ declarations into scripting language interfaces.&lt;br /&gt;
* Completely automated (produces a fully working Python extension module). &lt;br /&gt;
* Language neutral. SWIG can also target Tcl, Perl, Guile, MATLAB, etc... &lt;br /&gt;
* Attempts to eliminate the tedium of writing extension modules.&lt;br /&gt;
&lt;br /&gt;
Sample script for raster access (use within GRASS, Spearfish session):&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 import python_grass6 as g6lib&lt;br /&gt;
 &lt;br /&gt;
 input = 'roads'&lt;br /&gt;
 mapset = 'PERMANENT'&lt;br /&gt;
 &lt;br /&gt;
 # initialize&lt;br /&gt;
 g6lib.G_gisinit('')&lt;br /&gt;
 infd = g6lib.G_open_cell_old(input, mapset)&lt;br /&gt;
 cell = g6lib.G_allocate_cell_buf()&lt;br /&gt;
 &lt;br /&gt;
 rown=0&lt;br /&gt;
 # the API still needs error checking to be added&lt;br /&gt;
 while 1:&lt;br /&gt;
     myrow = g6lib.G_get_map_row_nomask(infd, cell, rown)&lt;br /&gt;
     print rown,myrow[0:10]&lt;br /&gt;
     rown = rown+1&lt;br /&gt;
     if rown==476:break&lt;br /&gt;
 &lt;br /&gt;
 g6lib.G_close_cell(infd)&lt;br /&gt;
 g6lib.G_free(cell)&lt;br /&gt;
&lt;br /&gt;
Sample script for vector access (use within GRASS, Spearfish session):&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 import python_grass6 as g6lib&lt;br /&gt;
 &lt;br /&gt;
 input = 'soils'&lt;br /&gt;
 mapset = 'PERMANENT'&lt;br /&gt;
 &lt;br /&gt;
 # initialize&lt;br /&gt;
 g6lib.G_gisinit('')&lt;br /&gt;
 &lt;br /&gt;
 # define map structure&lt;br /&gt;
 map = g6lib.Map_info()&lt;br /&gt;
 &lt;br /&gt;
 # define open level (level 2: topology)&lt;br /&gt;
 g6lib.Vect_set_open_level (2)&lt;br /&gt;
 &lt;br /&gt;
 # open existing map&lt;br /&gt;
 g6lib.Vect_open_old(map, input, mapset)&lt;br /&gt;
 &lt;br /&gt;
 # query&lt;br /&gt;
 print 'Vect is 3D: ', g6lib.Vect_is_3d (map)&lt;br /&gt;
 print 'Vect DB links: ', g6lib.Vect_get_num_dblinks(map)&lt;br /&gt;
 print 'Map Scale:  1:', g6lib.Vect_get_scale(map)&lt;br /&gt;
 &lt;br /&gt;
 # close map&lt;br /&gt;
 g6lib.Vect_close(map)&lt;br /&gt;
&lt;br /&gt;
'''TODO''': Implement modules support in a Python class using --interface-description and a Python-XML parser. This should be a generic class with module's name as parameter, returning back an object which describes the module (description, flags, parameters, status of not/required). See [http://freegis.org/cgi-bin/viewcvs.cgi/grass6/gui/wxpython/ GRASS 6 wxPython interface] for inspiration. Important is to auto-generate the GRASS-Python class at compile time with a Python script.&lt;br /&gt;
&lt;br /&gt;
=== Python-GRASS add-ons ===&lt;br /&gt;
&lt;br /&gt;
Stand-alone addons:&lt;br /&gt;
&lt;br /&gt;
# Jáchym Čepický's G-ps.map, a GUI to typeset printable maps with ps.map (http://193.84.38.2/~jachym/index.py?cat=gpsmap)&lt;br /&gt;
# Jáchym Čepický's v.pydigit, a GUI to v.edit (http://les-ejk.cz/?cat=vpydigit)&lt;br /&gt;
# Jáchym Čepický's PyWPS, GRASS-Web Processing Service (http://pywps.wald.intevation.org)&lt;br /&gt;
&lt;br /&gt;
=== Using Grass gui.tcl in python ===&lt;br /&gt;
&lt;br /&gt;
Here is some example code to use the grass automatically generated guis in python code. This could (should) all be bundled up and abstracted away so that the implementation can be replaced later.&lt;br /&gt;
&lt;br /&gt;
 import Tkinter&lt;br /&gt;
 import os&lt;br /&gt;
 &lt;br /&gt;
 # Startup (once):&lt;br /&gt;
 &lt;br /&gt;
 tk = Tkinter.Tk()&lt;br /&gt;
 tk.eval (&amp;quot;wm withdraw .&amp;quot;)&lt;br /&gt;
 tk.eval (&amp;quot;source $env(GISBASE)/etc/gui.tcl&amp;quot;)&lt;br /&gt;
 # Here you could do various things to change what the gui does&lt;br /&gt;
 # See gui.tcl and README.GUI&lt;br /&gt;
 &lt;br /&gt;
 # Make a gui (per dialog)&lt;br /&gt;
 # This sets up a window for the command.&lt;br /&gt;
 # This can be different to integrate with tkinter:&lt;br /&gt;
 tk.eval ('set path &amp;quot;.dialog$dlg&amp;quot;')&lt;br /&gt;
 tk.eval ('toplevel .dialog$dlg')&lt;br /&gt;
 # Load the code for this command:&lt;br /&gt;
 fd = os.popen (&amp;quot;d.vect --tcltk&amp;quot;)&lt;br /&gt;
 gui = fd.read()&lt;br /&gt;
 # Run it&lt;br /&gt;
 tk.eval(gui)&lt;br /&gt;
 dlg = tk.eval('set dlg') # This is used later to get and set &lt;br /&gt;
 &lt;br /&gt;
 # Get the current command in the gui we just made:&lt;br /&gt;
 currentcommand = tk.eval (&amp;quot;dialog_get_command &amp;quot; + dlg)&lt;br /&gt;
 &lt;br /&gt;
 # Set the command in the dialog we just made:&lt;br /&gt;
 tk.eval (&amp;quot;dialog_set_command &amp;quot; + dlg + &amp;quot; {d.vect map=roads}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* GRASS-SWIG interface http://mpa.itc.it/markus/grass63progman/swig/&lt;br /&gt;
* SWIG http://www.swig.org/&lt;br /&gt;
* SIP (C/C++ bindings generator) http://directory.fsf.org/all/Python-SIP.html&lt;br /&gt;
* Python and GDAL/OGR:&lt;br /&gt;
** [http://mapserver.gis.umn.edu/community/conferences/MUM3/workshop/python Open Source Python GIS Hacks Mum'03]&lt;br /&gt;
** http://hobu.biz/software/OSGIS_Hacks - Python OSGIS Hacks '05&lt;br /&gt;
** http://zcologia.com/news/categorylist_html?cat_id=8&lt;br /&gt;
** http://www.perrygeo.net/wordpress/?p=4&lt;br /&gt;
* Python bindings to PROJ:&lt;br /&gt;
** http://www.cdc.noaa.gov/people/jeffrey.s.whitaker/python/pyproj.html&lt;br /&gt;
* Other external projects&lt;br /&gt;
** Scientific Python: http://www.scipy.org/&lt;br /&gt;
&lt;br /&gt;
=== Presentations ===&lt;br /&gt;
&lt;br /&gt;
From FOSS4G2006:&lt;br /&gt;
* [http://www.foss4g2006.org/materialDisplay.py?contribId=136&amp;amp;amp;sessionId=48&amp;amp;amp;materialId=slides&amp;amp;amp;confId=1 A Python sweeps in the GRASS] - A. Frigeri 2006&lt;br /&gt;
* [http://www.foss4g2006.org/materialDisplay.py?contribId=67&amp;amp;amp;sessionId=48&amp;amp;amp;materialId=slides&amp;amp;amp;confId=1 GRASS goes web: PyWPS] - J. Cepicky 2006&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Linking to other languages]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_7_ideas_collection&amp;diff=3544</id>
		<title>GRASS 7 ideas collection</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_7_ideas_collection&amp;diff=3544"/>
		<updated>2007-01-19T13:29:26Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raster ==&lt;br /&gt;
&lt;br /&gt;
=== Library ===&lt;br /&gt;
&lt;br /&gt;
* Split libgis into G_() part and Rast_() part&lt;br /&gt;
* Rewrite library from scratch. See [http://grass.itc.it/pipermail/grass-dev/2006-August/025025.html suggestions]&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
&lt;br /&gt;
* Remove r.in.arc and r.out.arc, '''if''' a [http://intevation.de/rt/webrt?serial_num=4897 related bug in r.in.gdal] is fixed. The [http://bugzilla.remotesensing.org/show_bug.cgi?id=1071 integer/floating point detection for AAIGrid driver in GDAL] was fixed after 1.3.2 release, so r.in.gdal and r.out.gdal should be enough now.&lt;br /&gt;
&lt;br /&gt;
* Remove the code from r.info that makes it print projection information - we have g.region and g.proj for that. Moreover, r.info always prints a bogus '''(zone 0)''' information in non-UTM locations, which is confussing. See [http://intevation.de/rt/webrt?serial_num=3054 a bug report].&lt;br /&gt;
&lt;br /&gt;
* fix the raster map history management (truncating long history, odd storage). It should work like for vector maps in GRASS 6.&lt;br /&gt;
&lt;br /&gt;
* dispose '''r.resample''' and '''r.bilinear''' in favor of '''r.resamp.interp'''&lt;br /&gt;
&lt;br /&gt;
* merge '''r.surf.idw''' and '''r.surf.idw2'''&lt;br /&gt;
&lt;br /&gt;
* drop '''r.univar.sh'''; newly implemented '''r.univar''' features cover it&lt;br /&gt;
&lt;br /&gt;
* drop '''r.univar.sh'''; newly implemented '''r.univar''' features cover it&lt;br /&gt;
&lt;br /&gt;
* r.sum, r.mode, r.median, r.average, r.statistics, r.univar, r.univar2 - maybe they can be reduced to just r.statistics and r.univar? See [http://intevation.de/rt/webrt?serial_num=1848 RT #1848] and a [http://grass.itc.it/pipermail/grass-dev/2006-November/027665.html thread on the GRASS dev list]&lt;br /&gt;
&lt;br /&gt;
* Dispose r.out.tiff. New C r.out.gdal should cover all it's option now (doublecheck!). See [http://intevation.de/rt/webrt?serial_num=3680 RT #3680] (starting with date Sun, Nov 26 2006 14:54:23).&lt;br /&gt;
&lt;br /&gt;
* Remove remainging -v and -q flags for verbosity levels of modules.&lt;br /&gt;
&lt;br /&gt;
== Vector ==&lt;br /&gt;
=== Library ===&lt;br /&gt;
=== Modules ===&lt;br /&gt;
&lt;br /&gt;
* rename v.mkgrid to v.grid&lt;br /&gt;
* merge v.select and v.overlay&lt;br /&gt;
* Remove [http://intevation.de/rt/webrt?serial_num=3600 doubled units in v.to.db GUI]&lt;br /&gt;
&lt;br /&gt;
* Fix the [http://intevation.de/rt/webrt?serial_num=3623 Column 'cat_' already exists (duplicate name)] in v.in.ogr. Maybe by creating columns ''cat_1'', ''cat_2'' etc.  each time a Grass vector is exported to shapefile and imported back to Grass?&lt;br /&gt;
* write Vect_map_exists() and implement in g.remove and v.digit -n (why wait for GRASS 7 ??)&lt;br /&gt;
* add '-d' dissolve to v.reclass&lt;br /&gt;
* add 'where=' to v.to.rast (why wait for GRASS 7 ??)&lt;br /&gt;
* implement Douglas-Peucker generalization ([http://www.ngdc.noaa.gov/mgg/shorelines/data/gshhs/version1.2/gshhs_dp.c C code file])to substitute prune tool of v.clean (why wait for GRASS 7 ??)&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
=== Library ===&lt;br /&gt;
* Add support for planetary bodies reference systems&lt;br /&gt;
* Add new partial differential equation (PDE) library with OpenMP support&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
&lt;br /&gt;
* g.remove, g.mremove, g.rename, g.copy: don't allow for default datatype (which is currently raster) [http://intevation.de/rt/webrt?serial_num=3009].&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
=== Library ===&lt;br /&gt;
=== Modules ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Imagery ==&lt;br /&gt;
=== Library ===&lt;br /&gt;
&lt;br /&gt;
Do merge of image libraries:&lt;br /&gt;
&lt;br /&gt;
* A)&lt;br /&gt;
** lib/imagery/: standard lib, in use (i.* except for i.points3, i.rectify3)&lt;br /&gt;
** imagery/i.ortho.photo/libes/: standard lib, in use (i.ortho.photo, photo.*)&lt;br /&gt;
* B)&lt;br /&gt;
** lib/image3/: never finished improvement which integrated the standard lib and the ortho lib. Seems to provide also ortho rectification for satellite data (i.points3, i.rectify3)&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
&lt;br /&gt;
* merge of i.points, i.vpoints, i.points3&lt;br /&gt;
* merge of i.rectify and i.rectify3&lt;br /&gt;
* addition of new resampling algorithms such as bilinear, cubic convolution (take from r.proj?)&lt;br /&gt;
* add other warping methods (maybe thin splines from GDAL?)&lt;br /&gt;
* implement/finish linewise ortho-rectification of satellite data&lt;br /&gt;
* Depreciate tape functions in next major revision of GRASS and create a tape module that accomplishes tape access.&lt;br /&gt;
&lt;br /&gt;
== Raster3D ==&lt;br /&gt;
=== Library ===&lt;br /&gt;
* renaming of all G3D library functions to fulfil the grass coding standard&lt;br /&gt;
* extent/rewrite documentation &lt;br /&gt;
* localisation support (why wait for GRASS 7 ??)&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* report and support modules like r3.stats, r3.support&lt;br /&gt;
* voxel -&amp;gt; vector (isosurfaces ...) and vector -&amp;gt; voxel (lines, faces, volumes) conversion modules&lt;br /&gt;
* module for 3d Kriging interpolation based on vector points&lt;br /&gt;
* a GRASS-Python/VTK visualisation/manipulation tool&lt;br /&gt;
&lt;br /&gt;
== Display ==&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* Huidae Cho merged d.text.freetype and d.text into d.text.new; drop them and rename d.text.new into d.text&lt;br /&gt;
* merge d.font and d.font.freetype too&lt;br /&gt;
&lt;br /&gt;
== Parser ==&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;Add another semantic meaning to the parser system for a type safe enumerated list&amp;quot; (Cedric's words commenting the bug that  [http://intevation.de/rt/webrt?serial_num=2969 '''v.type''' doesn't allow for selecting input and output type in '''GUI''']&lt;br /&gt;
&lt;br /&gt;
* Making GRASS modules be less verbose. Use --verbose flag and GRASS_VERBOSE environment variable. All output (G_message, G_percetn, G_warning) should go to GRASS_LOG file which could be grassdata/location/mapset/.grass.log by default.&lt;br /&gt;
&lt;br /&gt;
== Data management ==&lt;br /&gt;
&lt;br /&gt;
* store vertical units on per-map base, using code from [http://www.gnu.org/software/units/ units] software&lt;br /&gt;
* store vertical map datum on per-location base (GDAL/OGR needs the same [http://lists.maptools.org/pipermail/gdal-dev/2005-October/006857.html enhancement])&lt;br /&gt;
* add versioning for maps (to recover previous map versions)&lt;br /&gt;
&lt;br /&gt;
== Visualization ==&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
== CLI ==&lt;br /&gt;
&lt;br /&gt;
Fix the parameters and flags. Make it a concept. See proposal in GRASS 5 [http://freegis.org/cgi-bin/viewcvs.cgi/grass/documents/parameter_proposal.txt?rev=HEAD&amp;amp;content-type=text/vnd.viewcvs-markup documents/parameter_proposal.txt]&lt;br /&gt;
&lt;br /&gt;
== GUI ==&lt;br /&gt;
&lt;br /&gt;
* Multiplatform&lt;br /&gt;
* Fast&lt;br /&gt;
* Small on monitor&lt;br /&gt;
* Number of window reduction&lt;br /&gt;
* Managable from command line via d.* modules (which will have to be rewritten too)&lt;br /&gt;
* Facilitating easy development of custom GUI application based on GRASS&lt;br /&gt;
&lt;br /&gt;
* [[GRASS and Python|Python]]?&lt;br /&gt;
* WxWidgets?&lt;br /&gt;
* Qt4&lt;br /&gt;
&lt;br /&gt;
== Conceptual changes ==&lt;br /&gt;
&lt;br /&gt;
* File organization in binaries:&lt;br /&gt;
** the grass etc dir is a mess... module should maintain arch-deps and arch-indep things in different paths -- &amp;lt;cite&amp;gt; frankie at #grass irc&amp;lt;/cite&amp;gt;&lt;br /&gt;
** it's basically a FHS violation, i dunno if it is reported by lintian, anyway /usr/lib/grass should be used for arch-deps data, not for mixed stuff -- &amp;lt;cite&amp;gt; frankie at #grass irc&amp;lt;/cite&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Release Roadmap]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3439</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3439"/>
		<updated>2006-12-23T16:06:15Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* v.edit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=v.digit=&lt;br /&gt;
GRASS digitizing tool should be&lt;br /&gt;
* written in '''wxPython''' Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* creating new vector file, eventualy overwrite existing ones '''create'''&lt;br /&gt;
* adding new features (points, lines, polylines, centroids) '''add'''&lt;br /&gt;
* removenig old features (with database record) '''delete'''&lt;br /&gt;
* moving whole feature '''move'''&lt;br /&gt;
* moving specified vertex '''vertex'''&lt;br /&gt;
* adding new vertext to line/boundary '''break'''&lt;br /&gt;
* spliting line/boundary completely '''split'''&lt;br /&gt;
* removing vertex '''straight'''&lt;br /&gt;
* selecting features '''select'''&lt;br /&gt;
* merging two lines/boundaries together '''merge'''&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox '''bbox'''&lt;br /&gt;
* catlist '''cats'''&lt;br /&gt;
* single coordinates '''coords'''&lt;br /&gt;
&lt;br /&gt;
==Examples of actions==&lt;br /&gt;
* Create new vector file&lt;br /&gt;
 v.edit tool=create map=vectfile&lt;br /&gt;
creates new vector map, eventualy will read data from standard inputs in default format (standard/point)&lt;br /&gt;
 v.edit tool=create map=vectfile input=file.txt&lt;br /&gt;
creates new vector map and reads data from file file.txt in default format&lt;br /&gt;
&lt;br /&gt;
* Add new feature to existing vector&lt;br /&gt;
 v.edit tool=add map=vectfile&lt;br /&gt;
Read data from standard inputs in standard format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Remove feature from vector file&lt;br /&gt;
 v.edit tool=delete map=vectfile cat=34,24&lt;br /&gt;
Remove features with category 34 and 24 from file vectfile&lt;br /&gt;
 v.edit tool=delete map=vectfile coords=344556.23,23445.2345 &lt;br /&gt;
Remove feature located on coordinates 344556.23,23445.2345&lt;br /&gt;
 v.edit tool=delete map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
Remove features defined by bounding box 344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
&lt;br /&gt;
* Move feature&lt;br /&gt;
 v.edit tool=move map=vectifle coords=344556.23,23445.2345 move=100000,-100000&lt;br /&gt;
Move feature located on coordinates 344556.23,23445.2345 to coordinates 644556.23,43445.2345&lt;br /&gt;
 v.edit tool=move map=vectifle cat=45 move=1000,-1000&lt;br /&gt;
Move all points of feature of category 45 to coordinates about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
 v.edit tool=move map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34 to=1000,-1000&lt;br /&gt;
Move all points of features defined by bounding box 344556.23,234455.2345,567566.34,456455.34 about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
&lt;br /&gt;
* Moving vertext&lt;br /&gt;
 v.edit tool=vertex map=vectifile coords=344556.23,23445.2345 move=1000,-1000&lt;br /&gt;
Move vertex on coordinates 344556.23,23445.2345 to 545556.23,22445.2345&lt;br /&gt;
&lt;br /&gt;
* Breaking line&lt;br /&gt;
 v.edit tool=break map=vectifile coords=344556.23,23445.2345&lt;br /&gt;
Break line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=break map=vectifile cat=45 coords=345433.3,34567.32&lt;br /&gt;
Break line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Remove vertex -- straight line&lt;br /&gt;
 v.edit tool=straight map=vectifile coords=344556.23,23445.2345&lt;br /&gt;
Remove vertex at coordinates 344556.23,23445.2345&lt;br /&gt;
&lt;br /&gt;
* Spliting line&lt;br /&gt;
 v.edit tool=split map=vectifile coords=344556.23,23445.2345&lt;br /&gt;
Split line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=split map=vectifile cat=45 coords=345433.3,34567.32&lt;br /&gt;
Split line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Mergin two lines&lt;br /&gt;
 v.edit tool=merge map=vectfile coords=606853.875,4921332,603216.75,4922763 &lt;br /&gt;
Merge first line defined by coordinates 606853.875,4921332 with second line, defined by coordinates 603216.75,4922763. Define nearest distance between line first and last points and move first (last) point of second line to first line -- First line will remain untached.&lt;br /&gt;
 v.edit tool=merge map=vectfile bbox=344556.23,23445.2345&lt;br /&gt;
Merge two lines defined by bounding box&lt;br /&gt;
 v.edit tool=merge map=vectfile cat=43,45&lt;br /&gt;
Merge two lines defined by category&lt;br /&gt;
&lt;br /&gt;
* Selecting features&lt;br /&gt;
Print line id's selected by coords, bbox or cat. Example:&lt;br /&gt;
 v.edit map=soils@PERMANENT tool=select bbox=595733.8125,4919781.75,598536.1875,4917396.75&lt;br /&gt;
Example with d.vect:&lt;br /&gt;
 d.vect col=red width=2 -i cat=&amp;quot;`v.edit map=soils@PERMANENT tool=select bbox=595733.8125,4919781.75,598536.1875,4917396.75`&amp;quot; map=soils&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
 v.edit --help&lt;br /&gt;
  &lt;br /&gt;
 Description:&lt;br /&gt;
  Edits a vector map; allows adding, deleting and modifying objects in a vector map. &lt;br /&gt;
 &lt;br /&gt;
 Keywords:&lt;br /&gt;
  vector, editing &lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
  v.edit [-tdbcn] map=name tool=string [input=string] [cats=range]&lt;br /&gt;
    [coords=x,y[,x,y,...]] [move=x,y] [bbox=x1,y1,x2,y2] [snap=value]&lt;br /&gt;
    [layer=value] [--verbose] [--quiet]&lt;br /&gt;
 &lt;br /&gt;
 Flags:&lt;br /&gt;
   -t   Do not use topology.&lt;br /&gt;
   -d   No database updates.&lt;br /&gt;
   -b   Give cats to boundaries too.&lt;br /&gt;
   -c   Do not close boundaries&lt;br /&gt;
   -n   Don't expect a header&lt;br /&gt;
  --v   Verbose module output&lt;br /&gt;
  --q   Quiet module output&lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
      map   Name of input vector map&lt;br /&gt;
     tool   The edit tool to take.&lt;br /&gt;
                 create - Create new vector file&lt;br /&gt;
                 add    - Add new vector feature to existing vector file&lt;br /&gt;
                 delete - Delete feature from vector file&lt;br /&gt;
                 move   - Move feature in vector file&lt;br /&gt;
                 vertex - Move just only vertex&lt;br /&gt;
                 straight - Remove vertex&lt;br /&gt;
                 merge  - Merge two vector lines togher&lt;br /&gt;
                 break  - Add new vertex to existing vector line&lt;br /&gt;
                 split  - Split line into two separate lines&lt;br /&gt;
                 select - Select lines and print their ID's&lt;br /&gt;
            options: create,add,delete,move,vertex,straight,merge,break,split,select&lt;br /&gt;
    input   ASCII file to be converted to binary vector file, if not given reads from standard input&lt;br /&gt;
     cats   Category values&lt;br /&gt;
            Example: 1,3,7-9,13&lt;br /&gt;
   coords   An x,y list of points. Required for add and move actions.&lt;br /&gt;
     move   Difference in x,y direction for moving feature or vertex&lt;br /&gt;
     bbox   Bounding box of selected feature&lt;br /&gt;
     snap   Object points will snap to existing points within snap units.&lt;br /&gt;
            default: 5.0&lt;br /&gt;
    layer   Layer number&lt;br /&gt;
            A single vector map can be connected to multiple database tables. This number determines which table to use.&lt;br /&gt;
            default: 1&lt;br /&gt;
&lt;br /&gt;
= r.digit =&lt;br /&gt;
&lt;br /&gt;
The r.in.poly ascii format is almost the same as the standard vector ascii format. So the new digitizer should be able to output for both, and then we have a replacement for r.digit too!&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3436</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3436"/>
		<updated>2006-12-22T21:42:44Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Examples of actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=v.digit=&lt;br /&gt;
GRASS digitizing tool should be&lt;br /&gt;
* written in '''wxPython''' Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* creating new vector file, eventualy overwrite existing ones '''create'''&lt;br /&gt;
* adding new features (points, lines, polylines, centroids) '''add'''&lt;br /&gt;
* removenig old features (with database record) '''delete'''&lt;br /&gt;
* moving whole feature '''move'''&lt;br /&gt;
* moving specified vertex '''vertex'''&lt;br /&gt;
* adding new vertext to line/boundary '''break'''&lt;br /&gt;
* spliting line/boundary completely '''split'''&lt;br /&gt;
* merging two lines/boundaries together '''merge'''&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox '''bbox'''&lt;br /&gt;
* catlist '''cats'''&lt;br /&gt;
* single coordinates '''coords'''&lt;br /&gt;
&lt;br /&gt;
==Examples of actions==&lt;br /&gt;
* Create new vector file&lt;br /&gt;
 v.edit tool=create map=vectfile&lt;br /&gt;
creates new vector map, eventualy will read data from standard inputs in default format (standard/point)&lt;br /&gt;
 v.edit tool=create map=vectfile input=file.txt&lt;br /&gt;
creates new vector map and reads data from file file.txt in default format&lt;br /&gt;
&lt;br /&gt;
* Add new feature to existing vector&lt;br /&gt;
 v.edit tool=add map=vectfile&lt;br /&gt;
Read data from standard inputs in standard format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Remove feature from vector file&lt;br /&gt;
 v.edit tool=delete map=vectfile cat=34,24&lt;br /&gt;
Remove features with category 34 and 24 from file vectfile&lt;br /&gt;
 v.edit tool=delete map=vectfile coords=344556.23,23445.2345 &lt;br /&gt;
Remove feature located on coordinates 344556.23,23445.2345&lt;br /&gt;
 v.edit tool=delete map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
Remove features defined by bounding box 344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
&lt;br /&gt;
* Move feature&lt;br /&gt;
 v.edit tool=move map=vectifle coords=344556.23,23445.2345 move=100000,-100000&lt;br /&gt;
Move feature located on coordinates 344556.23,23445.2345 to coordinates 644556.23,43445.2345&lt;br /&gt;
 v.edit tool=move map=vectifle cat=45 move=1000,-1000&lt;br /&gt;
Move all points of feature of category 45 to coordinates about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
 v.edit tool=move map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34 to=1000,-1000&lt;br /&gt;
Move all points of features defined by bounding box 344556.23,234455.2345,567566.34,456455.34 about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
&lt;br /&gt;
* Moving vertext&lt;br /&gt;
 v.edit tool=vertex map=vectifile coords=344556.23,23445.2345 move=1000,-1000&lt;br /&gt;
Move vertex on coordinates 344556.23,23445.2345 to 545556.23,22445.2345&lt;br /&gt;
&lt;br /&gt;
* Breaking line&lt;br /&gt;
 v.edit tool=break map=vectifile coords=344556.23,23445.2345&lt;br /&gt;
Break line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=break map=vectifile cat=45 coords=345433.3,34567.32&lt;br /&gt;
Break line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Remove vertex -- straight line&lt;br /&gt;
 v.edit tool=straight map=vectifile coords=344556.23,23445.2345&lt;br /&gt;
Remove vertex at coordinates 344556.23,23445.2345&lt;br /&gt;
&lt;br /&gt;
* Spliting line&lt;br /&gt;
 v.edit tool=split map=vectifile coords=344556.23,23445.2345&lt;br /&gt;
Split line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=split map=vectifile cat=45 coords=345433.3,34567.32&lt;br /&gt;
Split line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Mergin two lines&lt;br /&gt;
 v.edit tool=merge map=vectfile coords=606853.875,4921332,603216.75,4922763 &lt;br /&gt;
Merge first line defined by coordinates 606853.875,4921332 with second line, defined by coordinates 603216.75,4922763. Define nearest distance between line first and last points and move first (last) point of second line to first line -- First line will remain untached.&lt;br /&gt;
 v.edit tool=merge map=vectfile bbox=344556.23,23445.2345&lt;br /&gt;
Merge two lines defined by bounding box&lt;br /&gt;
 v.edit tool=merge map=vectfile cat=43,45&lt;br /&gt;
Merge two lines defined by category&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
 v.edit --help&lt;br /&gt;
  &lt;br /&gt;
 Description:&lt;br /&gt;
  Edits a vector map; allows adding, deleting and modifying objects in a vector map. &lt;br /&gt;
 &lt;br /&gt;
 Keywords:&lt;br /&gt;
  vector, editing &lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
  v.edit [-tdbcn] map=name tool=string [input=string] [cats=range]&lt;br /&gt;
    [coords=x,y[,x,y,...]] [move=x,y] [bbox=x1,y1,x2,y2] [snap=value]&lt;br /&gt;
    [layer=value] [--verbose] [--quiet]&lt;br /&gt;
 &lt;br /&gt;
 Flags:&lt;br /&gt;
   -t   Do not use topology.&lt;br /&gt;
   -d   No database updates.&lt;br /&gt;
   -b   Give cats to boundaries too.&lt;br /&gt;
   -c   Do not close boundaries&lt;br /&gt;
   -n   Don't expect a header&lt;br /&gt;
  --v   Verbose module output&lt;br /&gt;
  --q   Quiet module output&lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
      map   Name of input vector map&lt;br /&gt;
     tool   The edit tool to take.&lt;br /&gt;
                 create - Create new vector file&lt;br /&gt;
                 add    - Add new vector feature to existing vector file&lt;br /&gt;
                 delete - Delete feature from vector file&lt;br /&gt;
                 move   - Move feature in vector file&lt;br /&gt;
                 vertex - Move just only vertex&lt;br /&gt;
                 straight - Remove vertex&lt;br /&gt;
                 merge  - Merge two vector lines togher&lt;br /&gt;
                 break  - Add new vertex to existing vector line&lt;br /&gt;
                 split  - Split line into two separate lines&lt;br /&gt;
            options: create,add,delete,move,vertex,straight,merge,break,split&lt;br /&gt;
    input   ASCII file to be converted to binary vector file, if not given reads from standard input&lt;br /&gt;
     cats   Category values&lt;br /&gt;
            Example: 1,3,7-9,13&lt;br /&gt;
   coords   An x,y list of points. Required for add and move actions.&lt;br /&gt;
     move   Difference in x,y direction for moving feature or vertex&lt;br /&gt;
     bbox   Bounding box of selected feature&lt;br /&gt;
     snap   Object points will snap to existing points within snap units.&lt;br /&gt;
            default: 5.0&lt;br /&gt;
    layer   Layer number&lt;br /&gt;
            A single vector map can be connected to multiple database tables. This number determines which table to use.&lt;br /&gt;
            default: 1&lt;br /&gt;
&lt;br /&gt;
= r.digit =&lt;br /&gt;
&lt;br /&gt;
The r.in.poly ascii format is almost the same as the standard vector ascii format. So the new digitizer should be able to output for both, and then we have a replacement for r.digit too!&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3435</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3435"/>
		<updated>2006-12-22T21:38:11Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=v.digit=&lt;br /&gt;
GRASS digitizing tool should be&lt;br /&gt;
* written in '''wxPython''' Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* creating new vector file, eventualy overwrite existing ones '''create'''&lt;br /&gt;
* adding new features (points, lines, polylines, centroids) '''add'''&lt;br /&gt;
* removenig old features (with database record) '''delete'''&lt;br /&gt;
* moving whole feature '''move'''&lt;br /&gt;
* moving specified vertex '''vertex'''&lt;br /&gt;
* adding new vertext to line/boundary '''break'''&lt;br /&gt;
* spliting line/boundary completely '''split'''&lt;br /&gt;
* merging two lines/boundaries together '''merge'''&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox '''bbox'''&lt;br /&gt;
* catlist '''cats'''&lt;br /&gt;
* single coordinates '''coords'''&lt;br /&gt;
&lt;br /&gt;
==Examples of actions==&lt;br /&gt;
* Create new vector file&lt;br /&gt;
 v.edit tool=create map=vectfile&lt;br /&gt;
creates new vector map, eventualy will read data from standard inputs in default format (standard/point)&lt;br /&gt;
 v.edit tool=create map=vectfile input=file.txt&lt;br /&gt;
creates new vector map and reads data from file file.txt in default format&lt;br /&gt;
&lt;br /&gt;
* Add new feature to existing vector&lt;br /&gt;
 v.edit tool=add map=vectfile&lt;br /&gt;
Read data from standard inputs in standard format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Remove feature from vector file&lt;br /&gt;
 v.edit tool=delete map=vectfile cat=34,24&lt;br /&gt;
Remove features with category 34 and 24 from file vectfile&lt;br /&gt;
 v.edit tool=delete map=vectfile coords=344556.23,23445.2345 &lt;br /&gt;
Remove feature located on coordinates 344556.23,23445.2345&lt;br /&gt;
 v.edit tool=delete map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
Remove features defined by bounding box 344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
&lt;br /&gt;
* Move feature&lt;br /&gt;
 v.edit tool=move map=vectifle coords=344556.23,23445.2345 move=100000,-100000&lt;br /&gt;
Move feature located on coordinates 344556.23,23445.2345 to coordinates 644556.23,43445.2345&lt;br /&gt;
 v.edit tool=move map=vectifle cat=45 move=1000,-1000&lt;br /&gt;
Move all points of feature of category 45 to coordinates about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
 v.edit tool=move map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34 to=1000,-1000&lt;br /&gt;
Move all points of features defined by bounding box 344556.23,234455.2345,567566.34,456455.34 about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
&lt;br /&gt;
* Moving vertext&lt;br /&gt;
 v.edit tool=vertex map=vectifile coords=344556.23,23445.2345 move=1000,-1000&lt;br /&gt;
Move vertex on coordinates 344556.23,23445.2345 to 545556.23,22445.2345&lt;br /&gt;
&lt;br /&gt;
* Breaking line&lt;br /&gt;
 v.edit tool=break map=vectifile coords=344556.23,23445.2345&lt;br /&gt;
Break line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=break map=vectifile cat=45 coords=345433.3,34567.32&lt;br /&gt;
Break line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Spliting line&lt;br /&gt;
 v.edit tool=split map=vectifile coords=344556.23,23445.2345&lt;br /&gt;
Split line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=split map=vectifile cat=45 coords=345433.3,34567.32&lt;br /&gt;
Split line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Mergin two lines&lt;br /&gt;
 v.edit tool=merge map=vectfile coords=606853.875,4921332,603216.75,4922763 &lt;br /&gt;
Merge first line defined by coordinates 606853.875,4921332 with second line, defined by coordinates 603216.75,4922763. Define nearest distance between line first and last points and move first (last) point of second line to first line -- First line will remain untached.&lt;br /&gt;
 v.edit tool=merge map=vectfile bbox=344556.23,23445.2345&lt;br /&gt;
Merge two lines defined by bounding box&lt;br /&gt;
 v.edit tool=merge map=vectfile cat=43,45&lt;br /&gt;
Merge two lines defined by category&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
 v.edit --help&lt;br /&gt;
  &lt;br /&gt;
 Description:&lt;br /&gt;
  Edits a vector map; allows adding, deleting and modifying objects in a vector map. &lt;br /&gt;
 &lt;br /&gt;
 Keywords:&lt;br /&gt;
  vector, editing &lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
  v.edit [-tdbcn] map=name tool=string [input=string] [cats=range]&lt;br /&gt;
    [coords=x,y[,x,y,...]] [move=x,y] [bbox=x1,y1,x2,y2] [snap=value]&lt;br /&gt;
    [layer=value] [--verbose] [--quiet]&lt;br /&gt;
 &lt;br /&gt;
 Flags:&lt;br /&gt;
   -t   Do not use topology.&lt;br /&gt;
   -d   No database updates.&lt;br /&gt;
   -b   Give cats to boundaries too.&lt;br /&gt;
   -c   Do not close boundaries&lt;br /&gt;
   -n   Don't expect a header&lt;br /&gt;
  --v   Verbose module output&lt;br /&gt;
  --q   Quiet module output&lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
      map   Name of input vector map&lt;br /&gt;
     tool   The edit tool to take.&lt;br /&gt;
                 create - Create new vector file&lt;br /&gt;
                 add    - Add new vector feature to existing vector file&lt;br /&gt;
                 delete - Delete feature from vector file&lt;br /&gt;
                 move   - Move feature in vector file&lt;br /&gt;
                 vertex - Move just only vertex&lt;br /&gt;
                 straight - Remove vertex&lt;br /&gt;
                 merge  - Merge two vector lines togher&lt;br /&gt;
                 break  - Add new vertex to existing vector line&lt;br /&gt;
                 split  - Split line into two separate lines&lt;br /&gt;
            options: create,add,delete,move,vertex,straight,merge,break,split&lt;br /&gt;
    input   ASCII file to be converted to binary vector file, if not given reads from standard input&lt;br /&gt;
     cats   Category values&lt;br /&gt;
            Example: 1,3,7-9,13&lt;br /&gt;
   coords   An x,y list of points. Required for add and move actions.&lt;br /&gt;
     move   Difference in x,y direction for moving feature or vertex&lt;br /&gt;
     bbox   Bounding box of selected feature&lt;br /&gt;
     snap   Object points will snap to existing points within snap units.&lt;br /&gt;
            default: 5.0&lt;br /&gt;
    layer   Layer number&lt;br /&gt;
            A single vector map can be connected to multiple database tables. This number determines which table to use.&lt;br /&gt;
            default: 1&lt;br /&gt;
&lt;br /&gt;
= r.digit =&lt;br /&gt;
&lt;br /&gt;
The r.in.poly ascii format is almost the same as the standard vector ascii format. So the new digitizer should be able to output for both, and then we have a replacement for r.digit too!&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3434</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3434"/>
		<updated>2006-12-22T21:35:28Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Examples of actions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=v.digit=&lt;br /&gt;
GRASS digitizing tool should be&lt;br /&gt;
* written in '''wxPython''' Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* creating new vector file, eventualy overwrite existing ones '''create'''&lt;br /&gt;
* adding new features (points, lines, polylines, centroids) '''add'''&lt;br /&gt;
* removenig old features (with database record) '''delete'''&lt;br /&gt;
* moving whole feature '''move'''&lt;br /&gt;
* moving specified vertex '''vertex'''&lt;br /&gt;
* adding new vertext to line/boundary '''break'''&lt;br /&gt;
* spliting line/boundary completely '''split'''&lt;br /&gt;
* merging two lines/boundaries together '''merge'''&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox '''bbox'''&lt;br /&gt;
* catlist '''cats'''&lt;br /&gt;
* single coordinates '''coords'''&lt;br /&gt;
&lt;br /&gt;
==Examples of actions==&lt;br /&gt;
* Create new vector file&lt;br /&gt;
 v.edit tool=create map=vectfile&lt;br /&gt;
creates new vector map, eventualy will read data from standard inputs in default format (standard/point)&lt;br /&gt;
 v.edit tool=create map=vectfile input=file.txt&lt;br /&gt;
creates new vector map and reads data from file file.txt in default format&lt;br /&gt;
&lt;br /&gt;
* Add new feature to existing vector&lt;br /&gt;
 v.edit tool=add map=vectfile&lt;br /&gt;
Read data from standard inputs in standard format&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Remove feature from vector file&lt;br /&gt;
 v.edit tool=delete map=vectfile cat=34,24&lt;br /&gt;
Remove features with category 34 and 24 from file vectfile&lt;br /&gt;
 v.edit tool=delete map=vectfile coords=344556.23,23445.2345 &lt;br /&gt;
Remove feature located on coordinates 344556.23,23445.2345&lt;br /&gt;
 v.edit tool=delete map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
Remove features defined by bounding box 344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
&lt;br /&gt;
* Move feature&lt;br /&gt;
 v.edit tool=move map=vectifle coords=344556.23,23445.2345 move=100000,-100000&lt;br /&gt;
Move feature located on coordinates 344556.23,23445.2345 to coordinates 644556.23,43445.2345&lt;br /&gt;
 v.edit tool=move map=vectifle cat=45 move=1000,-1000&lt;br /&gt;
Move all points of feature of category 45 to coordinates about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
 v.edit tool=move map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34 to=1000,-1000&lt;br /&gt;
Move all points of features defined by bounding box 344556.23,234455.2345,567566.34,456455.34 about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
&lt;br /&gt;
* Moving vertext&lt;br /&gt;
 v.edit tool=vertex map=vectifile coords=344556.23,23445.2345 move=1000,-1000&lt;br /&gt;
Move vertex on coordinates 344556.23,23445.2345 to 545556.23,22445.2345&lt;br /&gt;
&lt;br /&gt;
* Breaking line&lt;br /&gt;
 v.edit tool=break map=vectifile coords=344556.23,23445.2345&lt;br /&gt;
Break line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=break map=vectifile cat=45 coords=345433.3,34567.32&lt;br /&gt;
Break line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Spliting line&lt;br /&gt;
 v.edit tool=split map=vectifile coords=344556.23,23445.2345&lt;br /&gt;
Split line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=split map=vectifile cat=45 coords=345433.3,34567.32&lt;br /&gt;
Split line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Mergin two lines&lt;br /&gt;
 v.edit tool=merge map=vectfile coords=606853.875,4921332,603216.75,4922763 &lt;br /&gt;
Merge first line defined by coordinates 606853.875,4921332 with second line, defined by coordinates 603216.75,4922763. Define nearest distance between line first and last points and move first (last) point of second line to first line -- First line will remain untached.&lt;br /&gt;
 v.edit tool=merge map=vectfile bbox=344556.23,23445.2345&lt;br /&gt;
Merge two lines defined by bounding box&lt;br /&gt;
 v.edit tool=merge map=vectfile cat=43,45&lt;br /&gt;
Merge two lines defined by category&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
 v.edit --help&lt;br /&gt;
 &lt;br /&gt;
 Description:&lt;br /&gt;
  Edits a vector map; allows adding, deleting and modifying objects in a vector map.&lt;br /&gt;
 &lt;br /&gt;
 Keywords:&lt;br /&gt;
  vector, editing&lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
  v.edit [-tdc] map=name tool=string [input=file] [cats=range] &lt;br /&gt;
     [coords=x,y[,x,y,...]] [move=x,y] [at=x,y] [bbox=x,y,x,y] &lt;br /&gt;
     [--verbose] [--quiet]&lt;br /&gt;
 &lt;br /&gt;
 Flags:&lt;br /&gt;
   -t   Do not build topology.&lt;br /&gt;
   -d   No database updates.&lt;br /&gt;
   -c   Do not close boundaries&lt;br /&gt;
  --v   Verbose module output&lt;br /&gt;
  --q   Quiet module output&lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
      map   Name of input vector map&lt;br /&gt;
     tool   The edit action to take.&lt;br /&gt;
            options: create,add,delete,move,movevertex,break,split&lt;br /&gt;
            create: creates new vector file&lt;br /&gt;
            add: add new features to existing vector file&lt;br /&gt;
            delete: delete feature from existing vector file&lt;br /&gt;
            move: move whole feature&lt;br /&gt;
            vertex: move just one vertex of the feature&lt;br /&gt;
            merge:  merge two vector lines together&lt;br /&gt;
            break: add new vertex to feature&lt;br /&gt;
            split: split feature&lt;br /&gt;
    input   ASCII file to be converted to binary vector file, if not given reads from standard input&lt;br /&gt;
     cats   Category values&lt;br /&gt;
            Example: 1,3,7-9,13&lt;br /&gt;
   coords   An x,y list of points&lt;br /&gt;
     move   New location of the feature&lt;br /&gt;
       at   Coordinates of breaking or spliting feature&lt;br /&gt;
     bbox   Bounding box in form x1,y1,x2,y2&lt;br /&gt;
&lt;br /&gt;
= r.digit =&lt;br /&gt;
&lt;br /&gt;
The r.in.poly ascii format is almost the same as the standard vector ascii format. So the new digitizer should be able to output for both, and then we have a replacement for r.digit too!&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3373</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3373"/>
		<updated>2006-12-15T16:40:24Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=v.digit=&lt;br /&gt;
GRASS digitizing tool should be&lt;br /&gt;
* written in '''wxPython''' Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* creating new vector file, eventualy overwrite existing ones '''create'''&lt;br /&gt;
* adding new features (points, lines, polylines, centroids) '''add'''&lt;br /&gt;
* removenig old features (with database record) '''delete'''&lt;br /&gt;
* moving whole feature '''move'''&lt;br /&gt;
* moving specified vertex '''vertex'''&lt;br /&gt;
* adding new vertext to line/boundary '''break'''&lt;br /&gt;
* spliting line/boundary completely '''split'''&lt;br /&gt;
* merging two lines/boundaries together '''merge'''&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox '''bbox'''&lt;br /&gt;
* catlist '''cats'''&lt;br /&gt;
* single coordinates '''coords'''&lt;br /&gt;
&lt;br /&gt;
==Examples of actions==&lt;br /&gt;
* Create new vector file&lt;br /&gt;
 v.edit tool=create map=vectfile&lt;br /&gt;
creates new vector map, eventualy will read data from standard inputs in default format (standard/point)&lt;br /&gt;
 v.edit tool=create map=vectfile input=file.txt&lt;br /&gt;
creates new vector map and reads data from file file.txt in default format&lt;br /&gt;
&lt;br /&gt;
* Add new feature to existing vector&lt;br /&gt;
 v.edit tool=add map=vectfile format=standard&lt;br /&gt;
Read data from standard inputs in standard format&lt;br /&gt;
 v.edit tool=add map=vectfile input=file.txt format=point&lt;br /&gt;
Reads data from file file.txt in point format&lt;br /&gt;
&lt;br /&gt;
* Remove feature from vector file&lt;br /&gt;
 v.edit tool=delete map=vectfile cat=34,24&lt;br /&gt;
Remove features with category 34 and 24 from file vectfile&lt;br /&gt;
 v.edit tool=delete map=vectfile coords=344556.23,23445.2345 &lt;br /&gt;
Remove feature located on coordinates 344556.23,23445.2345&lt;br /&gt;
 v.edit tool=delete map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
Remove features defined by bounding box 344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
&lt;br /&gt;
* Move feature&lt;br /&gt;
 v.edit tool=move map=vectifle coords=344556.23,23445.2345 move=100000,-100000&lt;br /&gt;
Move feature located on coordinates 344556.23,23445.2345 to coordinates 644556.23,43445.2345&lt;br /&gt;
 v.edit tool=move map=vectifle cat=45 move=1000,-1000&lt;br /&gt;
Move all points of feature of category 45 to coordinates about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
 v.edit tool=move map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34 to=1000,-1000&lt;br /&gt;
Move all points of features defined by bounding box 344556.23,234455.2345,567566.34,456455.34 about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
&lt;br /&gt;
* Moving vertext&lt;br /&gt;
 v.edit tool=vertex map=vectifile coords=344556.23,23445.2345 move=1000,-1000&lt;br /&gt;
Move vertex on coordinates 344556.23,23445.2345 to 545556.23,22445.2345&lt;br /&gt;
&lt;br /&gt;
* Breaking line&lt;br /&gt;
 v.edit tool=break map=vectifile coords=344556.23,23445.2345 at=345433.3,34567.32&lt;br /&gt;
Break line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=break map=vectifile cat=45 at=345433.3,34567.32&lt;br /&gt;
Break line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Spliting line&lt;br /&gt;
 v.edit tool=split map=vectifile coords=344556.23,23445.2345 at=345433.3,34567.32&lt;br /&gt;
Split line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=split map=vectifile cat=45 at=345433.3,34567.32&lt;br /&gt;
Split line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
 v.edit --help&lt;br /&gt;
 &lt;br /&gt;
 Description:&lt;br /&gt;
  Edits a vector map; allows adding, deleting and modifying objects in a vector map.&lt;br /&gt;
 &lt;br /&gt;
 Keywords:&lt;br /&gt;
  vector, editing&lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
  v.edit [-tdc] map=name tool=string [input=file] [cats=range] &lt;br /&gt;
     [coords=x,y[,x,y,...]] [move=x,y] [at=x,y] [bbox=x,y,x,y] &lt;br /&gt;
     [--verbose] [--quiet]&lt;br /&gt;
 &lt;br /&gt;
 Flags:&lt;br /&gt;
   -t   Do not build topology.&lt;br /&gt;
   -d   No database updates.&lt;br /&gt;
   -c   Do not close boundaries&lt;br /&gt;
  --v   Verbose module output&lt;br /&gt;
  --q   Quiet module output&lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
      map   Name of input vector map&lt;br /&gt;
     tool   The edit action to take.&lt;br /&gt;
            options: create,add,delete,move,movevertex,break,split&lt;br /&gt;
            create: creates new vector file&lt;br /&gt;
            add: add new features to existing vector file&lt;br /&gt;
            delete: delete feature from existing vector file&lt;br /&gt;
            move: move whole feature&lt;br /&gt;
            vertex: move just one vertex of the feature&lt;br /&gt;
            merge:  merge two vector lines together&lt;br /&gt;
            break: add new vertex to feature&lt;br /&gt;
            split: split feature&lt;br /&gt;
    input   ASCII file to be converted to binary vector file, if not given reads from standard input&lt;br /&gt;
     cats   Category values&lt;br /&gt;
            Example: 1,3,7-9,13&lt;br /&gt;
   coords   An x,y list of points&lt;br /&gt;
     move   New location of the feature&lt;br /&gt;
       at   Coordinates of breaking or spliting feature&lt;br /&gt;
     bbox   Bounding box in form x1,y1,x2,y2&lt;br /&gt;
&lt;br /&gt;
= r.digit =&lt;br /&gt;
&lt;br /&gt;
The r.in.poly ascii format is almost the same as the standard vector ascii format. So the new digitizer should be able to output for both, and then we have a replacement for r.digit too!&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3372</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3372"/>
		<updated>2006-12-15T16:24:26Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* v.edit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=v.digit=&lt;br /&gt;
GRASS digitizing tool should be&lt;br /&gt;
* written in '''wxPython''' Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* creating new vector file, eventualy overwrite existing ones '''create'''&lt;br /&gt;
* adding new features (points, lines, polylines, centroids) '''add'''&lt;br /&gt;
* removenig old features (with database record) '''delete'''&lt;br /&gt;
* moving whole feature '''move'''&lt;br /&gt;
* moving specified vertex '''vertex'''&lt;br /&gt;
* adding new vertext to line/boundary '''break'''&lt;br /&gt;
* spliting line/boundary completely '''split'''&lt;br /&gt;
* merging two lines/boundaries together '''merge'''&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox '''bbox'''&lt;br /&gt;
* catlist '''cats'''&lt;br /&gt;
* single coordinates '''coords'''&lt;br /&gt;
&lt;br /&gt;
==Examples of actions==&lt;br /&gt;
* Create new vector file&lt;br /&gt;
 v.edit tool=create map=vectfile&lt;br /&gt;
creates new vector map, eventualy will read data from standard inputs in default format (standard/point)&lt;br /&gt;
 v.edit tool=create map=vectfile input=file.txt&lt;br /&gt;
creates new vector map and reads data from file file.txt in default format&lt;br /&gt;
&lt;br /&gt;
* Add new feature to existing vector&lt;br /&gt;
 v.edit tool=add map=vectfile format=standard&lt;br /&gt;
Read data from standard inputs in standard format&lt;br /&gt;
 v.edit tool=add map=vectfile input=file.txt format=point&lt;br /&gt;
Reads data from file file.txt in point format&lt;br /&gt;
&lt;br /&gt;
* Remove feature from vector file&lt;br /&gt;
 v.edit tool=delete map=vectfile cat=34,24&lt;br /&gt;
Remove features with category 34 and 24 from file vectfile&lt;br /&gt;
 v.edit tool=delete map=vectfile coords=344556.23,23445.2345 &lt;br /&gt;
Remove feature located on coordinates 344556.23,23445.2345&lt;br /&gt;
 v.edit tool=delete map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
Remove features defined by bounding box 344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
&lt;br /&gt;
* Move feature&lt;br /&gt;
 v.edit tool=move map=vectifle coords=344556.23,23445.2345 move=100000,-100000&lt;br /&gt;
Move feature located on coordinates 344556.23,23445.2345 to coordinates 644556.23,43445.2345&lt;br /&gt;
 v.edit tool=move map=vectifle cat=45 move=1000,-1000&lt;br /&gt;
Move all points of feature of category 45 to coordinates about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
 v.edit tool=move map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34 to=1000,-1000&lt;br /&gt;
Move all points of features defined by bounding box 344556.23,234455.2345,567566.34,456455.34 about 1000 map units to the west and 1000 map units to the south&lt;br /&gt;
&lt;br /&gt;
* Moving vertext&lt;br /&gt;
 v.edit tool=vertex map=vectifile coords=344556.23,23445.2345 move=1000,-1000&lt;br /&gt;
Move vertex on coordinates 344556.23,23445.2345 to 545556.23,22445.2345&lt;br /&gt;
&lt;br /&gt;
* Breaking line&lt;br /&gt;
 v.edit tool=break map=vectifile coords=344556.23,23445.2345 at=345433.3,34567.32&lt;br /&gt;
Break line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=break map=vectifile cat=45 at=345433.3,34567.32&lt;br /&gt;
Break line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Spliting line&lt;br /&gt;
 v.edit tool=split map=vectifile coords=344556.23,23445.2345 at=345433.3,34567.32&lt;br /&gt;
Split line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=split map=vectifile cat=45 at=345433.3,34567.32&lt;br /&gt;
Split line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
 v.edit --help&lt;br /&gt;
 &lt;br /&gt;
 Description:&lt;br /&gt;
  Edits a vector map; allows adding, deleting and modifying objects in a vector map.&lt;br /&gt;
 &lt;br /&gt;
 Keywords:&lt;br /&gt;
  vector, editing&lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
  v.edit [-tdc] map=name tool=string [input=file] [cats=range] &lt;br /&gt;
     [coords=x,y[,x,y,...]] [to=x,y] [at=x,y] [bbox=x,y,x,y] &lt;br /&gt;
     [--verbose] [--quiet]&lt;br /&gt;
 &lt;br /&gt;
 Flags:&lt;br /&gt;
   -t   Do not build topology.&lt;br /&gt;
   -d   No database updates.&lt;br /&gt;
   -c   Do not close boundaries&lt;br /&gt;
  --v   Verbose module output&lt;br /&gt;
  --q   Quiet module output&lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
      map   Name of input vector map&lt;br /&gt;
     tool   The edit action to take.&lt;br /&gt;
            options: create,add,delete,move,movevertex,break,split&lt;br /&gt;
            create: creates new vector file&lt;br /&gt;
            add: add new features to existing vector file&lt;br /&gt;
            delete: delete feature from existing vector file&lt;br /&gt;
            move: move whole feature&lt;br /&gt;
            vertex: move just one vertex of the feature&lt;br /&gt;
            break: add new vertex to feature&lt;br /&gt;
            split: split feature&lt;br /&gt;
    input   ASCII file to be converted to binary vector file, if not given reads from standard input&lt;br /&gt;
     cats   Category values&lt;br /&gt;
            Example: 1,3,7-9,13&lt;br /&gt;
   coords   An x,y list of points&lt;br /&gt;
       to   New location of the feature&lt;br /&gt;
       at   Coordinates of breaking or spliting feature&lt;br /&gt;
     bbox   Bounding box in form x1,y1,x2,y2&lt;br /&gt;
&lt;br /&gt;
= r.digit =&lt;br /&gt;
&lt;br /&gt;
The r.in.poly ascii format is almost the same as the standard vector ascii format. So the new digitizer should be able to output for both, and then we have a replacement for r.digit too!&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=3361</id>
		<title>AddOns</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=3361"/>
		<updated>2006-12-13T14:30:03Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Vector add-ons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded [http://grass.itc.it/download/index.php here]).&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Copyright and licensing information==&lt;br /&gt;
&lt;br /&gt;
''Please be sure to include copyright and licensing information in the header comments of your code so that others may know how they can use, extend, modify, and redistribute your work.''&lt;br /&gt;
&lt;br /&gt;
e.g. at the top of a shell script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
############################################################################&lt;br /&gt;
#&lt;br /&gt;
# MODULE:       v.in.e00&lt;br /&gt;
#&lt;br /&gt;
# AUTHOR(S):    Markus Neteler, Otto Dassau&lt;br /&gt;
#&lt;br /&gt;
# PURPOSE:      Import E00 data into a GRASS vector map&lt;br /&gt;
#               Imports single and split E00 files (.e00, .e01, .e02 ...)&lt;br /&gt;
#&lt;br /&gt;
# COPYRIGHT:    (c) 2004, 2005 GDF Hannover bR, http://www.gdf-hannover.de&lt;br /&gt;
#&lt;br /&gt;
#               This program is free software under the GNU General Public&lt;br /&gt;
#               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
#               for details.&lt;br /&gt;
#&lt;br /&gt;
#############################################################################&lt;br /&gt;
#&lt;br /&gt;
# REQUIREMENTS:&lt;br /&gt;
#      -  avcimport: http://avce00.maptools.org&lt;br /&gt;
&lt;br /&gt;
[script follows]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shell script coding standards==&lt;br /&gt;
&lt;br /&gt;
Please have a look at our [http://grass.itc.it/grass63/source/SUBMITTING_SCRIPTS Shell script coding standards] before submitting here.&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous Add-ons==&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/utm_which_zone.sh utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] to be installed. A shell-only version is [http://dcalvelo.free.fr/grass/utm_which_zone_sh.sh available] which only requires awk.&amp;lt;BR&amp;gt;'''Authors''': Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Perl scripts for converting data forth and back between Excel files and PostgreSQL: [http://dcalvelo.free.fr/grass/pg2xls.pl pg2xls.pl] reads data from PostgreSQL and produces an excel workbook; [http://dcalvelo.free.fr/grass/xls2sql.pl xls2sql.pl] reads excel files and outputs SQL statements to be fed into an RDBMS. Both scripts need modules from [http://www.cpan.org CPAN], especially [http://search.cpan.org/dist/Spreadsheet-ParseExcel/  Spreadsheet::ParseExcel] for xls2sql.pl and [http://search.cpan.org/~tmtm/Spreadsheet-WriteExcel-FromDB Spreadsheet::WriteExcel::FromDB] and its dependencies for pg2sql.pl. Check the source headers for more info.&amp;lt;BR&amp;gt;'''Authors:''' Daniel Calvelo (xls2sql.pl), Markus Neteler (pg2xls.pl)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://dream.lrrl.arch.tu-muenchen.de/~wqual/perl/dbf2sql.tgz dbf2sql] is a Perl script for translating dbf-tables into a sql-command. dbf-tables are read using dbfdump-command from dbd-xbase-perl module ([http://search.cpan.org/~janpaz/DBD-XBase-0.241/ dbd::xbase] and [http://search.cpan.org/~jv/Getopt-Long-2.35/lib/Getopt/Long.pm getopt::long] have to be installed from CPAN first). There are problems, if the last column of the table contains characters. Suggestions for improvements welcome! &amp;lt;BR&amp;gt;'''Author:'''Wolfgang Qual&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.igc.usp.br/pessoais/guano/downloads/azimuth2.c azimuth2.c] is a small C program to calculate the azimuth and length of vector lines exported by GRASS-GIS as ASCII files (like this: v.out.ascii input=vector output=ascii format=standard). It is useful for create rose diagrams of lineament maps. Improvements on the original code after suggestions by Örs Téglásy, Hungary.&amp;lt;BR&amp;gt;'''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
==GRASS 5.x==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons for GRASS 5===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.itc.it/download/addons.php&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons for GRASS 5===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.itc.it/download/addons.php&lt;br /&gt;
&lt;br /&gt;
* [http://www.valledemexico.ambitiouslemon.com/gwmodelling.html r.gmtg] The groundwater modelling tool for grass. A module to use MODFLOW within GRASS. &amp;lt;BR&amp;gt;'''Author''': Jaime Carrera&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GRASS 6.x==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://geni.ath.cx/grass/v.out.gmt v.out.gmt] is a shell script that exports a polygon vector file into GMT xy file. psbasemap code was copied from Hamish's r.out.gmt. &amp;lt;BR&amp;gt;'''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.pois.org/florian/downloads/grass/v.strahler.tgz v.strahler] is a module that calculates the Strahler Order for all lines of a given dendritic network. &amp;lt;BR&amp;gt;'''Author:''' Florian Kindl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://svg.cc/grass/index.html v.out.svg] is a module that exports SVG notation along with optional attribute data directly from GRASS 6.x vector layers. Now part of grass63-cvs. &amp;lt;BR&amp;gt;'''Author:''' Klaus Förster&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/ v.trees3d] is a module for making 3D trees from input vector point file. &amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.lda v.lda] is a shell script for calculating Ian Johnson's (U. Sidney) Local Density Analysis values to measure clustering of point data at different neighborhood radii. There is an option to create a simple line graph of the results. There have been reports of problems creating the line graph on Cygwin installations of GRASS.&amp;lt;BR&amp;gt;'''Author:''' Michael Barton &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.append v.append] is a shell script combining two vector files AND their associated attribute tables. The vector files should be of the same type and, for best results, should have identically formatted attribute tables.&amp;lt;BR&amp;gt;'''Author:''' Michael Barton &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.shockfamily.net/cedric/grass/v.group v.group] generates a new vector map with the same geometry as an existing map. The new map has categories and a table based on grouping by the values in certain columns of the existing map's table. The values in these columns are preserved in the table for the new map. It's like a v.reclass that preserves data.&amp;lt;BR&amp;gt;'''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/v.out.ascii.db v.out.ascii.db] is a shell script for exporting vector point data coordinates and selected attribute columns to either a file or to the console.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs v.rasterbounds] is a shell script for creating polygon-vector file of rasterfile boundaries. The best version of GRASS is 6.1+. If you are using GRASS &amp;lt; 6.1, you  have to be in the same mapset as your raster maps are from.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.clubwebcanada.ca/twiens/v.sample.buffer.tgz v.sample.buffer] is a shell script that samples rasters in buffers of a specified size around features in a specified vector file. Sampling results are added as attributes to the vector file. This script was designed for sampling vegetation indices and DEM derived attributes for bird point counts. Sampling results can be one or more basic statistics such as mean, range, max, etc.&amp;lt;BR&amp;gt;'''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.gfosservices.it/materiale_didattico/moduli/grass_kriging.tar.gz v.variogram] is a script that create an omnidirectional experimental semi-variogram. This scripts require R-statistics software installed on your machine. Now the script is updated to run on spgrass6 &amp;gt;= 0.3 and sp &amp;gt;= 0.9 [http://grass.itc.it/pipermail/statsgrass/2006-October/000455.html reply]. &amp;lt;BR&amp;gt;'''Author:''' Ivan Marchesini, Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.gfosservices.it/materiale_didattico/moduli/grass_kriging.tar.gz v.surf.krige] is a script that do a surface interpolation from vector point data by Kriging method. The interpolated value of a cell is determined by using an omnidirectional variogram model fitted starting from model parameter given by user shown from the experimental semi variogram produced by v.variogram. The script can perform also the Leave-One-out cross validation to test the variogram model &amp;quot;fitted by eye&amp;quot; and an automatic fitted variogram model. The cross validation helps the user to choose the best variogram model to interpolate own data. &amp;lt;BR&amp;gt;'''Author:''' Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://ngeo.de/grassstuff/v.lmeasure v.lmeasure] and [http://ngeo.de/grassstuff/v.revlmeasure v.revlmeasure] are two perl scripts that place equidistant vector points along a given arbitrary vector line starting from the beginning or end of the vector line, respectively. Resulting  vector points are labeled with the distance from origin.&amp;lt;BR&amp;gt;'''Author:''' Mats Schuh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/v.swathwidth v.swathwidth] creates a vector map representing the sea bottom coverage of a multibeam (swath) sonar survey.&amp;lt;BR&amp;gt;'''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://kufaya.googlepages.com/v.flip.tar.gz v.flip] flips the direction of selected vector lines.&amp;lt;BR&amp;gt;'''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://phygeo7.geo.uni-augsburg.de/gis2/scripts/v.digatt v.digatt] (shell script) Interactively assign numeric table attributes to series of vector objects. It is meant to be effective by avoiding to type in the attribute value for all single objects again and again. The user is prompted for typing in an attribute value which is assigned to all objects selected by mouseclick afterwards. Next the display is redrawn after updating the table column. Zooming allows to change the region before the old value can be reused or a new one can be typed in (or copied by mouse from another object) in order to assign it to the next series of objects etc. It is tested not very extensively yet. Therefore better work with a copy of your map and consider using v.digit or d.what.vect -e alternatively. [http://phygeo7.geo.uni-augsburg.de/gis2/scripts/v.digatt.png screenshot]. &amp;lt;BR&amp;gt;'''Author:''' Andreas Philipp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://k153-85.fsv.cvut.cz/cgi-bin/viewcvs.cgi/grass6/vector/v.in.gama/ v.in.gama] converts [http://www.gnu.org/software/gama/ GNU GaMa] XML output file to a GRASS vector map layer.&amp;lt;br /&amp;gt;'''Author:''' Martin Landa&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://www.igc.usp.br/pessoais/guano/downloads/r.roughness r.roughness] is a shell script to calculate the surface roughness of a DEM, using r.surf.area and v.surf.rst. (for GRASS versions 6.1 and above)&lt;br /&gt;
* [http://www.igc.usp.br/pessoais/guano/downloads/r.roughness60 r.roughness60] - for GRASS versions 6.0.X&amp;lt;BR&amp;gt;'''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/r.gauss.tgz r.gauss] is Gaussian and Laplacian of Gaussian filter for GRASS. It is written in C language.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/r.mlv.tgz r.mlv] is Mean of least variance filter for GRASS. It is an edge-preserving (or even edge-enhacing) filter, which should serve for removing additive noise from images. It is written in C language.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/r.bilateral.tgz r.bilateral] Bilateral filter is an edge-preserving filter, which combines domain and range filtering. It is written in C language.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/zc.pl Zero crossing] is a simple Perl script, finds the ,,zero crossings`` from the Laplacian of Gaussian filter (see above). It is really &amp;lt;em&amp;gt;very&amp;lt;/em&amp;gt; simple, the edges don't need to be really on that pixel, where they are detected, no interpolation is performed.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
     '''Usage:'''&lt;br /&gt;
     zc.pl -i input -o output |r.mapcalc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/local_max.pl Local maxima] is a Perl script for &amp;lt;code&amp;gt;r.mapcalc&amp;lt;/code&amp;gt;. It detects local maxima of the image.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
     '''Usage:'''&lt;br /&gt;
     local_maxima.pl -i input -o output -s matrix_size|r.mapcalc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/r.out.gmt r.out.gmt] is a GRASS script for exporting a GRASS raster map into a [[http://www.soest.hawaii.edu/gmt/ GMT]] grid file. It also creates a GMT color table from the data and can generate some GMT commands for plotting a postscript file. (code is experimental, but functional)&amp;lt;BR&amp;gt;see  also http://169.237.35.250/~dylan/grass_user_group/#GMT_and_GRASS-overview&amp;lt;BR&amp;gt;'''Authors:''' Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://geni.ath.cx/grass/r.out.gmt yet another r.out.gmt] is a modified version of Hamish's r.out.gmt.  Added options for title, xlabel, ylabel, comment, and map width.  Removed any settings that can be changed by gmtset for more flexibility.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman, Huidae Cho, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/r.pack r.pack] and [http://bambi.otago.ac.nz/hamish/grass/r.unpack r.unpack] are two GRASS scripts for transfering raster maps to another computer as a single file.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/dominant_dir.m dominant_dir.m] and [http://bambi.otago.ac.nz/hamish/grass/calc_terraflow_dir.m calc_terraflow_dir.m] are two Matlab scripts for determining the dominant flow direction from a r.terraflow MFD map and converting into a GRASS aspect map for use with d.rast.arrow, etc.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www-pool.math.tu-berlin.de/~soeren/grass/modules/ r.in.onearth] for download and import satellite images direct from the NASA onearth WMS server into GRASS.&amp;lt;BR&amp;gt;'''Author:''' Soeren Gebbert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.shockfamily.net/cedric/grass/r.tileset r.tileset] generates a list of tiles and sizes in a source projection that cover the region in the current database with appropriate resolution. The size of individual tiles can be constrained. Only tiles intersecting the current region are returned. These tilings are appropriate for requesting data from another projection to meet the specifications of the current region. For example, it could be used to generate tile requests to a latitude / longitude WMS server like this &amp;lt;code&amp;gt;r.tileset -w sourceproj=&amp;quot;+init=epsg:4326&amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;BR&amp;gt;'''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/r.csr.tar.bz2 r.csr] integrates several Grass programs to produce colored, shaded-relief rasters in one step. Accepts single or multiple elevation/bathymetry maps as input; optionally will fill data holidays with 3x3 median filter, multiple times, if required; can apply color maps from a) input raster, b) another raster in MAPSET, or c) from a rules file; otherwise, rainbow colorbar is applied. Output colored, shaded-relief rasters can optionally be exported to tiff format and archived using tar with gzip/bzip2 compression if appropriate flags are given. Shading parameters can be modified, though useful defaults are given. &amp;lt;BR&amp;gt;'''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/r.fragment.tar.bz2 r.fragment] fragments a raster into a user-defined set of smaller tiles according to an input number of rows and columns. Optionally, a null value threshold can be set to filter out candidate tiles that would have a large percentage of null cells. &amp;lt;BR&amp;gt;'''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/r.eucdist r.eucdist] creates a raster map estimating the euclidean distance from known cells.&amp;lt;BR&amp;gt;'''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/r.smoothpatch r.smoothpatch] creates a composite of two rasters using a distance-weighted average across the transition to smooth the edges.&amp;lt;BR&amp;gt;'''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.faunalia.it/download/r_li/ r.li] is a more flexible and faster replacement of the old r.le. '''''Moved into 6.3-CVS'''''.&amp;lt;BR&amp;gt;'''Authors:''' Claudio Porta, Davide Spano, Serena Pallecchi, [http://www.faunalia.it Faunalia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://kufaya.googlepages.com/r.surf.nnbathy.tar.gz r.surf.nnbathy] interpolates surface from raster input using [http://www.marine.csiro.au/~sakov/ nn] natural neighbor intepolation library.&amp;lt;BR&amp;gt;'''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.usler.tar.gz r.usler] creates USLE R factor (Rainfall erosivity) from annual precipitations. It has 4 methods, Morgan, Roose, Foster and El-Swaify to choose from.&amp;lt;BR&amp;gt;'''Authors:''' Natalia Medvedeva and Yann Chemin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.uslek.tar.gz r.uslek] creates USLE K factor (soil erodibility) from sand,clay,silt fractions and organic matter fraction. Based on USDA 1951 (p209) quoted in FAO World Soil CD, and from some generic [soil class+OM] to K conversion table.Update: Fixed input file swap and silty-clay class recognition.&amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.albedo.tar.gz r.albedo] creates Albedo. Albedo is the shortwave surface reflectance in the range of 0.3-3 micro-meters. This module takes Modis, Aster, Landsat or AVHRR individual surface reflectance bands  to calculate Albedo. This module is a precursor to r.sun or any Energy-Balance related processing.&amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/ r.eb.*] are a set of 13 GRASS modules that together perform the main functions of the SEBAL model (Bastiaanssen, 1995). Those functions include (but are not limited to) Soil heat flux, sensible heat flux, net radiation, evaporative fraction at satellite overpass, diurnal actual evapotranspiration, momentum roughness length, etc. These modules are also part of any Energy-Balance related processing.&amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.evapo.potrad.tar.gz r.evapo.potrad] create diurnal Potential evapotranspiration assuming all net radiation becomes ET, according to SEBAL model (Bastiaanssen, 1995). This module also has a flag for diurnal net radiation as required by SEBAL in [http://www.star.ait.ac.th/~yann/sebal/r.eb.eta.tar.gz r.eb.eta]. &amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.vi.tar.gz r.vi] creates a given Vegetation index from a list of 13 of them, most of them only requiring Red and NIR. Updated to accept all types of input data. &amp;lt;BR&amp;gt;'''Authors:''' Baburao Kamble and Yann Chemin&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.vi.mpi.tar.gz r.vi.mpi] creates a given Vegetation index from a list of 13 of them, most of them only requiring Red and NIR. This is a MPI version for educational purposes (no speed up here!). &amp;lt;BR&amp;gt;'''Author:''' Shamim Akhter&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.dn2ref.l7.tar.gz r.dn2ref.l7] [http://www.star.ait.ac.th/~yann/sebal/r.dn2ref.ast.tar.gz r.dn2ref.ast] create top of atmosphere reflectance for Landsat 7ETM+ and ASTER. These modules also have a flag for radiance output. Updated r.dn2ref.l7 to read .met calibration file. [http://www.star.ait.ac.th/~yann/sebal/r.dn2full.l7.tar.gz r.dn2full.l7] is an attempt to get all bands of Landsat7 calibrated and corrected to either reflectance or temperature, reads only the met file.&lt;br /&gt;
[http://www.star.ait.ac.th/~yann/sebal/r.dn2potrad.l7.tar.gz r.dn2potrad.l7] is an attempt to get ET potential from DN of Landsat 7 (Careful! No Atmospheric correction!). &amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.biomass.tar.gz r.biomass] create biomass growth map from fPAR, lightuse efficiency, water availability (or evap.fraction), Lat, doy and tsw . &amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
* [http://www.pois.org/florian/downloads/grass/r.boxcount.tgz r.boxcount] and [http://www.pois.org/florian/downloads/grass/r.boxcount.sh.tgz r.boxcount.sh] calculate the fractal dimension for a given map. These are versions for grass6 of [http://www.ucl.ac.uk/~tcrnmar/ Mark Lake's modules] for grass43.&amp;lt;br&amp;gt; '''Authors:''' Mark Lake, grass6 port: Florian Kindl&lt;br /&gt;
&lt;br /&gt;
===General add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://www.gdf-hannover.de/dassau/g.laptop/g.laptop.sh g.laptop.sh] is an interactive shell script to extract raster and vector data from current Location into a new one. Data can be copied or extracted in current or original resolution and region extend. This script was written to extract smaller parts of a GRASS location to be able to present them on a laptop without the necessity to transfer huge data. Maps do not have to be in the same mapset.&amp;lt;BR&amp;gt;'''Author:''' Otto Dassau &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''''Readline completion''''' for GRASS commands under the bash shell: [http://www.sorokine.info/grass-complete/ grass-complete] won't clutter the environment but needs to be installed; [http://dcalvelo.free.fr/grass/grass_rlcompleter.sh grass_rlcompleter.sh] needs almost no installation but will pollute the environment. Grass-Complete currently requires Bash version 2.05 for proper install.&amp;lt;BR&amp;gt;'''Author:''' Alexandre Sorokine (grass-complete), Daniel Calvelo (grass_rlcompleter.sh)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Imagery add-ons ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/6s/i.atcorr.1.3.1b.tar.gz i.atcorr] Atmospheric Correction using Christo Zietsman's implementation of 6s code in C/C++. The Old Page was rescued by Christo recently and copied [http://www.star.ait.ac.th/~yann/6s/ here]. Compiled in CVS but not tested. Update: The source code is somehow functional in GRASS CVS, it is processing and creates output map, but does not accept non-default input. Not Tested/Validated! &amp;lt;BR&amp;gt;'''Author:''' Christo Zietsman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/gdal/i.warp61 i.warp61] is a shell script that will use gdalwarp to rectify a raw input image using thin plate splines. The map should be imported into GRASS with r.in.gdal and GCPs set with i.points. Input is the raw image (GeoTIFF, JPEG, etc). Output is a GeoTIFF in the imagery group's target location's map projection. Requires a recent (early 2006) version of GRASS 6.1, or newer.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Display add-ons ===&lt;br /&gt;
&lt;br /&gt;
==== [[IconSymbols]] ====&lt;br /&gt;
* [[IconSymbols|Symbols]] which can be used with ''d.vect, d.graph'', and ''ps.map''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modules ====&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.frame.quarter d.frame.quarter] is a shell script that will split the display into four quadrants using ''d.frame''. Individual frames are named ''uno, dos, tres, cuatro'', and ''full_screen''.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/d.hyperlink.tar.bz2 d.hyperlink] is an interactive shell script that allows the viewing of hyperlinked images from a vector's attribute table in an external image viewer. Queries can be made via SQL statements or interactive mouse-clicking. The attribute table must be pre-populated with a column containing the image to link the vector to; the user also specifies the image folder in the current MAPSET where the images are located. The script currently supports gimp, Eye of Gnome, gthumb, gpdf, and Inkscape image viewers. &amp;lt;BR&amp;gt;'''Author: '''Eric Patton&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.ornl.gov/sci/gist/software/grass/ pd-GRASS]: Parallel Display for GRASS GIS&amp;lt;BR&amp;gt;'''Author:''' Alex Sorokine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.region.box d.region.box] is a shell script that quickly displays a box around the current region.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.stations d.stations] is a shell script that quickly displays vector points (or sites for GRASS 5.4 and below).&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.varea d.varea] is a shell script that quickly displays vector areas.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
===Postscript add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/ps.atlas ps.atlas] is a shell script that makes more maps on current region according to input *.psmap file. General map can be stored as vector file. The resulting *.eps maps can be automatically converted to *.pdf files.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ps.map scripts|ps.map samples/templates]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[AreaFillPatterns]] ====&lt;br /&gt;
* Hatches for ps.map's vareas&lt;br /&gt;
&lt;br /&gt;
===GRASS and UMN Mapserver===&lt;br /&gt;
&lt;br /&gt;
* [http://www.mail-archive.com/mapserver-users@lists.umn.edu/msg00086.html See interesting posting]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3291</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3291"/>
		<updated>2006-12-11T14:58:10Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: movevertex -&amp;gt; vertex&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=v.digit=&lt;br /&gt;
GRASS digitizing tool should be&lt;br /&gt;
* written in '''wxPython''' Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* creating new vector file, eventualy overwrite existing ones '''create'''&lt;br /&gt;
* adding new features (points, lines, polylines, centroids) '''add'''&lt;br /&gt;
* removenig old features (with database record) '''delete'''&lt;br /&gt;
* moving whole feature '''move'''&lt;br /&gt;
* moving specified vertex '''vertex'''&lt;br /&gt;
* adding new vertext to line/boundary '''break'''&lt;br /&gt;
* spliting line/boundary completely '''split'''&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox '''bbox'''&lt;br /&gt;
* catlist '''cats'''&lt;br /&gt;
* single coordinates '''coords'''&lt;br /&gt;
&lt;br /&gt;
==Examples of actions==&lt;br /&gt;
* Create new vector file&lt;br /&gt;
 v.edit tool=create map=vectfile&lt;br /&gt;
creates new vector map, eventualy will read data from standard inputs in default format (standard/point)&lt;br /&gt;
 v.edit tool=create map=vectfile input=file.txt&lt;br /&gt;
creates new vector map and reads data from file file.txt in default format&lt;br /&gt;
&lt;br /&gt;
* Add new feature to existing vector&lt;br /&gt;
 v.edit tool=add map=vectfile format=standard&lt;br /&gt;
Read data from standard inputs in standard format&lt;br /&gt;
 v.edit tool=add map=vectfile input=file.txt format=point&lt;br /&gt;
Reads data from file file.txt in point format&lt;br /&gt;
&lt;br /&gt;
* Remove feature from vector file&lt;br /&gt;
 v.edit tool=delete map=vectfile cat=34,24&lt;br /&gt;
Remove features with category 34 and 24 from file vectfile&lt;br /&gt;
 v.edit tool=delete map=vectfile coords=344556.23,23445.2345 &lt;br /&gt;
Remove feature located on coordinates 344556.23,23445.2345&lt;br /&gt;
 v.edit tool=delete map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
Remove features defined by bounding box 344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
&lt;br /&gt;
* Move feature&lt;br /&gt;
 v.edit tool=move map=vectifle coords=344556.23,23445.2345 to=544556.23,53445.2345&lt;br /&gt;
Move feature located on coordinates 344556.23,23445.2345 to coordinates 544556.23,53445.2345&lt;br /&gt;
 v.edit tool=move map=vectifle cat=45 to=544556.23,53445.2345&lt;br /&gt;
Move feature of category 45 to coordinates 544556.23,53445.2345&lt;br /&gt;
 v.edit tool=move map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34 to=544556.23,53445.2345&lt;br /&gt;
Move all features in defined by bounding box 344556.23,234455.2345,567566.34,456455.34 to 544556.23,53445.2345 (down-left corner of the bbox)&lt;br /&gt;
&lt;br /&gt;
* Moving vertext&lt;br /&gt;
 v.edit tool=vertex map=vectifile coords=344556.23,23445.2345 to=544556.23,53445.2345&lt;br /&gt;
Move vertex on coordinates 344556.23,23445.2345 to 544556.23,53445.2345&lt;br /&gt;
&lt;br /&gt;
* Breaking line&lt;br /&gt;
 v.edit tool=break map=vectifile coords=344556.23,23445.2345 at=345433.3,34567.32&lt;br /&gt;
Break line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=break map=vectifile cat=45 at=345433.3,34567.32&lt;br /&gt;
Break line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Spliting line&lt;br /&gt;
 v.edit tool=split map=vectifile coords=344556.23,23445.2345 at=345433.3,34567.32&lt;br /&gt;
Split line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=split map=vectifile cat=45 at=345433.3,34567.32&lt;br /&gt;
Split line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
 v.edit --help&lt;br /&gt;
 &lt;br /&gt;
 Description:&lt;br /&gt;
  Edits a vector map; allows adding, deleting and modifying objects in a vector map.&lt;br /&gt;
 &lt;br /&gt;
 Keywords:&lt;br /&gt;
  vector, editing&lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
  v.edit [-tdc] map=name tool=string [input=file] [cats=range] &lt;br /&gt;
     [coords=x,y[,x,y,...]] [to=x,y] [at=x,y] [bbox=x,y,x,y] &lt;br /&gt;
     [--verbose] [--quiet]&lt;br /&gt;
 &lt;br /&gt;
 Flags:&lt;br /&gt;
   -t   Do not build topology.&lt;br /&gt;
   -d   No database updates.&lt;br /&gt;
   -c   Do not close boundaries&lt;br /&gt;
  --v   Verbose module output&lt;br /&gt;
  --q   Quiet module output&lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
      map   Name of input vector map&lt;br /&gt;
     tool   The edit action to take.&lt;br /&gt;
            options: create,add,delete,move,movevertex,break,split&lt;br /&gt;
            create: creates new vector file&lt;br /&gt;
            add: add new features to existing vector file&lt;br /&gt;
            delete: delete feature from existing vector file&lt;br /&gt;
            move: move whole feature&lt;br /&gt;
            vertex: move just one vertex of the feature&lt;br /&gt;
            break: add new vertex to feature&lt;br /&gt;
            split: split feature&lt;br /&gt;
    input   ASCII file to be converted to binary vector file, if not given reads from standard input&lt;br /&gt;
     cats   Category values&lt;br /&gt;
            Example: 1,3,7-9,13&lt;br /&gt;
   coords   An x,y list of points&lt;br /&gt;
       to   New location of the feature&lt;br /&gt;
       at   Coordinates of breaking or spliting feature&lt;br /&gt;
     bbox   Bounding box in form x1,y1,x2,y2&lt;br /&gt;
&lt;br /&gt;
= r.digit =&lt;br /&gt;
&lt;br /&gt;
The r.in.poly ascii format is almost the same as the standard vector ascii format. So the new digitizer should be able to output for both, and then we have a replacement for r.digit too!&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3236</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3236"/>
		<updated>2006-12-08T08:06:48Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* v.edit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=v.digit=&lt;br /&gt;
GRASS digitizing tool should be&lt;br /&gt;
* written in Python Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* creating new vector file, eventualy overwrite existing ones '''create'''&lt;br /&gt;
* adding new features (points, lines, polylines, centroids) '''add'''&lt;br /&gt;
* removenig old features (with database record) '''delete'''&lt;br /&gt;
* moving whole feature '''move'''&lt;br /&gt;
* moving specified vertex '''movevertex'''&lt;br /&gt;
* adding new vertext to line/boundary '''break'''&lt;br /&gt;
* spliting line/boundary completely '''split'''&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox '''bbox'''&lt;br /&gt;
* catlist '''cats'''&lt;br /&gt;
* single coordinates '''coords'''&lt;br /&gt;
&lt;br /&gt;
==Examples of actions==&lt;br /&gt;
* Create new vector file&lt;br /&gt;
 v.edit tool=create map=vectfile&lt;br /&gt;
creates new vector map, eventualy will read data from standard inputs in default format (standard/point)&lt;br /&gt;
 v.edit tool=create map=vectfile input=file.txt&lt;br /&gt;
creates new vector map and reads data from file file.txt in default format&lt;br /&gt;
&lt;br /&gt;
* Add new feature to existing vector&lt;br /&gt;
 v.edit tool=add map=vectfile format=standard&lt;br /&gt;
Read data from standard inputs in standard format&lt;br /&gt;
 v.edit tool=add map=vectfile input=file.txt format=point&lt;br /&gt;
Reads data from file file.txt in point format&lt;br /&gt;
&lt;br /&gt;
* Remove feature from vector file&lt;br /&gt;
 v.edit tool=delete map=vectfile cat=34,24&lt;br /&gt;
Remove features with category 34 and 24 from file vectfile&lt;br /&gt;
 v.edit tool=delete map=vectfile coords=344556.23,23445.2345 &lt;br /&gt;
Remove feature located on coordinates 344556.23,23445.2345&lt;br /&gt;
 v.edit tool=delete map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
Remove features defined by bounding box 344556.23,234455.2345,567566.34,456455.34&lt;br /&gt;
&lt;br /&gt;
* Move feature&lt;br /&gt;
 v.edit tool=move map=vectifle coords=344556.23,23445.2345 to=544556.23,53445.2345&lt;br /&gt;
Move feature located on coordinates 344556.23,23445.2345 to coordinates 544556.23,53445.2345&lt;br /&gt;
 v.edit tool=move map=vectifle cat=45 to=544556.23,53445.2345&lt;br /&gt;
Move feature of category 45 to coordinates 544556.23,53445.2345&lt;br /&gt;
 v.edit tool=move map=vectifle bbox=344556.23,234455.2345,567566.34,456455.34 to=544556.23,53445.2345&lt;br /&gt;
Move all features in defined by bounding box 344556.23,234455.2345,567566.34,456455.34 to 544556.23,53445.2345 (down-left corner of the bbox)&lt;br /&gt;
&lt;br /&gt;
* Moving vertext&lt;br /&gt;
 v.edit tool=movevertex map=vectifile coords=344556.23,23445.2345 to=544556.23,53445.2345&lt;br /&gt;
Move vertex on coordinates 344556.23,23445.2345 to 544556.23,53445.2345&lt;br /&gt;
&lt;br /&gt;
* Breaking line&lt;br /&gt;
 v.edit tool=break map=vectifile coords=344556.23,23445.2345 at=345433.3,34567.32&lt;br /&gt;
Break line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=break map=vectifile cat=45 at=345433.3,34567.32&lt;br /&gt;
Break line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
* Spliting line&lt;br /&gt;
 v.edit tool=split map=vectifile coords=344556.23,23445.2345 at=345433.3,34567.32&lt;br /&gt;
Split line on coordinates 344556.23,23445.2345 at coords 345433.3,34567.32&lt;br /&gt;
 v.edit tool=split map=vectifile cat=45 at=345433.3,34567.32&lt;br /&gt;
Split line of category 45 at coords 345433.3,34567.32&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
 v.edit --help&lt;br /&gt;
 &lt;br /&gt;
 Description:&lt;br /&gt;
  Edits a vector map; allows adding, deleting and modifying objects in a vector map.&lt;br /&gt;
 &lt;br /&gt;
 Keywords:&lt;br /&gt;
  vector, editing&lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
  v.edit [-tdc] map=name tool=string [input=file] [cats=range] &lt;br /&gt;
     [coords=x,y[,x,y,...]] [to=x,y] [at=x,y] [bbox=x,y,x,y] &lt;br /&gt;
     [--verbose] [--quiet]&lt;br /&gt;
 &lt;br /&gt;
 Flags:&lt;br /&gt;
   -t   Do not build topology.&lt;br /&gt;
   -d   No database updates.&lt;br /&gt;
   -c   Do not close boundaries&lt;br /&gt;
  --v   Verbose module output&lt;br /&gt;
  --q   Quiet module output&lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
      map   Name of input vector map&lt;br /&gt;
     tool   The edit action to take.&lt;br /&gt;
            options: create,add,delete,move,movevertex,break,split&lt;br /&gt;
            create: creates new vector file&lt;br /&gt;
            add: add new features to existing vector file&lt;br /&gt;
            delete: delete feature from existing vector file&lt;br /&gt;
            move: move whole feature&lt;br /&gt;
            movevertex: move just one vertex of the feature&lt;br /&gt;
            break: add new vertex to feature&lt;br /&gt;
            split: split feature&lt;br /&gt;
    input   ASCII file to be converted to binary vector file, if not given reads from standard input&lt;br /&gt;
     cats   Category values&lt;br /&gt;
            Example: 1,3,7-9,13&lt;br /&gt;
   coords   An x,y list of points&lt;br /&gt;
       to   New location of the feature&lt;br /&gt;
       at   Coordinates of breaking or spliting feature&lt;br /&gt;
     bbox   Bounding box in form x1,y1,x2,y2&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3233</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3233"/>
		<updated>2006-12-07T15:44:41Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=v.digit=&lt;br /&gt;
GRASS digitizing tool should be&lt;br /&gt;
* written in Python Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* adding new features (points, lines, polylines, centroids)&lt;br /&gt;
* removenig old features (with database record)&lt;br /&gt;
* moving whole feature &lt;br /&gt;
* moving specified vertex&lt;br /&gt;
* spliting new vertex between two existing ones&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox&lt;br /&gt;
* catlist&lt;br /&gt;
* single coordinates&lt;br /&gt;
&lt;br /&gt;
==v.edit input types==&lt;br /&gt;
v.edit should accept inputs in following formats (based on v.in.acii):&lt;br /&gt;
=== For adding new features===&lt;br /&gt;
* point&lt;br /&gt;
e.g. &lt;br /&gt;
 x|y|z&lt;br /&gt;
 10|20|30&lt;br /&gt;
* standard&lt;br /&gt;
e.g.&lt;br /&gt;
 L 1&lt;br /&gt;
 10 20 30&lt;br /&gt;
 20 30 40&lt;br /&gt;
 1&lt;br /&gt;
===For removing existing features===&lt;br /&gt;
* list of categories with specified separator&lt;br /&gt;
* coordinate pair&lt;br /&gt;
 x,y&lt;br /&gt;
* bounding box&lt;br /&gt;
 x1,y1,x2,y2&lt;br /&gt;
&lt;br /&gt;
===For moving existing feature===&lt;br /&gt;
Feature identification like for removing existing featuer&lt;br /&gt;
* Dx,Dy&lt;br /&gt;
* new x,y of first node&lt;br /&gt;
&lt;br /&gt;
===For breaking line===&lt;br /&gt;
* x,y&lt;br /&gt;
&lt;br /&gt;
===For moving vertex===&lt;br /&gt;
* identification by x,y&lt;br /&gt;
* moving like moving of whole feature&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3232</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3232"/>
		<updated>2006-12-07T15:38:36Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* v.edit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GRASS digitizing tool should be&lt;br /&gt;
* written in Python Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* adding new features (points, lines, polylines, centroids)&lt;br /&gt;
* removenig old features (with database record)&lt;br /&gt;
* moving whole feature &lt;br /&gt;
* moving specified vertex&lt;br /&gt;
* spliting new vertex between two existing ones&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox&lt;br /&gt;
* catlist&lt;br /&gt;
* single coordinates&lt;br /&gt;
&lt;br /&gt;
==v.edit input types==&lt;br /&gt;
v.edit should accept inputs in following formats (based on v.in.acii):&lt;br /&gt;
=== For adding new features===&lt;br /&gt;
* point&lt;br /&gt;
e.g. &lt;br /&gt;
 x|y|z&lt;br /&gt;
 10|20|30&lt;br /&gt;
* standard&lt;br /&gt;
e.g.&lt;br /&gt;
 L 1&lt;br /&gt;
 10 20 30&lt;br /&gt;
 20 30 40&lt;br /&gt;
 1&lt;br /&gt;
===For removing existing features===&lt;br /&gt;
* list of categories with specified separator&lt;br /&gt;
* coordinate pair&lt;br /&gt;
 x,y&lt;br /&gt;
* bounding box&lt;br /&gt;
 x1,y1,x2,y2&lt;br /&gt;
&lt;br /&gt;
===For moving existing feature===&lt;br /&gt;
Feature identification like for removing existing featuer&lt;br /&gt;
* Dx,Dy&lt;br /&gt;
* new x,y of first node&lt;br /&gt;
&lt;br /&gt;
===For breaking line===&lt;br /&gt;
* x,y&lt;br /&gt;
&lt;br /&gt;
===For moving vertex===&lt;br /&gt;
* identification by x,y&lt;br /&gt;
* moving like moving of whole feature&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3225</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3225"/>
		<updated>2006-12-07T14:08:54Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GRASS digitizing tool should be&lt;br /&gt;
* written in Python Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* adding new features (points, lines, polylines, centroids)&lt;br /&gt;
* removenig old features (with database record)&lt;br /&gt;
* moving whole feature &lt;br /&gt;
* moving specified vertex&lt;br /&gt;
* spliting new vertex between two existing ones&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox&lt;br /&gt;
* catlist&lt;br /&gt;
* single coordinates&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3224</id>
		<title>GRASS Digitizing tool</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Digitizing_tool&amp;diff=3224"/>
		<updated>2006-12-07T14:08:03Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=GRASS digitizing tool= should be&lt;br /&gt;
* written in Python Programming language or Tcl&lt;br /&gt;
* it should extend functionality of map display just like new Georeferencing tool does:&lt;br /&gt;
** (like ArcGIS does) only new &amp;quot;Digitizing Toolbox&amp;quot; would appear, after digitizing tool is started&lt;br /&gt;
** Vector file editing will happen in current map display, with all it's functions for zooming, quering and so on&lt;br /&gt;
* There should be graphical tool for database management, at least for adding (?and removing?) columns, adding new features and editing existing ones.&lt;br /&gt;
&lt;br /&gt;
While digitising, edited vector file would be drawed to map display. ''Only currently edited or selected features would be stored in &lt;br /&gt;
memory.'' This should spead up digitising and redrawing process significantly.&lt;br /&gt;
&lt;br /&gt;
=v.edit=&lt;br /&gt;
GRASS graphical digitising tool should be graphical front-end for new v.edit module. v.edit should be CML tool for &lt;br /&gt;
* adding new features (points, lines, polylines, centroids)&lt;br /&gt;
* removenig old features (with database record)&lt;br /&gt;
* moving whole feature &lt;br /&gt;
* moving specified vertex&lt;br /&gt;
* spliting new vertex between two existing ones&lt;br /&gt;
* IMHO funtionality for adding 'z' values to vector contour lines should be back too&lt;br /&gt;
&lt;br /&gt;
v.edit should accept feature selection by:&lt;br /&gt;
* bbox&lt;br /&gt;
* catlist&lt;br /&gt;
* single coordinates&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Development&amp;diff=3222</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Development&amp;diff=3222"/>
		<updated>2006-12-07T13:53:03Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Sandbox (ideas section) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The GRASS GIS project is developed under the terms of the [http://www.gnu.org/copyleft/gpl.html GNU General Public License] (the GPL) [http://grass.ibiblio.org/devel/index.php in the open] by [http://grass.ibiblio.org/community/index.php volunteers] the [http://mapserver.gdf-hannover.de/grassusers/map.phtml world over].&lt;br /&gt;
&lt;br /&gt;
=== Resources for Developers ===&lt;br /&gt;
&lt;br /&gt;
==== Communication ====&lt;br /&gt;
* You can contact GRASS folks in [[How to participate in IRC communication|IRC]]&lt;br /&gt;
* [http://grass.itc.it/mailman/listinfo/grass-dev Developers mailing list]&lt;br /&gt;
&lt;br /&gt;
==== Documentation ====&lt;br /&gt;
* [http://grass.itc.it/devel/index.php#prog GRASS Programming Manual]&lt;br /&gt;
* [[GRASS Programming Howto]] (partially outdated)&lt;br /&gt;
* [[Updating GRASS Documentation]] How-To&lt;br /&gt;
* [[GIS Concepts]] and how they are implemented in GRASS&lt;br /&gt;
* [[GRASS Debugging]]&lt;br /&gt;
* [[Large File Support]] (LFS) implementation&lt;br /&gt;
* '''Code submission standards''':&lt;br /&gt;
** [http://grass.itc.it/grass61/source/SUBMITTING C language coding standards]&lt;br /&gt;
** [http://grass.itc.it/grass61/source/SUBMITTING_SCRIPTS Shell script coding standards]&lt;br /&gt;
** [http://grass.itc.it/grass61/source/SUBMITTING_TCLTK Tcl/Tk script coding standards]&lt;br /&gt;
&lt;br /&gt;
==== Code ====&lt;br /&gt;
&lt;br /&gt;
* [http://intevation.de/rt/webrt?q_queue=grass GRASS bug and wish tracking system]&lt;br /&gt;
&lt;br /&gt;
* [http://wald.intevation.org/projects/grass/ ''New'' GRASS bug and wish tracking system] (experimental)&lt;br /&gt;
&lt;br /&gt;
* [[GRASS AddOns]] - User code contributions (custom scripts, modules, icons, etc)&lt;br /&gt;
&lt;br /&gt;
* [[Compile and Install]] hints&lt;br /&gt;
&lt;br /&gt;
===== CVS =====&lt;br /&gt;
* Main [http://grass.ibiblio.org/devel/cvs.php CVS server] help page&lt;br /&gt;
* Live [http://freegis.org/cgi-bin/viewcvs.cgi/ GRASS WebCVS interface] browsable source code repository&lt;br /&gt;
* Hints for [[Working with CVS]]&lt;br /&gt;
&lt;br /&gt;
===== QA =====&lt;br /&gt;
* [[Testing GRASS software]] - a test protocol based on the Spearfish sample data set&lt;br /&gt;
&lt;br /&gt;
* Internal GRASS test suite (scripts collection in &amp;quot;testsuite/&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
* External [http://www-pool.math.tu-berlin.de/~soeren/grass/GRASS_TestSuite/html_grass-6.2/ GRASS test suite] (TU Berlin)&lt;br /&gt;
&lt;br /&gt;
* External [http://web.soccerlab.polymtl.ca/grass-evolution/grass-browsers/grass-index-en.html GRASS Quality Assessment and monitoring system] (École Polytechnique de Montréal and ITC-irst)&lt;br /&gt;
&lt;br /&gt;
* CVS-commit reports into [irc://irc.freenode.net/grass IRC '#grass' channel] via [http://cia.navi.cx/stats/project/GRASS CIA - The open source informant]&lt;br /&gt;
&lt;br /&gt;
* [http://www.google.com/codesearch?q=package%3Agrass Google Code Search]&lt;br /&gt;
&lt;br /&gt;
* what was that other one??&lt;br /&gt;
&lt;br /&gt;
* [http://koders.com Koders Code Search]&lt;br /&gt;
&lt;br /&gt;
==== Source code quality control ====&lt;br /&gt;
* [http://cia.navi.cx/stats/project/GRASS CIA commit bot] for realtime monitoring along with [http://grass.itc.it/mailman/listinfo/grass-commit grass-commit] mailing list (showing the diff's)&lt;br /&gt;
* [http://grass.itc.it/mailman/listinfo/grass-qa Code Quality Control System]&lt;br /&gt;
* [http://web.soccerlab.polymtl.ca/grass-evolution/grass-browsers/grass-index-en.html GRASS Software Evolution code analysis]&lt;br /&gt;
* [http://www-pool.math.tu-berlin.de/~soeren/grass/GRASS_TestSuite/ GRASS Test Suite] a small test suite for GRASS, the current html output is available [http://www-pool.math.tu-berlin.de/~soeren/grass/GRASS_TestSuite/html/ here] and with memory check [http://www-pool.math.tu-berlin.de/~soeren/grass/GRASS_TestSuite/html_memcheck/ here]&lt;br /&gt;
&lt;br /&gt;
=== GRASS and QGIS ===&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.qgis.org/qgiswiki/BuildingWindowsBinaryOnLinux Building QGIS/GRASS Windows Binary On Linux] (using MinGW)&lt;br /&gt;
* [http://wiki.qgis.org/qgiswiki/Adding_New_Tools_to_the_GRASS_Toolbox Adding New Tools to the GRASS Toolbox]&lt;br /&gt;
* [http://wiki.qgis.org/qgiswiki/GrassCookbook QGIS GRASS Cookbook] - Recipes for common tasks&lt;br /&gt;
&lt;br /&gt;
=== GRASS License ===&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Gpl WikiPedia entry discussing the GPL]&lt;br /&gt;
&lt;br /&gt;
=== Plans ===&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
&lt;br /&gt;
* [[Release Roadmap]] (old [http://grass.ibiblio.org/devel/roadmap.php Development Roadmap] which needs freshening) - please help with testing release candidates&lt;br /&gt;
* [[GRASS Module Porting List]] (check here if you don't find a certain command in GRASS 6.0)&lt;br /&gt;
* [[GRASS ToDo List]] (overview of GRASS related community projects, see also [[Release Roadmap]])&lt;br /&gt;
* [http://freegis.org/cgi-bin/viewcvs.cgi/grass6/doc/vector/TODO?rev=HEAD&amp;amp;content-type=text/vnd.viewcvs-markup GRASS 6-CVS Vector TODO]&lt;br /&gt;
&lt;br /&gt;
===== Sandbox (ideas section) =====&lt;br /&gt;
&lt;br /&gt;
* [[GRASS 7 ideas collection]]&lt;br /&gt;
* [[Image processing]]&lt;br /&gt;
* [http://wgbis.ces.iisc.ernet.in/grdss/index.php GRDSS (Geographic Resources Decision Support System)]&lt;br /&gt;
* Ideas on a [[replacement raster format]] specification&lt;br /&gt;
* add support (at least storage!) of vertical datum and units&lt;br /&gt;
* Discussion on [[Development Specs]] for standardized messages&lt;br /&gt;
* Discussion on add-on manager repository setup: [[Development GEM|GEM repository]]&lt;br /&gt;
* Discussion of support for [[time series in GRASS]], e.g. for linking to data and models&lt;br /&gt;
* [[GRASS GUI]] development&lt;br /&gt;
* [[GRASS Location Wizard]] development&lt;br /&gt;
* [[GRASS Digitizing tool]] ideas&lt;br /&gt;
&lt;br /&gt;
=== Linking GRASS to external languages ===&lt;br /&gt;
* [http://mpa.itc.it/markus/grass63progman/swig/ GRASS-SWIG interface]: generic interface to various languages&lt;br /&gt;
* [[GRASS and PHP]]&lt;br /&gt;
* [[GRASS and Python]]&lt;br /&gt;
* [[GRASS and Shell]]: Starting and running GRASS from a script&lt;br /&gt;
* [http://grass.itc.it/mailman/listinfo/grass-abm Integration of GRASS with JAVA based agent based modeling (ABM)]&lt;br /&gt;
* [http://www.hydrologis.com/html/jgrass/jgrass_en.html JAVAGRASS]&lt;br /&gt;
&lt;br /&gt;
=== Related projects ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.hydrologis.com/html/jgrass/jgrass_en.html JGrass] - Java based frontend for GRASS incuding extended hydrological modelling tools&lt;br /&gt;
* [http://www.kergis.com/en/index.html KerGIS] - BSD-like licensed fork of GRASS 4.1.5&lt;br /&gt;
&lt;br /&gt;
* [http://proj.maptools.org PROJ.4] - Cartographic Projections Library&lt;br /&gt;
* [http://www.gdal.org GDAL] - Geospatial Data Abstraction Library&lt;br /&gt;
* [http://www.qgis.org QGIS]- Quantum GIS&lt;br /&gt;
&lt;br /&gt;
* [http://www.osgeo.org OSGeo]- The Open Source Geospatial Foundation&lt;br /&gt;
* [http://freegis.org FreeGIS.org] - Interactive information base for the GIS Free Software world&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=2948</id>
		<title>GRASS and Python</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=2948"/>
		<updated>2006-11-03T08:10:23Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Python-GRASS add-ons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Python SIGs==&lt;br /&gt;
Python Special Interest Groups are focused collaborative efforts to develop, improve, or maintain specific Python resources. Each SIG has a charter, a coordinator, a mailing list, and a directory on the Python website. SIG membership is informal, defined by subscription to the SIG's mailing list. Anyone can join a SIG, and participate in the development discussions via the SIG's mailing list. Below is the list of currently active Python SIGs, with links to their resources. &lt;br /&gt;
&lt;br /&gt;
See more at http://www.python.org/community/sigs/&lt;br /&gt;
&lt;br /&gt;
==Writing python scripts in GRASS==&lt;br /&gt;
Python is between shell and C programms. For C part - it can handle GRASS C functions via swig. For shell part, it can be processed with g.parser, so automatic input check and help generation (apart from translation) can be processed.&lt;br /&gt;
&lt;br /&gt;
Example of python script, which is processed by g.parser:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 &lt;br /&gt;
 import sys&lt;br /&gt;
 import os&lt;br /&gt;
 &lt;br /&gt;
 #%Module&lt;br /&gt;
 #%  description: g.parser test script&lt;br /&gt;
 #%  keywords: keyword1, keyword2&lt;br /&gt;
 #%End&lt;br /&gt;
 #%flag&lt;br /&gt;
 #%  key: f&lt;br /&gt;
 #%  description: a flag&lt;br /&gt;
 #%END&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: raster&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% gisprompt: old,cell,raster&lt;br /&gt;
 #% description: raster input map&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: vector&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% gisprompt: old,vector,vector&lt;br /&gt;
 #% description: vector input map&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: option1&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% description: an option&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 &lt;br /&gt;
 def main(): &lt;br /&gt;
 &lt;br /&gt;
     #add your code here&lt;br /&gt;
     print &amp;quot;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
     if ( os.getenv(&amp;quot;GIS_FLAG_f&amp;quot;) != &amp;quot;0&amp;quot; ):&lt;br /&gt;
         print &amp;quot;Flag -f set&amp;quot;&lt;br /&gt;
     else:&lt;br /&gt;
         print &amp;quot;Flag -f not set&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_option1: %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_option1&amp;quot;)&lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_raster:  %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_raster&amp;quot;)&lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_vect:    %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_vect&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
     #end of your code&lt;br /&gt;
     return &lt;br /&gt;
 &lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
     args = &amp;quot;&amp;quot;&lt;br /&gt;
     for arg in sys.argv:&lt;br /&gt;
         args += arg+&amp;quot; &amp;quot;&lt;br /&gt;
     try:&lt;br /&gt;
         if ( sys.argv[1] != &amp;quot;@ARGS_PARSED@&amp;quot; ):&lt;br /&gt;
             os.system(&amp;quot;g.parser %s &amp;quot; % (args))&lt;br /&gt;
     except IndexError:&lt;br /&gt;
         os.system(&amp;quot;g.parser %s&amp;quot; % (args)) &lt;br /&gt;
 &lt;br /&gt;
     if sys.argv[1] == &amp;quot;@ARGS_PARSED@&amp;quot;:&lt;br /&gt;
         main();&lt;br /&gt;
==Python extensions for GRASS GIS==&lt;br /&gt;
=== wxPython GUI development for GRASS ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
===Python-SWIG-GRASS interface===&lt;br /&gt;
There is a prototype GRASS-SWIG interface available (thanks to Sajith VK), find it in GRASS 6-CVS: '''swig/python/'''. Draft documentation is [http://mpa.itc.it/markus/grass63progman/swig/ here]. It now wraps both raster and vector data C functions plus the general GIS (G_*()) functions.&lt;br /&gt;
&lt;br /&gt;
Background: [http://www.swig.org SWIG] (Simplified Wrapper and Interface Generator) is: &lt;br /&gt;
&lt;br /&gt;
* A compiler that turns ANSI C/C++ declarations into scripting language interfaces.&lt;br /&gt;
* Completely automated (produces a fully working Python extension module). &lt;br /&gt;
* Language neutral. SWIG can also target Tcl, Perl, Guile, MATLAB, etc... &lt;br /&gt;
* Attempts to eliminate the tedium of writing extension modules.&lt;br /&gt;
&lt;br /&gt;
Sample script for raster access (use within GRASS, Spearfish session):&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 import python_grass6 as g6lib&lt;br /&gt;
 &lt;br /&gt;
 input = 'roads'&lt;br /&gt;
 mapset = 'PERMANENT'&lt;br /&gt;
 &lt;br /&gt;
 # initialize&lt;br /&gt;
 g6lib.G_gisinit('')&lt;br /&gt;
 infd = g6lib.G_open_cell_old(input, mapset)&lt;br /&gt;
 cell = g6lib.G_allocate_cell_buf()&lt;br /&gt;
 &lt;br /&gt;
 rown=0&lt;br /&gt;
 # the API still needs error checking to be added&lt;br /&gt;
 while 1:&lt;br /&gt;
     myrow = g6lib.G_get_map_row_nomask(infd, cell, rown)&lt;br /&gt;
     print rown,myrow[0:10]&lt;br /&gt;
     rown = rown+1&lt;br /&gt;
     if rown==476:break&lt;br /&gt;
 &lt;br /&gt;
 g6lib.G_close_cell(infd)&lt;br /&gt;
 g6lib.G_free(cell)&lt;br /&gt;
&lt;br /&gt;
Sample script for vector access (use within GRASS, Spearfish session):&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 import python_grass6 as g6lib&lt;br /&gt;
 &lt;br /&gt;
 input = 'soils'&lt;br /&gt;
 mapset = 'PERMANENT'&lt;br /&gt;
 &lt;br /&gt;
 # initialize&lt;br /&gt;
 g6lib.G_gisinit('')&lt;br /&gt;
 &lt;br /&gt;
 # define map structure&lt;br /&gt;
 map = g6lib.Map_info()&lt;br /&gt;
 &lt;br /&gt;
 # define open level (level 2: topology)&lt;br /&gt;
 g6lib.Vect_set_open_level (2)&lt;br /&gt;
 &lt;br /&gt;
 # open existing map&lt;br /&gt;
 g6lib.Vect_open_old(map, input, mapset)&lt;br /&gt;
 &lt;br /&gt;
 # query&lt;br /&gt;
 print 'Vect is 3D: ', g6lib.Vect_is_3d (map)&lt;br /&gt;
 print 'Vect DB links: ', g6lib.Vect_get_num_dblinks(map)&lt;br /&gt;
 print 'Map Scale:  1:', g6lib.Vect_get_scale(map)&lt;br /&gt;
 &lt;br /&gt;
 # close map&lt;br /&gt;
 g6lib.Vect_close(map)&lt;br /&gt;
&lt;br /&gt;
'''TODO''': Implement modules support in a Python class using --interface-description and a Python-XML parser. This should be a generic class with module's name as parameter, returning back an object which describes the module (description, flags, parameters, status of not/required). See [http://freegis.org/cgi-bin/viewcvs.cgi/grass6/gui/wxpython/ GRASS 6 wxPython interface] for inspiration. Important is to auto-generate the GRASS-Python class at compile time with a Python script.&lt;br /&gt;
&lt;br /&gt;
=== Python-GRASS add-ons ===&lt;br /&gt;
&lt;br /&gt;
Stand-alone addons:&lt;br /&gt;
&lt;br /&gt;
# Jáchym Čepický's G-ps.map, a GUI to typeset printable maps with ps.map (http://les-ejk.cz/?cat=gpsmap)&lt;br /&gt;
# Jáchym Čepický's v.pydigit, a GUI to v.edit (http://les-ejk.cz/?cat=vpydigit)&lt;br /&gt;
# Jáchym Čepický's PyWPS, GRASS-Web Processing Service (http://pywps.wald.intevation.org)&lt;br /&gt;
&lt;br /&gt;
=== Using Grass gui.tcl in python ===&lt;br /&gt;
&lt;br /&gt;
Here is some example code to use the grass automatically generated guis in python code. This could (should) all be bundled up and abstracted away so that the implementation can be replaced later.&lt;br /&gt;
&lt;br /&gt;
 import Tkinter&lt;br /&gt;
 import os&lt;br /&gt;
 &lt;br /&gt;
 # Startup (once):&lt;br /&gt;
 &lt;br /&gt;
 tk = Tkinter.Tk()&lt;br /&gt;
 tk.eval (&amp;quot;wm withdraw .&amp;quot;)&lt;br /&gt;
 tk.eval (&amp;quot;source $env(GISBASE)/etc/gui.tcl&amp;quot;)&lt;br /&gt;
 # Here you could do various things to change what the gui does&lt;br /&gt;
 # See gui.tcl and README.GUI&lt;br /&gt;
 &lt;br /&gt;
 # Make a gui (per dialog)&lt;br /&gt;
 # This sets up a window for the command.&lt;br /&gt;
 # This can be different to integrate with tkinter:&lt;br /&gt;
 tk.eval ('set path &amp;quot;.dialog$dlg&amp;quot;')&lt;br /&gt;
 tk.eval ('toplevel .dialog$dlg')&lt;br /&gt;
 # Load the code for this command:&lt;br /&gt;
 fd = os.popen (&amp;quot;d.vect --tcltk&amp;quot;)&lt;br /&gt;
 gui = fd.read()&lt;br /&gt;
 # Run it&lt;br /&gt;
 tk.eval(gui)&lt;br /&gt;
 dlg = tk.eval('set dlg') # This is used later to get and set &lt;br /&gt;
 &lt;br /&gt;
 # Get the current command in the gui we just made:&lt;br /&gt;
 currentcommand = tk.eval (&amp;quot;dialog_get_command &amp;quot; + dlg)&lt;br /&gt;
 &lt;br /&gt;
 # Set the command in the dialog we just made:&lt;br /&gt;
 tk.eval (&amp;quot;dialog_set_command &amp;quot; + dlg + &amp;quot; {d.vect map=roads}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* GRASS-SWIG interface http://mpa.itc.it/markus/grass63progman/swig/&lt;br /&gt;
* SWIG http://www.swig.org/&lt;br /&gt;
* SIP (C/C++ bindings generator) http://directory.fsf.org/all/Python-SIP.html&lt;br /&gt;
* Python and GDAL/OGR:&lt;br /&gt;
** [http://mapserver.gis.umn.edu/community/conferences/MUM3/workshop/python Open Source Python GIS Hacks Mum'03]&lt;br /&gt;
** http://hobu.biz/software/OSGIS_Hacks - Python OSGIS Hacks '05&lt;br /&gt;
** http://zcologia.com/news/categorylist_html?cat_id=8&lt;br /&gt;
** http://www.perrygeo.net/wordpress/?p=4&lt;br /&gt;
* Python bindings to PROJ:&lt;br /&gt;
** http://www.cdc.noaa.gov/people/jeffrey.s.whitaker/python/pyproj.html&lt;br /&gt;
* Other external projects&lt;br /&gt;
** Scientific Python: http://www.scipy.org/&lt;br /&gt;
&lt;br /&gt;
=== Presentations ===&lt;br /&gt;
&lt;br /&gt;
From FOSS4G2006:&lt;br /&gt;
* [http://www.foss4g2006.org/materialDisplay.py?contribId=136&amp;amp;amp;sessionId=48&amp;amp;amp;materialId=slides&amp;amp;amp;confId=1 A Python sweeps in the GRASS] - A. Frigeri 2006&lt;br /&gt;
* [http://www.foss4g2006.org/materialDisplay.py?contribId=67&amp;amp;amp;sessionId=48&amp;amp;amp;materialId=slides&amp;amp;amp;confId=1 GRASS goes web: PyWPS] - J. Cepicky 2006&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Linking to other languages]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.2_Feature_Plan&amp;diff=2938</id>
		<title>GRASS 6.2 Feature Plan</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.2_Feature_Plan&amp;diff=2938"/>
		<updated>2006-10-31T19:40:19Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* WONTFIX? Later? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS 6.2.x feature plan ==&lt;br /&gt;
&lt;br /&gt;
There is the release branch for 6.2.x, see details at [http://grass.itc.it/devel/cvstags.php CVS: tags and branches]. A release branch is considered as &amp;quot;frozen&amp;quot;, only bugfixes can be done.&lt;br /&gt;
&lt;br /&gt;
=== GRASS 6.2.0 ===&lt;br /&gt;
&lt;br /&gt;
In general 6.2 does not deviate too much from the 6.1.0 to avoid a major delay. &lt;br /&gt;
&lt;br /&gt;
==== Beta0 ====&lt;br /&gt;
&lt;br /&gt;
(never released)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt; &amp;lt;!-- done --&amp;gt;&lt;br /&gt;
* unlimited number of raster map (r.patch, r.series etc) (Glynn)&lt;br /&gt;
* several MinGW fixes for native MS-Windows support (Glynn)&lt;br /&gt;
* several fixes for MS-Windows/Cygwin support (Huidae)&lt;br /&gt;
* no hardcoded ARCH for Python-SWIG (Markus)&lt;br /&gt;
* vector/lidar: added missing includes (Markus)&lt;br /&gt;
* g.region b&amp;gt;t bug fixed (Martin)&lt;br /&gt;
* GRASS_PAGER (Glynn)&lt;br /&gt;
* r.mapcalc rand() (Glynn)&lt;br /&gt;
* tcl i18n install fix (Markus)&lt;br /&gt;
* LOCALE awk fixes to some scripts (Markus)&lt;br /&gt;
* SUN compilation fixes (Glynn)&lt;br /&gt;
* user docs fixes (Maciek)&lt;br /&gt;
* r.bilinear: Read/write maps as DCELL; Remove +0.5 from result (Glynn)&lt;br /&gt;
* NVIZ height update to avoid scene jump (Bob)&lt;br /&gt;
* Add the new v.lidar.* tools (needed for FOSS4G2006) (Roberto A. + Markus)&lt;br /&gt;
* lidar and simwe compilation issues on MacOSX fixed (William)&lt;br /&gt;
* Makefile cleanup for extra libraries (lidar, simwe, lrs) (Glynn + Markus)&lt;br /&gt;
* keywords backported from 6.3-CVS (Markus)&lt;br /&gt;
* renamed dbmi driver html files to include 'grass-' to avoid package conflicts (Markus)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beta 1 ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* v.digit: split icons into two rows for 800x600 screens (backport) (Michael, Hamish)&lt;br /&gt;
* gis.m fixes (Michael)&lt;br /&gt;
* v.proj: treat z as ellipsoidal height (Paul)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beta 2 ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* g.proj compile fix (Markus)&lt;br /&gt;
* NVIZ: Tk8.5 fix (Markus)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beta 3 ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* docs improvements (Eric, Trevor, Moritz, Michael)&lt;br /&gt;
* v.digit cosmetics (Hamish)&lt;br /&gt;
* v.outlier: parameter fix (markus)&lt;br /&gt;
* NVIZ: off-screen rendering fix for broken openGL drivers&lt;br /&gt;
* grass-xterm-wrapper: simplified for broken gnome-terminal (markus)&lt;br /&gt;
* rename v.bspline to v.surf.bspline for consistency&lt;br /&gt;
* further gis.m fixes (moritz, michael, cho)&lt;br /&gt;
* d.barscale segfault fix (hamish)&lt;br /&gt;
* d.grid segfault fix (hamish)&lt;br /&gt;
* d.graph segfault fix (hamish)&lt;br /&gt;
* r.buffer, r.what: docs fixes (hamish)&lt;br /&gt;
* added v.centroids and v.dissolve scripts (hamish)&lt;br /&gt;
* Czech translation updated (Martin)&lt;br /&gt;
* nviz: off-screen fixes (Glynn)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC1 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* d.vect.thematic -s fixes (michael)&lt;br /&gt;
* Vietnamese translation (Bui Huu Manh)&lt;br /&gt;
* reverted Pbuffer changes in NVIZ (Brad)&lt;br /&gt;
* projection codes updated to EPSG 6.11 (Markus)&lt;br /&gt;
* g.region zoom= off by one error (Glynn)&lt;br /&gt;
* fix hardcoded Helvetica tcl fonts to a single file setting (in $GISBASE/etc/gtcltk/options.tcl) (michael)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC2 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* r.random on MacOSX (Glynn)&lt;br /&gt;
* document improvements (various)&lt;br /&gt;
* v.in.ogr: check valid output filename (Brad)&lt;br /&gt;
* various r.le fixes (Hamish)&lt;br /&gt;
* MinGW fix (Radim)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC3 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* r.le.setup fixes (Glynn, Hamish)&lt;br /&gt;
* default color map range (bug #5212) (Glynn)&lt;br /&gt;
* fix v.digit/toolbox.tcl for tcl8.3 (Hamish)&lt;br /&gt;
* update to EPSG 6.11.1 (Markus)&lt;br /&gt;
* close GRASS after creating new location from file (Markus)&lt;br /&gt;
* Fine tune intro text when launching GRASS in text mode (Paul)&lt;br /&gt;
* gis.m zooming in mapcanvas.tcl (Michael)&lt;br /&gt;
* missing Polish EPSG codes&lt;br /&gt;
* initial Arabic translation (Alaa Masoud)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Final ====&lt;br /&gt;
(not released yet)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* continued Polish translation (Artur Niescior)&lt;br /&gt;
* r.watershed slowliness due to long color tables (C. Ehlschlaeger)&lt;br /&gt;
* gis.m broken for Tcl/Tk 8.3 (Hamish, Michael)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* test gis.m&lt;br /&gt;
* write impressive [http://grass.itc.it/announces/announce_grass620.html press release] (best done in [http://grass.itc.it/devel/cvs.php#web CVS Web])&lt;br /&gt;
** also prepare the short [http://grass.itc.it/announces/abstract_grass620.txt abstract] version.&lt;br /&gt;
** HB: I did some work on this the other day, of course it can always be better!&lt;br /&gt;
&lt;br /&gt;
===== WONTFIX? Later? =====&lt;br /&gt;
&lt;br /&gt;
* r.out.gdal region sensitive (port r.reclass flag from CVS HEAD?)&lt;br /&gt;
&lt;br /&gt;
* NVIZ volume problem (test with slovakia3d dataset) - sometimes it works&lt;br /&gt;
** HB: fails from command line; ok if the volume added within NVIZ ([http://intevation.de/rt/webrt?serial_num=4725 bug #4725])&lt;br /&gt;
&lt;br /&gt;
* r.distance null distance&lt;br /&gt;
** This is in 6.3 and will be tested&lt;br /&gt;
&lt;br /&gt;
==== Releases ====&lt;br /&gt;
* [http://grass.itc.it/grass62/source/snapshot/ Source code Snapshot]&lt;br /&gt;
* 6.2.0beta1 released 28 August 2006&lt;br /&gt;
* 6.2.0beta2 released 30 August 2006&lt;br /&gt;
* 6.2.0beta3 released 18 September 2006&lt;br /&gt;
* 6.2.0RC1 released 26 September 2006&lt;br /&gt;
* 6.2.0RC2 released 6 October 2006&lt;br /&gt;
* 6.2.0RC3 released 24 October 2006&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Release Roadmap]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.2_Feature_Plan&amp;diff=2847</id>
		<title>GRASS 6.2 Feature Plan</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.2_Feature_Plan&amp;diff=2847"/>
		<updated>2006-10-23T10:45:13Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* RC3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS 6.2.x feature plan ==&lt;br /&gt;
&lt;br /&gt;
There is the release branch for 6.2.x, see details at [http://grass.itc.it/devel/cvstags.php CVS: tags and branches]. A release branch is considered as &amp;quot;frozen&amp;quot;, only bugfixes can be done.&lt;br /&gt;
&lt;br /&gt;
=== GRASS 6.2.0 ===&lt;br /&gt;
&lt;br /&gt;
In general 6.2 does not deviate too much from the 6.1.0 to avoid a major delay. &lt;br /&gt;
&lt;br /&gt;
==== Beta0 ====&lt;br /&gt;
&lt;br /&gt;
(never released)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt; &amp;lt;!-- done --&amp;gt;&lt;br /&gt;
* unlimited number of raster map (r.patch, r.series etc) (Glynn)&lt;br /&gt;
* several MinGW fixes for native MS-Windows support (Glynn)&lt;br /&gt;
* several fixes for MS-Windows/Cygwin support (Huidae)&lt;br /&gt;
* no hardcoded ARCH for Python-SWIG (Markus)&lt;br /&gt;
* vector/lidar: added missing includes (Markus)&lt;br /&gt;
* g.region b&amp;gt;t bug fixed (Martin)&lt;br /&gt;
* GRASS_PAGER (Glynn)&lt;br /&gt;
* r.mapcalc rand() (Glynn)&lt;br /&gt;
* tcl i18n install fix (Markus)&lt;br /&gt;
* LOCALE awk fixes to some scripts (Markus)&lt;br /&gt;
* SUN compilation fixes (Glynn)&lt;br /&gt;
* user docs fixes (Maciek)&lt;br /&gt;
* r.bilinear: Read/write maps as DCELL; Remove +0.5 from result (Glynn)&lt;br /&gt;
* NVIZ height update to avoid scene jump (Bob)&lt;br /&gt;
* Add the new v.lidar.* tools (needed for FOSS4G2006) (Roberto A. + Markus)&lt;br /&gt;
* lidar and simwe compilation issues on MacOSX fixed (William)&lt;br /&gt;
* Makefile cleanup for extra libraries (lidar, simwe, lrs) (Glynn + Markus)&lt;br /&gt;
* keywords backported from 6.3-CVS (Markus)&lt;br /&gt;
* renamed dbmi driver html files to include 'grass-' to avoid package conflicts (Markus)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beta 1 ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* v.digit: split icons into two rows for 800x600 screens (backport) (Michael, Hamish)&lt;br /&gt;
* gis.m fixes (Michael)&lt;br /&gt;
* v.proj: treat z as ellipsoidal height (Paul)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beta 2 ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* g.proj compile fix (Markus)&lt;br /&gt;
* NVIZ: Tk8.5 fix (Markus)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Beta 3 ====&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* docs improvements (Eric, Trevor, Moritz, Michael)&lt;br /&gt;
* v.digit cosmetics (Hamish)&lt;br /&gt;
* v.outlier: parameter fix (markus)&lt;br /&gt;
* NVIZ: off-screen rendering fix for broken openGL drivers&lt;br /&gt;
* grass-xterm-wrapper: simplified for broken gnome-terminal (markus)&lt;br /&gt;
* rename v.bspline to v.surf.bspline for consistency&lt;br /&gt;
* further gis.m fixes (moritz, michael, cho)&lt;br /&gt;
* d.barscale segfault fix (hamish)&lt;br /&gt;
* d.grid segfault fix (hamish)&lt;br /&gt;
* d.graph segfault fix (hamish)&lt;br /&gt;
* r.buffer, r.what: docs fixes (hamish)&lt;br /&gt;
* added v.centroids and v.dissolve scripts (hamish)&lt;br /&gt;
* Czech translation updated (Martin)&lt;br /&gt;
* nviz: off-screen fixes (Glynn)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC1 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* d.vect.thematic -s fixes (michael)&lt;br /&gt;
* Vietnamese translation (Bui Huu Manh)&lt;br /&gt;
* reverted Pbuffer changes in NVIZ (Brad)&lt;br /&gt;
* projection codes updated to EPSG 6.11 (Markus)&lt;br /&gt;
* g.region zoom= off by one error (Glynn)&lt;br /&gt;
* fix hardcoded Helvetica tcl fonts to a single file setting (in $GISBASE/etc/gtcltk/options.tcl) (michael)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC2 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* r.random on MacOSX (Glynn)&lt;br /&gt;
* document improvements (various)&lt;br /&gt;
* v.in.ogr: check valid output filename (Brad)&lt;br /&gt;
* various r.le fixes (Hamish)&lt;br /&gt;
* MinGW fix (Radim)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== RC3 ====&lt;br /&gt;
(not yet released, planned after 18th October 2006)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
* r.le.setup fixes (Glynn, Hamish)&lt;br /&gt;
* default color map range (bug #5212) (Glynn)&lt;br /&gt;
* fix v.digit/toolbox.tcl for tcl8.3 (Hamish)&lt;br /&gt;
* update to EPSG 6.11.1 (Markus)&lt;br /&gt;
* close GRASS after creating new location from file (Markus)&lt;br /&gt;
* Fine tune intro text when launching GRASS in text mode (Paul)&lt;br /&gt;
* gis.m zooming in mapcanvas.tcl (Michael)&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* test gis.m&lt;br /&gt;
* missing Polish EPSG codes&lt;br /&gt;
&lt;br /&gt;
* write impressive [http://grass.itc.it/announces/announce_grass620.html press release] (best done in [http://grass.itc.it/devel/cvs.php#web CVS Web])&lt;br /&gt;
** also prepare the short [http://grass.itc.it/announces/abstract_grass620.txt abstract] version.&lt;br /&gt;
** HB: I did some work on this the other day, of course it can always be better!&lt;br /&gt;
** WONTFIX? Later?&lt;br /&gt;
&lt;br /&gt;
* r.out.gdal region sensitive&lt;br /&gt;
** port r.reclass flag from CVS HEAD?&lt;br /&gt;
&lt;br /&gt;
* NVIZ volume problem (test with slovakia3d dataset) - sometimes it works&lt;br /&gt;
** HB: fails from command line; ok if the volume added within NVIZ ([http://intevation.de/rt/webrt?serial_num=4725 bug #4725])&lt;br /&gt;
&lt;br /&gt;
* r.distance null distance&lt;br /&gt;
** JC: This is in http://article.gmane.org/gmane.comp.gis.grass.devel/15982/match=r+distance, but nobody reported successful test.&lt;br /&gt;
&lt;br /&gt;
==== Final ====&lt;br /&gt;
(not yet released, planned after 18th October 2006)&lt;br /&gt;
&lt;br /&gt;
==== Releases ====&lt;br /&gt;
* [http://grass.itc.it/grass62/source/snapshot/ Source code Snapshot]&lt;br /&gt;
* 6.2.0beta1 released 28 August 2006&lt;br /&gt;
* 6.2.0beta2 released 30 August 2006&lt;br /&gt;
* 6.2.0beta3 released 18 September 2006&lt;br /&gt;
* 6.2.0RC1 released 26 September 2006&lt;br /&gt;
* 6.2.0RC2 released 6 October 2006&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Release Roadmap]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=2793</id>
		<title>AddOns</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=2793"/>
		<updated>2006-10-17T06:09:48Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Raster add-ons */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded [http://grass.itc.it/download/index.php here]).&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==Copyright and licensing information==&lt;br /&gt;
&lt;br /&gt;
''Please be sure to include copyright and licensing information in the header comments of your code so that others may know how they can use, extend, modify, and redistribute your work.''&lt;br /&gt;
&lt;br /&gt;
e.g. at the top of a shell script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
############################################################################&lt;br /&gt;
#&lt;br /&gt;
# MODULE:       v.in.e00&lt;br /&gt;
#&lt;br /&gt;
# AUTHOR(S):    Markus Neteler, Otto Dassau&lt;br /&gt;
#&lt;br /&gt;
# PURPOSE:      Import E00 data into a GRASS vector map&lt;br /&gt;
#               Imports single and split E00 files (.e00, .e01, .e02 ...)&lt;br /&gt;
#&lt;br /&gt;
# COPYRIGHT:    (c) 2004, 2005 GDF Hannover bR, http://www.gdf-hannover.de&lt;br /&gt;
#&lt;br /&gt;
#               This program is free software under the GNU General Public&lt;br /&gt;
#               License (&amp;gt;=v2). Read the file COPYING that comes with GRASS&lt;br /&gt;
#               for details.&lt;br /&gt;
#&lt;br /&gt;
#############################################################################&lt;br /&gt;
#&lt;br /&gt;
# REQUIREMENTS:&lt;br /&gt;
#      -  avcimport: http://avce00.maptools.org&lt;br /&gt;
&lt;br /&gt;
[script follows]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shell script coding standards==&lt;br /&gt;
&lt;br /&gt;
Please have a look at our [http://grass.itc.it/grass63/source/SUBMITTING_SCRIPTS Shell script coding standards] before submitting here.&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous Add-ons==&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/utm_which_zone.sh utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] to be installed. A shell-only version is [http://dcalvelo.free.fr/grass/utm_which_zone_sh.sh available] which only requires awk.&amp;lt;BR&amp;gt;'''Authors''': Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Perl scripts for converting data forth and back between Excel files and PostgreSQL: [http://dcalvelo.free.fr/grass/pg2xls.pl pg2xls.pl] reads data from PostgreSQL and produces an excel workbook; [http://dcalvelo.free.fr/grass/xls2sql.pl xls2sql.pl] reads excel files and outputs SQL statements to be fed into an RDBMS. Both scripts need modules from [http://www.cpan.org CPAN], especially [http://search.cpan.org/dist/Spreadsheet-ParseExcel/  Spreadsheet::ParseExcel] for xls2sql.pl and [http://search.cpan.org/~tmtm/Spreadsheet-WriteExcel-FromDB Spreadsheet::WriteExcel::FromDB] and its dependencies for pg2sql.pl. Check the source headers for more info.&amp;lt;BR&amp;gt;'''Authors:''' Daniel Calvelo (xls2sql.pl), Markus Neteler (pg2xls.pl)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://dream.lrrl.arch.tu-muenchen.de/~wqual/perl/dbf2sql.tgz dbf2sql] is a Perl script for translating dbf-tables into a sql-command. dbf-tables are read using dbfdump-command from dbd-xbase-perl module ([http://search.cpan.org/~janpaz/DBD-XBase-0.241/ dbd::xbase] and [http://search.cpan.org/~jv/Getopt-Long-2.35/lib/Getopt/Long.pm getopt::long] have to be installed from CPAN first). There are problems, if the last column of the table contains characters. Suggestions for improvements welcome! &amp;lt;BR&amp;gt;'''Author:'''Wolfgang Qual&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.igc.usp.br/pessoais/guano/downloads/azimuth2.c azimuth2.c] is a small C program to calculate the azimuth and length of vector lines exported by GRASS-GIS as ASCII files (like this: v.out.ascii input=vector output=ascii format=standard). It is useful for create rose diagrams of lineament maps. Improvements on the original code after suggestions by Örs Téglásy, Hungary.&amp;lt;BR&amp;gt;'''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
==GRASS 5.x==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons for GRASS 5===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.itc.it/download/addons.php&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons for GRASS 5===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.itc.it/download/addons.php&lt;br /&gt;
&lt;br /&gt;
* [http://www.valledemexico.ambitiouslemon.com/gwmodelling.html r.gmtg] The groundwater modelling tool for grass. A module to use MODFLOW within GRASS. &amp;lt;BR&amp;gt;'''Author''': Jaime Carrera&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==GRASS 6.x==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://geni.ath.cx/grass/v.out.gmt v.out.gmt] is a shell script that exports a polygon vector file into GMT xy file. psbasemap code was copied from Hamish's r.out.gmt. &amp;lt;BR&amp;gt;'''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://geo4.uibk.ac.at/tilde/kindl/grass/v.strahler.tgz v.strahler] is a module that calculates the Strahler Order for all lines of a given dendritic network. &amp;lt;BR&amp;gt;'''Author:''' Florian Kindl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://svg.cc/grass/index.html v.out.svg] is a module that exports SVG notation along with optional attribute data directly from GRASS 6.x vector layers. &amp;lt;BR&amp;gt;'''Author:''' Klaus Förster&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/trees.html v.trees3d] is a module for making 3D trees from input vector point file. &amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.lda v.lda] is a shell script for calculating Ian Johnson's (U. Sidney) Local Density Analysis values to measure clustering of point data at different neighborhood radii. There is an option to create a simple line graph of the results. There have been reports of problems creating the line graph on Cygwin installations of GRASS.&amp;lt;BR&amp;gt;'''Author:''' Michael Barton &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.append v.append] is a shell script combining two vector files AND their associated attribute tables. The vector files should be of the same type and, for best results, should have identically formatted attribute tables.&amp;lt;BR&amp;gt;'''Author:''' Michael Barton &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.shockfamily.net/cedric/grass/v.group v.group] generates a new vector map with the same geometry as an existing map. The new map has categories and a table based on grouping by the values in certain columns of the existing map's table. The values in these columns are preserved in the table for the new map. It's like a v.reclass that preserves data.&amp;lt;BR&amp;gt;'''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/v.out.ascii.db v.out.ascii.db] is a shell script for exporting vector point data coordinates and selected attribute columns to either a file or to the console.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.fle.czu.cz/~jachym/programs/v.rasterbounds v.rasterbounds] is a shell script for creating polygon-vector file of rasterfile boundaries. The best version of GRASS is 6.1+. If you are using GRASS &amp;lt; 6.1, you  have to be in the same mapset as your raster maps are from.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.fle.czu.cz/~jachym/programs/v.3Dtin v.3Dtin] is a shell script for making 3D-vector of the 2D ouput from ''v.delauny''. &amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.clubwebcanada.ca/twiens/v.sample.buffer.tgz v.sample.buffer] is a shell script that samples rasters in buffers of a specified size around features in a specified vector file. Sampling results are added as attributes to the vector file. This script was designed for sampling vegetation indices and DEM derived attributes for bird point counts. Sampling results can be one or more basic statistics such as mean, range, max, etc.&amp;lt;BR&amp;gt;'''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.gfosservices.it/materiale_didattico/moduli/v.variogram.tar.gz v.variogram] is a script that create an omnidirectional experimental semi-variogram. This scripts require R-statistics software installed on your machine. Please see a [http://grass.itc.it/pipermail/statsgrass/2006-October/000455.html reply] on the STATGRASS list for changes need to the script to run on spgrass6 &amp;gt;= 0.3 and sp &amp;gt;= 0.9. &amp;lt;BR&amp;gt;'''Author:''' Ivan Marchesini, Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.gfosservices.it/materiale_didattico/moduli/v.krige.tar.gz v.krige] is a script that  do a surface interpolation from vector point data by Kriging method.The interpolated value of a cell is determined by using an omnidirectional variogram model fitted starting from model parameter given by user desumed from the experimental semi variogram produced by v.variogram.&amp;lt;BR&amp;gt;'''Author:''' Ivan Marchesini, Pierluigi De Rosa&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://ngeo.de/grassstuff/v.lmeasure v.lmeasure] and [http://ngeo.de/grassstuff/v.revlmeasure v.revlmeasure] are two perl scripts that place equidistant vector points along a given arbitrary vector line starting from the beginning or end of the vector line, respectively. Resulting  vector points are labeled with the distance from origin.&amp;lt;BR&amp;gt;'''Author:''' Mats Schuh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/v.swathwidth v.swathwidth] creates a vector map representing the sea bottom coverage of a multibeam (swath) sonar survey.&amp;lt;BR&amp;gt;'''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://kufaya.googlepages.com/v.flip.tar.gz v.flip] flips the direction of selected vector lines.&amp;lt;BR&amp;gt;'''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://phygeo7.geo.uni-augsburg.de/gis2/scripts/v.digatt v.digatt] (shell script) Interactively assign numeric table attributes to series of vector objects. It is meant to be effective by avoiding to type in the attribute value for all single objects again and again. The user is prompted for typing in an attribute value which is assigned to all objects selected by mouseclick afterwards. Next the display is redrawn after updating the table column. Zooming allows to change the region before the old value can be reused or a new one can be typed in (or copied by mouse from another object) in order to assign it to the next series of objects etc. It is tested not very extensively yet. Therefore better work with a copy of your map and consider using v.digit or d.what.vect -e alternatively. [http://phygeo7.geo.uni-augsburg.de/gis2/scripts/v.digatt.png screenshot]. &amp;lt;BR&amp;gt;'''Author:''' Andreas Philipp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://k153-85.fsv.cvut.cz/cgi-bin/viewcvs.cgi/grass6/vector/v.in.gama/ v.in.gama] converts [http://www.gnu.org/software/gama/ GNU GaMa] XML output file to a GRASS vector map layer.&amp;lt;br /&amp;gt;'''Author:''' Martin Landa&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://www.igc.usp.br/pessoais/guano/downloads/r.roughness r.roughness] is a shell script to calculate the surface roughness of a DEM, using r.surf.area and v.surf.rst. (for GRASS versions 6.1 and above)&lt;br /&gt;
* [http://www.igc.usp.br/pessoais/guano/downloads/r.roughness60 r.roughness60] - for GRASS versions 6.0.X&amp;lt;BR&amp;gt;'''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/r.gauss.tgz r.gauss] is Gaussian and Laplacian of Gaussian filter for GRASS. It is written in C language.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/r.mlv.tgz r.mlv] is Mean of least variance filter for GRASS. It is an edge-preserving (or even edge-enhacing) filter, which should serve for removing additive noise from images. It is written in C language.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/r.bilateral.tgz r.bilateral] Bilateral filter is an edge-preserving filter, which combines domain and range filtering. It is written in C language.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/zc.pl Zero crossing] is a simple Perl script, finds the ,,zero crossings`` from the Laplacian of Gaussian filter (see above). It is really &amp;lt;em&amp;gt;very&amp;lt;/em&amp;gt; simple, the edges don't need to be really on that pixel, where they are detected, no interpolation is performed.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
     '''Usage:'''&lt;br /&gt;
     zc.pl -i input -o output |r.mapcalc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/local_max.pl Local maxima] is a Perl script for &amp;lt;code&amp;gt;r.mapcalc&amp;lt;/code&amp;gt;. It detects local maxima of the image.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
     '''Usage:'''&lt;br /&gt;
     local_maxima.pl -i input -o output -s matrix_size|r.mapcalc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/r.out.gmt r.out.gmt] is a GRASS script for exporting a GRASS raster map into a [[http://www.soest.hawaii.edu/gmt/ GMT]] grid file. It also creates a GMT color table from the data and can generate some GMT commands for plotting a postscript file. (code is experimental, but functional)&amp;lt;BR&amp;gt;see  also http://169.237.35.250/~dylan/grass_user_group/#GMT_and_GRASS-overview&amp;lt;BR&amp;gt;'''Authors:''' Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://geni.ath.cx/grass/r.out.gmt yet another r.out.gmt] is a modified version of Hamish's r.out.gmt.  Added options for title, xlabel, ylabel, comment, and map width.  Removed any settings that can be changed by gmtset for more flexibility.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman, Huidae Cho, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/r.pack r.pack] and [http://bambi.otago.ac.nz/hamish/grass/r.unpack r.unpack] are two GRASS scripts for transfering raster maps to another computer as a single file.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/dominant_dir.m dominant_dir.m] and [http://bambi.otago.ac.nz/hamish/grass/calc_terraflow_dir.m calc_terraflow_dir.m] are two Matlab scripts for determining the dominant flow direction from a r.terraflow MFD map and converting into a GRASS aspect map for use with d.rast.arrow, etc.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www-pool.math.tu-berlin.de/~soeren/grass/modules/ r.in.onearth] for download and import satellite images direct from the NASA onearth WMS server into GRASS.&amp;lt;BR&amp;gt;'''Author:''' Soeren Gebbert&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.shockfamily.net/cedric/grass/r.tileset r.tileset] generates a list of tiles and sizes in a source projection that cover the region in the current database with appropriate resolution. The size of individual tiles can be constrained. Only tiles intersecting the current region are returned. These tilings are appropriate for requesting data from another projection to meet the specifications of the current region. For example, it could be used to generate tile requests to a latitude / longitude WMS server like this &amp;lt;code&amp;gt;r.tileset -w sourceproj=&amp;quot;+init=epsg:4326&amp;quot;&amp;lt;/code&amp;gt;.&amp;lt;BR&amp;gt;'''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/r.csr.tar.gz r.csr] integrates several Grass programs to produce colored, shaded-relief rasters in one step. Accepts single or multiple elevation/bathymetry maps as input; optionally will fill data holidays with 3x3 median filter, multiple times, if required; can apply color maps from a) input raster, b) another raster in MAPSET, or c) from a rules file; otherwise, rainbow colorbar is applied. Output colored, shaded-relief rasters can optionally be exported to tiff format and archived using tar with gzip/bzip2 compression if appropriate flags are given. Shading parameters can be modified, though useful defaults are given. (Right-click and choose 'Save Link As')&amp;lt;BR&amp;gt;'''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/r.fragment.tar.gz r.fragment] fragments a raster into a user-defined set of smaller tiles according to an input number of rows and columns. Optionally, a null value threshold can be set to filter out candidate tiles that would have a large percentage of null cells. (Right-click and choose 'Save Link As')&amp;lt;BR&amp;gt;'''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/r.eucdist r.eucdist] creates a raster map estimating the euclidean distance from known cells.&amp;lt;BR&amp;gt;'''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/r.smoothpatch r.smoothpatch] creates a composite of two rasters using a distance-weighted average across the transition to smooth the edges.&amp;lt;BR&amp;gt;'''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.faunalia.it/download/r_li/ r.li] is meant to be a more flexible and faster replacement of the old r.le. Currently under development (help welcome).&amp;lt;BR&amp;gt;&lt;br /&gt;
[http://www.faunalia.com/mediawiki/index.php/R_li Wiki page]&amp;lt;BR&amp;gt;&lt;br /&gt;
[http://www.faunalia.com/cgi-bin/mailman/listinfo/r.li Mailing list]&amp;lt;BR&amp;gt;&lt;br /&gt;
'''Authors:''' Claudio Porta, Davide Spano, Serena Pallecchi, [http://www.faunalia.it Faunalia]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://kufaya.googlepages.com/r.surf.nnbathy.tar.gz r.surf.nnbathy] interpolates surface from raster input using [http://www.marine.csiro.au/~sakov/ nn] natural neighbor intepolation library.&amp;lt;BR&amp;gt;'''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.uslek.tar.gz r.uslek] creates USLE K factor (soil erodibility) from sand,clay,silt fractions and organic matter fraction. Based on USDA 1951 (p209) quoted in FAO World Soil CD, and from some generic [soil class+OM] to K conversion table.Update: Fixed input file swap and silty-clay class recognition.&amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.albedo.tar.gz r.albedo] creates Albedo. Albedo is the shortwave surface reflectance in the range of 0.3-3 micro-meters. This module takes Modis, Aster, Landsat or AVHRR individual surface reflectance bands  to calculate Albedo. This module is a precursor to r.sun or any Energy-Balance related processing.&amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/ r.eb.*] are a set of GRASS modules that together perform the main functions of the SEBAL model (Bastiaanssen, 1995). Those functions include (but are not limited to) Soil heat flux, sensible heat flux, net radiation, evaporative fraction at satellite overpass, diurnal actual evapotranspiration, momentum roughness length, etc. These modules are also part of any Energy-Balance related processing.&amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.evapo.potrad.tar.gz r.evapo.potrad] create diurnal Potential evapotranspiration assuming all net radiation becomes ET, according to SEBAL model (Bastiaanssen, 1995). This module also has a flag for diurnal net radiation as required by SEBAL in [http://www.star.ait.ac.th/~yann/sebal/r.eb.eta.tar.gz r.eb.eta]. &amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.vi.tar.gz r.vi] creates a given Vegetation index from a list of 13 of them, most of them only requiring Red and NIR. Accepts DCELL only (for now). &amp;lt;BR&amp;gt;'''Authors:''' Baburao Kamble and Yann Chemin&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.dn2ref.l7.tar.gz r.dn2ref.l7] [http://www.star.ait.ac.th/~yann/sebal/r.dn2ref.ast.tar.gz r.dn2ref.ast] create top of atmosphere reflectance for Landsat 7ETM+ and ASTER. These modules also have a flag for radiance output. &amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/sebal/r.biomass.tar.gz r.biomass] create biomass growth map from APAR, lightuse efficiency, water availability (or evap.fraction), Lat, doy and tsw . &amp;lt;BR&amp;gt;'''Author:''' Yann Chemin&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===General add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://www.gdf-hannover.de/dassau/g.laptop/g.laptop.sh g.laptop.sh] is an interactive shell script to extract raster and vector data from current Location into a new one. Data can be copied or extracted in current or original resolution and region extend. This script was written to extract smaller parts of a GRASS location to be able to present them on a laptop without the necessity to transfer huge data. Maps do not have to be in the same mapset.&amp;lt;BR&amp;gt;'''Author:''' Otto Dassau &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''''Readline completion''''' for GRASS commands under the bash shell: [http://www.sorokine.info/grass-complete/ grass-complete] won't clutter the environment but needs to be installed; [http://dcalvelo.free.fr/grass/grass_rlcompleter.sh grass_rlcompleter.sh] needs almost no installation but will pollute the environment. Grass-Complete currently requires Bash version 2.05 for proper install.&amp;lt;BR&amp;gt;'''Author:''' Alexandre Sorokine (grass-complete), Daniel Calvelo (grass_rlcompleter.sh)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
=== Imagery add-ons ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.star.ait.ac.th/~yann/6s/i.atcorr.1.3.1b.tar.gz i.atcorr] Atmospheric Correction using Christo Zietsman's implementation of 6s code in C/C++. The Old Page was rescued by Christo recently and copied [http://www.star.ait.ac.th/~yann/6s/ here]. Compiled in CVS but not tested. Update: The source code is somehow functional in GRASS CVS, it is processing and creates output map, but does not accept non-default input. Not Tested/Validated! &amp;lt;BR&amp;gt;'''Author:''' Christo Zietsman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/gdal/i.warp61 i.warp61] is a shell script that will use gdalwarp to rectify a raw input image using thin plate splines. The map should be imported into GRASS with r.in.gdal and GCPs set with i.points. Input is the raw image (GeoTIFF, JPEG, etc). Output is a GeoTIFF in the imagery group's target location's map projection. Requires a recent (early 2006) version of GRASS 6.1, or newer.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Display add-ons ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.ornl.gov/sci/gist/software/grass/ pd-GRASS]: Parallel Display for GRASS GIS&amp;lt;BR&amp;gt;'''Author:''' Alex Sorokine&lt;br /&gt;
&lt;br /&gt;
==== [[IconSymbols]] ====&lt;br /&gt;
* [[IconSymbols|Symbols]] which can be used with ''d.vect, d.graph'', and ''ps.map''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.frame.quarter d.frame.quarter] is a shell script that will split the display into four quadrants using ''d.frame''. Individual frames are named ''uno, dos, tres, cuatro'', and ''full_screen''.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/d.hyperlink.tar.gz d.hyperlink] is an interactive shell script that allows the viewing of hyperlinked images from a vector's attribute table in an external image viewer. Queries can be made via SQL statements or interactive mouse-clicking. The attribute table must be pre-populated with a column containing the image to link the vector to; the user also specifies the image folder in the current MAPSET where the images are located. The script currently supports gimp, Eye of Gnome, gthumb, gpdf, and Inkscape image viewers. (Right-click and choose 'Save Link As')&amp;lt;BR&amp;gt;'''Author: '''Eric Patton&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.stations d.stations] is a shell script that quickly displays vector points (or sites for GRASS 5.4 and below).&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/d.varea d.varea] is a shell script that quickly displays vector areas.&amp;lt;BR&amp;gt;'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
===Postscript add-ons===&lt;br /&gt;
&lt;br /&gt;
* [http://les-ejk.cz/programs/grass/ps.atlas ps.atlas] is a shell script that makes more maps on current region according to input *.psmap file. General map can be stored as vector file. The resulting *.eps maps can be automatically converted to *.pdf files.&amp;lt;BR&amp;gt;'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ps.map scripts|ps.map samples/templates]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[AreaFillPatterns]] ====&lt;br /&gt;
* Hatches for ps.map's vareas&lt;br /&gt;
&lt;br /&gt;
===GRASS and UMN Mapserver===&lt;br /&gt;
&lt;br /&gt;
* [http://www.mail-archive.com/mapserver-users@lists.umn.edu/msg00086.html See interesting posting]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=2604</id>
		<title>GRASS and Python</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=2604"/>
		<updated>2006-09-24T21:04:57Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Python SIGs==&lt;br /&gt;
Python Special Interest Groups are focused collaborative efforts to develop, improve, or maintain specific Python resources. Each SIG has a charter, a coordinator, a mailing list, and a directory on the Python website. SIG membership is informal, defined by subscription to the SIG's mailing list. Anyone can join a SIG, and participate in the development discussions via the SIG's mailing list. Below is the list of currently active Python SIGs, with links to their resources. &lt;br /&gt;
&lt;br /&gt;
See more at http://www.python.org/community/sigs/&lt;br /&gt;
&lt;br /&gt;
==Writing python scripts in GRASS==&lt;br /&gt;
Python is between shell and C programms. For C part - it can handle GRASS C functions via swig. For shell part, it can be processed with g.parser, so automatic input check and help generation (apart from translation) can be processed.&lt;br /&gt;
&lt;br /&gt;
Example of python script, which is processed by g.parser:&lt;br /&gt;
 #!/usr/bin/python&lt;br /&gt;
 &lt;br /&gt;
 import sys&lt;br /&gt;
 import os&lt;br /&gt;
 &lt;br /&gt;
 #%Module&lt;br /&gt;
 #%  description: g.parser test script&lt;br /&gt;
 #%  keywords: keyword1, keyword2&lt;br /&gt;
 #%End&lt;br /&gt;
 #%flag&lt;br /&gt;
 #%  key: f&lt;br /&gt;
 #%  description: a flag&lt;br /&gt;
 #%END&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: raster&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% gisprompt: old,cell,raster&lt;br /&gt;
 #% description: raster input map&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: vector&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% gisprompt: old,vector,vector&lt;br /&gt;
 #% description: vector input map&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 #%option&lt;br /&gt;
 #% key: option1&lt;br /&gt;
 #% type: string&lt;br /&gt;
 #% description: an option&lt;br /&gt;
 #% required : yes&lt;br /&gt;
 #%end&lt;br /&gt;
 &lt;br /&gt;
 def main(): &lt;br /&gt;
 &lt;br /&gt;
     #add your code here&lt;br /&gt;
     print &amp;quot;&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
     if ( os.getenv(&amp;quot;GIS_FLAG_f&amp;quot;) != &amp;quot;0&amp;quot; ):&lt;br /&gt;
         print &amp;quot;Flag -f set&amp;quot;&lt;br /&gt;
     else:&lt;br /&gt;
         print &amp;quot;Flag -f not set&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_option1: %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_option1&amp;quot;)&lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_raster:  %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_raster&amp;quot;)&lt;br /&gt;
     print &amp;quot;Value of GIS_OPT_vect:    %s&amp;quot; % os.getenv(&amp;quot;GIS_OPT_vect&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
     #end of your code&lt;br /&gt;
     return &lt;br /&gt;
 &lt;br /&gt;
 if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
     args = &amp;quot;&amp;quot;&lt;br /&gt;
     for arg in sys.argv:&lt;br /&gt;
         args += arg+&amp;quot; &amp;quot;&lt;br /&gt;
     try:&lt;br /&gt;
         if ( sys.argv[1] != &amp;quot;@ARGS_PARSED@&amp;quot; ):&lt;br /&gt;
             os.system(&amp;quot;g.parser %s &amp;quot; % (args))&lt;br /&gt;
     except IndexError:&lt;br /&gt;
         os.system(&amp;quot;g.parser %s&amp;quot; % (args)) &lt;br /&gt;
 &lt;br /&gt;
     if sys.argv[1] == &amp;quot;@ARGS_PARSED@&amp;quot;:&lt;br /&gt;
         main();&lt;br /&gt;
==Python extensions for GRASS GIS==&lt;br /&gt;
=== wxPython GUI development for GRASS ===&lt;br /&gt;
'''[http://www.public.asu.edu/~cmbarton/files/grass_wxpython/ Link to wxPython prototype GUI for GRASS 6]'''&lt;br /&gt;
&lt;br /&gt;
'''Update 18:02, 14 August 2006 (CEST) '''New version implements double buffered drawing to fix display issues on Debian, including flickering why panning and display being erased by overlaying windows. Output to PNG file added. Better looking zoom rectangles.&lt;br /&gt;
&lt;br /&gt;
'''*****The wxPython code is moving to the GRASS CVS. You should look for the newest versions there. Volunteers to help with the new GUI are welcomed!*****''' [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 00:50, 9 August 2006 (CEST) '''New version will run directly from GRASS prompt with new startup script. Now put gism.py and associated files into $GISBASE/etc/gmwxp and add a new script (gm.wxp) to the $GISBASE/scripts folder. Then simply type gm.wxp&amp;amp; from the GRASS command prompt to get the new prototype wxPython GUI for GRASS. See instructions in today's package update. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 23:59, 7 August 2006 (CEST) '''New version with nearly complete raster menu by Yann Chemin. [[User:Cmbarton|Cmbarton]]&lt;br /&gt;
&lt;br /&gt;
'''Update 19:02, 7 August 2006 (CEST)'''I just uploaded a new version of gism.py and related files. I'll keep an archive and so am changing the link to go to the folder rather than the file itself so I won't have to keep changing the link. This update includes the following changes:&lt;br /&gt;
*The biggest change in wrapping in grassgui.py. This provides autogenerated wxPython GUI dialogs for all grass commands.&lt;br /&gt;
This can now be called from the command console (just type in the command name with no arguments as you do now) or the&lt;br /&gt;
prototype menus. I updated grassgui.py to current wxPython syntax (mostly) and added methods to make it callable from&lt;br /&gt;
other modules.&lt;br /&gt;
*Methods added to gism.py and grassgui.py that automatically restart them with pythonw for the Mac&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 19:02, 7 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
Initial development has begun on the next generation UI for GRASS. wxPython is the leading contender for a platform in which to continue development of the GRASS GUI. wxPython is a Python implementation of the well known wxWidgets (formerly wxWindows) interface development platform for C++. An initial demonstration was developed by Jachym Cepicky to show the possibility of controling GRASS via wxPython. A second generation prototype has been completed, building on Jachym's work. It is available for testing and further development at link above.&lt;br /&gt;
--[[User:Cmbarton|Cmbarton]] 07:15, 4 August 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
===Python-SWIG-GRASS interface===&lt;br /&gt;
There is a prototype GRASS-SWIG interface available (thanks to Sajith VK), find it in GRASS 6-CVS: '''swig/python/'''. Draft documentation is [http://mpa.itc.it/markus/grass63progman/swig/ here]. It now wraps both raster and vector data C functions plus the general GIS (G_*()) functions.&lt;br /&gt;
&lt;br /&gt;
Background: [http://www.swig.org SWIG] (Simplified Wrapper and Interface Generator) is: &lt;br /&gt;
&lt;br /&gt;
* A compiler that turns ANSI C/C++ declarations into scripting language interfaces.&lt;br /&gt;
* Completely automated (produces a fully working Python extension module). &lt;br /&gt;
* Language neutral. SWIG can also target Tcl, Perl, Guile, MATLAB, etc... &lt;br /&gt;
* Attempts to eliminate the tedium of writing extension modules.&lt;br /&gt;
&lt;br /&gt;
'''TODO''': Implement modules support in a Python class using --interface-description and a Python-XML parser. This should be a generic class with module's name as parameter, returning back an object which describes the module (description, flags, parameters, status of not/required). See [http://freegis.org/cgi-bin/viewcvs.cgi/grass6/gui/wxpython/ GRASS 6 wxPython interface] for inspiration. Important is to auto-generate the GRASS-Python class at compile time with a Python script.&lt;br /&gt;
&lt;br /&gt;
Sample script (use within GRASS):&lt;br /&gt;
&lt;br /&gt;
 import python_grass6 as g6lib&lt;br /&gt;
 &lt;br /&gt;
 input = 'roads'&lt;br /&gt;
 mapset = 'PERMANENT'&lt;br /&gt;
 &lt;br /&gt;
 g6lib.G_gisinit('')&lt;br /&gt;
 infd = g6lib.G_open_cell_old(input, mapset)&lt;br /&gt;
 &lt;br /&gt;
 cell = g6lib.G_allocate_cell_buf()&lt;br /&gt;
 &lt;br /&gt;
 rown=0&lt;br /&gt;
 while 1:&lt;br /&gt;
     myrow = g6lib.G_get_map_row_nomask(infd, cell, rown)&lt;br /&gt;
     print rown,myrow[0:10]&lt;br /&gt;
     rown = rown+1&lt;br /&gt;
     if rown==476:break&lt;br /&gt;
 &lt;br /&gt;
 g6lib.G_close_cell(infd)&lt;br /&gt;
 g6lib.G_free(cell)&lt;br /&gt;
&lt;br /&gt;
=== Python-GRASS add-ons ===&lt;br /&gt;
&lt;br /&gt;
Stand-alone addons:&lt;br /&gt;
&lt;br /&gt;
# Jáchym Čepický's G-ps.map, a GUI to typeset printable maps with ps.map (http://les-ejk.cz/?cat=gpsmap)&lt;br /&gt;
# Jáchym Čepický's v.pydigit, a GUI to v.edit (http://les-ejk.cz/?cat=vpydigit)&lt;br /&gt;
# Jáchym Čepický's PyWPS, GRASS-Web Processing Service (http://les-ejk.cz/?cat=pywps)&lt;br /&gt;
&lt;br /&gt;
=== Using Grass gui.tcl in python ===&lt;br /&gt;
&lt;br /&gt;
Here is some example code to use the grass automatically generated guis in python code. This could (should) all be bundled up and abstracted away so that the implementation can be replaced later.&lt;br /&gt;
&lt;br /&gt;
 import Tkinter&lt;br /&gt;
 import os&lt;br /&gt;
 &lt;br /&gt;
 # Startup (once):&lt;br /&gt;
 &lt;br /&gt;
 tk = Tkinter.Tk()&lt;br /&gt;
 tk.eval (&amp;quot;wm withdraw .&amp;quot;)&lt;br /&gt;
 tk.eval (&amp;quot;source $env(GISBASE)/etc/gui.tcl&amp;quot;)&lt;br /&gt;
 # Here you could do various things to change what the gui does&lt;br /&gt;
 # See gui.tcl and README.GUI&lt;br /&gt;
 &lt;br /&gt;
 # Make a gui (per dialog)&lt;br /&gt;
 # This sets up a window for the command.&lt;br /&gt;
 # This can be different to integrate with tkinter:&lt;br /&gt;
 tk.eval ('set path &amp;quot;.dialog$dlg&amp;quot;')&lt;br /&gt;
 tk.eval ('toplevel .dialog$dlg')&lt;br /&gt;
 # Load the code for this command:&lt;br /&gt;
 fd = os.popen (&amp;quot;d.vect --tcltk&amp;quot;)&lt;br /&gt;
 gui = fd.read()&lt;br /&gt;
 # Run it&lt;br /&gt;
 tk.eval(gui)&lt;br /&gt;
 dlg = tk.eval('set dlg') # This is used later to get and set &lt;br /&gt;
 &lt;br /&gt;
 # Get the current command in the gui we just made:&lt;br /&gt;
 currentcommand = tk.eval (&amp;quot;dialog_get_command &amp;quot; + dlg)&lt;br /&gt;
 &lt;br /&gt;
 # Set the command in the dialog we just made:&lt;br /&gt;
 tk.eval (&amp;quot;dialog_set_command &amp;quot; + dlg + &amp;quot; {d.vect map=roads}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
* GRASS-SWIG interface http://mpa.itc.it/markus/grass63progman/swig/&lt;br /&gt;
* SWIG http://www.swig.org/&lt;br /&gt;
* SIP (C/C++ bindings generator) http://directory.fsf.org/all/Python-SIP.html&lt;br /&gt;
* Python and GDAL/OGR:&lt;br /&gt;
** [http://mapserver.gis.umn.edu/community/conferences/MUM3/workshop/python Open Source Python GIS Hacks Mum'03]&lt;br /&gt;
** http://hobu.biz/software/OSGIS_Hacks - Python OSGIS Hacks '05&lt;br /&gt;
** http://zcologia.com/news/categorylist_html?cat_id=8&lt;br /&gt;
** http://www.perrygeo.net/wordpress/?p=4&lt;br /&gt;
* Python bindings to PROJ:&lt;br /&gt;
** http://www.cdc.noaa.gov/people/jeffrey.s.whitaker/python/pyproj.html&lt;br /&gt;
* Other external projects&lt;br /&gt;
** Scientific Python: http://www.scipy.org/&lt;br /&gt;
&lt;br /&gt;
=== Presentations ===&lt;br /&gt;
&lt;br /&gt;
From FOSS4G2006:&lt;br /&gt;
* [http://www.foss4g2006.org/materialDisplay.py?contribId=136&amp;amp;amp;sessionId=48&amp;amp;amp;materialId=slides&amp;amp;amp;confId=1 A Python sweeps in the GRASS] - A. Frigeri 2006&lt;br /&gt;
* [http://www.foss4g2006.org/materialDisplay.py?contribId=67&amp;amp;amp;sessionId=48&amp;amp;amp;materialId=slides&amp;amp;amp;confId=1 GRASS goes web: PyWPS] - J. Cepicky 2006&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Linking to other languages]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Time_series_development&amp;diff=2578</id>
		<title>Time series development</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Time_series_development&amp;diff=2578"/>
		<updated>2006-09-23T08:07:49Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* Jachym's notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is born out of discussions in Lausanne.  A lot of people seem to be interested in having some standardized, documented format for dealing with time series in GRASS, so that we can deal with data (e.g. climate station, water gauges), link with models, etc., without having to come up with a custom solution each time.  This could also lead to modules to help with interpolation to deal with missing values, etc.&lt;br /&gt;
&lt;br /&gt;
There was also discussion of possibly setting up a mailing list.  Do we want this?&lt;br /&gt;
: I would vote against just-another-mailing list [[User:Neteler|Neteler]] 23:51, 18 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Ideas from MN ====&lt;br /&gt;
&lt;br /&gt;
* each imported raster map get's automatically &amp;quot;registered&amp;quot; in an SQL table&lt;br /&gt;
** Table structure: &lt;br /&gt;
*** map name&lt;br /&gt;
*** map creator (optional)&lt;br /&gt;
*** time stamp of import&lt;br /&gt;
*** time stamp of map production (optional)&lt;br /&gt;
*** time range of validity (optional)&lt;br /&gt;
* g.list, g.rename etc. tools have a new &amp;quot;where&amp;quot; parameter do search maps in this table&lt;br /&gt;
* g.remove will also remove row from SQL table&lt;br /&gt;
* SQL commands can be used for search by time stamps&lt;br /&gt;
&lt;br /&gt;
===== maxi's proposal =====&lt;br /&gt;
* what about a table with time series (sort of header of each time series) and another table for each time serie with a list of associated filename and related timestamp?&lt;br /&gt;
** time series head table structure:&lt;br /&gt;
*** series name&lt;br /&gt;
*** creator name&lt;br /&gt;
*** timestamp of creation&lt;br /&gt;
*** range of validity&lt;br /&gt;
*** time step&lt;br /&gt;
*** ....&lt;br /&gt;
** time serie associated map (table named like the related time serie):&lt;br /&gt;
*** timestamp&lt;br /&gt;
*** map name&lt;br /&gt;
*** timestamp of import&lt;br /&gt;
&lt;br /&gt;
==== Soerens ideas ====&lt;br /&gt;
&lt;br /&gt;
* the temporal gis extension of grass should manage: &lt;br /&gt;
** raster, raster3d, vector maps and groups of raster maps (imagery groups)&lt;br /&gt;
** the existing timestamps should be used for registration in a temporal database&lt;br /&gt;
** the timestamp should be automatically created if a map is created &lt;br /&gt;
** all maps can be registered and unregistered in the temporal database&lt;br /&gt;
** it should be possible to cretae several temporal tables in the database&lt;br /&gt;
*** '''those tables are a new datatype in grass''' &lt;br /&gt;
*** the tables should be used for thematic time series&lt;br /&gt;
*** maps and groups may be registered in different tables&lt;br /&gt;
*** it should be very easy to register and unregister thousands of maps in the database&lt;br /&gt;
*** tables will have a description, history, transaction log, ceration time and modification time&lt;br /&gt;
*** statistical Informations about the maps (ranges) should be stored in the database&lt;br /&gt;
*** if the raster map changes the table should be easily updatable (automatic update implemented in the libs -&amp;gt; if map is closed update the temporal table)&lt;br /&gt;
** the temporal database should allow temporal queries for one, several or all tables in the database&lt;br /&gt;
&lt;br /&gt;
===== changes to existing libs/modules =====&lt;br /&gt;
&lt;br /&gt;
* timestamps support for groups must be added&lt;br /&gt;
* r.timestamp, r3.timestamp and v.timestamp should be implemented in g.timestamp with group support&lt;br /&gt;
* support for temporal region (starttime, endtime, timesteps) in g.region &lt;br /&gt;
* g.remove, g.rename and g.copy will need to have access to the temporal database&lt;br /&gt;
** if a maps is removed and registered in temporal tables, the table entry should also be removed&lt;br /&gt;
** every map keeps the info in which temporal tables it is registered (additional file or info in header)&lt;br /&gt;
* g.list should list all temporal databases, not the registered maps (t.info should do this)&lt;br /&gt;
* if automatically temporal table update is requested, all the file io libs of raster, raster3d, vector maps and groups have to be extended&lt;br /&gt;
&lt;br /&gt;
===== temporal database =====&lt;br /&gt;
&lt;br /&gt;
* the temporal database in which the maps/groups are registered should provide temporal queries&lt;br /&gt;
** select all maps between 20 jan 2002 nad 13 feb 2004&lt;br /&gt;
** select all maps with a valid range of 3 months&lt;br /&gt;
** select all maps with datum &amp;lt; 13 sep 1999&lt;br /&gt;
** select all maps with a valid range of 10 years and a value range between [20:45]&lt;br /&gt;
** Postgresql is the only Open Source database which supports such queries and suitable temporal datatypes [[http://www.postgresql.org/files/documentation/books/pghandbuch/html/datatype-datetime.html]] and [[http://www.postgresql.org/files/documentation/books/pghandbuch/html/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT]]&lt;br /&gt;
** another way is to implement this functionality in a double linked list&lt;br /&gt;
&lt;br /&gt;
===== timestamps in temporal database =====&lt;br /&gt;
&lt;br /&gt;
* the following timestamps should be created in the database&lt;br /&gt;
** a valid timestamp with startime or start- and endtime &lt;br /&gt;
** creation time&lt;br /&gt;
** modification time &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== temporal management tools =====&lt;br /&gt;
&lt;br /&gt;
* the temporal management should be done by specific commands starting with t.*  &lt;br /&gt;
* tools for queries, register, unregister und extraction of maps from the temporal database have to be implemented, like t.info, t.register, t.unregister and t.extract ...&lt;br /&gt;
&lt;br /&gt;
Example t.register:&lt;br /&gt;
&lt;br /&gt;
 GRASS 6.3.cvs &amp;gt; t.register help&lt;br /&gt;
 &lt;br /&gt;
 Description:&lt;br /&gt;
  Register groups, raster, raster3d and vector maps into the temporal database&lt;br /&gt;
 &lt;br /&gt;
 Keywords:&lt;br /&gt;
  temporal, time&lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
  t.register [-s] [tgroup=string[,string,...]]&lt;br /&gt;
    [trast=string[,string,...]] [trast3d=string[,string,...]]&lt;br /&gt;
    [tvect=string[,string,...]] [group=string[,string,...]]&lt;br /&gt;
    [rast=string[,string,...]] [rast3d=string[,string,...]]&lt;br /&gt;
    [vect=string[,string,...]] [date=timestamp[,timestamp,...]]&lt;br /&gt;
    [timestep=timestep[,timestep,...]]&lt;br /&gt;
 &lt;br /&gt;
 Flags:&lt;br /&gt;
   -s   Use the timestep between new maps. &lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
     tgroup   Temporal group database(s) in which the group(s) should be registered&lt;br /&gt;
      trast   Temporal raster database(s) in which the raster(s) should be registered&lt;br /&gt;
    trast3d   Temporal raster3d database(s) in which the raster3d(s) should be registered&lt;br /&gt;
      tvect   Temporal vector database(s) in which the vector(s) should be registered&lt;br /&gt;
      group   Group(s) to be registered in the temporal group database&lt;br /&gt;
       rast   Raster map(s) to be registered in the temporal raster database&lt;br /&gt;
     rast3d   Raster3d map(s) to be registered in the temporal raster3d database&lt;br /&gt;
       vect   Vector map(s) to be registered in the temporal vector database&lt;br /&gt;
       date   datetime, datetime1/datetime2 for map(s)&lt;br /&gt;
   timestep   timestep between the maps &lt;br /&gt;
 &lt;br /&gt;
====== example ======&lt;br /&gt;
&lt;br /&gt;
register 3 raster maps beginning from 20 jan 2001 with a timestep of 3 month in database Landsat&lt;br /&gt;
 t.register -s trast=Landsat rast=LandsatJan,LandsatApr,LandsatJul date=&amp;quot;20 jan 2001&amp;quot; timestep=&amp;quot;3 mon&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Table:&lt;br /&gt;
  1 LandsatJan 20 jan 2001 ... &lt;br /&gt;
  2 LandsatApr 20 apr 2001 ...&lt;br /&gt;
  3 LandsatJul 20 jul 2001 ...&lt;br /&gt;
&lt;br /&gt;
===== OO Layer =====&lt;br /&gt;
&lt;br /&gt;
* it should be possible to have data access with spatial-temporal functions:&lt;br /&gt;
** value = g4dDataObject-&amp;gt;Get4DValue(x, y, z, timestamp) -- for volume maps&lt;br /&gt;
** value = g4dDataObject-&amp;gt;Get4DValue(x, y, timestamp) -- for raster maps&lt;br /&gt;
&lt;br /&gt;
* based on this functionality a 4d animation tool based on VTK should be implemented&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Jachym's notes ====&lt;br /&gt;
On IRC, we discussed, that time series would be stored in database (PostgreSQL). If data format would be like YYYY-MM-DD-HH-MM-SS, the &amp;quot;database&amp;quot; could be some textfile, which would be sortable via standard 'sort' and g.* modules would not need to speek SQL - KISS, works even on a toaster.&lt;br /&gt;
&lt;br /&gt;
g.list rast should print all raster maps. Raster map belonging to time serie does not stop to be raster map. New data type &amp;quot;times&amp;quot; has to be created, so that modules like g.list, g.remove ... can handle it.&lt;br /&gt;
&lt;br /&gt;
If &amp;quot;times&amp;quot; is going to be new GRASS data type, new t.* group of commands has to be introduced, to have equivalent commands for r.what, d.rast, r.schmeiß.mich.tot, ...&lt;br /&gt;
&lt;br /&gt;
==== Open Issues ====&lt;br /&gt;
* will 'g.list rast' show also rasters belonging to time series?&lt;br /&gt;
* how to deal with huge file number in a folder? (very long serie often deals with a huge number of maps)&lt;br /&gt;
** limitation: how many rasters can a folder contain ('fileno' in /etc/security/limits.conf). &lt;br /&gt;
** efficiency: huge number of files will tremendiously slow down each map listing procedures.&lt;br /&gt;
* associated color table: only one color table should serve one series (avoid multiple color table for each map)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Time_series_development&amp;diff=2577</id>
		<title>Time series development</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Time_series_development&amp;diff=2577"/>
		<updated>2006-09-23T08:00:23Z</updated>

		<summary type="html">&lt;p&gt;⚠️Jachym: /* temporal management tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is born out of discussions in Lausanne.  A lot of people seem to be interested in having some standardized, documented format for dealing with time series in GRASS, so that we can deal with data (e.g. climate station, water gauges), link with models, etc., without having to come up with a custom solution each time.  This could also lead to modules to help with interpolation to deal with missing values, etc.&lt;br /&gt;
&lt;br /&gt;
There was also discussion of possibly setting up a mailing list.  Do we want this?&lt;br /&gt;
: I would vote against just-another-mailing list [[User:Neteler|Neteler]] 23:51, 18 September 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
==== Ideas from MN ====&lt;br /&gt;
&lt;br /&gt;
* each imported raster map get's automatically &amp;quot;registered&amp;quot; in an SQL table&lt;br /&gt;
** Table structure: &lt;br /&gt;
*** map name&lt;br /&gt;
*** map creator (optional)&lt;br /&gt;
*** time stamp of import&lt;br /&gt;
*** time stamp of map production (optional)&lt;br /&gt;
*** time range of validity (optional)&lt;br /&gt;
* g.list, g.rename etc. tools have a new &amp;quot;where&amp;quot; parameter do search maps in this table&lt;br /&gt;
* g.remove will also remove row from SQL table&lt;br /&gt;
* SQL commands can be used for search by time stamps&lt;br /&gt;
&lt;br /&gt;
===== maxi's proposal =====&lt;br /&gt;
* what about a table with time series (sort of header of each time series) and another table for each time serie with a list of associated filename and related timestamp?&lt;br /&gt;
** time series head table structure:&lt;br /&gt;
*** series name&lt;br /&gt;
*** creator name&lt;br /&gt;
*** timestamp of creation&lt;br /&gt;
*** range of validity&lt;br /&gt;
*** time step&lt;br /&gt;
*** ....&lt;br /&gt;
** time serie associated map (table named like the related time serie):&lt;br /&gt;
*** timestamp&lt;br /&gt;
*** map name&lt;br /&gt;
*** timestamp of import&lt;br /&gt;
&lt;br /&gt;
==== Soerens ideas ====&lt;br /&gt;
&lt;br /&gt;
* the temporal gis extension of grass should manage: &lt;br /&gt;
** raster, raster3d, vector maps and groups of raster maps (imagery groups)&lt;br /&gt;
** the existing timestamps should be used for registration in a temporal database&lt;br /&gt;
** the timestamp should be automatically created if a map is created &lt;br /&gt;
** all maps can be registered and unregistered in the temporal database&lt;br /&gt;
** it should be possible to cretae several temporal tables in the database&lt;br /&gt;
*** '''those tables are a new datatype in grass''' &lt;br /&gt;
*** the tables should be used for thematic time series&lt;br /&gt;
*** maps and groups may be registered in different tables&lt;br /&gt;
*** it should be very easy to register and unregister thousands of maps in the database&lt;br /&gt;
*** tables will have a description, history, transaction log, ceration time and modification time&lt;br /&gt;
*** statistical Informations about the maps (ranges) should be stored in the database&lt;br /&gt;
*** if the raster map changes the table should be easily updatable (automatic update implemented in the libs -&amp;gt; if map is closed update the temporal table)&lt;br /&gt;
** the temporal database should allow temporal queries for one, several or all tables in the database&lt;br /&gt;
&lt;br /&gt;
===== changes to existing libs/modules =====&lt;br /&gt;
&lt;br /&gt;
* timestamps support for groups must be added&lt;br /&gt;
* r.timestamp, r3.timestamp and v.timestamp should be implemented in g.timestamp with group support&lt;br /&gt;
* support for temporal region (starttime, endtime, timesteps) in g.region &lt;br /&gt;
* g.remove, g.rename and g.copy will need to have access to the temporal database&lt;br /&gt;
** if a maps is removed and registered in temporal tables, the table entry should also be removed&lt;br /&gt;
** every map keeps the info in which temporal tables it is registered (additional file or info in header)&lt;br /&gt;
* g.list should list all temporal databases, not the registered maps (t.info should do this)&lt;br /&gt;
* if automatically temporal table update is requested, all the file io libs of raster, raster3d, vector maps and groups have to be extended&lt;br /&gt;
&lt;br /&gt;
===== temporal database =====&lt;br /&gt;
&lt;br /&gt;
* the temporal database in which the maps/groups are registered should provide temporal queries&lt;br /&gt;
** select all maps between 20 jan 2002 nad 13 feb 2004&lt;br /&gt;
** select all maps with a valid range of 3 months&lt;br /&gt;
** select all maps with datum &amp;lt; 13 sep 1999&lt;br /&gt;
** select all maps with a valid range of 10 years and a value range between [20:45]&lt;br /&gt;
** Postgresql is the only Open Source database which supports such queries and suitable temporal datatypes [[http://www.postgresql.org/files/documentation/books/pghandbuch/html/datatype-datetime.html]] and [[http://www.postgresql.org/files/documentation/books/pghandbuch/html/functions-datetime.html#FUNCTIONS-DATETIME-CURRENT]]&lt;br /&gt;
** another way is to implement this functionality in a double linked list&lt;br /&gt;
&lt;br /&gt;
===== timestamps in temporal database =====&lt;br /&gt;
&lt;br /&gt;
* the following timestamps should be created in the database&lt;br /&gt;
** a valid timestamp with startime or start- and endtime &lt;br /&gt;
** creation time&lt;br /&gt;
** modification time &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== temporal management tools =====&lt;br /&gt;
&lt;br /&gt;
* the temporal management should be done by specific commands starting with t.*  &lt;br /&gt;
* tools for queries, register, unregister und extraction of maps from the temporal database have to be implemented, like t.info, t.register, t.unregister and t.extract ...&lt;br /&gt;
&lt;br /&gt;
Example t.register:&lt;br /&gt;
&lt;br /&gt;
 GRASS 6.3.cvs &amp;gt; t.register help&lt;br /&gt;
 &lt;br /&gt;
 Description:&lt;br /&gt;
  Register groups, raster, raster3d and vector maps into the temporal database&lt;br /&gt;
 &lt;br /&gt;
 Keywords:&lt;br /&gt;
  temporal, time&lt;br /&gt;
 &lt;br /&gt;
 Usage:&lt;br /&gt;
  t.register [-s] [tgroup=string[,string,...]]&lt;br /&gt;
    [trast=string[,string,...]] [trast3d=string[,string,...]]&lt;br /&gt;
    [tvect=string[,string,...]] [group=string[,string,...]]&lt;br /&gt;
    [rast=string[,string,...]] [rast3d=string[,string,...]]&lt;br /&gt;
    [vect=string[,string,...]] [date=timestamp[,timestamp,...]]&lt;br /&gt;
    [timestep=timestep[,timestep,...]]&lt;br /&gt;
 &lt;br /&gt;
 Flags:&lt;br /&gt;
   -s   Use the timestep between new maps. &lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
     tgroup   Temporal group database(s) in which the group(s) should be registered&lt;br /&gt;
      trast   Temporal raster database(s) in which the raster(s) should be registered&lt;br /&gt;
    trast3d   Temporal raster3d database(s) in which the raster3d(s) should be registered&lt;br /&gt;
      tvect   Temporal vector database(s) in which the vector(s) should be registered&lt;br /&gt;
      group   Group(s) to be registered in the temporal group database&lt;br /&gt;
       rast   Raster map(s) to be registered in the temporal raster database&lt;br /&gt;
     rast3d   Raster3d map(s) to be registered in the temporal raster3d database&lt;br /&gt;
       vect   Vector map(s) to be registered in the temporal vector database&lt;br /&gt;
       date   datetime, datetime1/datetime2 for map(s)&lt;br /&gt;
   timestep   timestep between the maps &lt;br /&gt;
 &lt;br /&gt;
====== example ======&lt;br /&gt;
&lt;br /&gt;
register 3 raster maps beginning from 20 jan 2001 with a timestep of 3 month in database Landsat&lt;br /&gt;
 t.register -s trast=Landsat rast=LandsatJan,LandsatApr,LandsatJul date=&amp;quot;20 jan 2001&amp;quot; timestep=&amp;quot;3 mon&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 Table:&lt;br /&gt;
  1 LandsatJan 20 jan 2001 ... &lt;br /&gt;
  2 LandsatApr 20 apr 2001 ...&lt;br /&gt;
  3 LandsatJul 20 jul 2001 ...&lt;br /&gt;
&lt;br /&gt;
===== OO Layer =====&lt;br /&gt;
&lt;br /&gt;
* it should be possible to have data access with spatial-temporal functions:&lt;br /&gt;
** value = g4dDataObject-&amp;gt;Get4DValue(x, y, z, timestamp) -- for volume maps&lt;br /&gt;
** value = g4dDataObject-&amp;gt;Get4DValue(x, y, timestamp) -- for raster maps&lt;br /&gt;
&lt;br /&gt;
* based on this functionality a 4d animation tool based on VTK should be implemented&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Jachym's notes ====&lt;br /&gt;
On IRC, we discussed, that time series would be stored in database (PostgreSQL). If data format would be like YYYY-MM-DD-HH-MM-SS, the &amp;quot;database&amp;quot; could be some textfile, which would be sortable via standard 'sort' and g.* modules would not need to speek SQL - KISS, works even on a toaster.&lt;br /&gt;
&lt;br /&gt;
g.list rast should print all raster maps. Raster map belonging to time serie does not stop to be raster map. New data type &amp;quot;times&amp;quot; has to be created, so that modules like g.list, g.remove ... can handle it. &lt;br /&gt;
&lt;br /&gt;
==== Open Issues ====&lt;br /&gt;
* will 'g.list rast' show also rasters belonging to time series?&lt;br /&gt;
* how to deal with huge file number in a folder? (very long serie often deals with a huge number of maps)&lt;br /&gt;
** limitation: how many rasters can a folder contain ('fileno' in /etc/security/limits.conf). &lt;br /&gt;
** efficiency: huge number of files will tremendiously slow down each map listing procedures.&lt;br /&gt;
* associated color table: only one color table should serve one series (avoid multiple color table for each map)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>⚠️Jachym</name></author>
	</entry>
</feed>