<?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%8FCmbarton</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%8FCmbarton"/>
	<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/wiki/Special:Contributions/%E2%9A%A0%EF%B8%8FCmbarton"/>
	<updated>2026-05-25T18:51:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Documentation_and_Education_Working_Group&amp;diff=27273</id>
		<title>Documentation and Education Working Group</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Documentation_and_Education_Working_Group&amp;diff=27273"/>
		<updated>2023-10-30T18:41:25Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation and education working group is established to coordinate the development of documentation and education materials to meet the needs of a wide range of GRASS users.&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
* coordinate development of documentation and education materials&lt;br /&gt;
* coordinate development of sample datasets and localized datasets&lt;br /&gt;
* decide on best formats and place for documentation, tutorials&lt;br /&gt;
* develop onboarding materials for contributors of documentation and education materials&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
Let us know who you are and what are your interests and topics you want to discuss and develop as part of this group.&lt;br /&gt;
&lt;br /&gt;
; [https://wiki.osgeo.org/wiki/User:Helena Helena Mitasova] (working group coordinator)&lt;br /&gt;
: Professor at North Carolina State University&lt;br /&gt;
: Interested in wiki pages cleanup, manual pages updates, integration of GRASS in courses, localized data sets&lt;br /&gt;
&lt;br /&gt;
; [https://wiki.osgeo.org/wiki/Anna_Petrasova Anna Petrasova]&lt;br /&gt;
: Researcher, educator and software developer at North Carolina State University&lt;br /&gt;
: Topics of interest include developing tutorials and workshops in Jupyter Notebooks, onboarding materials&lt;br /&gt;
&lt;br /&gt;
; Eric Patton&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Florian Betz&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Hernán De Angelis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Micha Silver&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Titus Kiprutto&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Paulo van Breugel&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Brendan Harmon&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; [https://spatial-ecology.net/docs/build/html/COURSETRAINERS/trainers.html#giuseppe-amatulli-phd:Giuseppe Amatulli]&lt;br /&gt;
: Research scientist at School of the Environment, Yale University. Educator at Spatial Ecology&lt;br /&gt;
: Topics of interest include developing tutorials and workshops in GRASS&lt;br /&gt;
&lt;br /&gt;
; [https://cmbarton.github.io Michael Barton]&lt;br /&gt;
: Professor in the School of Human Evolution &amp;amp; Social Change, and School of Complex Adaptive Systems at Arizona State University. &lt;br /&gt;
: I am a complex systems scientist who combines anthropology, archaeology, earth science, and information technologies to study long-term dynamics and interactions of people and landscapes in the Anthropocene. I also maintain the [https://cmbarton.github.io/grass-mac GRASS for Mac site]. Topics of interest include using open source software in the classroom, improving documentation pages, developing localized data sets for learning GRASS, using GRASS geospatial tools in other platforms. &lt;br /&gt;
&lt;br /&gt;
; Massimo Di Stefano&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Carlos Grohmann&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be added to this working group, please contact the group coordinator.&lt;br /&gt;
&lt;br /&gt;
== Communication Channels ==&lt;br /&gt;
* [https://lists.osgeo.org/mailman/listinfo/grass-user grass-user] and [https://lists.osgeo.org/mailman/listinfo/grass-dev grass-dev] mailing lists&lt;br /&gt;
* [https://github.com/OSGeo/grass OSGeo/grass GitHub issues and pull requests] and [https://github.com/orgs/OSGeo/projects/3 GitHub project]&lt;br /&gt;
* [https://app.gitter.im/#/room/#grassgis_documentation:gitter.im grassgis/documentation gitter room]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:Working_Groups]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Documentation_and_Education_Working_Group&amp;diff=27272</id>
		<title>Documentation and Education Working Group</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Documentation_and_Education_Working_Group&amp;diff=27272"/>
		<updated>2023-10-30T18:22:39Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Updated info for Michael Barton */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation and education working group is established to coordinate the development of documentation and education materials to meet the needs of a wide range of GRASS users.&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
* coordinate development of documentation and education materials&lt;br /&gt;
* coordinate development of sample datasets and localized datasets&lt;br /&gt;
* decide on best formats and place for documentation, tutorials&lt;br /&gt;
* develop onboarding materials for contributors of documentation and education materials&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
Let us know who you are and what are your interests and topics you want to discuss and develop as part of this group.&lt;br /&gt;
&lt;br /&gt;
; [https://wiki.osgeo.org/wiki/User:Helena Helena Mitasova] (working group coordinator)&lt;br /&gt;
: Professor at North Carolina State University&lt;br /&gt;
: Interested in wiki pages cleanup, manual pages updates, integration of GRASS in courses, localized data sets&lt;br /&gt;
&lt;br /&gt;
; [https://wiki.osgeo.org/wiki/Anna_Petrasova Anna Petrasova]&lt;br /&gt;
: Researcher, educator and software developer at North Carolina State University&lt;br /&gt;
: Topics of interest include developing tutorials and workshops in Jupyter Notebooks, onboarding materials&lt;br /&gt;
&lt;br /&gt;
; Eric Patton&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Florian Betz&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Hernán De Angelis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Micha Silver&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Titus Kiprutto&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Paulo van Breugel&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Brendan Harmon&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; [https://spatial-ecology.net/docs/build/html/COURSETRAINERS/trainers.html#giuseppe-amatulli-phd:Giuseppe Amatulli]&lt;br /&gt;
: Research scientist at School of the Environment, Yale University. Educator at Spatial Ecology&lt;br /&gt;
: Topics of interest include developing tutorials and workshops in GRASS&lt;br /&gt;
&lt;br /&gt;
; [https://cmbarton.github.io Michael Barton]&lt;br /&gt;
: Professor in the School of Human Evolution &amp;amp; Social Change, and School of Complex Adaptive Systems at Arizona State University. &lt;br /&gt;
: I am a complex systems scientist who combines anthropology, archaeology, earth science, and information technologies to study long-term dynamics and interactions of people and landscapes in the Anthropocene. I also maintain the [https://cmbarton.github.io/grass-mac GRASS for Mac site].&lt;br /&gt;
&lt;br /&gt;
; Massimo Di Stefano&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Carlos Grohmann&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be added to this working group, please contact the group coordinator.&lt;br /&gt;
&lt;br /&gt;
== Communication Channels ==&lt;br /&gt;
* [https://lists.osgeo.org/mailman/listinfo/grass-user grass-user] and [https://lists.osgeo.org/mailman/listinfo/grass-dev grass-dev] mailing lists&lt;br /&gt;
* [https://github.com/OSGeo/grass OSGeo/grass GitHub issues and pull requests] and [https://github.com/orgs/OSGeo/projects/3 GitHub project]&lt;br /&gt;
* [https://app.gitter.im/#/room/#grassgis_documentation:gitter.im grassgis/documentation gitter room]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:Working_Groups]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Global_datasets&amp;diff=27136</id>
		<title>Global datasets</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Global_datasets&amp;diff=27136"/>
		<updated>2023-07-10T21:50:49Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Climatic data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Raster data =&lt;br /&gt;
&lt;br /&gt;
== Elevation data ==&lt;br /&gt;
&lt;br /&gt;
=== ASTER topography (GDEM V1) ===&lt;br /&gt;
&lt;br /&gt;
Improved ASTER GDEM 1 from 2009:&lt;br /&gt;
&lt;br /&gt;
GDEM global 30m elevation calculated from stereo-pair images collected by the Terra satellite.&lt;br /&gt;
''&amp;quot;This is the most complete, consistent global digital elevation data yet made available to the world.&amp;quot;''&lt;br /&gt;
This is a very new dataset, at version 1  (treat as ''experimental''). Accuracy will be improved in forthcoming versions (validation with SRTM, etc.; [http://blog.neteler.org/aster-gdem-30m-quality-assessment/ see assessment here] and [http://www.viewfinderpanoramas.org/reviews.html#aster here]).&lt;br /&gt;
&lt;br /&gt;
* ''[https://lpdaac.usgs.gov/lpdaac/about/news_archive/monday_june_22_20092 pre-release announcement]''&lt;br /&gt;
* [http://www.nasa.gov/home/hqnews/2009/jun/HQ_09-150_ASTER_Topographic_Map.html NASA press release]&lt;br /&gt;
* [https://wist.echo.nasa.gov/~wist/api/imswelcome/ Warehouse Inventory Search Tool] or [http://www.gdem.aster.ersdac.or.jp/search.jsp Easy search tool] (Data download)&lt;br /&gt;
&lt;br /&gt;
'''Tutorial:''' [[ASTER topography]]&lt;br /&gt;
&lt;br /&gt;
''See also: [http://blog.neteler.org/aster-gdem-30m-quality-assessment/ ASTER GDEM 30m quality assessment]''&lt;br /&gt;
&lt;br /&gt;
=== ASTER topography (GDEM V2) ===&lt;br /&gt;
&lt;br /&gt;
Improved ASTER GDEM 2 from 2011:&lt;br /&gt;
* https://lpdaac.usgs.gov/products/aster_products_table/astgtm&lt;br /&gt;
&lt;br /&gt;
The ASTER GDEM covers land surfaces between 83°N and 83°S and is comprised of 22,702 tiles.  Tiles that contain at least 0.01% land area are included.  The ASTER GDEM is distributed as Geographic Tagged Image File Format (GeoTIFF) files with geographic coordinates (latitude, longitude).  The data are posted on a '''1 arc-second''' (approximately '''30–m at the equator''') grid and referenced to the 1984 World Geodetic System (WGS84)/ 1996 Earth Gravitational Model (EGM96) geoid. &lt;br /&gt;
&lt;br /&gt;
'''Notes:''' this DEM can be rather well filtered and smoothed with the [http://personalpages.manchester.ac.uk/staff/neil.mitchell/mdenoise/ Sun's denoising algorithm] (using GDAL and free / open source program &amp;lt;mdenoise&amp;gt; or simply GRASS add-on {{AddonCmd|r.denoise}}.&lt;br /&gt;
&lt;br /&gt;
Experiments showed that the best smoothing of ASTER GDEM 2 is reached with such parameters of &amp;lt;mdenoise&amp;gt;:&lt;br /&gt;
* threshold = 0.8&lt;br /&gt;
* iterations = 10-20&lt;br /&gt;
&lt;br /&gt;
Also filtering with {{cmd|r.neighbors}} by &amp;quot;average&amp;quot; method and window size &amp;gt;=5 is quite useful to remove some noise from DEM.&lt;br /&gt;
&lt;br /&gt;
''See also: [http://www.isprs2012.org/abstract/299.asp Validation of the ASTER Global Digital Elevation Model Version 2 over the Conterminous United States]''&lt;br /&gt;
&lt;br /&gt;
=== ACE2 ===&lt;br /&gt;
&lt;br /&gt;
The ACE2 Global Digital Elevation Model is available at 3&amp;quot;, 30&amp;quot; and 5' spatial resolutions.&lt;br /&gt;
&lt;br /&gt;
* http://tethys.eaprs.cse.dmu.ac.uk/ACE2/&lt;br /&gt;
&lt;br /&gt;
Import example:&lt;br /&gt;
  r.in.bin -f input=&amp;quot;00N105E_3S.ACE2&amp;quot; output=&amp;quot;ACE2_00N105E&amp;quot; bytes=4 \&lt;br /&gt;
           order=&amp;quot;native&amp;quot; north=15 south=0 east=120 west=105 \&lt;br /&gt;
           rows=18000 cols=18000&lt;br /&gt;
&lt;br /&gt;
=== CleanTOPO2 (DEM) ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.shadedrelief.com/cleantopo2/ CleanTOPO2 download]: Edited SRTM30 Plus World Elevation Data&lt;br /&gt;
&lt;br /&gt;
Import in GRASS:&lt;br /&gt;
  r.in.gdal CleanTOPO2.tif out=cleanTOPO2.tmp -l -o&lt;br /&gt;
  g.region rast=cleanTOPO2  -p -g&lt;br /&gt;
  # rescale from odd integer values to true world values&lt;br /&gt;
  r.rescale cleanTOPO2.tmp out=cleanTOPO2 to=-10701,8248&lt;br /&gt;
  r.colors cleanTOPO2_final col=terrain&lt;br /&gt;
&lt;br /&gt;
[[Image:CleanTOPO2_map.png|thumb|center|300px|Rescaled ClearTOPO2 map]]&lt;br /&gt;
&lt;br /&gt;
=== EGM2008 Geoid Data (Earth Gravitational Model) ===&lt;br /&gt;
&lt;br /&gt;
Global 2.5 Minute Geoid Undulations:&lt;br /&gt;
* download GIS Format at http://earth-info.nga.mil/GandG/wgs84/gravitymod/egm2008/egm08_gis.html&lt;br /&gt;
&lt;br /&gt;
[[Image:Trentino_egm2008_map_5m_resampled.jpg|thumb|center|300px|Geoid undulations in Trentino, Italy]]&lt;br /&gt;
&lt;br /&gt;
Verifications of points can be done with the http://geographiclib.sourceforge.net/cgi-bin/GeoidEval&lt;br /&gt;
&lt;br /&gt;
=== ETOPO (DEM) ===&lt;br /&gt;
&lt;br /&gt;
The ETOPO datasets provide global topography and bathymetry at 1', 2', and 5' per-cell resolutions.&lt;br /&gt;
&lt;br /&gt;
==== ETOPO1 (DEM) ====&lt;br /&gt;
&lt;br /&gt;
* http://www.ngdc.noaa.gov/mgg/global/&lt;br /&gt;
&lt;br /&gt;
* '''The ''cell registered'' version can be loaded directly into a lat/lon location'''. GRASS raster data is cell registered (see the [[GRASS raster semantics]] page)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Special care must be taken with the ''grid registered'' version. It can not be loaded directly into a lat/lon location as the parameters found in the .hdr file exceed the limits of polar coordinate space: they have N,S rows which go 1/2 a cell beyond 90 latitude, when considered in the ''cell registered'' convention.&lt;br /&gt;
: So the data needs to have those 90deg N,S rows cropped away, and while we're at it we crop away a redundant overlapping column at 180 longitude. To do this we have to first tell the GIS a little fib during import to squeeze the data into lat/lon space, then crop away the spurious rows and column, then finally reset the resulting map's bounds to its true extent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # Import grid registered binary float, fibbing about its true extent&lt;br /&gt;
 r.in.bin -f in=etopo1_bed_g.flt out=etopo1_bed_g.raw \&lt;br /&gt;
    n=90 s=-90 e=180 w=-180 rows=10801 cols=21601 anull=-9999&lt;br /&gt;
 &lt;br /&gt;
 # reduce the working region by 1 cell&lt;br /&gt;
 g.region rast=etopo1_bed_g.raw&lt;br /&gt;
 eval `g.region -g`&lt;br /&gt;
 g.region n=n-$nsres s=s+$nsres e=e-$ewres -p&lt;br /&gt;
 &lt;br /&gt;
 # save smaller raster and remove original&lt;br /&gt;
 r.mapcalc &amp;quot;etopo1_bed_g.crop = etopo1_bed_g.raw&amp;quot;&lt;br /&gt;
 g.remove etopo1_bed_g.raw&lt;br /&gt;
&lt;br /&gt;
 # re-establish the correct bounds, now that they'll fit&lt;br /&gt;
 r.region etopo1_bed_g.crop n=89:59:30N s=89:59:30S w=179:59:30E e=179:59:30E&lt;br /&gt;
 g.region rast=etopo1_bed_g.crop&lt;br /&gt;
&lt;br /&gt;
 # check that N,S,E,W and Res are all nice and clean:&lt;br /&gt;
 r.info etopo1_bed_g.crop&lt;br /&gt;
&lt;br /&gt;
 # looks good, so accept the results by resetting the map name&lt;br /&gt;
 g.rename etopo1_bed_g.crop,etopo1_bed_g&lt;br /&gt;
&lt;br /&gt;
 # set to use appropriate color rules&lt;br /&gt;
 r.colors etopo1_bed_g color=etopo2&lt;br /&gt;
&lt;br /&gt;
 # set the 'units' metadata field (for elevation data contained within the map)&lt;br /&gt;
 r.support etopo1_bed_g units=meters&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* For the problematic ''grid registered'' version, the resulting {{cmd|r.info}} report should look like:&lt;br /&gt;
 |   Rows:         10799                                                      |&lt;br /&gt;
 |   Columns:      21600                                                      |&lt;br /&gt;
 |   Total Cells:  233258400                                                  |&lt;br /&gt;
 |        Projection: Latitude-Longitude                                      |&lt;br /&gt;
 |            N:  89:59:30N    S:  89:59:30S   Res:  0:01                     |&lt;br /&gt;
 |            E: 179:59:30E    W: 179:59:30E   Res:  0:01                     |&lt;br /&gt;
 |   Range of data:    min = -10898  max = 8271                               |&lt;br /&gt;
(the east and west bounds of the map touch 1/2 a cell west of 180 longitude)&lt;br /&gt;
&lt;br /&gt;
* For the problematic ''grid registered'' version, since the data's grid is 1/2 a cell shifted from nicely rounded 1 arc-minutes (0:01), you'll need to ensure that the mapset's region preserves that alignment after zooming or panning:&lt;br /&gt;
 g.region align=etopo1_bed_g -p&lt;br /&gt;
: (or oversample and set the region resolution to 1/2 arc-minutes (0:00:30), which will be four times as slow)&lt;br /&gt;
&lt;br /&gt;
==== ETOPO2 (DEM) ====&lt;br /&gt;
&lt;br /&gt;
* See the ETOPO2 (2' global) article by M.H. Bowman in the [http://grass.osgeo.org/newsletter/GRASSNews_vol1.pdf GRASS Newsletter, 1:8-11, August 2004].&lt;br /&gt;
: [http://www.ngdc.noaa.gov/mgg/fliers/01mgg04.html ETOPO2v2 data download] (take for example the ETOPO2v2g_f4_LSB.flt file)&lt;br /&gt;
&lt;br /&gt;
=== GTOPO30 (DEM) ===&lt;br /&gt;
&lt;br /&gt;
* Data [http://eros.usgs.gov/#/Find_Data/Products_and_Data_Available/gtopo30_info download] - Import with {{cmd|r.in.gdal}}.&lt;br /&gt;
&lt;br /&gt;
''Note:'' To avoid that the GTOPO30 data are read incorrectly, you can add a new line &amp;quot;PIXELTYPE SIGNEDINT&amp;quot; in the .HDR to force interpretation of the file as signed rather than unsigned integers. Then the .DEM file can be imported. Finally, e.g. the 'terrain' color table can be assigned to the imported map with r.colors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Global Multi-resolution Terrain Elevation Data 2010 (GMTED2010) ===&lt;br /&gt;
&lt;br /&gt;
* Data download: [https://lta.cr.usgs.gov/GMTED2010 Web] and [http://topotools.cr.usgs.gov/GMTED_viewer/gmted2010_global_grids.php FTP] - Import with {{cmd|r.in.gdal}}. See also [https://erouault.blogspot.de/2011/12/seamless-access-to-remote-global-multi.html related GDAL blog post]&lt;br /&gt;
&lt;br /&gt;
Tiles: Import of GMTED2010 tiles in GRASS GIS:&lt;br /&gt;
&lt;br /&gt;
  r.in.gdal 30N000E_20101117_gmted_mea075.tif out=gmted2010_30N000E_20101117&lt;br /&gt;
  r.colors gmted2010_30N000E_20101117 color=elevation&lt;br /&gt;
  g.region rast=gmted2010_30N000E_20101117&lt;br /&gt;
  r.relief input=gmted2010_30N000E_20101117 output=gmted2010_30N000E_20101117.shade&lt;br /&gt;
  r.shade shade=gmted2010_30N000E_20101117.shade color=gmted2010_30N000E_20101117 \&lt;br /&gt;
   output=gmted2010_30N000E_20101117_shaded&lt;br /&gt;
  d.mon wx0&lt;br /&gt;
  d.rast gmted2010_30N000E_20101117_shaded&lt;br /&gt;
  d.grid 1 color=red textcolor=red&lt;br /&gt;
&lt;br /&gt;
[[Image:Gmted2010_30N000E_20101117_shaded.png|thumb|center|300px|GMTED2010 example: Trento - Garda Lake - Verona area (Northern Italy)]]&lt;br /&gt;
&lt;br /&gt;
Full maps:&lt;br /&gt;
&lt;br /&gt;
  # mean elevation global GMTED2010 map, 30 arc-sec&lt;br /&gt;
  wget http://edcintl.cr.usgs.gov/downloads/sciweb1/shared/topo/downloads/GMTED/Grid_ZipFiles/mn30_grd.zip&lt;br /&gt;
  unzip mn30_grd.zip&lt;br /&gt;
  &lt;br /&gt;
Important: the GMTED2010 map exceeds the -180°..+180° range due to the [https://pubs.usgs.gov/of/2011/1073/pdf/of2011-1073.pdf GMTED2010 pixel geometry] (PDF). Note that this cannot be handled in GRASS GIS &amp;lt; 7.4. Please update to GRASS GIS 7.4 or newer.&lt;br /&gt;
&lt;br /&gt;
=== GEBCO Bathymetric Chart ===&lt;br /&gt;
&lt;br /&gt;
* The General Bathymetric Chart of the Oceans (original 1' release 2003, new 1' and 30&amp;quot; releases 2008, new 15&amp;quot; released 2020)&lt;br /&gt;
: http://www.gebco.net/data_and_products/gridded_bathymetry_data/&lt;br /&gt;
: http://www.bodc.ac.uk/data/online_delivery/gebco/&lt;br /&gt;
&lt;br /&gt;
The GEBCO_2020 is available in NetCDF or GeoTIFF format.&lt;br /&gt;
&lt;br /&gt;
{{cmd|r.in.gdal}} can be used to import the GMT netCDF files directly, or if that doesn't work you can use GMT tools to convert to an old-style native GMT format and import that with {{cmd|r.in.bin}}.&lt;br /&gt;
: example:  (GEBCO 2003 1' data)&lt;br /&gt;
&lt;br /&gt;
 # convert to an old style GMT binary .grd using grdreformat&lt;br /&gt;
 $ grdreformat 3n24s47w14w.grd 3n24s47w14w_Native.grd=bs&lt;br /&gt;
 &lt;br /&gt;
 # then import into GRASS,&lt;br /&gt;
 GRASS&amp;gt; r.in.bin -h -s bytes=2 in=3n24s47w14w_Native.grd out=3n24s47w14w&lt;br /&gt;
 &lt;br /&gt;
 # and set some nice colors&lt;br /&gt;
 GRASS&amp;gt; r.colors 3n24s47w14w rules=- &amp;lt;&amp;lt; EOF&lt;br /&gt;
 nv magenta&lt;br /&gt;
 0% black&lt;br /&gt;
 -7740 0:0:168&lt;br /&gt;
 0 84:176:248&lt;br /&gt;
 0 40:124:0&lt;br /&gt;
 522 68:148:24&lt;br /&gt;
 1407 148:228:108&lt;br /&gt;
 1929 232:228:108&lt;br /&gt;
 2028 232:228:92&lt;br /&gt;
 2550 228:160:32&lt;br /&gt;
 2724 216:116:8&lt;br /&gt;
 2730 grey&lt;br /&gt;
 2754 grey&lt;br /&gt;
 2760 252:252:252&lt;br /&gt;
 2874 252:252:252&lt;br /&gt;
 2883 192:192:192&lt;br /&gt;
 2913 192:192:192&lt;br /&gt;
 100% 252:252:252&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== Global Multi-Resolution Topography (GMRT DEM) ===&lt;br /&gt;
: ''From Columbia University's Lamont-Doherty Earth Observatory''&lt;br /&gt;
(it is reported that this is what Google Maps uses for their global bathymetry)&lt;br /&gt;
&lt;br /&gt;
* Global ~1 arc-second (~90 m) topography using multi-beam and satellite data in the oceans combined with SRTM on land.&lt;br /&gt;
* Full information at: http://www.marine-geo.org/portals/gmrt/&lt;br /&gt;
* Accessible via [http://www.geomapapp.org/ GeoMapApp] or [http://www.virtualocean.org/ Virtual Ocean] software.&lt;br /&gt;
* Very convenient to download into GRASS via wget:&lt;br /&gt;
&lt;br /&gt;
  export `g.region -g`&lt;br /&gt;
  wget &amp;quot;http://www.marine-geo.org/cgi-bin/getgridB?west=${w}&amp;amp;east=${e}&amp;amp;south=${s}&amp;amp;north=${n}&amp;amp;resolution=1&amp;quot; -O /tmp/test.grd&lt;br /&gt;
  r.in.gdal /tmp/test.grd output=GMRT -o&lt;br /&gt;
  rm /tmp/test.grd&lt;br /&gt;
&lt;br /&gt;
* Note: Downloaded file contains no projection information, but is EPSG:4326 (WGS84 Geographic).  The file size is limited, but lower resolution (resolution=2,4,8) data can be downloaded for larger areas.&lt;br /&gt;
&lt;br /&gt;
=== NASADEM ===&lt;br /&gt;
&lt;br /&gt;
1-arc second (~30 m @ equator) global only-land.&lt;br /&gt;
&lt;br /&gt;
https://lpdaac.usgs.gov/news/release-nasadem-data-products/&lt;br /&gt;
&lt;br /&gt;
See also {{AddonCmd|r.in.nasadem|version=7}} addon&lt;br /&gt;
&lt;br /&gt;
=== Smith and Sandwell DEM ===&lt;br /&gt;
&lt;br /&gt;
* Merge info here from the [[Marine Science]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== SRTM DEM ===&lt;br /&gt;
&lt;br /&gt;
[http://www2.jpl.nasa.gov/srtm/ Space Shuttle Radar Topography Mission] - several SRTM Data Products are available:&lt;br /&gt;
* Original data - SRTM 3 V001 arc-seconds Non-Void Filled elevation data (US: 1 arc-second (approximately 30 meters); outside the US at 3 arc-seconds (approximately 90 meters))&lt;br /&gt;
* SRTM V003 3 Arc-Second Global Void Filled elevation data, with voids filled using interpolation algorithms in conjunction with other sources of elevation data  (US: 1 arc-second (approximately 30 meters); outside the US at 3 arc-seconds (approximately 90 meters))&lt;br /&gt;
** SRTM V3 tiles at 3 arc seconds resolution from: http://e4ftl01.cr.usgs.gov/SRTM/SRTMGL3.003/2000.02.11/ - or simply use {{AddonCmd|r.in.srtm.region}}&lt;br /&gt;
* '''SRTM V003 1 Arc-Second Global elevation data''' offer worldwide coverage of '''void filled''' data at a resolution of 1 arc-second (30 meters) and provide open distribution of this high-resolution global data set.&lt;br /&gt;
** [http://earthexplorer.usgs.gov/ EarthExplorer] can be used to search, preview, and download Shuttle Radar Topography Mission (SRTM) 1 Arc-Second Global data. The collections are located under the Digital Elevation category.&lt;br /&gt;
** FTP download: http://e4ftl01.cr.usgs.gov/SRTM/SRTMGL1.003/2000.02.11/ - or simply use {{AddonCmd|r.in.srtm.region}}&lt;br /&gt;
** Web-based [http://dwtkns.com/srtm30m/ 30-Meter SRTM Tile Downloader] (select from map)&lt;br /&gt;
&lt;br /&gt;
Import:&lt;br /&gt;
* Using {{cmd|r.in.gdal}} or {{cmd|r.import}} or {{cmd|r.in.srtm}} or {{AddonCmd|r.in.srtm.region}}&lt;br /&gt;
* see [[HOWTO import SRTM elevation data]], focused on the SRTM 3 arc-seconds Non-Void Filled elevation data&lt;br /&gt;
&lt;br /&gt;
=== SRTM15+ DEM ===&lt;br /&gt;
&lt;br /&gt;
SRTM15+ data consists of 33 files of global topography in the same format as the SRTM30plus products. The grid resolution is 15 seconds which is roughly 500 m at the equator.&lt;br /&gt;
&lt;br /&gt;
https://topex.ucsd.edu/WWW_html/srtm15_plus.html&lt;br /&gt;
&lt;br /&gt;
=== SRTM30plus data DEM ===&lt;br /&gt;
&lt;br /&gt;
SRTM30plus data consists of 33 files of global topography in the same format as the SRTM30 products distributed by the USGS EROS data center. The grid resolution is 30 seconds which is roughly one kilometer (1 km).&lt;br /&gt;
&lt;br /&gt;
Land data are based on the 1-km averages of topography derived from the USGS SRTM30 grided DEM data product created with data from the NASA Shuttle Radar Topography Mission. GTOPO30 data are used for high latitudes where SRTM data are not available.&lt;br /&gt;
&lt;br /&gt;
Ocean data are based on the Smith and Sandwell global 2-minute grid between latitudes +/- 72 degrees. Higher resolution grids have been added from the LDEO Ridge Multibeam Synthesis Project and the NGDC Coastal Relief Model. Arctic bathymetry is from the International Bathymetric Chart of the Oceans (IBCAO).&lt;br /&gt;
&lt;br /&gt;
All data are derived from public domain sources and these data are also in the public domain.&lt;br /&gt;
&lt;br /&gt;
GRASS 6 script {{{cmd|r.in.srtm}}} described in GRASSNews vol. 3 won't work with this dataset (as it was made for the original SRTM HGT files). But you can import SRTM30plus tiles into GRASS this way:&lt;br /&gt;
&lt;br /&gt;
 r.in.bin -sb input=e020n40.Bathymetry.srtm output=e020n40_topex bytes=2 \&lt;br /&gt;
  north=40 south=-10 east=60 west=20 r=6000 c=4800&lt;br /&gt;
 r.colors e020n40_topex rules=etopo2&lt;br /&gt;
&lt;br /&gt;
; Source&lt;br /&gt;
: GRASS Users Mailing List http://lists.osgeo.org/pipermail/grass-user/2005-August/030063.html&lt;br /&gt;
; Getting as SRTM30plus tiles: ftp://topex.ucsd.edu/pub/srtm30_plus/srtm30/data/&lt;br /&gt;
; Getting as SRTM30plus huge file: ftp://topex.ucsd.edu/pub/srtm30_plus/topo30/&lt;br /&gt;
; SRTMPLUS WCS server: http://svn.osgeo.org/gdal/trunk/autotest/gdrivers/data/srtmplus.wcs (read with {{cmd|r.external}})&lt;br /&gt;
&lt;br /&gt;
=== SRTM Water Body Database SRTMSWBD V003 ===&lt;br /&gt;
&lt;br /&gt;
SRTM Water Body Database V003&lt;br /&gt;
* Format documentation: https://lpdaac.usgs.gov/dataset_discovery/measures/measures_products_table/srtmswbd_v003&lt;br /&gt;
* FTP raster data (30m res water bodies): http://e4ftl01.cr.usgs.gov/SRTM/SRTMSWBD.003/&lt;br /&gt;
&lt;br /&gt;
Import into GRASS GIS 7 (lat-long location):&lt;br /&gt;
 r.in.bin -sb input=N00E108.raw output=N00E108_swbd bytes=1 north=0 south=-10 east=108 west=98 r=3601 c=3601   &amp;lt;&amp;lt;= DRAFT - TODO fix n,s,e,w - calculate from filename&lt;br /&gt;
&lt;br /&gt;
=== TanDEM-X DEM ===&lt;br /&gt;
&lt;br /&gt;
This is a 90 m only-land DEM.&lt;br /&gt;
Data from 2010-12-12 through 2015-01-16&lt;br /&gt;
&lt;br /&gt;
https://geoservice.dlr.de/data-assets/ju28hc7pui09.html&lt;br /&gt;
&lt;br /&gt;
== Soil data ==&lt;br /&gt;
&lt;br /&gt;
=== Harmonized World Soil Database (HWSD Database) ===&lt;br /&gt;
&lt;br /&gt;
Download: http://webarchive.iiasa.ac.at/Research/LUC/External-World-soil-database/HTML/&lt;br /&gt;
&lt;br /&gt;
[http://webarchive.iiasa.ac.at/Research/LUC/External-World-soil-database/HTML/DataDesc.html?sb=12 Spatial reference system:] [http://spatialreference.org/ref/epsg/4326/ EPSG:4326] (LatLong WGS84)&lt;br /&gt;
&lt;br /&gt;
Import:&lt;br /&gt;
 grass70 -c EPSG:4326 ~/grassdata/hwsd&lt;br /&gt;
 # -e: expand location to dataset; -o: override (missing) projection in input dataset:&lt;br /&gt;
 r.in.gdal input=hwsd.bil output=hwSoil -e -o&lt;br /&gt;
 g.region raster=hwSoil -p&lt;br /&gt;
 r.category hwSoil&lt;br /&gt;
&lt;br /&gt;
The data is distributed with an MSAccess .mdb which contains additional data for each of the categories in the raster file. Opening the file in access, the data is found in the query &amp;quot;HWSD_Q&amp;quot;. Save this query in .csv format (with a name like &amp;quot;HWSD_Q.csv&amp;quot;) so that it may then be imported into GRASS. After that, it is necessary to replace the commas with dots (find &amp;amp; replace) in the .csv file. Before you can import it, you also need a file &amp;quot;HWSD_Q.csvt&amp;quot;, which contains a single line listing the type for each column in the database:&lt;br /&gt;
 &amp;quot;Integer&amp;quot;,&amp;quot;String&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;String&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;String&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;String&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;String&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Integer&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;,&amp;quot;Real&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With both the .csv and the .csvt file in the same directory, you can then import them into GRASS:&lt;br /&gt;
 db.in.ogr input=~/grassdata/hwsd/HWSD_Q.csv output=hwsdData&lt;br /&gt;
&lt;br /&gt;
The data cannot be connected directly to the raster, it must be converted to a vector first:&lt;br /&gt;
 g.region raster=hwSoil&lt;br /&gt;
 r.to.vect -v input=hwSoil output=hwSoil feature=area&lt;br /&gt;
 v.db.droptable hwSoil&lt;br /&gt;
 db.droptable -f hwSoil # delete the table completely&lt;br /&gt;
&lt;br /&gt;
Note that the table includes multiple rows for each polygon, corresponding&lt;br /&gt;
to the dominant and various numbers of subdominant soils. To select only&lt;br /&gt;
the dominant soil layer:&lt;br /&gt;
&lt;br /&gt;
 db.select table=hwsdData sql='select * from hwsdData where SEQ = 1' \&lt;br /&gt;
          output=domSoil.csv separator=,&lt;br /&gt;
&lt;br /&gt;
This saves a copy of the table that contains only the dominant soil type for each polygon as domSoil.csv. This needs to be reloaded into the GRASS database. Since it has the same columns as HWSD_Q.csv, we can use the labels for that file:&lt;br /&gt;
&lt;br /&gt;
 cp HWSD_Q.csvt domSoil.csvt&lt;br /&gt;
&lt;br /&gt;
Then we can load domSoil.csv:&lt;br /&gt;
&lt;br /&gt;
 db.in.ogr \&lt;br /&gt;
    input=~/grassdata/downloads/harmonized_world_soil_database/domSoil.csv \&lt;br /&gt;
    output=domSoil &lt;br /&gt;
&lt;br /&gt;
Now at last we can connect the database to the vector file:&lt;br /&gt;
&lt;br /&gt;
 v.db.connect -o map=hwsd table=domSoil driver=sqlite key=MU_GLOBAL&lt;br /&gt;
&lt;br /&gt;
To create a new raster map taking the values from the table:&lt;br /&gt;
 g.region raster=hwSoil  ## make sure we get the whole map&lt;br /&gt;
 v.to.rast in=hwSoil out=T_SAND col=T_SAND&lt;br /&gt;
&lt;br /&gt;
=== SoilGrids.org 250m soil taxonomy map ===&lt;br /&gt;
&lt;br /&gt;
SoilGrids is a system for automated soil mapping based on global soil profile and environmental covariate data. SoilGrids represents a collection of updatable soil property and class maps of the world at 1 km and 250 m spatial resolution produced using automated soil mapping based on machine learning algorithms. It aims at becoming OpenStreetMap and/or OpenWeatherMap for soil data. SoilGrids predictions are updated on a regular basis (at least every few months). For more details about the SoilGrids system, please refer to the SoilGrids project site: https://www.soilgrids.org/#/?layer=geonode:taxnwrb_250m&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
URL=ftp://ftp.soilgrids.org/data/recent/TAXNWRB_250m_ll.tif&lt;br /&gt;
&lt;br /&gt;
# the Soilgrids GeoTIFF data suffer from a resolution precision problem since they were produced with SAGA:&lt;br /&gt;
# resolution is stored as 0.002083333000000 while it should be 0.002083333333333, hence the geometry is not fully correct&lt;br /&gt;
# this likely originates from Soilgrids being processed in SAGA which cuts decimals after the 10th decimal place, hence comes with a precision problem &lt;br /&gt;
&lt;br /&gt;
export NAME=`basename $URL .tif`&lt;br /&gt;
wget $URL&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OLD OLD OLD start --&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
# see below for the better way how to fix SoilGrids data&lt;br /&gt;
gdal_translate --config GDAL_CACHEMAX 2000 -a_ullr $COORDS -co &amp;quot;COMPRESS=DEFLATE&amp;quot; $NAME.tif ${NAME}_fixed.tif&lt;br /&gt;
gdalinfo ${NAME}_fixed.tif&lt;br /&gt;
&lt;br /&gt;
grass72 -c ${NAME}_fixed.tif ~/grassdata/latlong --exec r.import input=${NAME}_fixed.tif output=${NAME}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
-- OLD OLD OLD end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
New fix &amp;amp; import method:&lt;br /&gt;
&lt;br /&gt;
Starting with '''GRASS GIS 7.4.x''', there is new flag in {{cmd|r.in.gdal}} to auto-adjust such small resolution precision issues: '''-a''' ''- Auto-adjustment for lat/lon. Attempt to fix small precision errors in resolution and extents.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
r.in.gdal -a input=TAXNWRB_250m_ll.tif output=TAXNWRB_250m_ll&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Landcover data ==&lt;br /&gt;
&lt;br /&gt;
=== ESA Globcover dataset ===&lt;br /&gt;
&lt;br /&gt;
Download: http://due.esrin.esa.int/page_globcover.php&lt;br /&gt;
&lt;br /&gt;
Or via command line:&lt;br /&gt;
 wget http://due.esrin.esa.int/files/Globcover2009_V2.3_Global_.zip&lt;br /&gt;
 unzip Globcover2009_V2.3_Global_.zip&lt;br /&gt;
 # rm -f Globcover2009_V2.3_Global_.zip&lt;br /&gt;
&lt;br /&gt;
Note, also a coloured version of the map in GeoTIFF format is available at: http://due.esrin.esa.int/files/GLOBCOVER_L4_200901_200912_V2.3.color.tif&lt;br /&gt;
&lt;br /&gt;
Unfortunately the Globcover map exceeds the -180°..+180° range etc, indicating a shift of the map (see also [http://www.cosmo-model.org/content/tasks/workGroups/wg3b/meetings/2012-soilveg/EXTPAR-GLOBCOVER.pdf this assessment by DWD]):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gdalinfo GLOBCOVER_L4_200901_200912_V2.3.tif&lt;br /&gt;
Driver: GTiff/GeoTIFF&lt;br /&gt;
Files: GLOBCOVER_L4_200901_200912_V2.3.tif&lt;br /&gt;
Size is 129600, 55800&lt;br /&gt;
Coordinate System is:&lt;br /&gt;
GEOGCS[&amp;quot;WGS 84&amp;quot;,&lt;br /&gt;
...&lt;br /&gt;
Origin = (-180.001388888888897,90.001388888888883)&lt;br /&gt;
...&lt;br /&gt;
Corner Coordinates:&lt;br /&gt;
Upper Left  (-180.0013889,  90.0013889) (180d 0' 5.00&amp;quot;W, 90d 0' 5.00&amp;quot;N)&lt;br /&gt;
Lower Left  (-180.0013889, -64.9986111) (180d 0' 5.00&amp;quot;W, 64d59'55.00&amp;quot;S)&lt;br /&gt;
Upper Right ( 179.9986111,  90.0013889) (179d59'55.00&amp;quot;E, 90d 0' 5.00&amp;quot;N)&lt;br /&gt;
Lower Right ( 179.9986111, -64.9986111) (179d59'55.00&amp;quot;E, 64d59'55.00&amp;quot;S)&lt;br /&gt;
Center      (  -0.0013889,  12.5013889) (  0d 0' 5.00&amp;quot;W, 12d30' 5.00&amp;quot;N)&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
How to fix this?&lt;br /&gt;
&lt;br /&gt;
'''Option 1:''' You can use the -l flag of {{cmd|r.in.gdal}} to constrain the map coordinates to legal values ([https://pvanb.wordpress.com/2011/05/10/importing-global-rasters-in-grass-gives-me-illegal-latitude-for-north-message/ ref]. But the resulting pixels will no longer have the original resolution. We will not do that.&lt;br /&gt;
&lt;br /&gt;
'''Option 2:''' Shift the Globcover map slightly into the right position using [http://www.gdal.org/gdal_translate.html gdal_translate]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# coords are shifted, fix raster map&lt;br /&gt;
# -a_ullr Assign/override the georeferenced bounds of the output file&lt;br /&gt;
# use larger cache and compress result&lt;br /&gt;
gdal_translate --config GDAL_CACHEMAX 1200 -a_ullr -180 90 180 -65 \&lt;br /&gt;
     -co &amp;quot;COMPRESS=LZW&amp;quot; GLOBCOVER_L4_200901_200912_V2.3.tif GLOBCOVER_L4_200901_200912_V2.3_fixed.tif&lt;br /&gt;
&lt;br /&gt;
# result:&lt;br /&gt;
gdalinfo GLOBCOVER_L4_200901_200912_V2.3_fixed.tif&lt;br /&gt;
...&lt;br /&gt;
Origin = (-180.000000000000000,90.000000000000000)&lt;br /&gt;
Pixel Size = (0.002777777777778,-0.002777777777778)&lt;br /&gt;
...&lt;br /&gt;
Corner Coordinates:&lt;br /&gt;
Upper Left  (-180.0000000,  90.0000000) (180d 0' 0.00&amp;quot;W, 90d 0' 0.00&amp;quot;N)&lt;br /&gt;
Lower Left  (-180.0000000, -65.0000000) (180d 0' 0.00&amp;quot;W, 65d 0' 0.00&amp;quot;S)&lt;br /&gt;
Upper Right ( 180.0000000,  90.0000000) (180d 0' 0.00&amp;quot;E, 90d 0' 0.00&amp;quot;N)&lt;br /&gt;
Lower Right ( 180.0000000, -65.0000000) (180d 0' 0.00&amp;quot;E, 65d 0' 0.00&amp;quot;S)&lt;br /&gt;
Center      (   0.0000000,  12.5000000) (  0d 0' 0.01&amp;quot;E, 12d30' 0.00&amp;quot;N)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voilà! Now we can import the map into GRASS GIS:&lt;br /&gt;
&lt;br /&gt;
 r.in.gdal input=GLOBCOVER_L4_200901_200912_V2.3_fixed.tif output=esa_globcover2009&lt;br /&gt;
&lt;br /&gt;
'''Legend conversion''': The ZIP file contains a XLS table describing the classes and the RGB colors. Using ogr2ogr can directly convert XLS --&amp;gt; CSV:&lt;br /&gt;
&lt;br /&gt;
 ogr2ogr -f CSV Globcover2009_Legend.csv Globcover2009_Legend.xls&lt;br /&gt;
&lt;br /&gt;
'''Applying the legend:'''&lt;br /&gt;
&lt;br /&gt;
 # suppress table header and only consider category value and label, apply on the fly:&lt;br /&gt;
 cat Globcover2009_Legend.csv | grep -v '^Value' | cut -d',' -f1-2 | r.category esa_globcover2009 separator=comma rules=-&lt;br /&gt;
 # verify (0E, 0N is the Atlantic Ocean)&lt;br /&gt;
 r.what esa_globcover2009 coor=0,0 -f&lt;br /&gt;
 0|0||210|Water bodies&lt;br /&gt;
&lt;br /&gt;
=== Global Forest Change ===&lt;br /&gt;
&lt;br /&gt;
* http://earthenginepartners.appspot.com/science-2013-global-forest &lt;br /&gt;
* Download info on: http://earthenginepartners.appspot.com/science-2013-global-forest/download_v1.3.html&lt;br /&gt;
&lt;br /&gt;
== Imagery ==&lt;br /&gt;
&lt;br /&gt;
=== AVHRR ===&lt;br /&gt;
&lt;br /&gt;
* see the [[AVHRR]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== Blue Marble imagery ===&lt;br /&gt;
&lt;br /&gt;
NASA's Blue Marble is a 500m-8 degree per-cell world wide visual image of the Earth from space, with the clouds removed.&lt;br /&gt;
&lt;br /&gt;
* see the [[Blue Marble]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== EO-1 imagery ===&lt;br /&gt;
&lt;br /&gt;
(Earth Observing-1)&lt;br /&gt;
* &amp;quot;''Advanced Land Imager (ALI) provides image data from ten spectral bands (band designations). The instrument operates in a pushbroom fashion, with a spatial resolution of 30 meters for the multispectral bands and 10 meters for the panchromatic band.''&amp;quot;&lt;br /&gt;
:-- http://eros.usgs.gov/products/satellite/eo1.php&lt;br /&gt;
* On-board Atmospheric Corrections&lt;br /&gt;
&lt;br /&gt;
=== Global Land Cover Characteristics ===&lt;br /&gt;
&lt;br /&gt;
USGS ''et al.'' generated dataset at 1km resolution. Provides global landcover characteristics.&lt;br /&gt;
&lt;br /&gt;
* see the [[Global Land Cover Characteristics]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== LANDSAT imagery ===&lt;br /&gt;
&lt;br /&gt;
Since October 1, 2008 all Landsat 7 ETM+ scenes held in the [http://landsat.usgs.gov/ USGS EROS archive] are available for download at no charge.&lt;br /&gt;
* Download via the [http://glovis.usgs.gov/ Glovis] online search tool (req. Java)&lt;br /&gt;
* Download via the USGS's [http://edcsns17.cr.usgs.gov/EarthExplorer/ EarthExplorer] interface&lt;br /&gt;
&lt;br /&gt;
==== Import Modules ====&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.in.gdal}} - Main import tool for complete multiband scenes&lt;br /&gt;
* {{cmd|r.in.wms}} - Download data covering current map region via WMS server&lt;br /&gt;
* [[GRASS_AddOns#r.in.onearth|r.in.onearth]] - WMS frontend for NASA's OnEarth Global Landsat Mosaic&lt;br /&gt;
&lt;br /&gt;
==== Color balancing modules ====&lt;br /&gt;
* {{cmd|i.landsat.rgb}} (GRASS 6.x) | {{cmd|i.colors.enhance|version=70}} (GRASS 7.x)  - Color balancing/enhancement tool&lt;br /&gt;
&lt;br /&gt;
==== See also ====&lt;br /&gt;
&lt;br /&gt;
* Processing tips can be found on the [[LANDSAT]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== ESA Sentinel imagery ===&lt;br /&gt;
&lt;br /&gt;
The [https://grass.osgeo.org/grass-stable/manuals/addons/i.sentinel.html i.sentinel] toolbox of addons provides &lt;br /&gt;
a complete suite for downloading, importing and preprocessing Sentinel imagery.&lt;br /&gt;
&lt;br /&gt;
For direct access, all Sentinel 1 and 2 data is available for download from the [https://scihub.copernicus.eu/ Open Access Hub]&lt;br /&gt;
&lt;br /&gt;
* via the [https://scihub.copernicus.eu/dhus/#/home online interactive interface]&lt;br /&gt;
* via the [https://scihub.copernicus.eu/twiki/do/view/SciHubWebPortal/APIHubDescription API]&lt;br /&gt;
&lt;br /&gt;
Other pre-processing tools are available at:&lt;br /&gt;
* http://step.esa.int/main/ Scientific Toolbox Exploitation Platform&lt;br /&gt;
* https://github.com/Fernerkundung/awesome-sentinel (&amp;quot;Awesome Sentinel&amp;quot; - list of tools)&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
&lt;br /&gt;
==== Data sources ====&lt;br /&gt;
&lt;br /&gt;
* Some datasource links: http://www.ruf.rice.edu/~ben/gmt.html&lt;br /&gt;
* [http://www.geotorrent.org/browse.php Geotorrent.org]&lt;br /&gt;
&lt;br /&gt;
==== Import Modules ====&lt;br /&gt;
* The {{cmd|r.in.gdal}} modules may be used to import data of [http://www.gdal.org/formats_list.html many formats], including GMT netCDF&lt;br /&gt;
* The {{cmd|r.in.bin}} module may be used to import raw binary files&lt;br /&gt;
&lt;br /&gt;
=== MODIS imagery ===&lt;br /&gt;
&lt;br /&gt;
* see the [[MODIS]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== Natural Earth imagery ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.naturalearthdata.com/ Natural Earth II]:  World environment map in natural color. GeoTIFF (use the {{cmd|r.in.gdal}} module)&lt;br /&gt;
* see also 1:10 million, 1:50 million and 1:110million scale maps from  http://www.naturalearthdata.com/&lt;br /&gt;
&lt;br /&gt;
=== Earth at Night: nightlight maps ===&lt;br /&gt;
&lt;br /&gt;
* Earth at Night: Flat Maps https://earthobservatory.nasa.gov/features/NightLights/page3.php (GeoTIFFs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Orthoimagery ===&lt;br /&gt;
&lt;br /&gt;
* [http://worldwindcentral.com/wiki/Sources_of_free_orthoimagery Sources of free orthoimagery]&lt;br /&gt;
&lt;br /&gt;
=== Pathfinder AVHRR SST imagery ===&lt;br /&gt;
&lt;br /&gt;
* see the Pathfinder [[AVHRR]] SST wiki page&lt;br /&gt;
&lt;br /&gt;
=== QuickBird imagery ===&lt;br /&gt;
&lt;br /&gt;
* See the [[QuickBird]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== SeaWiFS imagery ===&lt;br /&gt;
&lt;br /&gt;
* see the [[SeaWiFS]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== SPOT Vegetation imagery ===&lt;br /&gt;
&lt;br /&gt;
SPOT Vegetation (1km) global: NDVI data sets&lt;br /&gt;
&lt;br /&gt;
* [http://free.vgt.vito.be/ SPOT Vegetation (1km, global) NDVI data set server]&lt;br /&gt;
* for import, see {{cmd|i.in.spotvgt}}&lt;br /&gt;
&lt;br /&gt;
=== True Marble imagery ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.unearthedoutdoors.net/global_data/true_marble/download True Marble]: 250m world wide visual image of the Earth from space, with the clouds removed. GeoTIFF (use the {{cmd|r.in.gdal}} module)&lt;br /&gt;
&lt;br /&gt;
== Climatic data ==&lt;br /&gt;
&lt;br /&gt;
=== OGC WCS - Albedo example ===&lt;br /&gt;
&lt;br /&gt;
TODO: update this example e.g. to http://demo.mapserver.org/cgi-bin/wcs?SERVICE=wcs&amp;amp;VERSION=1.0.0&amp;amp;REQUEST=GetCapabilities&lt;br /&gt;
&lt;br /&gt;
GRASS imports OGC Web Coverage Service data. Example server (please suggest a better one!)&lt;br /&gt;
  &amp;lt;WCS_GDAL&amp;gt;&lt;br /&gt;
  &amp;lt;ServiceURL&amp;gt;http://laits.gmu.edu/cgi-bin/NWGISS/NWGISS?&amp;lt;/ServiceURL&amp;gt;&lt;br /&gt;
  &amp;lt;CoverageName&amp;gt;AUTUMN.hdf&amp;lt;/CoverageName&amp;gt;&lt;br /&gt;
  &amp;lt;Timeout&amp;gt;90&amp;lt;/Timeout&amp;gt;&lt;br /&gt;
  &amp;lt;Resample&amp;gt;nearest&amp;lt;/Resample&amp;gt;&lt;br /&gt;
  &amp;lt;/WCS_GDAL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save this as albedo.xml. Import into a LatLong WGS84 location:&lt;br /&gt;
  r.in.gdal albedo.xml out=albedo&lt;br /&gt;
&lt;br /&gt;
Unfortunately this server sends out the map shifted by 0.5 pixel. This requires a fix to the map boundary coordinates:&lt;br /&gt;
  r.region albedo n=90 s=-90 w=-180 e=180&lt;br /&gt;
&lt;br /&gt;
Now apply color table and look at the map:&lt;br /&gt;
  r.colors albedo color=byr&lt;br /&gt;
  d.mon x0&lt;br /&gt;
  d.rast albedo&lt;br /&gt;
&lt;br /&gt;
=== SNODAS maps ===&lt;br /&gt;
&lt;br /&gt;
[http://nsidc.org/data/docs/noaa/g02158_snodas_snow_cover_model/index.html Snow Data Assimilation System] data that support hydrological modeling and analysis. First download the data, and untar them (once for each month, and once for each day), and you should get pairs of “.dat” and “.Hdr” files. The data files are stored in flat 16-bit binary format, so assuming that “snowdas_in.dat” is the name of the input file, at the GRASS prompt:&lt;br /&gt;
&lt;br /&gt;
   r.in.bin -bs bytes=2 rows=3351 cols=6935 north=52.874583333332339 \&lt;br /&gt;
   south=24.949583333333454 east=-66.942083333334011 west=-124.733749999998366 \&lt;br /&gt;
   anull=-9999 input=snowdas_input.dat output=snowdas&lt;br /&gt;
&lt;br /&gt;
=== CHELSA climate maps ===&lt;br /&gt;
	&lt;br /&gt;
CHELSA – Climatologies at high resolution for the earth’s land surface areas is a high resolution (30 arc sec) climate data set for the earth land surface areas currently under development, see http://chelsa-climate.org/&lt;br /&gt;
&lt;br /&gt;
Version 1.1 has some coordinate issues originating from SAGA being used (coordinate precision issue), see http://chelsa-climate.org/known-issues/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
# WARNING: dirty hack - Better wait for the new release V1.2 of CHELSA!&lt;br /&gt;
&lt;br /&gt;
for i in `ls /scratch/chelsa_climate/*.zip` ; do&lt;br /&gt;
   unzip $i&lt;br /&gt;
   NAME=`basename $i .zip`&lt;br /&gt;
   gdal_translate --config GDAL_CACHEMAX 2000 -a_ullr -180 84 180 -90 -co &amp;quot;COMPRESS=DEFLATE&amp;quot; $NAME.tif ${NAME}_fixed.tif&lt;br /&gt;
   rm -f $NAME.tif&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== WorldClim maps ===&lt;br /&gt;
&lt;br /&gt;
[http://www.worldclim.org/ WorldClim] is a set of global climate layers (climate grids) with a spatial resolution of a square kilometer. Besides long-term average climate layers (representing the period 1950 - 2000) it also includes projections for future conditions based on downscaled global climate model (GCM) data from CMIP5 (IPPC Fifth Assessment) and projections of past conditions (downscaled global climate model output).&lt;br /&gt;
* Load into a Lat/Lon WGS84 location (EPSG:4326)&lt;br /&gt;
* The data set is provided in two formats: BIL and ESRI Grd. Import with {{cmd|r.in.bin}} or {{cmd|r.in.gdal}}. Version 1.4 has some coordinate issues:&lt;br /&gt;
&lt;br /&gt;
a) BIL: binary format is 2 byte integer. Multiply by 10 using {{cmd|r.mapcalc}} to convert units. See http://www.worldclim.org/format.htm for more information and the [[MODIS]] help page for example of converting raw to data units. Note that the file header is missing a line. To fix:&lt;br /&gt;
&lt;br /&gt;
 # fix WorldClim's BIL; tmean example&lt;br /&gt;
 for i in $(seq 1 12); do echo “PIXELTYPE SIGNEDINT” &amp;gt;&amp;gt;tmean$i.hdr; done&lt;br /&gt;
&lt;br /&gt;
b) ESRI grd files: Note that the WorldClim ESRI grd files suffer from a quality issue of coordinate precision. See [https://lists.osgeo.org/pipermail/grass-user/2011-January/059358.html here] for a solution.&lt;br /&gt;
&lt;br /&gt;
 # fix WorldClim's ESRI Grd; tmean example&lt;br /&gt;
 export GDAL_CACHEMAX=2000&lt;br /&gt;
 mkdir -p ~/tmp/&lt;br /&gt;
 # fix broken WorldClim files, see https://lists.osgeo.org/pipermail/grass-user/2011-January/059358.html&lt;br /&gt;
 # note: 60S, not 90S&lt;br /&gt;
 for i in $(seq 1 12); do gdal_translate -a_ullr -180 90 180 -60 tmean_$i $HOME/tmp/tmean_${i}_fixed.tif; done&lt;br /&gt;
 #&lt;br /&gt;
 # import&lt;br /&gt;
 for i in $(seq 1 12) ; do r.in.gdal input=$HOME/tmp/tmean_${i}_fixed.tif out=tmp --o ; g.region raster=tmp -p ; r.mapcalc &amp;quot;tmean_${i} = 0.1 * tmp&amp;quot; --o ; r.colors tmean_${i} color=celsius ; done&lt;br /&gt;
 #&lt;br /&gt;
 # clean up&lt;br /&gt;
 g.remove raster name=tmp -f&lt;br /&gt;
 rm -f ~/tmp/tmean_?_fixed.tif ; rm -f ~/tmp/tmean_??_fixed.tif&lt;br /&gt;
&lt;br /&gt;
=== Africlim maps ===&lt;br /&gt;
&lt;br /&gt;
[https://www.york.ac.uk/environment/research/kite/resources/ Africlim] provides four baseline data sets for current climate, including:&lt;br /&gt;
* CRU CL 2.0&lt;br /&gt;
* WorldClim v1.4&lt;br /&gt;
* TAMSAT TARCAT v2.0 (rainfall only)&lt;br /&gt;
* CHIRPS v1.8 (rainfall only). &lt;br /&gt;
&lt;br /&gt;
It furthermore provides data sets with projections of future climates based on combinations of ten general circulation models (GCMs), downscaled using five regional climate models (RCMs) and the four above mentioned contemporary baselines, under two representative concentration pathways of the IPCC-AR5 (RCP4.5 and RCP8.5). The data layers are available as GeoTIF files at spatial resolutions of 10', 5', 2.5', 1' and 30&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== PaleoClim maps ===&lt;br /&gt;
[http://www.paleoclim.org PaleoClim] provides free, high-resolution paleoclimate data for use in biological modeling and GIS.&lt;br /&gt;
&lt;br /&gt;
The data are available at 3  different spatial resolutions; from 2.5 arc-minutes (~5 km), 5 arc-minutes (~10 km), and 10 arc-minutes (~20 km). The CHELSA data are also available in 30 arc-seconds (~1 km). Each download is a “zip” file containing up to 19 GeoTiff (.tif) files, one for each of the bioclimatic variables.&lt;br /&gt;
&lt;br /&gt;
'''Bioclimatic parameters'''&lt;br /&gt;
&lt;br /&gt;
From the high-resolution monthly temperature and precipitation values, a set of derived parameters were calculated, broadly used in ecological applications. These bioclimatic variables are derived from the monthly mean temperature (or minimum and maximum temperature, depending on their availability) and precipitation values. They are specifically developed for species distribution modelling and related ecological applications .  The procedure for generating bioclimatic variables followed WorldClim and used the ‘biovars’ function of the R package dismo. Output bioclimate layers were saved as individual GeoTiffs (*tif) and projected in the WGS 1984 projection.&lt;br /&gt;
&lt;br /&gt;
Bio_1=Annual Mean Temperature [°C*10] &amp;lt;br&amp;gt;&lt;br /&gt;
Bio_2=Mean Diurnal Range [°C] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_3=Isothermality [Bio_2/Bio_7] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_4=Temperature Seasonality [standard deviation*100] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_5=Max Temperature of Warmest Month [°C*10] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_6=Min Temperature of Coldest Month [°C*10] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_7=Temperature Annual Range [°C*10] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_8=Mean Temperature of Wettest Quarter [°C*10] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_9=Mean Temperature of Driest Quarter [°C*10] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_10=Mean Temperature of Warmest Quarter [°C*10] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_11=Mean Temperature of Coldest Quarter [°C*10] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_12=Annual Precipitation [mm/year] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_13=Precipitation of Wettest Month [mm/month] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_14=Precipitation of Driest Month [mm/month] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_15=Precipitation Seasonality [coefficient of variation]v  &lt;br /&gt;
Bio_16=Precipitation of Wettest Quarter [mm/quarter] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_17=Precipitation of Driest Quarter [mm/quarter] &amp;lt;br&amp;gt;  &lt;br /&gt;
Bio_18=Precipitation of Warmest Quarter [mm/quarter] &amp;lt;br&amp;gt;&lt;br /&gt;
Bio_19=Precipitation of Coldest Quarter [mm/quarter] &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''Time Periods Represented (bp)'''  &lt;br /&gt;
&lt;br /&gt;
Pleistocene: late-Holocene, Meghalayan (4.2-0.3 ka) &amp;lt;br&amp;gt;  &lt;br /&gt;
Pleistocene: mid-Holocene, Northgrippian (8.326-4.2 ka) &amp;lt;br&amp;gt;  &lt;br /&gt;
Pleistocene: early-Holocene, Greenlandian (11.7-8.326 ka) &amp;lt;br&amp;gt;  &lt;br /&gt;
Pleistocene: Younger Dryas Stadial (12.9-11.7 ka) &amp;lt;br&amp;gt;  &lt;br /&gt;
Pleistocene: Bølling-Allerød ( 14.7-12.9 ka) &amp;lt;br&amp;gt;  &lt;br /&gt;
Pleistocene: Heinrich Stadial 1 (17.0-14.7 ka) &amp;lt;br&amp;gt;  &lt;br /&gt;
Pleistocene: Last Interglacial (ca. 130 ka) &amp;lt;br&amp;gt;  &lt;br /&gt;
Pleistocene: MIS19 (ca. 787 ka) &amp;lt;br&amp;gt;  &lt;br /&gt;
Pliocene: mid-Pliocene warm period (3.205 Ma) &amp;lt;br&amp;gt;  &lt;br /&gt;
Pliocene: M2 (ca. 3.3 Ma)&lt;br /&gt;
&lt;br /&gt;
== Population maps ==&lt;br /&gt;
&lt;br /&gt;
=== WorldPop ===&lt;br /&gt;
&lt;br /&gt;
* http://www.worldpop.org.uk/&lt;br /&gt;
&lt;br /&gt;
=== Gridded Population of the World ===&lt;br /&gt;
&lt;br /&gt;
* http://sedac.ciesin.columbia.edu/gpw/global.jsp&lt;br /&gt;
&lt;br /&gt;
Import with {{cmd|r.in.gdal}}, assign population color table with {{cmd|r.colors}}&lt;br /&gt;
&lt;br /&gt;
== Topographic maps ==&lt;br /&gt;
=== Soviet topographic maps ===&lt;br /&gt;
&lt;br /&gt;
* [http://en.poehali.org/maps Soviet topographic maps] as geocoded GeoTIFFs&lt;br /&gt;
&lt;br /&gt;
= Vector data =&lt;br /&gt;
&lt;br /&gt;
=== Natural Earth ===&lt;br /&gt;
&lt;br /&gt;
*  http://www.naturalearthdata.com/ data scaled for 1:10 million, 1:50 million and 1:110million&lt;br /&gt;
&lt;br /&gt;
=== CDC Geographic Boundary and Public Health Maps ===&lt;br /&gt;
&lt;br /&gt;
* http://www.cdc.gov/epiinfo/maps.htm&lt;br /&gt;
&lt;br /&gt;
=== Global Administrative Areas ===&lt;br /&gt;
&lt;br /&gt;
* GADM is a database of the location of the world's administrative areas (boundaries) available in shapefiles.&lt;br /&gt;
: http://gadm.org (extracted by country [http://gadm.org/country here])&lt;br /&gt;
&lt;br /&gt;
* World Borders Dataset including ISO 3166-1 Country codes available in shapefiles.&lt;br /&gt;
: http://thematicmapping.org/downloads/world_borders.php&lt;br /&gt;
* Free GIS data from Mapping Hacks&lt;br /&gt;
: http://mappinghacks.com/data/&lt;br /&gt;
&lt;br /&gt;
=== GSHHS World Coastline ===&lt;br /&gt;
&lt;br /&gt;
GSHHS is a high resolution shoreline dataset. It is derived from data in the public domain and licensed as GPL. The shorelines are constructed entirely from hierarchically arranged closed polygons. It is closely linked to the [[GMT]] project.&lt;br /&gt;
&lt;br /&gt;
==== Availability ====&lt;br /&gt;
&lt;br /&gt;
* Download the original data set from http://www.soest.hawaii.edu/pwessel/gshhg/index.html. Also available at http://www.ngdc.noaa.gov/mgg/shorelines/data/gshhg/latest/.&lt;br /&gt;
&lt;br /&gt;
* The data set, or parts from it, can be extracted from [http://www.ngdc.noaa.gov/mgg/shorelines/shorelines.html NOAA's shoreline extractor].&lt;br /&gt;
:For GRASS 6 you can download 1:250,000 shoreline data from NOAA's site in Mapgen format, which can be imported with the {{cmd|v.in.mapgen}} module.&lt;br /&gt;
&lt;br /&gt;
* '''ESRI Shapefiles''' of the latest version are available at http://www.ngdc.noaa.gov/mgg/shorelines/data/gshhg/latest/. The old 1.6 version is available at ftp://ftp.ihg.uni-duisburg.de/GIS/GISData/GSHHS/.&lt;br /&gt;
&lt;br /&gt;
==== Import ====&lt;br /&gt;
&lt;br /&gt;
* Import with the GRASS6 add-on module {{AddonCmd|v.in.gshhs}}&lt;br /&gt;
&lt;br /&gt;
=== OpenStreetMap ===&lt;br /&gt;
&lt;br /&gt;
See the [[OpenStreetMap]] wiki page.&lt;br /&gt;
&lt;br /&gt;
==== Administrative boundaries from OpenStreetMap ====&lt;br /&gt;
&lt;br /&gt;
For a convenient download in GeoJSON and SHAPE, see https://wambachers-osm.website/boundaries/&lt;br /&gt;
&lt;br /&gt;
(using the amost invisible triangle, you can pop out details of a country down to admin level 8)&lt;br /&gt;
&lt;br /&gt;
=== SALB ===&lt;br /&gt;
&lt;br /&gt;
Second Administrative Level Boundaries: ''&amp;quot;The SALB dataset is a global digital dataset consisting of digital maps and codes that can be downloaded on a country by country basis.&amp;quot;''&lt;br /&gt;
&lt;br /&gt;
* http://www.who.int/whosis/database/gis/salb/salb_home.htm&lt;br /&gt;
&lt;br /&gt;
=== VMap0 ===&lt;br /&gt;
&lt;br /&gt;
1:1 million vector data. Formerly known as ''Digital Chart of the World''&lt;br /&gt;
&lt;br /&gt;
* see the two articles in [http://grass.osgeo.org/newsletter/index.php ''GRASS Newsletter vol. 3 (June 2005)'']&lt;br /&gt;
&lt;br /&gt;
Check the [http://en.wikipedia.org/wiki/Vector_Map Wikipedia page] on VMAP, see the links at the bottom of that article to shapefile versions of VMAP0 and VMAP1.  Those look like the versions that were, several years ago, on a NIMA (predecessor to NGA, and successor to the Defense Mapping Agency that managed the Digital Chart of the World and VMAP project) Website.  Many GRASS users may prefer the shapefiles to the original Vector Product Format data.&lt;br /&gt;
&lt;br /&gt;
* [http://gis-lab.info/qa/vmap0-eng.html VMap0 data in ESRI shape format]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
* [http://spatial-analyst.net/wiki/index.php?title=Global_datasets Global datasets] list by T. Hengl (with dataset download)&lt;br /&gt;
* http://freegisdata.rtwilson.com/&lt;br /&gt;
* The FreeGIS.org database:  http://www.freegis.org/database/&lt;br /&gt;
* http://finder.geocommons.com/&lt;br /&gt;
* http://wiki.openstreetmap.org/wiki/Potential_Datasources&lt;br /&gt;
* http://www.geonames.org/data-sources.html&lt;br /&gt;
* [http://ckan.net/tag/read/geo Open Knowledge Foundation link collection]&lt;br /&gt;
* [http://openweathermap.org/ Open Weather Map]  free weather data and forecast API suitable for any cartographic services like web and smartphones applications. Ideology is inspired by OpenStreetMap and Wikipedia that make information free and available for everybody. &lt;br /&gt;
&lt;br /&gt;
=== Metadata Catalogues ===&lt;br /&gt;
Catalog Service for the Web (CSW) is an OGC standard for offering access to catalogues of geospatial information over the Internet (HTTP). CSW allow for discovering, browsing, and querying metadata about data, services, and similar resources. A list of Metadata Catalogues / CSW services from member states of the European Union can be found here:&amp;lt;br /&amp;gt;&lt;br /&gt;
* [http://inspire-geoportal.ec.europa.eu/INSPIRERegistry/ http://inspire-geoportal.ec.europa.eu/INSPIRERegistry/]&amp;lt;br /&amp;gt;&lt;br /&gt;
And here: [http://inspire-geoportal.ec.europa.eu/discovery/ http://inspire-geoportal.ec.europa.eu/discovery/] one can search European Metadata Catalogues online.&lt;br /&gt;
&lt;br /&gt;
=== European datasets ===&lt;br /&gt;
&lt;br /&gt;
* [[European datasets]]&lt;br /&gt;
* [http://preview.grid.unep.ch/index3.php?preview=data&amp;amp;lang=eng Global Risk Data Platform]&lt;br /&gt;
* [http://open-data.europa.eu/open-data/data/ European Commission Opendata Portal]: 5800+ datasets&lt;br /&gt;
* [http://eca.knmi.nl/download/ensembles/download.php E-OBS] This is the download page for the ENSEMBLES daily gridded observational dataset for precipitation, temperature and sea level pressure in Europe&lt;br /&gt;
* [http://mars.jrc.ec.europa.eu/mars/About-us/AGRI4CAST/Data-distribution MARS @ JRC] Temperature, vapour pressure, rainfall, relative humidity, cloud cover, solar radiation, wind speed.&lt;br /&gt;
* [http://www.efas.eu/ EFAS @ JRC] is a High resolution pan-European dataset for hydrologic modelling.&lt;br /&gt;
* [http://data.jrc.ec.europa.eu/ JRC Data Portal] In this catalogue, you can find an inventory of data that produced by the JRC in accordance with the JRC data policy. The content is continuously updated and shall not be seen as a complete inventory of JRC data. Currently, the inventory describes only a small subset of JRC data.&lt;br /&gt;
&lt;br /&gt;
=== US datasets ===&lt;br /&gt;
&lt;br /&gt;
* [[NLCD Land Cover|NLCD: National land cover database]]&lt;br /&gt;
* [[CUSP Coastline|CUSP: NOAA Continually Updated Shoreline]]&lt;br /&gt;
&lt;br /&gt;
=== National datasets ===&lt;br /&gt;
&lt;br /&gt;
* [http://asdd.ga.gov.au/asdd/tech/zap/basic.html Australian Spatial Data Directory]&lt;br /&gt;
* [http://aekos.org.au/home Australian Ecological Knowledge and Observation System]&lt;br /&gt;
* [http://wiki.gfoss.it/index.php/GIS_Open_Data Italian Geodata collection]&lt;br /&gt;
* [http://koordinates.com/ New Zealand] data from Koordinates.com&lt;br /&gt;
* United States from NOAA/USGSs data portal (FIXME: link?)&lt;br /&gt;
* [http://geodata.gov.gr/geodata/ Greek Public Geodata] (in Greek)&lt;br /&gt;
&lt;br /&gt;
=== Various datasets worldwide ===&lt;br /&gt;
&lt;br /&gt;
* [http://geospatial.edublogs.org/ GEOSPATIAL DATA REPORT]: Finding and Using GIS Data&lt;br /&gt;
* [http://www.edenextdata.com/?q=data Edenext data portal]: Land Cover, Transport networks, Elevation, Orthoimagery, Human health and safety, Species Distribution, Atmospheric Conditions and Meteorological Geographical Features, Training Program Presentations and Data, Utility and governmental services, Hydrography, Soil, Bio geographical regions, Population distribution and Demographics&lt;br /&gt;
* [http://gdex.cr.usgs.gov/gdex/ Global Data Explorer USGS]: ASTER, SRTM, GTOPO etc&lt;br /&gt;
* [http://www.landcover.org/ landcover]&lt;br /&gt;
* [http://www.gripweb.org/gripweb/?q=data-information GRIPWEB’s Data &amp;amp; Informational Portal]: hazard &amp;amp; risk&lt;br /&gt;
* [http://sedac.ciesin.columbia.edu/data/sets/browse SEDAC]: Agriculture, Climate, Conservation, Framework Data, Governance, Hazards, Health, Infrastructure, Land Use, Marine and Coastal, Population, Poverty, Remote Sensing, Sustainability, Urban, Water&lt;br /&gt;
* [http://www.preventionweb.net/english/professional/maps/?pid:6&amp;amp;pih:2 Prevention Web]: hazard &amp;amp; risk&lt;br /&gt;
* [http://data.un.org/Default.aspx UNdata]: UN database&lt;br /&gt;
* [http://www.undp.org/content/undp/en/home.html UNDP home page]&lt;br /&gt;
* [http://www.cgiar-csi.org/data global climatic data]&lt;br /&gt;
* [http://csi.cgiar.org/cgiargeospatialtools.asp cosortium for spatial information CGIAR-CSI GeoSpatial Toolkits]&lt;br /&gt;
* [http://freegisdata.rtwilson.com/ Links to over 300 sites providing freely available geographic datasets]&lt;br /&gt;
* [http://www.diva-gis.org/Data Free Spatial Data]&lt;br /&gt;
* [http://edc2.usgs.gov/glcc/globe_int.php Global Land Cover Characteristics Data Base Version 2.0]&lt;br /&gt;
* [http://opentopo.sdsc.edu/gridsphere/gridsphere?cid=datasets A Portal to High-Resolution Topography Data and Tools]&lt;br /&gt;
* [http://www.metoffice.gov.uk/hadobs/hadghcnd/ HadGHCND] is a gridded daily temperature dataset based upon near-surface maximum (TX) and minimum (TN) temperature observations.&lt;br /&gt;
&lt;br /&gt;
=== WMS servers ===&lt;br /&gt;
&lt;br /&gt;
* See [[WMS]] page&lt;br /&gt;
&lt;br /&gt;
=== River discharge data ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.bafg.de/GRDC/EN/Home/homepage_node.html Global Runoff Data Centre]&lt;br /&gt;
* [http://www.sage.wisc.edu/riverdata/ Global River Discharge Database]&lt;br /&gt;
* [http://csdms.colorado.edu/wiki/River_discharge_data CSDMS]&lt;br /&gt;
&lt;br /&gt;
[[Category: Geodata]]&lt;br /&gt;
[[Category: Import]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Installation_Guide&amp;diff=26261</id>
		<title>Installation Guide</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Installation_Guide&amp;diff=26261"/>
		<updated>2020-07-01T19:22:08Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* macOS */ fixing section heading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
:''For compilation of GRASS GIS source code, see [[Compile and Install]]''&lt;br /&gt;
This page explains the installation of GRASS binaries.&lt;br /&gt;
&lt;br /&gt;
GRASS GIS requires a workstation running either some flavor of UNIX conforming to POSIX standards like Linux, Mac OS X, Solaris, IRIX, or BSD or MS-Windows. It is also possible to run GRASS in MS Windows by using UNIX translation software such as [[Cygwin]] or natively with MingGW. Ideally, you should have at least 500 Mb for data and 512 Mb RAM. The source code package needs around 270 MB uncompressed. The resulting binaries may need between 20 MB and 180 MB depending on your platform. During a full compilation you may need temporarily up to 150MB including the source code.&lt;br /&gt;
&lt;br /&gt;
The [http://grass.osgeo.org/download/ Software Download Section] of the main GRASS web site contains the latest binaries and source code for all supported platforms. That site also has general directions for installing GRASS manually. However, installation is slightly different on each operating system. Here you can find user-contributed pointers for installing GRASS on specific platforms. In particular, many operating systems have package management utilities that can greatly simplify GRASS installation.&lt;br /&gt;
&lt;br /&gt;
== MS Windows ==&lt;br /&gt;
&lt;br /&gt;
:''The official page [http://grass.osgeo.org/download/software/ms-windows/ GRASS GIS Download for MS-Windows]''&lt;br /&gt;
&lt;br /&gt;
* Native winGRASS packages (including the installer) are provided [http://grass.osgeo.org/grass64/binary/mswindows/native/ here]. See also [[WinGRASS Current Status]].&lt;br /&gt;
&lt;br /&gt;
* winGRASS/Cygwin packages are provided [http://grass.osgeo.org/grass64/binary/mswindows/cygwin/ here] (requires [[Cygwin]] UNIX emulator, see there).&lt;br /&gt;
&lt;br /&gt;
* QGIS including native winGRASS packages are provided [http://www.qgis.org/wiki/Download here].&lt;br /&gt;
&lt;br /&gt;
* Install using [http://trac.osgeo.org/osgeo4w/ OSGeo4W installer] (GRASS 6 needs to be checked in the &amp;quot;Express&amp;quot; install. GRASS 7 needs to be selected in the &amp;quot;Advanced&amp;quot; installation.)&lt;br /&gt;
&lt;br /&gt;
== GNU/Linux ==&lt;br /&gt;
&lt;br /&gt;
:''The official page [http://grass.osgeo.org/download/software/linux/ GRASS GIS Download for GNU/Linux]''&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
A binary version of GRASS is available from the apt repository. As root type:&lt;br /&gt;
&lt;br /&gt;
  apt-get install grass grass-doc&lt;br /&gt;
&lt;br /&gt;
This is the easiest way to install GRASS on Debian. If you choose to install a binary version manually from the main web site, be sure to follow the instructions for making symlinks found as a note to the [[http://grass.osgeo.org/grass64/binary/linux/snapshot/ 6.4 weekly snapshot]] release.&lt;br /&gt;
&lt;br /&gt;
==== DebianGis ====&lt;br /&gt;
&lt;br /&gt;
There is also the wonderful [http://wiki.debian.org/DebianGis DebianGIS] project which has a more recent GRASS version with its related packages. Read here for more [[GRASS in Debian |details]]&lt;br /&gt;
&lt;br /&gt;
==== Compiling GRASS from source ====&lt;br /&gt;
&lt;br /&gt;
* See [[Compile and Install]] of Source Code&lt;br /&gt;
&lt;br /&gt;
=== Installation on Fedora ===&lt;br /&gt;
&lt;br /&gt;
[https://admin.fedoraproject.org/pkgdb/acls/name/grass Fedoraproject] provides RPM-packages for stable releases prepared to install on Fedora systems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 yum install grass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mandriva ===&lt;br /&gt;
&lt;br /&gt;
* [http://sophie.zarb.org/srpm/cooker,ia64/grass Mandriva] provides PROJ/GDAL/GRASS RPMs. Newer versions they are in the &amp;quot;backports&amp;quot; section:&lt;br /&gt;
&lt;br /&gt;
  urpmi grass&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
* [http://download.opensuse.org/repositories/Application:/Geo/ openSUSE] provides GRASS and related RPM-packages.&lt;br /&gt;
&lt;br /&gt;
'''GRASS 6:''' To install GRASS 6 release on openSUSE:&lt;br /&gt;
&lt;br /&gt;
From terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_12.3/ GEO&lt;br /&gt;
sudo zypper refresh&lt;br /&gt;
sudo zypper install grass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, one can use the '''One-Click installer''':&lt;br /&gt;
http://software.opensuse.org/package/grass&lt;br /&gt;
&lt;br /&gt;
'''GRASS 7:''' To install the latest GRASS 7 SVN snapshot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zypper refresh&lt;br /&gt;
sudo zypper install grass7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, one can use the '''One-Click installer''':&lt;br /&gt;
http://software.opensuse.org/package/grass7&lt;br /&gt;
&lt;br /&gt;
=== Red Hat Enterprise Linux (RHEL, CentOS and Scientific Linux) ===&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Enterprise_Linux_GIS Enterprise Linux] offers GRASS and related binaries&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 yum install grass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
GRASS Binaries are available from apt/synaptic. From a terminal type:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install grass grass-doc&lt;br /&gt;
&lt;br /&gt;
or alternatively, search for and install these packages from Synaptic. This is the easy way to get GRASS on your system. Even if you choose to install binaries from another source, you may want to install this version just so that all (most) dependencies are installed as painlessly as possible.&lt;br /&gt;
&lt;br /&gt;
To get the latest version of GRASS on Ubuntu, compile the code from source. See the [[Compile and Install]] section for a shell script that makes this easy.&lt;br /&gt;
&lt;br /&gt;
=== Slackware ===&lt;br /&gt;
&lt;br /&gt;
Slackware 12 packages for GRASS binary distributions and additional libraries are available from [http://repository.slacky.eu/slackware-12.2/scientific/grass The Italian Slackware Community] (release version) and [http://geni.ath.cx/grass.html#_Slackware_12_binary_distributions here] (SVN version).&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi ===&lt;br /&gt;
&lt;br /&gt;
:''See the main page [[Raspberry Pi]].''&lt;br /&gt;
&lt;br /&gt;
=== MacOS ===&lt;br /&gt;
&lt;br /&gt;
Precompiled GRASS 6 and GRASS 7 packages for macOS can be found [http://grass.osgeo.org/download/software/mac-osx/ here]. These are distributed as zipped *.dmg packages. Opening the dmg prompts the user to simply drag and drop the app into the Applications folder. In fact, they '''must''' be installed into the Applications folder and may not run properly in other locations. &lt;br /&gt;
&lt;br /&gt;
A brief introduction to how to install via [https://www.macports.org MacPorts]: [[Compiling on macOS using MacPorts]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Installation_Guide&amp;diff=26260</id>
		<title>Installation Guide</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Installation_Guide&amp;diff=26260"/>
		<updated>2020-07-01T19:21:42Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* macOS */ Fixed formatting of the section heading&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
:''For compilation of GRASS GIS source code, see [[Compile and Install]]''&lt;br /&gt;
This page explains the installation of GRASS binaries.&lt;br /&gt;
&lt;br /&gt;
GRASS GIS requires a workstation running either some flavor of UNIX conforming to POSIX standards like Linux, Mac OS X, Solaris, IRIX, or BSD or MS-Windows. It is also possible to run GRASS in MS Windows by using UNIX translation software such as [[Cygwin]] or natively with MingGW. Ideally, you should have at least 500 Mb for data and 512 Mb RAM. The source code package needs around 270 MB uncompressed. The resulting binaries may need between 20 MB and 180 MB depending on your platform. During a full compilation you may need temporarily up to 150MB including the source code.&lt;br /&gt;
&lt;br /&gt;
The [http://grass.osgeo.org/download/ Software Download Section] of the main GRASS web site contains the latest binaries and source code for all supported platforms. That site also has general directions for installing GRASS manually. However, installation is slightly different on each operating system. Here you can find user-contributed pointers for installing GRASS on specific platforms. In particular, many operating systems have package management utilities that can greatly simplify GRASS installation.&lt;br /&gt;
&lt;br /&gt;
== MS Windows ==&lt;br /&gt;
&lt;br /&gt;
:''The official page [http://grass.osgeo.org/download/software/ms-windows/ GRASS GIS Download for MS-Windows]''&lt;br /&gt;
&lt;br /&gt;
* Native winGRASS packages (including the installer) are provided [http://grass.osgeo.org/grass64/binary/mswindows/native/ here]. See also [[WinGRASS Current Status]].&lt;br /&gt;
&lt;br /&gt;
* winGRASS/Cygwin packages are provided [http://grass.osgeo.org/grass64/binary/mswindows/cygwin/ here] (requires [[Cygwin]] UNIX emulator, see there).&lt;br /&gt;
&lt;br /&gt;
* QGIS including native winGRASS packages are provided [http://www.qgis.org/wiki/Download here].&lt;br /&gt;
&lt;br /&gt;
* Install using [http://trac.osgeo.org/osgeo4w/ OSGeo4W installer] (GRASS 6 needs to be checked in the &amp;quot;Express&amp;quot; install. GRASS 7 needs to be selected in the &amp;quot;Advanced&amp;quot; installation.)&lt;br /&gt;
&lt;br /&gt;
== GNU/Linux ==&lt;br /&gt;
&lt;br /&gt;
:''The official page [http://grass.osgeo.org/download/software/linux/ GRASS GIS Download for GNU/Linux]''&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
A binary version of GRASS is available from the apt repository. As root type:&lt;br /&gt;
&lt;br /&gt;
  apt-get install grass grass-doc&lt;br /&gt;
&lt;br /&gt;
This is the easiest way to install GRASS on Debian. If you choose to install a binary version manually from the main web site, be sure to follow the instructions for making symlinks found as a note to the [[http://grass.osgeo.org/grass64/binary/linux/snapshot/ 6.4 weekly snapshot]] release.&lt;br /&gt;
&lt;br /&gt;
==== DebianGis ====&lt;br /&gt;
&lt;br /&gt;
There is also the wonderful [http://wiki.debian.org/DebianGis DebianGIS] project which has a more recent GRASS version with its related packages. Read here for more [[GRASS in Debian |details]]&lt;br /&gt;
&lt;br /&gt;
==== Compiling GRASS from source ====&lt;br /&gt;
&lt;br /&gt;
* See [[Compile and Install]] of Source Code&lt;br /&gt;
&lt;br /&gt;
=== Installation on Fedora ===&lt;br /&gt;
&lt;br /&gt;
[https://admin.fedoraproject.org/pkgdb/acls/name/grass Fedoraproject] provides RPM-packages for stable releases prepared to install on Fedora systems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 yum install grass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mandriva ===&lt;br /&gt;
&lt;br /&gt;
* [http://sophie.zarb.org/srpm/cooker,ia64/grass Mandriva] provides PROJ/GDAL/GRASS RPMs. Newer versions they are in the &amp;quot;backports&amp;quot; section:&lt;br /&gt;
&lt;br /&gt;
  urpmi grass&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
* [http://download.opensuse.org/repositories/Application:/Geo/ openSUSE] provides GRASS and related RPM-packages.&lt;br /&gt;
&lt;br /&gt;
'''GRASS 6:''' To install GRASS 6 release on openSUSE:&lt;br /&gt;
&lt;br /&gt;
From terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_12.3/ GEO&lt;br /&gt;
sudo zypper refresh&lt;br /&gt;
sudo zypper install grass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, one can use the '''One-Click installer''':&lt;br /&gt;
http://software.opensuse.org/package/grass&lt;br /&gt;
&lt;br /&gt;
'''GRASS 7:''' To install the latest GRASS 7 SVN snapshot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zypper refresh&lt;br /&gt;
sudo zypper install grass7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, one can use the '''One-Click installer''':&lt;br /&gt;
http://software.opensuse.org/package/grass7&lt;br /&gt;
&lt;br /&gt;
=== Red Hat Enterprise Linux (RHEL, CentOS and Scientific Linux) ===&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Enterprise_Linux_GIS Enterprise Linux] offers GRASS and related binaries&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 yum install grass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
GRASS Binaries are available from apt/synaptic. From a terminal type:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install grass grass-doc&lt;br /&gt;
&lt;br /&gt;
or alternatively, search for and install these packages from Synaptic. This is the easy way to get GRASS on your system. Even if you choose to install binaries from another source, you may want to install this version just so that all (most) dependencies are installed as painlessly as possible.&lt;br /&gt;
&lt;br /&gt;
To get the latest version of GRASS on Ubuntu, compile the code from source. See the [[Compile and Install]] section for a shell script that makes this easy.&lt;br /&gt;
&lt;br /&gt;
=== Slackware ===&lt;br /&gt;
&lt;br /&gt;
Slackware 12 packages for GRASS binary distributions and additional libraries are available from [http://repository.slacky.eu/slackware-12.2/scientific/grass The Italian Slackware Community] (release version) and [http://geni.ath.cx/grass.html#_Slackware_12_binary_distributions here] (SVN version).&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi ===&lt;br /&gt;
&lt;br /&gt;
:''See the main page [[Raspberry Pi]].''&lt;br /&gt;
&lt;br /&gt;
=== macOS ===&lt;br /&gt;
&lt;br /&gt;
Precompiled GRASS 6 and GRASS 7 packages for macOS can be found [http://grass.osgeo.org/download/software/mac-osx/ here]. These are distributed as zipped *.dmg packages. Opening the dmg prompts the user to simply drag and drop the app into the Applications folder. In fact, they '''must''' be installed into the Applications folder and may not run properly in other locations. &lt;br /&gt;
&lt;br /&gt;
A brief introduction to how to install via [https://www.macports.org MacPorts]: [[Compiling on macOS using MacPorts]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Installation_Guide&amp;diff=26259</id>
		<title>Installation Guide</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Installation_Guide&amp;diff=26259"/>
		<updated>2020-07-01T19:19:14Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* macOS */ added information about installing binaries.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
:''For compilation of GRASS GIS source code, see [[Compile and Install]]''&lt;br /&gt;
This page explains the installation of GRASS binaries.&lt;br /&gt;
&lt;br /&gt;
GRASS GIS requires a workstation running either some flavor of UNIX conforming to POSIX standards like Linux, Mac OS X, Solaris, IRIX, or BSD or MS-Windows. It is also possible to run GRASS in MS Windows by using UNIX translation software such as [[Cygwin]] or natively with MingGW. Ideally, you should have at least 500 Mb for data and 512 Mb RAM. The source code package needs around 270 MB uncompressed. The resulting binaries may need between 20 MB and 180 MB depending on your platform. During a full compilation you may need temporarily up to 150MB including the source code.&lt;br /&gt;
&lt;br /&gt;
The [http://grass.osgeo.org/download/ Software Download Section] of the main GRASS web site contains the latest binaries and source code for all supported platforms. That site also has general directions for installing GRASS manually. However, installation is slightly different on each operating system. Here you can find user-contributed pointers for installing GRASS on specific platforms. In particular, many operating systems have package management utilities that can greatly simplify GRASS installation.&lt;br /&gt;
&lt;br /&gt;
== MS Windows ==&lt;br /&gt;
&lt;br /&gt;
:''The official page [http://grass.osgeo.org/download/software/ms-windows/ GRASS GIS Download for MS-Windows]''&lt;br /&gt;
&lt;br /&gt;
* Native winGRASS packages (including the installer) are provided [http://grass.osgeo.org/grass64/binary/mswindows/native/ here]. See also [[WinGRASS Current Status]].&lt;br /&gt;
&lt;br /&gt;
* winGRASS/Cygwin packages are provided [http://grass.osgeo.org/grass64/binary/mswindows/cygwin/ here] (requires [[Cygwin]] UNIX emulator, see there).&lt;br /&gt;
&lt;br /&gt;
* QGIS including native winGRASS packages are provided [http://www.qgis.org/wiki/Download here].&lt;br /&gt;
&lt;br /&gt;
* Install using [http://trac.osgeo.org/osgeo4w/ OSGeo4W installer] (GRASS 6 needs to be checked in the &amp;quot;Express&amp;quot; install. GRASS 7 needs to be selected in the &amp;quot;Advanced&amp;quot; installation.)&lt;br /&gt;
&lt;br /&gt;
== GNU/Linux ==&lt;br /&gt;
&lt;br /&gt;
:''The official page [http://grass.osgeo.org/download/software/linux/ GRASS GIS Download for GNU/Linux]''&lt;br /&gt;
&lt;br /&gt;
=== Debian ===&lt;br /&gt;
&lt;br /&gt;
A binary version of GRASS is available from the apt repository. As root type:&lt;br /&gt;
&lt;br /&gt;
  apt-get install grass grass-doc&lt;br /&gt;
&lt;br /&gt;
This is the easiest way to install GRASS on Debian. If you choose to install a binary version manually from the main web site, be sure to follow the instructions for making symlinks found as a note to the [[http://grass.osgeo.org/grass64/binary/linux/snapshot/ 6.4 weekly snapshot]] release.&lt;br /&gt;
&lt;br /&gt;
==== DebianGis ====&lt;br /&gt;
&lt;br /&gt;
There is also the wonderful [http://wiki.debian.org/DebianGis DebianGIS] project which has a more recent GRASS version with its related packages. Read here for more [[GRASS in Debian |details]]&lt;br /&gt;
&lt;br /&gt;
==== Compiling GRASS from source ====&lt;br /&gt;
&lt;br /&gt;
* See [[Compile and Install]] of Source Code&lt;br /&gt;
&lt;br /&gt;
=== Installation on Fedora ===&lt;br /&gt;
&lt;br /&gt;
[https://admin.fedoraproject.org/pkgdb/acls/name/grass Fedoraproject] provides RPM-packages for stable releases prepared to install on Fedora systems:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 yum install grass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mandriva ===&lt;br /&gt;
&lt;br /&gt;
* [http://sophie.zarb.org/srpm/cooker,ia64/grass Mandriva] provides PROJ/GDAL/GRASS RPMs. Newer versions they are in the &amp;quot;backports&amp;quot; section:&lt;br /&gt;
&lt;br /&gt;
  urpmi grass&lt;br /&gt;
&lt;br /&gt;
=== openSUSE ===&lt;br /&gt;
&lt;br /&gt;
* [http://download.opensuse.org/repositories/Application:/Geo/ openSUSE] provides GRASS and related RPM-packages.&lt;br /&gt;
&lt;br /&gt;
'''GRASS 6:''' To install GRASS 6 release on openSUSE:&lt;br /&gt;
&lt;br /&gt;
From terminal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_12.3/ GEO&lt;br /&gt;
sudo zypper refresh&lt;br /&gt;
sudo zypper install grass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, one can use the '''One-Click installer''':&lt;br /&gt;
http://software.opensuse.org/package/grass&lt;br /&gt;
&lt;br /&gt;
'''GRASS 7:''' To install the latest GRASS 7 SVN snapshot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo zypper refresh&lt;br /&gt;
sudo zypper install grass7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively, one can use the '''One-Click installer''':&lt;br /&gt;
http://software.opensuse.org/package/grass7&lt;br /&gt;
&lt;br /&gt;
=== Red Hat Enterprise Linux (RHEL, CentOS and Scientific Linux) ===&lt;br /&gt;
&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/Enterprise_Linux_GIS Enterprise Linux] offers GRASS and related binaries&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 yum install grass&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
&lt;br /&gt;
GRASS Binaries are available from apt/synaptic. From a terminal type:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install grass grass-doc&lt;br /&gt;
&lt;br /&gt;
or alternatively, search for and install these packages from Synaptic. This is the easy way to get GRASS on your system. Even if you choose to install binaries from another source, you may want to install this version just so that all (most) dependencies are installed as painlessly as possible.&lt;br /&gt;
&lt;br /&gt;
To get the latest version of GRASS on Ubuntu, compile the code from source. See the [[Compile and Install]] section for a shell script that makes this easy.&lt;br /&gt;
&lt;br /&gt;
=== Slackware ===&lt;br /&gt;
&lt;br /&gt;
Slackware 12 packages for GRASS binary distributions and additional libraries are available from [http://repository.slacky.eu/slackware-12.2/scientific/grass The Italian Slackware Community] (release version) and [http://geni.ath.cx/grass.html#_Slackware_12_binary_distributions here] (SVN version).&lt;br /&gt;
&lt;br /&gt;
=== Raspberry Pi ===&lt;br /&gt;
&lt;br /&gt;
:''See the main page [[Raspberry Pi]].''&lt;br /&gt;
&lt;br /&gt;
== macOS ==&lt;br /&gt;
&lt;br /&gt;
Precompiled GRASS 6 and GRASS 7 packages for macOS can be found [http://grass.osgeo.org/download/software/mac-osx/ here]. These are distributed as zipped *.dmg packages. Opening the dmg prompts the user to simply drag and drop the app into the Applications folder. In fact, they '''must''' be installed into the Applications folder and may not run properly in other locations. &lt;br /&gt;
&lt;br /&gt;
A brief introduction to how to install via [https://www.macports.org MacPorts]: [[Compiling on macOS using MacPorts]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26220</id>
		<title>Compiling on macOS using Anaconda</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26220"/>
		<updated>2020-06-05T16:39:32Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: added a note about Miniconda Python installation.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using Anaconda to Create a Binary Mac App for GRASS ==&lt;br /&gt;
These instructions are for creating a self-contained Mac app, including all dependencies, with GRASS 7.9 and Anaconda. You can modify them if you don't need some of the steps. Some of the steps you won't need to repeat (e.g., creating an anaconda environment). You must first install the [https://www.anaconda.com '''Anaconda package'''] for Python. You will of course need to download a copy of the [https://grass.osgeo.org/download/ '''GRASS source code''']. You will also need to install Apple's '''XCode''' and the '''command-line tools''' to compile sofware. This workflow can be used with MacOS 10.14 and 10.15. It may work with other versions, but has not been tested.     &lt;br /&gt;
&lt;br /&gt;
You will need to work from the '''Mac terminal''' to compile GRASS of course. This tutorial assumes you are familiare with this command line interface.   &lt;br /&gt;
&lt;br /&gt;
This process also requires some patches and other supporting files. You can download these here: [[File:Grass_macapp_anaconda_supporting_files.zip]]  &lt;br /&gt;
&lt;br /&gt;
=== 1. Create a Mac app shell (I have uploaded an example for GRASS 7.9 you can use as is, modified from shells created by Eric Hutton). ===  &lt;br /&gt;
This can be modified serve for different versions of GRASS by altering the last line of the script that launches GRASS in the app shell. To do this, you will need to look inside the app by Ctrl-clicking on it and selecting ''''&amp;quot;show package contents&amp;quot;'''', which reveals the app as a folder with other folders and files inside.  &lt;br /&gt;
&lt;br /&gt;
For example, to make a shell for GRASS 7.8, copy the uploaded ''''GRASS-7.9.app'''' and rename it to ''''GRASS-7.8.app''''  &lt;br /&gt;
Then show package contents for ''''GRASS-7.8.app'''' and use a text editor to modify the last line of the file ''''../GRASS-7.8.app/Contents/MacOS/Grass.sh'''' to refer to GRASS 7.8  &lt;br /&gt;
&lt;br /&gt;
change:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass79&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
to:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass78&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
Also, use a text editor to modify ''''../GRASS-7.9.app/Contents/Info.plist''' to change all references to 7.9 to 7.8.  &lt;br /&gt;
&lt;br /&gt;
=== 2. Create an Anaconda environment for Python 3.6.10 ===  &lt;br /&gt;
This may not be strictly necessary, but I am doing it make sure that my builds use Python 3  instead of Python 2.7,  which is still what ships with the Mac.  &lt;br /&gt;
&lt;br /&gt;
Anaconda defaults to Python 3.7.6, which will not compile GRASS properly. This makes it more complicated than needed, requiring some workarounds. I've tried this with multiple versions of Python 3 (anaconda has them all the way up to 3.8.2), but the highest version that seems to give consistently successful results is 3.6.10. This will probably change in the future so that you can use a higher version of Python.   &lt;br /&gt;
&lt;br /&gt;
Here is how to create an Anaconda environment for Python 3.6.10. You only need to do this once for each environment you want to use.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create anaconda_p36 python==3.6.10 anaconda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Activate the Anaconda Python 3.6.10 environment ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda activate anaconda_p36&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can activate any previously created Anaconda environment in this way   &lt;br /&gt;
&lt;br /&gt;
=== 4. Copy the Mac app shell to /Applications ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r ../GRASS-7.9.app /Applications/GRASS-7.9.app  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Download the Python 3 miniconda installer and use it to install a minimal anaconda environment into the Mac app shell ===  &lt;br /&gt;
Even if you are working in an Anaconda environment with Python 3.6.10, miniconda currently installs Python 3.7.6 into the Mac app shell. So you will need to downgrade this in step 7 below. This will probably change in the future so that miniconda installs a higher Python version. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh &amp;amp;gt;  miniconda3.sh   &lt;br /&gt;
bash ./miniconda3.sh -b -f -p /Applications/GRASS-7.9.app/Contents/Resources    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  6. Export the path to the GRASS Mac app shell so that subsequent operations use the environment of that shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/Applications/GRASS-7.9.app/Contents/Resources/bin:$PATH   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Install GRASS dependencies into Mac app shell, including Python 3.6.10 ===  &lt;br /&gt;
A requirements file can make all of these dependencies easier to install. One is included in the supporting files package. This will downgrade Python from v. 3.7.6 installed by miniconda to the more useable 3.6.10.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install --yes -p &amp;quot;/Applications/GRASS-7.9.app/Contents/Resources&amp;quot; --file=requirements_wxp4p36.txt -c conda-forge  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Create a symlink to Python so that pythonw can find it (may become unneeded in the future) ===  &lt;br /&gt;
Grass launches Python through the pythonw script. But the script does not point to the correct location for Python (which is in fact in 2 different places). This seems to be a bug in Python &amp;lt; 3.7.4 or how anaconda installs it. It puts the python launch file in the wrong place. So a symlink is needed.  Hopefully this will go away when we can use Python &amp;gt; 3.7.6, which seems to put python in the correct place, and the place that pythonw points to.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /Applications/GRASS-7.8.app/Contents/Resources/python.app/pythonapp/Contents/* /Applications/GRASS-7.8.app/Contents/Resources/python.app/Contents&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. cd to the grass source folder and apply patches to  configure and make files ===  &lt;br /&gt;
Eric Hutton at CSDMS worked out these patches and I modified one needed to use Python 3. Maybe they can be worked into the source code so that they are no longer needed. I will upload the patches along with the app shell and requirements file.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; aclocal.m4.patch  &lt;br /&gt;
patch -p0 &amp;lt; configure.patch  &lt;br /&gt;
patch -p0 &amp;lt; install.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; loader.py.patch  &lt;br /&gt;
patch -p0 &amp;lt; module.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; platform.make.in.patch  &lt;br /&gt;
patch -p0 &amp;lt; rules.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; shlib.make.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== 10. Configure, make, and install ===  &lt;br /&gt;
An example configure script is included in the grass supporting files package. It flags all dependencies and sets the correct path so that they can be found. '''Important''': this configure script has a hard path to the SDK (software developer kit) that comes with XCode. You can set different path if you've put you SDK in a different place.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash ../configure.sh&lt;br /&gt;
make -j4  GDAL_DYNAMIC=&lt;br /&gt;
make -j4 install  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming there were no errors, you should now be able to run and test the GRASS-7.9.app in your /Applications folder&lt;br /&gt;
&lt;br /&gt;
=== 11. Clean up ===  &lt;br /&gt;
This removes unneeded anaconda package installer files and some other large files that are irrelevant for GRASS. It makes the app much smaller (though still large because of Python, wxPython, and other dependencies are packaged inside)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda clean --all  -y  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/mkspecs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/phrasebooks  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/pkgs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/plugins  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/qml  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/resources  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/translations &lt;br /&gt;
rm /Applications/GRASS-7.9.app/Contents/Resources/lib/libQt*  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: create a binary distribution package ==&lt;br /&gt;
=== 12. Set up folder to make a binary package for distribution ===  &lt;br /&gt;
Put a copy of the new GRASS app and a symlink to the /Applications folder into a new folder that will become the distribution package.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ../binary_pkg/grass-7.9&lt;br /&gt;
cd ../binary_pkg/grass-7.9&lt;br /&gt;
cp -R /Applications/GRASS-7.9.app ./&lt;br /&gt;
ln -s /Applications Applications  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Use Disk Utility to make a distribution package ===  &lt;br /&gt;
* Open disk Utility  &lt;br /&gt;
* From the make file/new image menu, select image from from folder  &lt;br /&gt;
* Point it to the folder with the app and symlink to /Applications and tell it to make an image ''''GRASS-7.9.dmg''''.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26211</id>
		<title>Compiling on macOS using Anaconda</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26211"/>
		<updated>2020-06-03T17:35:01Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: adding links to related pages and improving URL formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using Anaconda to Create a Binary Mac App for GRASS ==&lt;br /&gt;
These instructions are for creating a self-contained Mac app, including all dependencies, with GRASS 7.9 and Anaconda. You can modify them if you don't need some of the steps. Some of the steps you won't need to repeat (e.g., creating an anaconda environment). You must first install the [https://www.anaconda.com '''Anaconda package'''] for Python. You will of course need to download a copy of the [https://grass.osgeo.org/download/ '''GRASS source code''']. You will also need to install Apple's '''XCode''' and the '''command-line tools''' to compile sofware. This workflow can be used with MacOS 10.14 and 10.15. It may work with other versions, but has not been tested.     &lt;br /&gt;
&lt;br /&gt;
You will need to work from the '''Mac terminal''' to compile GRASS of course. This tutorial assumes you are familiare with this command line interface.   &lt;br /&gt;
&lt;br /&gt;
This process also requires some patches and other supporting files. You can download these here: [[File:Grass_macapp_anaconda_supporting_files.zip]]  &lt;br /&gt;
&lt;br /&gt;
=== 1. Create a Mac app shell (I have uploaded an example for GRASS 7.9 you can use as is, modified from shells created by Eric Hutton). ===  &lt;br /&gt;
This can be modified serve for different versions of GRASS by altering the last line of the script that launches GRASS in the app shell. To do this, you will need to look inside the app by Ctrl-clicking on it and selecting ''''&amp;quot;show package contents&amp;quot;'''', which reveals the app as a folder with other folders and files inside.  &lt;br /&gt;
&lt;br /&gt;
For example, to make a shell for GRASS 7.8, copy the uploaded ''''GRASS-7.9.app'''' and rename it to ''''GRASS-7.8.app''''  &lt;br /&gt;
Then show package contents for ''''GRASS-7.8.app'''' and use a text editor to modify the last line of the file ''''../GRASS-7.8.app/Contents/MacOS/Grass.sh'''' to refer to GRASS 7.8  &lt;br /&gt;
&lt;br /&gt;
change:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass79&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
to:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass78&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
Also, use a text editor to modify ''''../GRASS-7.9.app/Contents/Info.plist''' to change all references to 7.9 to 7.8.  &lt;br /&gt;
&lt;br /&gt;
=== 2. Create an Anaconda environment for Python 3.6.10 ===  &lt;br /&gt;
This may not be strictly necessary, but I am doing it make sure that my builds use Python 3  instead of Python 2.7,  which is still what ships with the Mac.  &lt;br /&gt;
&lt;br /&gt;
Anaconda defaults to Python 3.7.6, which will not compile GRASS properly. This makes it more complicated than needed, requiring some workarounds. I've tried this with multiple versions of Python 3 (anaconda has them all the way up to 3.8.2), but the highest version that seems to give consistently successful results is 3.6.10. This will probably change in the future so that you can use a higher version of Python.   &lt;br /&gt;
&lt;br /&gt;
Here is how to create an Anaconda environment for Python 3.6.10. You only need to do this once for each environment you want to use.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create anaconda_p36 python==3.6.10 anaconda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Activate the Anaconda Python 3.6.10 environment ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda activate anaconda_p36&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can activate any previously created Anaconda environment in this way   &lt;br /&gt;
&lt;br /&gt;
=== 4. Copy the Mac app shell to /Applications ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r ../GRASS-7.9.app /Applications/GRASS-7.9.app  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Download the Python 3 miniconda installer and use it to install a minimal anaconda environment into the Mac app shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh &amp;amp;gt;  miniconda3.sh   &lt;br /&gt;
bash ./miniconda3.sh -b -f -p /Applications/GRASS-7.9.app/Contents/Resources    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  6. Export the path to the GRASS Mac app shell so that subsequent operations use the environment of that shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/Applications/GRASS-7.9.app/Contents/Resources/bin:$PATH   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Install GRASS dependencies into Mac app shell, including Python 3.6.10 ===  &lt;br /&gt;
A requirements file can make all of these dependencies easier to install. One is included in the supporting files package. This will downgrade Python from v. 3.7.6 installed by miniconda to the more useable 3.6.10.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install --yes -p &amp;quot;/Applications/GRASS-7.9.app/Contents/Resources&amp;quot; --file=requirements_wxp4p36.txt -c conda-forge  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Create a symlink to Python so that pythonw can find it (may become unneeded in the future) ===  &lt;br /&gt;
Grass launches Python through the pythonw script. But the script does not point to the correct location for Python (which is in fact in 2 different places). This seems to be a bug in Python &amp;lt; 3.7.4 or how anaconda installs it. It puts the python launch file in the wrong place. So a symlink is needed.  Hopefully this will go away when we can use Python &amp;gt; 3.7.6, which seems to put python in the correct place, and the place that pythonw points to.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /Applications/GRASS-7.8.app/Contents/Resources/python.app/pythonapp/Contents/* /Applications/GRASS-7.8.app/Contents/Resources/python.app/Contents&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. cd to the grass source folder and apply patches to  configure and make files ===  &lt;br /&gt;
Eric Hutton at CSDMS worked out these patches and I modified one needed to use Python 3. Maybe they can be worked into the source code so that they are no longer needed. I will upload the patches along with the app shell and requirements file.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; aclocal.m4.patch  &lt;br /&gt;
patch -p0 &amp;lt; configure.patch  &lt;br /&gt;
patch -p0 &amp;lt; install.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; loader.py.patch  &lt;br /&gt;
patch -p0 &amp;lt; module.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; platform.make.in.patch  &lt;br /&gt;
patch -p0 &amp;lt; rules.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; shlib.make.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== 10. Configure, make, and install ===  &lt;br /&gt;
An example configure script is included in the grass supporting files package. It flags all dependencies and sets the correct path so that they can be found. '''Important''': this configure script has a hard path to the SDK (software developer kit) that comes with XCode. You can set different path if you've put you SDK in a different place.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash ../configure.sh&lt;br /&gt;
make -j4  GDAL_DYNAMIC=&lt;br /&gt;
make -j4 install  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming there were no errors, you should now be able to run and test the GRASS-7.9.app in your /Applications folder&lt;br /&gt;
&lt;br /&gt;
=== 11. Clean up ===  &lt;br /&gt;
This removes unneeded anaconda package installer files and some other large files that are irrelevant for GRASS. It makes the app much smaller (though still large because of Python, wxPython, and other dependencies are packaged inside)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda clean --all  -y  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/mkspecs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/phrasebooks  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/pkgs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/plugins  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/qml  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/resources  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/translations &lt;br /&gt;
rm /Applications/GRASS-7.9.app/Contents/Resources/lib/libQt*  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: create a binary distribution package ==&lt;br /&gt;
=== 12. Set up folder to make a binary package for distribution ===  &lt;br /&gt;
Put a copy of the new GRASS app and a symlink to the /Applications folder into a new folder that will become the distribution package.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ../binary_pkg/grass-7.9&lt;br /&gt;
cd ../binary_pkg/grass-7.9&lt;br /&gt;
cp -R /Applications/GRASS-7.9.app ./&lt;br /&gt;
ln -s /Applications Applications  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Use Disk Utility to make a distribution package ===  &lt;br /&gt;
* Open disk Utility  &lt;br /&gt;
* From the make file/new image menu, select image from from folder  &lt;br /&gt;
* Point it to the folder with the app and symlink to /Applications and tell it to make an image ''''GRASS-7.9.dmg''''.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install&amp;diff=26210</id>
		<title>Compile and Install</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install&amp;diff=26210"/>
		<updated>2020-06-03T15:56:00Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: add link to page on compiling Mac app with Anaconda&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- {{MoveToTrac}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Disclaimer''': This page explains how to turn the GRASS GIS source code into an installable binary package (&amp;quot;compilation&amp;quot;) for different operating systems. If you just want to get ready-to-use binaries, go [https://grass.osgeo.org/download/ here], otherwise read on...&lt;br /&gt;
&lt;br /&gt;
== How to do compilation and installation of GRASS GIS? ==&lt;br /&gt;
&lt;br /&gt;
Here we explain the procedure to compile GRASS from GitHub, but it also applies to official GRASS 7 releases.&lt;br /&gt;
&lt;br /&gt;
''For installation of precompiled binary packages, see the main [[Installation Guide]].''&lt;br /&gt;
&lt;br /&gt;
For detailed information on compilation, please see the [https://github.com/OSGeo/grass/blob/master/INSTALL INSTALL] file in the source code.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
==== Extra libraries ====&lt;br /&gt;
GRASS GIS needs at least two extra libraries: PROJ and GDAL/OGR. It is recommended to download them as ready-to-use packages for your software platform (Linux distribution, Windows, Mac...).&lt;br /&gt;
&lt;br /&gt;
Other libraries needed to run GRASS are listed on the [http://htmlpreview.github.io/?https://github.com/OSGeo/grass/blob/master/REQUIREMENTS.html requirements page].&lt;br /&gt;
&lt;br /&gt;
To compile, you will also need the respective &amp;quot;-devel&amp;quot; packages; see below for details.&lt;br /&gt;
&lt;br /&gt;
==== Download GRASS GIS source code ====&lt;br /&gt;
&lt;br /&gt;
First, [https://grass.osgeo.org/download/software/sources/ download the GRASS GIS source code].&lt;br /&gt;
&lt;br /&gt;
=== Generic Compilation and installation procedure ===&lt;br /&gt;
&lt;br /&gt;
* It is wise that compilation processes are carried out as a normal user: If you want to get the source code in a place where you do not have write permissions (e.g. in /usr/local/src/) just follow this:&lt;br /&gt;
      cd /usr/local/src/ &lt;br /&gt;
      su -c 'mkdir grass7'&lt;br /&gt;
      su -c 'chown yourlogin:yourgroup grass7'&lt;br /&gt;
&lt;br /&gt;
Otherwise if you have permissions just continue as a normal user:&lt;br /&gt;
      mkdir $HOME/src&lt;br /&gt;
      cd $HOME/src/&lt;br /&gt;
      git clone https://github.com/OSGeo/grass.git grass_master&lt;br /&gt;
&lt;br /&gt;
* run configure with parameters to adapt the compile process to your own system. To see what options can be passed to it, run:&lt;br /&gt;
 ./configure --help | less &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- The minimum set of configure parameters is &lt;br /&gt;
      ./configure ### --&amp;gt;&lt;br /&gt;
It may (!) look like this:&lt;br /&gt;
 &lt;br /&gt;
      ./configure \&lt;br /&gt;
          --with-cxx \&lt;br /&gt;
          --with-sqlite \&lt;br /&gt;
          --with-python \&lt;br /&gt;
          --with-geos \&lt;br /&gt;
          --with-gdal=/usr/bin/gdal-config \&lt;br /&gt;
          --with-cairo --with-cairo-ldflags=-lfontconfig \&lt;br /&gt;
          --with-freetype \&lt;br /&gt;
          --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
          --with-proj --with-proj-share=/usr/share/proj&lt;br /&gt;
&lt;br /&gt;
You may have to explicitly state the path for certain packages (i.e., gdal). The Unix 'locate' command will come in handy for finding the path of the package you need (you may have to run locate as root ex: sudo locate gdal-config).&lt;br /&gt;
&lt;br /&gt;
Please note that the paths mentioned may widely vary due to the distribution used.&lt;br /&gt;
See [[Compile_and_Install#Platform_Specific_Notes|Platform Specific Notes]] below.&lt;br /&gt;
&lt;br /&gt;
Depending on your needs it may be a good idea to include debugging hooks.&lt;br /&gt;
: See [[GRASS_Debugging#Compile_Time_Setup]].&lt;br /&gt;
 CFLAGS=&amp;quot;-ggdb -Wall -Werror-implicit-function-declaration&amp;quot; ./configure ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At the end of configuration process you should get report not much different from this:&lt;br /&gt;
&lt;br /&gt;
  GRASS is now configured for:  x86_64-pc-linux-gnu&lt;br /&gt;
  &lt;br /&gt;
  Source directory:           /home/user/software/grass_master&lt;br /&gt;
  Build directory:            /home/user/software/grass_master&lt;br /&gt;
  Installation directory:     ${prefix}/grass79&lt;br /&gt;
  Startup script in directory:${exec_prefix}/bin&lt;br /&gt;
  C compiler:                 gcc -O2 -march=native -std=gnu99 -fexceptions -fstack-protector -m64 -fdiagnostics-color &lt;br /&gt;
  C++ compiler:               c++ -g -Wall&lt;br /&gt;
  Building shared libraries:  yes&lt;br /&gt;
  OpenGL platform:            X11&lt;br /&gt;
  &lt;br /&gt;
  MacOSX application:         no&lt;br /&gt;
  MacOSX architectures:       &lt;br /&gt;
  MacOSX SDK:                 &lt;br /&gt;
  &lt;br /&gt;
  BLAS support:               yes&lt;br /&gt;
  BZIP2 support:              no&lt;br /&gt;
  C++ support:                yes&lt;br /&gt;
  Cairo support:              yes&lt;br /&gt;
  DWG support:                no&lt;br /&gt;
  FFTW support:               yes&lt;br /&gt;
  FreeType support:           yes&lt;br /&gt;
  GDAL support:               yes&lt;br /&gt;
  GEOS support:               yes&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
* Let's compile it (takes a little while...)!&lt;br /&gt;
      make -j2&lt;br /&gt;
* At the end, you should get report not much different from this:&lt;br /&gt;
 ----------------------------------------------------------------------&lt;br /&gt;
 Following modules are missing the 'description.html' file in src code:&lt;br /&gt;
 ----------------------------------------------------------------------&lt;br /&gt;
 GRASS GIS compilation log&lt;br /&gt;
 -------------------------&lt;br /&gt;
 Started compilation: Mon 19 Aug 2019 10:47:57 PM CEST&lt;br /&gt;
 --&lt;br /&gt;
 Errors in:&lt;br /&gt;
 No errors detected.&lt;br /&gt;
 --&lt;br /&gt;
 Finished compilation: Mon 19 Aug 2019 10:55:12 PM CEST&lt;br /&gt;
 (In case of errors please change into the directory with error and run 'make')&lt;br /&gt;
&lt;br /&gt;
* If there is any error, change directory to directory with error and run &amp;quot;make&amp;quot; again. Report occurring bug to GRASS mailing list&lt;br /&gt;
* Once the installation process is finished, you're ready to install GRASS system wide.&lt;br /&gt;
      su -c 'make install'&lt;br /&gt;
* enjoy GRASS: &lt;br /&gt;
      grass79&lt;br /&gt;
&lt;br /&gt;
=== What else? ===&lt;br /&gt;
&lt;br /&gt;
If you want to use [http://www.qgis.org QGIS], then also compile the GRASS-GDAL/OGR plugin. This is also useful to access your GRASS-data&lt;br /&gt;
from other application using GDAL/OGR like [http://thuban.intevation.de thuban].&lt;br /&gt;
* [[Compile and install GRASS and QGIS with GDAL/OGR Plugin]] (enables QGIS to read GRASS data directly)&lt;br /&gt;
&lt;br /&gt;
=== Compile and install GDAL-GRASS plugin ===&lt;br /&gt;
&lt;br /&gt;
* See [[Compile and install GDAL-GRASS plugin]]&lt;br /&gt;
&lt;br /&gt;
=== Platform Specific Notes ===&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
Linux comes in various flavours, i.e. distributions.&lt;br /&gt;
&lt;br /&gt;
===== Distribution related packaging =====&lt;br /&gt;
&lt;br /&gt;
* Arch Linux: https://github.com/czka/AUR-grass7&lt;br /&gt;
* Centos: https://src.fedoraproject.org/rpms/grass&lt;br /&gt;
* Debian: https://trac.osgeo.org/grass/wiki/DebianUbuntuPackaging&lt;br /&gt;
* EPEL: https://src.fedoraproject.org/rpms/grass&lt;br /&gt;
* Fedora: https://src.fedoraproject.org/rpms/grass&lt;br /&gt;
* Ubuntu: https://trac.osgeo.org/grass/wiki/DebianUbuntuPackaging&lt;br /&gt;
&lt;br /&gt;
===== Generic procedure for Debian-based distributions (Ubuntu, ...) =====&lt;br /&gt;
&lt;br /&gt;
WORK IN PROGRESS&lt;br /&gt;
&lt;br /&gt;
1. Install official GRASS package&lt;br /&gt;
&lt;br /&gt;
 sudo apt install grass grass-dev&lt;br /&gt;
&lt;br /&gt;
2. Enable source code download&lt;br /&gt;
&lt;br /&gt;
 # do backup first&lt;br /&gt;
 sudo cp /etc/apt/sources.list /etc/apt/sources.list.orig&lt;br /&gt;
 sudo sed -i '/^#\sdeb-src /s/^# *//' /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
3. Install GRASS dependencies&lt;br /&gt;
&lt;br /&gt;
 sudo apt build-dep grass&lt;br /&gt;
&lt;br /&gt;
4. Download GRASS source code&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/osgeo/grass&lt;br /&gt;
&lt;br /&gt;
5. Compile GRASS from source code&lt;br /&gt;
 &lt;br /&gt;
 cd grass&lt;br /&gt;
&lt;br /&gt;
Configure:&lt;br /&gt;
&lt;br /&gt;
 grass --config build | sh&lt;br /&gt;
&lt;br /&gt;
Optionally install missing dependecies (can happen when official GRASS package is not compatible with GRASS master), eg.&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libzstd-dev&lt;br /&gt;
&lt;br /&gt;
Compile:&lt;br /&gt;
&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
6. Run locally or install&lt;br /&gt;
&lt;br /&gt;
 ./bin.x86_64-pc-linux-gnu/grass79 --version&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 sudo make install&lt;br /&gt;
 grass79 --version&lt;br /&gt;
&lt;br /&gt;
===== Debian =====&lt;br /&gt;
&lt;br /&gt;
* Official [http://wiki.debian.org/DebianGis DebianGIS] packaging control files, available on git server:&lt;br /&gt;
  git://git.debian.org/git/pkg-grass/grass.git&lt;br /&gt;
&lt;br /&gt;
  http://anonscm.debian.org/cgit/pkg-grass/grass.git/&lt;br /&gt;
&lt;br /&gt;
====== GRASS 6.1 on Debian Sarge ======&lt;br /&gt;
&lt;br /&gt;
* [http://hamish.bowman.googlepages.com/debiangisfiles#compile Compiling GRASS 6.1-CVS on Debian/OldStable (aka 3.1, Sarge)]&lt;br /&gt;
&lt;br /&gt;
====== GRASS 6.4 on Debian Lenny ======&lt;br /&gt;
&lt;br /&gt;
Install needed packages:&lt;br /&gt;
  apt-get install flex bison libreadline-dev libncurses5-dev lesstif2-dev debhelper dpatch libtiff4-dev \&lt;br /&gt;
          tcl-dev tk-dev libfftw3-dev libxmu-dev libfreetype6-dev autoconf2.13 autotools-dev doxygen \&lt;br /&gt;
          libmysqlclient15-dev graphviz libsqlite3-dev python-wxgtk2.8 libcairo2-dev libwxgtk2.8-dev \&lt;br /&gt;
          python-dev libgdal1-dev  libgdal1-1.5.0 libproj-dev libproj0 proj-bin proj-data mysql&lt;br /&gt;
&lt;br /&gt;
# Important: avoid using CFLAGS=&amp;quot;... -Werror-implicit-function-declaration&amp;quot; (also on later Debian versions), see {{trac|1684}}&lt;br /&gt;
&lt;br /&gt;
Configure:&lt;br /&gt;
  ./configure \&lt;br /&gt;
  --with-cxx \&lt;br /&gt;
  --with-sqlite \&lt;br /&gt;
  --with-postgres --with-postgres-includes=/usr/include/postgresql \&lt;br /&gt;
  --with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql \&lt;br /&gt;
  --with-odbc \&lt;br /&gt;
  --with-cairo \&lt;br /&gt;
  --with-proj-share=/usr/share/proj \&lt;br /&gt;
  --with-tcltk-includes=/usr/include/tcl8.4/ \&lt;br /&gt;
  --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
  --with-motif --with-fftw --with-nls --with-python \&lt;br /&gt;
  --with-x --x-libraries=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
&lt;br /&gt;
Compile:&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
  sudo make install&lt;br /&gt;
&lt;br /&gt;
====== GRASS 6.4 on Debian Jessie ======&lt;br /&gt;
&lt;br /&gt;
Install needed packages:&lt;br /&gt;
  apt-get install flex bison debhelper dpatch autoconf2.13 autotools-dev \&lt;br /&gt;
    python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev tcl-dev tk-dev \&lt;br /&gt;
    libfreetype6-dev libgdal1h libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev \&lt;br /&gt;
    libncurses5-dev libreadline-dev libsqlite3-dev libtiff5-dev \&lt;br /&gt;
    libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \&lt;br /&gt;
    libproj-dev proj-bin proj-data python-numpy python-wxgtk3.0 subversion wx-common zlib1g-dev \&lt;br /&gt;
    netcdf-bin libnetcdf-dev libatlas-dev libgegl-dev doxygen postgresql mysql-server \&lt;br /&gt;
    libgeotiff-dev libblas-dev libgeotiff-epsg libxmu-dev libxt-dev libx11-dev&lt;br /&gt;
&lt;br /&gt;
# Important: avoid using CFLAGS=&amp;quot;... -Werror-implicit-function-declaration&amp;quot; (also on later Debian versions), see {{trac|1684}}&lt;br /&gt;
&lt;br /&gt;
Configure:&lt;br /&gt;
  ./configure \&lt;br /&gt;
  --with-cxx \&lt;br /&gt;
  --with-sqlite \&lt;br /&gt;
  --with-postgres \&lt;br /&gt;
  --with-odbc \&lt;br /&gt;
  --with-cairo \&lt;br /&gt;
  --with-geos \&lt;br /&gt;
  --with-proj-share=/usr/share/proj \&lt;br /&gt;
  --with-tcltk-includes=/usr/include/tcl8.6/ \&lt;br /&gt;
  --with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql \&lt;br /&gt;
  --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
  --with-motif \&lt;br /&gt;
  --with-fftw \&lt;br /&gt;
  --with-nls \&lt;br /&gt;
  --with-postgres-includes=/usr/include/postgresql \&lt;br /&gt;
  --with-python \&lt;br /&gt;
  --with-x --x-libraries=/usr/lib/x86_64-linux-gnu&lt;br /&gt;
&lt;br /&gt;
Compile:&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
  sudo make install&lt;br /&gt;
&lt;br /&gt;
====== GRASS 7 on Debian Squeeze ======&lt;br /&gt;
&lt;br /&gt;
Install needed packages:&lt;br /&gt;
 apt-get install flex bison debhelper dpatch autoconf2.13 autotools-dev python-dev \&lt;br /&gt;
     g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev \&lt;br /&gt;
     libgdal1 libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev \&lt;br /&gt;
     libncurses5-dev libproj-dev libreadline-dev libsqlite3-dev libtiff4-dev \&lt;br /&gt;
     libwxgtk2.8-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \&lt;br /&gt;
     proj-bin proj-data python-numpy python-wxgtk2.8 subversion wx-common zlib1g-dev&lt;br /&gt;
&lt;br /&gt;
Download source code:&lt;br /&gt;
&lt;br /&gt;
 svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk&lt;br /&gt;
&lt;br /&gt;
Configure:&lt;br /&gt;
 &lt;br /&gt;
 cd grass_trunk/&lt;br /&gt;
 CFLAGS=&amp;quot;-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused&amp;quot; \&lt;br /&gt;
 CXXFLAGS=&amp;quot;-Wall&amp;quot;  \&lt;br /&gt;
  ./configure --prefix=/usr/local \&lt;br /&gt;
  --with-gdal --with-proj --with-proj-share=/usr/share \&lt;br /&gt;
  --with-glw --with-nls --with-readline \&lt;br /&gt;
  --without-tcltk \&lt;br /&gt;
  --with-cxx \&lt;br /&gt;
  --enable-largefile \&lt;br /&gt;
  --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
  --with-sqlite \&lt;br /&gt;
  --with-cairo --with-python=/usr/bin/python2.6-config --with-wxwidgets \&lt;br /&gt;
  --with-geos --with-pthread&lt;br /&gt;
&lt;br /&gt;
Compile:&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
  sudo make install  # installs as /usr/local/bin/grass72&lt;br /&gt;
&lt;br /&gt;
====== GRASS 7 on Debian Wheezy ======&lt;br /&gt;
&lt;br /&gt;
Install needed packages:&lt;br /&gt;
&lt;br /&gt;
 # note: cmake and libboost-all-dev only needed for optional libLAS&lt;br /&gt;
 sudo apt-get install cmake libboost-all-dev&lt;br /&gt;
 &lt;br /&gt;
 sudo apt-get install flex bison debhelper dpatch autoconf2.13 autotools-dev \&lt;br /&gt;
   python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev \&lt;br /&gt;
   libgdal1 libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev libncurses5-dev libproj-dev \&lt;br /&gt;
   libreadline-dev libtiff4-dev libwxgtk2.8-dev libxmu-dev libxmu-headers \&lt;br /&gt;
   libxt-dev mesa-common-dev proj-bin proj-data python-numpy python-wxgtk2.8 subversion wx-common \&lt;br /&gt;
   zlib1g-dev netcdf-bin libatlas-dev libgegl-dev opencl-headers ocl-icd-libopencl1 \&lt;br /&gt;
   libsqlite3-dev postgresql python-sphinx python-gdal&lt;br /&gt;
&lt;br /&gt;
Download and Install libLAS&lt;br /&gt;
 wget http://download.osgeo.org/liblas/libLAS-1.7.0.tar.gz&lt;br /&gt;
 tar -zxvf libLAS-1.7.0.tar.gz&lt;br /&gt;
 cd libLAS-1.7.0/&lt;br /&gt;
 mkdir makefiles&lt;br /&gt;
 cd makefiles&lt;br /&gt;
 cmake -G &amp;quot;Unix Makefiles&amp;quot; ../&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
 cd ../..&lt;br /&gt;
&lt;br /&gt;
Download of GRASS GIS 7 source code:&lt;br /&gt;
 wget http://grass.osgeo.org/grass78/source/grass-7.8.0.tar.gz&lt;br /&gt;
 tar -zxvf grass-7.8.0.tar.gz&lt;br /&gt;
&lt;br /&gt;
Configure:&lt;br /&gt;
 cd grass-7.0.0&lt;br /&gt;
 CFLAGS=&amp;quot;-g -Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused&amp;quot; CXXFLAGS=&amp;quot;-g -Wall&amp;quot; \&lt;br /&gt;
 ./configure \&lt;br /&gt;
    --prefix=/usr/local \&lt;br /&gt;
    --with-gdal \&lt;br /&gt;
    --with-proj --with-proj-share=/usr/share \&lt;br /&gt;
    --with-glw --with-nls --with-readline \&lt;br /&gt;
    --with-cxx --enable-largefile \&lt;br /&gt;
    --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
    --with-sqlite --with-cairo --with-python=/usr/bin/python-config \&lt;br /&gt;
    --with-wxwidgets --with-geos --with-blas \&lt;br /&gt;
    --with-lapack-includes=/usr/lib/lapack --with-liblas=yes \&lt;br /&gt;
    --with-netcdf=/usr/bin/nc-config --with-odbc=yes \&lt;br /&gt;
    --with-openmp=yes --with-pthread=yes --with-postgres=yes \&lt;br /&gt;
    --with-postgres-includes=/usr/include/postgresql \&lt;br /&gt;
    --with-postgres-libs=/usr/lib/postgresql&lt;br /&gt;
 &lt;br /&gt;
 #     --with-mysql=yes --with-mysql-includes=/usr/include/mysql \&lt;br /&gt;
 #    --with-mysql-libs=/usr/lib/mysql \&lt;br /&gt;
&lt;br /&gt;
GRASS GIS 7 is now configured (example):&lt;br /&gt;
&lt;br /&gt;
  Source directory:           /home/user/grass-7.0.0&lt;br /&gt;
  Build directory:            /home/user/grass-7.0.0&lt;br /&gt;
  Installation directory:     ${prefix}/grass-7.0.0&lt;br /&gt;
  Startup script in directory:${exec_prefix}/bin&lt;br /&gt;
  C compiler:                 gcc -g -Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused &lt;br /&gt;
  C++ compiler:               c++ -g -Wall&lt;br /&gt;
  Building shared libraries:  yes&lt;br /&gt;
  OpenGL platform:            X11&lt;br /&gt;
  MacOSX application:         no&lt;br /&gt;
  MacOSX architectures:       &lt;br /&gt;
  MacOSX SDK:                 &lt;br /&gt;
  BLAS support:               yes&lt;br /&gt;
  C++ support:                yes&lt;br /&gt;
  Cairo support:              yes&lt;br /&gt;
  DWG support:                no&lt;br /&gt;
  FFTW support:               yes&lt;br /&gt;
  FreeType support:           yes&lt;br /&gt;
  GDAL support:               yes&lt;br /&gt;
  GEOS support:               yes&lt;br /&gt;
  LAPACK support:             no&lt;br /&gt;
  Large File support (LFS):   yes&lt;br /&gt;
  libLAS support:             yes&lt;br /&gt;
  MySQL support:              no&lt;br /&gt;
  NetCDF support:             yes&lt;br /&gt;
  NLS support:                yes&lt;br /&gt;
  ODBC support:               yes&lt;br /&gt;
  OGR support:                yes&lt;br /&gt;
  OpenCL support:             no&lt;br /&gt;
  OpenGL support:             yes&lt;br /&gt;
  OpenMP support:             yes&lt;br /&gt;
  PNG support:                yes&lt;br /&gt;
  POSIX thread support:       yes&lt;br /&gt;
  PostgreSQL support:         yes&lt;br /&gt;
  Readline support:           yes&lt;br /&gt;
  Regex support:              yes&lt;br /&gt;
  SQLite support:             yes&lt;br /&gt;
  TIFF support:               yes&lt;br /&gt;
  wxWidgets support:          yes&lt;br /&gt;
  X11 support:                no&lt;br /&gt;
&lt;br /&gt;
Compile:&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 sudo make install   # installs as /usr/local/bin/grass70&lt;br /&gt;
&lt;br /&gt;
Launch:&lt;br /&gt;
 grass70&lt;br /&gt;
&lt;br /&gt;
====== GRASS 7 on Debian Jessie ======&lt;br /&gt;
&lt;br /&gt;
Install needed packages:&lt;br /&gt;
 sudo apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 \&lt;br /&gt;
    autotools-dev python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev \&lt;br /&gt;
    libfreetype6-dev libgdal1h libgdal1-dev libglu1-mesa-dev libglw1-mesa-dev \&lt;br /&gt;
    libncurses5-dev libproj-dev libreadline-dev libsqlite3-dev libtiff5-dev \&lt;br /&gt;
    libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \&lt;br /&gt;
    proj-bin proj-data python-numpy python-wxgtk3.0 subversion wx-common zlib1g-dev \&lt;br /&gt;
    netcdf-bin libnetcdf-dev libgegl-dev  doxygen python-sphinx \&lt;br /&gt;
    postgresql libgeotiff-dev libblas-dev mysql-server \&lt;br /&gt;
    libatlas-dev liblapack3gf liblapack-dev&lt;br /&gt;
    # opencl-headers ocl-icd-libopencl1   liblas-bin liblas-c-dev python-gdal&lt;br /&gt;
&lt;br /&gt;
Download and compile libLAS (or simply install 'liblas-c-dev ', see above):&lt;br /&gt;
 wget http://download.osgeo.org/liblas/libLAS-1.8.0.tar.bz2&lt;br /&gt;
 tar xjf libLAS-1.8.0.tar.bz2&lt;br /&gt;
 mkdir libLAS-1.8.0/makefiles&lt;br /&gt;
 cd libLAS-1.8.0/makefiles&lt;br /&gt;
 cmake -G &amp;quot;Unix Makefiles&amp;quot; ../&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
Download and compile GRASS 7:&lt;br /&gt;
 # (check there for later version)&lt;br /&gt;
 wget http://grass.osgeo.org/grass74/source/grass-7.4.0.tar.gz&lt;br /&gt;
 tar xzfv grass-7.4.0.tar.gz&lt;br /&gt;
 cd grass-7.4.0&lt;br /&gt;
 CFLAGS=&amp;quot;-g -Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused&amp;quot; \&lt;br /&gt;
 CXXFLAGS=&amp;quot;-g -Wall&amp;quot;  \&lt;br /&gt;
 ./configure \&lt;br /&gt;
    --prefix=/usr/local \&lt;br /&gt;
    --with-gdal --with-proj --with-proj-share=/usr/share \&lt;br /&gt;
    --with-glw --with-nls --with-readline \&lt;br /&gt;
    --with-cxx --enable-largefile \&lt;br /&gt;
    --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
    --with-sqlite --with-cairo --with-python=/usr/bin/python-config \&lt;br /&gt;
    --with-wxwidgets --with-geos \&lt;br /&gt;
    --with-blas --with-blas-includes=/usr/include/atlas/ \&lt;br /&gt;
    --with-lapack --with-lapack-includes=/usr/include/atlas/ \&lt;br /&gt;
    --with-netcdf=/usr/bin/nc-config --with-odbc=yes \&lt;br /&gt;
    --with-openmp=yes --with-pthread=no --with-postgres=yes \&lt;br /&gt;
    --with-postgres-includes=/usr/include/postgresql \&lt;br /&gt;
    --with-postgres-libs=/usr/lib/postgresql \&lt;br /&gt;
    --with-mysql=yes --with-mysql-includes=/usr/include/mysql \&lt;br /&gt;
    --with-mysql-libs=/usr/lib/mysql&lt;br /&gt;
 make -j2&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 sudo make install  # installs as /usr/local/bin/grass74&lt;br /&gt;
&lt;br /&gt;
====== GRASS 7 on Debian Stretch ======&lt;br /&gt;
(Updated from above with package changes required for Debian Stretch)&lt;br /&gt;
&lt;br /&gt;
Install needed packages for GRASS 7.2 - 7.6:&lt;br /&gt;
  apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 autotools-dev \&lt;br /&gt;
    python-dev g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev libgdal20 \&lt;br /&gt;
    libgdal-dev libglu1-mesa-dev libglw1-mesa-dev libncurses5-dev libproj-dev libreadline-dev \&lt;br /&gt;
    libsqlite3-dev libtiff5-dev libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \&lt;br /&gt;
    proj-bin proj-data python-numpy python-wxgtk3.0 python-wxtools wx-common zlib1g-dev netcdf-bin \&lt;br /&gt;
    libnetcdf-dev libgegl-dev  doxygen python-sphinx postgresql libgeotiff-dev libblas-dev \&lt;br /&gt;
    mariadb-server libatlas-dev liblapack3 liblapack-dev opencl-headers ocl-icd-libopencl1 \&lt;br /&gt;
    subversion liblas-bin liblas-c-dev python-gdal libpdal-dev libpdal-plugin-python pdal&lt;br /&gt;
&lt;br /&gt;
Install needed packages for GRASS 7.8+ (Python 3 support!):&lt;br /&gt;
  apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 autotools-dev \&lt;br /&gt;
    g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev libgdal20 python3-dev \&lt;br /&gt;
    libgdal-dev libglu1-mesa-dev libglw1-mesa-dev libproj-dev libreadline-dev libgeos-c1v5 \&lt;br /&gt;
    libsqlite3-dev libtiff5-dev libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \&lt;br /&gt;
    proj-bin proj-data python3-numpy python3-six wx-common zlib1g-dev netcdf-bin \&lt;br /&gt;
    libnetcdf-dev libgegl-dev  doxygen python3-sphinx postgresql libgeotiff-dev libblas-dev \&lt;br /&gt;
    libatlas-dev liblapack3 liblapack-dev opencl-headers ocl-icd-libopencl1 \&lt;br /&gt;
    subversion liblas-bin liblas-c-dev python3-gdal libpdal-dev libpdal-plugin-python pdal&lt;br /&gt;
    &lt;br /&gt;
    # ? python3-wxgtk4.0 libmariadb&lt;br /&gt;
&lt;br /&gt;
Download and unpack source code or fetch from GitHub: https://github.com/OSGeo/grass&lt;br /&gt;
&lt;br /&gt;
Configuration:&lt;br /&gt;
&lt;br /&gt;
  CFLAGS=&amp;quot;-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused&amp;quot; \&lt;br /&gt;
  CXXFLAGS=&amp;quot;-Wall&amp;quot;  \&lt;br /&gt;
  ./configure \&lt;br /&gt;
   --prefix=/usr/local \&lt;br /&gt;
   --with-gdal --with-proj --with-proj-share=/usr/share \&lt;br /&gt;
   --with-glw --with-nls --with-readline \&lt;br /&gt;
   --with-cxx --enable-largefile \&lt;br /&gt;
   --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
   --with-sqlite --with-cairo --with-python=/usr/bin/python-config \&lt;br /&gt;
   --with-wxwidgets --with-geos \&lt;br /&gt;
   --with-blas --with-blas-includes=/usr/include/atlas/ \&lt;br /&gt;
   --with-lapack --with-lapack-includes=/usr/include/atlas/ \&lt;br /&gt;
   --with-netcdf=/usr/bin/nc-config --with-odbc=yes \&lt;br /&gt;
   --with-openmp=yes --with-pthread=no --with-postgres=yes \&lt;br /&gt;
   --with-postgres-includes=/usr/include/postgresql \&lt;br /&gt;
   --with-postgres-libs=/usr/lib/postgresql \&lt;br /&gt;
   --with-mysql=yes --with-mysql-includes=/usr/include/mysql&lt;br /&gt;
&lt;br /&gt;
Compile:&lt;br /&gt;
&lt;br /&gt;
  make -j2&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
====== GRASS 7 on Debian Buster ======&lt;br /&gt;
&lt;br /&gt;
-- To be updated --&lt;br /&gt;
&lt;br /&gt;
Install needed packages for GRASS 7.8+ (Python 3 support!):&lt;br /&gt;
  apt-get install cmake libboost-all-dev flex bison debhelper dpatch autoconf2.13 autotools-dev \&lt;br /&gt;
    g++ gcc gettext graphviz libcairo2-dev libfftw3-dev libfreetype6-dev libgdal20 python3-dev \&lt;br /&gt;
    libgdal-dev libglu1-mesa-dev libglw1-mesa-dev libproj-dev libreadline-dev libgeos-c1v5 \&lt;br /&gt;
    libsqlite3-dev libtiff5-dev libwxgtk3.0-dev libxmu-dev libxmu-headers libxt-dev mesa-common-dev \&lt;br /&gt;
    proj-bin proj-data python3-numpy python3-six wx-common zlib1g-dev netcdf-bin \&lt;br /&gt;
    libnetcdf-dev libgegl-dev  doxygen python3-sphinx postgresql libgeotiff-dev libblas-dev \&lt;br /&gt;
    liblapack3 liblapack-dev opencl-headers ocl-icd-libopencl1 \&lt;br /&gt;
    subversion liblas-bin liblas-c-dev python3-gdal libpdal-dev libpdal-plugin-python pdal \&lt;br /&gt;
    python3-wxgtk4.0 default-libmysqlclient-dev&lt;br /&gt;
&lt;br /&gt;
Download and unpack source code or fetch from GitHub: https://github.com/OSGeo/grass&lt;br /&gt;
&lt;br /&gt;
Configuration:&lt;br /&gt;
&lt;br /&gt;
  CFLAGS=&amp;quot;-Wall -Werror-implicit-function-declaration -fno-common -Wextra -Wunused&amp;quot; \&lt;br /&gt;
  CXXFLAGS=&amp;quot;-Wall&amp;quot;  \&lt;br /&gt;
  ./configure \&lt;br /&gt;
   --prefix=/usr/local \&lt;br /&gt;
   --with-gdal --with-proj --with-proj-share=/usr/share \&lt;br /&gt;
   --with-glw --with-nls --with-readline \&lt;br /&gt;
   --with-cxx --enable-largefile \&lt;br /&gt;
   --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
   --with-sqlite --with-cairo --with-python=/usr/bin/python-config \&lt;br /&gt;
   --with-wxwidgets --with-geos \&lt;br /&gt;
   --with-blas --with-blas-includes=/usr/include/atlas/ \&lt;br /&gt;
   --with-lapack --with-lapack-includes=/usr/include/atlas/ \&lt;br /&gt;
   --with-netcdf=/usr/bin/nc-config --with-odbc=yes \&lt;br /&gt;
   --with-openmp=yes --with-pthread=no --with-postgres=yes \&lt;br /&gt;
   --with-postgres-includes=/usr/include/postgresql \&lt;br /&gt;
   --with-postgres-libs=/usr/lib/postgresql \&lt;br /&gt;
   --with-mysql=yes --with-mysql-includes=/usr/include/mysql&lt;br /&gt;
&lt;br /&gt;
Compile:&lt;br /&gt;
&lt;br /&gt;
  make -j2&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
===== Ubuntu =====&lt;br /&gt;
&lt;br /&gt;
There is a dedicated page on how to [[Compile_and_Install_Ubuntu | Compile the GRASS GIS source code &amp;amp; install it in Ubuntu]].&lt;br /&gt;
&lt;br /&gt;
===== Linux Mint =====&lt;br /&gt;
&lt;br /&gt;
The [[Compile_and_Install_Ubuntu | detailed compilation guide for Ubuntu]] may just work. Here is a short guide for Mint:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# installation of required libraries and compile tools&lt;br /&gt;
sudo apt-get install\&lt;br /&gt;
 build-essential flex make bison gcc libgcc1 g++ cmake ccache \&lt;br /&gt;
 python python-dev python-opengl python-wxversion python-wxtools python-wxgtk3.0 python-dateutil \&lt;br /&gt;
 libgsl-dev python-numpy wx3.0-headers wx-common libwxgtk3.0-dev libwxbase3.0-dev \&lt;br /&gt;
 libncurses5-dev zlib1g-dev gettext libtiff5-dev libpnglite-dev libcairo2 libcairo2-dev \&lt;br /&gt;
 sqlite3 libsqlite3-dev libpq-dev libreadline6 libreadline6-dev libfreetype6-dev \&lt;br /&gt;
 libfftw3-3 libfftw3-dev libboost-thread-dev libboost-program-options-dev \&lt;br /&gt;
 liblas-c-dev resolvconf libjasper-dev subversion libav-tools libavutil-dev \&lt;br /&gt;
 ffmpeg2theora libffmpegthumbnailer-dev libavcodec-dev libxmu-dev libavformat-dev \&lt;br /&gt;
 libswscale-dev checkinstall libglu1-mesa-dev libxmu-dev ghostscript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next steps:&lt;br /&gt;
* download [https://grass.osgeo.org/download/software/sources/ GRASS GIS source code] (e.g. take the &amp;quot;Weekly 7.x-svn snapshot&amp;quot;)&lt;br /&gt;
* unpack source code, change into the source code directory&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# now &amp;quot;configure&amp;quot; stop to prepare for compilation&lt;br /&gt;
CFLAGS=&amp;quot;-Wall&amp;quot; ./configure  \&lt;br /&gt;
 --with-cxx  --with-gdal \&lt;br /&gt;
 --with-proj --with-proj-share=/usr/share/proj/ \&lt;br /&gt;
 --with-geos  --without-postgres \&lt;br /&gt;
 --with-nls  --with-opengl-includes=/usr/include/GL/ \&lt;br /&gt;
 --with-fftw  --with-freetype \&lt;br /&gt;
 --with-freetype-includes=/usr/include/freetype2  --with-sqlite \&lt;br /&gt;
 --with-python=/usr/bin/python2.7-config  --with-wx=/usr/bin/wx-config \&lt;br /&gt;
 --with-wxwidgets  --with-cairo  --enable-largefile&lt;br /&gt;
&lt;br /&gt;
# compile GRASS GIS&lt;br /&gt;
make -j2&lt;br /&gt;
&lt;br /&gt;
# install compiled GRASS GIS on system&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Mandriva =====&lt;br /&gt;
&lt;br /&gt;
Installation of dependencies (urpmi will ask you a few more):&lt;br /&gt;
&lt;br /&gt;
'''Mandriva 2009:''' (take out the '64' everywhere if you are on 32bit)&lt;br /&gt;
  # as root&lt;br /&gt;
    urpmi flex bison zlib-devel tiff-devel png-devel tcl-devel tk-devel sqlite3-devel \&lt;br /&gt;
          mesagl1-devel mesaglu1-devel lib64xmu6-devel gcc-c++ gettext \&lt;br /&gt;
          lib64wxgtk2.8 lib64wxgtk2.8-devel lib64wxgtkgl2.8 wxgtk2.8 \&lt;br /&gt;
          lib64wxPythonGTK2.8 lib64wxPythonGTK2.8-devel wxPythonGTK wxPythonGTK-wxversion&lt;br /&gt;
    exit&lt;br /&gt;
&lt;br /&gt;
'''Mandriva 2010:''' (take out the '64' everywhere if you are on 32bit) - see also [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/current/SPECS/ SPEC] file&lt;br /&gt;
  # as root&lt;br /&gt;
    # installation of PROJ and GDAL&lt;br /&gt;
    urpmi proj proj-devel gdal gdal-devel gcc-gfortran lib64openssl1.0.0 \&lt;br /&gt;
          lib64openssl1.0.0-devel postgresql8.4-devel lib64pq8.4&lt;br /&gt;
 &lt;br /&gt;
    # installation of compilation environment&lt;br /&gt;
    urpmi flex bison zlib-devel tiff-devel png-devel tcl-devel tk-devel sqlite3-devel \&lt;br /&gt;
          lib64mesagl1-devel lib64mesaglu1-devel lib64xmu6-devel gcc-c++ gettext \&lt;br /&gt;
          lib64wxgtk2.8 lib64wxgtk2.8-devel lib64wxgtkgl2.8 wxgtk2.8 \&lt;br /&gt;
          lib64wxPythonGTK2.8 lib64wxPythonGTK2.8-devel wxPythonGTK wxPythonGTK-wxversion&lt;br /&gt;
    exit&lt;br /&gt;
&lt;br /&gt;
Then, to configure GRASS, run (64 bit stuff optional of course):&lt;br /&gt;
  #  as user&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --enable-64bit --with-libs=/usr/lib64 \&lt;br /&gt;
    --with-cxx \&lt;br /&gt;
    --with-gdal=/usr/local/bin/gdal-config \&lt;br /&gt;
    --with-sqlite \&lt;br /&gt;
    --with-nls \&lt;br /&gt;
    --with-python \&lt;br /&gt;
    --with-wxwidgets=/usr/lib/wxPython/bin/wx-config \&lt;br /&gt;
    --with-fftw \&lt;br /&gt;
    --with-ffmpeg --with-ffmpeg-includes=&amp;quot;/usr/include/libav* /usr/include/libpostproc /usr/include/libswscale&amp;quot; \&lt;br /&gt;
    --with-motif \&lt;br /&gt;
    --with-mysql --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib64 \&lt;br /&gt;
    --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
    --enable-largefile&lt;br /&gt;
&lt;br /&gt;
   # compilation (use -j2 ior -j4 parameter on multi-core CPUs to accelerate):   &lt;br /&gt;
    make&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
    su&lt;br /&gt;
    # this will install into /usr/local/&lt;br /&gt;
    make install&lt;br /&gt;
    exit&lt;br /&gt;
&lt;br /&gt;
===== Enterprise Linux =====&lt;br /&gt;
&lt;br /&gt;
Enterprise Linux (EL) and derivatives (that is, Red Hat Enterprise Linux, CentOS and Scientific Linux) is a popular and robust platform for servers and computing-heavy workstations, and is therefore a good fit for GIS specific requirements.&lt;br /&gt;
&lt;br /&gt;
See: http://wiki.osgeo.org/wiki/Enterprise_Linux_GIS&lt;br /&gt;
&lt;br /&gt;
===== Scientific Linux =====&lt;br /&gt;
&lt;br /&gt;
See Centos&lt;br /&gt;
&lt;br /&gt;
===== CentOS =====&lt;br /&gt;
&lt;br /&gt;
You first need to add the EPEL repository for PROJ.4 and GDAL, see [https://fedoraproject.org/wiki/EPEL/FAQ#How_can_I_install_the_packages_from_the_EPEL_software_repository.3F here]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&lt;br /&gt;
Preparation '''Centos 5''' (old):&lt;br /&gt;
  yum install epel-release&lt;br /&gt;
 &lt;br /&gt;
  # Note: CentOS 5 comes with Python 2.4 which lacks python-config, hence two extra tweaks are needed.&lt;br /&gt;
  yum install flex bison zlib-devel tcl-devel tk-devel gcc-c++ gettext \&lt;br /&gt;
              libtiff-devel libpng-devel sqlite-devel \&lt;br /&gt;
              mesa-libGL-devel mesa-libGLU-devel mesa-libGLw-devel \&lt;br /&gt;
              mesa-libOSMesa-devel libXmu-devel python-devel gtk2-devel\&lt;br /&gt;
              ncurses-devel postgresql-devel make&lt;br /&gt;
&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Preparation '''Centos 6''' | '''Scientific Linux 6''':&lt;br /&gt;
  yum install epel-release&lt;br /&gt;
 &lt;br /&gt;
  yum install flex bison make zlib-devel gcc-c++ gettext \&lt;br /&gt;
              sqlite-devel mesa-libGL-devel mesa-libGLU-devel \&lt;br /&gt;
              libXmu-devel libX11-devel fftw-devel libtiff-devel \&lt;br /&gt;
              lesstif-devel python-devel numpy wxPython wxGTK-devel \&lt;br /&gt;
              proj proj-devel proj-epsg proj-nad libxml2 gdal gdal-devel geos geos-devel \&lt;br /&gt;
              python-dateutil python-imaging python-matplotlib python-argparse&lt;br /&gt;
  # only GRASS GIS 6: install also tcl-devel tk-devel&lt;br /&gt;
&lt;br /&gt;
Preparation '''Centos 7''' | '''Scientific Linux 7''':&lt;br /&gt;
  yum install epel-release&lt;br /&gt;
 &lt;br /&gt;
  yum install flex bison make zlib-devel gcc-c++ gettext \&lt;br /&gt;
              sqlite-devel mesa-libGL-devel mesa-libGLU-devel \&lt;br /&gt;
              libXmu-devel libX11-devel fftw-devel libtiff-devel \&lt;br /&gt;
              lesstif-devel python-devel numpy wxPython wxGTK-devel \&lt;br /&gt;
              proj proj-devel proj-epsg proj-nad libxml2 gdal gdal-devel geos geos-devel \&lt;br /&gt;
              netcdf netcdf-devel blas-devel lapack-devel atlas-devel \&lt;br /&gt;
              python-dateutil python-imaging python-matplotlib python-sphinx \&lt;br /&gt;
              doxygen subversion&lt;br /&gt;
&lt;br /&gt;
Preparation '''Centos 8''' | '''Scientific Linux 8''':&lt;br /&gt;
  dnf install epel-release&lt;br /&gt;
&lt;br /&gt;
Note, GDAL isn't yet in EPEL8, see https://bugzilla.redhat.com/show_bug.cgi?id=1741567&lt;br /&gt;
  dnf install flex bison make zlib-devel gcc-c++ gettext \&lt;br /&gt;
              sqlite-devel mesa-libGL-devel mesa-libGLU-devel \&lt;br /&gt;
              libXmu-devel libX11-devel fftw-devel libtiff-devel \&lt;br /&gt;
              python3-devel python3-numpy wxGTK3-devel \&lt;br /&gt;
              proj proj-devel proj-datumgrid libxml2 \&lt;br /&gt;
              geos geos-devel \&lt;br /&gt;
              netcdf netcdf-devel atlas-devel \&lt;br /&gt;
              python3-dateutil python3-imaging python3-matplotlib \&lt;br /&gt;
              subversion --skip-broken&lt;br /&gt;
&lt;br /&gt;
GDAL is available on Fedora COPR here: https://copr.fedorainfracloud.org/coprs/neteler/GDAL/builds/&lt;br /&gt;
  dnf copr enable neteler/GDAL&lt;br /&gt;
  dnf update&lt;br /&gt;
  dnf install gdal gdal-libs gdal-python-tools python3-gdal gdal-devel&lt;br /&gt;
&lt;br /&gt;
'''GRASS GIS 7 compilation and installation'''&lt;br /&gt;
&lt;br /&gt;
[https://grass.osgeo.org/grass-stable/source/snapshot/ Download source code] (e.g., --&amp;gt; &amp;quot;Download latest 7.8 code)&amp;quot; and configure GRASS 7 (suggestion: save this as script):&lt;br /&gt;
&lt;br /&gt;
 ./configure \&lt;br /&gt;
  --with-cxx \&lt;br /&gt;
  --enable-largefile \&lt;br /&gt;
  --with-proj --with-proj-share=/usr/share/proj \&lt;br /&gt;
  --with-gdal=/usr/bin/gdal-config \&lt;br /&gt;
  --with-sqlite \&lt;br /&gt;
  --with-python \&lt;br /&gt;
  --with-cairo --with-cairo-ldflags=-lfontconfig \&lt;br /&gt;
  --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
  --with-wxwidgets=/usr/bin/wx-config \&lt;br /&gt;
  --with-openmp \&lt;br /&gt;
  --with-blas --with-blas-includes=/usr/include/atlas-x86_64-base/ \&lt;br /&gt;
  --with-lapack --with-lapack-includes=/usr/include/atlas-x86_64-base/ \&lt;br /&gt;
  --with-fftw \&lt;br /&gt;
  --with-geos \&lt;br /&gt;
  --with-netcdf \&lt;br /&gt;
  --without-ffmpeg \&lt;br /&gt;
  --without-mysql \&lt;br /&gt;
  --without-postgres \&lt;br /&gt;
  --without-odbc \&lt;br /&gt;
  --without-fftw&lt;br /&gt;
&lt;br /&gt;
Compile:&lt;br /&gt;
    make&lt;br /&gt;
or on a multicore system (number depends of available cores):&lt;br /&gt;
    make -j4&lt;br /&gt;
&lt;br /&gt;
For a system wide installation, run as root user:&lt;br /&gt;
    make install&lt;br /&gt;
OR simply run it directly from the source code directory (substitute ARCH with i686 or x86_64):&lt;br /&gt;
&lt;br /&gt;
    bin.$ARCH/grass78 -gui&lt;br /&gt;
&lt;br /&gt;
In this case, for convenience, add it to the search path:&lt;br /&gt;
    mkdir $HOME/bin&lt;br /&gt;
    cd $HOME/bin&lt;br /&gt;
    # example:&lt;br /&gt;
    ln -s $HOME/software/grass78_release/bin.i686-pc-linux-gnu/grass78 .&lt;br /&gt;
&lt;br /&gt;
Now use it subsequently with&lt;br /&gt;
    grass78 -gui&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Installation grass78 on a HPC system with '''Centos 7''' and no root privileges:'''&lt;br /&gt;
This assumes that python3, fftw, proj, gdal and geos are available on the HPC system, either as modules or as installed software.&lt;br /&gt;
&lt;br /&gt;
Download and prepare some dependencies (freetypes and zstd)&lt;br /&gt;
    mkdir -p $HOME/grass/freetypes&lt;br /&gt;
    cd $HOME/grass/freetypes&lt;br /&gt;
    wget path/to/freetype-2.9.1.tar.gz&lt;br /&gt;
    tar -xf freetype-2.9.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
    mkdir $HOME/grass/zstd&lt;br /&gt;
    cd mkdir $HOME/grass/zstd&lt;br /&gt;
    wget path/to/v1.4.4/zstd-1.4.4.tar.gz&lt;br /&gt;
    tar -xf zstd-1.4.4.tar.gz&lt;br /&gt;
    make install PREFIX=./&lt;br /&gt;
&lt;br /&gt;
Add the ZSTD path to your LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
    tee -a $HOME/.bashrc &amp;gt; /dev/null &amp;lt;&amp;lt; EOT&lt;br /&gt;
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/grass/zstd/zstd-1.4.4/lib&lt;br /&gt;
    EOT&lt;br /&gt;
&lt;br /&gt;
The configure command could look like this&lt;br /&gt;
    ./configure \&lt;br /&gt;
        -prefix=$HOME/grass \&lt;br /&gt;
        --enable-64bit --with-fftw-includes=/path/to/fftw/include/ \&lt;br /&gt;
        --with-fftw-libs=/path/to/fftw/lib/ \&lt;br /&gt;
        --with-freetype-includes=$HOME/grass/freetypes/freetype-2.9.1/include/ \&lt;br /&gt;
        --with-netcdf --with-geos --with-blas --with-lapack --with-postgres \&lt;br /&gt;
        --with-zstd-includes=$HOME/grass/zstd/zstd-1.4.4/lib/ \&lt;br /&gt;
        --with-zstd-libs=$HOME/grass/zstd/zstd-1.4.4/lib/ \&lt;br /&gt;
        --with-gdal=/path/to/gdal-config  # This could be the path to a gdal version compiled from source&lt;br /&gt;
&lt;br /&gt;
Finally usual:&lt;br /&gt;
    make; make install&lt;br /&gt;
&lt;br /&gt;
===== Gentoo =====&lt;br /&gt;
&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-freetype=yes --with-freetype-includes=&amp;quot;/usr/include/freetype2/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also http://packages.gentoo.org/package/sci-geosciences/grass&lt;br /&gt;
&lt;br /&gt;
===== Funtoo =====&lt;br /&gt;
&lt;br /&gt;
{{MovedToTrac|FuntooLinux}}&lt;br /&gt;
&lt;br /&gt;
===== Fedora =====&lt;br /&gt;
&lt;br /&gt;
====== GRASS GIS 6 on Fedora ======&lt;br /&gt;
&lt;br /&gt;
'''Preparation''' for the compilation of GRASS GIS 6 source code (F16-F21):&lt;br /&gt;
&lt;br /&gt;
  yum install proj-devel gdal-devel sqlite-devel ffmpeg-devel mesa-libGL-devel \&lt;br /&gt;
              mesa-libGLU-devel libXmu-devel libX11-devel tcl-devel tk-devel geos \&lt;br /&gt;
              fftw-devel libtiff-devel lesstif-devel python-devel numpy wxPython wxGTK-devel \&lt;br /&gt;
              gcc gcc-c++ bison flex ncurses-devel proj-epsg proj-nad xml2 subversion&lt;br /&gt;
&lt;br /&gt;
''Note 1: that currently gdal-devel has (too) many dependencies and may lead to a massive download of extra packages (200 on a fresh Fedora 16 install). Hopefully solved in later Fedora versions.''&lt;br /&gt;
&lt;br /&gt;
''Note 2: the optional ffmpeg-devel comes from the rpmfusion-free repository ([http://rpmfusion.org/Configuration/ configuration]).''&lt;br /&gt;
&lt;br /&gt;
'''Download''' the source code:&lt;br /&gt;
* GRASS GIS 6: [http://grass.osgeo.org/download/software/sources/ release package] - [http://grass.osgeo.org/grass64/source/snapshot/ weekly snapshot] - [http://trac.osgeo.org/grass/wiki/DownloadSource#GRASS6.4 SVN repository]&lt;br /&gt;
&lt;br /&gt;
'''Configure''': This is an ''example'' how to configure the source code on a Fedora system:&lt;br /&gt;
&lt;br /&gt;
  ./configure \&lt;br /&gt;
   --with-cxx \&lt;br /&gt;
   --with-gdal=/usr/bin/gdal-config \&lt;br /&gt;
   --with-proj --with-proj-share=/usr/share/proj \&lt;br /&gt;
   --with-sqlite \&lt;br /&gt;
   --with-nls \&lt;br /&gt;
   --with-geos \&lt;br /&gt;
   --with-wxwidgets=/usr/bin/wx-config \&lt;br /&gt;
   --with-python=/usr/bin/python-config \&lt;br /&gt;
   --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
   --enable-largefile \&lt;br /&gt;
   --without-odbc \&lt;br /&gt;
   --with-fftw&lt;br /&gt;
&lt;br /&gt;
Extra: If you also want '''FFMPEG''' support - it requires 'yum install fftw-devel'. Then add to the configuration lines above:&lt;br /&gt;
&lt;br /&gt;
     --with-ffmpeg --with-ffmpeg-includes=&amp;quot;/usr/include/ffmpeg /usr/include/ffmpeg/libav* /usr/include/ffmpeg/libpostproc /usr/include/ffmpeg/libswscale&amp;quot; \&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finally '''compile''' the configured source code:&lt;br /&gt;
    make&lt;br /&gt;
   or on multicore (number depends of available cores):&lt;br /&gt;
    make -j4&lt;br /&gt;
   and&lt;br /&gt;
    make install # requires root permissions unless you become owner of /usr/local/&lt;br /&gt;
&lt;br /&gt;
Then use GRASS GIS 6 and enjoy!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====== GRASS GIS 7 on Fedora ======&lt;br /&gt;
&lt;br /&gt;
'''Preparation''' for the compilation of GRASS GIS 7.8+ source code (F20-F30):&lt;br /&gt;
&lt;br /&gt;
  dnf install gcc gcc-c++ bison flex ncurses-devel gettext proj-epsg proj-devel proj-nad \&lt;br /&gt;
              gdal gdal-devel sqlite-devel xml2 mesa-libGL-devel \&lt;br /&gt;
              fftw-devel mesa-libGLU-devel libXmu-devel libX11-devel geos geos-devel \&lt;br /&gt;
              libtiff-devel python3-devel numpy wxPython wxGTK3-devel subversion \&lt;br /&gt;
              python3-dateutil python3-imaging python3-matplotlib-wx doxygen python3-sphinx \&lt;br /&gt;
              libzstd-devel libzstd python3-six python3-numpy python3-wxpython4 \&lt;br /&gt;
              proj-datumgrid proj-datumgrid-europe proj-datumgrid-north-america proj-datumgrid-world proj-datumgrid-oceania&lt;br /&gt;
&lt;br /&gt;
  # optionally also:  netcdf-devel postgresql-devel &lt;br /&gt;
  #                   atlas-devel lapack-devel lapack-devel &lt;br /&gt;
  #                   laszip laszip-devel&lt;br /&gt;
&lt;br /&gt;
''Note 1: the optional ffmpeg-devel comes from the rpmfusion-free repository ([http://rpmfusion.org/Configuration/ configuration]).''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Download''' the source code:&lt;br /&gt;
* GRASS GIS 7: [https://grass.osgeo.org/grass78/source/snapshot/ weekly snapshot] - [http://trac.osgeo.org/grass/wiki/DownloadSource#GRASS7 GitHub repository]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Configure''': This is an example how to configure the source code on a Fedora system:&lt;br /&gt;
&lt;br /&gt;
  ./configure \&lt;br /&gt;
   --with-cxx \&lt;br /&gt;
   --with-gdal=/usr/bin/gdal-config \&lt;br /&gt;
   --with-proj --with-proj-share=/usr/share/proj \&lt;br /&gt;
   --with-geos \&lt;br /&gt;
   --with-sqlite \&lt;br /&gt;
   --with-nls \&lt;br /&gt;
   --with-wxwidgets=/usr/bin/wx-config \&lt;br /&gt;
   --with-fftw \&lt;br /&gt;
   --with-cairo --with-cairo-ldflags=-lfontconfig \&lt;br /&gt;
   --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
   --enable-largefile \&lt;br /&gt;
   --without-odbc&lt;br /&gt;
&lt;br /&gt;
''Extra 1:'' If you also want '''FFMPEG support''' - it requires 'dnf install fftw-devel' from the rpmfusion-free repository. Then add to the configuration lines above:&lt;br /&gt;
&lt;br /&gt;
     --with-ffmpeg --with-ffmpeg-includes=&amp;quot;/usr/include/ffmpeg /usr/include/ffmpeg/libav* /usr/include/ffmpeg/libpostproc /usr/include/ffmpeg/libswscale&amp;quot; \&lt;br /&gt;
&lt;br /&gt;
''Extra 2:'' For '''LAPACK/BLAS support''' (addons i.spec.unmix, v.kriging etc), install &amp;quot;dnf install lapack lapack-devel blas blas-devel atlas atlas-devel&amp;quot;. Then add to the configuration lines above:&lt;br /&gt;
  --with-blas --with-blas-includes=/usr/include/atlas-x86_64-base/ \&lt;br /&gt;
  --with-lapack --with-lapack-includes=/usr/include/atlas-x86_64-base/ \&lt;br /&gt;
&lt;br /&gt;
''Extra 3:'' For '''ZSTD support''' (Zstandard compression algorithm), first install &amp;quot;dnf install libzstd libzstd-devel zstd&amp;quot;. After installing the zstd related packages, add to the configuration lines above:&lt;br /&gt;
  --with-zstd \&lt;br /&gt;
&lt;br /&gt;
Finally '''compile''' the configured source code:&lt;br /&gt;
    make&lt;br /&gt;
   or on multicore (number depends of available cores):&lt;br /&gt;
    make -j4&lt;br /&gt;
   and&lt;br /&gt;
    make install # requires root permissions unless you become owner of /usr/local/&lt;br /&gt;
&lt;br /&gt;
Then use GRASS GIS 7 and enjoy!&lt;br /&gt;
&lt;br /&gt;
===== openSUSE =====&lt;br /&gt;
&lt;br /&gt;
To build GRASS on openSUSE:&lt;br /&gt;
&lt;br /&gt;
''Application:Geo'' repo to be added (see [https://software.opensuse.org//download.html?project=Application%3AGeo&amp;amp;package=gdal Install package Application:Geo]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# example for Leap 42 version:&lt;br /&gt;
sudo zypper addrepo http://download.opensuse.org/repositories/Application:Geo/openSUSE_Leap_42.3/Application:Geo.repo&lt;br /&gt;
sudo zypper refresh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
RPM packages to be installed:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 sudo zypper install bison flex freetype2-devel fftw3-devel gcc-c++ \&lt;br /&gt;
   libgdal-devel libgeos-devel libjpeg-devel libpng-devel libtiff-devel \&lt;br /&gt;
   man proj libproj-devel readline-devel netcdf-devel ncurses-devel \&lt;br /&gt;
   mysql-devel postgresql-devel sqlite-devel unixODBC-devel \&lt;br /&gt;
   tcl-devel tk-devel xorg-x11-Mesa-devel libXmu-devel \&lt;br /&gt;
   python-numpy python-dateutil python-devel python-opengl \&lt;br /&gt;
   python-wxWidgets python-xml python-dateutil wxWidgets-devel \&lt;br /&gt;
   zlib-devel doxygen python-sphinx&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Source code configuration:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 ./configure \&lt;br /&gt;
 	--enable-largefile \&lt;br /&gt;
	--with-proj-share=/usr/share/proj \&lt;br /&gt;
	--with-cxx \&lt;br /&gt;
	--with-lapack=yes \&lt;br /&gt;
	--with-x \&lt;br /&gt;
	--with-motif \&lt;br /&gt;
	--with-gdal=/usr/bin/gdal-config \&lt;br /&gt;
	--with-postgres --with-postgres-includes=/usr/include/pgsql \&lt;br /&gt;
	--with-mysql --with-mysql-includes=/usr/include/mysql \&lt;br /&gt;
	--with-fftw \&lt;br /&gt;
	--with-readline \&lt;br /&gt;
	--with-netcdf \&lt;br /&gt;
	--with-curses \&lt;br /&gt;
	--with-geos \&lt;br /&gt;
	--with-nls \&lt;br /&gt;
	--with-sqlite \&lt;br /&gt;
	--with-freetype \&lt;br /&gt;
	--with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
	--with-wxwidgets \&lt;br /&gt;
	--with-odbc \&lt;br /&gt;
	--with-python&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then compile with &amp;quot;make [-j2]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===== Arch Linux =====&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;big&amp;gt;'''Easiest method : use AUR (Arch User Repository) package'''&amp;lt;/big&amp;gt;&lt;br /&gt;
Up-to-date links to Arch Linux GRASS PKGBUILDs are on https://grass.osgeo.org/download/software/linux/.&lt;br /&gt;
&lt;br /&gt;
Please note that at this time AUR package has a problem : a symlink of python2 is created to work with grass whereas executable script call python3 ... Workaround is to comment symlink in AUR GRASS PKGBUILD&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;big&amp;gt;'''Compile from source code'''&amp;lt;/big&amp;gt;&lt;br /&gt;
If you want to compile it yourself, you could follow steps below : &lt;br /&gt;
&lt;br /&gt;
Install dependencies : &lt;br /&gt;
 pacman -S bzip2 cairo fftw fontconfig freetype2 gcc-libs gdal geos glibc glu libpng libtiff libx11 libgl netcdf pdal proj python-gdal python-numpy python-pillow python-wxpython readline zlib zstd&lt;br /&gt;
&lt;br /&gt;
Download and extract sources : https://grass.osgeo.org/download/software/sources/&lt;br /&gt;
&lt;br /&gt;
We can now start building GRASS 7&lt;br /&gt;
&lt;br /&gt;
 export PATH=~/usr/bin:$PATH &amp;amp;&amp;amp; \&lt;br /&gt;
 ./configure \&lt;br /&gt;
 --enable-debug \&lt;br /&gt;
 --with-readline \&lt;br /&gt;
 --with-freetype=yes \&lt;br /&gt;
 --with-freetype-includes=&amp;quot;/usr/include/freetype2/&amp;quot; \&lt;br /&gt;
 --with-geos \&lt;br /&gt;
 --with-odbc \&lt;br /&gt;
 --with-pthread \&lt;br /&gt;
 --with-fftw-includes=&amp;quot;/usr/include/&amp;quot; \&lt;br /&gt;
 --with-fftw-libs=/usr/lib/ \&lt;br /&gt;
 --with-wxwidgets \&lt;br /&gt;
 --with-postgres \&lt;br /&gt;
 --with-pdal \&lt;br /&gt;
 --with-netcdf \&lt;br /&gt;
 --with-bzlib \&lt;br /&gt;
 --with-zstd&lt;br /&gt;
&lt;br /&gt;
Now let's compile and install it&lt;br /&gt;
&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It's done, you can enjoy GRASS 7 in Arch, just type &amp;quot;grass78&amp;quot; (Please adjust version after grass) in the terminal to launch it.&lt;br /&gt;
&lt;br /&gt;
===== RPM SPEC files =====&lt;br /&gt;
* [https://build.opensuse.org/package/show?package=grass&amp;amp;project=Application%3AGeo OpenSuSe]&lt;br /&gt;
* [http://pkgs.fedoraproject.org/cgit/rpms/grass.git/tree/grass.spec Fedora]&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
===== Zaurus =====&lt;br /&gt;
&lt;br /&gt;
... see [http://wiki.debian.org/?GrassGISonZaurus here] for instructions&lt;br /&gt;
&lt;br /&gt;
==== Mac OSX ====&lt;br /&gt;
&lt;br /&gt;
===== Compilation and installation =====&lt;br /&gt;
* [[Compiling on MacOSX using homebrew]]&lt;br /&gt;
* [[Compiling on MacOSX using Anaconda]]&lt;br /&gt;
* [[Compiling on MacOSX]] (rather outdated)&lt;br /&gt;
* [[Compiling on MacOSX using Fink]] (rather outdated)&lt;br /&gt;
* [https://grass.osgeo.org/download/software/mac-osx/ official download site]&lt;br /&gt;
* [http://www.kyngchaos.com/software/frameworks#build_scripts build scripts for dependencies] (still relevant?)&lt;br /&gt;
&lt;br /&gt;
Troubleshooting:&lt;br /&gt;
* solving errors at starting GRASS GIS: [[MacOSX GRASS errors]]&lt;br /&gt;
&lt;br /&gt;
==== FreeBSD / NetBSD ====&lt;br /&gt;
&lt;br /&gt;
The recommended compiler tools are GCC, GNU make, GNU coreutils (for install), and flex. All are available through the respective package managing tools (pkg_add for FreeBSD and pkgin install for NetBSD) and for recent *BSD versions most likely installed by default.&lt;br /&gt;
&lt;br /&gt;
GRASS 6.x and GRASS 7 should compile on FreeBSD 8.0 or later and NetBSD 5.0 or later (maybe also on updated NetBSD 4.x).&lt;br /&gt;
&lt;br /&gt;
It is highly recommended to install GDAL/OGR and PROJ4 first. These libraries and tools are available as [http://www.freebsd.org/ports/ ports for FreeBSD] and [http://www.pkgsrc.org/ packages for NetBSD].&lt;br /&gt;
&lt;br /&gt;
Optional functionality is listed with ''./configure --help'', and related libraries and tools might need to be installed first.&lt;br /&gt;
&lt;br /&gt;
You then may need to edit include/Make/Platform.make and set&lt;br /&gt;
 ICONVLIB            = -liconv&lt;br /&gt;
&lt;br /&gt;
==== Solaris ====&lt;br /&gt;
&lt;br /&gt;
* ''2008 Oct 15'': see [http://lists.osgeo.org/pipermail/grass-user/2008-October/047093.html this post on the grass mailing list]&lt;br /&gt;
&lt;br /&gt;
===== 11 SPARC/i86pc =====&lt;br /&gt;
&lt;br /&gt;
The recommended compiler tools are GCC, GNU make, GNU coreutils (for install), and flex. All are available through the Solaris package manager.&lt;br /&gt;
&lt;br /&gt;
Most dependencies are available through the Solaris package manager. GDAL and proj4 can either be compiled from source or installed e.g. from [http://www.opencsw.org/ OpenCSW]. If packages are installed from OpenCSW, the linker flags need to be set with&lt;br /&gt;
&lt;br /&gt;
      LDFLAGS=&amp;quot;-Wl,-R/opt/csw/lib -L/opt/csw/lib -Wl,-R/opt/csw/gxx/lib -L/opt/csw/gxx/lib&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See also the [http://www.opencsw.org/use-it/ OpenCSW documentation].&lt;br /&gt;
&lt;br /&gt;
===== 10 SPARC/i86pc =====&lt;br /&gt;
&lt;br /&gt;
* get gcc compiler and tools. There are several sources: Solaris Companion CD (SFW pkg, installs in /opt/sfw/), Blastwave ([http://www.blastwave.org], CSW pkg, installs in /opt/csw/) or Sunfreeware ([http://www.sunfreeware.com], SMC pkg, installs in /usr/local/). &lt;br /&gt;
Needed Packages from Sunfreeware: SMCbinut, SMCbison, SMCcoreu, SMCfindu, SMCflex, SMCgawk, SMCgcc, SMCgrep, SMCgzip, SMCless, SMClibt, SMClicon, SMCmake, SMCncurs, SMCproj, SMCsed, SMCtar, SMCtcl, SMCtiff, SMCtk, SMCunzip, SMCzlib. &lt;br /&gt;
&lt;br /&gt;
* compile and install fftw-library ([http://www.fftw.org]). You need to re-compile the library with: &lt;br /&gt;
&lt;br /&gt;
      ./configure --with-pic --enable-shared; make ; make install. &lt;br /&gt;
&lt;br /&gt;
The pre-built packages don't work. &lt;br /&gt;
&lt;br /&gt;
* compile and install gdal library (see documentation of gdal, [http://www.gdal.org]).&lt;br /&gt;
&lt;br /&gt;
* compile and install any additional libraries (e. g. GEOS, [http://geos.refractions.net]). &lt;br /&gt;
&lt;br /&gt;
* set compiler flags and path. e. g.: &lt;br /&gt;
&lt;br /&gt;
      # on ultra-sparc machine:&lt;br /&gt;
      CFLAGS=&amp;quot;-O3 -mcpu=v9&amp;quot;&lt;br /&gt;
      CXXFLAGS=&amp;quot;-O3 -mcpu=v9&amp;quot;&lt;br /&gt;
      PATH=&amp;quot;/usr/local/bin:/opt/sfw/bin:/usr/ccs/bin:/usr/bin:/usr/sbin&amp;quot;&lt;br /&gt;
      export CFLAGS CXXFLAGS PATH&lt;br /&gt;
&lt;br /&gt;
Path has to be changed for the packages (Sunfreeware: /usr/local/bin, Solaris Companion: /opt/sfw/bin, Blastwave: /opt/csw/bin). &lt;br /&gt;
&lt;br /&gt;
* Next configure, e. g.: &lt;br /&gt;
&lt;br /&gt;
      ./configure --with-postgres-includes=/usr/include/pgsql/ \&lt;br /&gt;
      --with-postgres-libs=/usr/lib --with-postgres=yes \&lt;br /&gt;
      --with-includes=/usr/local/include/ncurses&lt;br /&gt;
&lt;br /&gt;
If you use n(ew)curses, you have to include the path /usr/local/include/ncurses. &lt;br /&gt;
&lt;br /&gt;
then:&lt;br /&gt;
&lt;br /&gt;
      make&lt;br /&gt;
      su&lt;br /&gt;
      make install&lt;br /&gt;
&lt;br /&gt;
If the shared libraries are not found at runtime of the modules, use 'crle' to add the paths of the libraries for the dynamic linker, e. g. as root:&lt;br /&gt;
&lt;br /&gt;
      crle -l /lib:/usr/lib:/usr/local/lib:/opt/sfw/lib:/usr/X11/lib&lt;br /&gt;
&lt;br /&gt;
Be careful not to omit a library path, the system may be unusable if you forget the /lib path.&lt;br /&gt;
&lt;br /&gt;
==== AIX ====&lt;br /&gt;
&lt;br /&gt;
A recent [ftp://ftp.gnu.org/gnu/make/ GNU make] (&amp;gt;= 3.81) and GNU coreutils are required. These are available with the [http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/download.html IBM AIX toolbox] or through third-party AIX software repositories, e.g. [http://www.bullfreeware.com/ bullfreeware] and [http://www.perzl.org/aix/ perzl.org]. Note that 'make' does not work, only 'gmake' works. &lt;br /&gt;
&lt;br /&gt;
General instructions to compile on AIX are e.g. [http://www.perzl.org/aix/index.php?n=Main.Instructions here]&lt;br /&gt;
&lt;br /&gt;
On AIX, compilation results by default in 32 bit applications and static libraries. The [http://www.ibm.com/developerworks/aix/library/au-gnu.html IBM documentation] explains how to build 64 bit applications and shared libraries with GCC.&lt;br /&gt;
&lt;br /&gt;
'''GRASS 6: Using the IBM xlc compiler:'''&lt;br /&gt;
* ''see [http://thread.gmane.org/gmane.comp.gis.grass.user/32667 this mailing list thread]''&lt;br /&gt;
&lt;br /&gt;
Mike wrote in 2009:&lt;br /&gt;
&lt;br /&gt;
After attempting all the suggestions, I finally used&lt;br /&gt;
--disable-shared on the configure command, and all but&lt;br /&gt;
a handful of modules successfully compiled. I was able to&lt;br /&gt;
individually address the ones that failed through Makefile&lt;br /&gt;
edits and several small source code/header file edits.&lt;br /&gt;
&lt;br /&gt;
The environment variables and configure command that worked were:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# xlc compiler:&lt;br /&gt;
export PATH=/usr/local/bin:/opt/freeware/bin:$PATH&lt;br /&gt;
export OBJECT_MODE=64&lt;br /&gt;
export LIBICONV=/opt/freeware&lt;br /&gt;
export CC=&amp;quot;xlc_r -q64&amp;quot;&lt;br /&gt;
export CFLAGS=&amp;quot;-O -qstrict&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;xlC_r -q64&amp;quot;&lt;br /&gt;
export CXXFLAGS=&amp;quot;-O -qstrict&amp;quot;&lt;br /&gt;
export AR=&amp;quot;ar -X64&amp;quot;&lt;br /&gt;
export F77=&amp;quot;xlf_r -q64&amp;quot;&lt;br /&gt;
export CPPFLAGS=&amp;quot;-I/afs/isis/pkg/libpng/include -I/usr/local/include -I$LIBICONV/include -I/usr/lpp/X11/include/X11&amp;quot;&lt;br /&gt;
export LDFLAGS=&amp;quot;-L/usr/local/lib -L$LIBICONV/lib -L/usr/lib -L/usr/X11R6/lib -lc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
./configure --prefix=/afs/isis/pkg/grass-6.4.0 \&lt;br /&gt;
  --enable-64bit \&lt;br /&gt;
  --disable-shared \&lt;br /&gt;
  --with-includes=&amp;quot;/usr/include/fontconfig /usr/include/X11 /usr/include/X11/Xft /usr/include/X11/ext&amp;quot; \&lt;br /&gt;
  --x-includes=/usr/include/X11 \&lt;br /&gt;
  --x-libraries=/usr/X11R6/lib \&lt;br /&gt;
  --with-fftw-includes=/afs/isis/pkg/fftw-3.2.2/include \&lt;br /&gt;
  --with-fftw-libs=/afs/isis/pkg/fftw-3.2.2/lib \&lt;br /&gt;
  --with-gdal=/afs/isis/pkg/gdal/bin/gdal-config \&lt;br /&gt;
  --with-proj-includes=/afs/isis/pkg/proj/include \&lt;br /&gt;
  --with-proj-libs=/afs/isis/pkg/proj/lib \&lt;br /&gt;
  --with-proj-share=/afs/isis/pkg/proj/share/proj \&lt;br /&gt;
  --with-tcltk-includes=/usr/local/include \&lt;br /&gt;
  --with-tcltk-libs=/usr/local/lib \&lt;br /&gt;
  --with-opengl-includes=/usr/include/GL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''GRASS 7: Using the IBM xlc compiler:'''&lt;br /&gt;
&lt;br /&gt;
Get and install (in this order):&lt;br /&gt;
* [ftp://ftp.gnu.org/gnu/tar/ GNU tar]&lt;br /&gt;
* [ftp://ftp.gnu.org/gnu/make/ GNU make] (&amp;gt;= 3.81)&lt;br /&gt;
* [http://www.sqlite.org SQLite]&lt;br /&gt;
* [http://trac.osgeo.org/proj/ PROJ.4] (for ./configure parameters, see [[Talk:Compile and Install|here]])&lt;br /&gt;
* [http://www.gdal.org GDAL] (for ./configure parameters, see [[Talk:Compile and Install|here]])&lt;br /&gt;
* [http://grass.osgeo.org/grass74/source/snapshot/ GRASS GIS 7]&lt;br /&gt;
&lt;br /&gt;
The environment variables and configure command that worked:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## AIX 5.x&lt;br /&gt;
&lt;br /&gt;
export LIBPATH=/opt/freeware/lib64:/opt/freeware/lib&lt;br /&gt;
# make 'ar' happy&lt;br /&gt;
export OBJECT_MODE=64&lt;br /&gt;
&lt;br /&gt;
PREFIX=$HOME/private/bin&lt;br /&gt;
./configure \&lt;br /&gt;
  --prefix=$PREFIX \&lt;br /&gt;
  --disable-shared \&lt;br /&gt;
  --enable-largefile \&lt;br /&gt;
  --with-cxx \&lt;br /&gt;
  --with-proj-includes=$PREFIX/include/ \&lt;br /&gt;
  --with-proj-libs=$PREFIX/lib/ \&lt;br /&gt;
  --with-proj-share=$PREFIX/share/proj/ \&lt;br /&gt;
  --with-sqlite \&lt;br /&gt;
  --with-sqlite-includes=$PREFIX/include/ \&lt;br /&gt;
  --with-sqlite-libs=$PREFIX/lib/ \&lt;br /&gt;
  --with-tiff=no \&lt;br /&gt;
  --with-png=no \&lt;br /&gt;
  --with-fftw=no \&lt;br /&gt;
  --with-cairo=no \&lt;br /&gt;
  --with-freetype=no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''GRASS 7: Using the GNU gcc compiler:'''&lt;br /&gt;
&lt;br /&gt;
Get and install (in this order):&lt;br /&gt;
* if needed, [ftp://ftp.gnu.org/gnu/tar/ GNU tar]&lt;br /&gt;
* if needed (the name is often 'gmake' and not 'make') [ftp://ftp.gnu.org/gnu/make/ GNU make] (&amp;gt;= 3.81)&lt;br /&gt;
* [http://www.sqlite.org SQLite]&lt;br /&gt;
* [http://trac.osgeo.org/proj/ PROJ.4] (for ./configure parameters, see [[Talk:Compile and Install|here]])&lt;br /&gt;
* [http://www.gdal.org GDAL] (for ./configure parameters, see [[Talk:Compile and Install|here]])&lt;br /&gt;
* [http://grass.osgeo.org/grass74/source/snapshot/ GRASS GIS 7]&lt;br /&gt;
&lt;br /&gt;
The environment variables and configure command that worked for AIX 5.x:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## AIX 5.x&lt;br /&gt;
&lt;br /&gt;
export LIBPATH=/opt/freeware/lib64:/opt/freeware/lib&lt;br /&gt;
# make 'ar' happy&lt;br /&gt;
export OBJECT_MODE=64&lt;br /&gt;
&lt;br /&gt;
PREFIX=$HOME/private/bin&lt;br /&gt;
CFLAGS='-ansi -D_ALL_SOURCE=1 -D_POSIX_SOURCE=1 -D_POSIX_C_SOURCE=200809L -Dinline=' ./configure \&lt;br /&gt;
  --prefix=$PREFIX \&lt;br /&gt;
  --disable-shared \&lt;br /&gt;
  --enable-largefile \&lt;br /&gt;
  --with-cxx \&lt;br /&gt;
  --with-proj-includes=$PREFIX/include/ \&lt;br /&gt;
  --with-proj-libs=$PREFIX/lib/ \&lt;br /&gt;
  --with-proj-share=$PREFIX/share/proj/ \&lt;br /&gt;
  --with-sqlite \&lt;br /&gt;
  --with-sqlite-includes=$PREFIX/include/ \&lt;br /&gt;
  --with-sqlite-libs=$PREFIX/lib/ \&lt;br /&gt;
  --with-tiff=no \&lt;br /&gt;
  --with-png=no \&lt;br /&gt;
  --with-fftw=no \&lt;br /&gt;
  --with-cairo=no \&lt;br /&gt;
  --with-freetype=no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The environment variables and configure command that worked for AIX 7.x:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
## AIX 7.x&lt;br /&gt;
export CC=&amp;quot;gcc&amp;quot;&lt;br /&gt;
export CXX=&amp;quot;g++&amp;quot;&lt;br /&gt;
PREFIX=$HOME/bin&lt;br /&gt;
&lt;br /&gt;
LDFLAGS=&amp;quot;-Wl,-bsvr4,-R,/opt/freeware/lib -L/opt/freeware/lib&amp;quot; CPPFLAGS=&amp;quot;-I/opt/freeware/include&amp;quot; ./configure \&lt;br /&gt;
  --prefix=$PREFIX \&lt;br /&gt;
  --enable-largefile \&lt;br /&gt;
  --enable-shared \&lt;br /&gt;
  --with-includes=/opt/freeware/include --with-libs=/opt/freeware/lib \&lt;br /&gt;
  --with-cxx \&lt;br /&gt;
  --with-proj-includes=$PREFIX/include/ \&lt;br /&gt;
  --with-proj-libs=$PREFIX/lib/ \&lt;br /&gt;
  --with-proj-share=$PREFIX/share/proj/ \&lt;br /&gt;
  --with-gdal=$PREFIX/bin/gdal-config \&lt;br /&gt;
  --with-sqlite \&lt;br /&gt;
  --with-sqlite-libs=$PREFIX/lib --with-sqlite-includes=$PREFIX/include \&lt;br /&gt;
  --with-png=no \&lt;br /&gt;
  --with-tiff=no \&lt;br /&gt;
  --with-fftw=no \&lt;br /&gt;
  --with-cairo=no \&lt;br /&gt;
  --with-opengl=no \&lt;br /&gt;
  --with-freetype=no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== MS-Windows ====&lt;br /&gt;
&lt;br /&gt;
===== MS-Windows/Cygwin =====&lt;br /&gt;
&lt;br /&gt;
* See the [[Cygwin]] wiki pages&lt;br /&gt;
&lt;br /&gt;
===== MS-Windows/native =====&lt;br /&gt;
&lt;br /&gt;
====== Compile ======&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/wiki/CompileOnWindows GRASS Windows Native Binary Building Guide] (GRASS 6.4.x + 7.x)&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://www.webalice.it/marco.pasetti/grass/BuildFromSource.html GRASS Windows Native Binary Building Guide] (GRASS 6.3.x) &amp;lt;/strike&amp;gt;&lt;br /&gt;
* See/adapt [http://blog.qgis.org/node/124 idea] for unattended install of QGIS (et al) from [http://trac.osgeo.org/osgeo4w/ OSGeo4W] from the QuantumGIS Blog.&lt;br /&gt;
&lt;br /&gt;
See also [[WinGRASS Current Status]] for latest updates.&lt;br /&gt;
&lt;br /&gt;
=== Common problems and solutions ===&lt;br /&gt;
&lt;br /&gt;
During compilation, error can occur if certain packages are not installed. Here a list of problems with solution:&lt;br /&gt;
&lt;br /&gt;
* error: X11/Xlib.h: No such file or directory&lt;br /&gt;
** this suggests that you don't have the X headers installed&lt;br /&gt;
** Solution: Install the libx11-dev package&lt;br /&gt;
&lt;br /&gt;
* error:  g.list: error while loading shared libraries: libgdal1.6.0.so.1: cannot open shared object file: No such file or directory&lt;br /&gt;
** this error appears in the shell right after the user clicks GUI's &amp;quot;Start GRASS&amp;quot; button. The GUI shows an error about geographic extent and gets closed afterwards.&lt;br /&gt;
** It happens when you launch bin.i686 executable on 64bit system. Be careful and choose the right architecture.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Static compilation ===&lt;br /&gt;
&lt;br /&gt;
In order to get static rather than dynamically linked binaries, configure like this:&lt;br /&gt;
&lt;br /&gt;
  ./configure --disable-shared --enable-static&lt;br /&gt;
&lt;br /&gt;
This will however break the wxGUI and GRASS 7 completely because &amp;quot;ctypes&amp;quot; wants to link against shared libs, or there is something in the static libs that &amp;quot;ctypes&amp;quot; does not like.&lt;br /&gt;
&lt;br /&gt;
=== Optimization ===&lt;br /&gt;
&lt;br /&gt;
GCC and other compilers support [http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Optimize-Options.html#Optimize-Options optimization]&lt;br /&gt;
&lt;br /&gt;
If you would like to set compiler optimisations, for a possibly faster binary, type (don't enter a &amp;quot;;&amp;quot; anywhere):&lt;br /&gt;
&lt;br /&gt;
        CFLAGS=-O ./configure&lt;br /&gt;
or,&lt;br /&gt;
        setenv CFLAGS -O&lt;br /&gt;
        ./configure&lt;br /&gt;
&lt;br /&gt;
whichever works on your shell. Use -O2 instead of -O if your compiler supports this (note: O is the letter, not zero). Using the &amp;quot;gcc&amp;quot; compiler, you can also specify processor specific flags (examples, please suggest better settings to us):&lt;br /&gt;
&lt;br /&gt;
  CFLAGS=&amp;quot;-mcpu=athlon -O2&amp;quot; # AMD Athlon processor with code optimisations&lt;br /&gt;
  CFLAGS=&amp;quot;-march=amdfam10&amp;quot;  # AMD Phenom II X4 64bit processor with gcc &amp;gt;=4.3&lt;br /&gt;
  CFLAGS=&amp;quot;-mcpu=pentium&amp;quot;    # Intel Pentium processor&lt;br /&gt;
  CFLAGS=&amp;quot;-mcpu=pentium4&amp;quot;   # Intel Pentium4 processor&lt;br /&gt;
  CFLAGS=&amp;quot;-O2 -msse -msse2 -mfpmath=sse -minline-all-stringops&amp;quot; # Intel XEON 64bit processor&lt;br /&gt;
  CFLAGS=&amp;quot;-mtune=nocona -m64 -minline-all-stringops&amp;quot;            # Intel Pentium 64bit processor&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To find out optional CFLAGS for your platform, enter:&lt;br /&gt;
  gcc -dumpspecs&lt;br /&gt;
&lt;br /&gt;
See also: http://gcc.gnu.org/&lt;br /&gt;
&lt;br /&gt;
A real fast GRASS version (and small binaries) will be created with LDFLAGS set to &amp;quot;stripping&amp;quot; (but this disables debugging):&lt;br /&gt;
&lt;br /&gt;
  CFLAGS=&amp;quot;-O2 -mcpu=&amp;lt;cpu_see_above&amp;gt; -Wall&amp;quot; LDFLAGS=&amp;quot;-s&amp;quot; ./configure&lt;br /&gt;
&lt;br /&gt;
=== Configure options and their meanings ===&lt;br /&gt;
&lt;br /&gt;
For configure there are many options and some GRASS modules are built only if some options are set. Here are listed common configuration options with short explanation.&lt;br /&gt;
&lt;br /&gt;
* --prefix=/path - Sets path where GRASS will be installed. GRASS will reside in /path/grass-version.&lt;br /&gt;
* --enable-largefile - Enables large (&amp;gt;2Gb on 32bit systems) support. For current large file support status look at [[Large File Support]] page.&lt;br /&gt;
* --with-cxx - Enables compilation of C++ code. Required for r.terraflow module.&lt;br /&gt;
* --with-readline - Enables readline support. If readline is enabled, you can use its history/editing facilities when entering r.mapcalc expressions on stdin.&lt;br /&gt;
* --with-glw - Enables GLw support. The GLw library provides OpenGL &amp;quot;canvas&amp;quot; widgets for Athena and Motif. &lt;br /&gt;
 &lt;br /&gt;
 That switch is unnecessary for normal compilation. It's only&lt;br /&gt;
 required for r3.showdspf, which isn't normally built; if you &lt;br /&gt;
 want it, you have build it manually &lt;br /&gt;
 (e.g. &amp;quot;make -C raster3d/r3.showdspf&amp;quot;).&lt;br /&gt;
 As similar functionality is now provided by NVIZ, r3.showdspf&lt;br /&gt;
 is deprecated.&lt;br /&gt;
 r3.showdspf uses the Motif widget (so you also need a &lt;br /&gt;
 Motif library, e.g. Lesstif or OpenMotif).&lt;br /&gt;
 [http://grass.itc.it/pipermail/grassuser/2006-December/037475.html Glynn Clements at GRASS-user mailing list]&lt;br /&gt;
&lt;br /&gt;
=== Parallelized compilation on multi-core CPUs ===&lt;br /&gt;
&lt;br /&gt;
You can dramatically accelerate the compilation of the GRASS code with the -j flag of &amp;quot;make&amp;quot; if you have a multi-core CPU system. This determines the maximum number of jobs to have running at once, so cores don't have to sit idle waiting for jobs on other cores to complete. A good rule of thumb for this value is &amp;lt;tt&amp;gt;number_of_cores * 1.5&amp;lt;/tt&amp;gt;, but note that setting any higher than the actual number of cores will only affect the timing slightly. For example, on a dual-core processor:&lt;br /&gt;
  make -j 4&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- CFLAGS=&amp;quot;-pipe&amp;quot; doesn't seem to help much --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== GRASS-GDAL plugin ==&lt;br /&gt;
&lt;br /&gt;
* see [[Compile and install GRASS and QGIS with GDAL/OGR Plugin]]&lt;br /&gt;
&lt;br /&gt;
== Addons ==&lt;br /&gt;
&lt;br /&gt;
Please note that the installation of [[AddOns/GRASS_6|Addons]] can be easily done with the {{cmd|g.extension}} manager. The compile instructions below are aiming at own development.&lt;br /&gt;
&lt;br /&gt;
=== Compiled modules ===&lt;br /&gt;
&lt;br /&gt;
This is the general way which works for C modules as well as scripts (Python or Shell/Bash modules) which has HTML documentation.&lt;br /&gt;
&lt;br /&gt;
'''Requirements:'''&lt;br /&gt;
&lt;br /&gt;
Either:&lt;br /&gt;
* a binary GRASS package, or&lt;br /&gt;
* source code which has been prepared with:&lt;br /&gt;
    ./configure [opionally flags]&lt;br /&gt;
    make libs&lt;br /&gt;
&lt;br /&gt;
Each of the [[GRASS_AddOns|addon]] modules should come with a Makefile. To compile it, just run:&lt;br /&gt;
    make MODULE_TOPDIR=/path/to/grass64/&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;lt;tt&amp;gt;/path/to/grass64&amp;lt;/tt&amp;gt; has to be absolute, not relative.&lt;br /&gt;
&lt;br /&gt;
If using Bash it may be useful to set that up as an alias:&lt;br /&gt;
    alias gmake64='make MODULE_TOPDIR=/path/to/grass64/'&lt;br /&gt;
&lt;br /&gt;
Installation (perhaps requires &amp;quot;sudo&amp;quot;):&lt;br /&gt;
    make MODULE_TOPDIR=/path/to/grass64/ install&lt;br /&gt;
&lt;br /&gt;
Note: Compiled addons may require a re-compilation if you changed/updated your GRASS standard binaries.&lt;br /&gt;
&lt;br /&gt;
==== If binary comes with a -dev package ====&lt;br /&gt;
&lt;br /&gt;
''(work in progress, this text states how it eventually will be :)''&lt;br /&gt;
Nowadays one does not need to the source code, nor compiling GRASS by oneself to be able to add add-ons. On Debian, you can just install the grass-dev package and then run:&lt;br /&gt;
 make MODULE_TOPDIR=/usr/lib/grass64/ INST_DIR=/usr/lib/grass64/&lt;br /&gt;
&lt;br /&gt;
The grass-dev package essentially provides GRASS's &amp;lt;tt&amp;gt;include&amp;lt;/tt&amp;gt; header files and Make configuration files.&lt;br /&gt;
&lt;br /&gt;
=== Scripts ===&lt;br /&gt;
&lt;br /&gt;
If the addon module is a script, it is sufficient to copy it into the (GRASS binaries) path somewhere. Alternatively, install addons into a separate GRASS addons binaries/scripts directory which is easier to maintain. It avoids getting clobbered every time you reinstall GRASS. To use these separately stored scripts, set and export the GRASS_ADDON_PATH environment variable before starting GRASS and it will automatically be added to the module search path (see the {{cmd|variables}} help page). To simplify this, do for example:&lt;br /&gt;
&lt;br /&gt;
 # add in $HOME/.bashrc:&lt;br /&gt;
 GRASS_ADDON_PATH=/usr/local/grass/addons/&lt;br /&gt;
 export GRASS_ADDON_PATH&lt;br /&gt;
&lt;br /&gt;
Make sure that the script is executable, then just call it in GRASS typing the filename. Python scripts need to be called writing the extension as well, like:&lt;br /&gt;
 &lt;br /&gt;
 GRASS 6.5.svn (spearfish60):~ &amp;gt; v.krige.py&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26206</id>
		<title>Compiling on macOS using Anaconda</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26206"/>
		<updated>2020-06-02T23:59:30Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: fix another mediawiki formatting issue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using Anaconda to Create a Binary Mac App for GRASS ==&lt;br /&gt;
These instructions are for creating a self-contained Mac app, including all dependencies, with GRASS 7.9 and Anaconda. You can modify them if you don't need some of the steps. Some of the steps you won't need to repeat (e.g., creating an anaconda environment). You must first install the '''Anaconda package''' for Python from (https://www.anaconda.com). You will of course need to download a copy of the '''GRASS source code''' from (https://grass.osgeo.org). You will also need to install Apple's '''XCode''' and the '''command-line tools''' to compile sofware. This workflow can be used with MacOS 10.14 and 10.15. It may work with other versions, but has not been tested.     &lt;br /&gt;
&lt;br /&gt;
You will need to work from the '''Mac terminal''' to compile GRASS of course. This tutorial assumes you are familiare with this command line interface.   &lt;br /&gt;
&lt;br /&gt;
This process also requires some patches and other supporting files. You can download these here: [[File:Grass_macapp_anaconda_supporting_files.zip]]  &lt;br /&gt;
&lt;br /&gt;
=== 1. Create a Mac app shell (I have uploaded an example for GRASS 7.9 you can use as is, modified from shells created by Eric Hutton). ===  &lt;br /&gt;
This can be modified serve for different versions of GRASS by altering the last line of the script that launches GRASS in the app shell. To do this, you will need to look inside the app by Ctrl-clicking on it and selecting ''''&amp;quot;show package contents&amp;quot;'''', which reveals the app as a folder with other folders and files inside.  &lt;br /&gt;
&lt;br /&gt;
For example, to make a shell for GRASS 7.8, copy the uploaded ''''GRASS-7.9.app'''' and rename it to ''''GRASS-7.8.app''''  &lt;br /&gt;
Then show package contents for ''''GRASS-7.8.app'''' and use a text editor to modify the last line of the file ''''../GRASS-7.8.app/Contents/MacOS/Grass.sh'''' to refer to GRASS 7.8  &lt;br /&gt;
&lt;br /&gt;
change:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass79&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
to:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass78&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
Also, use a text editor to modify ''''../GRASS-7.9.app/Contents/Info.plist''' to change all references to 7.9 to 7.8.  &lt;br /&gt;
&lt;br /&gt;
=== 2. Create an Anaconda environment for Python 3.6.10 ===  &lt;br /&gt;
This may not be strictly necessary, but I am doing it make sure that my builds use Python 3  instead of Python 2.7,  which is still what ships with the Mac.  &lt;br /&gt;
&lt;br /&gt;
Anaconda defaults to Python 3.7.6, which will not compile GRASS properly. This makes it more complicated than needed, requiring some workarounds. I've tried this with multiple versions of Python 3 (anaconda has them all the way up to 3.8.2), but the highest version that seems to give consistently successful results is 3.6.10. This will probably change in the future so that you can use a higher version of Python.   &lt;br /&gt;
&lt;br /&gt;
Here is how to create an Anaconda environment for Python 3.6.10. You only need to do this once for each environment you want to use.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create anaconda_p36 python==3.6.10 anaconda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Activate the Anaconda Python 3.6.10 environment ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda activate anaconda_p36&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can activate any previously created Anaconda environment in this way   &lt;br /&gt;
&lt;br /&gt;
=== 4. Copy the Mac app shell to /Applications ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r ../GRASS-7.9.app /Applications/GRASS-7.9.app  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Download the Python 3 miniconda installer and use it to install a minimal anaconda environment into the Mac app shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh &amp;amp;gt;  miniconda3.sh   &lt;br /&gt;
bash ./miniconda3.sh -b -f -p /Applications/GRASS-7.9.app/Contents/Resources    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  6. Export the path to the GRASS Mac app shell so that subsequent operations use the environment of that shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/Applications/GRASS-7.9.app/Contents/Resources/bin:$PATH   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Install GRASS dependencies into Mac app shell, including Python 3.6.10 ===  &lt;br /&gt;
A requirements file can make all of these dependencies easier to install. One is included in the supporting files package. This will downgrade Python from v. 3.7.6 installed by miniconda to the more useable 3.6.10.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install --yes -p &amp;quot;/Applications/GRASS-7.9.app/Contents/Resources&amp;quot; --file=requirements_wxp4p36.txt -c conda-forge  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Create a symlink to Python so that pythonw can find it (may become unneeded in the future) ===  &lt;br /&gt;
Grass launches Python through the pythonw script. But the script does not point to the correct location for Python (which is in fact in 2 different places). This seems to be a bug in Python &amp;lt; 3.7.4 or how anaconda installs it. It puts the python launch file in the wrong place. So a symlink is needed.  Hopefully this will go away when we can use Python &amp;gt; 3.7.6, which seems to put python in the correct place, and the place that pythonw points to.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /Applications/GRASS-7.8.app/Contents/Resources/python.app/pythonapp/Contents/* /Applications/GRASS-7.8.app/Contents/Resources/python.app/Contents&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. cd to the grass source folder and apply patches to  configure and make files ===  &lt;br /&gt;
Eric Hutton at CSDMS worked out these patches and I modified one needed to use Python 3. Maybe they can be worked into the source code so that they are no longer needed. I will upload the patches along with the app shell and requirements file.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; aclocal.m4.patch  &lt;br /&gt;
patch -p0 &amp;lt; configure.patch  &lt;br /&gt;
patch -p0 &amp;lt; install.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; loader.py.patch  &lt;br /&gt;
patch -p0 &amp;lt; module.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; platform.make.in.patch  &lt;br /&gt;
patch -p0 &amp;lt; rules.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; shlib.make.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== 10. Configure, make, and install ===  &lt;br /&gt;
An example configure script is included in the grass supporting files package. It flags all dependencies and sets the correct path so that they can be found. '''Important''': this configure script has a hard path to the SDK (software developer kit) that comes with XCode. You can set different path if you've put you SDK in a different place.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash ../configure.sh&lt;br /&gt;
make -j4  GDAL_DYNAMIC=&lt;br /&gt;
make -j4 install  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming there were no errors, you should now be able to run and test the GRASS-7.9.app in your /Applications folder&lt;br /&gt;
&lt;br /&gt;
=== 11. Clean up ===  &lt;br /&gt;
This removes unneeded anaconda package installer files and some other large files that are irrelevant for GRASS. It makes the app much smaller (though still large because of Python, wxPython, and other dependencies are packaged inside)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda clean --all  -y  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/mkspecs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/phrasebooks  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/pkgs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/plugins  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/qml  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/resources  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/translations &lt;br /&gt;
rm /Applications/GRASS-7.9.app/Contents/Resources/lib/libQt*  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: create a binary distribution package&lt;br /&gt;
=== 12. Set up folder to make a binary package for distribution ===  &lt;br /&gt;
Put a copy of the new GRASS app and a symlink to the /Applications folder into a new folder that will become the distribution package.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ../binary_pkg/grass-7.9&lt;br /&gt;
cd ../binary_pkg/grass-7.9&lt;br /&gt;
cp -R /Applications/GRASS-7.9.app ./&lt;br /&gt;
ln -s /Applications Applications  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Use Disk Utility to make a distribution package ===  &lt;br /&gt;
* Open disk Utility  &lt;br /&gt;
* From the make file/new image menu, select image from from folder  &lt;br /&gt;
* Point it to the folder with the app and symlink to /Applications and tell it to make an image ''''GRASS-7.9.dmg''''.&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26205</id>
		<title>Compiling on macOS using Anaconda</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26205"/>
		<updated>2020-06-02T23:57:34Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: fixing some typos and added MacOS version info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using Anaconda to Create a Binary Mac App for GRASS ==&lt;br /&gt;
These instructions are for creating a self-contained Mac app, including all dependencies, with GRASS 7.9 and Anaconda. You can modify them if you don't need some of the steps. Some of the steps you won't need to repeat (e.g., creating an anaconda environment). You must first install the '''Anaconda package''' for Python from (https://www.anaconda.com). You will of course need to download a copy of the '''GRASS source code''' from (https://grass.osgeo.org). You will also need to install Apple's '''XCode''' and the '''command-line tools''' to compile sofware. This workflow can be used with MacOS 10.14 and 10.15. It may work with other versions, but has not been tested.     &lt;br /&gt;
&lt;br /&gt;
You will need to work from the '''Mac terminal''' to compile GRASS of course. This tutorial assumes you are familiare with this command line interface.   &lt;br /&gt;
&lt;br /&gt;
This process also requires some patches and other supporting files. You can download these here: [[File:Grass_macapp_anaconda_supporting_files.zip]]  &lt;br /&gt;
&lt;br /&gt;
=== 1. Create a Mac app shell (I have uploaded an example for GRASS 7.9 you can use as is, modified from shells created by Eric Hutton). ===  &lt;br /&gt;
This can be modified serve for different versions of GRASS by altering the last line of the script that launches GRASS in the app shell. To do this, you will need to look inside the app by Ctrl-clicking on it and selecting ''''&amp;quot;show package contents&amp;quot;'''', which reveals the app as a folder with other folders and files inside.  &lt;br /&gt;
&lt;br /&gt;
For example, to make a shell for GRASS 7.8, copy the uploaded ''''GRASS-7.9.app'''' and rename it to ''''GRASS-7.8.app''''  &lt;br /&gt;
Then show package contents for ''''GRASS-7.8.app'''' and use a text editor to modify the last line of the file ''''../GRASS-7.8.app/Contents/MacOS/Grass.sh'''' to refer to GRASS 7.8  &lt;br /&gt;
&lt;br /&gt;
change:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass79&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
to:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass78&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
Also, use a text editor to modify ''''../GRASS-7.9.app/Contents/Info.plist''' to change all references to 7.9 to 7.8.  &lt;br /&gt;
&lt;br /&gt;
=== 2. Create an Anaconda environment for Python 3.6.10 ===  &lt;br /&gt;
This may not be strictly necessary, but I am doing it make sure that my builds use Python 3  instead of Python 2.7,  which is still what ships with the Mac.  &lt;br /&gt;
&lt;br /&gt;
Anaconda defaults to Python 3.7.6, which will not compile GRASS properly. This makes it more complicated than needed, requiring some workarounds. I've tried this with multiple versions of Python 3 (anaconda has them all the way up to 3.8.2), but the highest version that seems to give consistently successful results is 3.6.10. This will probably change in the future so that you can use a higher version of Python.   &lt;br /&gt;
&lt;br /&gt;
Here is how to create an Anaconda environment for Python 3.6.10. You only need to do this once for each environment you want to use.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create anaconda_p36 python==3.6.10 anaconda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Activate the Anaconda Python 3.6.10 environment ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda activate anaconda_p36&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can activate any previously created Anaconda environment in this way   &lt;br /&gt;
&lt;br /&gt;
=== 4. Copy the Mac app shell to /Applications ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r ../GRASS-7.9.app /Applications/GRASS-7.9.app  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Download the Python 3 miniconda installer and use it to install a minimal anaconda environment into the Mac app shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh &amp;amp;gt;  miniconda3.sh   &lt;br /&gt;
bash ./miniconda3.sh -b -f -p /Applications/GRASS-7.9.app/Contents/Resources    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  6. Export the path to the GRASS Mac app shell so that subsequent operations use the environment of that shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/Applications/GRASS-7.9.app/Contents/Resources/bin:$PATH   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Install GRASS dependencies into Mac app shell, including Python 3.6.10 ===  &lt;br /&gt;
A requirements file can make all of these dependencies easier to install. One is included in the supporting files package. This will downgrade Python from v. 3.7.6 installed by miniconda to the more useable 3.6.10.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install --yes -p &amp;quot;/Applications/GRASS-7.9.app/Contents/Resources&amp;quot; --file=requirements_wxp4p36.txt -c conda-forge  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Create a symlink to Python so that pythonw can find it (may become unneeded in the future) ===  &lt;br /&gt;
Grass launches Python through the pythonw script. But the script does not point to the correct location for Python (which is in fact in 2 different places). This seems to be a bug in Python \&amp;lt; 3.7.4 or how anaconda installs it. It puts the python launch file in the wrong place. So a symlink is needed.  Hopefully this will go away when we can use Python \&amp;gt; 3.7.6, which seems to put python in the correct place, and the place that pythonw points to.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /Applications/GRASS-7.8.app/Contents/Resources/python.app/pythonapp/Contents/* /Applications/GRASS-7.8.app/Contents/Resources/python.app/Contents&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. cd to the grass source folder and apply patches to  configure and make files ===  &lt;br /&gt;
Eric Hutton at CSDMS worked out these patches and I modified one needed to use Python 3. Maybe they can be worked into the source code so that they are no longer needed. I will upload the patches along with the app shell and requirements file.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; aclocal.m4.patch  &lt;br /&gt;
patch -p0 &amp;lt; configure.patch  &lt;br /&gt;
patch -p0 &amp;lt; install.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; loader.py.patch  &lt;br /&gt;
patch -p0 &amp;lt; module.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; platform.make.in.patch  &lt;br /&gt;
patch -p0 &amp;lt; rules.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; shlib.make.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== 10. Configure, make, and install ===  &lt;br /&gt;
An example configure script is included in the grass supporting files package. It flags all dependencies and sets the correct path so that they can be found. '''Important''': this configure script has a hard path to the SDK (software developer kit) that comes with XCode. You can set different path if you've put you SDK in a different place.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash ../configure.sh&lt;br /&gt;
make -j4  GDAL_DYNAMIC=&lt;br /&gt;
make -j4 install  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming there were no errors, you should now be able to run and test the GRASS-7.9.app in your /Applications folder&lt;br /&gt;
&lt;br /&gt;
=== 11. Clean up ===  &lt;br /&gt;
This removes unneeded anaconda package installer files and some other large files that are irrelevant for GRASS. It makes the app much smaller (though still large because of Python, wxPython, and other dependencies are packaged inside)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda clean --all  -y  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/mkspecs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/phrasebooks  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/pkgs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/plugins  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/qml  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/resources  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/translations &lt;br /&gt;
rm /Applications/GRASS-7.9.app/Contents/Resources/lib/libQt*  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: create a binary distribution package&lt;br /&gt;
=== 12. Set up folder to make a binary package for distribution ===  &lt;br /&gt;
Put a copy of the new GRASS app and a symlink to the /Applications folder into a new folder that will become the distribution package.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ../binary_pkg/grass-7.9&lt;br /&gt;
cd ../binary_pkg/grass-7.9&lt;br /&gt;
cp -R /Applications/GRASS-7.9.app ./&lt;br /&gt;
ln -s /Applications Applications  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Use Disk Utility to make a distribution package ===  &lt;br /&gt;
* Open disk Utility  &lt;br /&gt;
* From the make file/new image menu, select image from from folder  &lt;br /&gt;
* Point it to the folder with the app and symlink to /Applications and tell it to make an image ''''GRASS-7.9.dmg''''.&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26204</id>
		<title>Compiling on macOS using Anaconda</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26204"/>
		<updated>2020-06-02T23:48:34Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: fix link to uploaded file&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using Anaconda to Create a Binary Mac App for GRASS ==&lt;br /&gt;
These instructions are for creating a self-contained Mac app, including all dependencies, with GRASS 7.9 and Anaconda. You can modify them if you don't need some of the steps. Some of the steps	he '''Anaconda package''' for Python from (https://www.anaconda.com). You will of course need to download a copy of the '''GRASS source code''' from (https://grass.osgeo.org). You will also need to install Apple's '''XCode''' and the '''command-line tools''' to compile sofware.   &lt;br /&gt;
&lt;br /&gt;
You will need to work from the '''Mac terminal''' to compile GRASS of course. This tutorial assumes you are familiare with this command line interface.   &lt;br /&gt;
&lt;br /&gt;
This process also requires some patches and other supporting files. You can download these here: [[File:Grass_macapp_anaconda_supporting_files.zip]]  &lt;br /&gt;
&lt;br /&gt;
=== 1. Create a Mac app shell (I have uploaded an example for GRASS 7.9 you can use as is, modified from shells created by Eric Hutton). ===  &lt;br /&gt;
This can be modified serve for different versions of GRASS by altering the last line of the script that launches GRASS in the app shell. To do this, you will need to look inside the app by Ctrl-clicking on it and selecting ''''&amp;quot;show package contents&amp;quot;'''', which reveals the app as a folder with other folders and files inside.  &lt;br /&gt;
&lt;br /&gt;
For example, to make a shell for GRASS 7.8, copy the uploaded ''''GRASS-7.9.app'''' and rename it to ''''GRASS-7.8.app''''  &lt;br /&gt;
Then show package contents for ''''GRASS-7.8.app'''' and use a text editor to modify the last line of the file ''''../GRASS-7.8.app/Contents/MacOS/Grass.sh'''' to refer to GRASS 7.8  &lt;br /&gt;
&lt;br /&gt;
change:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass79&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
to:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass78&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
Also, use a text editor to modify ''''../GRASS-7.9.app/Contents/Info.plist''' to change all references to 7.9 to 7.8.  &lt;br /&gt;
&lt;br /&gt;
=== 2. Create an Anaconda environment for Python 3.6.10 ===  &lt;br /&gt;
This may not be strictly necessary, but I am doing it make sure that my builds use Python 3  instead of Python 2.7,  which is still what ships with the Mac.  &lt;br /&gt;
&lt;br /&gt;
Anaconda defaults to Python 3.7.6, which will not compile GRASS properly. This makes it more complicated than needed, requiring some workarounds. I've tried this with multiple versions of Python 3 (anaconda has them all the way up to 3.8.2), but the highest version that seems to give consistently successful results is 3.6.10. This will probably change in the future so that you can use a higher version of Python.   &lt;br /&gt;
&lt;br /&gt;
Here is how to create an Anaconda environment for Python 3.6.10. You only need to do this once for each environment you want to use.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create anaconda_p36 python==3.6.10 anaconda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Activate the Anaconda Python 3.6.10 environment ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda activate anaconda_p36&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can activate any previously created Anaconda environment in this way   &lt;br /&gt;
&lt;br /&gt;
=== 4. Copy the Mac app shell to /Applications ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r ../GRASS-7.9.app /Applications/GRASS-7.9.app  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Download the Python 3 miniconda installer and use it to install a minimal anaconda environment into the Mac app shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh &amp;amp;gt;  miniconda3.sh   &lt;br /&gt;
bash ./miniconda3.sh -b -f -p /Applications/GRASS-7.9.app/Contents/Resources    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  6. Export the path to the GRASS Mac app shell so that subsequent operations use the environment of that shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/Applications/GRASS-7.9.app/Contents/Resources/bin:$PATH   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Install GRASS dependencies into Mac app shell, including Python 3.6.10 ===  &lt;br /&gt;
A requirements file can make all of these dependencies easier to install. One is included in the supporting files package. This will downgrade Python from v. 3.7.6 installed by miniconda to the more useable 3.6.10.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install --yes -p &amp;quot;/Applications/GRASS-7.9.app/Contents/Resources&amp;quot; --file=requirements_wxp4p36.txt -c conda-forge  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Create a symlink to Python so that pythonw can find it (may become unneeded in the future) ===  &lt;br /&gt;
Grass launches Python through the pythonw script. But the script does not point to the correct location for Python (which is in fact in 2 different places). This seems to be a bug in Python \&amp;lt; 3.7.4 or how anaconda installs it. It puts the python launch file in the wrong place. So a symlink is needed.  Hopefully this will go away when we can use Python \&amp;gt; 3.7.6, which seems to put python in the correct place, and the place that pythonw points to.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /Applications/GRASS-7.8.app/Contents/Resources/python.app/pythonapp/Contents/* /Applications/GRASS-7.8.app/Contents/Resources/python.app/Contents&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. cd to the grass source folder and apply patches to  configure and make files ===  &lt;br /&gt;
Eric Hutton at CSDMS worked out these patches and I modified one needed to use Python 3. Maybe they can be worked into the source code so that they are no longer needed. I will upload the patches along with the app shell and requirements file.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; aclocal.m4.patch  &lt;br /&gt;
patch -p0 &amp;lt; configure.patch  &lt;br /&gt;
patch -p0 &amp;lt; install.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; loader.py.patch  &lt;br /&gt;
patch -p0 &amp;lt; module.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; platform.make.in.patch  &lt;br /&gt;
patch -p0 &amp;lt; rules.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; shlib.make.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== 10. Configure, make, and install ===  &lt;br /&gt;
An example configure script is included in the grass supporting files package. It flags all dependencies and sets the correct path so that they can be found. '''Important''': this configure script has a hard path to the SDK (software developer kit) that comes with XCode. You can set different path if you've put you SDK in a different place.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash ../configure.sh&lt;br /&gt;
make -j4  GDAL_DYNAMIC=&lt;br /&gt;
make -j4 install  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming there were no errors, you should now be able to run and test the GRASS-7.9.app in your /Applications folder&lt;br /&gt;
&lt;br /&gt;
=== 11. Clean up ===  &lt;br /&gt;
This removes unneeded anaconda package installer files and some other large files that are irrelevant for GRASS. It makes the app much smaller (though still large because of Python, wxPython, and other dependencies are packaged inside)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda clean --all  -y  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/mkspecs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/phrasebooks  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/pkgs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/plugins  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/qml  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/resources  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/translations &lt;br /&gt;
rm /Applications/GRASS-7.9.app/Contents/Resources/lib/libQt*  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: create a binary distribution package&lt;br /&gt;
=== 12. Set up folder to make a binary package for distribution ===  &lt;br /&gt;
Put a copy of the new GRASS app and a symlink to the /Applications folder into a new folder that will become the distribution package.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ../binary_pkg/grass-7.9&lt;br /&gt;
cd ../binary_pkg/grass-7.9&lt;br /&gt;
cp -R /Applications/GRASS-7.9.app ./&lt;br /&gt;
ln -s /Applications Applications  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Use Disk Utility to make a distribution package ===  &lt;br /&gt;
* Open disk Utility  &lt;br /&gt;
* From the make file/new image menu, select image from from folder  &lt;br /&gt;
* Point it to the folder with the app and symlink to /Applications and tell it to make an image ''''GRASS-7.9.dmg''''.&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26203</id>
		<title>Compiling on macOS using Anaconda</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26203"/>
		<updated>2020-06-02T23:48:02Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: change how links are displayed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using Anaconda to Create a Binary Mac App for GRASS ==&lt;br /&gt;
These instructions are for creating a self-contained Mac app, including all dependencies, with GRASS 7.9 and Anaconda. You can modify them if you don't need some of the steps. Some of the steps	he '''Anaconda package''' for Python from (https://www.anaconda.com). You will of course need to download a copy of the '''GRASS source code''' from (https://grass.osgeo.org). You will also need to install Apple's '''XCode''' and the '''command-line tools''' to compile sofware.   &lt;br /&gt;
&lt;br /&gt;
You will need to work from the '''Mac terminal''' to compile GRASS of course. This tutorial assumes you are familiare with this command line interface.   &lt;br /&gt;
&lt;br /&gt;
This process also requires some patches and other supporting files. You can download these here: [[Grass_macapp_anaconda_supporting_files.zip]]  &lt;br /&gt;
&lt;br /&gt;
=== 1. Create a Mac app shell (I have uploaded an example for GRASS 7.9 you can use as is, modified from shells created by Eric Hutton). ===  &lt;br /&gt;
This can be modified serve for different versions of GRASS by altering the last line of the script that launches GRASS in the app shell. To do this, you will need to look inside the app by Ctrl-clicking on it and selecting ''''&amp;quot;show package contents&amp;quot;'''', which reveals the app as a folder with other folders and files inside.  &lt;br /&gt;
&lt;br /&gt;
For example, to make a shell for GRASS 7.8, copy the uploaded ''''GRASS-7.9.app'''' and rename it to ''''GRASS-7.8.app''''  &lt;br /&gt;
Then show package contents for ''''GRASS-7.8.app'''' and use a text editor to modify the last line of the file ''''../GRASS-7.8.app/Contents/MacOS/Grass.sh'''' to refer to GRASS 7.8  &lt;br /&gt;
&lt;br /&gt;
change:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass79&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
to:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass78&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
Also, use a text editor to modify ''''../GRASS-7.9.app/Contents/Info.plist''' to change all references to 7.9 to 7.8.  &lt;br /&gt;
&lt;br /&gt;
=== 2. Create an Anaconda environment for Python 3.6.10 ===  &lt;br /&gt;
This may not be strictly necessary, but I am doing it make sure that my builds use Python 3  instead of Python 2.7,  which is still what ships with the Mac.  &lt;br /&gt;
&lt;br /&gt;
Anaconda defaults to Python 3.7.6, which will not compile GRASS properly. This makes it more complicated than needed, requiring some workarounds. I've tried this with multiple versions of Python 3 (anaconda has them all the way up to 3.8.2), but the highest version that seems to give consistently successful results is 3.6.10. This will probably change in the future so that you can use a higher version of Python.   &lt;br /&gt;
&lt;br /&gt;
Here is how to create an Anaconda environment for Python 3.6.10. You only need to do this once for each environment you want to use.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create anaconda_p36 python==3.6.10 anaconda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Activate the Anaconda Python 3.6.10 environment ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda activate anaconda_p36&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can activate any previously created Anaconda environment in this way   &lt;br /&gt;
&lt;br /&gt;
=== 4. Copy the Mac app shell to /Applications ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r ../GRASS-7.9.app /Applications/GRASS-7.9.app  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Download the Python 3 miniconda installer and use it to install a minimal anaconda environment into the Mac app shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh &amp;amp;gt;  miniconda3.sh   &lt;br /&gt;
bash ./miniconda3.sh -b -f -p /Applications/GRASS-7.9.app/Contents/Resources    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  6. Export the path to the GRASS Mac app shell so that subsequent operations use the environment of that shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/Applications/GRASS-7.9.app/Contents/Resources/bin:$PATH   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Install GRASS dependencies into Mac app shell, including Python 3.6.10 ===  &lt;br /&gt;
A requirements file can make all of these dependencies easier to install. One is included in the supporting files package. This will downgrade Python from v. 3.7.6 installed by miniconda to the more useable 3.6.10.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install --yes -p &amp;quot;/Applications/GRASS-7.9.app/Contents/Resources&amp;quot; --file=requirements_wxp4p36.txt -c conda-forge  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Create a symlink to Python so that pythonw can find it (may become unneeded in the future) ===  &lt;br /&gt;
Grass launches Python through the pythonw script. But the script does not point to the correct location for Python (which is in fact in 2 different places). This seems to be a bug in Python \&amp;lt; 3.7.4 or how anaconda installs it. It puts the python launch file in the wrong place. So a symlink is needed.  Hopefully this will go away when we can use Python \&amp;gt; 3.7.6, which seems to put python in the correct place, and the place that pythonw points to.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /Applications/GRASS-7.8.app/Contents/Resources/python.app/pythonapp/Contents/* /Applications/GRASS-7.8.app/Contents/Resources/python.app/Contents&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. cd to the grass source folder and apply patches to  configure and make files ===  &lt;br /&gt;
Eric Hutton at CSDMS worked out these patches and I modified one needed to use Python 3. Maybe they can be worked into the source code so that they are no longer needed. I will upload the patches along with the app shell and requirements file.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; aclocal.m4.patch  &lt;br /&gt;
patch -p0 &amp;lt; configure.patch  &lt;br /&gt;
patch -p0 &amp;lt; install.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; loader.py.patch  &lt;br /&gt;
patch -p0 &amp;lt; module.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; platform.make.in.patch  &lt;br /&gt;
patch -p0 &amp;lt; rules.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; shlib.make.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== 10. Configure, make, and install ===  &lt;br /&gt;
An example configure script is included in the grass supporting files package. It flags all dependencies and sets the correct path so that they can be found. '''Important''': this configure script has a hard path to the SDK (software developer kit) that comes with XCode. You can set different path if you've put you SDK in a different place.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash ../configure.sh&lt;br /&gt;
make -j4  GDAL_DYNAMIC=&lt;br /&gt;
make -j4 install  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming there were no errors, you should now be able to run and test the GRASS-7.9.app in your /Applications folder&lt;br /&gt;
&lt;br /&gt;
=== 11. Clean up ===  &lt;br /&gt;
This removes unneeded anaconda package installer files and some other large files that are irrelevant for GRASS. It makes the app much smaller (though still large because of Python, wxPython, and other dependencies are packaged inside)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda clean --all  -y  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/mkspecs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/phrasebooks  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/pkgs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/plugins  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/qml  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/resources  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/translations &lt;br /&gt;
rm /Applications/GRASS-7.9.app/Contents/Resources/lib/libQt*  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: create a binary distribution package&lt;br /&gt;
=== 12. Set up folder to make a binary package for distribution ===  &lt;br /&gt;
Put a copy of the new GRASS app and a symlink to the /Applications folder into a new folder that will become the distribution package.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ../binary_pkg/grass-7.9&lt;br /&gt;
cd ../binary_pkg/grass-7.9&lt;br /&gt;
cp -R /Applications/GRASS-7.9.app ./&lt;br /&gt;
ln -s /Applications Applications  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Use Disk Utility to make a distribution package ===  &lt;br /&gt;
* Open disk Utility  &lt;br /&gt;
* From the make file/new image menu, select image from from folder  &lt;br /&gt;
* Point it to the folder with the app and symlink to /Applications and tell it to make an image ''''GRASS-7.9.dmg''''.&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26202</id>
		<title>Compiling on macOS using Anaconda</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_macOS_using_Anaconda&amp;diff=26202"/>
		<updated>2020-06-02T23:45:43Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: add workflow to create Mac app binary using Anaconda&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Using Anaconda to Create a Binary Mac App for GRASS ==&lt;br /&gt;
These instructions are for creating a self-contained Mac app, including all dependencies, with GRASS 7.9 and Anaconda. You can modify them if you don't need some of the steps. Some of the steps	he '''Anaconda package''' for Python from [https://www.anaconda.com](https://www.anaconda.com). You will of course need to download a copy of the '''GRASS source code''' from [https://grass.osgeo.org](https://grass.osgeo.org). You will also need to install Apple's '''XCode''' and the '''command-line tools''' to compile sofware.   &lt;br /&gt;
&lt;br /&gt;
You will need to work from the '''Mac terminal''' to compile GRASS of course. This tutorial assumes you are familiare with this command line interface.   &lt;br /&gt;
&lt;br /&gt;
This process also requires some patches and other supporting files. You can download these here: [[File:Grass_macapp_anaconda_supporting_files.zip]]  &lt;br /&gt;
&lt;br /&gt;
=== 1. Create a Mac app shell (I have uploaded an example for GRASS 7.9 you can use as is, modified from shells created by Eric Hutton). ===  &lt;br /&gt;
This can be modified serve for different versions of GRASS by altering the last line of the script that launches GRASS in the app shell. To do this, you will need to look inside the app by Ctrl-clicking on it and selecting ''''&amp;quot;show package contents&amp;quot;'''', which reveals the app as a folder with other folders and files inside.  &lt;br /&gt;
&lt;br /&gt;
For example, to make a shell for GRASS 7.8, copy the uploaded ''''GRASS-7.9.app'''' and rename it to ''''GRASS-7.8.app''''  &lt;br /&gt;
Then show package contents for ''''GRASS-7.8.app'''' and use a text editor to modify the last line of the file ''''../GRASS-7.8.app/Contents/MacOS/Grass.sh'''' to refer to GRASS 7.8  &lt;br /&gt;
&lt;br /&gt;
change:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass79&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
to:  &amp;quot;$GRASS_PYTHON&amp;quot; &amp;quot;$GISBASE/bin/grass78&amp;quot; &amp;quot;-gui&amp;quot; &amp;quot;$@&amp;quot;  &lt;br /&gt;
&lt;br /&gt;
Also, use a text editor to modify ''''../GRASS-7.9.app/Contents/Info.plist''' to change all references to 7.9 to 7.8.  &lt;br /&gt;
&lt;br /&gt;
=== 2. Create an Anaconda environment for Python 3.6.10 ===  &lt;br /&gt;
This may not be strictly necessary, but I am doing it make sure that my builds use Python 3  instead of Python 2.7,  which is still what ships with the Mac.  &lt;br /&gt;
&lt;br /&gt;
Anaconda defaults to Python 3.7.6, which will not compile GRASS properly. This makes it more complicated than needed, requiring some workarounds. I've tried this with multiple versions of Python 3 (anaconda has them all the way up to 3.8.2), but the highest version that seems to give consistently successful results is 3.6.10. This will probably change in the future so that you can use a higher version of Python.   &lt;br /&gt;
&lt;br /&gt;
Here is how to create an Anaconda environment for Python 3.6.10. You only need to do this once for each environment you want to use.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda create anaconda_p36 python==3.6.10 anaconda&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3. Activate the Anaconda Python 3.6.10 environment ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda activate anaconda_p36&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can activate any previously created Anaconda environment in this way   &lt;br /&gt;
&lt;br /&gt;
=== 4. Copy the Mac app shell to /Applications ===  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r ../GRASS-7.9.app /Applications/GRASS-7.9.app  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5. Download the Python 3 miniconda installer and use it to install a minimal anaconda environment into the Mac app shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh &amp;amp;gt;  miniconda3.sh   &lt;br /&gt;
bash ./miniconda3.sh -b -f -p /Applications/GRASS-7.9.app/Contents/Resources    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  6. Export the path to the GRASS Mac app shell so that subsequent operations use the environment of that shell ===  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=/Applications/GRASS-7.9.app/Contents/Resources/bin:$PATH   &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 7. Install GRASS dependencies into Mac app shell, including Python 3.6.10 ===  &lt;br /&gt;
A requirements file can make all of these dependencies easier to install. One is included in the supporting files package. This will downgrade Python from v. 3.7.6 installed by miniconda to the more useable 3.6.10.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda install --yes -p &amp;quot;/Applications/GRASS-7.9.app/Contents/Resources&amp;quot; --file=requirements_wxp4p36.txt -c conda-forge  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 8. Create a symlink to Python so that pythonw can find it (may become unneeded in the future) ===  &lt;br /&gt;
Grass launches Python through the pythonw script. But the script does not point to the correct location for Python (which is in fact in 2 different places). This seems to be a bug in Python \&amp;lt; 3.7.4 or how anaconda installs it. It puts the python launch file in the wrong place. So a symlink is needed.  Hopefully this will go away when we can use Python \&amp;gt; 3.7.6, which seems to put python in the correct place, and the place that pythonw points to.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /Applications/GRASS-7.8.app/Contents/Resources/python.app/pythonapp/Contents/* /Applications/GRASS-7.8.app/Contents/Resources/python.app/Contents&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 9. cd to the grass source folder and apply patches to  configure and make files ===  &lt;br /&gt;
Eric Hutton at CSDMS worked out these patches and I modified one needed to use Python 3. Maybe they can be worked into the source code so that they are no longer needed. I will upload the patches along with the app shell and requirements file.   &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p0 &amp;lt; aclocal.m4.patch  &lt;br /&gt;
patch -p0 &amp;lt; configure.patch  &lt;br /&gt;
patch -p0 &amp;lt; install.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; loader.py.patch  &lt;br /&gt;
patch -p0 &amp;lt; module.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; platform.make.in.patch  &lt;br /&gt;
patch -p0 &amp;lt; rules.make.patch  &lt;br /&gt;
patch -p0 &amp;lt; shlib.make.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== 10. Configure, make, and install ===  &lt;br /&gt;
An example configure script is included in the grass supporting files package. It flags all dependencies and sets the correct path so that they can be found. '''Important''': this configure script has a hard path to the SDK (software developer kit) that comes with XCode. You can set different path if you've put you SDK in a different place.  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash ../configure.sh&lt;br /&gt;
make -j4  GDAL_DYNAMIC=&lt;br /&gt;
make -j4 install  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming there were no errors, you should now be able to run and test the GRASS-7.9.app in your /Applications folder&lt;br /&gt;
&lt;br /&gt;
=== 11. Clean up ===  &lt;br /&gt;
This removes unneeded anaconda package installer files and some other large files that are irrelevant for GRASS. It makes the app much smaller (though still large because of Python, wxPython, and other dependencies are packaged inside)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
conda clean --all  -y  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/mkspecs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/phrasebooks  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/pkgs  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/plugins  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/qml  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/resources  &lt;br /&gt;
rm -r /Applications/GRASS-7.9.app/Contents/Resources/translations &lt;br /&gt;
rm /Applications/GRASS-7.9.app/Contents/Resources/lib/libQt*  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional: create a binary distribution package&lt;br /&gt;
=== 12. Set up folder to make a binary package for distribution ===  &lt;br /&gt;
Put a copy of the new GRASS app and a symlink to the /Applications folder into a new folder that will become the distribution package.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ../binary_pkg/grass-7.9&lt;br /&gt;
cd ../binary_pkg/grass-7.9&lt;br /&gt;
cp -R /Applications/GRASS-7.9.app ./&lt;br /&gt;
ln -s /Applications Applications  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 13. Use Disk Utility to make a distribution package ===  &lt;br /&gt;
* Open disk Utility  &lt;br /&gt;
* From the make file/new image menu, select image from from folder  &lt;br /&gt;
* Point it to the folder with the app and symlink to /Applications and tell it to make an image ''''GRASS-7.9.dmg''''.&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=File:Grass_macapp_anaconda_supporting_files.zip&amp;diff=26201</id>
		<title>File:Grass macapp anaconda supporting files.zip</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=File:Grass_macapp_anaconda_supporting_files.zip&amp;diff=26201"/>
		<updated>2020-06-02T18:36:16Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: Supporting files for workflow to create a binary Mac app for GRASS, using Anaconda&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Supporting files for workflow to create a binary Mac app for GRASS, using Anaconda&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=MacOSX_GRASS_errors&amp;diff=26168</id>
		<title>MacOSX GRASS errors</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=MacOSX_GRASS_errors&amp;diff=26168"/>
		<updated>2020-04-23T23:03:28Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: updating issues and solutions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here some problems reported by users along with solutions:&lt;br /&gt;
&lt;br /&gt;
== Starting GRASS GIS on MacOSX, I get &amp;quot;image not found&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
A) You may be lacking the installation of one or several &amp;quot;frameworks&amp;quot; (e.g. GDAL). Get them from here:&lt;br /&gt;
&lt;br /&gt;
 http://grass.osgeo.org/download/software/mac-osx/&lt;br /&gt;
 --&amp;gt; Install the required framework packages first&lt;br /&gt;
&lt;br /&gt;
This is not needed for binaries created for versions 7.2.2 and higher on the [http://grassmac.wikidot.com GRASS for Mac site] because all dependencies, including Python and wxPython are included in the binary app. &lt;br /&gt;
&lt;br /&gt;
B) You are hit by the SIP - System Integrity Protection - security measure which prevents some software from being installed properly. Please see the internet for suggestions how to deal with that. Alternative: use &amp;quot;[[Compiling on MacOSX using homebrew|homebrew]]&amp;quot; to install GRASS GIS. This is no longer a problem in binaries created for versions 7.2.2 and higher on the [http://grassmac.wikidot.com GRASS for Mac site] because all dependencies, including Python and wxPython are included in the binary app. &lt;br /&gt;
&lt;br /&gt;
== Starting GRASS GIS on MacOSX, I get &amp;quot;bad cpu type in executable&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
It looks like a macports problem (maybe ''homebrew'' also uses /opt/local?) with their Python. A guess is that their python is 64bit-only, and GRASS is trying to run python 32bit because it couldn't find a 64bit wxpython because 64bit wxpython isn't existing yet in the stable release.&amp;lt;br&amp;gt;&lt;br /&gt;
Work-around: Edit the file &amp;quot;.bash_profile&amp;quot; in your HOME directory and add therein:&lt;br /&gt;
&lt;br /&gt;
 export GRASS_PYTHON=/usr/bin/python2.6&lt;br /&gt;
 export GRASS_PYTHONWX=/usr/bin/pythonw2.6&lt;br /&gt;
&lt;br /&gt;
The newest versions of GRASS 7.8.2 and up) are designed to work with Python 3. So you may want to install Python 3 and change the path for GRASS_PYTHON and GRASS_PYTHONWX accordingly&lt;br /&gt;
&lt;br /&gt;
This is not a problem for binaries created for versions 7.2.2 and higher on the [http://grassmac.wikidot.com GRASS for Mac site] because all dependencies, including Python and wxPython are included in the binary app. &lt;br /&gt;
&lt;br /&gt;
== When using g.extension, I get &amp;quot;fatal error: grass/gis.h: No such file or directory&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Hint: g.extension should indeed work. The main key is that you need to install the Xcode command line tools.  This can be done either from the Xcode app (free from app store), or by downloading the command line tools installer separately (from an Apple developer account).&lt;br /&gt;
&lt;br /&gt;
== When using g.extension after updating to MacOSX Mojave and Xcode 10, I get &amp;quot;fatal error: 'stdio.h' file not found&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Note: Updating to MacOSX Mojave and Xcode 10 moves the location of the c header files preventing some GRASS extensions from compiling.&lt;br /&gt;
&lt;br /&gt;
Solution: Install the package file located at the below path to add c header files in /usr/include:&lt;br /&gt;
&lt;br /&gt;
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Update'''&lt;br /&gt;
&lt;br /&gt;
Fix this issue by updating ''/Applications/GRASS-7.6.app/Contents/Resources/include/Make/Platform.make''&lt;br /&gt;
&lt;br /&gt;
By replacing all references to /Developer/SDKs/MacOSX10.9.sdk with the updated sdk path /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk&lt;br /&gt;
&lt;br /&gt;
'''Variables to Update'''&lt;br /&gt;
&lt;br /&gt;
 CFLAGS              = -g -O2   -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk&lt;br /&gt;
 CXXFLAGS            =   -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk&lt;br /&gt;
 INCLUDE_DIRS        =  -I/Applications/GRASS-7.6.app/Contents/Resources/include&lt;br /&gt;
 LINK_FLAGS          =   -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -L/Applications/GRASS-7.6.app/Contents/Resources/lib -Xlinker -rpath -Xlinker ${prefix}/lib -Xlinker -rpath -Xlinker ${RUN_GISBASE}/lib&lt;br /&gt;
&lt;br /&gt;
 MACOSX_SDK          = -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk&lt;br /&gt;
&lt;br /&gt;
== Starting GRASS GIS on MacOSX, I get &amp;quot;AppleScript Error. Terminal got an error: Can't get window 1. (-1728)&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
Note: Normally when Terminal is activated (running or not), it starts a new window if there is none open, but I've seen cases where it does not when you start Terminal when it was NOT running.&lt;br /&gt;
&lt;br /&gt;
Solution: Try starting Terminal first, then start GRASS.&lt;br /&gt;
&lt;br /&gt;
Note that it may still take a long time to launch the terminal and GRASS sometimes, for unknown reasons, especially for the first time after a new installation or update. Be patient. &lt;br /&gt;
&lt;br /&gt;
== Starting GRASS GIS on MacOSX, I get &amp;quot;ERROR: unknown locale: UTF-8&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
You need to add these two lines&lt;br /&gt;
&lt;br /&gt;
 export LC_ALL=en_US.UTF-8&lt;br /&gt;
 export LANG=en_US.UTF-8&lt;br /&gt;
&lt;br /&gt;
to the file &amp;quot;.bash_profile&amp;quot; in your HOME directory. You can use any text editor to create/edit the file $HOME/.bash_profile (the same: ~/.bash_profile) and copy-paste the these two lines. Just be sure to save it as &amp;quot;.bash_profile&amp;quot; in your home directory.&lt;br /&gt;
&lt;br /&gt;
== d.legend does not show numbers ==&lt;br /&gt;
&lt;br /&gt;
Problem: d.legend and other text is not shown in the display!&lt;br /&gt;
&lt;br /&gt;
Solution: You need to rescan the fonts available on your system:&lt;br /&gt;
&lt;br /&gt;
  g.mkfontcap -o&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3D view error on MacOS (black screen) ==&lt;br /&gt;
&lt;br /&gt;
Problem: 3D view error on MacOS (black screen)&lt;br /&gt;
&lt;br /&gt;
Solution: compile GRASS GIS using [[Compiling on MacOSX using homebrew|homebrew]] libraries. The trick was to set --with-opengl=aqua, so it uses the opengl librarie from the system. Using --with-opengl=x11 results in the black screen.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* MacOSX GRASS Support forum: http://grassmac.wikidot.com/forum:start&lt;br /&gt;
* http://www.kyngchaos.com/software/support/faq&lt;br /&gt;
* [[WinGRASS errors]]&lt;br /&gt;
&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
[[Category: Installation‏‎]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Team&amp;diff=23808</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Team&amp;diff=23808"/>
		<updated>2016-11-23T16:40:24Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: updated my listing and photo&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:Grasslogo vector small.png|100px|center]] &lt;br /&gt;
| '''Huidae Cho''': Hydrologic modeling (TOPMODEL modules), DXF modules, FreeType support, Korean translation. Location: Atlanta, Georgia, USA mail: grass4u AT gmail com, IRC Nick: grass4u [http://idea.isnew.info http://idea.isnew.info]&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, Mac binaries, 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;
| '''Nikos Alexandris''': tester, contributed add-ons, 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: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>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=File:Michael.jpg&amp;diff=23807</id>
		<title>File:Michael.jpg</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=File:Michael.jpg&amp;diff=23807"/>
		<updated>2016-11-23T16:38:32Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: Cmbarton uploaded a new version of File:Michael.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Identity&amp;diff=21112</id>
		<title>Identity</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Identity&amp;diff=21112"/>
		<updated>2015-01-29T12:15:31Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= The need of a visual identity=&lt;br /&gt;
GRASS is still lacking a relevant, well tempered graphical identity. Some proposals are being discussed especially to design a new splash screen (and welcome banner). The full thread is [http://lists.osgeo.org/pipermail/grass-dev/2015-January/073157.html there].&lt;br /&gt;
&lt;br /&gt;
This page is intended to initiate a place where tests and suggestions could be gathered.&lt;br /&gt;
&lt;br /&gt;
== Logotype ==&lt;br /&gt;
===Graphics===&lt;br /&gt;
[http://grasswiki.osgeo.org/wiki/GRASS_Logo GRASS official logo] is a great starting point, as it has been here for ...ever?&lt;br /&gt;
Given the original vector file is somewhat irregular (twisted diamond, doubled vertices in grass, overlapping shapes) a ''cleaned'' light version is proposed.&lt;br /&gt;
&lt;br /&gt;
[[File:GRASSGIS_logo_color.png|150px|thumbnail|center|GRASS GIS cleanup logo, color version]]&lt;br /&gt;
&lt;br /&gt;
For consistency, it is important to use this logo ''as is'', i.e. not being tempted to distort it by any trick (shadows, bump mapping, blur, differential rescaling,...).&lt;br /&gt;
&lt;br /&gt;
Itemisation should be limited to:&amp;lt;br /&amp;gt;&lt;br /&gt;
* black (and grayscale) version;&lt;br /&gt;
&lt;br /&gt;
[[File:GRASSGIS_logo_gray.png|150px|thumbnail|center|GRASS GIS cleanup logo, grayscale version]]&lt;br /&gt;
&lt;br /&gt;
* white version, in case it should appear over a dark background/image.&lt;br /&gt;
&lt;br /&gt;
[[File:GRASSGIS_logo_white.png|150px|thumbnail|center|GRASS GIS cleanup logo, white (sort of negative) version]]&lt;br /&gt;
&lt;br /&gt;
===Tagline===&lt;br /&gt;
The ''historical'' one was : «The world's leading open source GIS». Several slogans were recently proposed:&lt;br /&gt;
&lt;br /&gt;
 - «Bringing advanced geospatial technologies to the world»;&lt;br /&gt;
 - «Advanced geospatial technology for everyone»;&lt;br /&gt;
 - «Opening advanced geospatial technologies to the world».&lt;br /&gt;
 - ...&lt;br /&gt;
&lt;br /&gt;
== Colors ==&lt;br /&gt;
===A grass &amp;lt;span style=&amp;quot;color:#009000&amp;quot;&amp;gt;green...&amp;lt;/span&amp;gt;===&lt;br /&gt;
The basic green color is defined as follows:&lt;br /&gt;
&lt;br /&gt;
  - 0,144,0 (rgb);&lt;br /&gt;
  - 100,100,44 (cmyk);&lt;br /&gt;
  - #009000 (html).&lt;br /&gt;
&lt;br /&gt;
aplha channel is set to 1 (no transparency)&lt;br /&gt;
&lt;br /&gt;
===...and a &amp;lt;span style=&amp;quot;color:#909090&amp;quot;&amp;gt;grayscale&amp;lt;/span&amp;gt; tone===&lt;br /&gt;
When required, a grayscale transposition is applied to green:&lt;br /&gt;
&lt;br /&gt;
*either it is an opaque grey:&lt;br /&gt;
  - 144,144,144 (rgb);&lt;br /&gt;
  - 0,0,0,44 (cmyk);&lt;br /&gt;
  - #909090 (html),&lt;br /&gt;
&lt;br /&gt;
*or it is multiplied over background, with alpha transparency:&lt;br /&gt;
  - 0,0,0,111 (rgba);&lt;br /&gt;
  - 0,0,0,100,44 (cmyk);&lt;br /&gt;
  - #0000006f (html).&lt;br /&gt;
&lt;br /&gt;
The white version may as well be declined in opaque or transparent, then green is replaced with translucent white:&lt;br /&gt;
  - 255,255,255,111 (rgba);&lt;br /&gt;
  - 0,0,0,0,44 (cmyk);&lt;br /&gt;
  - #ffffff6f (html).&lt;br /&gt;
&lt;br /&gt;
== Typo ==&lt;br /&gt;
The logo can come with text. It uses two fonts. Add your suggestions...&lt;br /&gt;
===Main font===&lt;br /&gt;
GRASS GIS name, capitalized. Composed in [http://www.exljbris.com/fontin.html Fontin] regular, with a slightly negative approach. This font is designed by Jos Buivenga, and is [http://www.exljbris.com/eula.html free].&lt;br /&gt;
''Comment by ML: this seems to be free as in free beer, but not as in free speech (no distribution allowed. For an OSGeo project such as GRASS, I would prefer a really free font.''&lt;br /&gt;
&lt;br /&gt;
Yes, I agree. Not that easy to find a fully developed font family (lots of ugly things in fact...). Let's have a look at [https://en.wikipedia.org/wiki/Fira_Sans this project]. It makes sense to confront a modern sans serif typeface, preferably light, to a very classical Garamond. See below tests number 5 and 6. Changing GRASS GIS to lowercase was done on purpose, my opinion is GRASS initials usage turned the word into an acronym, which does not need to be capitalized.&lt;br /&gt;
&lt;br /&gt;
The Fira Sans is a nice clean font. GRASS IS an acronym of course (geographic resource analysis support system), but the lower case is fine after all these years and indeed looks good.&lt;br /&gt;
&lt;br /&gt;
===Secondary font===&lt;br /&gt;
This typeface is used to display additional text, such as a ''motto'' or tagline. It is composed in [http://www.georgduffner.at/ebgaramond/index.html EB Garamond], a font designed by Georg Duffner, inspired by the famous historical typeface drawn hundreds of years ago by Claude Garamond. It is freely available, under the terms of the SIL Open Fonts License (ofl).&lt;br /&gt;
&lt;br /&gt;
= Applications =&lt;br /&gt;
== GRASS GIS Splash screen==&lt;br /&gt;
=== Objective ===&lt;br /&gt;
Please refer to [http://lists.osgeo.org/pipermail/grass-dev/2015-January/073157.html this thread]&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
Here are several tests, feel free to add yours of course.&lt;br /&gt;
&lt;br /&gt;
[[File:GRASSGIS_splash1.jpg|350px|thumbnail|center|GRASS GIS splash screen with minimalist color logo+text]]&lt;br /&gt;
[[File:GRASSGIS_splash2.jpg|350px|thumbnail|center|GRASS GIS splash screen with white logo+tagline, metaphoric background image (to be refined)]]&lt;br /&gt;
[[File:GRASSGIS_splash3.jpg|350px|thumbnail|center|GRASS GIS splash screen with white logo+tagline, variation in the layout, personal background image (for the record)]]&lt;br /&gt;
[[File:GRASSGIS_splash4.jpg|350px|thumbnail|center|GRASS GIS splash screen with white logo+tagline, grassy world map background image (made from scratch in Blender)]]&lt;br /&gt;
[[File:GRASSGIS_splash5.jpg|350px|thumbnail|center|GRASS GIS splash screen with white logo+tagline, another attempt with Fira Sans as titling font]]&lt;br /&gt;
[[File:GRASSGIS_splash6.jpg|350px|thumbnail|center|GRASS GIS splash screen with color logo+tagline, Fira Sans titling in a more sobre composition]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GRASS GIS Welcome banner==&lt;br /&gt;
&lt;br /&gt;
The welcome banner is the image displayed on top of the Welcome frame that pops up when launching GRASS. This image, if present, should be coherent with the graphic design.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
[[File:GRASSGIS_welcome_banner1.jpg|300px|thumbnail|center|GRASS GIS simple welcome banner]]&lt;br /&gt;
[[File:GRASSGIS_welcome_banner2.jpg|300px|thumbnail|center|GRASS GIS simple welcome banner with transparency (fails on dark bg desktop themes)]]&lt;br /&gt;
[[File:GRASSGIS_welcome_banner3.jpg|300px|thumbnail|center|GRASS GIS simple welcome banner, small logo, bigger text, works on every background tone]]&lt;br /&gt;
&lt;br /&gt;
== What next ?==&lt;br /&gt;
add your suggestions...&lt;br /&gt;
&lt;br /&gt;
[[Category: Development‏‎]]&lt;br /&gt;
[[Category: Branding]]&lt;br /&gt;
[[Category: Promotion]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=LIDAR&amp;diff=17954</id>
		<title>LIDAR</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=LIDAR&amp;diff=17954"/>
		<updated>2013-02-24T22:55:09Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Analysis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; LIDAR and Multi-beam Swath bathymetry data &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Point cloud data, as a type of representation of 3D surfaces, are usually produced by airborne or on-ground laser scanning, also known as Light Detection and Ranging (LiDAR). The data are often provided as sets of very dense (x, y, z) points or in a more complex, public file binary format called LAS that may include multiple returns as well as intensities. GRASS GIS supports basic and advanced lidar data processing and analysis.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
In this section various modules are introduced.&lt;br /&gt;
&lt;br /&gt;
=== Import ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.in.xyz}} - Create a raster map from an assemblage of many coordinates using univariate statistics. ([http://hamish.bowman.googlepages.com/grassfiles#xyz example])&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.in.lidar}} - (GRASS 7 only; GRASS must be compiled with libLAS support) Create a raster map from a binary LAS format LiDAR file (*.las) using univariate statistics and filtering. r.in.lidar is based on r.in.xyz. In addition to the options of r.in.xyz, r.in.lidar provides some basic lidar point fileter options.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.in.ascii}} - Import data from an ASCII file to GRASS vector format.&lt;br /&gt;
: ''Due to memory overhead vector point imports will be limited to a few million data points unless topology and database creation is skipped with the '''-bt''' flags''. It may also be useful to clip the import file to only accept points falling within the current region by using the '''-r''' flag. See {{cmd|g.region}} for details on specifying the region bounds.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.in.lidar}} - (GRASS 7 only; GRASS must be compiled with libLAS support). Creates a vector points file from a binary LAS format LiDAR file (*.las or *.laz). r.in.lidar also can create a new location based on the LAS file, and can filter the input points by return and subregion.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.outlier}} - Removes outliers from vector point data.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.edgedetection}} - Uses interpolation and edge detection to create a new vector points file of LiDAR data so that the resulting attribute table is reclassified with CAT=1 for points associated with the ground surface (i.e., terrain) and useful for interpolating a raster terrain (DEM) map, CAT=2 for points pertaining to edges of human-contructed objects, and CAT=3 for other points that could pertain to vegetation or other features.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.growing}} - Building contour determination and region growing algorithm for determining the building inside.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.correction}} - Correction of the v.lidar.growing output. It is the last of the three algorithms for LIDAR filtering.&lt;br /&gt;
&lt;br /&gt;
''References:''&lt;br /&gt;
&lt;br /&gt;
* Detailed description: [http://www.foss4g2006.org/getFile.py/access?contribId=48&amp;amp;sessionId=59&amp;amp;resId=7&amp;amp;materialId=slides&amp;amp;confId=1 here] (FOSS4G 2006)&lt;br /&gt;
* Summarised version: [http://geomatica.como.polimi.it/corsi/remote_sensing/LiDAR_filtering_with_GRASS-lab4.pdf here] (2010)&lt;br /&gt;
* Calibration of the filtering parameters (around 20 parameters) by integrating the USGS UCODE and GRASS, see [http://www.isprs.org/proceedings/XXXVIII/1_4_7-W5/paper/Brovelli-126.pdf here]&lt;br /&gt;
&lt;br /&gt;
=== Surface generation ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.rst}} - Spatial approximation and topographic analysis using regularized spline with tension.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.idw}} - Surface interpolation from vector point data by Inverse Distance Squared Weighting.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.bspline}} - Surface interpolation from vector point data by bicubic or bilineal interpolation with Tykhonov regularization.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.fillnulls}} - Fills no-data areas in raster maps using v.surf.rst splines interpolation.&lt;br /&gt;
&lt;br /&gt;
* {{AddonCmd|r.surf.nnbathy}} - Natural Neighbor interpolation using the 'nn' addon.&lt;br /&gt;
&lt;br /&gt;
== Swath Bathymetry Tools ==&lt;br /&gt;
&lt;br /&gt;
''see also the [[Marine_Science#Multibeam_sonar_processing]] wiki page''&lt;br /&gt;
&lt;br /&gt;
* The [http://david.p.finlayson.googlepages.com/swathwidth v.swathwidth] module by David Finlayson for planning surveys. (development page)&lt;br /&gt;
&lt;br /&gt;
* An example of [http://bambi.otago.ac.nz/hamish/grass/gdal/sidescan_warp.html post-processing scanned paper sidescan swaths] using thin plate spline warping with [http://www.gdal.org/ GDAL's] &amp;quot;&amp;lt;tt&amp;gt;gdalwarp -tps&amp;lt;/tt&amp;gt;&amp;quot; function. (debugging page)&lt;br /&gt;
&lt;br /&gt;
* [[MB-System|GRASS integration]] with [http://www.ldeo.columbia.edu/res/pi/MB-System/ MB-System] (GPL) software for processing Multibeam and Sidescan Sonar data. GRASS + [[MB-System|MBsys]] + [[GMT]] make a nice scriptable trio.&lt;br /&gt;
&lt;br /&gt;
== LIDAR Tools ==&lt;br /&gt;
&lt;br /&gt;
*  {{cmd|r.terraflow}} - computation of flow direction, flow accumulation and other basic topographic terrain indices from massive raster digital elevation models (DEM). From the Duke University [http://terrain.cs.duke.edu/ STREAM] project.&lt;br /&gt;
&lt;br /&gt;
* [http://mpa.itc.it/markus/grass61/demos/rlake/ Flood simulation] using {{cmd|r.lake}}. Includes fancy [[NVIZ]] visualization of Trento, Italy, by Markus Neteler.&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.unc.edu/~isenburg/software/ LAStools] are a set of simple command line tools for converting to/from ASCII, viewing, comparing, and compressing LIDAR data. ''While free to use source code is available for older verions, newer versions are not open source, only work on MS Windows, and are no longer free for commercial or government use.''&lt;br /&gt;
&lt;br /&gt;
* [http://www.liblas.org libLAS] ASPRS LiDAR data translation tools&lt;br /&gt;
&lt;br /&gt;
* See also [[LIDAR#Analysis|LIDAR Analysis]]&lt;br /&gt;
&lt;br /&gt;
== Micro-tutorial for LAS data import ==&lt;br /&gt;
&lt;br /&gt;
''The following scripts are given for UNIX Bourne Shell; MS-Windows users should use the Msys terminal to use them.''&lt;br /&gt;
&lt;br /&gt;
=== Preparation ===&lt;br /&gt;
&lt;br /&gt;
==== Conversion of text files to LAS ====&lt;br /&gt;
&lt;br /&gt;
[http://www.liblas.org/ libLAS] supports the following column types:&lt;br /&gt;
   x - x coordinate&lt;br /&gt;
   y - y coordinate&lt;br /&gt;
   z - z coordinate&lt;br /&gt;
   a - scan angle&lt;br /&gt;
   i - intensity&lt;br /&gt;
   n - number of returns for given pulse (1..n)&lt;br /&gt;
   r - number of this return (1..r)&lt;br /&gt;
   c - classification&lt;br /&gt;
   u - user data (but only 1 byte)&lt;br /&gt;
   p - point source ID&lt;br /&gt;
   e - edge of flight line&lt;br /&gt;
   d - direction of scan flag&lt;br /&gt;
   t - GPS time&lt;br /&gt;
   s - skip column&lt;br /&gt;
&lt;br /&gt;
Sample text data such as:&lt;br /&gt;
   returntime,pulse,east,north,height,intensity,stripe&lt;br /&gt;
   549778.907200,1,673999.940,5099680.080,507.425,20.0,45105&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
can be converted to LAS format like this:&lt;br /&gt;
   returntime - t&lt;br /&gt;
   pulse - r&lt;br /&gt;
   east - x&lt;br /&gt;
   north - y&lt;br /&gt;
   height - z&lt;br /&gt;
   intensity - i&lt;br /&gt;
   stripe - s&lt;br /&gt;
&lt;br /&gt;
First parse (sanity check):&lt;br /&gt;
   txt2las -parse trxyzis data.asc&lt;br /&gt;
&lt;br /&gt;
Then convert:&lt;br /&gt;
   txt2las -parse trxyzis -i data.asc -o data.las &lt;br /&gt;
&lt;br /&gt;
While you may not need to do this conversion for GRASS import, the resulting files are way smaller than the uncompressed text files; additionally, they are in a defined format.&lt;br /&gt;
&lt;br /&gt;
=== LAS Import ===&lt;br /&gt;
&lt;br /&gt;
* Use the [http://www.liblas.org libLAS] utilities to import LAS data into GRASS. &lt;br /&gt;
* Data stored in text files can generally be imported directly into GRASS.&lt;br /&gt;
&lt;br /&gt;
* The data used in the rest of this micro-tutorial can be found at [http://www.appliedimagery.com/downloads/sampledata/Serpent%20Mound%20Model%20LAS%20Data.las appliedimagery.com].&lt;br /&gt;
&lt;br /&gt;
==== Import LAS as raster DEM ====&lt;br /&gt;
&lt;br /&gt;
Check bounds and SRS:&lt;br /&gt;
 $ lasinfo &amp;quot;Serpent_Mound_Model_LAS_Data.las&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
  [...]&lt;br /&gt;
  Min X Y Z                  289020.900000 4320942.610000 166.780000&lt;br /&gt;
  Max X Y Z                  290106.020000 4323641.570000 215.480000&lt;br /&gt;
 Spatial Reference           +proj=utm +zone=17 +ellps=WGS84 +units=m &lt;br /&gt;
&lt;br /&gt;
After creating a suitable UTM zone 17 location (EPSG:32617) &lt;br /&gt;
set the region according to the information from lasinfo at 1m resolution, rounding grid outwards to align to whole meters:&lt;br /&gt;
 GRASS&amp;gt; {{cmd|g.region}} n=4323641.57 s=4320942.61 w=289020.90 e=290106.02 res=1 -ap&lt;br /&gt;
&lt;br /&gt;
Finally, import with {{cmd|r.in.xyz}} with data piped directly from the &amp;lt;tt&amp;gt;las2txt&amp;lt;/tt&amp;gt; program and set a nice equalized color table:&lt;br /&gt;
 BASEMAP=&amp;quot;Serpent_Mound_Model_LAS&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 las2txt --stdout --delimiter ' ' &amp;quot;${BASEMAP}_Data.las&amp;quot; | \&lt;br /&gt;
    r.in.xyz in=- out=${BASEMAP}_Data fs=space method=mean&lt;br /&gt;
 &lt;br /&gt;
 {{cmd|r.colors}} ${BASEMAP}_Data color=bcyr -e&lt;br /&gt;
&lt;br /&gt;
The above example uses the default z-elevation level as the 3rd term, but by using the &amp;lt;tt&amp;gt;las2txt --parse&amp;lt;/tt&amp;gt; command other fields (such as intensity) can be imported instead via &amp;quot;&amp;lt;tt&amp;gt;--parse xyi&amp;lt;/tt&amp;gt;&amp;quot;. Unfortunately there seem to be a number of versions of las2txt and each are called slightly differently. You might have to experiment a little to get the right incantation.&lt;br /&gt;
&lt;br /&gt;
==== Import LAS as vector points in GRASS 6 ====&lt;br /&gt;
&lt;br /&gt;
Region setting (establishing the grid) is not needed for vector features so we can go directly to the import step. To deal with millions of input points {{cmd|v.in.ascii}} should be run with the options to skip creation of an attribute database and building topology as these can consume large amounts of memory. Note that vector maps without topology built are somewhat limited in their ability to be processed. Most LIDAR specific modules have been adapted to not require &lt;br /&gt;
topology. Even so, after initial cleaning steps it is often more efficient to work with huge datasets in GRASS as raster data.&lt;br /&gt;
&lt;br /&gt;
 las2txt --stdout &amp;quot;${BASEMAP}_Data.las&amp;quot; | \&lt;br /&gt;
   v.in.ascii -tbz z=3 out=&amp;quot;${BASEMAP}_pts&amp;quot; fs=space&lt;br /&gt;
&lt;br /&gt;
If topology was built, you can use {{cmd|d.vect}}'s -z flag to colorize by elevation value. Without topology you can still colorize, but you need to use color rules based on absolute elevations, not percentage of scale.&lt;br /&gt;
&amp;lt;!-- need an absolute color map gradiated across the elev range --&amp;gt;&lt;br /&gt;
 # display colorized points for data with built topology&lt;br /&gt;
 d.vect map=lidar_pts size=1 -z zcolor=elevation&lt;br /&gt;
&lt;br /&gt;
* After import as points you can then use the v.lidar tools to clean the data: {{cmd|v.lidar.correction}}, {{cmd|v.lidar.edgedetection}}, {{cmd|v.lidar.growing}}, and {{cmd|v.outlier}}.&lt;br /&gt;
&lt;br /&gt;
* Vector points can be interpolated into raster DEMs with a number of modules, including {{cmd|v.surf.rst}}, {{cmd|v.surf.bspline}}, and {{cmd|v.surf.idw}}.&lt;br /&gt;
&lt;br /&gt;
==== Import LAS in GRASS 7 ====&lt;br /&gt;
&lt;br /&gt;
As vector points&lt;br /&gt;
* GRASS 7 offers the {{cmd|v.in.lidar|version=70}} command&lt;br /&gt;
&lt;br /&gt;
As raster: map:&lt;br /&gt;
* {{cmd|r.in.lidar|version=70}} command&lt;br /&gt;
&lt;br /&gt;
=== Clean imported raster DEM ===&lt;br /&gt;
&lt;br /&gt;
(fill holes)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # convert to vector points&lt;br /&gt;
 r.to.vect -z feature=point in=${BASEMAP}_Data out=${BASEMAP}_pt&lt;br /&gt;
 &lt;br /&gt;
 # interpolate using a regularized spline fit&lt;br /&gt;
 # this is very slow, but produces very high quality output&lt;br /&gt;
 v.surf.rst layer=0 in=${BASEMAP}_pt elev=${BASEMAP}.rst&lt;br /&gt;
 &lt;br /&gt;
 # create 5m buffer area around original data points&lt;br /&gt;
 r.buffer in=${BASEMAP}_Data out=${BASEMAP}.5m_buff dist=5&lt;br /&gt;
 &lt;br /&gt;
 # crop interpolated DEM to only include areas nearby actual data&lt;br /&gt;
 r.mapcalc &amp;quot;${BASEMAP}.filled = \&lt;br /&gt;
    if( isnull(${BASEMAP}.5m_buff), null(), ${BASEMAP}.rst)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # set colors to something nice&lt;br /&gt;
 r.colors ${BASEMAP}.filled color=bcyr -e&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your needs, {{cmd|r.fillnulls}}, {{cmd|v.surf.bspline}}, {{cmd|v.surf.idw}}, {{cmd|r.surf.idw}}, {{cmd|r.surf.idw2}}, or [[GRASS_AddOns#r.surf.nnbathy|r.surf.nnbathy]] may be faster than the {{cmd|v.surf.rst}} method.&lt;br /&gt;
&lt;br /&gt;
=== Visualize raster DEM in 3D ===&lt;br /&gt;
&lt;br /&gt;
 nviz ${BASEMAP}.filled&lt;br /&gt;
&lt;br /&gt;
* Set z-exag to 2.0&lt;br /&gt;
* In Visualize &amp;amp;rarr; Raster Surfaces set the fine (final) resolution to 1, and coarse (preview) resolution to 5.&lt;br /&gt;
* Set the height to 500.0, the perspective to 15.0, and drag the view-puck to the North-West and reasonably zoomed in.&lt;br /&gt;
: You should now be able to see the serpent:&lt;br /&gt;
&lt;br /&gt;
[[Image:LAS_serpent_nviz.jpg|thumb|center|400px|The Great Serpent Mound, Adams County, Ohio, USA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to show vector points in 3D, but millions of them may make the program run slow. Topology is required ({{cmd|v.build}}). Tick the &amp;quot;3D&amp;quot; box in the Visualize &amp;amp;rarr; Vector points dialog.&lt;br /&gt;
&lt;br /&gt;
=== LAS Export ===&lt;br /&gt;
&lt;br /&gt;
==== Export to LAS ====&lt;br /&gt;
&lt;br /&gt;
This is the reverse of the import step, but using {{cmd|v.out.ascii}} or {{cmd|r.out.xyz}} with ''txt2las''.&lt;br /&gt;
Because the v.out.ascii module exports category number which we are not interested in, we cut it away with the UNIX ''cut'' utility.&lt;br /&gt;
&lt;br /&gt;
 v.out.ascii ${BASEMAP}_pts fs=space | cut -f1-3 -d' ' \&lt;br /&gt;
     &amp;gt; ${BASEMAP}_export.txt&lt;br /&gt;
 &lt;br /&gt;
 txt2las --parse xyz -i ${BASEMAP}_export.txt&lt;br /&gt;
&lt;br /&gt;
== Micro-tutorial for LIDAR data analysis ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple analysis of single return data ===&lt;br /&gt;
&lt;br /&gt;
Data source: North Carolina sample data set (Lidar data from 2001, near Raleigh, North Carolina). Download from&lt;br /&gt;
   http://www.grassbook.org/ncexternal/&lt;br /&gt;
   -&amp;gt; File: BE3720079200WC20020829m.txt 3.6M (lidar bare earth points [spm])&lt;br /&gt;
&lt;br /&gt;
Scan input file for spatial extent. The -g flag shows the result in a convenient copy-paste format for {{cmd|g.region}}:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=dummy -s -g&lt;br /&gt;
&lt;br /&gt;
We use this output to set region, predefine 2m raster cells, and polish the odd coordinates with -a:&lt;br /&gt;
   g.region n=222504.439000 s=219456.442000 e=640081.274000 w=637033.274000 res=2 -a -p&lt;br /&gt;
&lt;br /&gt;
==== QUESTION 1: Are these Lidar data sufficiently dense? ====&lt;br /&gt;
&lt;br /&gt;
We compute a raster map representing number of points per cell&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binn2m method=n&lt;br /&gt;
&lt;br /&gt;
Look at the resulting raster map:&lt;br /&gt;
   d.mon x0&lt;br /&gt;
   d.font Vera&lt;br /&gt;
   d.rast.leg lid_792_binn2m&lt;br /&gt;
&lt;br /&gt;
Report point distribution in percent:&lt;br /&gt;
   r.report lid_792_binn2m unit=p&lt;br /&gt;
   r.univar lid_792_binn2m&lt;br /&gt;
   # (sometimes do `r.null setnull=0` first)&lt;br /&gt;
&lt;br /&gt;
Reduce the resolution to 6m to get at least one point per cell:&lt;br /&gt;
   g.region res=6 -a -p&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binn6m method=n&lt;br /&gt;
   d.rast.leg lid_792_binn6m&lt;br /&gt;
   # ... a few holes remain but that's probably acceptable.&lt;br /&gt;
&lt;br /&gt;
Compute raster maps representing mean elevation for each cell:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binmean6m  \&lt;br /&gt;
            meth=mean&lt;br /&gt;
   d.rast.leg lid_792_binmean6m&lt;br /&gt;
&lt;br /&gt;
Compute range and variation:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binrange6m \&lt;br /&gt;
            meth=range&lt;br /&gt;
   d.rast.leg lid_792_binrange6m&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binvar6m   \&lt;br /&gt;
            meth=coeff_var&lt;br /&gt;
   d.rast.leg lid_792_binvar6m&lt;br /&gt;
&lt;br /&gt;
Overlay other GIS maps to map of mean elevation:&lt;br /&gt;
   d.rast.leg lid_792_binmean6m&lt;br /&gt;
   d.vect streets_wake&lt;br /&gt;
   d.vect lakes type=boundary&lt;br /&gt;
   d.vect streams&lt;br /&gt;
&lt;br /&gt;
Now we continue to work in a zoomed spatial subset of the area.&lt;br /&gt;
&lt;br /&gt;
We import only points in the rural area without building topology and using z-coordinate for elevation:&lt;br /&gt;
   g.region rural_1m -p&lt;br /&gt;
   v.in.ascii -ztbr BE3720079200WC20020829m.txt \&lt;br /&gt;
              out=elev_lidrural_bepts z=3&lt;br /&gt;
&lt;br /&gt;
Clear monitor show black-white orthophoto:&lt;br /&gt;
   d.erase -f&lt;br /&gt;
   d.rast ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
We now use already prepared Lidar vector point maps:&lt;br /&gt;
* elev_lid792_bepts:   Rural area (in tile 792), bare earth lidar point cloud&lt;br /&gt;
* elev_lidrural_mrpts: Rural area multiple return lidar point cloud&lt;br /&gt;
&lt;br /&gt;
Look at ground data:&lt;br /&gt;
d.vect elev_lidrural_bepts siz=2 col=red&lt;br /&gt;
&lt;br /&gt;
Look at &amp;quot;surface&amp;quot; data:&lt;br /&gt;
d.vect elev_lidrural_mrpts siz=1 col=green&lt;br /&gt;
&lt;br /&gt;
Visualize 3D Lidar multi-return points:&lt;br /&gt;
nviz elev_lid792_1m point=elev_lidrural_mrpts&lt;br /&gt;
 # Visualize -&amp;gt; Vector Points -&amp;gt; 3D points&lt;br /&gt;
 #                            -&amp;gt; Icon size 2.25&lt;br /&gt;
 #  --&amp;gt; GRASS book p. 253, fig. 3.15 (see also screenshot [http://www.grassbook.org/about_menu3rd.php here])&lt;br /&gt;
&lt;br /&gt;
==== DEM/DSM separation the simple way by selection of Lidar returns ====&lt;br /&gt;
&lt;br /&gt;
Find out where we have multiple returns:&lt;br /&gt;
   d.rast ortho_2001_t792_1m&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=1&amp;quot; col=red siz=2&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=2&amp;quot; col=green siz=3&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=3&amp;quot; col=blue&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=4&amp;quot; col=yellow&lt;br /&gt;
&lt;br /&gt;
DTM: extract last return(s):&lt;br /&gt;
   v.extract elev_lidrural_mrpts out=elev_lidrural_mrpts_first where=&amp;quot;Return &amp;lt; 2&amp;quot;&lt;br /&gt;
   nviz elev_lid792_1m point=elev_lidrural_mrpts_first&lt;br /&gt;
&lt;br /&gt;
Interpolate to map and look at it:&lt;br /&gt;
   v.surf.rst elev_lidrural_mrpts_first layer=0 elev=elev_lidrural_mrpts_DTM&lt;br /&gt;
   nviz elev_lidrural_mrpts_DTM col=ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
DSM: extract first return(s):&lt;br /&gt;
   v.extract elev_lidrural_mrpts out=elev_lidrural_mrpts_last where=&amp;quot;Return &amp;gt; 2&amp;quot;&lt;br /&gt;
   nviz elev_lid792_1m point=elev_lidrural_mrpts_last&lt;br /&gt;
&lt;br /&gt;
Interpolate to map and look at it:&lt;br /&gt;
   v.surf.rst elev_lidrural_mrpts_first layer=0 elev=elev_lidrural_mrpts_DSM&lt;br /&gt;
   nviz elev_lidrural_mrpts_DSM col=ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== DEM/DSM separation the more complex way ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;''TODO: verify order of first and last returns in below text''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
General procedure:&lt;br /&gt;
* Lidar point clouds (first and last return) are imported with {{cmd|v.in.ascii}} (-b flag to not build the topology).&lt;br /&gt;
* Outlier detection is done with {{cmd|v.outlier}} on both first and last return data (NB currently a selection of &amp;lt;/=4 for soe/son in {{cmd|v.outlier}} results in an error message).&lt;br /&gt;
* Then, with {{cmd|v.lidar.edgedetection}}, edges are detected from last return data.&lt;br /&gt;
* The building are generated by {{cmd|v.lidar.growing}} from detected edges.&lt;br /&gt;
* The resulting data are post-processed with {{cmd|v.lidar.correction}}.&lt;br /&gt;
* Finally, the DTM and DSM are generated with {{cmd|v.surf.bspline}} (DTM: uses the 'v.lidar.correction' output; DSM: uses last return output from outlier detection).&lt;br /&gt;
* NB for {{cmd|v.outlier}}, {{cmd|v.lidar.edgedetection}} and {{cmd|v.surf.bspline}}, one spline steps equates to 1m. It is recommended as a starting point that the choice of spline step is roughly 3 or 4 times the planimetric resolution (potential grid resolution) of your data. Experiment from there to obtain better results.&lt;br /&gt;
&lt;br /&gt;
  export GRASS_OVERWRITE=1&lt;br /&gt;
  v.extract elev_lidrural_mrpts out=elev_lidfirst_pts \&lt;br /&gt;
            where=&amp;quot;return = 1&amp;quot;&lt;br /&gt;
  v.extract elev_lidrural_mrpts out=elev_lidlast_pts  \&lt;br /&gt;
            where=&amp;quot;return &amp;gt;= 2&amp;quot;&lt;br /&gt;
  d.vect elev_lidfirst_pts col=red&lt;br /&gt;
  d.vect elev_lidlast_pts col=green&lt;br /&gt;
&lt;br /&gt;
Outlier detection and separation into two maps&lt;br /&gt;
  # 1st return&lt;br /&gt;
  v.outlier elev_lidfirst_pts output=elev_lidfirst_clean \&lt;br /&gt;
            outlier=elev_lidfirst_outl&lt;br /&gt;
  d.erase&lt;br /&gt;
  d.vect elev_lidfirst_clean siz=2&lt;br /&gt;
  d.vect elev_lidfirst_outl col=red&lt;br /&gt;
&lt;br /&gt;
2nd return&lt;br /&gt;
  v.outlier elev_lidlast_pts output=elev_lidlast_clean \&lt;br /&gt;
            outlier=elev_lidlast_outl&lt;br /&gt;
  d.erase&lt;br /&gt;
  d.vect elev_lidlast_clean siz=2&lt;br /&gt;
  d.vect elev_lidlast_outl col=red&lt;br /&gt;
  # -&amp;gt; no outliers visible&lt;br /&gt;
&lt;br /&gt;
Run an edge detection on cleaned last return:&lt;br /&gt;
  v.lidar.edgedetection elev_lidlast_clean \&lt;br /&gt;
                        out=elev_lidlast_edges&lt;br /&gt;
&lt;br /&gt;
Buildings/vegetation are generated from detected edges (bug: you may need to specify the mapset):&lt;br /&gt;
  v.lidar.growing elev_lidlast_edges@lidar out=elev_lidlast_grow \&lt;br /&gt;
                  first=elev_lidfirst_clean&lt;br /&gt;
&lt;br /&gt;
Compare:&lt;br /&gt;
  d.vect elev_lidlast_pts col=blue&lt;br /&gt;
  d.vect elev_lidlast_grow col=green&lt;br /&gt;
&lt;br /&gt;
Correction (this is applied twice):&lt;br /&gt;
  v.lidar.correction elev_lidlast_grow out=elev_lidlast_corr1 \&lt;br /&gt;
                     terrain=elev_lidlast_terr1&lt;br /&gt;
  v.lidar.correction elev_lidlast_corr1 out=elev_lid_dsm \&lt;br /&gt;
                     terrain=elev_lid_dtm&lt;br /&gt;
&lt;br /&gt;
DEM and DSM are generated:&lt;br /&gt;
  # Estimation of lambda_i parameter with cross validation (watch for RMS!)&lt;br /&gt;
  # and note use of bicubic for DSM and bilinear for DTM here and below&lt;br /&gt;
  v.surf.bspline -c elev_lid_dsm sie=100 sin=100 method=bicubic&lt;br /&gt;
  v.surf.bspline -c elev_lid_dtm sie=100 sin=100 method=bilinear&lt;br /&gt;
  &lt;br /&gt;
  # From the cross-validation, we select lambda with minimal RMS error:&lt;br /&gt;
  # generate raster surfaces at 1m resolution &lt;br /&gt;
  v.surf.bspline elev_lid_dsm raster=lidar_dsm lambda=0.1 method=bicubic&lt;br /&gt;
  v.surf.bspline elev_lid_dtm raster=lidar_dtm lambda=0.0001 method=bilinear&lt;br /&gt;
  &lt;br /&gt;
  d.rast lidar_dsm&lt;br /&gt;
  d.rast lidar_dtm&lt;br /&gt;
  &lt;br /&gt;
  nviz lidar_dsm,lidar_dtm \&lt;br /&gt;
       col=ortho_2001_t792_1m,ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
...with the position slider you can visually separate DSM and DEM, increase z slider (Visualize -&amp;gt; Raster Surface -&amp;gt; Position).&lt;br /&gt;
&lt;br /&gt;
=== Reclassification ===&lt;br /&gt;
&lt;br /&gt;
As vector points&lt;br /&gt;
* {{cmd|v.reclass|version=70}} command&lt;br /&gt;
&lt;br /&gt;
As raster map:&lt;br /&gt;
* {{cmd|r.reclass|version=70}} command&lt;br /&gt;
&lt;br /&gt;
== Sample LIDAR data ==&lt;br /&gt;
&lt;br /&gt;
=== Widely used in GRASS tutorials ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.grassbook.org/data_menu2nd.php Jockey's Ridge, NC, LIDAR dataset]&lt;br /&gt;
* [http://www.grassbook.org/data_menu3rd.php North Carolina OSGeo Edu data set] (includes multi-return LIDAR data)&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
* United States Antarctic Resource Center: LIDAR High-resolution DEM Final DATA Downloads&amp;lt;BR&amp;gt;http://usarc.usgs.gov/lidar_dload.shtml&lt;br /&gt;
&lt;br /&gt;
* LIDAR ALSM Research, Arizona State University Ative Tectonics, Research Group&amp;lt;BR&amp;gt;  http://lidar.asu.edu/research.html and http://www.geongrid.org/science/lidar.html&lt;br /&gt;
&lt;br /&gt;
* USGS Center for LIDAR Information Coordination and Knowledge (aka CLICK) - USGS LiDAR point cloud distribution site&amp;lt;BR&amp;gt; http://lidar.cr.usgs.gov&lt;br /&gt;
&lt;br /&gt;
* Washington State Geospatial Data Archive, Mount Saint Helens - Lidar Data &amp;lt;BR&amp;gt;https://wagda.lib.washington.edu/data/type/elevation/lidar/st_helens/&lt;br /&gt;
&lt;br /&gt;
* Puget Sound Lidar Consortium, public-domain high-resolution topography for western Washington&amp;lt;BR&amp;gt;http://pugetsoundlidar.ess.washington.edu/index.htm&lt;br /&gt;
&lt;br /&gt;
* NOAA Topographic Change Mapping LIDAR Data Retrieval Tool (LDART) NOAA Coastal Services Center&amp;lt;BR&amp;gt;http://maps.csc.noaa.gov/TCM/&lt;br /&gt;
&lt;br /&gt;
* Landmap, LIDAR Data from the Environment Agency &amp;lt;BR&amp;gt;http://www.landmap.ac.uk/lidar/lidar.html&lt;br /&gt;
&lt;br /&gt;
* Northern California LIDAR data &amp;lt;BR&amp;gt;http://quake.usgs.gov/research/geology/lidar/  and http://core2.gsfc.nasa.gov/lidar/terrapoint/&lt;br /&gt;
&lt;br /&gt;
* IDAHO GEOSPATIAL , Bare Earth LIDAR DEM Download - UTM &amp;lt;BR&amp;gt;http://inside.uidaho.edu/geodata/LiDAR/LiDARBareEarthDEM_DownloadUTM.htm&lt;br /&gt;
&lt;br /&gt;
* EarthScope Spatial Data Explorer - A java application for querying, browsing, and acquiring data from the EarthScope Spatial Data Repository. Currently includes a number of LiDAR datasets. &amp;lt;BR&amp;gt;http://www.earthscope.org/data/lidar.php&lt;br /&gt;
&lt;br /&gt;
* LIDAR Galley &amp;lt;BR&amp;gt;https://peoiewswebinfo.monmouth.army.mil/JPSD/LIDAR_Gallery.htm&lt;br /&gt;
&lt;br /&gt;
* South Tyrol - Download of DTMs (Homepage in German or Italian) &amp;lt;BR&amp;gt; http://www.provinz.bz.it/raumordnung/grundkarten/utm/default_d.htm&lt;br /&gt;
&lt;br /&gt;
* libLAS's sample file collection&lt;br /&gt;
:http://liblas.org/samples/&lt;br /&gt;
&lt;br /&gt;
* NASA's Laser Vegetation Imaging Sensor (a.k.a. the Land, Vegetation, and Ice Sensor) or &amp;quot;LVIS&amp;quot;&lt;br /&gt;
:https://lvis.gsfc.nasa.gov&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[Contour lines to DEM]] interpolation module trials&lt;br /&gt;
* [http://liblas.org/ libLAS] - LAS 1.0/1.1 ASPRS LiDAR data translation toolset&lt;br /&gt;
* [http://code.google.com/p/fullanalyze/ Fullanalyze] software based on MATIS&lt;br /&gt;
&lt;br /&gt;
;Breaklines&lt;br /&gt;
* Not very well developed in GRASS so far, but we'd like to change that&lt;br /&gt;
* {{AddonCmd|v.surf.icw}} (only suitable for ~ 200 input points)&lt;br /&gt;
* [http://surfit.sourceforge.net/ SurfIt] (GPL, Tck/Tk)&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://surgeweb.sweb.cz/surgemain.htm SurGe] (Trial/shareware) &amp;lt;/strike&amp;gt;&lt;br /&gt;
* [http://grasswiki.osgeo.org/wiki/TIN_with_breaklines v.triangle] add-on module for construction TIN with breaklines.&lt;br /&gt;
&lt;br /&gt;
== Related publications ==&lt;br /&gt;
&lt;br /&gt;
* Brovelli, M.A., Lucca, S., 2011. Filtering LiDAR with GRASS: overview of the method and comparisons with Terrascan. Italian Journal of Remote Sensing 93-105. ([http://www.aitjournal.com/articleView.aspx?ID=209 PDF])&lt;br /&gt;
* Brovelli, M.A., Cannata, M. &amp;amp; Longoni, U.M., 2004. LIDAR data filtering and DTM interpolation within GRASS. Transactions in GIS, 8(2), pp.155-174. [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9671.2004.00173.x/pdf PDF]&lt;br /&gt;
* Cebecauer, T., Hofierka, J. &amp;amp; Suri, M., 2002. Processing digital terrain models by regularized spline with tension: tuning interpolation parameters for different input datasets. In Proc. of the Open Source Free Software GIS -- GRASS users conference 2002, Trento, Italy, 11-13 September 2002. [http://www.ing.unitn.it/~grass/proceedings/proceedings/pdfs/Cebecauer_Tomas.pdf PDF]&lt;br /&gt;
* Mitasova, Helena et al., 2009. Raster-based analysis of coastal terrain dynamics from multitemporal Lidar data. Journal of Coastal Research, 25(2), pp.507-514.&lt;br /&gt;
* Mitasova, H, Mitas, L. &amp;amp; Harmon, R., 2005. Simultaneous spline approximation and topographic analysis for lidar elevation data in open-source GIS. Geoscience and Remote Sensing Letters, IEEE, 2(4), pp.379, 375. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.2934&amp;amp;rep=rep1&amp;amp;type=pdf PDF]&lt;br /&gt;
* Mitasova, H. et al., 2003. Spatio-temporal analysis of beach morphology using LIDAR, RTK-GPS and Open source GRASS GIS. In Proceedings Coastal Sediments. [http://skagit.meas.ncsu.edu/%7Ehelena/publwork/papers/pcoastsedp10.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
Search via [http://scholar.google.com/scholar?q=lidar+grass+gis Google Scholar]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://knol.google.com/k/aerial-extraction-of-roof-surfaces-for-solar-analysis Aerial Extraction of Roof Surfaces for Solar Analysis]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category: Interpolation]]&lt;br /&gt;
[[Category: Image processing]]&lt;br /&gt;
[[Category: Import]]&lt;br /&gt;
[[Category: Raster]]&lt;br /&gt;
[[Category: Vector]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=LIDAR&amp;diff=17953</id>
		<title>LIDAR</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=LIDAR&amp;diff=17953"/>
		<updated>2013-02-24T22:43:57Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Import */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; LIDAR and Multi-beam Swath bathymetry data &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Point cloud data, as a type of representation of 3D surfaces, are usually produced by airborne or on-ground laser scanning, also known as Light Detection and Ranging (LiDAR). The data are often provided as sets of very dense (x, y, z) points or in a more complex, public file binary format called LAS that may include multiple returns as well as intensities. GRASS GIS supports basic and advanced lidar data processing and analysis.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
In this section various modules are introduced.&lt;br /&gt;
&lt;br /&gt;
=== Import ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.in.xyz}} - Create a raster map from an assemblage of many coordinates using univariate statistics. ([http://hamish.bowman.googlepages.com/grassfiles#xyz example])&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.in.lidar}} - (GRASS 7 only; GRASS must be compiled with libLAS support) Create a raster map from a binary LAS format LiDAR file (*.las) using univariate statistics and filtering. r.in.lidar is based on r.in.xyz. In addition to the options of r.in.xyz, r.in.lidar provides some basic lidar point fileter options.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.in.ascii}} - Import data from an ASCII file to GRASS vector format.&lt;br /&gt;
: ''Due to memory overhead vector point imports will be limited to a few million data points unless topology and database creation is skipped with the '''-bt''' flags''. It may also be useful to clip the import file to only accept points falling within the current region by using the '''-r''' flag. See {{cmd|g.region}} for details on specifying the region bounds.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.in.lidar}} - (GRASS 7 only; GRASS must be compiled with libLAS support). Creates a vector points file from a binary LAS format LiDAR file (*.las or *.laz). r.in.lidar also can create a new location based on the LAS file, and can filter the input points by return and subregion.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.outlier}} - Removes outliers from vector point data.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.edgedetection}} - Uses interpolation and edge detection to separate a vector points file of LiDAR data into 1) a vector file of points associated with the ground surface and useful for interpolating a raster terrain (DEM) map, 2) a vector file of points pertaining to human-contructed objects, and 3) a vector file of other points that could pertain to vegetation or other features.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.growing}} - Building contour determination and Region Growing algorithm for determining the building inside.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.correction}} - Correction of the v.lidar.growing output. It is the last of the three algorithms for LIDAR filtering.&lt;br /&gt;
&lt;br /&gt;
''References:''&lt;br /&gt;
&lt;br /&gt;
* Detailed description: [http://www.foss4g2006.org/getFile.py/access?contribId=48&amp;amp;sessionId=59&amp;amp;resId=7&amp;amp;materialId=slides&amp;amp;confId=1 here] (FOSS4G 2006)&lt;br /&gt;
* Summarised version: [http://geomatica.como.polimi.it/corsi/remote_sensing/LiDAR_filtering_with_GRASS-lab4.pdf here] (2010)&lt;br /&gt;
* Calibration of the filtering parameters (around 20 parameters) by integrating the USGS UCODE and GRASS, see [http://www.isprs.org/proceedings/XXXVIII/1_4_7-W5/paper/Brovelli-126.pdf here]&lt;br /&gt;
&lt;br /&gt;
=== Surface generation ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.rst}} - Spatial approximation and topographic analysis using regularized spline with tension.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.idw}} - Surface interpolation from vector point data by Inverse Distance Squared Weighting.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.bspline}} - Surface interpolation from vector point data by bicubic or bilineal interpolation with Tykhonov regularization.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.fillnulls}} - Fills no-data areas in raster maps using v.surf.rst splines interpolation.&lt;br /&gt;
&lt;br /&gt;
* {{AddonCmd|r.surf.nnbathy}} - Natural Neighbor interpolation using the 'nn' addon.&lt;br /&gt;
&lt;br /&gt;
== Swath Bathymetry Tools ==&lt;br /&gt;
&lt;br /&gt;
''see also the [[Marine_Science#Multibeam_sonar_processing]] wiki page''&lt;br /&gt;
&lt;br /&gt;
* The [http://david.p.finlayson.googlepages.com/swathwidth v.swathwidth] module by David Finlayson for planning surveys. (development page)&lt;br /&gt;
&lt;br /&gt;
* An example of [http://bambi.otago.ac.nz/hamish/grass/gdal/sidescan_warp.html post-processing scanned paper sidescan swaths] using thin plate spline warping with [http://www.gdal.org/ GDAL's] &amp;quot;&amp;lt;tt&amp;gt;gdalwarp -tps&amp;lt;/tt&amp;gt;&amp;quot; function. (debugging page)&lt;br /&gt;
&lt;br /&gt;
* [[MB-System|GRASS integration]] with [http://www.ldeo.columbia.edu/res/pi/MB-System/ MB-System] (GPL) software for processing Multibeam and Sidescan Sonar data. GRASS + [[MB-System|MBsys]] + [[GMT]] make a nice scriptable trio.&lt;br /&gt;
&lt;br /&gt;
== LIDAR Tools ==&lt;br /&gt;
&lt;br /&gt;
*  {{cmd|r.terraflow}} - computation of flow direction, flow accumulation and other basic topographic terrain indices from massive raster digital elevation models (DEM). From the Duke University [http://terrain.cs.duke.edu/ STREAM] project.&lt;br /&gt;
&lt;br /&gt;
* [http://mpa.itc.it/markus/grass61/demos/rlake/ Flood simulation] using {{cmd|r.lake}}. Includes fancy [[NVIZ]] visualization of Trento, Italy, by Markus Neteler.&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.unc.edu/~isenburg/software/ LAStools] are a set of simple command line tools for converting to/from ASCII, viewing, comparing, and compressing LIDAR data. ''While free to use source code is available for older verions, newer versions are not open source, only work on MS Windows, and are no longer free for commercial or government use.''&lt;br /&gt;
&lt;br /&gt;
* [http://www.liblas.org libLAS] ASPRS LiDAR data translation tools&lt;br /&gt;
&lt;br /&gt;
* See also [[LIDAR#Analysis|LIDAR Analysis]]&lt;br /&gt;
&lt;br /&gt;
== Micro-tutorial for LAS data import ==&lt;br /&gt;
&lt;br /&gt;
''The following scripts are given for UNIX Bourne Shell; MS-Windows users should use the Msys terminal to use them.''&lt;br /&gt;
&lt;br /&gt;
=== Preparation ===&lt;br /&gt;
&lt;br /&gt;
==== Conversion of text files to LAS ====&lt;br /&gt;
&lt;br /&gt;
[http://www.liblas.org/ libLAS] supports the following column types:&lt;br /&gt;
   x - x coordinate&lt;br /&gt;
   y - y coordinate&lt;br /&gt;
   z - z coordinate&lt;br /&gt;
   a - scan angle&lt;br /&gt;
   i - intensity&lt;br /&gt;
   n - number of returns for given pulse (1..n)&lt;br /&gt;
   r - number of this return (1..r)&lt;br /&gt;
   c - classification&lt;br /&gt;
   u - user data (but only 1 byte)&lt;br /&gt;
   p - point source ID&lt;br /&gt;
   e - edge of flight line&lt;br /&gt;
   d - direction of scan flag&lt;br /&gt;
   t - GPS time&lt;br /&gt;
   s - skip column&lt;br /&gt;
&lt;br /&gt;
Sample text data such as:&lt;br /&gt;
   returntime,pulse,east,north,height,intensity,stripe&lt;br /&gt;
   549778.907200,1,673999.940,5099680.080,507.425,20.0,45105&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
can be converted to LAS format like this:&lt;br /&gt;
   returntime - t&lt;br /&gt;
   pulse - r&lt;br /&gt;
   east - x&lt;br /&gt;
   north - y&lt;br /&gt;
   height - z&lt;br /&gt;
   intensity - i&lt;br /&gt;
   stripe - s&lt;br /&gt;
&lt;br /&gt;
First parse (sanity check):&lt;br /&gt;
   txt2las -parse trxyzis data.asc&lt;br /&gt;
&lt;br /&gt;
Then convert:&lt;br /&gt;
   txt2las -parse trxyzis -i data.asc -o data.las &lt;br /&gt;
&lt;br /&gt;
While you may not need to do this conversion for GRASS import, the resulting files are way smaller than the uncompressed text files; additionally, they are in a defined format.&lt;br /&gt;
&lt;br /&gt;
=== LAS Import ===&lt;br /&gt;
&lt;br /&gt;
* Use the [http://www.liblas.org libLAS] utilities to import LAS data into GRASS. &lt;br /&gt;
* Data stored in text files can generally be imported directly into GRASS.&lt;br /&gt;
&lt;br /&gt;
* The data used in the rest of this micro-tutorial can be found at [http://www.appliedimagery.com/downloads/sampledata/Serpent%20Mound%20Model%20LAS%20Data.las appliedimagery.com].&lt;br /&gt;
&lt;br /&gt;
==== Import LAS as raster DEM ====&lt;br /&gt;
&lt;br /&gt;
Check bounds and SRS:&lt;br /&gt;
 $ lasinfo &amp;quot;Serpent_Mound_Model_LAS_Data.las&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
  [...]&lt;br /&gt;
  Min X Y Z                  289020.900000 4320942.610000 166.780000&lt;br /&gt;
  Max X Y Z                  290106.020000 4323641.570000 215.480000&lt;br /&gt;
 Spatial Reference           +proj=utm +zone=17 +ellps=WGS84 +units=m &lt;br /&gt;
&lt;br /&gt;
After creating a suitable UTM zone 17 location (EPSG:32617) &lt;br /&gt;
set the region according to the information from lasinfo at 1m resolution, rounding grid outwards to align to whole meters:&lt;br /&gt;
 GRASS&amp;gt; {{cmd|g.region}} n=4323641.57 s=4320942.61 w=289020.90 e=290106.02 res=1 -ap&lt;br /&gt;
&lt;br /&gt;
Finally, import with {{cmd|r.in.xyz}} with data piped directly from the &amp;lt;tt&amp;gt;las2txt&amp;lt;/tt&amp;gt; program and set a nice equalized color table:&lt;br /&gt;
 BASEMAP=&amp;quot;Serpent_Mound_Model_LAS&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 las2txt --stdout --delimiter ' ' &amp;quot;${BASEMAP}_Data.las&amp;quot; | \&lt;br /&gt;
    r.in.xyz in=- out=${BASEMAP}_Data fs=space method=mean&lt;br /&gt;
 &lt;br /&gt;
 {{cmd|r.colors}} ${BASEMAP}_Data color=bcyr -e&lt;br /&gt;
&lt;br /&gt;
The above example uses the default z-elevation level as the 3rd term, but by using the &amp;lt;tt&amp;gt;las2txt --parse&amp;lt;/tt&amp;gt; command other fields (such as intensity) can be imported instead via &amp;quot;&amp;lt;tt&amp;gt;--parse xyi&amp;lt;/tt&amp;gt;&amp;quot;. Unfortunately there seem to be a number of versions of las2txt and each are called slightly differently. You might have to experiment a little to get the right incantation.&lt;br /&gt;
&lt;br /&gt;
==== Import LAS as vector points in GRASS 6 ====&lt;br /&gt;
&lt;br /&gt;
Region setting (establishing the grid) is not needed for vector features so we can go directly to the import step. To deal with millions of input points {{cmd|v.in.ascii}} should be run with the options to skip creation of an attribute database and building topology as these can consume large amounts of memory. Note that vector maps without topology built are somewhat limited in their ability to be processed. Most LIDAR specific modules have been adapted to not require &lt;br /&gt;
topology. Even so, after initial cleaning steps it is often more efficient to work with huge datasets in GRASS as raster data.&lt;br /&gt;
&lt;br /&gt;
 las2txt --stdout &amp;quot;${BASEMAP}_Data.las&amp;quot; | \&lt;br /&gt;
   v.in.ascii -tbz z=3 out=&amp;quot;${BASEMAP}_pts&amp;quot; fs=space&lt;br /&gt;
&lt;br /&gt;
If topology was built, you can use {{cmd|d.vect}}'s -z flag to colorize by elevation value. Without topology you can still colorize, but you need to use color rules based on absolute elevations, not percentage of scale.&lt;br /&gt;
&amp;lt;!-- need an absolute color map gradiated across the elev range --&amp;gt;&lt;br /&gt;
 # display colorized points for data with built topology&lt;br /&gt;
 d.vect map=lidar_pts size=1 -z zcolor=elevation&lt;br /&gt;
&lt;br /&gt;
* After import as points you can then use the v.lidar tools to clean the data: {{cmd|v.lidar.correction}}, {{cmd|v.lidar.edgedetection}}, {{cmd|v.lidar.growing}}, and {{cmd|v.outlier}}.&lt;br /&gt;
&lt;br /&gt;
* Vector points can be interpolated into raster DEMs with a number of modules, including {{cmd|v.surf.rst}}, {{cmd|v.surf.bspline}}, and {{cmd|v.surf.idw}}.&lt;br /&gt;
&lt;br /&gt;
==== Import LAS in GRASS 7 ====&lt;br /&gt;
&lt;br /&gt;
As vector points&lt;br /&gt;
* GRASS 7 offers the {{cmd|v.in.lidar|version=70}} command&lt;br /&gt;
&lt;br /&gt;
As raster: map:&lt;br /&gt;
* {{cmd|r.in.lidar|version=70}} command&lt;br /&gt;
&lt;br /&gt;
=== Clean imported raster DEM ===&lt;br /&gt;
&lt;br /&gt;
(fill holes)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # convert to vector points&lt;br /&gt;
 r.to.vect -z feature=point in=${BASEMAP}_Data out=${BASEMAP}_pt&lt;br /&gt;
 &lt;br /&gt;
 # interpolate using a regularized spline fit&lt;br /&gt;
 # this is very slow, but produces very high quality output&lt;br /&gt;
 v.surf.rst layer=0 in=${BASEMAP}_pt elev=${BASEMAP}.rst&lt;br /&gt;
 &lt;br /&gt;
 # create 5m buffer area around original data points&lt;br /&gt;
 r.buffer in=${BASEMAP}_Data out=${BASEMAP}.5m_buff dist=5&lt;br /&gt;
 &lt;br /&gt;
 # crop interpolated DEM to only include areas nearby actual data&lt;br /&gt;
 r.mapcalc &amp;quot;${BASEMAP}.filled = \&lt;br /&gt;
    if( isnull(${BASEMAP}.5m_buff), null(), ${BASEMAP}.rst)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # set colors to something nice&lt;br /&gt;
 r.colors ${BASEMAP}.filled color=bcyr -e&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your needs, {{cmd|r.fillnulls}}, {{cmd|v.surf.bspline}}, {{cmd|v.surf.idw}}, {{cmd|r.surf.idw}}, {{cmd|r.surf.idw2}}, or [[GRASS_AddOns#r.surf.nnbathy|r.surf.nnbathy]] may be faster than the {{cmd|v.surf.rst}} method.&lt;br /&gt;
&lt;br /&gt;
=== Visualize raster DEM in 3D ===&lt;br /&gt;
&lt;br /&gt;
 nviz ${BASEMAP}.filled&lt;br /&gt;
&lt;br /&gt;
* Set z-exag to 2.0&lt;br /&gt;
* In Visualize &amp;amp;rarr; Raster Surfaces set the fine (final) resolution to 1, and coarse (preview) resolution to 5.&lt;br /&gt;
* Set the height to 500.0, the perspective to 15.0, and drag the view-puck to the North-West and reasonably zoomed in.&lt;br /&gt;
: You should now be able to see the serpent:&lt;br /&gt;
&lt;br /&gt;
[[Image:LAS_serpent_nviz.jpg|thumb|center|400px|The Great Serpent Mound, Adams County, Ohio, USA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to show vector points in 3D, but millions of them may make the program run slow. Topology is required ({{cmd|v.build}}). Tick the &amp;quot;3D&amp;quot; box in the Visualize &amp;amp;rarr; Vector points dialog.&lt;br /&gt;
&lt;br /&gt;
=== LAS Export ===&lt;br /&gt;
&lt;br /&gt;
==== Export to LAS ====&lt;br /&gt;
&lt;br /&gt;
This is the reverse of the import step, but using {{cmd|v.out.ascii}} or {{cmd|r.out.xyz}} with ''txt2las''.&lt;br /&gt;
Because the v.out.ascii module exports category number which we are not interested in, we cut it away with the UNIX ''cut'' utility.&lt;br /&gt;
&lt;br /&gt;
 v.out.ascii ${BASEMAP}_pts fs=space | cut -f1-3 -d' ' \&lt;br /&gt;
     &amp;gt; ${BASEMAP}_export.txt&lt;br /&gt;
 &lt;br /&gt;
 txt2las --parse xyz -i ${BASEMAP}_export.txt&lt;br /&gt;
&lt;br /&gt;
== Micro-tutorial for LIDAR data analysis ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple analysis of single return data ===&lt;br /&gt;
&lt;br /&gt;
Data source: North Carolina sample data set (Lidar data from 2001, near Raleigh, North Carolina). Download from&lt;br /&gt;
   http://www.grassbook.org/ncexternal/&lt;br /&gt;
   -&amp;gt; File: BE3720079200WC20020829m.txt 3.6M (lidar bare earth points [spm])&lt;br /&gt;
&lt;br /&gt;
Scan input file for spatial extent. The -g flag shows the result in a convenient copy-paste format for {{cmd|g.region}}:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=dummy -s -g&lt;br /&gt;
&lt;br /&gt;
We use this output to set region, predefine 2m raster cells, and polish the odd coordinates with -a:&lt;br /&gt;
   g.region n=222504.439000 s=219456.442000 e=640081.274000 w=637033.274000 res=2 -a -p&lt;br /&gt;
&lt;br /&gt;
==== QUESTION 1: Are these Lidar data sufficiently dense? ====&lt;br /&gt;
&lt;br /&gt;
We compute a raster map representing number of points per cell&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binn2m method=n&lt;br /&gt;
&lt;br /&gt;
Look at the resulting raster map:&lt;br /&gt;
   d.mon x0&lt;br /&gt;
   d.font Vera&lt;br /&gt;
   d.rast.leg lid_792_binn2m&lt;br /&gt;
&lt;br /&gt;
Report point distribution in percent:&lt;br /&gt;
   r.report lid_792_binn2m unit=p&lt;br /&gt;
   r.univar lid_792_binn2m&lt;br /&gt;
   # (sometimes do `r.null setnull=0` first)&lt;br /&gt;
&lt;br /&gt;
Reduce the resolution to 6m to get at least one point per cell:&lt;br /&gt;
   g.region res=6 -a -p&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binn6m method=n&lt;br /&gt;
   d.rast.leg lid_792_binn6m&lt;br /&gt;
   # ... a few holes remain but that's probably acceptable.&lt;br /&gt;
&lt;br /&gt;
Compute raster maps representing mean elevation for each cell:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binmean6m  \&lt;br /&gt;
            meth=mean&lt;br /&gt;
   d.rast.leg lid_792_binmean6m&lt;br /&gt;
&lt;br /&gt;
Compute range and variation:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binrange6m \&lt;br /&gt;
            meth=range&lt;br /&gt;
   d.rast.leg lid_792_binrange6m&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binvar6m   \&lt;br /&gt;
            meth=coeff_var&lt;br /&gt;
   d.rast.leg lid_792_binvar6m&lt;br /&gt;
&lt;br /&gt;
Overlay other GIS maps to map of mean elevation:&lt;br /&gt;
   d.rast.leg lid_792_binmean6m&lt;br /&gt;
   d.vect streets_wake&lt;br /&gt;
   d.vect lakes type=boundary&lt;br /&gt;
   d.vect streams&lt;br /&gt;
&lt;br /&gt;
Now we continue to work in a zoomed spatial subset of the area.&lt;br /&gt;
&lt;br /&gt;
We import only points in the rural area without building topology and using z-coordinate for elevation:&lt;br /&gt;
   g.region rural_1m -p&lt;br /&gt;
   v.in.ascii -ztbr BE3720079200WC20020829m.txt \&lt;br /&gt;
              out=elev_lidrural_bepts z=3&lt;br /&gt;
&lt;br /&gt;
Clear monitor show black-white orthophoto:&lt;br /&gt;
   d.erase -f&lt;br /&gt;
   d.rast ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
We now use already prepared Lidar vector point maps:&lt;br /&gt;
* elev_lid792_bepts:   Rural area (in tile 792), bare earth lidar point cloud&lt;br /&gt;
* elev_lidrural_mrpts: Rural area multiple return lidar point cloud&lt;br /&gt;
&lt;br /&gt;
Look at ground data:&lt;br /&gt;
d.vect elev_lidrural_bepts siz=2 col=red&lt;br /&gt;
&lt;br /&gt;
Look at &amp;quot;surface&amp;quot; data:&lt;br /&gt;
d.vect elev_lidrural_mrpts siz=1 col=green&lt;br /&gt;
&lt;br /&gt;
Visualize 3D Lidar multi-return points:&lt;br /&gt;
nviz elev_lid792_1m point=elev_lidrural_mrpts&lt;br /&gt;
 # Visualize -&amp;gt; Vector Points -&amp;gt; 3D points&lt;br /&gt;
 #                            -&amp;gt; Icon size 2.25&lt;br /&gt;
 #  --&amp;gt; GRASS book p. 253, fig. 3.15 (see also screenshot [http://www.grassbook.org/about_menu3rd.php here])&lt;br /&gt;
&lt;br /&gt;
==== DEM/DSM separation the simple way by selection of Lidar returns ====&lt;br /&gt;
&lt;br /&gt;
Find out where we have multiple returns:&lt;br /&gt;
   d.rast ortho_2001_t792_1m&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=1&amp;quot; col=red siz=2&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=2&amp;quot; col=green siz=3&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=3&amp;quot; col=blue&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=4&amp;quot; col=yellow&lt;br /&gt;
&lt;br /&gt;
DTM: extract last return(s):&lt;br /&gt;
   v.extract elev_lidrural_mrpts out=elev_lidrural_mrpts_first where=&amp;quot;Return &amp;lt; 2&amp;quot;&lt;br /&gt;
   nviz elev_lid792_1m point=elev_lidrural_mrpts_first&lt;br /&gt;
&lt;br /&gt;
Interpolate to map and look at it:&lt;br /&gt;
   v.surf.rst elev_lidrural_mrpts_first layer=0 elev=elev_lidrural_mrpts_DTM&lt;br /&gt;
   nviz elev_lidrural_mrpts_DTM col=ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
DSM: extract first return(s):&lt;br /&gt;
   v.extract elev_lidrural_mrpts out=elev_lidrural_mrpts_last where=&amp;quot;Return &amp;gt; 2&amp;quot;&lt;br /&gt;
   nviz elev_lid792_1m point=elev_lidrural_mrpts_last&lt;br /&gt;
&lt;br /&gt;
Interpolate to map and look at it:&lt;br /&gt;
   v.surf.rst elev_lidrural_mrpts_first layer=0 elev=elev_lidrural_mrpts_DSM&lt;br /&gt;
   nviz elev_lidrural_mrpts_DSM col=ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== DEM/DSM separation the more complex way ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;''TODO: verify order of first and last returns in below text''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
General procedure:&lt;br /&gt;
* Lidar point clouds (first and last return) are imported with {{cmd|v.in.ascii}} (-b flag to not build the topology).&lt;br /&gt;
* Outlier detection is done with {{cmd|v.outlier}} on both first and last return data (NB currently a selection of &amp;lt;/=4 for soe/son in {{cmd|v.outlier}} results in an error message).&lt;br /&gt;
* Then, with {{cmd|v.lidar.edgedetection}}, edges are detected from last return data.&lt;br /&gt;
* The building are generated by {{cmd|v.lidar.growing}} from detected edges.&lt;br /&gt;
* The resulting data are post-processed with {{cmd|v.lidar.correction}}.&lt;br /&gt;
* Finally, the DTM and DSM are generated with {{cmd|v.surf.bspline}} (DTM: uses the 'v.lidar.correction' output; DSM: uses last return output from outlier detection).&lt;br /&gt;
* NB for {{cmd|v.outlier}}, {{cmd|v.lidar.edgedetection}} and {{cmd|v.surf.bspline}}, one spline steps equates to 1m. It is recommended as a starting point that the choice of spline step is roughly 3 or 4 times the planimetric resolution (potential grid resolution) of your data. Experiment from there to obtain better results.&lt;br /&gt;
&lt;br /&gt;
  export GRASS_OVERWRITE=1&lt;br /&gt;
  v.extract elev_lidrural_mrpts out=elev_lidfirst_pts \&lt;br /&gt;
            where=&amp;quot;return = 1&amp;quot;&lt;br /&gt;
  v.extract elev_lidrural_mrpts out=elev_lidlast_pts  \&lt;br /&gt;
            where=&amp;quot;return &amp;gt;= 2&amp;quot;&lt;br /&gt;
  d.vect elev_lidfirst_pts col=red&lt;br /&gt;
  d.vect elev_lidlast_pts col=green&lt;br /&gt;
&lt;br /&gt;
Outlier detection and separation into two maps&lt;br /&gt;
  # 1st return&lt;br /&gt;
  v.outlier elev_lidfirst_pts output=elev_lidfirst_clean \&lt;br /&gt;
            outlier=elev_lidfirst_outl&lt;br /&gt;
  d.erase&lt;br /&gt;
  d.vect elev_lidfirst_clean siz=2&lt;br /&gt;
  d.vect elev_lidfirst_outl col=red&lt;br /&gt;
&lt;br /&gt;
2nd return&lt;br /&gt;
  v.outlier elev_lidlast_pts output=elev_lidlast_clean \&lt;br /&gt;
            outlier=elev_lidlast_outl&lt;br /&gt;
  d.erase&lt;br /&gt;
  d.vect elev_lidlast_clean siz=2&lt;br /&gt;
  d.vect elev_lidlast_outl col=red&lt;br /&gt;
  # -&amp;gt; no outliers visible&lt;br /&gt;
&lt;br /&gt;
Run an edge detection on cleaned last return:&lt;br /&gt;
  v.lidar.edgedetection elev_lidlast_clean \&lt;br /&gt;
                        out=elev_lidlast_edges&lt;br /&gt;
&lt;br /&gt;
Buildings/vegetation are generated from detected edges (bug: you may need to specify the mapset):&lt;br /&gt;
  v.lidar.growing elev_lidlast_edges@lidar out=elev_lidlast_grow \&lt;br /&gt;
                  first=elev_lidfirst_clean&lt;br /&gt;
&lt;br /&gt;
Compare:&lt;br /&gt;
  d.vect elev_lidlast_pts col=blue&lt;br /&gt;
  d.vect elev_lidlast_grow col=green&lt;br /&gt;
&lt;br /&gt;
Correction (this is applied twice):&lt;br /&gt;
  v.lidar.correction elev_lidlast_grow out=elev_lidlast_corr1 \&lt;br /&gt;
                     terrain=elev_lidlast_terr1&lt;br /&gt;
  v.lidar.correction elev_lidlast_corr1 out=elev_lid_dsm \&lt;br /&gt;
                     terrain=elev_lid_dtm&lt;br /&gt;
&lt;br /&gt;
DEM and DSM are generated:&lt;br /&gt;
  # Estimation of lambda_i parameter with cross validation (watch for RMS!)&lt;br /&gt;
  # and note use of bicubic for DSM and bilinear for DTM here and below&lt;br /&gt;
  v.surf.bspline -c elev_lid_dsm sie=100 sin=100 method=bicubic&lt;br /&gt;
  v.surf.bspline -c elev_lid_dtm sie=100 sin=100 method=bilinear&lt;br /&gt;
  &lt;br /&gt;
  # From the cross-validation, we select lambda with minimal RMS error:&lt;br /&gt;
  # generate raster surfaces at 1m resolution &lt;br /&gt;
  v.surf.bspline elev_lid_dsm raster=lidar_dsm lambda=0.1 method=bicubic&lt;br /&gt;
  v.surf.bspline elev_lid_dtm raster=lidar_dtm lambda=0.0001 method=bilinear&lt;br /&gt;
  &lt;br /&gt;
  d.rast lidar_dsm&lt;br /&gt;
  d.rast lidar_dtm&lt;br /&gt;
  &lt;br /&gt;
  nviz lidar_dsm,lidar_dtm \&lt;br /&gt;
       col=ortho_2001_t792_1m,ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
...with the position slider you can visually separate DSM and DEM, increase z slider (Visualize -&amp;gt; Raster Surface -&amp;gt; Position).&lt;br /&gt;
&lt;br /&gt;
=== Reclassification ===&lt;br /&gt;
&lt;br /&gt;
As vector points&lt;br /&gt;
* {{cmd|v.reclass|version=70}} command&lt;br /&gt;
&lt;br /&gt;
As raster map:&lt;br /&gt;
* {{cmd|r.reclass|version=70}} command&lt;br /&gt;
&lt;br /&gt;
== Sample LIDAR data ==&lt;br /&gt;
&lt;br /&gt;
=== Widely used in GRASS tutorials ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.grassbook.org/data_menu2nd.php Jockey's Ridge, NC, LIDAR dataset]&lt;br /&gt;
* [http://www.grassbook.org/data_menu3rd.php North Carolina OSGeo Edu data set] (includes multi-return LIDAR data)&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
* United States Antarctic Resource Center: LIDAR High-resolution DEM Final DATA Downloads&amp;lt;BR&amp;gt;http://usarc.usgs.gov/lidar_dload.shtml&lt;br /&gt;
&lt;br /&gt;
* LIDAR ALSM Research, Arizona State University Ative Tectonics, Research Group&amp;lt;BR&amp;gt;  http://lidar.asu.edu/research.html and http://www.geongrid.org/science/lidar.html&lt;br /&gt;
&lt;br /&gt;
* USGS Center for LIDAR Information Coordination and Knowledge (aka CLICK) - USGS LiDAR point cloud distribution site&amp;lt;BR&amp;gt; http://lidar.cr.usgs.gov&lt;br /&gt;
&lt;br /&gt;
* Washington State Geospatial Data Archive, Mount Saint Helens - Lidar Data &amp;lt;BR&amp;gt;https://wagda.lib.washington.edu/data/type/elevation/lidar/st_helens/&lt;br /&gt;
&lt;br /&gt;
* Puget Sound Lidar Consortium, public-domain high-resolution topography for western Washington&amp;lt;BR&amp;gt;http://pugetsoundlidar.ess.washington.edu/index.htm&lt;br /&gt;
&lt;br /&gt;
* NOAA Topographic Change Mapping LIDAR Data Retrieval Tool (LDART) NOAA Coastal Services Center&amp;lt;BR&amp;gt;http://maps.csc.noaa.gov/TCM/&lt;br /&gt;
&lt;br /&gt;
* Landmap, LIDAR Data from the Environment Agency &amp;lt;BR&amp;gt;http://www.landmap.ac.uk/lidar/lidar.html&lt;br /&gt;
&lt;br /&gt;
* Northern California LIDAR data &amp;lt;BR&amp;gt;http://quake.usgs.gov/research/geology/lidar/  and http://core2.gsfc.nasa.gov/lidar/terrapoint/&lt;br /&gt;
&lt;br /&gt;
* IDAHO GEOSPATIAL , Bare Earth LIDAR DEM Download - UTM &amp;lt;BR&amp;gt;http://inside.uidaho.edu/geodata/LiDAR/LiDARBareEarthDEM_DownloadUTM.htm&lt;br /&gt;
&lt;br /&gt;
* EarthScope Spatial Data Explorer - A java application for querying, browsing, and acquiring data from the EarthScope Spatial Data Repository. Currently includes a number of LiDAR datasets. &amp;lt;BR&amp;gt;http://www.earthscope.org/data/lidar.php&lt;br /&gt;
&lt;br /&gt;
* LIDAR Galley &amp;lt;BR&amp;gt;https://peoiewswebinfo.monmouth.army.mil/JPSD/LIDAR_Gallery.htm&lt;br /&gt;
&lt;br /&gt;
* South Tyrol - Download of DTMs (Homepage in German or Italian) &amp;lt;BR&amp;gt; http://www.provinz.bz.it/raumordnung/grundkarten/utm/default_d.htm&lt;br /&gt;
&lt;br /&gt;
* libLAS's sample file collection&lt;br /&gt;
:http://liblas.org/samples/&lt;br /&gt;
&lt;br /&gt;
* NASA's Laser Vegetation Imaging Sensor (a.k.a. the Land, Vegetation, and Ice Sensor) or &amp;quot;LVIS&amp;quot;&lt;br /&gt;
:https://lvis.gsfc.nasa.gov&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[Contour lines to DEM]] interpolation module trials&lt;br /&gt;
* [http://liblas.org/ libLAS] - LAS 1.0/1.1 ASPRS LiDAR data translation toolset&lt;br /&gt;
* [http://code.google.com/p/fullanalyze/ Fullanalyze] software based on MATIS&lt;br /&gt;
&lt;br /&gt;
;Breaklines&lt;br /&gt;
* Not very well developed in GRASS so far, but we'd like to change that&lt;br /&gt;
* {{AddonCmd|v.surf.icw}} (only suitable for ~ 200 input points)&lt;br /&gt;
* [http://surfit.sourceforge.net/ SurfIt] (GPL, Tck/Tk)&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://surgeweb.sweb.cz/surgemain.htm SurGe] (Trial/shareware) &amp;lt;/strike&amp;gt;&lt;br /&gt;
* [http://grasswiki.osgeo.org/wiki/TIN_with_breaklines v.triangle] add-on module for construction TIN with breaklines.&lt;br /&gt;
&lt;br /&gt;
== Related publications ==&lt;br /&gt;
&lt;br /&gt;
* Brovelli, M.A., Lucca, S., 2011. Filtering LiDAR with GRASS: overview of the method and comparisons with Terrascan. Italian Journal of Remote Sensing 93-105. ([http://www.aitjournal.com/articleView.aspx?ID=209 PDF])&lt;br /&gt;
* Brovelli, M.A., Cannata, M. &amp;amp; Longoni, U.M., 2004. LIDAR data filtering and DTM interpolation within GRASS. Transactions in GIS, 8(2), pp.155-174. [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9671.2004.00173.x/pdf PDF]&lt;br /&gt;
* Cebecauer, T., Hofierka, J. &amp;amp; Suri, M., 2002. Processing digital terrain models by regularized spline with tension: tuning interpolation parameters for different input datasets. In Proc. of the Open Source Free Software GIS -- GRASS users conference 2002, Trento, Italy, 11-13 September 2002. [http://www.ing.unitn.it/~grass/proceedings/proceedings/pdfs/Cebecauer_Tomas.pdf PDF]&lt;br /&gt;
* Mitasova, Helena et al., 2009. Raster-based analysis of coastal terrain dynamics from multitemporal Lidar data. Journal of Coastal Research, 25(2), pp.507-514.&lt;br /&gt;
* Mitasova, H, Mitas, L. &amp;amp; Harmon, R., 2005. Simultaneous spline approximation and topographic analysis for lidar elevation data in open-source GIS. Geoscience and Remote Sensing Letters, IEEE, 2(4), pp.379, 375. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.2934&amp;amp;rep=rep1&amp;amp;type=pdf PDF]&lt;br /&gt;
* Mitasova, H. et al., 2003. Spatio-temporal analysis of beach morphology using LIDAR, RTK-GPS and Open source GRASS GIS. In Proceedings Coastal Sediments. [http://skagit.meas.ncsu.edu/%7Ehelena/publwork/papers/pcoastsedp10.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
Search via [http://scholar.google.com/scholar?q=lidar+grass+gis Google Scholar]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://knol.google.com/k/aerial-extraction-of-roof-surfaces-for-solar-analysis Aerial Extraction of Roof Surfaces for Solar Analysis]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category: Interpolation]]&lt;br /&gt;
[[Category: Image processing]]&lt;br /&gt;
[[Category: Import]]&lt;br /&gt;
[[Category: Raster]]&lt;br /&gt;
[[Category: Vector]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=LIDAR&amp;diff=17952</id>
		<title>LIDAR</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=LIDAR&amp;diff=17952"/>
		<updated>2013-02-24T22:25:21Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Analysis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; LIDAR and Multi-beam Swath bathymetry data &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Point cloud data, as a type of representation of 3D surfaces, are usually produced by airborne or on-ground laser scanning, also known as Light Detection and Ranging (LiDAR). The data are often provided as sets of very dense (x, y, z) points or in a more complex, public file binary format called LAS that may include multiple returns as well as intensities. GRASS GIS supports basic and advanced lidar data processing and analysis.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
In this section various modules are introduced.&lt;br /&gt;
&lt;br /&gt;
=== Import ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.in.xyz}} - Create a raster map from an assemblage of many coordinates using univariate statistics. ([http://hamish.bowman.googlepages.com/grassfiles#xyz example])&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.in.lidar}} - (GRASS 7 only) Create a raster map from a LAS format LiDAR file using univariate statistics and filtering. r.in.lidar is based on r.in.xyz. It can directly read a binary *.las file when GRASS is compiled with libLAS support. In addition to the options of r.in.xyz, r.in.lidar provides some basic lidar point fileter options.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.in.ascii}} - Import data from an ASCII file to GRASS vector format.&lt;br /&gt;
: ''Due to memory overhead vector point imports will be limited to a few million data points unless topology and database creation is skipped with the '''-bt''' flags''. It may also be useful to clip the import file to only accept points falling within the current region by using the '''-r''' flag. See {{cmd|g.region}} for details on specifying the region bounds.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.in.lidar}} - (GRASS 7 only). Creates a vector points file from a binary LAS format LiDAR file (*.las or *.laz). r.in.lidar also can create a new location based on the LAS file, and can filter the input points by return and subregion.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.outlier}} - Removes outliers from vector point data.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.edgedetection}} - Uses interpolation and edge detection to separate a vector points file of LiDAR data into 1) a vector file of points associated with the ground surface and useful for interpolating a raster terrain (DEM) map, 2) a vector file of points pertaining to human-contructed objects, and 3) a vector file of other points that could pertain to vegetation or other features.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.growing}} - Building contour determination and Region Growing algorithm for determining the building inside.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.correction}} - Correction of the v.lidar.growing output. It is the last of the three algorithms for LIDAR filtering.&lt;br /&gt;
&lt;br /&gt;
''References:''&lt;br /&gt;
&lt;br /&gt;
* Detailed description: [http://www.foss4g2006.org/getFile.py/access?contribId=48&amp;amp;sessionId=59&amp;amp;resId=7&amp;amp;materialId=slides&amp;amp;confId=1 here] (FOSS4G 2006)&lt;br /&gt;
* Summarised version: [http://geomatica.como.polimi.it/corsi/remote_sensing/LiDAR_filtering_with_GRASS-lab4.pdf here] (2010)&lt;br /&gt;
* Calibration of the filtering parameters (around 20 parameters) by integrating the USGS UCODE and GRASS, see [http://www.isprs.org/proceedings/XXXVIII/1_4_7-W5/paper/Brovelli-126.pdf here]&lt;br /&gt;
&lt;br /&gt;
=== Surface generation ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.rst}} - Spatial approximation and topographic analysis using regularized spline with tension.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.idw}} - Surface interpolation from vector point data by Inverse Distance Squared Weighting.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.bspline}} - Surface interpolation from vector point data by bicubic or bilineal interpolation with Tykhonov regularization.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.fillnulls}} - Fills no-data areas in raster maps using v.surf.rst splines interpolation.&lt;br /&gt;
&lt;br /&gt;
* {{AddonCmd|r.surf.nnbathy}} - Natural Neighbor interpolation using the 'nn' addon.&lt;br /&gt;
&lt;br /&gt;
== Swath Bathymetry Tools ==&lt;br /&gt;
&lt;br /&gt;
''see also the [[Marine_Science#Multibeam_sonar_processing]] wiki page''&lt;br /&gt;
&lt;br /&gt;
* The [http://david.p.finlayson.googlepages.com/swathwidth v.swathwidth] module by David Finlayson for planning surveys. (development page)&lt;br /&gt;
&lt;br /&gt;
* An example of [http://bambi.otago.ac.nz/hamish/grass/gdal/sidescan_warp.html post-processing scanned paper sidescan swaths] using thin plate spline warping with [http://www.gdal.org/ GDAL's] &amp;quot;&amp;lt;tt&amp;gt;gdalwarp -tps&amp;lt;/tt&amp;gt;&amp;quot; function. (debugging page)&lt;br /&gt;
&lt;br /&gt;
* [[MB-System|GRASS integration]] with [http://www.ldeo.columbia.edu/res/pi/MB-System/ MB-System] (GPL) software for processing Multibeam and Sidescan Sonar data. GRASS + [[MB-System|MBsys]] + [[GMT]] make a nice scriptable trio.&lt;br /&gt;
&lt;br /&gt;
== LIDAR Tools ==&lt;br /&gt;
&lt;br /&gt;
*  {{cmd|r.terraflow}} - computation of flow direction, flow accumulation and other basic topographic terrain indices from massive raster digital elevation models (DEM). From the Duke University [http://terrain.cs.duke.edu/ STREAM] project.&lt;br /&gt;
&lt;br /&gt;
* [http://mpa.itc.it/markus/grass61/demos/rlake/ Flood simulation] using {{cmd|r.lake}}. Includes fancy [[NVIZ]] visualization of Trento, Italy, by Markus Neteler.&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.unc.edu/~isenburg/software/ LAStools] are a set of simple command line tools for converting to/from ASCII, viewing, comparing, and compressing LIDAR data. ''While free to use source code is available for older verions, newer versions are not open source, only work on MS Windows, and are no longer free for commercial or government use.''&lt;br /&gt;
&lt;br /&gt;
* [http://www.liblas.org libLAS] ASPRS LiDAR data translation tools&lt;br /&gt;
&lt;br /&gt;
* See also [[LIDAR#Analysis|LIDAR Analysis]]&lt;br /&gt;
&lt;br /&gt;
== Micro-tutorial for LAS data import ==&lt;br /&gt;
&lt;br /&gt;
''The following scripts are given for UNIX Bourne Shell; MS-Windows users should use the Msys terminal to use them.''&lt;br /&gt;
&lt;br /&gt;
=== Preparation ===&lt;br /&gt;
&lt;br /&gt;
==== Conversion of text files to LAS ====&lt;br /&gt;
&lt;br /&gt;
[http://www.liblas.org/ libLAS] supports the following column types:&lt;br /&gt;
   x - x coordinate&lt;br /&gt;
   y - y coordinate&lt;br /&gt;
   z - z coordinate&lt;br /&gt;
   a - scan angle&lt;br /&gt;
   i - intensity&lt;br /&gt;
   n - number of returns for given pulse (1..n)&lt;br /&gt;
   r - number of this return (1..r)&lt;br /&gt;
   c - classification&lt;br /&gt;
   u - user data (but only 1 byte)&lt;br /&gt;
   p - point source ID&lt;br /&gt;
   e - edge of flight line&lt;br /&gt;
   d - direction of scan flag&lt;br /&gt;
   t - GPS time&lt;br /&gt;
   s - skip column&lt;br /&gt;
&lt;br /&gt;
Sample text data such as:&lt;br /&gt;
   returntime,pulse,east,north,height,intensity,stripe&lt;br /&gt;
   549778.907200,1,673999.940,5099680.080,507.425,20.0,45105&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
can be converted to LAS format like this:&lt;br /&gt;
   returntime - t&lt;br /&gt;
   pulse - r&lt;br /&gt;
   east - x&lt;br /&gt;
   north - y&lt;br /&gt;
   height - z&lt;br /&gt;
   intensity - i&lt;br /&gt;
   stripe - s&lt;br /&gt;
&lt;br /&gt;
First parse (sanity check):&lt;br /&gt;
   txt2las -parse trxyzis data.asc&lt;br /&gt;
&lt;br /&gt;
Then convert:&lt;br /&gt;
   txt2las -parse trxyzis -i data.asc -o data.las &lt;br /&gt;
&lt;br /&gt;
While you may not need to do this conversion for GRASS import, the resulting files are way smaller than the uncompressed text files; additionally, they are in a defined format.&lt;br /&gt;
&lt;br /&gt;
=== LAS Import ===&lt;br /&gt;
&lt;br /&gt;
* Use the [http://www.liblas.org libLAS] utilities to import LAS data into GRASS. &lt;br /&gt;
* Data stored in text files can generally be imported directly into GRASS.&lt;br /&gt;
&lt;br /&gt;
* The data used in the rest of this micro-tutorial can be found at [http://www.appliedimagery.com/downloads/sampledata/Serpent%20Mound%20Model%20LAS%20Data.las appliedimagery.com].&lt;br /&gt;
&lt;br /&gt;
==== Import LAS as raster DEM ====&lt;br /&gt;
&lt;br /&gt;
Check bounds and SRS:&lt;br /&gt;
 $ lasinfo &amp;quot;Serpent_Mound_Model_LAS_Data.las&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
  [...]&lt;br /&gt;
  Min X Y Z                  289020.900000 4320942.610000 166.780000&lt;br /&gt;
  Max X Y Z                  290106.020000 4323641.570000 215.480000&lt;br /&gt;
 Spatial Reference           +proj=utm +zone=17 +ellps=WGS84 +units=m &lt;br /&gt;
&lt;br /&gt;
After creating a suitable UTM zone 17 location (EPSG:32617) &lt;br /&gt;
set the region according to the information from lasinfo at 1m resolution, rounding grid outwards to align to whole meters:&lt;br /&gt;
 GRASS&amp;gt; {{cmd|g.region}} n=4323641.57 s=4320942.61 w=289020.90 e=290106.02 res=1 -ap&lt;br /&gt;
&lt;br /&gt;
Finally, import with {{cmd|r.in.xyz}} with data piped directly from the &amp;lt;tt&amp;gt;las2txt&amp;lt;/tt&amp;gt; program and set a nice equalized color table:&lt;br /&gt;
 BASEMAP=&amp;quot;Serpent_Mound_Model_LAS&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 las2txt --stdout --delimiter ' ' &amp;quot;${BASEMAP}_Data.las&amp;quot; | \&lt;br /&gt;
    r.in.xyz in=- out=${BASEMAP}_Data fs=space method=mean&lt;br /&gt;
 &lt;br /&gt;
 {{cmd|r.colors}} ${BASEMAP}_Data color=bcyr -e&lt;br /&gt;
&lt;br /&gt;
The above example uses the default z-elevation level as the 3rd term, but by using the &amp;lt;tt&amp;gt;las2txt --parse&amp;lt;/tt&amp;gt; command other fields (such as intensity) can be imported instead via &amp;quot;&amp;lt;tt&amp;gt;--parse xyi&amp;lt;/tt&amp;gt;&amp;quot;. Unfortunately there seem to be a number of versions of las2txt and each are called slightly differently. You might have to experiment a little to get the right incantation.&lt;br /&gt;
&lt;br /&gt;
==== Import LAS as vector points in GRASS 6 ====&lt;br /&gt;
&lt;br /&gt;
Region setting (establishing the grid) is not needed for vector features so we can go directly to the import step. To deal with millions of input points {{cmd|v.in.ascii}} should be run with the options to skip creation of an attribute database and building topology as these can consume large amounts of memory. Note that vector maps without topology built are somewhat limited in their ability to be processed. Most LIDAR specific modules have been adapted to not require &lt;br /&gt;
topology. Even so, after initial cleaning steps it is often more efficient to work with huge datasets in GRASS as raster data.&lt;br /&gt;
&lt;br /&gt;
 las2txt --stdout &amp;quot;${BASEMAP}_Data.las&amp;quot; | \&lt;br /&gt;
   v.in.ascii -tbz z=3 out=&amp;quot;${BASEMAP}_pts&amp;quot; fs=space&lt;br /&gt;
&lt;br /&gt;
If topology was built, you can use {{cmd|d.vect}}'s -z flag to colorize by elevation value. Without topology you can still colorize, but you need to use color rules based on absolute elevations, not percentage of scale.&lt;br /&gt;
&amp;lt;!-- need an absolute color map gradiated across the elev range --&amp;gt;&lt;br /&gt;
 # display colorized points for data with built topology&lt;br /&gt;
 d.vect map=lidar_pts size=1 -z zcolor=elevation&lt;br /&gt;
&lt;br /&gt;
* After import as points you can then use the v.lidar tools to clean the data: {{cmd|v.lidar.correction}}, {{cmd|v.lidar.edgedetection}}, {{cmd|v.lidar.growing}}, and {{cmd|v.outlier}}.&lt;br /&gt;
&lt;br /&gt;
* Vector points can be interpolated into raster DEMs with a number of modules, including {{cmd|v.surf.rst}}, {{cmd|v.surf.bspline}}, and {{cmd|v.surf.idw}}.&lt;br /&gt;
&lt;br /&gt;
==== Import LAS in GRASS 7 ====&lt;br /&gt;
&lt;br /&gt;
As vector points&lt;br /&gt;
* GRASS 7 offers the {{cmd|v.in.lidar|version=70}} command&lt;br /&gt;
&lt;br /&gt;
As raster: map:&lt;br /&gt;
* {{cmd|r.in.lidar|version=70}} command&lt;br /&gt;
&lt;br /&gt;
=== Clean imported raster DEM ===&lt;br /&gt;
&lt;br /&gt;
(fill holes)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # convert to vector points&lt;br /&gt;
 r.to.vect -z feature=point in=${BASEMAP}_Data out=${BASEMAP}_pt&lt;br /&gt;
 &lt;br /&gt;
 # interpolate using a regularized spline fit&lt;br /&gt;
 # this is very slow, but produces very high quality output&lt;br /&gt;
 v.surf.rst layer=0 in=${BASEMAP}_pt elev=${BASEMAP}.rst&lt;br /&gt;
 &lt;br /&gt;
 # create 5m buffer area around original data points&lt;br /&gt;
 r.buffer in=${BASEMAP}_Data out=${BASEMAP}.5m_buff dist=5&lt;br /&gt;
 &lt;br /&gt;
 # crop interpolated DEM to only include areas nearby actual data&lt;br /&gt;
 r.mapcalc &amp;quot;${BASEMAP}.filled = \&lt;br /&gt;
    if( isnull(${BASEMAP}.5m_buff), null(), ${BASEMAP}.rst)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # set colors to something nice&lt;br /&gt;
 r.colors ${BASEMAP}.filled color=bcyr -e&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your needs, {{cmd|r.fillnulls}}, {{cmd|v.surf.bspline}}, {{cmd|v.surf.idw}}, {{cmd|r.surf.idw}}, {{cmd|r.surf.idw2}}, or [[GRASS_AddOns#r.surf.nnbathy|r.surf.nnbathy]] may be faster than the {{cmd|v.surf.rst}} method.&lt;br /&gt;
&lt;br /&gt;
=== Visualize raster DEM in 3D ===&lt;br /&gt;
&lt;br /&gt;
 nviz ${BASEMAP}.filled&lt;br /&gt;
&lt;br /&gt;
* Set z-exag to 2.0&lt;br /&gt;
* In Visualize &amp;amp;rarr; Raster Surfaces set the fine (final) resolution to 1, and coarse (preview) resolution to 5.&lt;br /&gt;
* Set the height to 500.0, the perspective to 15.0, and drag the view-puck to the North-West and reasonably zoomed in.&lt;br /&gt;
: You should now be able to see the serpent:&lt;br /&gt;
&lt;br /&gt;
[[Image:LAS_serpent_nviz.jpg|thumb|center|400px|The Great Serpent Mound, Adams County, Ohio, USA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to show vector points in 3D, but millions of them may make the program run slow. Topology is required ({{cmd|v.build}}). Tick the &amp;quot;3D&amp;quot; box in the Visualize &amp;amp;rarr; Vector points dialog.&lt;br /&gt;
&lt;br /&gt;
=== LAS Export ===&lt;br /&gt;
&lt;br /&gt;
==== Export to LAS ====&lt;br /&gt;
&lt;br /&gt;
This is the reverse of the import step, but using {{cmd|v.out.ascii}} or {{cmd|r.out.xyz}} with ''txt2las''.&lt;br /&gt;
Because the v.out.ascii module exports category number which we are not interested in, we cut it away with the UNIX ''cut'' utility.&lt;br /&gt;
&lt;br /&gt;
 v.out.ascii ${BASEMAP}_pts fs=space | cut -f1-3 -d' ' \&lt;br /&gt;
     &amp;gt; ${BASEMAP}_export.txt&lt;br /&gt;
 &lt;br /&gt;
 txt2las --parse xyz -i ${BASEMAP}_export.txt&lt;br /&gt;
&lt;br /&gt;
== Micro-tutorial for LIDAR data analysis ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple analysis of single return data ===&lt;br /&gt;
&lt;br /&gt;
Data source: North Carolina sample data set (Lidar data from 2001, near Raleigh, North Carolina). Download from&lt;br /&gt;
   http://www.grassbook.org/ncexternal/&lt;br /&gt;
   -&amp;gt; File: BE3720079200WC20020829m.txt 3.6M (lidar bare earth points [spm])&lt;br /&gt;
&lt;br /&gt;
Scan input file for spatial extent. The -g flag shows the result in a convenient copy-paste format for {{cmd|g.region}}:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=dummy -s -g&lt;br /&gt;
&lt;br /&gt;
We use this output to set region, predefine 2m raster cells, and polish the odd coordinates with -a:&lt;br /&gt;
   g.region n=222504.439000 s=219456.442000 e=640081.274000 w=637033.274000 res=2 -a -p&lt;br /&gt;
&lt;br /&gt;
==== QUESTION 1: Are these Lidar data sufficiently dense? ====&lt;br /&gt;
&lt;br /&gt;
We compute a raster map representing number of points per cell&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binn2m method=n&lt;br /&gt;
&lt;br /&gt;
Look at the resulting raster map:&lt;br /&gt;
   d.mon x0&lt;br /&gt;
   d.font Vera&lt;br /&gt;
   d.rast.leg lid_792_binn2m&lt;br /&gt;
&lt;br /&gt;
Report point distribution in percent:&lt;br /&gt;
   r.report lid_792_binn2m unit=p&lt;br /&gt;
   r.univar lid_792_binn2m&lt;br /&gt;
   # (sometimes do `r.null setnull=0` first)&lt;br /&gt;
&lt;br /&gt;
Reduce the resolution to 6m to get at least one point per cell:&lt;br /&gt;
   g.region res=6 -a -p&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binn6m method=n&lt;br /&gt;
   d.rast.leg lid_792_binn6m&lt;br /&gt;
   # ... a few holes remain but that's probably acceptable.&lt;br /&gt;
&lt;br /&gt;
Compute raster maps representing mean elevation for each cell:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binmean6m  \&lt;br /&gt;
            meth=mean&lt;br /&gt;
   d.rast.leg lid_792_binmean6m&lt;br /&gt;
&lt;br /&gt;
Compute range and variation:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binrange6m \&lt;br /&gt;
            meth=range&lt;br /&gt;
   d.rast.leg lid_792_binrange6m&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binvar6m   \&lt;br /&gt;
            meth=coeff_var&lt;br /&gt;
   d.rast.leg lid_792_binvar6m&lt;br /&gt;
&lt;br /&gt;
Overlay other GIS maps to map of mean elevation:&lt;br /&gt;
   d.rast.leg lid_792_binmean6m&lt;br /&gt;
   d.vect streets_wake&lt;br /&gt;
   d.vect lakes type=boundary&lt;br /&gt;
   d.vect streams&lt;br /&gt;
&lt;br /&gt;
Now we continue to work in a zoomed spatial subset of the area.&lt;br /&gt;
&lt;br /&gt;
We import only points in the rural area without building topology and using z-coordinate for elevation:&lt;br /&gt;
   g.region rural_1m -p&lt;br /&gt;
   v.in.ascii -ztbr BE3720079200WC20020829m.txt \&lt;br /&gt;
              out=elev_lidrural_bepts z=3&lt;br /&gt;
&lt;br /&gt;
Clear monitor show black-white orthophoto:&lt;br /&gt;
   d.erase -f&lt;br /&gt;
   d.rast ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
We now use already prepared Lidar vector point maps:&lt;br /&gt;
* elev_lid792_bepts:   Rural area (in tile 792), bare earth lidar point cloud&lt;br /&gt;
* elev_lidrural_mrpts: Rural area multiple return lidar point cloud&lt;br /&gt;
&lt;br /&gt;
Look at ground data:&lt;br /&gt;
d.vect elev_lidrural_bepts siz=2 col=red&lt;br /&gt;
&lt;br /&gt;
Look at &amp;quot;surface&amp;quot; data:&lt;br /&gt;
d.vect elev_lidrural_mrpts siz=1 col=green&lt;br /&gt;
&lt;br /&gt;
Visualize 3D Lidar multi-return points:&lt;br /&gt;
nviz elev_lid792_1m point=elev_lidrural_mrpts&lt;br /&gt;
 # Visualize -&amp;gt; Vector Points -&amp;gt; 3D points&lt;br /&gt;
 #                            -&amp;gt; Icon size 2.25&lt;br /&gt;
 #  --&amp;gt; GRASS book p. 253, fig. 3.15 (see also screenshot [http://www.grassbook.org/about_menu3rd.php here])&lt;br /&gt;
&lt;br /&gt;
==== DEM/DSM separation the simple way by selection of Lidar returns ====&lt;br /&gt;
&lt;br /&gt;
Find out where we have multiple returns:&lt;br /&gt;
   d.rast ortho_2001_t792_1m&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=1&amp;quot; col=red siz=2&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=2&amp;quot; col=green siz=3&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=3&amp;quot; col=blue&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=4&amp;quot; col=yellow&lt;br /&gt;
&lt;br /&gt;
DTM: extract last return(s):&lt;br /&gt;
   v.extract elev_lidrural_mrpts out=elev_lidrural_mrpts_first where=&amp;quot;Return &amp;lt; 2&amp;quot;&lt;br /&gt;
   nviz elev_lid792_1m point=elev_lidrural_mrpts_first&lt;br /&gt;
&lt;br /&gt;
Interpolate to map and look at it:&lt;br /&gt;
   v.surf.rst elev_lidrural_mrpts_first layer=0 elev=elev_lidrural_mrpts_DTM&lt;br /&gt;
   nviz elev_lidrural_mrpts_DTM col=ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
DSM: extract first return(s):&lt;br /&gt;
   v.extract elev_lidrural_mrpts out=elev_lidrural_mrpts_last where=&amp;quot;Return &amp;gt; 2&amp;quot;&lt;br /&gt;
   nviz elev_lid792_1m point=elev_lidrural_mrpts_last&lt;br /&gt;
&lt;br /&gt;
Interpolate to map and look at it:&lt;br /&gt;
   v.surf.rst elev_lidrural_mrpts_first layer=0 elev=elev_lidrural_mrpts_DSM&lt;br /&gt;
   nviz elev_lidrural_mrpts_DSM col=ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== DEM/DSM separation the more complex way ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;''TODO: verify order of first and last returns in below text''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
General procedure:&lt;br /&gt;
* Lidar point clouds (first and last return) are imported with {{cmd|v.in.ascii}} (-b flag to not build the topology).&lt;br /&gt;
* Outlier detection is done with {{cmd|v.outlier}} on both first and last return data (NB currently a selection of &amp;lt;/=4 for soe/son in {{cmd|v.outlier}} results in an error message).&lt;br /&gt;
* Then, with {{cmd|v.lidar.edgedetection}}, edges are detected from last return data.&lt;br /&gt;
* The building are generated by {{cmd|v.lidar.growing}} from detected edges.&lt;br /&gt;
* The resulting data are post-processed with {{cmd|v.lidar.correction}}.&lt;br /&gt;
* Finally, the DTM and DSM are generated with {{cmd|v.surf.bspline}} (DTM: uses the 'v.lidar.correction' output; DSM: uses last return output from outlier detection).&lt;br /&gt;
* NB for {{cmd|v.outlier}}, {{cmd|v.lidar.edgedetection}} and {{cmd|v.surf.bspline}}, one spline steps equates to 1m. It is recommended as a starting point that the choice of spline step is roughly 3 or 4 times the planimetric resolution (potential grid resolution) of your data. Experiment from there to obtain better results.&lt;br /&gt;
&lt;br /&gt;
  export GRASS_OVERWRITE=1&lt;br /&gt;
  v.extract elev_lidrural_mrpts out=elev_lidfirst_pts \&lt;br /&gt;
            where=&amp;quot;return = 1&amp;quot;&lt;br /&gt;
  v.extract elev_lidrural_mrpts out=elev_lidlast_pts  \&lt;br /&gt;
            where=&amp;quot;return &amp;gt;= 2&amp;quot;&lt;br /&gt;
  d.vect elev_lidfirst_pts col=red&lt;br /&gt;
  d.vect elev_lidlast_pts col=green&lt;br /&gt;
&lt;br /&gt;
Outlier detection and separation into two maps&lt;br /&gt;
  # 1st return&lt;br /&gt;
  v.outlier elev_lidfirst_pts output=elev_lidfirst_clean \&lt;br /&gt;
            outlier=elev_lidfirst_outl&lt;br /&gt;
  d.erase&lt;br /&gt;
  d.vect elev_lidfirst_clean siz=2&lt;br /&gt;
  d.vect elev_lidfirst_outl col=red&lt;br /&gt;
&lt;br /&gt;
2nd return&lt;br /&gt;
  v.outlier elev_lidlast_pts output=elev_lidlast_clean \&lt;br /&gt;
            outlier=elev_lidlast_outl&lt;br /&gt;
  d.erase&lt;br /&gt;
  d.vect elev_lidlast_clean siz=2&lt;br /&gt;
  d.vect elev_lidlast_outl col=red&lt;br /&gt;
  # -&amp;gt; no outliers visible&lt;br /&gt;
&lt;br /&gt;
Run an edge detection on cleaned last return:&lt;br /&gt;
  v.lidar.edgedetection elev_lidlast_clean \&lt;br /&gt;
                        out=elev_lidlast_edges&lt;br /&gt;
&lt;br /&gt;
Buildings/vegetation are generated from detected edges (bug: you may need to specify the mapset):&lt;br /&gt;
  v.lidar.growing elev_lidlast_edges@lidar out=elev_lidlast_grow \&lt;br /&gt;
                  first=elev_lidfirst_clean&lt;br /&gt;
&lt;br /&gt;
Compare:&lt;br /&gt;
  d.vect elev_lidlast_pts col=blue&lt;br /&gt;
  d.vect elev_lidlast_grow col=green&lt;br /&gt;
&lt;br /&gt;
Correction (this is applied twice):&lt;br /&gt;
  v.lidar.correction elev_lidlast_grow out=elev_lidlast_corr1 \&lt;br /&gt;
                     terrain=elev_lidlast_terr1&lt;br /&gt;
  v.lidar.correction elev_lidlast_corr1 out=elev_lid_dsm \&lt;br /&gt;
                     terrain=elev_lid_dtm&lt;br /&gt;
&lt;br /&gt;
DEM and DSM are generated:&lt;br /&gt;
  # Estimation of lambda_i parameter with cross validation (watch for RMS!)&lt;br /&gt;
  # and note use of bicubic for DSM and bilinear for DTM here and below&lt;br /&gt;
  v.surf.bspline -c elev_lid_dsm sie=100 sin=100 method=bicubic&lt;br /&gt;
  v.surf.bspline -c elev_lid_dtm sie=100 sin=100 method=bilinear&lt;br /&gt;
  &lt;br /&gt;
  # From the cross-validation, we select lambda with minimal RMS error:&lt;br /&gt;
  # generate raster surfaces at 1m resolution &lt;br /&gt;
  v.surf.bspline elev_lid_dsm raster=lidar_dsm lambda=0.1 method=bicubic&lt;br /&gt;
  v.surf.bspline elev_lid_dtm raster=lidar_dtm lambda=0.0001 method=bilinear&lt;br /&gt;
  &lt;br /&gt;
  d.rast lidar_dsm&lt;br /&gt;
  d.rast lidar_dtm&lt;br /&gt;
  &lt;br /&gt;
  nviz lidar_dsm,lidar_dtm \&lt;br /&gt;
       col=ortho_2001_t792_1m,ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
...with the position slider you can visually separate DSM and DEM, increase z slider (Visualize -&amp;gt; Raster Surface -&amp;gt; Position).&lt;br /&gt;
&lt;br /&gt;
=== Reclassification ===&lt;br /&gt;
&lt;br /&gt;
As vector points&lt;br /&gt;
* {{cmd|v.reclass|version=70}} command&lt;br /&gt;
&lt;br /&gt;
As raster map:&lt;br /&gt;
* {{cmd|r.reclass|version=70}} command&lt;br /&gt;
&lt;br /&gt;
== Sample LIDAR data ==&lt;br /&gt;
&lt;br /&gt;
=== Widely used in GRASS tutorials ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.grassbook.org/data_menu2nd.php Jockey's Ridge, NC, LIDAR dataset]&lt;br /&gt;
* [http://www.grassbook.org/data_menu3rd.php North Carolina OSGeo Edu data set] (includes multi-return LIDAR data)&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
* United States Antarctic Resource Center: LIDAR High-resolution DEM Final DATA Downloads&amp;lt;BR&amp;gt;http://usarc.usgs.gov/lidar_dload.shtml&lt;br /&gt;
&lt;br /&gt;
* LIDAR ALSM Research, Arizona State University Ative Tectonics, Research Group&amp;lt;BR&amp;gt;  http://lidar.asu.edu/research.html and http://www.geongrid.org/science/lidar.html&lt;br /&gt;
&lt;br /&gt;
* USGS Center for LIDAR Information Coordination and Knowledge (aka CLICK) - USGS LiDAR point cloud distribution site&amp;lt;BR&amp;gt; http://lidar.cr.usgs.gov&lt;br /&gt;
&lt;br /&gt;
* Washington State Geospatial Data Archive, Mount Saint Helens - Lidar Data &amp;lt;BR&amp;gt;https://wagda.lib.washington.edu/data/type/elevation/lidar/st_helens/&lt;br /&gt;
&lt;br /&gt;
* Puget Sound Lidar Consortium, public-domain high-resolution topography for western Washington&amp;lt;BR&amp;gt;http://pugetsoundlidar.ess.washington.edu/index.htm&lt;br /&gt;
&lt;br /&gt;
* NOAA Topographic Change Mapping LIDAR Data Retrieval Tool (LDART) NOAA Coastal Services Center&amp;lt;BR&amp;gt;http://maps.csc.noaa.gov/TCM/&lt;br /&gt;
&lt;br /&gt;
* Landmap, LIDAR Data from the Environment Agency &amp;lt;BR&amp;gt;http://www.landmap.ac.uk/lidar/lidar.html&lt;br /&gt;
&lt;br /&gt;
* Northern California LIDAR data &amp;lt;BR&amp;gt;http://quake.usgs.gov/research/geology/lidar/  and http://core2.gsfc.nasa.gov/lidar/terrapoint/&lt;br /&gt;
&lt;br /&gt;
* IDAHO GEOSPATIAL , Bare Earth LIDAR DEM Download - UTM &amp;lt;BR&amp;gt;http://inside.uidaho.edu/geodata/LiDAR/LiDARBareEarthDEM_DownloadUTM.htm&lt;br /&gt;
&lt;br /&gt;
* EarthScope Spatial Data Explorer - A java application for querying, browsing, and acquiring data from the EarthScope Spatial Data Repository. Currently includes a number of LiDAR datasets. &amp;lt;BR&amp;gt;http://www.earthscope.org/data/lidar.php&lt;br /&gt;
&lt;br /&gt;
* LIDAR Galley &amp;lt;BR&amp;gt;https://peoiewswebinfo.monmouth.army.mil/JPSD/LIDAR_Gallery.htm&lt;br /&gt;
&lt;br /&gt;
* South Tyrol - Download of DTMs (Homepage in German or Italian) &amp;lt;BR&amp;gt; http://www.provinz.bz.it/raumordnung/grundkarten/utm/default_d.htm&lt;br /&gt;
&lt;br /&gt;
* libLAS's sample file collection&lt;br /&gt;
:http://liblas.org/samples/&lt;br /&gt;
&lt;br /&gt;
* NASA's Laser Vegetation Imaging Sensor (a.k.a. the Land, Vegetation, and Ice Sensor) or &amp;quot;LVIS&amp;quot;&lt;br /&gt;
:https://lvis.gsfc.nasa.gov&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[Contour lines to DEM]] interpolation module trials&lt;br /&gt;
* [http://liblas.org/ libLAS] - LAS 1.0/1.1 ASPRS LiDAR data translation toolset&lt;br /&gt;
* [http://code.google.com/p/fullanalyze/ Fullanalyze] software based on MATIS&lt;br /&gt;
&lt;br /&gt;
;Breaklines&lt;br /&gt;
* Not very well developed in GRASS so far, but we'd like to change that&lt;br /&gt;
* {{AddonCmd|v.surf.icw}} (only suitable for ~ 200 input points)&lt;br /&gt;
* [http://surfit.sourceforge.net/ SurfIt] (GPL, Tck/Tk)&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://surgeweb.sweb.cz/surgemain.htm SurGe] (Trial/shareware) &amp;lt;/strike&amp;gt;&lt;br /&gt;
* [http://grasswiki.osgeo.org/wiki/TIN_with_breaklines v.triangle] add-on module for construction TIN with breaklines.&lt;br /&gt;
&lt;br /&gt;
== Related publications ==&lt;br /&gt;
&lt;br /&gt;
* Brovelli, M.A., Lucca, S., 2011. Filtering LiDAR with GRASS: overview of the method and comparisons with Terrascan. Italian Journal of Remote Sensing 93-105. ([http://www.aitjournal.com/articleView.aspx?ID=209 PDF])&lt;br /&gt;
* Brovelli, M.A., Cannata, M. &amp;amp; Longoni, U.M., 2004. LIDAR data filtering and DTM interpolation within GRASS. Transactions in GIS, 8(2), pp.155-174. [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9671.2004.00173.x/pdf PDF]&lt;br /&gt;
* Cebecauer, T., Hofierka, J. &amp;amp; Suri, M., 2002. Processing digital terrain models by regularized spline with tension: tuning interpolation parameters for different input datasets. In Proc. of the Open Source Free Software GIS -- GRASS users conference 2002, Trento, Italy, 11-13 September 2002. [http://www.ing.unitn.it/~grass/proceedings/proceedings/pdfs/Cebecauer_Tomas.pdf PDF]&lt;br /&gt;
* Mitasova, Helena et al., 2009. Raster-based analysis of coastal terrain dynamics from multitemporal Lidar data. Journal of Coastal Research, 25(2), pp.507-514.&lt;br /&gt;
* Mitasova, H, Mitas, L. &amp;amp; Harmon, R., 2005. Simultaneous spline approximation and topographic analysis for lidar elevation data in open-source GIS. Geoscience and Remote Sensing Letters, IEEE, 2(4), pp.379, 375. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.2934&amp;amp;rep=rep1&amp;amp;type=pdf PDF]&lt;br /&gt;
* Mitasova, H. et al., 2003. Spatio-temporal analysis of beach morphology using LIDAR, RTK-GPS and Open source GRASS GIS. In Proceedings Coastal Sediments. [http://skagit.meas.ncsu.edu/%7Ehelena/publwork/papers/pcoastsedp10.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
Search via [http://scholar.google.com/scholar?q=lidar+grass+gis Google Scholar]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://knol.google.com/k/aerial-extraction-of-roof-surfaces-for-solar-analysis Aerial Extraction of Roof Surfaces for Solar Analysis]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category: Interpolation]]&lt;br /&gt;
[[Category: Image processing]]&lt;br /&gt;
[[Category: Import]]&lt;br /&gt;
[[Category: Raster]]&lt;br /&gt;
[[Category: Vector]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=LIDAR&amp;diff=17951</id>
		<title>LIDAR</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=LIDAR&amp;diff=17951"/>
		<updated>2013-02-24T22:21:16Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Import */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt; LIDAR and Multi-beam Swath bathymetry data &amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Point cloud data, as a type of representation of 3D surfaces, are usually produced by airborne or on-ground laser scanning, also known as Light Detection and Ranging (LiDAR). The data are often provided as sets of very dense (x, y, z) points or in a more complex, public file binary format called LAS that may include multiple returns as well as intensities. GRASS GIS supports basic and advanced lidar data processing and analysis.&lt;br /&gt;
&lt;br /&gt;
== Modules ==&lt;br /&gt;
&lt;br /&gt;
In this section various modules are introduced.&lt;br /&gt;
&lt;br /&gt;
=== Import ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.in.xyz}} - Create a raster map from an assemblage of many coordinates using univariate statistics. ([http://hamish.bowman.googlepages.com/grassfiles#xyz example])&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.in.lidar}} - (GRASS 7 only) Create a raster map from a LAS format LiDAR file using univariate statistics and filtering. r.in.lidar is based on r.in.xyz. It can directly read a binary *.las file when GRASS is compiled with libLAS support. In addition to the options of r.in.xyz, r.in.lidar provides some basic lidar point fileter options.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.in.ascii}} - Import data from an ASCII file to GRASS vector format.&lt;br /&gt;
: ''Due to memory overhead vector point imports will be limited to a few million data points unless topology and database creation is skipped with the '''-bt''' flags''. It may also be useful to clip the import file to only accept points falling within the current region by using the '''-r''' flag. See {{cmd|g.region}} for details on specifying the region bounds.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.in.lidar}} - (GRASS 7 only). Creates a vector points file from a binary LAS format LiDAR file (*.las or *.laz). r.in.lidar also can create a new location based on the LAS file, and can filter the input points by return and subregion.&lt;br /&gt;
&lt;br /&gt;
=== Analysis ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.outlier}} - Removes outliers from vector point data.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.edgedetection}} - Detect the object's edges from a LIDAR data set.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.growing}} - Building contour determination and Region Growing algorithm for determining the building inside.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.lidar.correction}} - Correction of the v.lidar.growing output. It is the last of the three algorithms for LIDAR filtering.&lt;br /&gt;
&lt;br /&gt;
''References:''&lt;br /&gt;
&lt;br /&gt;
* Detailed description: [http://www.foss4g2006.org/getFile.py/access?contribId=48&amp;amp;sessionId=59&amp;amp;resId=7&amp;amp;materialId=slides&amp;amp;confId=1 here] (FOSS4G 2006)&lt;br /&gt;
* Summarised version: [http://geomatica.como.polimi.it/corsi/remote_sensing/LiDAR_filtering_with_GRASS-lab4.pdf here] (2010)&lt;br /&gt;
* Calibration of the filtering parameters (around 20 parameters) by integrating the USGS UCODE and GRASS, see [http://www.isprs.org/proceedings/XXXVIII/1_4_7-W5/paper/Brovelli-126.pdf here]&lt;br /&gt;
&lt;br /&gt;
=== Surface generation ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.rst}} - Spatial approximation and topographic analysis using regularized spline with tension.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.idw}} - Surface interpolation from vector point data by Inverse Distance Squared Weighting.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.surf.bspline}} - Surface interpolation from vector point data by bicubic or bilineal interpolation with Tykhonov regularization.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|r.fillnulls}} - Fills no-data areas in raster maps using v.surf.rst splines interpolation.&lt;br /&gt;
&lt;br /&gt;
* {{AddonCmd|r.surf.nnbathy}} - Natural Neighbor interpolation using the 'nn' addon.&lt;br /&gt;
&lt;br /&gt;
== Swath Bathymetry Tools ==&lt;br /&gt;
&lt;br /&gt;
''see also the [[Marine_Science#Multibeam_sonar_processing]] wiki page''&lt;br /&gt;
&lt;br /&gt;
* The [http://david.p.finlayson.googlepages.com/swathwidth v.swathwidth] module by David Finlayson for planning surveys. (development page)&lt;br /&gt;
&lt;br /&gt;
* An example of [http://bambi.otago.ac.nz/hamish/grass/gdal/sidescan_warp.html post-processing scanned paper sidescan swaths] using thin plate spline warping with [http://www.gdal.org/ GDAL's] &amp;quot;&amp;lt;tt&amp;gt;gdalwarp -tps&amp;lt;/tt&amp;gt;&amp;quot; function. (debugging page)&lt;br /&gt;
&lt;br /&gt;
* [[MB-System|GRASS integration]] with [http://www.ldeo.columbia.edu/res/pi/MB-System/ MB-System] (GPL) software for processing Multibeam and Sidescan Sonar data. GRASS + [[MB-System|MBsys]] + [[GMT]] make a nice scriptable trio.&lt;br /&gt;
&lt;br /&gt;
== LIDAR Tools ==&lt;br /&gt;
&lt;br /&gt;
*  {{cmd|r.terraflow}} - computation of flow direction, flow accumulation and other basic topographic terrain indices from massive raster digital elevation models (DEM). From the Duke University [http://terrain.cs.duke.edu/ STREAM] project.&lt;br /&gt;
&lt;br /&gt;
* [http://mpa.itc.it/markus/grass61/demos/rlake/ Flood simulation] using {{cmd|r.lake}}. Includes fancy [[NVIZ]] visualization of Trento, Italy, by Markus Neteler.&lt;br /&gt;
&lt;br /&gt;
* [http://www.cs.unc.edu/~isenburg/software/ LAStools] are a set of simple command line tools for converting to/from ASCII, viewing, comparing, and compressing LIDAR data. ''While free to use source code is available for older verions, newer versions are not open source, only work on MS Windows, and are no longer free for commercial or government use.''&lt;br /&gt;
&lt;br /&gt;
* [http://www.liblas.org libLAS] ASPRS LiDAR data translation tools&lt;br /&gt;
&lt;br /&gt;
* See also [[LIDAR#Analysis|LIDAR Analysis]]&lt;br /&gt;
&lt;br /&gt;
== Micro-tutorial for LAS data import ==&lt;br /&gt;
&lt;br /&gt;
''The following scripts are given for UNIX Bourne Shell; MS-Windows users should use the Msys terminal to use them.''&lt;br /&gt;
&lt;br /&gt;
=== Preparation ===&lt;br /&gt;
&lt;br /&gt;
==== Conversion of text files to LAS ====&lt;br /&gt;
&lt;br /&gt;
[http://www.liblas.org/ libLAS] supports the following column types:&lt;br /&gt;
   x - x coordinate&lt;br /&gt;
   y - y coordinate&lt;br /&gt;
   z - z coordinate&lt;br /&gt;
   a - scan angle&lt;br /&gt;
   i - intensity&lt;br /&gt;
   n - number of returns for given pulse (1..n)&lt;br /&gt;
   r - number of this return (1..r)&lt;br /&gt;
   c - classification&lt;br /&gt;
   u - user data (but only 1 byte)&lt;br /&gt;
   p - point source ID&lt;br /&gt;
   e - edge of flight line&lt;br /&gt;
   d - direction of scan flag&lt;br /&gt;
   t - GPS time&lt;br /&gt;
   s - skip column&lt;br /&gt;
&lt;br /&gt;
Sample text data such as:&lt;br /&gt;
   returntime,pulse,east,north,height,intensity,stripe&lt;br /&gt;
   549778.907200,1,673999.940,5099680.080,507.425,20.0,45105&lt;br /&gt;
   ...&lt;br /&gt;
&lt;br /&gt;
can be converted to LAS format like this:&lt;br /&gt;
   returntime - t&lt;br /&gt;
   pulse - r&lt;br /&gt;
   east - x&lt;br /&gt;
   north - y&lt;br /&gt;
   height - z&lt;br /&gt;
   intensity - i&lt;br /&gt;
   stripe - s&lt;br /&gt;
&lt;br /&gt;
First parse (sanity check):&lt;br /&gt;
   txt2las -parse trxyzis data.asc&lt;br /&gt;
&lt;br /&gt;
Then convert:&lt;br /&gt;
   txt2las -parse trxyzis -i data.asc -o data.las &lt;br /&gt;
&lt;br /&gt;
While you may not need to do this conversion for GRASS import, the resulting files are way smaller than the uncompressed text files; additionally, they are in a defined format.&lt;br /&gt;
&lt;br /&gt;
=== LAS Import ===&lt;br /&gt;
&lt;br /&gt;
* Use the [http://www.liblas.org libLAS] utilities to import LAS data into GRASS. &lt;br /&gt;
* Data stored in text files can generally be imported directly into GRASS.&lt;br /&gt;
&lt;br /&gt;
* The data used in the rest of this micro-tutorial can be found at [http://www.appliedimagery.com/downloads/sampledata/Serpent%20Mound%20Model%20LAS%20Data.las appliedimagery.com].&lt;br /&gt;
&lt;br /&gt;
==== Import LAS as raster DEM ====&lt;br /&gt;
&lt;br /&gt;
Check bounds and SRS:&lt;br /&gt;
 $ lasinfo &amp;quot;Serpent_Mound_Model_LAS_Data.las&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
  [...]&lt;br /&gt;
  Min X Y Z                  289020.900000 4320942.610000 166.780000&lt;br /&gt;
  Max X Y Z                  290106.020000 4323641.570000 215.480000&lt;br /&gt;
 Spatial Reference           +proj=utm +zone=17 +ellps=WGS84 +units=m &lt;br /&gt;
&lt;br /&gt;
After creating a suitable UTM zone 17 location (EPSG:32617) &lt;br /&gt;
set the region according to the information from lasinfo at 1m resolution, rounding grid outwards to align to whole meters:&lt;br /&gt;
 GRASS&amp;gt; {{cmd|g.region}} n=4323641.57 s=4320942.61 w=289020.90 e=290106.02 res=1 -ap&lt;br /&gt;
&lt;br /&gt;
Finally, import with {{cmd|r.in.xyz}} with data piped directly from the &amp;lt;tt&amp;gt;las2txt&amp;lt;/tt&amp;gt; program and set a nice equalized color table:&lt;br /&gt;
 BASEMAP=&amp;quot;Serpent_Mound_Model_LAS&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 las2txt --stdout --delimiter ' ' &amp;quot;${BASEMAP}_Data.las&amp;quot; | \&lt;br /&gt;
    r.in.xyz in=- out=${BASEMAP}_Data fs=space method=mean&lt;br /&gt;
 &lt;br /&gt;
 {{cmd|r.colors}} ${BASEMAP}_Data color=bcyr -e&lt;br /&gt;
&lt;br /&gt;
The above example uses the default z-elevation level as the 3rd term, but by using the &amp;lt;tt&amp;gt;las2txt --parse&amp;lt;/tt&amp;gt; command other fields (such as intensity) can be imported instead via &amp;quot;&amp;lt;tt&amp;gt;--parse xyi&amp;lt;/tt&amp;gt;&amp;quot;. Unfortunately there seem to be a number of versions of las2txt and each are called slightly differently. You might have to experiment a little to get the right incantation.&lt;br /&gt;
&lt;br /&gt;
==== Import LAS as vector points in GRASS 6 ====&lt;br /&gt;
&lt;br /&gt;
Region setting (establishing the grid) is not needed for vector features so we can go directly to the import step. To deal with millions of input points {{cmd|v.in.ascii}} should be run with the options to skip creation of an attribute database and building topology as these can consume large amounts of memory. Note that vector maps without topology built are somewhat limited in their ability to be processed. Most LIDAR specific modules have been adapted to not require &lt;br /&gt;
topology. Even so, after initial cleaning steps it is often more efficient to work with huge datasets in GRASS as raster data.&lt;br /&gt;
&lt;br /&gt;
 las2txt --stdout &amp;quot;${BASEMAP}_Data.las&amp;quot; | \&lt;br /&gt;
   v.in.ascii -tbz z=3 out=&amp;quot;${BASEMAP}_pts&amp;quot; fs=space&lt;br /&gt;
&lt;br /&gt;
If topology was built, you can use {{cmd|d.vect}}'s -z flag to colorize by elevation value. Without topology you can still colorize, but you need to use color rules based on absolute elevations, not percentage of scale.&lt;br /&gt;
&amp;lt;!-- need an absolute color map gradiated across the elev range --&amp;gt;&lt;br /&gt;
 # display colorized points for data with built topology&lt;br /&gt;
 d.vect map=lidar_pts size=1 -z zcolor=elevation&lt;br /&gt;
&lt;br /&gt;
* After import as points you can then use the v.lidar tools to clean the data: {{cmd|v.lidar.correction}}, {{cmd|v.lidar.edgedetection}}, {{cmd|v.lidar.growing}}, and {{cmd|v.outlier}}.&lt;br /&gt;
&lt;br /&gt;
* Vector points can be interpolated into raster DEMs with a number of modules, including {{cmd|v.surf.rst}}, {{cmd|v.surf.bspline}}, and {{cmd|v.surf.idw}}.&lt;br /&gt;
&lt;br /&gt;
==== Import LAS in GRASS 7 ====&lt;br /&gt;
&lt;br /&gt;
As vector points&lt;br /&gt;
* GRASS 7 offers the {{cmd|v.in.lidar|version=70}} command&lt;br /&gt;
&lt;br /&gt;
As raster: map:&lt;br /&gt;
* {{cmd|r.in.lidar|version=70}} command&lt;br /&gt;
&lt;br /&gt;
=== Clean imported raster DEM ===&lt;br /&gt;
&lt;br /&gt;
(fill holes)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 # convert to vector points&lt;br /&gt;
 r.to.vect -z feature=point in=${BASEMAP}_Data out=${BASEMAP}_pt&lt;br /&gt;
 &lt;br /&gt;
 # interpolate using a regularized spline fit&lt;br /&gt;
 # this is very slow, but produces very high quality output&lt;br /&gt;
 v.surf.rst layer=0 in=${BASEMAP}_pt elev=${BASEMAP}.rst&lt;br /&gt;
 &lt;br /&gt;
 # create 5m buffer area around original data points&lt;br /&gt;
 r.buffer in=${BASEMAP}_Data out=${BASEMAP}.5m_buff dist=5&lt;br /&gt;
 &lt;br /&gt;
 # crop interpolated DEM to only include areas nearby actual data&lt;br /&gt;
 r.mapcalc &amp;quot;${BASEMAP}.filled = \&lt;br /&gt;
    if( isnull(${BASEMAP}.5m_buff), null(), ${BASEMAP}.rst)&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # set colors to something nice&lt;br /&gt;
 r.colors ${BASEMAP}.filled color=bcyr -e&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending on your needs, {{cmd|r.fillnulls}}, {{cmd|v.surf.bspline}}, {{cmd|v.surf.idw}}, {{cmd|r.surf.idw}}, {{cmd|r.surf.idw2}}, or [[GRASS_AddOns#r.surf.nnbathy|r.surf.nnbathy]] may be faster than the {{cmd|v.surf.rst}} method.&lt;br /&gt;
&lt;br /&gt;
=== Visualize raster DEM in 3D ===&lt;br /&gt;
&lt;br /&gt;
 nviz ${BASEMAP}.filled&lt;br /&gt;
&lt;br /&gt;
* Set z-exag to 2.0&lt;br /&gt;
* In Visualize &amp;amp;rarr; Raster Surfaces set the fine (final) resolution to 1, and coarse (preview) resolution to 5.&lt;br /&gt;
* Set the height to 500.0, the perspective to 15.0, and drag the view-puck to the North-West and reasonably zoomed in.&lt;br /&gt;
: You should now be able to see the serpent:&lt;br /&gt;
&lt;br /&gt;
[[Image:LAS_serpent_nviz.jpg|thumb|center|400px|The Great Serpent Mound, Adams County, Ohio, USA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is possible to show vector points in 3D, but millions of them may make the program run slow. Topology is required ({{cmd|v.build}}). Tick the &amp;quot;3D&amp;quot; box in the Visualize &amp;amp;rarr; Vector points dialog.&lt;br /&gt;
&lt;br /&gt;
=== LAS Export ===&lt;br /&gt;
&lt;br /&gt;
==== Export to LAS ====&lt;br /&gt;
&lt;br /&gt;
This is the reverse of the import step, but using {{cmd|v.out.ascii}} or {{cmd|r.out.xyz}} with ''txt2las''.&lt;br /&gt;
Because the v.out.ascii module exports category number which we are not interested in, we cut it away with the UNIX ''cut'' utility.&lt;br /&gt;
&lt;br /&gt;
 v.out.ascii ${BASEMAP}_pts fs=space | cut -f1-3 -d' ' \&lt;br /&gt;
     &amp;gt; ${BASEMAP}_export.txt&lt;br /&gt;
 &lt;br /&gt;
 txt2las --parse xyz -i ${BASEMAP}_export.txt&lt;br /&gt;
&lt;br /&gt;
== Micro-tutorial for LIDAR data analysis ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simple analysis of single return data ===&lt;br /&gt;
&lt;br /&gt;
Data source: North Carolina sample data set (Lidar data from 2001, near Raleigh, North Carolina). Download from&lt;br /&gt;
   http://www.grassbook.org/ncexternal/&lt;br /&gt;
   -&amp;gt; File: BE3720079200WC20020829m.txt 3.6M (lidar bare earth points [spm])&lt;br /&gt;
&lt;br /&gt;
Scan input file for spatial extent. The -g flag shows the result in a convenient copy-paste format for {{cmd|g.region}}:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=dummy -s -g&lt;br /&gt;
&lt;br /&gt;
We use this output to set region, predefine 2m raster cells, and polish the odd coordinates with -a:&lt;br /&gt;
   g.region n=222504.439000 s=219456.442000 e=640081.274000 w=637033.274000 res=2 -a -p&lt;br /&gt;
&lt;br /&gt;
==== QUESTION 1: Are these Lidar data sufficiently dense? ====&lt;br /&gt;
&lt;br /&gt;
We compute a raster map representing number of points per cell&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binn2m method=n&lt;br /&gt;
&lt;br /&gt;
Look at the resulting raster map:&lt;br /&gt;
   d.mon x0&lt;br /&gt;
   d.font Vera&lt;br /&gt;
   d.rast.leg lid_792_binn2m&lt;br /&gt;
&lt;br /&gt;
Report point distribution in percent:&lt;br /&gt;
   r.report lid_792_binn2m unit=p&lt;br /&gt;
   r.univar lid_792_binn2m&lt;br /&gt;
   # (sometimes do `r.null setnull=0` first)&lt;br /&gt;
&lt;br /&gt;
Reduce the resolution to 6m to get at least one point per cell:&lt;br /&gt;
   g.region res=6 -a -p&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binn6m method=n&lt;br /&gt;
   d.rast.leg lid_792_binn6m&lt;br /&gt;
   # ... a few holes remain but that's probably acceptable.&lt;br /&gt;
&lt;br /&gt;
Compute raster maps representing mean elevation for each cell:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binmean6m  \&lt;br /&gt;
            meth=mean&lt;br /&gt;
   d.rast.leg lid_792_binmean6m&lt;br /&gt;
&lt;br /&gt;
Compute range and variation:&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binrange6m \&lt;br /&gt;
            meth=range&lt;br /&gt;
   d.rast.leg lid_792_binrange6m&lt;br /&gt;
   r.in.xyz BE3720079200WC20020829m.txt out=lid_792_binvar6m   \&lt;br /&gt;
            meth=coeff_var&lt;br /&gt;
   d.rast.leg lid_792_binvar6m&lt;br /&gt;
&lt;br /&gt;
Overlay other GIS maps to map of mean elevation:&lt;br /&gt;
   d.rast.leg lid_792_binmean6m&lt;br /&gt;
   d.vect streets_wake&lt;br /&gt;
   d.vect lakes type=boundary&lt;br /&gt;
   d.vect streams&lt;br /&gt;
&lt;br /&gt;
Now we continue to work in a zoomed spatial subset of the area.&lt;br /&gt;
&lt;br /&gt;
We import only points in the rural area without building topology and using z-coordinate for elevation:&lt;br /&gt;
   g.region rural_1m -p&lt;br /&gt;
   v.in.ascii -ztbr BE3720079200WC20020829m.txt \&lt;br /&gt;
              out=elev_lidrural_bepts z=3&lt;br /&gt;
&lt;br /&gt;
Clear monitor show black-white orthophoto:&lt;br /&gt;
   d.erase -f&lt;br /&gt;
   d.rast ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
We now use already prepared Lidar vector point maps:&lt;br /&gt;
* elev_lid792_bepts:   Rural area (in tile 792), bare earth lidar point cloud&lt;br /&gt;
* elev_lidrural_mrpts: Rural area multiple return lidar point cloud&lt;br /&gt;
&lt;br /&gt;
Look at ground data:&lt;br /&gt;
d.vect elev_lidrural_bepts siz=2 col=red&lt;br /&gt;
&lt;br /&gt;
Look at &amp;quot;surface&amp;quot; data:&lt;br /&gt;
d.vect elev_lidrural_mrpts siz=1 col=green&lt;br /&gt;
&lt;br /&gt;
Visualize 3D Lidar multi-return points:&lt;br /&gt;
nviz elev_lid792_1m point=elev_lidrural_mrpts&lt;br /&gt;
 # Visualize -&amp;gt; Vector Points -&amp;gt; 3D points&lt;br /&gt;
 #                            -&amp;gt; Icon size 2.25&lt;br /&gt;
 #  --&amp;gt; GRASS book p. 253, fig. 3.15 (see also screenshot [http://www.grassbook.org/about_menu3rd.php here])&lt;br /&gt;
&lt;br /&gt;
==== DEM/DSM separation the simple way by selection of Lidar returns ====&lt;br /&gt;
&lt;br /&gt;
Find out where we have multiple returns:&lt;br /&gt;
   d.rast ortho_2001_t792_1m&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=1&amp;quot; col=red siz=2&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=2&amp;quot; col=green siz=3&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=3&amp;quot; col=blue&lt;br /&gt;
   d.vect elev_lidrural_mrpts where=&amp;quot;return=4&amp;quot; col=yellow&lt;br /&gt;
&lt;br /&gt;
DTM: extract last return(s):&lt;br /&gt;
   v.extract elev_lidrural_mrpts out=elev_lidrural_mrpts_first where=&amp;quot;Return &amp;lt; 2&amp;quot;&lt;br /&gt;
   nviz elev_lid792_1m point=elev_lidrural_mrpts_first&lt;br /&gt;
&lt;br /&gt;
Interpolate to map and look at it:&lt;br /&gt;
   v.surf.rst elev_lidrural_mrpts_first layer=0 elev=elev_lidrural_mrpts_DTM&lt;br /&gt;
   nviz elev_lidrural_mrpts_DTM col=ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
DSM: extract first return(s):&lt;br /&gt;
   v.extract elev_lidrural_mrpts out=elev_lidrural_mrpts_last where=&amp;quot;Return &amp;gt; 2&amp;quot;&lt;br /&gt;
   nviz elev_lid792_1m point=elev_lidrural_mrpts_last&lt;br /&gt;
&lt;br /&gt;
Interpolate to map and look at it:&lt;br /&gt;
   v.surf.rst elev_lidrural_mrpts_first layer=0 elev=elev_lidrural_mrpts_DSM&lt;br /&gt;
   nviz elev_lidrural_mrpts_DSM col=ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== DEM/DSM separation the more complex way ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;''TODO: verify order of first and last returns in below text''&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
General procedure:&lt;br /&gt;
* Lidar point clouds (first and last return) are imported with {{cmd|v.in.ascii}} (-b flag to not build the topology).&lt;br /&gt;
* Outlier detection is done with {{cmd|v.outlier}} on both first and last return data (NB currently a selection of &amp;lt;/=4 for soe/son in {{cmd|v.outlier}} results in an error message).&lt;br /&gt;
* Then, with {{cmd|v.lidar.edgedetection}}, edges are detected from last return data.&lt;br /&gt;
* The building are generated by {{cmd|v.lidar.growing}} from detected edges.&lt;br /&gt;
* The resulting data are post-processed with {{cmd|v.lidar.correction}}.&lt;br /&gt;
* Finally, the DTM and DSM are generated with {{cmd|v.surf.bspline}} (DTM: uses the 'v.lidar.correction' output; DSM: uses last return output from outlier detection).&lt;br /&gt;
* NB for {{cmd|v.outlier}}, {{cmd|v.lidar.edgedetection}} and {{cmd|v.surf.bspline}}, one spline steps equates to 1m. It is recommended as a starting point that the choice of spline step is roughly 3 or 4 times the planimetric resolution (potential grid resolution) of your data. Experiment from there to obtain better results.&lt;br /&gt;
&lt;br /&gt;
  export GRASS_OVERWRITE=1&lt;br /&gt;
  v.extract elev_lidrural_mrpts out=elev_lidfirst_pts \&lt;br /&gt;
            where=&amp;quot;return = 1&amp;quot;&lt;br /&gt;
  v.extract elev_lidrural_mrpts out=elev_lidlast_pts  \&lt;br /&gt;
            where=&amp;quot;return &amp;gt;= 2&amp;quot;&lt;br /&gt;
  d.vect elev_lidfirst_pts col=red&lt;br /&gt;
  d.vect elev_lidlast_pts col=green&lt;br /&gt;
&lt;br /&gt;
Outlier detection and separation into two maps&lt;br /&gt;
  # 1st return&lt;br /&gt;
  v.outlier elev_lidfirst_pts output=elev_lidfirst_clean \&lt;br /&gt;
            outlier=elev_lidfirst_outl&lt;br /&gt;
  d.erase&lt;br /&gt;
  d.vect elev_lidfirst_clean siz=2&lt;br /&gt;
  d.vect elev_lidfirst_outl col=red&lt;br /&gt;
&lt;br /&gt;
2nd return&lt;br /&gt;
  v.outlier elev_lidlast_pts output=elev_lidlast_clean \&lt;br /&gt;
            outlier=elev_lidlast_outl&lt;br /&gt;
  d.erase&lt;br /&gt;
  d.vect elev_lidlast_clean siz=2&lt;br /&gt;
  d.vect elev_lidlast_outl col=red&lt;br /&gt;
  # -&amp;gt; no outliers visible&lt;br /&gt;
&lt;br /&gt;
Run an edge detection on cleaned last return:&lt;br /&gt;
  v.lidar.edgedetection elev_lidlast_clean \&lt;br /&gt;
                        out=elev_lidlast_edges&lt;br /&gt;
&lt;br /&gt;
Buildings/vegetation are generated from detected edges (bug: you may need to specify the mapset):&lt;br /&gt;
  v.lidar.growing elev_lidlast_edges@lidar out=elev_lidlast_grow \&lt;br /&gt;
                  first=elev_lidfirst_clean&lt;br /&gt;
&lt;br /&gt;
Compare:&lt;br /&gt;
  d.vect elev_lidlast_pts col=blue&lt;br /&gt;
  d.vect elev_lidlast_grow col=green&lt;br /&gt;
&lt;br /&gt;
Correction (this is applied twice):&lt;br /&gt;
  v.lidar.correction elev_lidlast_grow out=elev_lidlast_corr1 \&lt;br /&gt;
                     terrain=elev_lidlast_terr1&lt;br /&gt;
  v.lidar.correction elev_lidlast_corr1 out=elev_lid_dsm \&lt;br /&gt;
                     terrain=elev_lid_dtm&lt;br /&gt;
&lt;br /&gt;
DEM and DSM are generated:&lt;br /&gt;
  # Estimation of lambda_i parameter with cross validation (watch for RMS!)&lt;br /&gt;
  # and note use of bicubic for DSM and bilinear for DTM here and below&lt;br /&gt;
  v.surf.bspline -c elev_lid_dsm sie=100 sin=100 method=bicubic&lt;br /&gt;
  v.surf.bspline -c elev_lid_dtm sie=100 sin=100 method=bilinear&lt;br /&gt;
  &lt;br /&gt;
  # From the cross-validation, we select lambda with minimal RMS error:&lt;br /&gt;
  # generate raster surfaces at 1m resolution &lt;br /&gt;
  v.surf.bspline elev_lid_dsm raster=lidar_dsm lambda=0.1 method=bicubic&lt;br /&gt;
  v.surf.bspline elev_lid_dtm raster=lidar_dtm lambda=0.0001 method=bilinear&lt;br /&gt;
  &lt;br /&gt;
  d.rast lidar_dsm&lt;br /&gt;
  d.rast lidar_dtm&lt;br /&gt;
  &lt;br /&gt;
  nviz lidar_dsm,lidar_dtm \&lt;br /&gt;
       col=ortho_2001_t792_1m,ortho_2001_t792_1m&lt;br /&gt;
&lt;br /&gt;
...with the position slider you can visually separate DSM and DEM, increase z slider (Visualize -&amp;gt; Raster Surface -&amp;gt; Position).&lt;br /&gt;
&lt;br /&gt;
=== Reclassification ===&lt;br /&gt;
&lt;br /&gt;
As vector points&lt;br /&gt;
* {{cmd|v.reclass|version=70}} command&lt;br /&gt;
&lt;br /&gt;
As raster map:&lt;br /&gt;
* {{cmd|r.reclass|version=70}} command&lt;br /&gt;
&lt;br /&gt;
== Sample LIDAR data ==&lt;br /&gt;
&lt;br /&gt;
=== Widely used in GRASS tutorials ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.grassbook.org/data_menu2nd.php Jockey's Ridge, NC, LIDAR dataset]&lt;br /&gt;
* [http://www.grassbook.org/data_menu3rd.php North Carolina OSGeo Edu data set] (includes multi-return LIDAR data)&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
* United States Antarctic Resource Center: LIDAR High-resolution DEM Final DATA Downloads&amp;lt;BR&amp;gt;http://usarc.usgs.gov/lidar_dload.shtml&lt;br /&gt;
&lt;br /&gt;
* LIDAR ALSM Research, Arizona State University Ative Tectonics, Research Group&amp;lt;BR&amp;gt;  http://lidar.asu.edu/research.html and http://www.geongrid.org/science/lidar.html&lt;br /&gt;
&lt;br /&gt;
* USGS Center for LIDAR Information Coordination and Knowledge (aka CLICK) - USGS LiDAR point cloud distribution site&amp;lt;BR&amp;gt; http://lidar.cr.usgs.gov&lt;br /&gt;
&lt;br /&gt;
* Washington State Geospatial Data Archive, Mount Saint Helens - Lidar Data &amp;lt;BR&amp;gt;https://wagda.lib.washington.edu/data/type/elevation/lidar/st_helens/&lt;br /&gt;
&lt;br /&gt;
* Puget Sound Lidar Consortium, public-domain high-resolution topography for western Washington&amp;lt;BR&amp;gt;http://pugetsoundlidar.ess.washington.edu/index.htm&lt;br /&gt;
&lt;br /&gt;
* NOAA Topographic Change Mapping LIDAR Data Retrieval Tool (LDART) NOAA Coastal Services Center&amp;lt;BR&amp;gt;http://maps.csc.noaa.gov/TCM/&lt;br /&gt;
&lt;br /&gt;
* Landmap, LIDAR Data from the Environment Agency &amp;lt;BR&amp;gt;http://www.landmap.ac.uk/lidar/lidar.html&lt;br /&gt;
&lt;br /&gt;
* Northern California LIDAR data &amp;lt;BR&amp;gt;http://quake.usgs.gov/research/geology/lidar/  and http://core2.gsfc.nasa.gov/lidar/terrapoint/&lt;br /&gt;
&lt;br /&gt;
* IDAHO GEOSPATIAL , Bare Earth LIDAR DEM Download - UTM &amp;lt;BR&amp;gt;http://inside.uidaho.edu/geodata/LiDAR/LiDARBareEarthDEM_DownloadUTM.htm&lt;br /&gt;
&lt;br /&gt;
* EarthScope Spatial Data Explorer - A java application for querying, browsing, and acquiring data from the EarthScope Spatial Data Repository. Currently includes a number of LiDAR datasets. &amp;lt;BR&amp;gt;http://www.earthscope.org/data/lidar.php&lt;br /&gt;
&lt;br /&gt;
* LIDAR Galley &amp;lt;BR&amp;gt;https://peoiewswebinfo.monmouth.army.mil/JPSD/LIDAR_Gallery.htm&lt;br /&gt;
&lt;br /&gt;
* South Tyrol - Download of DTMs (Homepage in German or Italian) &amp;lt;BR&amp;gt; http://www.provinz.bz.it/raumordnung/grundkarten/utm/default_d.htm&lt;br /&gt;
&lt;br /&gt;
* libLAS's sample file collection&lt;br /&gt;
:http://liblas.org/samples/&lt;br /&gt;
&lt;br /&gt;
* NASA's Laser Vegetation Imaging Sensor (a.k.a. the Land, Vegetation, and Ice Sensor) or &amp;quot;LVIS&amp;quot;&lt;br /&gt;
:https://lvis.gsfc.nasa.gov&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [[Contour lines to DEM]] interpolation module trials&lt;br /&gt;
* [http://liblas.org/ libLAS] - LAS 1.0/1.1 ASPRS LiDAR data translation toolset&lt;br /&gt;
* [http://code.google.com/p/fullanalyze/ Fullanalyze] software based on MATIS&lt;br /&gt;
&lt;br /&gt;
;Breaklines&lt;br /&gt;
* Not very well developed in GRASS so far, but we'd like to change that&lt;br /&gt;
* {{AddonCmd|v.surf.icw}} (only suitable for ~ 200 input points)&lt;br /&gt;
* [http://surfit.sourceforge.net/ SurfIt] (GPL, Tck/Tk)&lt;br /&gt;
* &amp;lt;strike&amp;gt;[http://surgeweb.sweb.cz/surgemain.htm SurGe] (Trial/shareware) &amp;lt;/strike&amp;gt;&lt;br /&gt;
* [http://grasswiki.osgeo.org/wiki/TIN_with_breaklines v.triangle] add-on module for construction TIN with breaklines.&lt;br /&gt;
&lt;br /&gt;
== Related publications ==&lt;br /&gt;
&lt;br /&gt;
* Brovelli, M.A., Lucca, S., 2011. Filtering LiDAR with GRASS: overview of the method and comparisons with Terrascan. Italian Journal of Remote Sensing 93-105. ([http://www.aitjournal.com/articleView.aspx?ID=209 PDF])&lt;br /&gt;
* Brovelli, M.A., Cannata, M. &amp;amp; Longoni, U.M., 2004. LIDAR data filtering and DTM interpolation within GRASS. Transactions in GIS, 8(2), pp.155-174. [http://onlinelibrary.wiley.com/doi/10.1111/j.1467-9671.2004.00173.x/pdf PDF]&lt;br /&gt;
* Cebecauer, T., Hofierka, J. &amp;amp; Suri, M., 2002. Processing digital terrain models by regularized spline with tension: tuning interpolation parameters for different input datasets. In Proc. of the Open Source Free Software GIS -- GRASS users conference 2002, Trento, Italy, 11-13 September 2002. [http://www.ing.unitn.it/~grass/proceedings/proceedings/pdfs/Cebecauer_Tomas.pdf PDF]&lt;br /&gt;
* Mitasova, Helena et al., 2009. Raster-based analysis of coastal terrain dynamics from multitemporal Lidar data. Journal of Coastal Research, 25(2), pp.507-514.&lt;br /&gt;
* Mitasova, H, Mitas, L. &amp;amp; Harmon, R., 2005. Simultaneous spline approximation and topographic analysis for lidar elevation data in open-source GIS. Geoscience and Remote Sensing Letters, IEEE, 2(4), pp.379, 375. [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.69.2934&amp;amp;rep=rep1&amp;amp;type=pdf PDF]&lt;br /&gt;
* Mitasova, H. et al., 2003. Spatio-temporal analysis of beach morphology using LIDAR, RTK-GPS and Open source GRASS GIS. In Proceedings Coastal Sediments. [http://skagit.meas.ncsu.edu/%7Ehelena/publwork/papers/pcoastsedp10.pdf PDF]&lt;br /&gt;
&lt;br /&gt;
Search via [http://scholar.google.com/scholar?q=lidar+grass+gis Google Scholar]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://knol.google.com/k/aerial-extraction-of-roof-surfaces-for-solar-analysis Aerial Extraction of Roof Surfaces for Solar Analysis]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category: Interpolation]]&lt;br /&gt;
[[Category: Image processing]]&lt;br /&gt;
[[Category: Import]]&lt;br /&gt;
[[Category: Raster]]&lt;br /&gt;
[[Category: Vector]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_MacOSX&amp;diff=17668</id>
		<title>Compiling on MacOSX</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Compiling_on_MacOSX&amp;diff=17668"/>
		<updated>2013-02-03T19:02:55Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: Instructions for compiling GRASS 6 and 7 on Mac OS X 10.8 to run on OS X 10.6 and up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Up-to-date compilation instructions are maintained in the source &amp;lt;tt&amp;gt;[http://trac.osgeo.org/grass/browser/grass/branches/develbranch_6/macosx/ReadMe.rtf?format=raw macosx/ReadMe.rtf]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
This builds a double-clickable application with &amp;quot;aqua&amp;quot; options where possible (Tcl/Tk, Python, OpenGL,...) &lt;br /&gt;
and leaves out obscure X11-only-based features that have newer system-agnostic options (like motif/xganim), &lt;br /&gt;
though these newer features may not be quite as fully-featured, yet.&lt;br /&gt;
The X11 display system ''is'' included, since it is simple to include and is still quite useful.&lt;br /&gt;
&lt;br /&gt;
The method below is for the older X11-based compilation, and includes the X11 motif-based xganim.&lt;br /&gt;
&lt;br /&gt;
To build Grass from source you can use the frameworks that are on : &lt;br /&gt;
http://www.kyngchaos.com/software:frameworks&lt;br /&gt;
great thanks to W.Kyngesburye.&lt;br /&gt;
&lt;br /&gt;
After installing all the frameworks you can add some library such &amp;quot;motif&amp;quot; needed by Xganim, using fink or build the source code&lt;br /&gt;
&lt;br /&gt;
Install from source the tcl-tk library : http://www.tcl.tk/software/tcltk/downloadnow84.tml  in /usr/local&lt;br /&gt;
&lt;br /&gt;
Postgres can be easily compiled from source.&lt;br /&gt;
&lt;br /&gt;
Download a SVN version http://grass.osgeo.org/download/index.php&lt;br /&gt;
&lt;br /&gt;
Then configure and make GRASS from SVN/source code snapshot :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /path_to_grass_source&lt;br /&gt;
&lt;br /&gt;
./configure --enable-sysv --with-x --with-opengl=x11 --without-odbc --with-cxx --with-freetype \&lt;br /&gt;
--with-freetype-includes=/Library/Frameworks/FreeType.framework/unix/include \&lt;br /&gt;
--with-freetype-libs=/Library/Frameworks/FreeType.framework/unix/lib \&lt;br /&gt;
--with-gdal=/Library/Frameworks/GDAL.framework/Versions/1.5/Programs/gdal-config \&lt;br /&gt;
--with-proj-includes=/Library/Frameworks/PROJ.framework/unix/include \&lt;br /&gt;
--with-proj-libs=/Library/Frameworks/PROJ.framework/unix/lib \&lt;br /&gt;
--with-proj-share=/Library/Frameworks/PROJ.framework/Versions/4.5/unix/share/ \&lt;br /&gt;
--with-tiff --with-tiff-includes=/Library/Frameworks/UnixImageIO.framework/unix/include \&lt;br /&gt;
--with-tiff-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \&lt;br /&gt;
--with-png-includes=/Library/Frameworks/UnixImageIO.framework/unix/include \&lt;br /&gt;
--with-png-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib \&lt;br /&gt;
--with-sqlite --with-sqlite-libs=/Library/Frameworks/SQLite3.framework/unix/lib \&lt;br /&gt;
--with-sqlite-includes=/Library/Frameworks/SQLite3.framework/unix/include \&lt;br /&gt;
--with-fftw --with-fftw-includes=/Library/Frameworks/FFTW3.framework/unix/include \&lt;br /&gt;
--with-fftw-libs=/Library/Frameworks/FFTW3.framework/unix/lib \&lt;br /&gt;
--with-postgres-includes=/usr/local/pgsql/include --with-postgres-libs=/usr/local/pgsql/lib \&lt;br /&gt;
--with-freetype --with-freetype-includes=/Library/Frameworks/FreeType.framework/unix/include \&lt;br /&gt;
--with-freetype-libs=/Library/Frameworks/FreeType.framework/unix/lib --with-python --with-readline \&lt;br /&gt;
--with-readline-includes=/sw/include/readline --with-readline-libs=/sw/lib --with-tcltk-includes=/usr/local/include \&lt;br /&gt;
--with-tcltk-libs=/usr/local/lib --with-blas --with-lapack \&lt;br /&gt;
--with-blas-includes=/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers \&lt;br /&gt;
--with-lapack-includes=/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers \&lt;br /&gt;
--with-motif --with-motif-includes=/sw/include --with-motif-libs=/sw/lib --with-glw&lt;br /&gt;
&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''COMPILING GRASS ON MAC OSX 10.8 TO RUN ON OSX 10.6 AND UP 64 BIT'''&lt;br /&gt;
&lt;br /&gt;
Here are instructions on how to compile GRASS 6 and 7 on Mac OS X 10.8 so that it also runs in GRASS OS X 10.6 and up in 64 bit (but with 32 bit wxPython).&lt;br /&gt;
&lt;br /&gt;
You must have Apple's developer tools installed, including the MacOSX10.6.sdk if you want your binary to run on OS X 10.6 as well as later versions of the OS&lt;br /&gt;
&lt;br /&gt;
'''PREPARATION TO COMPILE (you only need to do this once)'''&lt;br /&gt;
&lt;br /&gt;
''Step 1'': Python and wxPython:&lt;br /&gt;
&lt;br /&gt;
Currently, do NOT install a 3rd party Python (e.g., from python.org) unless you know how to configure PYTHONPATH appropriately for GRASS and wxPython. &lt;br /&gt;
&lt;br /&gt;
Mac OS X comes with Python 2.6 and OS X 10.7/10.8 comes with Python 2.6 and 2.7. This set up will use whatever your system comes with, but compiles wxPython to use Python 2.6&lt;br /&gt;
&lt;br /&gt;
Install wxPython 2.8.12.1 for Python 2.6 (note that the installation directory must be correctly referenced in the configure script)&lt;br /&gt;
&lt;br /&gt;
Create a script named &amp;quot;python&amp;quot; with the following in it and put it somewhere so it can be added to your path at compile time. For example, I put it in /Applications/python/bin32&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
exec arch -i386 pythonw2.6 &amp;quot;$@&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is to force python to run 32bit so wxpython tests work in configure (it also references the system python 2.6 and not 2.7).&lt;br /&gt;
&lt;br /&gt;
''Step 2'': edit bundling code in ../grass7/macosx/&lt;br /&gt;
&lt;br /&gt;
Make a script named &amp;quot;bundle.sh&amp;quot; with the following code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# DYLD_FRAMEWORK_PATH for bundled frameworks&lt;br /&gt;
&lt;br /&gt;
sed -i '' -e 's,^export DYLD_LIBRARY_PATH$,&amp;amp;\&lt;br /&gt;
export DYLD_FRAMEWORK_PATH=&amp;quot;\$GISBASE/lib&amp;quot;,' \&lt;br /&gt;
	${INST_DIR_TARGET}/grass.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Step 3'': Set up bundling to make GRASS binary package for distribution&lt;br /&gt;
&lt;br /&gt;
Edit bundle.make to reference wxPython. This includes a copy of wxPython with the GRASS binary so it will run regardless of what version of wxPython the user has installed separately. It also bundles fftw3.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
WXPREFIX=/usr/local/lib/wxPython-unicode-2.8.12.1&lt;br /&gt;
&lt;br /&gt;
bundle-macosx:&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gl-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_stc-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gizmos-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	${INSTALL} ${WXPREFIX}/lib/libwx_macud_gizmos_xrc-2.8.0.dylib ${INST_DIR_TARGET}/lib&lt;br /&gt;
	cp -Rf ${WXPREFIX}/lib/python2.6/site-packages/wx-2.8-mac-unicode/wx ${INST_DIR_TARGET}/etc/python&lt;br /&gt;
	cp -Rf ${WXPREFIX}/lib/python2.6/site-packages/wx-2.8-mac-unicode/wxPython ${INST_DIR_TARGET}/etc/python&lt;br /&gt;
	cp -f ${WXPREFIX}/lib/python2.6/site-packages/wxversion.py ${INST_DIR_TARGET}/etc/python&lt;br /&gt;
	sed -i '' -e 's/^GRASS_WXBUNDLED=.*/GRASS_WXBUNDLED=1/' ${INST_DIR_TARGET}/grass.sh&lt;br /&gt;
	cp -Rf /Library/Frameworks/FFTW3.framework ${INST_DIR_TARGET}/lib/FFTW3.framework&lt;br /&gt;
	/usr/bin/env INST_DIR_TARGET=&amp;quot;${INST_DIR_TARGET}&amp;quot; ./bundle.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can bundle additional code if you desire. I also bundle gettext and LAS tools.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''AT THE TIME OF COMPILATION (do this each time you compile)'''&lt;br /&gt;
&lt;br /&gt;
''Step 1'': export the following prior to configuration. This makes GRASS run on OSX 10.6 as well as 10.7 and 10.8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export MACOSX_DEPLOYMENT_TARGET=10.6&lt;br /&gt;
&lt;br /&gt;
export PATH=&amp;quot;/Applications/python/bin32:/System/Library/Frameworks/Python.framework/Versions/2.6/bin:$PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
export CXX=g++&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Step 2'': configuration. Here is my configure script. This configures for both 32 and 64 bit. Because wxPython 2.8.x only runs 32 bit, it is configured to run in Python 2.6 32 bit. But the rest of GRASS will take advantage of the Mac 64 bit processing.&lt;br /&gt;
&lt;br /&gt;
Here is my configuration script &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-macosx-sdk=/Developer/SDKs/MacOSX10.6.sdk --with-freetype --with-freetype-includes=&amp;quot;/Library/Frameworks/FreeType.framework/unix/include/freetype2 /Library/Frameworks/FreeType.framework/unix/include&amp;quot; --with-freetype-libs=/Library/Frameworks/FreeType.framework/unix/lib --with-gdal=/Library/Frameworks/GDAL.framework/Programs/gdal-config --with-proj --with-proj-includes=/Library/Frameworks/PROJ.framework/unix/include --with-proj-libs=/Library/Frameworks/PROJ.framework/unix/lib --with-proj-share=/Library/Frameworks/PROJ.framework/Resources/proj --with-geos=/Library/Frameworks/GEOS.framework/Versions/3/unix/bin/geos-config --with-jpeg-includes=/Library/Frameworks/UnixImageIO.framework/unix/include --with-jpeg-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib --with-png-includes=/Library/Frameworks/UnixImageIO.framework/unix/include --with-png-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib --with-tiff-includes=/Library/Frameworks/UnixImageIO.framework/unix/include --with-tiff-libs=/Library/Frameworks/UnixImageIO.framework/unix/lib --with-cairo --with-cairo-includes=&amp;quot;/Library/Frameworks/cairo.framework/unix/include/cairo /Library/Frameworks/cairo.framework/unix/include&amp;quot; --with-cairo-libs=/Library/Frameworks/cairo.framework/unix/lib --with-cairo-ldflags=&amp;quot;-lcairo&amp;quot; --without-postgres --without-mysql --with-odbc --with-sqlite --with-sqlite-libs=/Library/Frameworks/SQLite3.framework/unix/lib --with-sqlite-includes=/Library/Frameworks/SQLite3.framework/unix/include --with-fftw-includes=/Library/Frameworks/FFTW3.framework/unix/include --with-fftw-libs=/Library/Frameworks/FFTW3.framework/unix/lib --with-x --with-cxx --with-opengl=aqua --without-readline --prefix=/Applications/GRASS --enable-macosx-app --with-python --with-wxwidgets=/usr/local/lib/wxPython-unicode-2.8.12.1/bin/wx-config --with-tcltk-includes=&amp;quot;/Library/Frameworks/Tcl.framework/Headers /Library/Frameworks/Tk.framework/Headers /Library/Frameworks/Tk.framework/PrivateHeaders&amp;quot; --with-tcltk-libs=&amp;quot;/usr/local/tcltk_active/lib&amp;quot; --with-macosx-archs=&amp;quot;i386 x86_64&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Step 3'': make&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make GDAL_DYNAMIC=&lt;br /&gt;
&lt;br /&gt;
for GRASS 6, simply use make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Step 4'': create installation bundle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make bindist&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=NetCDF&amp;diff=14889</id>
		<title>NetCDF</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=NetCDF&amp;diff=14889"/>
		<updated>2012-02-15T21:06:33Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: Added information about how to import NetCDF data into GRASS using r.in.gdal&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Both netCDF import and export in GRASS GIS are basically driven by the [http://www.gdal.org GDAL library]. Note that GDAL library needs to be compiled with [http://www.gdal.org/frmt_netcdf.html netCDF support] to enable GRASS to read and write this format.&lt;br /&gt;
&lt;br /&gt;
== netCDF import ==&lt;br /&gt;
The important key to importing NetCDF raster file via r.in.gdal is to specify the correct data '''subset''' in the ''input'' argument. NetCDF subset specifiers can be obtained from the output of gdalinfo. &lt;br /&gt;
&lt;br /&gt;
For a file named sst.nc...&lt;br /&gt;
&lt;br /&gt;
  gdalinfo sst.nc&lt;br /&gt;
&lt;br /&gt;
...will produce a lot of output, including lines that look like this:&lt;br /&gt;
&lt;br /&gt;
  SUBDATASET_3_NAME=NETCDF:&amp;quot;sst.nc&amp;quot;:time_bnds&lt;br /&gt;
&lt;br /&gt;
The input argument to r.in.gdal must contain all the information after the &amp;quot;=&amp;quot; in the format NETCDF:&amp;quot;[''path to file in double quotes'']&amp;quot;:[''variable name'']. To import the '''time_bnds''' data from NetCDF file '''sst.nc''' into GRASS, you need to specify the input as follows:&lt;br /&gt;
&lt;br /&gt;
  r.in.gdal input=NETCDF:&amp;quot;sst.nc&amp;quot;:time_bnds output=sst&lt;br /&gt;
&lt;br /&gt;
The '''time_bnds''' subset may contain multiple data bands. Information about the bands in a subset can be obtained by running gdalinfo on just the subset&lt;br /&gt;
&lt;br /&gt;
  gdalinfo NETCDF:&amp;quot;sst.nc&amp;quot;:time_bnds&lt;br /&gt;
&lt;br /&gt;
...will produce output like this:&lt;br /&gt;
&lt;br /&gt;
  Band 22 Block=180x1 Type=Float32, ColorInterp=Undefined&lt;br /&gt;
    NoData Value=1e+20&lt;br /&gt;
    Metadata:&lt;br /&gt;
      NETCDF_VARNAME=tos&lt;br /&gt;
      NETCDF_DIMENSION_time=645&lt;br /&gt;
      NETCDF_time_units=days since 2001-1-1&lt;br /&gt;
&lt;br /&gt;
You can specify the bands you want to extract using the ''bands='' argument of r.in.gdal&lt;br /&gt;
&lt;br /&gt;
* also see the [[GMT]] page and {{cmd|r.in.gdal}}&lt;br /&gt;
&lt;br /&gt;
== netCDF export ==&lt;br /&gt;
&lt;br /&gt;
* see {{cmd|r.out.gdal}}&lt;br /&gt;
&lt;br /&gt;
* As part of a Google Summer of Code 2009 project Andrea Antonello has put together a [http://code.google.com/p/jgrass/wiki/SummerOfCode2009 GUI controlled GRASS raster timeseries to netCDF export tool using uDig].&lt;br /&gt;
&lt;br /&gt;
== Sample datasets and mini-tutorial ==&lt;br /&gt;
&lt;br /&gt;
* (''contributions welcome'')&lt;br /&gt;
&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
[[Category: Geodata]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Archeology&amp;diff=14780</id>
		<title>Archeology</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Archeology&amp;diff=14780"/>
		<updated>2012-01-15T21:22:01Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Bibliography */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GRASS GIS is used in many archaeological projects.&lt;br /&gt;
&lt;br /&gt;
== Mailing list threads ==&lt;br /&gt;
&lt;br /&gt;
* [http://thread.gmane.org/gmane.comp.gis.grass.user/27990 Who's using GRASS for archaeological applications?]&lt;br /&gt;
&lt;br /&gt;
== Data exchange ==&lt;br /&gt;
&lt;br /&gt;
* {{AddonCmd|v.in.ply}}: import of PLY format (3D)&lt;br /&gt;
* {{cmd|v.in.dxf}}: import of DXF format (2D and 3D)&lt;br /&gt;
* {{cmd|v.out.dxf}}: export of DXF format (2D and 3D)&lt;br /&gt;
* many other formats..&lt;br /&gt;
&lt;br /&gt;
== Georeferencing ==&lt;br /&gt;
&lt;br /&gt;
* Georeferencing of point clouds: get your data from an arbitrary coordinates system into real world projections: {{cmd|v.rectify|version=70}}. It also perform 3D transformation (affine and polynomial). Working even with very large point clouds (several million points in a few minutes).&lt;br /&gt;
&lt;br /&gt;
== Image processing ==&lt;br /&gt;
&lt;br /&gt;
* see [[Image processing]]&lt;br /&gt;
* [[LIDAR]]&lt;br /&gt;
&lt;br /&gt;
== Visualization ==&lt;br /&gt;
&lt;br /&gt;
* see [[:Category:Visualization]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
=== Bibliography ===&lt;br /&gt;
* Ullah, I.I.T., 2011. [http://www.sciencedirect.com/science/article/pii/S0305440310003705 &amp;quot;A GIS method for assessing the zone of human-environmental impact around archaeological sites: a test case from the Late Neolithic of Wadi Ziqlâb, Jordan&amp;quot;]. Journal of Archaeological Science, 38(3), 623-632. doi:10.1016/j.jas.2010.10.015&lt;br /&gt;
* Barton, C.M., Ullah, I. &amp;amp; Mitasova, H., 2010. [http://sagunto.la.asu.edu:8080/medlandweb/Barton_etal2010.pdf ''Computational modeling and neolithic socioecological dynamics: A case study from southwest Asia']'. Am antiquity, 75(2), 364-386.&lt;br /&gt;
* Barton, C.M., Ullah, I, &amp;amp; Bergin, S, 2010. [http://rsta.royalsocietypublishing.org.ezproxy1.lib.asu.edu/content/368/1931/5275.abstract &amp;quot;Land use, water and Mediterranean landscapes: modelling long-term dynamics of complex socio-ecological systems&amp;quot;]. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, 368(1931), 5275 -5297. doi:10.1098/rsta.2010.0193&lt;br /&gt;
* M. Neteler, 2009: ''[http://www.slideshare.net/markusN/grass-and-osgeo-a-framework-for-archeology GRASS GIS and OSGeo: A framework for archeology]'' (Invited keynote). Quarto Workshop Italiano [http://www.archeo-foss.org/ &amp;quot;Open Source, Free Software e Open Format nei processi di ricerca archeologica&amp;quot;], CNR di Roma,  27-28 April 2009&lt;br /&gt;
* Conolly, J., Lake, M., 2006. Geographical Information Systems in Archaeology (Cambridge Manuals in Archaeology) [ [http://www.amazon.co.uk/Geographical-Information-Systems-Archaeology-Cambridge/dp/0521797446/ Book] ]&lt;br /&gt;
* A. Bezzi, L. Bezzi, D. Francisci, R. Gietl, 2006. ''L'utilizzo di Voxel in campo archeologico'', Geomatics workbooks 6 [ [http://geomatica.como.polimi.it/workbooks/n6/list.php PDF] ]&lt;br /&gt;
&lt;br /&gt;
=== Sample archeological data sets ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.tuarc.trentu.ca/~aspweb/en/downloads.shtml Antikythera Survey Project (ASP)]&lt;br /&gt;
&lt;br /&gt;
=== Some archaeological links related to GRASS ===&lt;br /&gt;
&lt;br /&gt;
* http://wiki.iosa.it/ Quantitative Archaeology Wiki (check out the &amp;quot;Spatial Analysis&amp;quot; section)&lt;br /&gt;
* http://arc-team-open-research.blogspot.com/ - GRASS and Blender in archaeology&lt;br /&gt;
* http://arkygeek.blogspot.com/&lt;br /&gt;
* http://www.arc-team.com/wiki/doku.php - ArcheOS - The first GNU/Linux distribution for archaeology ([http://www.arc-team.com/archeos/wiki/doku.php?id=screenshots screenshots])&lt;br /&gt;
* [http://undine-lieberwirth.info/?page_id=8 Voxels and GRASS] in Archeology (animations)&lt;br /&gt;
* http://tdx.cat/TESIS_UB/AVAILABLE/TDX-0720109-092434/ - PhD Dissertation about conflict archaeology, with extensive use of GRASS and QGIS.&lt;br /&gt;
* http://medland.asu.edu - Mediterranean Landscape Dynamics Project. Dynamic surface process modeling in GRASS coupled with agent-based modeling of agricultural land-use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Archeology&amp;diff=14779</id>
		<title>Archeology</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Archeology&amp;diff=14779"/>
		<updated>2012-01-15T21:05:39Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Bibliography */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GRASS GIS is used in many archaeological projects.&lt;br /&gt;
&lt;br /&gt;
== Mailing list threads ==&lt;br /&gt;
&lt;br /&gt;
* [http://thread.gmane.org/gmane.comp.gis.grass.user/27990 Who's using GRASS for archaeological applications?]&lt;br /&gt;
&lt;br /&gt;
== Data exchange ==&lt;br /&gt;
&lt;br /&gt;
* {{AddonCmd|v.in.ply}}: import of PLY format (3D)&lt;br /&gt;
* {{cmd|v.in.dxf}}: import of DXF format (2D and 3D)&lt;br /&gt;
* {{cmd|v.out.dxf}}: export of DXF format (2D and 3D)&lt;br /&gt;
* many other formats..&lt;br /&gt;
&lt;br /&gt;
== Georeferencing ==&lt;br /&gt;
&lt;br /&gt;
* Georeferencing of point clouds: get your data from an arbitrary coordinates system into real world projections: {{cmd|v.rectify|version=70}}. It also perform 3D transformation (affine and polynomial). Working even with very large point clouds (several million points in a few minutes).&lt;br /&gt;
&lt;br /&gt;
== Image processing ==&lt;br /&gt;
&lt;br /&gt;
* see [[Image processing]]&lt;br /&gt;
* [[LIDAR]]&lt;br /&gt;
&lt;br /&gt;
== Visualization ==&lt;br /&gt;
&lt;br /&gt;
* see [[:Category:Visualization]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
=== Bibliography ===&lt;br /&gt;
* Barton, C.M., Ullah, I. &amp;amp; Mitasova, H., 2010. [http://sagunto.la.asu.edu:8080/medlandweb/Barton_etal2010.pdf ''Computational modeling and neolithic socioecological dynamics: A case study from southwest Asia']'. Am antiquity, 75(2), 364-386.&lt;br /&gt;
* Barton, C.M., Ullah, I, &amp;amp; Bergin, S, 2010. [http://rsta.royalsocietypublishing.org.ezproxy1.lib.asu.edu/content/368/1931/5275.abstract &amp;quot;Land use, water and Mediterranean landscapes: modelling long-term dynamics of complex socio-ecological systems&amp;quot;]. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, 368(1931), 5275 -5297. doi:10.1098/rsta.2010.0193&lt;br /&gt;
* M. Neteler, 2009: ''[http://www.slideshare.net/markusN/grass-and-osgeo-a-framework-for-archeology GRASS GIS and OSGeo: A framework for archeology]'' (Invited keynote). Quarto Workshop Italiano [http://www.archeo-foss.org/ &amp;quot;Open Source, Free Software e Open Format nei processi di ricerca archeologica&amp;quot;], CNR di Roma,  27-28 April 2009&lt;br /&gt;
* Conolly, J., Lake, M., 2006. Geographical Information Systems in Archaeology (Cambridge Manuals in Archaeology) [ [http://www.amazon.co.uk/Geographical-Information-Systems-Archaeology-Cambridge/dp/0521797446/ Book] ]&lt;br /&gt;
* A. Bezzi, L. Bezzi, D. Francisci, R. Gietl, 2006. ''L'utilizzo di Voxel in campo archeologico'', Geomatics workbooks 6 [ [http://geomatica.como.polimi.it/workbooks/n6/list.php PDF] ]&lt;br /&gt;
&lt;br /&gt;
=== Sample archeological data sets ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.tuarc.trentu.ca/~aspweb/en/downloads.shtml Antikythera Survey Project (ASP)]&lt;br /&gt;
&lt;br /&gt;
=== Some archaeological links related to GRASS ===&lt;br /&gt;
&lt;br /&gt;
* http://wiki.iosa.it/ Quantitative Archaeology Wiki (check out the &amp;quot;Spatial Analysis&amp;quot; section)&lt;br /&gt;
* http://arc-team-open-research.blogspot.com/ - GRASS and Blender in archaeology&lt;br /&gt;
* http://arkygeek.blogspot.com/&lt;br /&gt;
* http://www.arc-team.com/wiki/doku.php - ArcheOS - The first GNU/Linux distribution for archaeology ([http://www.arc-team.com/archeos/wiki/doku.php?id=screenshots screenshots])&lt;br /&gt;
* [http://undine-lieberwirth.info/?page_id=8 Voxels and GRASS] in Archeology (animations)&lt;br /&gt;
* http://tdx.cat/TESIS_UB/AVAILABLE/TDX-0720109-092434/ - PhD Dissertation about conflict archaeology, with extensive use of GRASS and QGIS.&lt;br /&gt;
* http://medland.asu.edu - Mediterranean Landscape Dynamics Project. Dynamic surface process modeling in GRASS coupled with agent-based modeling of agricultural land-use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Archeology&amp;diff=14778</id>
		<title>Archeology</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Archeology&amp;diff=14778"/>
		<updated>2012-01-15T20:58:18Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Some archaeological links related to GRASS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GRASS GIS is used in many archaeological projects.&lt;br /&gt;
&lt;br /&gt;
== Mailing list threads ==&lt;br /&gt;
&lt;br /&gt;
* [http://thread.gmane.org/gmane.comp.gis.grass.user/27990 Who's using GRASS for archaeological applications?]&lt;br /&gt;
&lt;br /&gt;
== Data exchange ==&lt;br /&gt;
&lt;br /&gt;
* {{AddonCmd|v.in.ply}}: import of PLY format (3D)&lt;br /&gt;
* {{cmd|v.in.dxf}}: import of DXF format (2D and 3D)&lt;br /&gt;
* {{cmd|v.out.dxf}}: export of DXF format (2D and 3D)&lt;br /&gt;
* many other formats..&lt;br /&gt;
&lt;br /&gt;
== Georeferencing ==&lt;br /&gt;
&lt;br /&gt;
* Georeferencing of point clouds: get your data from an arbitrary coordinates system into real world projections: {{cmd|v.rectify|version=70}}. It also perform 3D transformation (affine and polynomial). Working even with very large point clouds (several million points in a few minutes).&lt;br /&gt;
&lt;br /&gt;
== Image processing ==&lt;br /&gt;
&lt;br /&gt;
* see [[Image processing]]&lt;br /&gt;
* [[LIDAR]]&lt;br /&gt;
&lt;br /&gt;
== Visualization ==&lt;br /&gt;
&lt;br /&gt;
* see [[:Category:Visualization]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
=== Bibliography ===&lt;br /&gt;
* Barton, C.M., Ullah, I. &amp;amp; Mitasova, H., 2010. ''Computational modeling and neolithic socioecological dynamics: A case study from southwest Asia''. Am antiquity, 75(2), 364-386. [ [http://sagunto.la.asu.edu:8080/medlandweb/Barton_etal2010.pdf PDF] ]&lt;br /&gt;
* M. Neteler, 2009: ''[http://www.slideshare.net/markusN/grass-and-osgeo-a-framework-for-archeology GRASS GIS and OSGeo: A framework for archeology]'' (Invited keynote). Quarto Workshop Italiano [http://www.archeo-foss.org/ &amp;quot;Open Source, Free Software e Open Format nei processi di ricerca archeologica&amp;quot;], CNR di Roma,  27-28 April 2009&lt;br /&gt;
* Conolly, J., Lake, M., 2006. Geographical Information Systems in Archaeology (Cambridge Manuals in Archaeology) [ [http://www.amazon.co.uk/Geographical-Information-Systems-Archaeology-Cambridge/dp/0521797446/ Book] ]&lt;br /&gt;
* A. Bezzi, L. Bezzi, D. Francisci, R. Gietl, 2006. ''L'utilizzo di Voxel in campo archeologico'', Geomatics workbooks 6 [ [http://geomatica.como.polimi.it/workbooks/n6/list.php PDF] ]&lt;br /&gt;
&lt;br /&gt;
=== Sample archeological data sets ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.tuarc.trentu.ca/~aspweb/en/downloads.shtml Antikythera Survey Project (ASP)]&lt;br /&gt;
&lt;br /&gt;
=== Some archaeological links related to GRASS ===&lt;br /&gt;
&lt;br /&gt;
* http://wiki.iosa.it/ Quantitative Archaeology Wiki (check out the &amp;quot;Spatial Analysis&amp;quot; section)&lt;br /&gt;
* http://arc-team-open-research.blogspot.com/ - GRASS and Blender in archaeology&lt;br /&gt;
* http://arkygeek.blogspot.com/&lt;br /&gt;
* http://www.arc-team.com/wiki/doku.php - ArcheOS - The first GNU/Linux distribution for archaeology ([http://www.arc-team.com/archeos/wiki/doku.php?id=screenshots screenshots])&lt;br /&gt;
* [http://undine-lieberwirth.info/?page_id=8 Voxels and GRASS] in Archeology (animations)&lt;br /&gt;
* http://tdx.cat/TESIS_UB/AVAILABLE/TDX-0720109-092434/ - PhD Dissertation about conflict archaeology, with extensive use of GRASS and QGIS.&lt;br /&gt;
* http://medland.asu.edu - Mediterranean Landscape Dynamics Project. Dynamic surface process modeling in GRASS coupled with agent-based modeling of agricultural land-use&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=13789</id>
		<title>AddOns</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=13789"/>
		<updated>2011-07-02T05:04:09Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Spatial Analysis Tools */&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.osgeo.org/download/ here]).&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== AddOns source code repository ==&lt;br /&gt;
&lt;br /&gt;
The AddOns source code is hosted in [http://svn.osgeo.org/grass/grass-addons/ GRASS-AddOns SVN repository].&lt;br /&gt;
&lt;br /&gt;
To checkout:&lt;br /&gt;
&lt;br /&gt;
 svn checkout &amp;lt;nowiki&amp;gt;https://svn.osgeo.org/grass/grass-addons/&amp;lt;/nowiki&amp;gt; grass-addons&lt;br /&gt;
&lt;br /&gt;
Please read [http://trac.osgeo.org/grass/wiki/HowToContribute#WriteaccesstotheGRASS-Addons-SVNrepository How to get write access to the GRASS-Addons-SVN repository] and contact the [http://lists.osgeo.org/mailman/listinfo/grass-dev grass-dev] mailing list if you would like to host your module there.&lt;br /&gt;
&lt;br /&gt;
== Building and installing Addons ==&lt;br /&gt;
&lt;br /&gt;
See the [[Compile and Install#Addons|compile and install]] wiki page.&lt;br /&gt;
&lt;br /&gt;
In GRASS 6.4 and newer you can use the {{cmd|g.extension}} module, e.g. to install &amp;lt;tt&amp;gt;r.fuzzy.system&amp;lt;/tt&amp;gt; run:&lt;br /&gt;
&lt;br /&gt;
 g.extension extension=r.fuzzy.system&lt;br /&gt;
&lt;br /&gt;
To remove installed Addons run&lt;br /&gt;
&lt;br /&gt;
 g.extension extension=r.fuzzy.system operation=remove&lt;br /&gt;
&lt;br /&gt;
== Adding something new ==&lt;br /&gt;
&lt;br /&gt;
Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work. Also please consider adding your module to one of the [[Applications]] pages.&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;
=== Coding standards ===&lt;br /&gt;
&lt;br /&gt;
Please have a look at our [http://grass.osgeo.org/grass63/source/SUBMITTING_SCRIPTS Shell script coding standards] before submitting here.&lt;br /&gt;
&lt;br /&gt;
There are other coding standards given for modules written in C, Tcl/Tk, and Python''(?)'' located in the GRASS source code.&lt;br /&gt;
&lt;br /&gt;
=== Documenting your code ===&lt;br /&gt;
&lt;br /&gt;
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the &amp;lt;tt&amp;gt;--html-description&amp;lt;/tt&amp;gt; command line option. Please, see also the [http://grass.ibiblio.org/grass63/manuals/html63_user/g.parser.html g.parser help page]&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous Add-ons ==&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/browser/grass-addons/misc/utm_which_zone utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] or Matlab 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 6.x (current)==&lt;br /&gt;
&lt;br /&gt;
=== Vector add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector&lt;br /&gt;
&lt;br /&gt;
==== v.adehabitat.clusthr, v.adehabitat.kernelUD, v.adehabitat.mcp ====&lt;br /&gt;
&lt;br /&gt;
: Tools to calculate home ranges of animals&lt;br /&gt;
: '''Author:''' Clement Calenge&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/adehabitat&lt;br /&gt;
&lt;br /&gt;
==== v.append ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Michael Barton&lt;br /&gt;
&lt;br /&gt;
==== v.autokrige ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.autokrige/v.autokrige.py v.autokrige] achieves automatic ordinary kriging from GRASS sites (vector point data), using R with spgrass6 (RGRASS) and automap packages.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.breach ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.breach] creates vector maps of lines and points of continously lowering elevation down the input watercourses, based on the input raster DEM.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.colors ====&lt;br /&gt;
&lt;br /&gt;
: {{cmd|v.colors}} ''moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== v.count.points.sh ====&lt;br /&gt;
&lt;br /&gt;
: [http://wiki.iosa.it/dokuwiki/spatial_analysis:feature_count v.count.points.sh] counts point features in areas, generates table good as input to d.vect.chart.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Costa&lt;br /&gt;
&lt;br /&gt;
==== v.digatt ====&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].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Andreas Philipp&lt;br /&gt;
&lt;br /&gt;
==== v.dip ====&lt;br /&gt;
&lt;br /&gt;
: [http://marcin.slodkowski.googlepages.com/v.dip.tgz v.dip] creates points of thickness vectors from the vectors of strike and dip angles. The v.dip is the main ANSI C core program. Program so-called v.dip can run without GRASS environment.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Marcin Slodkowski&lt;br /&gt;
&lt;br /&gt;
==== v.flip ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.flip] flips the direction of selected vector lines (redundant since GRASS 6.3 - there is &amp;quot;v.edit tool=flip&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.group ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
==== v.in.redwg ====&lt;br /&gt;
&lt;br /&gt;
: v.in.redwg imports DWG files into GRASS.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Rodrigo Rodrigues da Silva&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.redwg&lt;br /&gt;
&lt;br /&gt;
==== v.in.gama ====&lt;br /&gt;
&lt;br /&gt;
: Converts [http://www.gnu.org/software/gama/ GNU GaMa] XML output file to a GRASS vector map layer.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Martin Landa&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.gama&lt;br /&gt;
&lt;br /&gt;
==== v.in.geodesic ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.geodesic v.in.geodesic] is a shell script which will create a new vector map containing a great circle line. The user may either define a beginning and end coordinate, or define a starting coordinate along with initial azimuth and desired line length.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.geoplot ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.geoplot v.in.geoplot] converts a [http://www.geoscan-research.co.uk/page9.html/ Geoplot] ASCII export file to a GRASS vector map layer.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.geoplot&lt;br /&gt;
&lt;br /&gt;
==== v.in.gshhs ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.gshhs v.in.gshhs] imports [http://www.soest.hawaii.edu/pwessel/gshhs/index.html GSHHS] shorelines into a GRASS vector map. GSHHS data are automatically reprojected to the current location.&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' several, updated to GRASS 6 by Markus Metz&lt;br /&gt;
&lt;br /&gt;
==== v.in.marxan ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.marxan v.in.marxan] is a python script that imports Marxan output data for display in a vector grid file prepared using v.out.marxan. &lt;br /&gt;
: ''see also the [http://www.uq.edu.au/marxan/ Marxan] &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.in.mbsys_fnv ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.mbsys_fnv v.in.mbsys_fnv] imports [[MB-System]] navigation files into a GRASS vector map. You can choose from swath area coverage, track lines (including outer port/starboard edges), all bounds as points, etc. An attribute database is created containing the vital statistics of the specified feature such as track length or swath coverage (geodesic), start stop time and location, pitch, roll, heave, etc. See also the [[#v.in.p190]] addon.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.ncdc ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.ncdc v.in.ncdc] imports an [http://www.ncdc.noaa.gov NCDC] stn file (station data) into a GRASS vector map.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== v.in.postgis ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.postgis/v.in.postgis.py v.in.postgis] Create a GRASS layer from any sql query on PostGIS data.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.in.osm ====&lt;br /&gt;
&lt;br /&gt;
: [http://kripton.kripserver.net/software/v.in.osm/ v.in.osm]: OpenStreetMap import into GRASS. Yet only supports deprecated API 0.4, will be modified to work with API 0.5 some time soon.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jannis Achstetter&lt;br /&gt;
&lt;br /&gt;
: See also [http://hamish.bowman.googlepages.com/gpsdrivefiles#osm osm2grass.sh] by H Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.osm2 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.osm2 v.in.osm2]: OpenStreetMap import into GRASS. Supports current API 0.6, downloads using the [http://wiki.openstreetmap.org/wiki/Xapi Xapi] interface and imports using GpsBabel 1.3.5 or newer. GpsBabel restricts to either nodes or ways being imported at a time, not both. Use {{cmd|v.patch}} to rejoin them. (''work in progress'')&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.ovl ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/v.in.ovl/ v.in.ovl] is a shell script that imports an ASCII vector file created with TOP10|25|50 or similar products.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== v.in.p190 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.p190 v.in.p190] is a shell script that imports 'Centre of Source' &amp;quot;S&amp;quot; navigation data from seismic P1/90 (UKOOA) data files and writes it either GRASS vector points or vector lines format. Optionally it will export the navigation data into .csv text files as well. ''Currently in the functional prototype stage, some assembly is required. See inside the shell script for details.'' For working with SEG-Y data, see also the [[#v.in.mbsys_fnv]] addon.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.krige ====&lt;br /&gt;
&lt;br /&gt;
: [[V.krige_GSoC_2009 | v.krige]] aims to integrate R functions for kriging (packages automap, gstat, geoR) in a trasparent way. '''Moved into trunk/devbr6 code (r40048)'''&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Anne Ghisla, as Google Summer of Code 2009 project&lt;br /&gt;
&lt;br /&gt;
: See also [[GRASS_AddOns#v.autokrige]] by Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== Spatial Analysis Tools ====&lt;br /&gt;
&lt;br /&gt;
     ===== v.lda.py =====&lt;br /&gt;
&lt;br /&gt;
: [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.lda.py v.lda.py] is a Python script for calculating Ian Johnson's (U. Sidney) Local Density Analysis values. This can be used in two ways. When only one vector points file is entered, it serves to measure clustering of point data at different neighborhood radii. When two different point files are entered, it measures the the co-occurence of the points from the two files. There is an option to export the data into a cvs format file for easy plotting in a spreadsheet or statistical program like R.&lt;br /&gt;
&lt;br /&gt;
     ===== v.nn.py =====&lt;br /&gt;
: [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.nn.py v.nn.py] is a Python script for calculating the nearest neighbor coefficient of a single vector points file--as an index of clustering--or of two points files--to provide an index of the correspondence between the points in one file and points in a different file.&lt;br /&gt;
&lt;br /&gt;
==== v.line.center ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.line.center] creates a points vector map with each point located in the middle of the length of the input vector line.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.lmeasure ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mats Schuh&lt;br /&gt;
&lt;br /&gt;
==== v.mkhexgrid ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.mkhexgrid v.mkhexgrid] is a python script that creates a hexagonal grid the size of the selected region using user specified side lengths. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.out.ascii.db ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/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.&lt;br /&gt;
: ''Superseded in GRASS 6.4 by the new v.out.ascii columns= option.''&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.out.ascii.mat ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.out.ascii.mat v.out.ascii.mat] is a shell script for exporting vector polygon and polyline data into an ASCII text file suitable for loading into Matlab (or [http://www.gnu.org/software/octave/ Octave]).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.out.gmt ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== v.out.kml ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/v.out.kml/ v.out.kml] is a shell script that exports a vector file into a KML file for Google Earth or Worldwind. see also [[#r.out.kml|r.out.kml]] and [[#r.out.gmap|r.out.gmap]]&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== v.out.marxan ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.out.marxan v.out.marxan] is a python script that prepares vector layers and exports GRASS vector attributes and adjacency information as Marxan input files. Output from Marxan simulations can be imported using v.in.marxan. &lt;br /&gt;
: ''see also the [http://www.uq.edu.au/marxan/ Marxan] &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.out.svg ====&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 [http://svn.osgeo.org/grass/grass/trunk/vector/v.out.svg/ grass6-svn].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Klaus Förster&lt;br /&gt;
&lt;br /&gt;
==== v.points.cog ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.points.cog v.points.cog] is a shell script which will create a new point at the center of gravity of each cluster of input points or centroids, grouped by attribute. Among other things this is useful for labeling swarms of points.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.profile ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.profile v.profile] is vector map profiling tool similar to r.profile. This module will print out distance and attributes to points/lines along profiling line. It's also usefull to determine places where raster profile crosses vector features (i.e. where to place river marker on river walley crossection).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maris Nartiss&lt;br /&gt;
&lt;br /&gt;
==== v.random.cover ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.random.cover v.random.cover] is a shell script for creating random points constrained within an irregularly shaped vector area. (v.random places points only in current region rectangle). Optionally the user can upload raster values at the points. See also '&amp;lt;tt&amp;gt;r.random cover= vector_output=&amp;lt;/tt&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.rasterbounds ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== v.rast.stats2 ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.rast.stats2 v.rast.stats2] is an adapted version of the GRASS module v.rast.stats. It uses the grass addon [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.univar.zonal r.univar.zonal] to speed up calculation of univariate statistics from a GRASS raster map based on vector polygons.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Markus Neteler, Otto Dassau&lt;br /&gt;
&lt;br /&gt;
==== v.sample.buffer [Currently unavailable. Being re-written in python. Target for inclusion in addons svn is January 2011]====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.select.region ====&lt;br /&gt;
&lt;br /&gt;
: [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/v.select.region.tar.bz2 v.select.region] is a shell script that prints out the names of all vectors matching an input search pattern that has geometry (points, line, areas) that fall within a region bounded by an existing vector map, or within the current Grass region.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== v.selmany ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/vector/v.selmany/v.selmany v.selmany] is a shell script that allows to interactively select a set of vector objects on a given layer, then assign them attribute values in a connected database table. The script runs on the command line prompt and within a graphic monitor ; it does not work with DBF driver.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Vincent Bain&lt;br /&gt;
&lt;br /&gt;
==== v.surf.icw ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.surf.icw v.surf.icw] is an IDW interpolation method using true distance cost instead of euclidean shortest distance, i.e. ''as the fish swims around an island'' not ''as the bird flies''. This will cleanly travel around hard barriers and a cost surface map may be used to model expensive-cross barriers. Input data points do not need direct line of sight to be considered, but should be kept to less than one hundred as the module becomes very computationally expensive. A number of radial basis function options are available. ([http://grass.osgeo.org/wiki/Image:Inlets_03_SurfSal_icw_big.png screenshot])&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.surf.idwpow ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.geospatial.it/allegri/grass/v.surf.idwpow.zip v.surf.idwpow] integrates the common v.surf.idw algorithm with the exponential parameter for the distance weights&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Giovanni Allegri&lt;br /&gt;
&lt;br /&gt;
==== v.surf.krige [deprecated: use v.autokrige instead] ====&lt;br /&gt;
&lt;br /&gt;
: 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
==== v.strahler ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Florian Kindl. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler&lt;br /&gt;
&lt;br /&gt;
==== v.swathwidth ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.swathwidth v.swathwidth] creates a vector map representing the sea bottom coverage of a multibeam (swath) sonar survey.&lt;br /&gt;
: ([http://david.p.finlayson.googlepages.com/swathwidth Screenshots])&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' David Finlayson, Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.thickness ====&lt;br /&gt;
&lt;br /&gt;
: [http://marcin.slodkowski.googlepages.com/v.thickness.tgz v.thickness] creates points of thickness vectors from the vectors of strike and dip angles.The v.thickness is GUI GRASS script for v.dip.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Marcin Slodkowski&lt;br /&gt;
&lt;br /&gt;
==== v.transect.kia ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/vector/v.transect.kia v.transect.kia] calculates kilometric abundance indexes (KIA), a common indirect presence index used in wildlife monitoring along line transect surveys.&lt;br /&gt;
: Path lenghts can be corrected by draping on a DEM, different type of point objects can be weighted according to their relative importance, and paths can be  segmented using a further polygon vector (to calculate, say, abundances per elevation range or per habitat class).&lt;br /&gt;
: The module is written in bash and needs a GRASS install compiled with sqlite support.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Clara Tattoni and Damiano G. Preatoni&lt;br /&gt;
&lt;br /&gt;
==== v.trees3d ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== v.trimesh ====&lt;br /&gt;
: [http://www.valledemexico.ambitiouslemon.com/vtrimesh.html v.trimesh] creates a triangular mesh from a vector map using areal constraints for refinement. It uses Jonathan Shewchuk's Triangle library.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jaime Carrera&lt;br /&gt;
&lt;br /&gt;
==== v.what.rast.buffer ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.what.rast.buffer v.what.rast.buffer] is a script that calculates univariate statistics of raster map(s) from buffers around vector points. Results are written to a file. Resolution is taken from each input map.&lt;br /&gt;
: ''see also the [http://starspan.casil.ucdavis.edu StarSpan] software&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.variogram [deprecated: use v.autokrige instead] ====&lt;br /&gt;
&lt;br /&gt;
: 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.osgeo.org/pipermail/statsgrass/2006-October/000455.html reply].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Ivan Marchesini, Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
==== v.vect.stats ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.vect.stats v.vect.stats] counts the number of points falling into each polygon and optionally calculates statistics from numeric point attributes for each polygon. v.vect.stats is a C module and works with GRASS 6.4 and higher (see enclosed patches for 6.5 and 7.0).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
==== AniMove ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.faunalia.it/animov/ AniMove] is software for analysis of animal movement and ranging behaviour using QGIS+GRASS+R.&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' Support by Faunalia.it&lt;br /&gt;
&lt;br /&gt;
==== Utilities ====&lt;br /&gt;
&lt;br /&gt;
===== Shapemerge =====&lt;br /&gt;
&lt;br /&gt;
: [http://perrygeo.googlecode.com/svn/trunk/gis-bin/shpmerge.sh shpmerge] merges all the shapefiles in the current directory into a single output shapefile&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' Perrygeo&lt;br /&gt;
&lt;br /&gt;
=== Raster add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co &amp;lt;nowiki&amp;gt;https://svn.osgeo.org/grass/grass-addons/raster&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Raplat ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS-RaPlaT: The Radio Planning Tool for GRASS GIS system developed by support of Slovenian largest mobile operator Mobitel. It is especially designed for radio coverage calculation of GSM/UMTS systems, but can be applied also to other wireless systems in the frequency range 400 MHz – 2.4 GHz (e.g. TETRA, WiFi). Its structure is modular and characterized by high level of flexibility and adaptability. &lt;br /&gt;
&lt;br /&gt;
 * Documentation: http://commsys.ijs.si/en/component/content/article/54-software/149-user-manual&lt;br /&gt;
 * Software: http://commsys.ijs.si/en/software/grass-raplat&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Department of Communication Systems, Jozef Stefan Institue, Jamova 39, SI-1000 Ljubljana, Slovenia&lt;br /&gt;
&lt;br /&gt;
==== r.area ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.area r.area] Very simple module. Calculate area size (in cells) for every individual category in input raster map and write number of cells as the value of each cell in the area. Optionally write a binary coverage map and set a minimum area threshold. Works well with {{cmd|r.clump}}.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.basin ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.basin/ r.basin] Generates the main morphometric parameters of the basin starting from the digital elevation model and the coordinates of the basin's closing section.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Margherita Di Leo, Massimo Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.basin/&lt;br /&gt;
&lt;br /&gt;
==== r.bilateral ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.broscoe ====&lt;br /&gt;
&lt;br /&gt;
r.broscoe.sh calculates waerden test and t test statistics for some values of threshold area on a single basin, according to A.J.Broscoe theory (1959).&lt;br /&gt;
See v.strahler package&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler/&lt;br /&gt;
&lt;br /&gt;
==== r.boxcount ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mark Lake, grass6 port: Florian Kindl.&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount/&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount.sh/&lt;br /&gt;
&lt;br /&gt;
==== r.burn.frict ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.burn.frict r.burn.frict] converts vector geometries to raster cells, using a simple anti-aliasing method to close &amp;quot;gaps&amp;quot; between diagonal cells. Useful for &amp;quot;burning&amp;quot; vector geometries into a friction surface, making sure that simulated movement does not &amp;quot;slip&amp;quot; through converted cells that have only diagonal neighbours.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.burn.frict&lt;br /&gt;
&lt;br /&gt;
==== r.clump2 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.clump2 r.clump2] is a C module similar to r.clump. Differences are: diagonally adjacent cells are also clumped but can be excluded, NULL (nodata) cells are always excluded, and selective clumping with start coordinates is supported.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.clump2&lt;br /&gt;
&lt;br /&gt;
==== r.colors.out_vtk ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.out_vtk r.colors.out_vtk] is a shell script used to export the color table associated with a raster map layer to a {{wikipedia|VTK}} XML file. (see also [[Help with 3D]])&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.colors.quantiles ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.quantiles/r.colors.quantiles r.colors.quantiles] is a shell script used to create raster colors rules based on nquantiles. It uses R and spgrass6 package (RGRASS).&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== r.colors.stddev ====&lt;br /&gt;
&lt;br /&gt;
: [http://hamish.bowman.googlepages.com/grass_color_maps r.colors.stddev] ''moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== r.convergence ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.convergence r.convergence] calculate topographic convergence index, useful to detect lineamets represented by chanell/ridge system&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.cpt2grass ====&lt;br /&gt;
&lt;br /&gt;
: [http://hamish.bowman.googlepages.com/grass_color_maps r.cpt2grass] is a GRASS script for importing a [http://www.soest.hawaii.edu/gmt/ GMT] .cpt color table into GRASS. It can save to a text file suitable for r.colors or automatically apply the color table to a raster map.&amp;lt;BR&amp;gt;For a large collection of GMT .cpt files see http://sview01.wiredworkplace.net/pub/cpt-city/&lt;br /&gt;
: Other palette ideas from [http://geography.uoregon.edu/datagraphics/color_scales.htm Univ. Oregon] and [http://oceancolor.gsfc.nasa.gov/PRODUCTS/colorbars.html NASA/Goddard's OceanColor] (latter partially translated for use with GRASS on the [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.tools/palettes grass-addons SVN]).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.csr ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.csr 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 if the appropriate flag is given. Shading parameters can be modified, though useful defaults are given.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== r.cva ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ucl.ac.uk/~tcrnmar/GIS/r.cva.html r.cva] is a cumulative viewshed analysis module. It is an advanced version of the {{cmd|r.los}} program.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' [http://www.ucl.ac.uk/~tcrnmar/ Mark Lake]&lt;br /&gt;
&lt;br /&gt;
==== r.denoise ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.denoise r.denoise] denoises (smooths/despeckles) topographic data, particular DEMs derived from radar data (including SRTM), using Xianfang Sun's [http://www.cs.cf.ac.uk/meshfiltering/index_files/Page342.htm denoising algorithm].  It is designed to preserve sharp edges and to denoise with minimal changes to the original data.  See the [http://personalpages.manchester.ac.uk/staff/john.stevenson/mdenoise/r.denoise.html manual pages] for details.  Further information on Sun's denoising algorithm, including an example, is available [http://personalpages.manchester.ac.uk/staff/john.stevenson/mdenoise here].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' John Stevenson&lt;br /&gt;
&lt;br /&gt;
==== r.dominant_dir.m and r.calc_terraflow_dir.m ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.terraflow.tools dominant_dir.m and 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.diversity ====&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.diversity/ r.diversity] calculates selected diversity indices by calling various r.li commands.This script uses the [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.pielou.html Pielou], [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.renyi.html Renyi], [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.shannon.html Shannon] and [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.simpson.html Simpson] indices. The output is a map for each index. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Luca Delucchi, Duccio Rocchini&lt;br /&gt;
&lt;br /&gt;
==== r.eucdist ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.fragment ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.chrisgarstin.com/stuff/r.fragment r.fragment] fragments a raster into a user-defined set of smaller tiles according to an input number of rows and columns. &lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy r.fuzzy] Calculates membership of every cell in raster according membership function defined by user.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy.logic ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy.logic r.fuzzy.logic] Perform fuzzy operators (AND, OR, NOT, IMP) on membership's map using T-norms and T-conorms for 6 most popular families.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy.system ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy.system r.fuzzy.system] Perform full fuzzy clasificationwith 6 most popular fuzzy logic families and few methods of deffuzification.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.fuzzy.system&lt;br /&gt;
&lt;br /&gt;
==== r.game_of_life ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.game_of_life r.game_of_life] is a shell script which runs Conway's classic Game of Life using GRASS raster modules. It is meant to demonstrate how easy it is to program cellular automata in GRASS as well as various 3D raster volume and time series visualization techniques.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.gauss ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.les-ejk.cz/files/programs/grass/r.gauss.tgz r.gauss] is Gaussian and Laplacian of Gaussian filter for GRASS. It is written in C language.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.gradgrid4 ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.uibk.ac.at/geographie/personal/mergili/gradgrid4.zip gradgrid4] is a tool for interpolating values of discrete data points to a raster map, applying a local regression approach with a predictor raster. The model is based on shell and python scripts as well as an R batchfile. It was tested on Fedora Core 6 with GRASS 6.2.1 and R 2.5.1, but should work under most UNIX systems. After unzipping the gradgrid4 folder, store it at any place in your local file system. In the subfolder docs you can find a manual and a publication draft with a detailed description of the concept and the example of an application. The subfolder testloc constitutes a GRASS location with test data.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Martin Mergili&lt;br /&gt;
&lt;br /&gt;
==== r.hazard.flood ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.hazard.flood/ r.hazard.flood] is an implementation of a fast procedure to detect flood prone areas. The exposure to flooding may be delineated by adopting a topographic index (TIm) computed from a DEM. The portion of a basin exposed to flood inundation is generally characterized by a TIm higher than a given threshold, tau. The threshold is automatically determinated from the cellsize. The proposed procedure may help in the delineation of flood prone areas especially in basins with marked topography. The use of the modified topographic index should not be considered as an alternative to standard hydrological-hydraulic simulations for flood mapping, but it may represent a useful and rapid tool for a preliminary delineation of flooding areas in ungauged basins and in areas where expensive and time consuming hydrological-hydraulic simulations are not affordable or economically convenient. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Margherita Di Leo&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.hazard.flood/&lt;br /&gt;
&lt;br /&gt;
==== r.in.mb ====&lt;br /&gt;
&lt;br /&gt;
: [http://blogs.tekmap.ns.ca/archives/458 r.in.mb] is a &amp;quot;GRASS/[[MB-System]] program designed to import ''mbio'' compatible multibeam sonar data directly into the GRASS GIS. The program is a modified version of {{cmd|r.in.xyz}}. Instead of reading an ASCII XYZ file, ''r.in.mb'' reads an MB-System compatible list file.&amp;quot; It can do automatic reprojection and minor hole filling. The default is to import bathymetry data, but optionally amplitude or sidescan sonar data can be loaded instead.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Bob Covill&lt;br /&gt;
&lt;br /&gt;
==== r.in.onearth ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Soeren Gebbert&lt;br /&gt;
&lt;br /&gt;
==== r.in.swisstopo ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.in.swisstopo/ r.in.swisstopo] for importing swisstopo digital elevation model data into GRASS raster maps.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' J&amp;amp;uuml;rgen Hansmann&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.in.swisstopo/&lt;br /&gt;
&lt;br /&gt;
==== r.in.wms (.py) ====&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. Note GRASS 6.2+ provides a shell script version of r.in.wms, take care of which one is actually being run.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.inund.fluv ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.inund.fluv/ r.inund.fluv]This command allows to obtain a fluvial potentially inundation map given a high-resolution DTM of the area surrounding the river and a water surface profile calculated through an 1-D hydrodinamic model. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Roberto Marzocchi, Bianca Federici, Domenico Sguerso&lt;br /&gt;
&lt;br /&gt;
==== r.isoregions ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.isoregions/r.isoregions r.isoregions] allows isoregions creation from a GRASS raster map. &lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== r.interp.mask ====&lt;br /&gt;
&lt;br /&gt;
: [http://david.p.finlayson.googlepages.com/r.interp.mask r.interp.mask] Creates a user-specified buffer around interpolation points that can be used as a MASK to prevent or clip excessive extrapolation artifacts. This works much better than a standard convex hull around the points.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.ipso ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.ipso/ r.ipso] Produces the ipsometric and ipsographic curve related to a digital elevation model and prints the percentiles&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Margherita Di Leo, Massimo Di Stefano, Francesco Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.ipso/&lt;br /&gt;
&lt;br /&gt;
==== r.li ====&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-SVN'''''.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Claudio Porta, Davide Spano, Serena Pallecchi, [http://www.faunalia.it Faunalia]&lt;br /&gt;
&lt;br /&gt;
==== r.local_max.pl ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.mandelbrot ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/r.mandelbrot r.mandelbrot] is a shell script to calculate the Mandelbrot set.- for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== mcda====&lt;br /&gt;
&lt;br /&gt;
: mcda suite is a toolset for geographics multi-criteria decision aiding and data analysis based on ELECTRE (r.mcda.electre), REGIME (r.mcda.regime) and FUZZY (r.mcda.fuzzy) algorithm. The module r.roughset is also included  for geographics rough set analisys and knowledge discovery based on rough set library. It is written in C language for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/&lt;br /&gt;
&lt;br /&gt;
==== r.mlv ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== r.obstruction, r.planning.static, r.planning.cinematic ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ing.unitn.it/~grass/software.html r.obstruction, r.planning.static, r.planning.cinematic]: r.obstruction creates a polar obstruction map from a DTM. r.planning.static performs a static planning for GPS and Glonass surveys using the obstruction map created with r.obstruction. r.planning.cinematic performs a cinematic planning for GPS and Glonass surveys. (University of Trento, Faculty of Engineering)&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniele Carli, Dimitri D'Inca', Gianluca Fruet, Domenico Sguerso, Paolo Zatelli&lt;br /&gt;
&lt;br /&gt;
==== r.out.jpeg ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.geospatial.it/allegri/grass/r.out.jpeg_ r.out.jpeg] is a simple GRASS script to export georeferenced JPEG images from rasters, keeping the associated color table. It is a two-step export: first a ppm file is created, then it is converted to jpeg usgin the &amp;quot;convert&amp;quot; command from ImageMagick&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Giovanni Allegri&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmap ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.gmap r.out.gmap] outputs GRASS raster map into set of image tiles&lt;br /&gt;
following the tiling scheme of Google Maps and Microsoft Virtual Earth.&amp;lt;BR&amp;gt;Read more in the OSGeo Journal [http://www.osgeo.org/journal Volume 5 (2009, to appear)]&amp;lt;BR&amp;gt;see also [[#r.out.kml|r.out.kml]] and [[#v.out.kml|v.out.kml]]&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Tomas Cebecauer&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmt ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/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&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmt2 ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.gmt2 r.out.gmt2] 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== r.out.kap_template ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.kap_template r.out.kap_template] is a shell script that exports a raster map into a GeoTiff and a metadata text file suitable for use with KAP (BSB) raster nautical chart converter programs such as &amp;lt;tt&amp;gt;tif2bsb&amp;lt;/tt&amp;gt; (after verifying that you are legally entitled to use such a tool).&lt;br /&gt;
: '''''This is EXPERIMENTAL software. NOT FOR NAVIGATIONAL USE.'''''&lt;br /&gt;
: For an easy to use data viewer, see also the [http://www.opencpn.org OpenCPN] free navigational software.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.out.kml ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.kml r.out.kml] is a shell script that exports a raster map into a KML file and image for Google Earth or Worldwind. See also [[#v.out.kml|v.out.kml]] and [[#r.out.gmap|r.out.gmap]].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.pack ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack r.pack] and [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.unpack r.unpack] are two GRASS scripts for transferring raster maps to another computer as a single compressed file including color table etc.&lt;br /&gt;
: An earlier version has been renamed as [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack/experiment r.pack.mat] and [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.unpack/experiment r.unpack.mat].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.pi ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.pi/ r.pi] (raster patch index) provides various functions to analyse spatial attributes of a landscape. It has a focus on patch-based indices but delivers class-based indices as well. r.le and its successor r.li provide landscape indices.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Programming: Elshad Shirinov, Scientific concept: Dr. Martin Wegmann&lt;br /&gt;
&lt;br /&gt;
==== r.prominence ====&lt;br /&gt;
&lt;br /&gt;
: '''r.prominence''' calculates the average difference between a central cell and its neighbors. It approximated the terrain 'ruggedness' by looking at average differences in elevation within a given neighborhood.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.prominence/&lt;br /&gt;
&lt;br /&gt;
==== r.refine ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.bowdoin.edu/~ltoma/research.html r.refine]: reduces a DEM to a TIN (takes as input a grid DEM and an error margin and simplifies it to the desired accuracy into a TIN)&lt;br /&gt;
Available via the source code repository [https://github.com/jonrtodd/r.refine]&lt;br /&gt;
: '''Authors:''' Laura Toma and Jonathan Todd&lt;br /&gt;
&lt;br /&gt;
==== r.rifs ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ucl.ac.uk/~tcrnmar/ r.rifs]: r.rifs generates a raster map and/or image of a fractal by means of the specified random iterated function system.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mark Lake&lt;br /&gt;
&lt;br /&gt;
==== r.roughness ====&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.sh r.roughness.sh] 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;
&lt;br /&gt;
[http://www.igc.usp.br/pessoais/guano/downloads/r.roughness60 r.roughness60] - for GRASS versions 6.0.X&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.area r.roughness.window.area] - calculate surface roughness as the ratio of real (surface) area and planar area, using a moving-window approach.&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.vector r.roughness.window.vector] - calculate surface roughness as vector dispersion, using a moving-window approach. Resulting maps are: Vector Strength (R) and Inverted Fisher's k parameter. &lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.vector.html r.roughness.window.vector.html] - provisional help page for r.roughness.window.vector.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.roughness/&lt;br /&gt;
&lt;br /&gt;
==== r.roughset ====&lt;br /&gt;
&lt;br /&gt;
: r.roughset is a module for geographics rough set analisys and knowledge discovery based on rough set library. It is written in C language for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/r.roughset/&lt;br /&gt;
&lt;br /&gt;
==== r.seg ====&lt;br /&gt;
&lt;br /&gt;
: '''r.seg''' performs image segmentation and discontinuity detection (based on the Mumford-Shah variational model).&lt;br /&gt;
: The module generates a piece-wise smooth approximation of the input raster map and a raster map of the discontinuities of the output approximation. The discontinuities of the output approximation are preserved from being smoothed. &lt;br /&gt;
: See [http://www.ing.unitn.it/~vittia/sw here] for details and examples.&lt;br /&gt;
&lt;br /&gt;
Available [http://www.ing.unitn.it/~vittia/sw here] and with improvements via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.seg/&lt;br /&gt;
&lt;br /&gt;
: '''Author''' Alfonso Vitti&lt;br /&gt;
&lt;br /&gt;
==== r.smoothpatch ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.soils.texture ====&lt;br /&gt;
&lt;br /&gt;
: r.soils.texture is a module to define soils texture from sand and clay raster file with a schema text file (now FAO,USDA and ISSS are available). It is written in C language. - for GRASS versions 6.x - For bugs and suggest: g_massa@libero.it &lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Gianluca Massei&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.soils.texture/&lt;br /&gt;
&lt;br /&gt;
==== r.stack ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stack r.stack] is a shell script used to patch all the raster maps in a time series (or burst 3D raster) together into a vertical stack, to aid mutli-map analyses in modules where group input is not yet available.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.stream.angle ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.angle r.stream.angle] Divide stream network into stright line segments according users input. It extends  Module uses as input direction and stream netwokr map produced by r.watershed and stream.extract  or custom user input. See description for details.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.angle&lt;br /&gt;
&lt;br /&gt;
==== r.stream.basins ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.basins r.stream.basins] delineate basins according users input. It extends r.water.outlet funcionality to extracting more than one basin at one step. Module uses as input direction map produced  stream network produced by r.stream.extract, r.watershed, r.stream order or custom user input. More in tutorial on grass-wiki pages.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.basins&lt;br /&gt;
&lt;br /&gt;
==== r.stream.del ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.del r.stream.del] Calculates downslope length of first order streams and delete them if it length (in pixels) is lower than the treeshold. It also join false segments left by deletion into one with category of upper. It uses r.watershed direction map and r.watershed  stream map as input. The module is added only for r.watershed module, r.stream.extract has deleting short streams build-in. During development of r.stream.* it will be probably abandoned due to duplicate functionality&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.del&lt;br /&gt;
&lt;br /&gt;
==== r.stream.distance ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.distance r.stream.distance] Calculates downslope distance and downslope elevation difference between current cell and stream or outlet cells. It uses r.watershed direction map, r.watershed or r.stream.extract stream map and optionally DEM as input.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.distance&lt;br /&gt;
&lt;br /&gt;
==== r.stream.extract ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.extract r.stream.extract] extracts topologically clean stream networks from input elevation and optionally accumulation maps. Output is available as raster and vector and can be used as input for the other r.stream.* modules by Jarek Jasiewicz. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.extract&lt;br /&gt;
&lt;br /&gt;
==== r.stream.order ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.order r.stream.order] orders stream network outputed by r.watershed or r.stream.extract according Sthrahler, Shreve, Horton and Hack ordering systems. It require as input stream and direction map and optionally accumulation map. It handle both SFD nad MFD modes but all data must come from the same procedure.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz, Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.order&lt;br /&gt;
&lt;br /&gt;
==== r.stream.pos ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.pos r.stream.pos] Helper module for calculating local stream network properties and linear geostatistics. Mostly To use with R and other grass modules. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.pos&lt;br /&gt;
&lt;br /&gt;
==== r.stream.stats ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.stats r.stream.stats] calculate Hortonian statistics for Stahler or Horton stream network created by r.stream.order. It uses r.watershed direction map, DEM and r.stream.order's Stahler or Horton stream network as input. It outputs calculated statistics to standard output.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.stats&lt;br /&gt;
&lt;br /&gt;
==== r.surf.nnbathy ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html r.surf.nnbathy] interpolates a surface from a raster input using Pavel Sakov's [http://code.google.com/p/nn-c/ nn] natural neighbor interpolation library. Provides triangulation, Sibson natural neighbor interpolation and non-Sibsonian interpolation.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== r.surf.volcano ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.surf.volcano r.surf.volcano] creates an artificial surface resembling a seamount or cone volcano. The user can alter the size and shape of the mountain and optionally roughen its surface. Available decay functions are  polynomial, Gaussian, Lorentzian, logarithmic, and exponential.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.terracost ====&lt;br /&gt;
&lt;br /&gt;
[http://www.bowdoin.edu/~ltoma/research.html r.terracost] Scalable approach for computing least-cost-path surfaces on massive grid terrains.&amp;lt;BR&amp;gt;'''Lead author''': Laura Toma&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/raster/r.terracost&lt;br /&gt;
&lt;br /&gt;
==== r.tileset ====&lt;br /&gt;
&lt;br /&gt;
: ''{{cmd|r.tileset}} moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== r.traveltime ====&lt;br /&gt;
&lt;br /&gt;
: [http://jesbergwetter.twoday.net/stories/4845555/ r.traveltime] computes the travel time of surface runoff to an outlet. The program starts at the basin outlet and calculates the travel time at each raster cell recursively. A drainage area related threhold considers even  surface and also channel runoff. Travel times are derived by assuming kinematic wave approximation. The results can be used to derive a time-area function. This might be usefull for precipitation-runoff calculations (estimation of flood predictions) with a lumped hydrologic model (user-specified unit hydrograph).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Kristian Förster&lt;br /&gt;
&lt;br /&gt;
==== r.univar.zonal ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.univar.zonal r.univar.zonal] is similar to r.univar, but calculates statistics separately for each category(zone) present in the separate input map used to define zones (zonal statistics). The output can be like the one of r.univar or in easier to read table format and can be written to a file. This addon is only needed for GRASS 6.4, its functionality has been added to r.univar in 6.5 and 7.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.univar.zonal&lt;br /&gt;
&lt;br /&gt;
==== r.viewshed ====&lt;br /&gt;
&lt;br /&gt;
: r.viewshed is a module for extremely fast line of sight analysis (replaces the slow r.los). It is written in C language for GRASS versions 6.X/7.x.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Laura Toma, USA&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.viewshed&lt;br /&gt;
&lt;br /&gt;
Once {{trac|390}} is solved, it will substitute r.los.&lt;br /&gt;
&lt;br /&gt;
==== r.wavelets ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ing.unitn.it/~grass/software.html r.wavelets]: This package contains wavelets decomposition and reconstruction modules for the GRASS GIS: r.owave.dec computes the orthogonal wavelet transform of a raster map. r.owave.rec reconstructs a raster map from an orthogonal wavelet transform. r.biowave.dec computes the biorthogonal wavelet transform of a raster map. r.biowave.rec reconstructs a raster map from a biorthogonal wavelet transform.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Members of the University of Trento, Faculty of Engineering&lt;br /&gt;
&lt;br /&gt;
==== r.wf ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.wf/ r.wf] produces the Width Function of a basin. The Width Function W(x) gives the number of the cells in a basin at a flow distance x from the outlet (it is also referred as distance-area function). The distance is not the euclidean one, but it is measured along the flowpath towards the outlet.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Margherita Di Leo, Massimo Di Stefano, Francesco Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.wf/&lt;br /&gt;
&lt;br /&gt;
==== r.xtent ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.xtent r.xtent] computes a raster map layer representing the Voronoi diagram, weighted Voronoi diagram or a more complex territorial partitioning of space around points (centers) in a vector input map, based on the XTENT formula.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.xtent&lt;br /&gt;
&lt;br /&gt;
==== r.zc.pl ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== GIPE ====&lt;br /&gt;
&lt;br /&gt;
: The GRASS Image Processing Environment (GIPE) has USLE, Energy-balance and radiance-reflectance correction models.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Yann Chemin (unless specified otherwise).&lt;br /&gt;
   &lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/imagery/gipe&lt;br /&gt;
&lt;br /&gt;
Remark: This is progressively moved to main GRASS SVN (aka GRASS 7)&lt;br /&gt;
&lt;br /&gt;
:* r.hydro.CASC2D, ported from GRASS 5.x version, is temporarily here waiting to return to main GRASS.&lt;br /&gt;
&lt;br /&gt;
:* r.soiltex2prop creates porosity, Saturated Hydraulic conductivity (Ksat) and wetting front pressure head (Hf) from percentage of sand and clay after Rawls et al., 1990. This is a must for r.hydro.CASC2D.&lt;br /&gt;
&lt;br /&gt;
:* i.biomass creates biomass growth map from fPAR, lightuse efficiency, water availability (or evap.fraction), Lat, doy and tsw.&lt;br /&gt;
&lt;br /&gt;
:* i.dn2ref.l7, r.dn2ref.ast create top of atmosphere reflectance for Landsat 7ETM+ and ASTER. These modules also have a flag for radiance output. Updated i.dn2ref.l7 to read .met calibration file.  &lt;br /&gt;
&lt;br /&gt;
:* i.dn2full.l[5,7] is an attempt to get all bands of Landsat[5,7] calibrated and corrected to either reflectance or temperature, reads only the .met file.  &lt;br /&gt;
&lt;br /&gt;
:* i.dn2potrad.l[5,7] is an attempt to get ET potential from DN of Landsat 7 (Careful! No Atmospheric correction!).  &lt;br /&gt;
&lt;br /&gt;
:* i.eb.* are a set of 10+ 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. &lt;br /&gt;
&lt;br /&gt;
:* i.evapo.potrad creates 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 i.eb.eta. &lt;br /&gt;
&lt;br /&gt;
:* i.evapo.SENAY creates actual evapotranspiration following the regional method of Senay (2007). &lt;br /&gt;
&lt;br /&gt;
:* i.lmf creates a Local Maximum Fitting on the temporal dimension of the multi-date input dataset, working, but more precision still to be added.&lt;br /&gt;
&lt;br /&gt;
:* i.vi.mpi is the mpi version of i.vi for cluster GRASS GIS education (no speed up here!) '''Author:''' Shamim Akhter &lt;br /&gt;
&lt;br /&gt;
:* i.modis.stateqa extracts State Quality Assessment information from Modis 500m (MOD09A) products.&lt;br /&gt;
&lt;br /&gt;
:* i.water creates a Water Mask from NDVI and Albedo, or specifically for Modis: NDVI and Band 7.&lt;br /&gt;
&lt;br /&gt;
:* i.wi creates a given Water Index (only one so far).&lt;br /&gt;
&lt;br /&gt;
==== HydroFOSS ====&lt;br /&gt;
&lt;br /&gt;
: HydroFOSS - a GIS embedded approach for Free &amp;amp; Open Source Hydrological modeling.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Massimiliano Cannata&lt;br /&gt;
 &lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/HydroFOSS/&lt;br /&gt;
&lt;br /&gt;
==== Hikereport ====&lt;br /&gt;
&lt;br /&gt;
: python script that computes length, cumulative uphill and downhill, average slopes on an interactively drawn path. Based on r.profile's output.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Negri&lt;br /&gt;
&lt;br /&gt;
 http://tracce.wordpress.com/?attachment_id=71&lt;br /&gt;
&lt;br /&gt;
=== Misc add-ons===&lt;br /&gt;
&lt;br /&gt;
==== m.eigensystem ====&lt;br /&gt;
&lt;br /&gt;
m.eigensystem - Computes eigen values and eigen vectors for square matrices.&lt;br /&gt;
&lt;br /&gt;
: http://svn.osgeo.org/grass/grass-addons/misc/m.eigensystem/&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Michael Shapiro&lt;br /&gt;
&lt;br /&gt;
===Database add-ons===&lt;br /&gt;
==== db.join ====&lt;br /&gt;
&lt;br /&gt;
: Table joining: join one table into another through common attributes&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/database/db.join/&lt;br /&gt;
or&lt;br /&gt;
   g.extension db.join&lt;br /&gt;
&lt;br /&gt;
===General add-ons===&lt;br /&gt;
&lt;br /&gt;
==== GRASS create location scripts ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/grass_create_location grass_create_location.sh] Script to generate a new GRASS location from GIS file (e.g. geoTIFF or SHAPE), wktfile or EPSG code.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler&lt;br /&gt;
&lt;br /&gt;
==== g.laptop.sh ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.gbd-consult.de/dassau/grass/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Otto Dassau&lt;br /&gt;
&lt;br /&gt;
==== Readline completion ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alexandre Sorokine (grass-complete), Daniel Calvelo (grass_rlcompleter.sh)&lt;br /&gt;
&lt;br /&gt;
==== g.region.point ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.region.point g.region.point] is a shell script which resets the computational region to a square box around a given coordinate. It is intended for use within GRASS scripts to speed up processing by limiting expensive raster calculations to a small area of interest.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== g.linke_by_day ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.sun.tools/ g.linke_by_day] is a python script for [[r.sun]] which interpolates a Linke turbidity value for a given day of the year based on monthly values edited into the script.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== g.xlist ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.xlist g.xlist] is a C implementation of g.mlist. g.xlist searches for data files matching a pattern given by wildcards or POSIX Extended Regular Expressions. POSIX regex(3) functions are required.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== g.xremove ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.xremove g.xremove] is a C implementation of g.mremove. g.xremove removes data files matching a pattern given by wildcards or POSIX Extended Regular Expressions. POSIX regex(3) functions are required.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
=== Imagery add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/imagery&lt;br /&gt;
&lt;br /&gt;
==== GIPE ====&lt;br /&gt;
&lt;br /&gt;
GIPE (see also above in raster section) provides:&lt;br /&gt;
i.biomass, i.dn2potrad.l5, i.dn2potrad.l7, i.dn2ref.ast, i.eb.deltat, i.eb.disp, i.eb.eta, i.eb.evapfr, i.eb.g0, i.eb.h0, i.eb.h_SEBAL01, i.eb.h_SEBAL95, i.eb.h_iter, i.eb.molength, i.eb.netrad, i.eb.psi, i.eb.rah, i.eb.rohair, i.eb.ublend, i.eb.ustar, i.eb.wetdrypix, i.eb.z0m, i.eb.z0m0, i.evapo.PT, i.evapo.TSA, i.evapo.potrad, i.evapo.senay, i.evapo.time_integration, i.lmf, i.modis.stateqa, i.sattime, i.vi.grid, i.vi.mpi, i.water, i.wi&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/gipe/&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
==== i.homography ====&lt;br /&gt;
&lt;br /&gt;
Rectifies an image by computing a coordinate transformation for each pixel in the image based on the control points created by i.linespoints. The approach uses homography extended for corresponding lines.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.homography&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniel Grasso, Bolzano, Italy, based on code written by Stefano Merler, ITC-irst, Italy&lt;br /&gt;
&lt;br /&gt;
==== i.linespoints ====&lt;br /&gt;
&lt;br /&gt;
An imagery command that enables the user to mark coordinate system points as well as lines on an image to be rectified and then input the coordinates of each point for creation of a coordinate transformation matrix. The transformation matrix is needed as input for the GRASS program i.homography.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.linespoints&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniel Grasso, Bolzano, Italy, based on i.points&lt;br /&gt;
&lt;br /&gt;
==== i.landsat.toar ====&lt;br /&gt;
&lt;br /&gt;
Transform calibrated digital number of Landsat products to top-of-atmosphere radiance or top-of-atmosphere reflectance and temperature (band 6 of the sensors TM and ETM+). Optionally, used to calculate the at-surface radiance or reflectance with atmospheric correction (DOS method).&lt;br /&gt;
&lt;br /&gt;
Available also in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.landsat.toar&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.landsat.acca ====&lt;br /&gt;
&lt;br /&gt;
Implements the Automated Cloud-Cover Assessment (ACCA) Algorithm from Irish (2000) with the constant values for pass filter one from Irish et al. (2006). To do this, it needs Landsat band numbers 2, 3, 4, 5, and 6 (or band 61 for Landsat-7 ETM+) which have already been processed from DN into reflectance and band-6 temperature with i.landsat.toar). &lt;br /&gt;
&lt;br /&gt;
Available also in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.landsat.acca&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.points.auto ====&lt;br /&gt;
&lt;br /&gt;
This module allows a search of GCP's on two raster-maps with differents levels of automation. The ''manual'' search is the default search, so it's possible to determine the GCP's manually with the mouse (like {{cmd|i.points}}). ''Semiautomated'' search: The user determines with the mouse some correspondent areas (with a discrete precision) in the two maps and the module searches itself the GCP's in these areas. ''Automated'' search: At the start of module the user has to load the maps that the algorithm uses to the search, so it is recommended to use the maps filtered with the filters DIVERSITY or STDDEV (of GRASS) with a window of 3x3 or 5x5 pixels. However, the algorithm sometimes works well with the original maps too.&lt;br /&gt;
&lt;br /&gt;
Note: This code is basically an improved i.points (from 2004). Subsequent changes in i.points haven's been ported here yet.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.points.auto&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' based on i.points; additions by Ivan Michelazzi, Luca Miori (MSc theses at ITC-irst); Supervisors: Markus Neteler, Stefano Merler, ITC-irst 2003, 2004. [http://gisws.media.osaka-cu.ac.jp/grass04/viewpaper.php?id=37 PDF article]&lt;br /&gt;
&lt;br /&gt;
==== i.points.reproj ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/imagery/i.points.reproj i.points.reproj] is a shell script that will use cs2cs to reproject the target coordinates of a group's POINTS file. By running i.rectify directly to the new target projection, a generation of resampling data loss can be avoided (versus i.rectify + r.proj). On the other hand, i.rectify does not calculate cell resolution well if the map is to be rotated ([http://intevation.de/rt/webrt?serial_num=3296 bug #3296]), in those cases i.rectify+r.proj may be the better option.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== i.plr.py ====&lt;br /&gt;
&lt;br /&gt;
: [[I.plr.py|Probabilistic Label Relaxation]], written in Python&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Georg Kaspar&lt;br /&gt;
&lt;br /&gt;
==== i.pr ====&lt;br /&gt;
&lt;br /&gt;
: Image classification: implements k-NN (multiclass), classification trees (multiclass), maximum likelihood (multiclass), Support Vector Machines (binary), bagging versions of all the base classifiers, AdaBoost for binary trees and support vector machines. It allows feature manipulation (normalization, principal components,...). It also implements feature selection techniques (RFE, E-RFE,...), statistical tests on variables, tools for resampling (cross-validation and bootstrap) and cost-sensitive techniques for trees and support vector machines.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Merler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.pr&lt;br /&gt;
&lt;br /&gt;
==== i.spec.sam ====&lt;br /&gt;
&lt;br /&gt;
: Spectral Angle mapping&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.sam/&lt;br /&gt;
&lt;br /&gt;
==== i.spec.unmix ====&lt;br /&gt;
&lt;br /&gt;
: Spectral unmixing&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.unmix/&lt;br /&gt;
&lt;br /&gt;
==== i.topo.corr ====&lt;br /&gt;
: i.topo.corr is used to topographically correct reflectance from imagery files, e.g. obtained with i.landsat.toar (see above), using a sun illumination terrain model. This illumination model represents the cosine of the incident angle, i.e. the  angle between the normal to the ground and the sun rays. It can be obtained with {{cmd|r.sun}} (parameter incidout), and then calculating its cosine with float precision. Correction methods: cosine, minnaert, percent, c-factor.&lt;br /&gt;
&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.topo.corr&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.warp ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/imagery/i.warp i.warp] 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
=== Display add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== d.barb ====&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/display/d.barb d.barb] is a C module that will draw wind barbs, straw plots, and arrow plots from raster array or sparse vector point data. It can use either direction + magnitude, or u + v components as the input, and can produce a legend key. (''work in progress, but it's mostly there'')&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.edit.rast ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.edit.rast d.edit.rast] edits cells in an existing raster map displayed on the current monitor.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== d.frame.quarter ====&lt;br /&gt;
&lt;br /&gt;
: ('''obsolete''') [http://trac.osgeo.org/grass/browser/grass-addons/display/d.frame.split d.frame.quarter] is a shell script that will split the display into four quadrants (or sixths) using ''d.frame''. Individual frames are named ''uno, dos, tres, cuatro'', and ''full_screen''.&lt;br /&gt;
: Replaced by {{cmd|d.split.frame}} in main.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.frame.split ====&lt;br /&gt;
&lt;br /&gt;
: ''d.frame.split moved into main archive as {{cmd|d.split.frame}}''&lt;br /&gt;
&lt;br /&gt;
==== d.frontline ====&lt;br /&gt;
&lt;br /&gt;
: [http://cloud.github.com/downloads/amuriy/GRASS-scripts/d.frontline d.frontline] is a shell script that draws frontlines on the graphics monitor using ''d.graph'' module and different types of symbols. Also it optionally saves frontline graphics to ''d.graph'' commands file and/or ''ps.map'' file (for later use with the &amp;quot;read&amp;quot; ''ps.map'' instruction)   &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alexander Muriy&lt;br /&gt;
&lt;br /&gt;
==== d.hyperlink ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author: '''Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== d.mark ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.mark] is a shell script that quickly displays a marker on the display at a given coordinate.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
==== d.region.box ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.region.box d.region.box] is a shell script that quickly displays a box around the current region.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.stations ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts   d.stations] is a shell script that quickly displays vector points (or sites for GRASS 5.4 and below).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
==== d.varea ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.varea] is a shell script that quickly displays vector areas.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== pd-GRASS ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ornl.gov/sci/gist/software/grass/ pd-GRASS]: Parallel Display for GRASS GIS&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alex Sorokine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[IconSymbols]] ====&lt;br /&gt;
&lt;br /&gt;
* [[IconSymbols|Symbols]] which can be used with ''d.vect, d.graph'', and ''ps.map''.&lt;br /&gt;
&lt;br /&gt;
=== Postscript add-ons ===&lt;br /&gt;
&lt;br /&gt;
* ''See also [[ps.map scripts|ps.map samples and templates]]''.&lt;br /&gt;
&lt;br /&gt;
==== ps.atlas ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== ps.output ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/postscript/ps.output ps.output] is much like {{cmd|ps.map}} but with advanced decorations and ability for translucency. Here you can find a [[Ps.output|tutorial]].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== [[AreaFillPatterns]] ====&lt;br /&gt;
&lt;br /&gt;
* Hatches for ps.map's vareas&lt;br /&gt;
&lt;br /&gt;
=== wxGUI add-ons ===&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;
* See wiki [[GRASS and MapServer]] page&lt;br /&gt;
&lt;br /&gt;
==GRASS 5.x (old)==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.osgeo.org/download/addons.php&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.osgeo.org/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;
* [http://www.bowdoin.edu/~ltoma/research.html r.terracost] Scalable approach for computing least-cost-path surfaces on massive grid terrains. For GRASS 5.3.&amp;lt;BR&amp;gt;'''Lead author''': Laura Toma&lt;br /&gt;
:Newer version available via SVN:&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/raster/r.terracost&lt;br /&gt;
&lt;br /&gt;
==GRASS 4.x (very old)==&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* MAGICAL Software: The MAGICAL software comprises a suite of three programs that provide a multi-agent simulation extension for the GRASS GIS software. http://www.ucl.ac.uk/~tcrnmar/simulation/magical/magical.html&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>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=13788</id>
		<title>AddOns</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=13788"/>
		<updated>2011-07-02T05:03:48Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Spatial Analysis Tools */&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.osgeo.org/download/ here]).&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== AddOns source code repository ==&lt;br /&gt;
&lt;br /&gt;
The AddOns source code is hosted in [http://svn.osgeo.org/grass/grass-addons/ GRASS-AddOns SVN repository].&lt;br /&gt;
&lt;br /&gt;
To checkout:&lt;br /&gt;
&lt;br /&gt;
 svn checkout &amp;lt;nowiki&amp;gt;https://svn.osgeo.org/grass/grass-addons/&amp;lt;/nowiki&amp;gt; grass-addons&lt;br /&gt;
&lt;br /&gt;
Please read [http://trac.osgeo.org/grass/wiki/HowToContribute#WriteaccesstotheGRASS-Addons-SVNrepository How to get write access to the GRASS-Addons-SVN repository] and contact the [http://lists.osgeo.org/mailman/listinfo/grass-dev grass-dev] mailing list if you would like to host your module there.&lt;br /&gt;
&lt;br /&gt;
== Building and installing Addons ==&lt;br /&gt;
&lt;br /&gt;
See the [[Compile and Install#Addons|compile and install]] wiki page.&lt;br /&gt;
&lt;br /&gt;
In GRASS 6.4 and newer you can use the {{cmd|g.extension}} module, e.g. to install &amp;lt;tt&amp;gt;r.fuzzy.system&amp;lt;/tt&amp;gt; run:&lt;br /&gt;
&lt;br /&gt;
 g.extension extension=r.fuzzy.system&lt;br /&gt;
&lt;br /&gt;
To remove installed Addons run&lt;br /&gt;
&lt;br /&gt;
 g.extension extension=r.fuzzy.system operation=remove&lt;br /&gt;
&lt;br /&gt;
== Adding something new ==&lt;br /&gt;
&lt;br /&gt;
Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work. Also please consider adding your module to one of the [[Applications]] pages.&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;
=== Coding standards ===&lt;br /&gt;
&lt;br /&gt;
Please have a look at our [http://grass.osgeo.org/grass63/source/SUBMITTING_SCRIPTS Shell script coding standards] before submitting here.&lt;br /&gt;
&lt;br /&gt;
There are other coding standards given for modules written in C, Tcl/Tk, and Python''(?)'' located in the GRASS source code.&lt;br /&gt;
&lt;br /&gt;
=== Documenting your code ===&lt;br /&gt;
&lt;br /&gt;
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the &amp;lt;tt&amp;gt;--html-description&amp;lt;/tt&amp;gt; command line option. Please, see also the [http://grass.ibiblio.org/grass63/manuals/html63_user/g.parser.html g.parser help page]&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous Add-ons ==&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/browser/grass-addons/misc/utm_which_zone utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] or Matlab 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 6.x (current)==&lt;br /&gt;
&lt;br /&gt;
=== Vector add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector&lt;br /&gt;
&lt;br /&gt;
==== v.adehabitat.clusthr, v.adehabitat.kernelUD, v.adehabitat.mcp ====&lt;br /&gt;
&lt;br /&gt;
: Tools to calculate home ranges of animals&lt;br /&gt;
: '''Author:''' Clement Calenge&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/adehabitat&lt;br /&gt;
&lt;br /&gt;
==== v.append ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Michael Barton&lt;br /&gt;
&lt;br /&gt;
==== v.autokrige ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.autokrige/v.autokrige.py v.autokrige] achieves automatic ordinary kriging from GRASS sites (vector point data), using R with spgrass6 (RGRASS) and automap packages.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.breach ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.breach] creates vector maps of lines and points of continously lowering elevation down the input watercourses, based on the input raster DEM.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.colors ====&lt;br /&gt;
&lt;br /&gt;
: {{cmd|v.colors}} ''moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== v.count.points.sh ====&lt;br /&gt;
&lt;br /&gt;
: [http://wiki.iosa.it/dokuwiki/spatial_analysis:feature_count v.count.points.sh] counts point features in areas, generates table good as input to d.vect.chart.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Costa&lt;br /&gt;
&lt;br /&gt;
==== v.digatt ====&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].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Andreas Philipp&lt;br /&gt;
&lt;br /&gt;
==== v.dip ====&lt;br /&gt;
&lt;br /&gt;
: [http://marcin.slodkowski.googlepages.com/v.dip.tgz v.dip] creates points of thickness vectors from the vectors of strike and dip angles. The v.dip is the main ANSI C core program. Program so-called v.dip can run without GRASS environment.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Marcin Slodkowski&lt;br /&gt;
&lt;br /&gt;
==== v.flip ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.flip] flips the direction of selected vector lines (redundant since GRASS 6.3 - there is &amp;quot;v.edit tool=flip&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.group ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
==== v.in.redwg ====&lt;br /&gt;
&lt;br /&gt;
: v.in.redwg imports DWG files into GRASS.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Rodrigo Rodrigues da Silva&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.redwg&lt;br /&gt;
&lt;br /&gt;
==== v.in.gama ====&lt;br /&gt;
&lt;br /&gt;
: Converts [http://www.gnu.org/software/gama/ GNU GaMa] XML output file to a GRASS vector map layer.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Martin Landa&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.gama&lt;br /&gt;
&lt;br /&gt;
==== v.in.geodesic ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.geodesic v.in.geodesic] is a shell script which will create a new vector map containing a great circle line. The user may either define a beginning and end coordinate, or define a starting coordinate along with initial azimuth and desired line length.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.geoplot ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.geoplot v.in.geoplot] converts a [http://www.geoscan-research.co.uk/page9.html/ Geoplot] ASCII export file to a GRASS vector map layer.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.geoplot&lt;br /&gt;
&lt;br /&gt;
==== v.in.gshhs ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.gshhs v.in.gshhs] imports [http://www.soest.hawaii.edu/pwessel/gshhs/index.html GSHHS] shorelines into a GRASS vector map. GSHHS data are automatically reprojected to the current location.&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' several, updated to GRASS 6 by Markus Metz&lt;br /&gt;
&lt;br /&gt;
==== v.in.marxan ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.marxan v.in.marxan] is a python script that imports Marxan output data for display in a vector grid file prepared using v.out.marxan. &lt;br /&gt;
: ''see also the [http://www.uq.edu.au/marxan/ Marxan] &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.in.mbsys_fnv ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.mbsys_fnv v.in.mbsys_fnv] imports [[MB-System]] navigation files into a GRASS vector map. You can choose from swath area coverage, track lines (including outer port/starboard edges), all bounds as points, etc. An attribute database is created containing the vital statistics of the specified feature such as track length or swath coverage (geodesic), start stop time and location, pitch, roll, heave, etc. See also the [[#v.in.p190]] addon.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.ncdc ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.ncdc v.in.ncdc] imports an [http://www.ncdc.noaa.gov NCDC] stn file (station data) into a GRASS vector map.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== v.in.postgis ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.postgis/v.in.postgis.py v.in.postgis] Create a GRASS layer from any sql query on PostGIS data.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.in.osm ====&lt;br /&gt;
&lt;br /&gt;
: [http://kripton.kripserver.net/software/v.in.osm/ v.in.osm]: OpenStreetMap import into GRASS. Yet only supports deprecated API 0.4, will be modified to work with API 0.5 some time soon.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jannis Achstetter&lt;br /&gt;
&lt;br /&gt;
: See also [http://hamish.bowman.googlepages.com/gpsdrivefiles#osm osm2grass.sh] by H Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.osm2 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.osm2 v.in.osm2]: OpenStreetMap import into GRASS. Supports current API 0.6, downloads using the [http://wiki.openstreetmap.org/wiki/Xapi Xapi] interface and imports using GpsBabel 1.3.5 or newer. GpsBabel restricts to either nodes or ways being imported at a time, not both. Use {{cmd|v.patch}} to rejoin them. (''work in progress'')&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.ovl ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/v.in.ovl/ v.in.ovl] is a shell script that imports an ASCII vector file created with TOP10|25|50 or similar products.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== v.in.p190 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.p190 v.in.p190] is a shell script that imports 'Centre of Source' &amp;quot;S&amp;quot; navigation data from seismic P1/90 (UKOOA) data files and writes it either GRASS vector points or vector lines format. Optionally it will export the navigation data into .csv text files as well. ''Currently in the functional prototype stage, some assembly is required. See inside the shell script for details.'' For working with SEG-Y data, see also the [[#v.in.mbsys_fnv]] addon.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.krige ====&lt;br /&gt;
&lt;br /&gt;
: [[V.krige_GSoC_2009 | v.krige]] aims to integrate R functions for kriging (packages automap, gstat, geoR) in a trasparent way. '''Moved into trunk/devbr6 code (r40048)'''&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Anne Ghisla, as Google Summer of Code 2009 project&lt;br /&gt;
&lt;br /&gt;
: See also [[GRASS_AddOns#v.autokrige]] by Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== Spatial Analysis Tools ====&lt;br /&gt;
&lt;br /&gt;
\t===== v.lda.py =====&lt;br /&gt;
&lt;br /&gt;
: [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.lda.py v.lda.py] is a Python script for calculating Ian Johnson's (U. Sidney) Local Density Analysis values. This can be used in two ways. When only one vector points file is entered, it serves to measure clustering of point data at different neighborhood radii. When two different point files are entered, it measures the the co-occurence of the points from the two files. There is an option to export the data into a cvs format file for easy plotting in a spreadsheet or statistical program like R.&lt;br /&gt;
&lt;br /&gt;
\t===== v.nn.py =====&lt;br /&gt;
: [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.nn.py v.nn.py] is a Python script for calculating the nearest neighbor coefficient of a single vector points file--as an index of clustering--or of two points files--to provide an index of the correspondence between the points in one file and points in a different file.&lt;br /&gt;
&lt;br /&gt;
==== v.line.center ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.line.center] creates a points vector map with each point located in the middle of the length of the input vector line.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.lmeasure ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mats Schuh&lt;br /&gt;
&lt;br /&gt;
==== v.mkhexgrid ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.mkhexgrid v.mkhexgrid] is a python script that creates a hexagonal grid the size of the selected region using user specified side lengths. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.out.ascii.db ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/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.&lt;br /&gt;
: ''Superseded in GRASS 6.4 by the new v.out.ascii columns= option.''&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.out.ascii.mat ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.out.ascii.mat v.out.ascii.mat] is a shell script for exporting vector polygon and polyline data into an ASCII text file suitable for loading into Matlab (or [http://www.gnu.org/software/octave/ Octave]).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.out.gmt ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== v.out.kml ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/v.out.kml/ v.out.kml] is a shell script that exports a vector file into a KML file for Google Earth or Worldwind. see also [[#r.out.kml|r.out.kml]] and [[#r.out.gmap|r.out.gmap]]&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== v.out.marxan ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.out.marxan v.out.marxan] is a python script that prepares vector layers and exports GRASS vector attributes and adjacency information as Marxan input files. Output from Marxan simulations can be imported using v.in.marxan. &lt;br /&gt;
: ''see also the [http://www.uq.edu.au/marxan/ Marxan] &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.out.svg ====&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 [http://svn.osgeo.org/grass/grass/trunk/vector/v.out.svg/ grass6-svn].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Klaus Förster&lt;br /&gt;
&lt;br /&gt;
==== v.points.cog ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.points.cog v.points.cog] is a shell script which will create a new point at the center of gravity of each cluster of input points or centroids, grouped by attribute. Among other things this is useful for labeling swarms of points.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.profile ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.profile v.profile] is vector map profiling tool similar to r.profile. This module will print out distance and attributes to points/lines along profiling line. It's also usefull to determine places where raster profile crosses vector features (i.e. where to place river marker on river walley crossection).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maris Nartiss&lt;br /&gt;
&lt;br /&gt;
==== v.random.cover ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.random.cover v.random.cover] is a shell script for creating random points constrained within an irregularly shaped vector area. (v.random places points only in current region rectangle). Optionally the user can upload raster values at the points. See also '&amp;lt;tt&amp;gt;r.random cover= vector_output=&amp;lt;/tt&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.rasterbounds ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== v.rast.stats2 ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.rast.stats2 v.rast.stats2] is an adapted version of the GRASS module v.rast.stats. It uses the grass addon [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.univar.zonal r.univar.zonal] to speed up calculation of univariate statistics from a GRASS raster map based on vector polygons.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Markus Neteler, Otto Dassau&lt;br /&gt;
&lt;br /&gt;
==== v.sample.buffer [Currently unavailable. Being re-written in python. Target for inclusion in addons svn is January 2011]====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.select.region ====&lt;br /&gt;
&lt;br /&gt;
: [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/v.select.region.tar.bz2 v.select.region] is a shell script that prints out the names of all vectors matching an input search pattern that has geometry (points, line, areas) that fall within a region bounded by an existing vector map, or within the current Grass region.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== v.selmany ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/vector/v.selmany/v.selmany v.selmany] is a shell script that allows to interactively select a set of vector objects on a given layer, then assign them attribute values in a connected database table. The script runs on the command line prompt and within a graphic monitor ; it does not work with DBF driver.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Vincent Bain&lt;br /&gt;
&lt;br /&gt;
==== v.surf.icw ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.surf.icw v.surf.icw] is an IDW interpolation method using true distance cost instead of euclidean shortest distance, i.e. ''as the fish swims around an island'' not ''as the bird flies''. This will cleanly travel around hard barriers and a cost surface map may be used to model expensive-cross barriers. Input data points do not need direct line of sight to be considered, but should be kept to less than one hundred as the module becomes very computationally expensive. A number of radial basis function options are available. ([http://grass.osgeo.org/wiki/Image:Inlets_03_SurfSal_icw_big.png screenshot])&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.surf.idwpow ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.geospatial.it/allegri/grass/v.surf.idwpow.zip v.surf.idwpow] integrates the common v.surf.idw algorithm with the exponential parameter for the distance weights&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Giovanni Allegri&lt;br /&gt;
&lt;br /&gt;
==== v.surf.krige [deprecated: use v.autokrige instead] ====&lt;br /&gt;
&lt;br /&gt;
: 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
==== v.strahler ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Florian Kindl. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler&lt;br /&gt;
&lt;br /&gt;
==== v.swathwidth ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.swathwidth v.swathwidth] creates a vector map representing the sea bottom coverage of a multibeam (swath) sonar survey.&lt;br /&gt;
: ([http://david.p.finlayson.googlepages.com/swathwidth Screenshots])&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' David Finlayson, Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.thickness ====&lt;br /&gt;
&lt;br /&gt;
: [http://marcin.slodkowski.googlepages.com/v.thickness.tgz v.thickness] creates points of thickness vectors from the vectors of strike and dip angles.The v.thickness is GUI GRASS script for v.dip.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Marcin Slodkowski&lt;br /&gt;
&lt;br /&gt;
==== v.transect.kia ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/vector/v.transect.kia v.transect.kia] calculates kilometric abundance indexes (KIA), a common indirect presence index used in wildlife monitoring along line transect surveys.&lt;br /&gt;
: Path lenghts can be corrected by draping on a DEM, different type of point objects can be weighted according to their relative importance, and paths can be  segmented using a further polygon vector (to calculate, say, abundances per elevation range or per habitat class).&lt;br /&gt;
: The module is written in bash and needs a GRASS install compiled with sqlite support.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Clara Tattoni and Damiano G. Preatoni&lt;br /&gt;
&lt;br /&gt;
==== v.trees3d ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== v.trimesh ====&lt;br /&gt;
: [http://www.valledemexico.ambitiouslemon.com/vtrimesh.html v.trimesh] creates a triangular mesh from a vector map using areal constraints for refinement. It uses Jonathan Shewchuk's Triangle library.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jaime Carrera&lt;br /&gt;
&lt;br /&gt;
==== v.what.rast.buffer ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.what.rast.buffer v.what.rast.buffer] is a script that calculates univariate statistics of raster map(s) from buffers around vector points. Results are written to a file. Resolution is taken from each input map.&lt;br /&gt;
: ''see also the [http://starspan.casil.ucdavis.edu StarSpan] software&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.variogram [deprecated: use v.autokrige instead] ====&lt;br /&gt;
&lt;br /&gt;
: 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.osgeo.org/pipermail/statsgrass/2006-October/000455.html reply].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Ivan Marchesini, Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
==== v.vect.stats ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.vect.stats v.vect.stats] counts the number of points falling into each polygon and optionally calculates statistics from numeric point attributes for each polygon. v.vect.stats is a C module and works with GRASS 6.4 and higher (see enclosed patches for 6.5 and 7.0).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
==== AniMove ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.faunalia.it/animov/ AniMove] is software for analysis of animal movement and ranging behaviour using QGIS+GRASS+R.&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' Support by Faunalia.it&lt;br /&gt;
&lt;br /&gt;
==== Utilities ====&lt;br /&gt;
&lt;br /&gt;
===== Shapemerge =====&lt;br /&gt;
&lt;br /&gt;
: [http://perrygeo.googlecode.com/svn/trunk/gis-bin/shpmerge.sh shpmerge] merges all the shapefiles in the current directory into a single output shapefile&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' Perrygeo&lt;br /&gt;
&lt;br /&gt;
=== Raster add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co &amp;lt;nowiki&amp;gt;https://svn.osgeo.org/grass/grass-addons/raster&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Raplat ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS-RaPlaT: The Radio Planning Tool for GRASS GIS system developed by support of Slovenian largest mobile operator Mobitel. It is especially designed for radio coverage calculation of GSM/UMTS systems, but can be applied also to other wireless systems in the frequency range 400 MHz – 2.4 GHz (e.g. TETRA, WiFi). Its structure is modular and characterized by high level of flexibility and adaptability. &lt;br /&gt;
&lt;br /&gt;
 * Documentation: http://commsys.ijs.si/en/component/content/article/54-software/149-user-manual&lt;br /&gt;
 * Software: http://commsys.ijs.si/en/software/grass-raplat&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Department of Communication Systems, Jozef Stefan Institue, Jamova 39, SI-1000 Ljubljana, Slovenia&lt;br /&gt;
&lt;br /&gt;
==== r.area ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.area r.area] Very simple module. Calculate area size (in cells) for every individual category in input raster map and write number of cells as the value of each cell in the area. Optionally write a binary coverage map and set a minimum area threshold. Works well with {{cmd|r.clump}}.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.basin ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.basin/ r.basin] Generates the main morphometric parameters of the basin starting from the digital elevation model and the coordinates of the basin's closing section.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Margherita Di Leo, Massimo Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.basin/&lt;br /&gt;
&lt;br /&gt;
==== r.bilateral ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.broscoe ====&lt;br /&gt;
&lt;br /&gt;
r.broscoe.sh calculates waerden test and t test statistics for some values of threshold area on a single basin, according to A.J.Broscoe theory (1959).&lt;br /&gt;
See v.strahler package&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler/&lt;br /&gt;
&lt;br /&gt;
==== r.boxcount ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mark Lake, grass6 port: Florian Kindl.&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount/&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount.sh/&lt;br /&gt;
&lt;br /&gt;
==== r.burn.frict ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.burn.frict r.burn.frict] converts vector geometries to raster cells, using a simple anti-aliasing method to close &amp;quot;gaps&amp;quot; between diagonal cells. Useful for &amp;quot;burning&amp;quot; vector geometries into a friction surface, making sure that simulated movement does not &amp;quot;slip&amp;quot; through converted cells that have only diagonal neighbours.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.burn.frict&lt;br /&gt;
&lt;br /&gt;
==== r.clump2 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.clump2 r.clump2] is a C module similar to r.clump. Differences are: diagonally adjacent cells are also clumped but can be excluded, NULL (nodata) cells are always excluded, and selective clumping with start coordinates is supported.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.clump2&lt;br /&gt;
&lt;br /&gt;
==== r.colors.out_vtk ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.out_vtk r.colors.out_vtk] is a shell script used to export the color table associated with a raster map layer to a {{wikipedia|VTK}} XML file. (see also [[Help with 3D]])&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.colors.quantiles ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.quantiles/r.colors.quantiles r.colors.quantiles] is a shell script used to create raster colors rules based on nquantiles. It uses R and spgrass6 package (RGRASS).&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== r.colors.stddev ====&lt;br /&gt;
&lt;br /&gt;
: [http://hamish.bowman.googlepages.com/grass_color_maps r.colors.stddev] ''moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== r.convergence ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.convergence r.convergence] calculate topographic convergence index, useful to detect lineamets represented by chanell/ridge system&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.cpt2grass ====&lt;br /&gt;
&lt;br /&gt;
: [http://hamish.bowman.googlepages.com/grass_color_maps r.cpt2grass] is a GRASS script for importing a [http://www.soest.hawaii.edu/gmt/ GMT] .cpt color table into GRASS. It can save to a text file suitable for r.colors or automatically apply the color table to a raster map.&amp;lt;BR&amp;gt;For a large collection of GMT .cpt files see http://sview01.wiredworkplace.net/pub/cpt-city/&lt;br /&gt;
: Other palette ideas from [http://geography.uoregon.edu/datagraphics/color_scales.htm Univ. Oregon] and [http://oceancolor.gsfc.nasa.gov/PRODUCTS/colorbars.html NASA/Goddard's OceanColor] (latter partially translated for use with GRASS on the [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.tools/palettes grass-addons SVN]).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.csr ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.csr 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 if the appropriate flag is given. Shading parameters can be modified, though useful defaults are given.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== r.cva ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ucl.ac.uk/~tcrnmar/GIS/r.cva.html r.cva] is a cumulative viewshed analysis module. It is an advanced version of the {{cmd|r.los}} program.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' [http://www.ucl.ac.uk/~tcrnmar/ Mark Lake]&lt;br /&gt;
&lt;br /&gt;
==== r.denoise ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.denoise r.denoise] denoises (smooths/despeckles) topographic data, particular DEMs derived from radar data (including SRTM), using Xianfang Sun's [http://www.cs.cf.ac.uk/meshfiltering/index_files/Page342.htm denoising algorithm].  It is designed to preserve sharp edges and to denoise with minimal changes to the original data.  See the [http://personalpages.manchester.ac.uk/staff/john.stevenson/mdenoise/r.denoise.html manual pages] for details.  Further information on Sun's denoising algorithm, including an example, is available [http://personalpages.manchester.ac.uk/staff/john.stevenson/mdenoise here].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' John Stevenson&lt;br /&gt;
&lt;br /&gt;
==== r.dominant_dir.m and r.calc_terraflow_dir.m ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.terraflow.tools dominant_dir.m and 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.diversity ====&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.diversity/ r.diversity] calculates selected diversity indices by calling various r.li commands.This script uses the [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.pielou.html Pielou], [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.renyi.html Renyi], [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.shannon.html Shannon] and [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.simpson.html Simpson] indices. The output is a map for each index. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Luca Delucchi, Duccio Rocchini&lt;br /&gt;
&lt;br /&gt;
==== r.eucdist ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.fragment ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.chrisgarstin.com/stuff/r.fragment r.fragment] fragments a raster into a user-defined set of smaller tiles according to an input number of rows and columns. &lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy r.fuzzy] Calculates membership of every cell in raster according membership function defined by user.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy.logic ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy.logic r.fuzzy.logic] Perform fuzzy operators (AND, OR, NOT, IMP) on membership's map using T-norms and T-conorms for 6 most popular families.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy.system ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy.system r.fuzzy.system] Perform full fuzzy clasificationwith 6 most popular fuzzy logic families and few methods of deffuzification.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.fuzzy.system&lt;br /&gt;
&lt;br /&gt;
==== r.game_of_life ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.game_of_life r.game_of_life] is a shell script which runs Conway's classic Game of Life using GRASS raster modules. It is meant to demonstrate how easy it is to program cellular automata in GRASS as well as various 3D raster volume and time series visualization techniques.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.gauss ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.les-ejk.cz/files/programs/grass/r.gauss.tgz r.gauss] is Gaussian and Laplacian of Gaussian filter for GRASS. It is written in C language.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.gradgrid4 ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.uibk.ac.at/geographie/personal/mergili/gradgrid4.zip gradgrid4] is a tool for interpolating values of discrete data points to a raster map, applying a local regression approach with a predictor raster. The model is based on shell and python scripts as well as an R batchfile. It was tested on Fedora Core 6 with GRASS 6.2.1 and R 2.5.1, but should work under most UNIX systems. After unzipping the gradgrid4 folder, store it at any place in your local file system. In the subfolder docs you can find a manual and a publication draft with a detailed description of the concept and the example of an application. The subfolder testloc constitutes a GRASS location with test data.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Martin Mergili&lt;br /&gt;
&lt;br /&gt;
==== r.hazard.flood ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.hazard.flood/ r.hazard.flood] is an implementation of a fast procedure to detect flood prone areas. The exposure to flooding may be delineated by adopting a topographic index (TIm) computed from a DEM. The portion of a basin exposed to flood inundation is generally characterized by a TIm higher than a given threshold, tau. The threshold is automatically determinated from the cellsize. The proposed procedure may help in the delineation of flood prone areas especially in basins with marked topography. The use of the modified topographic index should not be considered as an alternative to standard hydrological-hydraulic simulations for flood mapping, but it may represent a useful and rapid tool for a preliminary delineation of flooding areas in ungauged basins and in areas where expensive and time consuming hydrological-hydraulic simulations are not affordable or economically convenient. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Margherita Di Leo&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.hazard.flood/&lt;br /&gt;
&lt;br /&gt;
==== r.in.mb ====&lt;br /&gt;
&lt;br /&gt;
: [http://blogs.tekmap.ns.ca/archives/458 r.in.mb] is a &amp;quot;GRASS/[[MB-System]] program designed to import ''mbio'' compatible multibeam sonar data directly into the GRASS GIS. The program is a modified version of {{cmd|r.in.xyz}}. Instead of reading an ASCII XYZ file, ''r.in.mb'' reads an MB-System compatible list file.&amp;quot; It can do automatic reprojection and minor hole filling. The default is to import bathymetry data, but optionally amplitude or sidescan sonar data can be loaded instead.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Bob Covill&lt;br /&gt;
&lt;br /&gt;
==== r.in.onearth ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Soeren Gebbert&lt;br /&gt;
&lt;br /&gt;
==== r.in.swisstopo ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.in.swisstopo/ r.in.swisstopo] for importing swisstopo digital elevation model data into GRASS raster maps.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' J&amp;amp;uuml;rgen Hansmann&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.in.swisstopo/&lt;br /&gt;
&lt;br /&gt;
==== r.in.wms (.py) ====&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. Note GRASS 6.2+ provides a shell script version of r.in.wms, take care of which one is actually being run.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.inund.fluv ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.inund.fluv/ r.inund.fluv]This command allows to obtain a fluvial potentially inundation map given a high-resolution DTM of the area surrounding the river and a water surface profile calculated through an 1-D hydrodinamic model. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Roberto Marzocchi, Bianca Federici, Domenico Sguerso&lt;br /&gt;
&lt;br /&gt;
==== r.isoregions ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.isoregions/r.isoregions r.isoregions] allows isoregions creation from a GRASS raster map. &lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== r.interp.mask ====&lt;br /&gt;
&lt;br /&gt;
: [http://david.p.finlayson.googlepages.com/r.interp.mask r.interp.mask] Creates a user-specified buffer around interpolation points that can be used as a MASK to prevent or clip excessive extrapolation artifacts. This works much better than a standard convex hull around the points.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.ipso ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.ipso/ r.ipso] Produces the ipsometric and ipsographic curve related to a digital elevation model and prints the percentiles&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Margherita Di Leo, Massimo Di Stefano, Francesco Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.ipso/&lt;br /&gt;
&lt;br /&gt;
==== r.li ====&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-SVN'''''.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Claudio Porta, Davide Spano, Serena Pallecchi, [http://www.faunalia.it Faunalia]&lt;br /&gt;
&lt;br /&gt;
==== r.local_max.pl ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.mandelbrot ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/r.mandelbrot r.mandelbrot] is a shell script to calculate the Mandelbrot set.- for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== mcda====&lt;br /&gt;
&lt;br /&gt;
: mcda suite is a toolset for geographics multi-criteria decision aiding and data analysis based on ELECTRE (r.mcda.electre), REGIME (r.mcda.regime) and FUZZY (r.mcda.fuzzy) algorithm. The module r.roughset is also included  for geographics rough set analisys and knowledge discovery based on rough set library. It is written in C language for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/&lt;br /&gt;
&lt;br /&gt;
==== r.mlv ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== r.obstruction, r.planning.static, r.planning.cinematic ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ing.unitn.it/~grass/software.html r.obstruction, r.planning.static, r.planning.cinematic]: r.obstruction creates a polar obstruction map from a DTM. r.planning.static performs a static planning for GPS and Glonass surveys using the obstruction map created with r.obstruction. r.planning.cinematic performs a cinematic planning for GPS and Glonass surveys. (University of Trento, Faculty of Engineering)&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniele Carli, Dimitri D'Inca', Gianluca Fruet, Domenico Sguerso, Paolo Zatelli&lt;br /&gt;
&lt;br /&gt;
==== r.out.jpeg ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.geospatial.it/allegri/grass/r.out.jpeg_ r.out.jpeg] is a simple GRASS script to export georeferenced JPEG images from rasters, keeping the associated color table. It is a two-step export: first a ppm file is created, then it is converted to jpeg usgin the &amp;quot;convert&amp;quot; command from ImageMagick&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Giovanni Allegri&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmap ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.gmap r.out.gmap] outputs GRASS raster map into set of image tiles&lt;br /&gt;
following the tiling scheme of Google Maps and Microsoft Virtual Earth.&amp;lt;BR&amp;gt;Read more in the OSGeo Journal [http://www.osgeo.org/journal Volume 5 (2009, to appear)]&amp;lt;BR&amp;gt;see also [[#r.out.kml|r.out.kml]] and [[#v.out.kml|v.out.kml]]&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Tomas Cebecauer&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmt ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/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&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmt2 ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.gmt2 r.out.gmt2] 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== r.out.kap_template ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.kap_template r.out.kap_template] is a shell script that exports a raster map into a GeoTiff and a metadata text file suitable for use with KAP (BSB) raster nautical chart converter programs such as &amp;lt;tt&amp;gt;tif2bsb&amp;lt;/tt&amp;gt; (after verifying that you are legally entitled to use such a tool).&lt;br /&gt;
: '''''This is EXPERIMENTAL software. NOT FOR NAVIGATIONAL USE.'''''&lt;br /&gt;
: For an easy to use data viewer, see also the [http://www.opencpn.org OpenCPN] free navigational software.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.out.kml ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.kml r.out.kml] is a shell script that exports a raster map into a KML file and image for Google Earth or Worldwind. See also [[#v.out.kml|v.out.kml]] and [[#r.out.gmap|r.out.gmap]].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.pack ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack r.pack] and [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.unpack r.unpack] are two GRASS scripts for transferring raster maps to another computer as a single compressed file including color table etc.&lt;br /&gt;
: An earlier version has been renamed as [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack/experiment r.pack.mat] and [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.unpack/experiment r.unpack.mat].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.pi ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.pi/ r.pi] (raster patch index) provides various functions to analyse spatial attributes of a landscape. It has a focus on patch-based indices but delivers class-based indices as well. r.le and its successor r.li provide landscape indices.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Programming: Elshad Shirinov, Scientific concept: Dr. Martin Wegmann&lt;br /&gt;
&lt;br /&gt;
==== r.prominence ====&lt;br /&gt;
&lt;br /&gt;
: '''r.prominence''' calculates the average difference between a central cell and its neighbors. It approximated the terrain 'ruggedness' by looking at average differences in elevation within a given neighborhood.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.prominence/&lt;br /&gt;
&lt;br /&gt;
==== r.refine ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.bowdoin.edu/~ltoma/research.html r.refine]: reduces a DEM to a TIN (takes as input a grid DEM and an error margin and simplifies it to the desired accuracy into a TIN)&lt;br /&gt;
Available via the source code repository [https://github.com/jonrtodd/r.refine]&lt;br /&gt;
: '''Authors:''' Laura Toma and Jonathan Todd&lt;br /&gt;
&lt;br /&gt;
==== r.rifs ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ucl.ac.uk/~tcrnmar/ r.rifs]: r.rifs generates a raster map and/or image of a fractal by means of the specified random iterated function system.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mark Lake&lt;br /&gt;
&lt;br /&gt;
==== r.roughness ====&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.sh r.roughness.sh] 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;
&lt;br /&gt;
[http://www.igc.usp.br/pessoais/guano/downloads/r.roughness60 r.roughness60] - for GRASS versions 6.0.X&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.area r.roughness.window.area] - calculate surface roughness as the ratio of real (surface) area and planar area, using a moving-window approach.&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.vector r.roughness.window.vector] - calculate surface roughness as vector dispersion, using a moving-window approach. Resulting maps are: Vector Strength (R) and Inverted Fisher's k parameter. &lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.vector.html r.roughness.window.vector.html] - provisional help page for r.roughness.window.vector.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.roughness/&lt;br /&gt;
&lt;br /&gt;
==== r.roughset ====&lt;br /&gt;
&lt;br /&gt;
: r.roughset is a module for geographics rough set analisys and knowledge discovery based on rough set library. It is written in C language for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/r.roughset/&lt;br /&gt;
&lt;br /&gt;
==== r.seg ====&lt;br /&gt;
&lt;br /&gt;
: '''r.seg''' performs image segmentation and discontinuity detection (based on the Mumford-Shah variational model).&lt;br /&gt;
: The module generates a piece-wise smooth approximation of the input raster map and a raster map of the discontinuities of the output approximation. The discontinuities of the output approximation are preserved from being smoothed. &lt;br /&gt;
: See [http://www.ing.unitn.it/~vittia/sw here] for details and examples.&lt;br /&gt;
&lt;br /&gt;
Available [http://www.ing.unitn.it/~vittia/sw here] and with improvements via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.seg/&lt;br /&gt;
&lt;br /&gt;
: '''Author''' Alfonso Vitti&lt;br /&gt;
&lt;br /&gt;
==== r.smoothpatch ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.soils.texture ====&lt;br /&gt;
&lt;br /&gt;
: r.soils.texture is a module to define soils texture from sand and clay raster file with a schema text file (now FAO,USDA and ISSS are available). It is written in C language. - for GRASS versions 6.x - For bugs and suggest: g_massa@libero.it &lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Gianluca Massei&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.soils.texture/&lt;br /&gt;
&lt;br /&gt;
==== r.stack ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stack r.stack] is a shell script used to patch all the raster maps in a time series (or burst 3D raster) together into a vertical stack, to aid mutli-map analyses in modules where group input is not yet available.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.stream.angle ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.angle r.stream.angle] Divide stream network into stright line segments according users input. It extends  Module uses as input direction and stream netwokr map produced by r.watershed and stream.extract  or custom user input. See description for details.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.angle&lt;br /&gt;
&lt;br /&gt;
==== r.stream.basins ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.basins r.stream.basins] delineate basins according users input. It extends r.water.outlet funcionality to extracting more than one basin at one step. Module uses as input direction map produced  stream network produced by r.stream.extract, r.watershed, r.stream order or custom user input. More in tutorial on grass-wiki pages.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.basins&lt;br /&gt;
&lt;br /&gt;
==== r.stream.del ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.del r.stream.del] Calculates downslope length of first order streams and delete them if it length (in pixels) is lower than the treeshold. It also join false segments left by deletion into one with category of upper. It uses r.watershed direction map and r.watershed  stream map as input. The module is added only for r.watershed module, r.stream.extract has deleting short streams build-in. During development of r.stream.* it will be probably abandoned due to duplicate functionality&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.del&lt;br /&gt;
&lt;br /&gt;
==== r.stream.distance ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.distance r.stream.distance] Calculates downslope distance and downslope elevation difference between current cell and stream or outlet cells. It uses r.watershed direction map, r.watershed or r.stream.extract stream map and optionally DEM as input.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.distance&lt;br /&gt;
&lt;br /&gt;
==== r.stream.extract ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.extract r.stream.extract] extracts topologically clean stream networks from input elevation and optionally accumulation maps. Output is available as raster and vector and can be used as input for the other r.stream.* modules by Jarek Jasiewicz. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.extract&lt;br /&gt;
&lt;br /&gt;
==== r.stream.order ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.order r.stream.order] orders stream network outputed by r.watershed or r.stream.extract according Sthrahler, Shreve, Horton and Hack ordering systems. It require as input stream and direction map and optionally accumulation map. It handle both SFD nad MFD modes but all data must come from the same procedure.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz, Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.order&lt;br /&gt;
&lt;br /&gt;
==== r.stream.pos ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.pos r.stream.pos] Helper module for calculating local stream network properties and linear geostatistics. Mostly To use with R and other grass modules. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.pos&lt;br /&gt;
&lt;br /&gt;
==== r.stream.stats ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.stats r.stream.stats] calculate Hortonian statistics for Stahler or Horton stream network created by r.stream.order. It uses r.watershed direction map, DEM and r.stream.order's Stahler or Horton stream network as input. It outputs calculated statistics to standard output.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.stats&lt;br /&gt;
&lt;br /&gt;
==== r.surf.nnbathy ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html r.surf.nnbathy] interpolates a surface from a raster input using Pavel Sakov's [http://code.google.com/p/nn-c/ nn] natural neighbor interpolation library. Provides triangulation, Sibson natural neighbor interpolation and non-Sibsonian interpolation.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== r.surf.volcano ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.surf.volcano r.surf.volcano] creates an artificial surface resembling a seamount or cone volcano. The user can alter the size and shape of the mountain and optionally roughen its surface. Available decay functions are  polynomial, Gaussian, Lorentzian, logarithmic, and exponential.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.terracost ====&lt;br /&gt;
&lt;br /&gt;
[http://www.bowdoin.edu/~ltoma/research.html r.terracost] Scalable approach for computing least-cost-path surfaces on massive grid terrains.&amp;lt;BR&amp;gt;'''Lead author''': Laura Toma&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/raster/r.terracost&lt;br /&gt;
&lt;br /&gt;
==== r.tileset ====&lt;br /&gt;
&lt;br /&gt;
: ''{{cmd|r.tileset}} moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== r.traveltime ====&lt;br /&gt;
&lt;br /&gt;
: [http://jesbergwetter.twoday.net/stories/4845555/ r.traveltime] computes the travel time of surface runoff to an outlet. The program starts at the basin outlet and calculates the travel time at each raster cell recursively. A drainage area related threhold considers even  surface and also channel runoff. Travel times are derived by assuming kinematic wave approximation. The results can be used to derive a time-area function. This might be usefull for precipitation-runoff calculations (estimation of flood predictions) with a lumped hydrologic model (user-specified unit hydrograph).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Kristian Förster&lt;br /&gt;
&lt;br /&gt;
==== r.univar.zonal ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.univar.zonal r.univar.zonal] is similar to r.univar, but calculates statistics separately for each category(zone) present in the separate input map used to define zones (zonal statistics). The output can be like the one of r.univar or in easier to read table format and can be written to a file. This addon is only needed for GRASS 6.4, its functionality has been added to r.univar in 6.5 and 7.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.univar.zonal&lt;br /&gt;
&lt;br /&gt;
==== r.viewshed ====&lt;br /&gt;
&lt;br /&gt;
: r.viewshed is a module for extremely fast line of sight analysis (replaces the slow r.los). It is written in C language for GRASS versions 6.X/7.x.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Laura Toma, USA&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.viewshed&lt;br /&gt;
&lt;br /&gt;
Once {{trac|390}} is solved, it will substitute r.los.&lt;br /&gt;
&lt;br /&gt;
==== r.wavelets ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ing.unitn.it/~grass/software.html r.wavelets]: This package contains wavelets decomposition and reconstruction modules for the GRASS GIS: r.owave.dec computes the orthogonal wavelet transform of a raster map. r.owave.rec reconstructs a raster map from an orthogonal wavelet transform. r.biowave.dec computes the biorthogonal wavelet transform of a raster map. r.biowave.rec reconstructs a raster map from a biorthogonal wavelet transform.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Members of the University of Trento, Faculty of Engineering&lt;br /&gt;
&lt;br /&gt;
==== r.wf ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.wf/ r.wf] produces the Width Function of a basin. The Width Function W(x) gives the number of the cells in a basin at a flow distance x from the outlet (it is also referred as distance-area function). The distance is not the euclidean one, but it is measured along the flowpath towards the outlet.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Margherita Di Leo, Massimo Di Stefano, Francesco Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.wf/&lt;br /&gt;
&lt;br /&gt;
==== r.xtent ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.xtent r.xtent] computes a raster map layer representing the Voronoi diagram, weighted Voronoi diagram or a more complex territorial partitioning of space around points (centers) in a vector input map, based on the XTENT formula.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.xtent&lt;br /&gt;
&lt;br /&gt;
==== r.zc.pl ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== GIPE ====&lt;br /&gt;
&lt;br /&gt;
: The GRASS Image Processing Environment (GIPE) has USLE, Energy-balance and radiance-reflectance correction models.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Yann Chemin (unless specified otherwise).&lt;br /&gt;
   &lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/imagery/gipe&lt;br /&gt;
&lt;br /&gt;
Remark: This is progressively moved to main GRASS SVN (aka GRASS 7)&lt;br /&gt;
&lt;br /&gt;
:* r.hydro.CASC2D, ported from GRASS 5.x version, is temporarily here waiting to return to main GRASS.&lt;br /&gt;
&lt;br /&gt;
:* r.soiltex2prop creates porosity, Saturated Hydraulic conductivity (Ksat) and wetting front pressure head (Hf) from percentage of sand and clay after Rawls et al., 1990. This is a must for r.hydro.CASC2D.&lt;br /&gt;
&lt;br /&gt;
:* i.biomass creates biomass growth map from fPAR, lightuse efficiency, water availability (or evap.fraction), Lat, doy and tsw.&lt;br /&gt;
&lt;br /&gt;
:* i.dn2ref.l7, r.dn2ref.ast create top of atmosphere reflectance for Landsat 7ETM+ and ASTER. These modules also have a flag for radiance output. Updated i.dn2ref.l7 to read .met calibration file.  &lt;br /&gt;
&lt;br /&gt;
:* i.dn2full.l[5,7] is an attempt to get all bands of Landsat[5,7] calibrated and corrected to either reflectance or temperature, reads only the .met file.  &lt;br /&gt;
&lt;br /&gt;
:* i.dn2potrad.l[5,7] is an attempt to get ET potential from DN of Landsat 7 (Careful! No Atmospheric correction!).  &lt;br /&gt;
&lt;br /&gt;
:* i.eb.* are a set of 10+ 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. &lt;br /&gt;
&lt;br /&gt;
:* i.evapo.potrad creates 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 i.eb.eta. &lt;br /&gt;
&lt;br /&gt;
:* i.evapo.SENAY creates actual evapotranspiration following the regional method of Senay (2007). &lt;br /&gt;
&lt;br /&gt;
:* i.lmf creates a Local Maximum Fitting on the temporal dimension of the multi-date input dataset, working, but more precision still to be added.&lt;br /&gt;
&lt;br /&gt;
:* i.vi.mpi is the mpi version of i.vi for cluster GRASS GIS education (no speed up here!) '''Author:''' Shamim Akhter &lt;br /&gt;
&lt;br /&gt;
:* i.modis.stateqa extracts State Quality Assessment information from Modis 500m (MOD09A) products.&lt;br /&gt;
&lt;br /&gt;
:* i.water creates a Water Mask from NDVI and Albedo, or specifically for Modis: NDVI and Band 7.&lt;br /&gt;
&lt;br /&gt;
:* i.wi creates a given Water Index (only one so far).&lt;br /&gt;
&lt;br /&gt;
==== HydroFOSS ====&lt;br /&gt;
&lt;br /&gt;
: HydroFOSS - a GIS embedded approach for Free &amp;amp; Open Source Hydrological modeling.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Massimiliano Cannata&lt;br /&gt;
 &lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/HydroFOSS/&lt;br /&gt;
&lt;br /&gt;
==== Hikereport ====&lt;br /&gt;
&lt;br /&gt;
: python script that computes length, cumulative uphill and downhill, average slopes on an interactively drawn path. Based on r.profile's output.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Negri&lt;br /&gt;
&lt;br /&gt;
 http://tracce.wordpress.com/?attachment_id=71&lt;br /&gt;
&lt;br /&gt;
=== Misc add-ons===&lt;br /&gt;
&lt;br /&gt;
==== m.eigensystem ====&lt;br /&gt;
&lt;br /&gt;
m.eigensystem - Computes eigen values and eigen vectors for square matrices.&lt;br /&gt;
&lt;br /&gt;
: http://svn.osgeo.org/grass/grass-addons/misc/m.eigensystem/&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Michael Shapiro&lt;br /&gt;
&lt;br /&gt;
===Database add-ons===&lt;br /&gt;
==== db.join ====&lt;br /&gt;
&lt;br /&gt;
: Table joining: join one table into another through common attributes&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/database/db.join/&lt;br /&gt;
or&lt;br /&gt;
   g.extension db.join&lt;br /&gt;
&lt;br /&gt;
===General add-ons===&lt;br /&gt;
&lt;br /&gt;
==== GRASS create location scripts ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/grass_create_location grass_create_location.sh] Script to generate a new GRASS location from GIS file (e.g. geoTIFF or SHAPE), wktfile or EPSG code.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler&lt;br /&gt;
&lt;br /&gt;
==== g.laptop.sh ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.gbd-consult.de/dassau/grass/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Otto Dassau&lt;br /&gt;
&lt;br /&gt;
==== Readline completion ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alexandre Sorokine (grass-complete), Daniel Calvelo (grass_rlcompleter.sh)&lt;br /&gt;
&lt;br /&gt;
==== g.region.point ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.region.point g.region.point] is a shell script which resets the computational region to a square box around a given coordinate. It is intended for use within GRASS scripts to speed up processing by limiting expensive raster calculations to a small area of interest.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== g.linke_by_day ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.sun.tools/ g.linke_by_day] is a python script for [[r.sun]] which interpolates a Linke turbidity value for a given day of the year based on monthly values edited into the script.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== g.xlist ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.xlist g.xlist] is a C implementation of g.mlist. g.xlist searches for data files matching a pattern given by wildcards or POSIX Extended Regular Expressions. POSIX regex(3) functions are required.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== g.xremove ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.xremove g.xremove] is a C implementation of g.mremove. g.xremove removes data files matching a pattern given by wildcards or POSIX Extended Regular Expressions. POSIX regex(3) functions are required.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
=== Imagery add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/imagery&lt;br /&gt;
&lt;br /&gt;
==== GIPE ====&lt;br /&gt;
&lt;br /&gt;
GIPE (see also above in raster section) provides:&lt;br /&gt;
i.biomass, i.dn2potrad.l5, i.dn2potrad.l7, i.dn2ref.ast, i.eb.deltat, i.eb.disp, i.eb.eta, i.eb.evapfr, i.eb.g0, i.eb.h0, i.eb.h_SEBAL01, i.eb.h_SEBAL95, i.eb.h_iter, i.eb.molength, i.eb.netrad, i.eb.psi, i.eb.rah, i.eb.rohair, i.eb.ublend, i.eb.ustar, i.eb.wetdrypix, i.eb.z0m, i.eb.z0m0, i.evapo.PT, i.evapo.TSA, i.evapo.potrad, i.evapo.senay, i.evapo.time_integration, i.lmf, i.modis.stateqa, i.sattime, i.vi.grid, i.vi.mpi, i.water, i.wi&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/gipe/&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
==== i.homography ====&lt;br /&gt;
&lt;br /&gt;
Rectifies an image by computing a coordinate transformation for each pixel in the image based on the control points created by i.linespoints. The approach uses homography extended for corresponding lines.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.homography&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniel Grasso, Bolzano, Italy, based on code written by Stefano Merler, ITC-irst, Italy&lt;br /&gt;
&lt;br /&gt;
==== i.linespoints ====&lt;br /&gt;
&lt;br /&gt;
An imagery command that enables the user to mark coordinate system points as well as lines on an image to be rectified and then input the coordinates of each point for creation of a coordinate transformation matrix. The transformation matrix is needed as input for the GRASS program i.homography.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.linespoints&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniel Grasso, Bolzano, Italy, based on i.points&lt;br /&gt;
&lt;br /&gt;
==== i.landsat.toar ====&lt;br /&gt;
&lt;br /&gt;
Transform calibrated digital number of Landsat products to top-of-atmosphere radiance or top-of-atmosphere reflectance and temperature (band 6 of the sensors TM and ETM+). Optionally, used to calculate the at-surface radiance or reflectance with atmospheric correction (DOS method).&lt;br /&gt;
&lt;br /&gt;
Available also in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.landsat.toar&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.landsat.acca ====&lt;br /&gt;
&lt;br /&gt;
Implements the Automated Cloud-Cover Assessment (ACCA) Algorithm from Irish (2000) with the constant values for pass filter one from Irish et al. (2006). To do this, it needs Landsat band numbers 2, 3, 4, 5, and 6 (or band 61 for Landsat-7 ETM+) which have already been processed from DN into reflectance and band-6 temperature with i.landsat.toar). &lt;br /&gt;
&lt;br /&gt;
Available also in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.landsat.acca&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.points.auto ====&lt;br /&gt;
&lt;br /&gt;
This module allows a search of GCP's on two raster-maps with differents levels of automation. The ''manual'' search is the default search, so it's possible to determine the GCP's manually with the mouse (like {{cmd|i.points}}). ''Semiautomated'' search: The user determines with the mouse some correspondent areas (with a discrete precision) in the two maps and the module searches itself the GCP's in these areas. ''Automated'' search: At the start of module the user has to load the maps that the algorithm uses to the search, so it is recommended to use the maps filtered with the filters DIVERSITY or STDDEV (of GRASS) with a window of 3x3 or 5x5 pixels. However, the algorithm sometimes works well with the original maps too.&lt;br /&gt;
&lt;br /&gt;
Note: This code is basically an improved i.points (from 2004). Subsequent changes in i.points haven's been ported here yet.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.points.auto&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' based on i.points; additions by Ivan Michelazzi, Luca Miori (MSc theses at ITC-irst); Supervisors: Markus Neteler, Stefano Merler, ITC-irst 2003, 2004. [http://gisws.media.osaka-cu.ac.jp/grass04/viewpaper.php?id=37 PDF article]&lt;br /&gt;
&lt;br /&gt;
==== i.points.reproj ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/imagery/i.points.reproj i.points.reproj] is a shell script that will use cs2cs to reproject the target coordinates of a group's POINTS file. By running i.rectify directly to the new target projection, a generation of resampling data loss can be avoided (versus i.rectify + r.proj). On the other hand, i.rectify does not calculate cell resolution well if the map is to be rotated ([http://intevation.de/rt/webrt?serial_num=3296 bug #3296]), in those cases i.rectify+r.proj may be the better option.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== i.plr.py ====&lt;br /&gt;
&lt;br /&gt;
: [[I.plr.py|Probabilistic Label Relaxation]], written in Python&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Georg Kaspar&lt;br /&gt;
&lt;br /&gt;
==== i.pr ====&lt;br /&gt;
&lt;br /&gt;
: Image classification: implements k-NN (multiclass), classification trees (multiclass), maximum likelihood (multiclass), Support Vector Machines (binary), bagging versions of all the base classifiers, AdaBoost for binary trees and support vector machines. It allows feature manipulation (normalization, principal components,...). It also implements feature selection techniques (RFE, E-RFE,...), statistical tests on variables, tools for resampling (cross-validation and bootstrap) and cost-sensitive techniques for trees and support vector machines.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Merler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.pr&lt;br /&gt;
&lt;br /&gt;
==== i.spec.sam ====&lt;br /&gt;
&lt;br /&gt;
: Spectral Angle mapping&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.sam/&lt;br /&gt;
&lt;br /&gt;
==== i.spec.unmix ====&lt;br /&gt;
&lt;br /&gt;
: Spectral unmixing&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.unmix/&lt;br /&gt;
&lt;br /&gt;
==== i.topo.corr ====&lt;br /&gt;
: i.topo.corr is used to topographically correct reflectance from imagery files, e.g. obtained with i.landsat.toar (see above), using a sun illumination terrain model. This illumination model represents the cosine of the incident angle, i.e. the  angle between the normal to the ground and the sun rays. It can be obtained with {{cmd|r.sun}} (parameter incidout), and then calculating its cosine with float precision. Correction methods: cosine, minnaert, percent, c-factor.&lt;br /&gt;
&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.topo.corr&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.warp ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/imagery/i.warp i.warp] 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
=== Display add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== d.barb ====&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/display/d.barb d.barb] is a C module that will draw wind barbs, straw plots, and arrow plots from raster array or sparse vector point data. It can use either direction + magnitude, or u + v components as the input, and can produce a legend key. (''work in progress, but it's mostly there'')&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.edit.rast ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.edit.rast d.edit.rast] edits cells in an existing raster map displayed on the current monitor.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== d.frame.quarter ====&lt;br /&gt;
&lt;br /&gt;
: ('''obsolete''') [http://trac.osgeo.org/grass/browser/grass-addons/display/d.frame.split d.frame.quarter] is a shell script that will split the display into four quadrants (or sixths) using ''d.frame''. Individual frames are named ''uno, dos, tres, cuatro'', and ''full_screen''.&lt;br /&gt;
: Replaced by {{cmd|d.split.frame}} in main.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.frame.split ====&lt;br /&gt;
&lt;br /&gt;
: ''d.frame.split moved into main archive as {{cmd|d.split.frame}}''&lt;br /&gt;
&lt;br /&gt;
==== d.frontline ====&lt;br /&gt;
&lt;br /&gt;
: [http://cloud.github.com/downloads/amuriy/GRASS-scripts/d.frontline d.frontline] is a shell script that draws frontlines on the graphics monitor using ''d.graph'' module and different types of symbols. Also it optionally saves frontline graphics to ''d.graph'' commands file and/or ''ps.map'' file (for later use with the &amp;quot;read&amp;quot; ''ps.map'' instruction)   &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alexander Muriy&lt;br /&gt;
&lt;br /&gt;
==== d.hyperlink ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author: '''Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== d.mark ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.mark] is a shell script that quickly displays a marker on the display at a given coordinate.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
==== d.region.box ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.region.box d.region.box] is a shell script that quickly displays a box around the current region.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.stations ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts   d.stations] is a shell script that quickly displays vector points (or sites for GRASS 5.4 and below).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
==== d.varea ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.varea] is a shell script that quickly displays vector areas.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== pd-GRASS ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ornl.gov/sci/gist/software/grass/ pd-GRASS]: Parallel Display for GRASS GIS&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alex Sorokine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[IconSymbols]] ====&lt;br /&gt;
&lt;br /&gt;
* [[IconSymbols|Symbols]] which can be used with ''d.vect, d.graph'', and ''ps.map''.&lt;br /&gt;
&lt;br /&gt;
=== Postscript add-ons ===&lt;br /&gt;
&lt;br /&gt;
* ''See also [[ps.map scripts|ps.map samples and templates]]''.&lt;br /&gt;
&lt;br /&gt;
==== ps.atlas ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== ps.output ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/postscript/ps.output ps.output] is much like {{cmd|ps.map}} but with advanced decorations and ability for translucency. Here you can find a [[Ps.output|tutorial]].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== [[AreaFillPatterns]] ====&lt;br /&gt;
&lt;br /&gt;
* Hatches for ps.map's vareas&lt;br /&gt;
&lt;br /&gt;
=== wxGUI add-ons ===&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;
* See wiki [[GRASS and MapServer]] page&lt;br /&gt;
&lt;br /&gt;
==GRASS 5.x (old)==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.osgeo.org/download/addons.php&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.osgeo.org/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;
* [http://www.bowdoin.edu/~ltoma/research.html r.terracost] Scalable approach for computing least-cost-path surfaces on massive grid terrains. For GRASS 5.3.&amp;lt;BR&amp;gt;'''Lead author''': Laura Toma&lt;br /&gt;
:Newer version available via SVN:&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/raster/r.terracost&lt;br /&gt;
&lt;br /&gt;
==GRASS 4.x (very old)==&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* MAGICAL Software: The MAGICAL software comprises a suite of three programs that provide a multi-agent simulation extension for the GRASS GIS software. http://www.ucl.ac.uk/~tcrnmar/simulation/magical/magical.html&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>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=13787</id>
		<title>AddOns</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=13787"/>
		<updated>2011-07-02T05:03:15Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Spatial Analysis Tools */&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.osgeo.org/download/ here]).&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== AddOns source code repository ==&lt;br /&gt;
&lt;br /&gt;
The AddOns source code is hosted in [http://svn.osgeo.org/grass/grass-addons/ GRASS-AddOns SVN repository].&lt;br /&gt;
&lt;br /&gt;
To checkout:&lt;br /&gt;
&lt;br /&gt;
 svn checkout &amp;lt;nowiki&amp;gt;https://svn.osgeo.org/grass/grass-addons/&amp;lt;/nowiki&amp;gt; grass-addons&lt;br /&gt;
&lt;br /&gt;
Please read [http://trac.osgeo.org/grass/wiki/HowToContribute#WriteaccesstotheGRASS-Addons-SVNrepository How to get write access to the GRASS-Addons-SVN repository] and contact the [http://lists.osgeo.org/mailman/listinfo/grass-dev grass-dev] mailing list if you would like to host your module there.&lt;br /&gt;
&lt;br /&gt;
== Building and installing Addons ==&lt;br /&gt;
&lt;br /&gt;
See the [[Compile and Install#Addons|compile and install]] wiki page.&lt;br /&gt;
&lt;br /&gt;
In GRASS 6.4 and newer you can use the {{cmd|g.extension}} module, e.g. to install &amp;lt;tt&amp;gt;r.fuzzy.system&amp;lt;/tt&amp;gt; run:&lt;br /&gt;
&lt;br /&gt;
 g.extension extension=r.fuzzy.system&lt;br /&gt;
&lt;br /&gt;
To remove installed Addons run&lt;br /&gt;
&lt;br /&gt;
 g.extension extension=r.fuzzy.system operation=remove&lt;br /&gt;
&lt;br /&gt;
== Adding something new ==&lt;br /&gt;
&lt;br /&gt;
Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work. Also please consider adding your module to one of the [[Applications]] pages.&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;
=== Coding standards ===&lt;br /&gt;
&lt;br /&gt;
Please have a look at our [http://grass.osgeo.org/grass63/source/SUBMITTING_SCRIPTS Shell script coding standards] before submitting here.&lt;br /&gt;
&lt;br /&gt;
There are other coding standards given for modules written in C, Tcl/Tk, and Python''(?)'' located in the GRASS source code.&lt;br /&gt;
&lt;br /&gt;
=== Documenting your code ===&lt;br /&gt;
&lt;br /&gt;
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the &amp;lt;tt&amp;gt;--html-description&amp;lt;/tt&amp;gt; command line option. Please, see also the [http://grass.ibiblio.org/grass63/manuals/html63_user/g.parser.html g.parser help page]&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous Add-ons ==&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/browser/grass-addons/misc/utm_which_zone utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] or Matlab 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 6.x (current)==&lt;br /&gt;
&lt;br /&gt;
=== Vector add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector&lt;br /&gt;
&lt;br /&gt;
==== v.adehabitat.clusthr, v.adehabitat.kernelUD, v.adehabitat.mcp ====&lt;br /&gt;
&lt;br /&gt;
: Tools to calculate home ranges of animals&lt;br /&gt;
: '''Author:''' Clement Calenge&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/adehabitat&lt;br /&gt;
&lt;br /&gt;
==== v.append ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Michael Barton&lt;br /&gt;
&lt;br /&gt;
==== v.autokrige ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.autokrige/v.autokrige.py v.autokrige] achieves automatic ordinary kriging from GRASS sites (vector point data), using R with spgrass6 (RGRASS) and automap packages.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.breach ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.breach] creates vector maps of lines and points of continously lowering elevation down the input watercourses, based on the input raster DEM.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.colors ====&lt;br /&gt;
&lt;br /&gt;
: {{cmd|v.colors}} ''moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== v.count.points.sh ====&lt;br /&gt;
&lt;br /&gt;
: [http://wiki.iosa.it/dokuwiki/spatial_analysis:feature_count v.count.points.sh] counts point features in areas, generates table good as input to d.vect.chart.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Costa&lt;br /&gt;
&lt;br /&gt;
==== v.digatt ====&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].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Andreas Philipp&lt;br /&gt;
&lt;br /&gt;
==== v.dip ====&lt;br /&gt;
&lt;br /&gt;
: [http://marcin.slodkowski.googlepages.com/v.dip.tgz v.dip] creates points of thickness vectors from the vectors of strike and dip angles. The v.dip is the main ANSI C core program. Program so-called v.dip can run without GRASS environment.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Marcin Slodkowski&lt;br /&gt;
&lt;br /&gt;
==== v.flip ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.flip] flips the direction of selected vector lines (redundant since GRASS 6.3 - there is &amp;quot;v.edit tool=flip&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.group ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
==== v.in.redwg ====&lt;br /&gt;
&lt;br /&gt;
: v.in.redwg imports DWG files into GRASS.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Rodrigo Rodrigues da Silva&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.redwg&lt;br /&gt;
&lt;br /&gt;
==== v.in.gama ====&lt;br /&gt;
&lt;br /&gt;
: Converts [http://www.gnu.org/software/gama/ GNU GaMa] XML output file to a GRASS vector map layer.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Martin Landa&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.gama&lt;br /&gt;
&lt;br /&gt;
==== v.in.geodesic ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.geodesic v.in.geodesic] is a shell script which will create a new vector map containing a great circle line. The user may either define a beginning and end coordinate, or define a starting coordinate along with initial azimuth and desired line length.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.geoplot ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.geoplot v.in.geoplot] converts a [http://www.geoscan-research.co.uk/page9.html/ Geoplot] ASCII export file to a GRASS vector map layer.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.geoplot&lt;br /&gt;
&lt;br /&gt;
==== v.in.gshhs ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.gshhs v.in.gshhs] imports [http://www.soest.hawaii.edu/pwessel/gshhs/index.html GSHHS] shorelines into a GRASS vector map. GSHHS data are automatically reprojected to the current location.&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' several, updated to GRASS 6 by Markus Metz&lt;br /&gt;
&lt;br /&gt;
==== v.in.marxan ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.marxan v.in.marxan] is a python script that imports Marxan output data for display in a vector grid file prepared using v.out.marxan. &lt;br /&gt;
: ''see also the [http://www.uq.edu.au/marxan/ Marxan] &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.in.mbsys_fnv ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.mbsys_fnv v.in.mbsys_fnv] imports [[MB-System]] navigation files into a GRASS vector map. You can choose from swath area coverage, track lines (including outer port/starboard edges), all bounds as points, etc. An attribute database is created containing the vital statistics of the specified feature such as track length or swath coverage (geodesic), start stop time and location, pitch, roll, heave, etc. See also the [[#v.in.p190]] addon.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.ncdc ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.ncdc v.in.ncdc] imports an [http://www.ncdc.noaa.gov NCDC] stn file (station data) into a GRASS vector map.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== v.in.postgis ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.postgis/v.in.postgis.py v.in.postgis] Create a GRASS layer from any sql query on PostGIS data.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.in.osm ====&lt;br /&gt;
&lt;br /&gt;
: [http://kripton.kripserver.net/software/v.in.osm/ v.in.osm]: OpenStreetMap import into GRASS. Yet only supports deprecated API 0.4, will be modified to work with API 0.5 some time soon.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jannis Achstetter&lt;br /&gt;
&lt;br /&gt;
: See also [http://hamish.bowman.googlepages.com/gpsdrivefiles#osm osm2grass.sh] by H Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.osm2 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.osm2 v.in.osm2]: OpenStreetMap import into GRASS. Supports current API 0.6, downloads using the [http://wiki.openstreetmap.org/wiki/Xapi Xapi] interface and imports using GpsBabel 1.3.5 or newer. GpsBabel restricts to either nodes or ways being imported at a time, not both. Use {{cmd|v.patch}} to rejoin them. (''work in progress'')&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.ovl ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/v.in.ovl/ v.in.ovl] is a shell script that imports an ASCII vector file created with TOP10|25|50 or similar products.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== v.in.p190 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.p190 v.in.p190] is a shell script that imports 'Centre of Source' &amp;quot;S&amp;quot; navigation data from seismic P1/90 (UKOOA) data files and writes it either GRASS vector points or vector lines format. Optionally it will export the navigation data into .csv text files as well. ''Currently in the functional prototype stage, some assembly is required. See inside the shell script for details.'' For working with SEG-Y data, see also the [[#v.in.mbsys_fnv]] addon.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.krige ====&lt;br /&gt;
&lt;br /&gt;
: [[V.krige_GSoC_2009 | v.krige]] aims to integrate R functions for kriging (packages automap, gstat, geoR) in a trasparent way. '''Moved into trunk/devbr6 code (r40048)'''&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Anne Ghisla, as Google Summer of Code 2009 project&lt;br /&gt;
&lt;br /&gt;
: See also [[GRASS_AddOns#v.autokrige]] by Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== Spatial Analysis Tools ====&lt;br /&gt;
&lt;br /&gt;
===== v.lda.py =====&lt;br /&gt;
&lt;br /&gt;
: [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.lda.py v.lda.py] is a Python script for calculating Ian Johnson's (U. Sidney) Local Density Analysis values. This can be used in two ways. When only one vector points file is entered, it serves to measure clustering of point data at different neighborhood radii. When two different point files are entered, it measures the the co-occurence of the points from the two files. There is an option to export the data into a cvs format file for easy plotting in a spreadsheet or statistical program like R.&lt;br /&gt;
&lt;br /&gt;
===== v.nn.py =====&lt;br /&gt;
: [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.nn.py v.nn.py] is a Python script for calculating the nearest neighbor coefficient of a single vector points file--as an index of clustering--or of two points files--to provide an index of the correspondence between the points in one file and points in a different file.&lt;br /&gt;
&lt;br /&gt;
==== v.line.center ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.line.center] creates a points vector map with each point located in the middle of the length of the input vector line.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.lmeasure ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mats Schuh&lt;br /&gt;
&lt;br /&gt;
==== v.mkhexgrid ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.mkhexgrid v.mkhexgrid] is a python script that creates a hexagonal grid the size of the selected region using user specified side lengths. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.out.ascii.db ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/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.&lt;br /&gt;
: ''Superseded in GRASS 6.4 by the new v.out.ascii columns= option.''&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.out.ascii.mat ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.out.ascii.mat v.out.ascii.mat] is a shell script for exporting vector polygon and polyline data into an ASCII text file suitable for loading into Matlab (or [http://www.gnu.org/software/octave/ Octave]).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.out.gmt ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== v.out.kml ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/v.out.kml/ v.out.kml] is a shell script that exports a vector file into a KML file for Google Earth or Worldwind. see also [[#r.out.kml|r.out.kml]] and [[#r.out.gmap|r.out.gmap]]&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== v.out.marxan ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.out.marxan v.out.marxan] is a python script that prepares vector layers and exports GRASS vector attributes and adjacency information as Marxan input files. Output from Marxan simulations can be imported using v.in.marxan. &lt;br /&gt;
: ''see also the [http://www.uq.edu.au/marxan/ Marxan] &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.out.svg ====&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 [http://svn.osgeo.org/grass/grass/trunk/vector/v.out.svg/ grass6-svn].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Klaus Förster&lt;br /&gt;
&lt;br /&gt;
==== v.points.cog ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.points.cog v.points.cog] is a shell script which will create a new point at the center of gravity of each cluster of input points or centroids, grouped by attribute. Among other things this is useful for labeling swarms of points.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.profile ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.profile v.profile] is vector map profiling tool similar to r.profile. This module will print out distance and attributes to points/lines along profiling line. It's also usefull to determine places where raster profile crosses vector features (i.e. where to place river marker on river walley crossection).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maris Nartiss&lt;br /&gt;
&lt;br /&gt;
==== v.random.cover ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.random.cover v.random.cover] is a shell script for creating random points constrained within an irregularly shaped vector area. (v.random places points only in current region rectangle). Optionally the user can upload raster values at the points. See also '&amp;lt;tt&amp;gt;r.random cover= vector_output=&amp;lt;/tt&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.rasterbounds ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== v.rast.stats2 ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.rast.stats2 v.rast.stats2] is an adapted version of the GRASS module v.rast.stats. It uses the grass addon [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.univar.zonal r.univar.zonal] to speed up calculation of univariate statistics from a GRASS raster map based on vector polygons.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Markus Neteler, Otto Dassau&lt;br /&gt;
&lt;br /&gt;
==== v.sample.buffer [Currently unavailable. Being re-written in python. Target for inclusion in addons svn is January 2011]====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.select.region ====&lt;br /&gt;
&lt;br /&gt;
: [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/v.select.region.tar.bz2 v.select.region] is a shell script that prints out the names of all vectors matching an input search pattern that has geometry (points, line, areas) that fall within a region bounded by an existing vector map, or within the current Grass region.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== v.selmany ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/vector/v.selmany/v.selmany v.selmany] is a shell script that allows to interactively select a set of vector objects on a given layer, then assign them attribute values in a connected database table. The script runs on the command line prompt and within a graphic monitor ; it does not work with DBF driver.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Vincent Bain&lt;br /&gt;
&lt;br /&gt;
==== v.surf.icw ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.surf.icw v.surf.icw] is an IDW interpolation method using true distance cost instead of euclidean shortest distance, i.e. ''as the fish swims around an island'' not ''as the bird flies''. This will cleanly travel around hard barriers and a cost surface map may be used to model expensive-cross barriers. Input data points do not need direct line of sight to be considered, but should be kept to less than one hundred as the module becomes very computationally expensive. A number of radial basis function options are available. ([http://grass.osgeo.org/wiki/Image:Inlets_03_SurfSal_icw_big.png screenshot])&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.surf.idwpow ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.geospatial.it/allegri/grass/v.surf.idwpow.zip v.surf.idwpow] integrates the common v.surf.idw algorithm with the exponential parameter for the distance weights&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Giovanni Allegri&lt;br /&gt;
&lt;br /&gt;
==== v.surf.krige [deprecated: use v.autokrige instead] ====&lt;br /&gt;
&lt;br /&gt;
: 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
==== v.strahler ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Florian Kindl. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler&lt;br /&gt;
&lt;br /&gt;
==== v.swathwidth ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.swathwidth v.swathwidth] creates a vector map representing the sea bottom coverage of a multibeam (swath) sonar survey.&lt;br /&gt;
: ([http://david.p.finlayson.googlepages.com/swathwidth Screenshots])&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' David Finlayson, Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.thickness ====&lt;br /&gt;
&lt;br /&gt;
: [http://marcin.slodkowski.googlepages.com/v.thickness.tgz v.thickness] creates points of thickness vectors from the vectors of strike and dip angles.The v.thickness is GUI GRASS script for v.dip.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Marcin Slodkowski&lt;br /&gt;
&lt;br /&gt;
==== v.transect.kia ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/vector/v.transect.kia v.transect.kia] calculates kilometric abundance indexes (KIA), a common indirect presence index used in wildlife monitoring along line transect surveys.&lt;br /&gt;
: Path lenghts can be corrected by draping on a DEM, different type of point objects can be weighted according to their relative importance, and paths can be  segmented using a further polygon vector (to calculate, say, abundances per elevation range or per habitat class).&lt;br /&gt;
: The module is written in bash and needs a GRASS install compiled with sqlite support.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Clara Tattoni and Damiano G. Preatoni&lt;br /&gt;
&lt;br /&gt;
==== v.trees3d ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== v.trimesh ====&lt;br /&gt;
: [http://www.valledemexico.ambitiouslemon.com/vtrimesh.html v.trimesh] creates a triangular mesh from a vector map using areal constraints for refinement. It uses Jonathan Shewchuk's Triangle library.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jaime Carrera&lt;br /&gt;
&lt;br /&gt;
==== v.what.rast.buffer ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.what.rast.buffer v.what.rast.buffer] is a script that calculates univariate statistics of raster map(s) from buffers around vector points. Results are written to a file. Resolution is taken from each input map.&lt;br /&gt;
: ''see also the [http://starspan.casil.ucdavis.edu StarSpan] software&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.variogram [deprecated: use v.autokrige instead] ====&lt;br /&gt;
&lt;br /&gt;
: 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.osgeo.org/pipermail/statsgrass/2006-October/000455.html reply].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Ivan Marchesini, Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
==== v.vect.stats ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.vect.stats v.vect.stats] counts the number of points falling into each polygon and optionally calculates statistics from numeric point attributes for each polygon. v.vect.stats is a C module and works with GRASS 6.4 and higher (see enclosed patches for 6.5 and 7.0).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
==== AniMove ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.faunalia.it/animov/ AniMove] is software for analysis of animal movement and ranging behaviour using QGIS+GRASS+R.&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' Support by Faunalia.it&lt;br /&gt;
&lt;br /&gt;
==== Utilities ====&lt;br /&gt;
&lt;br /&gt;
===== Shapemerge =====&lt;br /&gt;
&lt;br /&gt;
: [http://perrygeo.googlecode.com/svn/trunk/gis-bin/shpmerge.sh shpmerge] merges all the shapefiles in the current directory into a single output shapefile&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' Perrygeo&lt;br /&gt;
&lt;br /&gt;
=== Raster add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co &amp;lt;nowiki&amp;gt;https://svn.osgeo.org/grass/grass-addons/raster&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Raplat ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS-RaPlaT: The Radio Planning Tool for GRASS GIS system developed by support of Slovenian largest mobile operator Mobitel. It is especially designed for radio coverage calculation of GSM/UMTS systems, but can be applied also to other wireless systems in the frequency range 400 MHz – 2.4 GHz (e.g. TETRA, WiFi). Its structure is modular and characterized by high level of flexibility and adaptability. &lt;br /&gt;
&lt;br /&gt;
 * Documentation: http://commsys.ijs.si/en/component/content/article/54-software/149-user-manual&lt;br /&gt;
 * Software: http://commsys.ijs.si/en/software/grass-raplat&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Department of Communication Systems, Jozef Stefan Institue, Jamova 39, SI-1000 Ljubljana, Slovenia&lt;br /&gt;
&lt;br /&gt;
==== r.area ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.area r.area] Very simple module. Calculate area size (in cells) for every individual category in input raster map and write number of cells as the value of each cell in the area. Optionally write a binary coverage map and set a minimum area threshold. Works well with {{cmd|r.clump}}.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.basin ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.basin/ r.basin] Generates the main morphometric parameters of the basin starting from the digital elevation model and the coordinates of the basin's closing section.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Margherita Di Leo, Massimo Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.basin/&lt;br /&gt;
&lt;br /&gt;
==== r.bilateral ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.broscoe ====&lt;br /&gt;
&lt;br /&gt;
r.broscoe.sh calculates waerden test and t test statistics for some values of threshold area on a single basin, according to A.J.Broscoe theory (1959).&lt;br /&gt;
See v.strahler package&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler/&lt;br /&gt;
&lt;br /&gt;
==== r.boxcount ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mark Lake, grass6 port: Florian Kindl.&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount/&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount.sh/&lt;br /&gt;
&lt;br /&gt;
==== r.burn.frict ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.burn.frict r.burn.frict] converts vector geometries to raster cells, using a simple anti-aliasing method to close &amp;quot;gaps&amp;quot; between diagonal cells. Useful for &amp;quot;burning&amp;quot; vector geometries into a friction surface, making sure that simulated movement does not &amp;quot;slip&amp;quot; through converted cells that have only diagonal neighbours.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.burn.frict&lt;br /&gt;
&lt;br /&gt;
==== r.clump2 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.clump2 r.clump2] is a C module similar to r.clump. Differences are: diagonally adjacent cells are also clumped but can be excluded, NULL (nodata) cells are always excluded, and selective clumping with start coordinates is supported.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.clump2&lt;br /&gt;
&lt;br /&gt;
==== r.colors.out_vtk ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.out_vtk r.colors.out_vtk] is a shell script used to export the color table associated with a raster map layer to a {{wikipedia|VTK}} XML file. (see also [[Help with 3D]])&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.colors.quantiles ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.quantiles/r.colors.quantiles r.colors.quantiles] is a shell script used to create raster colors rules based on nquantiles. It uses R and spgrass6 package (RGRASS).&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== r.colors.stddev ====&lt;br /&gt;
&lt;br /&gt;
: [http://hamish.bowman.googlepages.com/grass_color_maps r.colors.stddev] ''moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== r.convergence ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.convergence r.convergence] calculate topographic convergence index, useful to detect lineamets represented by chanell/ridge system&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.cpt2grass ====&lt;br /&gt;
&lt;br /&gt;
: [http://hamish.bowman.googlepages.com/grass_color_maps r.cpt2grass] is a GRASS script for importing a [http://www.soest.hawaii.edu/gmt/ GMT] .cpt color table into GRASS. It can save to a text file suitable for r.colors or automatically apply the color table to a raster map.&amp;lt;BR&amp;gt;For a large collection of GMT .cpt files see http://sview01.wiredworkplace.net/pub/cpt-city/&lt;br /&gt;
: Other palette ideas from [http://geography.uoregon.edu/datagraphics/color_scales.htm Univ. Oregon] and [http://oceancolor.gsfc.nasa.gov/PRODUCTS/colorbars.html NASA/Goddard's OceanColor] (latter partially translated for use with GRASS on the [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.tools/palettes grass-addons SVN]).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.csr ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.csr 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 if the appropriate flag is given. Shading parameters can be modified, though useful defaults are given.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== r.cva ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ucl.ac.uk/~tcrnmar/GIS/r.cva.html r.cva] is a cumulative viewshed analysis module. It is an advanced version of the {{cmd|r.los}} program.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' [http://www.ucl.ac.uk/~tcrnmar/ Mark Lake]&lt;br /&gt;
&lt;br /&gt;
==== r.denoise ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.denoise r.denoise] denoises (smooths/despeckles) topographic data, particular DEMs derived from radar data (including SRTM), using Xianfang Sun's [http://www.cs.cf.ac.uk/meshfiltering/index_files/Page342.htm denoising algorithm].  It is designed to preserve sharp edges and to denoise with minimal changes to the original data.  See the [http://personalpages.manchester.ac.uk/staff/john.stevenson/mdenoise/r.denoise.html manual pages] for details.  Further information on Sun's denoising algorithm, including an example, is available [http://personalpages.manchester.ac.uk/staff/john.stevenson/mdenoise here].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' John Stevenson&lt;br /&gt;
&lt;br /&gt;
==== r.dominant_dir.m and r.calc_terraflow_dir.m ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.terraflow.tools dominant_dir.m and 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.diversity ====&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.diversity/ r.diversity] calculates selected diversity indices by calling various r.li commands.This script uses the [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.pielou.html Pielou], [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.renyi.html Renyi], [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.shannon.html Shannon] and [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.simpson.html Simpson] indices. The output is a map for each index. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Luca Delucchi, Duccio Rocchini&lt;br /&gt;
&lt;br /&gt;
==== r.eucdist ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.fragment ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.chrisgarstin.com/stuff/r.fragment r.fragment] fragments a raster into a user-defined set of smaller tiles according to an input number of rows and columns. &lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy r.fuzzy] Calculates membership of every cell in raster according membership function defined by user.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy.logic ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy.logic r.fuzzy.logic] Perform fuzzy operators (AND, OR, NOT, IMP) on membership's map using T-norms and T-conorms for 6 most popular families.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy.system ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy.system r.fuzzy.system] Perform full fuzzy clasificationwith 6 most popular fuzzy logic families and few methods of deffuzification.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.fuzzy.system&lt;br /&gt;
&lt;br /&gt;
==== r.game_of_life ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.game_of_life r.game_of_life] is a shell script which runs Conway's classic Game of Life using GRASS raster modules. It is meant to demonstrate how easy it is to program cellular automata in GRASS as well as various 3D raster volume and time series visualization techniques.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.gauss ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.les-ejk.cz/files/programs/grass/r.gauss.tgz r.gauss] is Gaussian and Laplacian of Gaussian filter for GRASS. It is written in C language.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.gradgrid4 ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.uibk.ac.at/geographie/personal/mergili/gradgrid4.zip gradgrid4] is a tool for interpolating values of discrete data points to a raster map, applying a local regression approach with a predictor raster. The model is based on shell and python scripts as well as an R batchfile. It was tested on Fedora Core 6 with GRASS 6.2.1 and R 2.5.1, but should work under most UNIX systems. After unzipping the gradgrid4 folder, store it at any place in your local file system. In the subfolder docs you can find a manual and a publication draft with a detailed description of the concept and the example of an application. The subfolder testloc constitutes a GRASS location with test data.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Martin Mergili&lt;br /&gt;
&lt;br /&gt;
==== r.hazard.flood ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.hazard.flood/ r.hazard.flood] is an implementation of a fast procedure to detect flood prone areas. The exposure to flooding may be delineated by adopting a topographic index (TIm) computed from a DEM. The portion of a basin exposed to flood inundation is generally characterized by a TIm higher than a given threshold, tau. The threshold is automatically determinated from the cellsize. The proposed procedure may help in the delineation of flood prone areas especially in basins with marked topography. The use of the modified topographic index should not be considered as an alternative to standard hydrological-hydraulic simulations for flood mapping, but it may represent a useful and rapid tool for a preliminary delineation of flooding areas in ungauged basins and in areas where expensive and time consuming hydrological-hydraulic simulations are not affordable or economically convenient. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Margherita Di Leo&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.hazard.flood/&lt;br /&gt;
&lt;br /&gt;
==== r.in.mb ====&lt;br /&gt;
&lt;br /&gt;
: [http://blogs.tekmap.ns.ca/archives/458 r.in.mb] is a &amp;quot;GRASS/[[MB-System]] program designed to import ''mbio'' compatible multibeam sonar data directly into the GRASS GIS. The program is a modified version of {{cmd|r.in.xyz}}. Instead of reading an ASCII XYZ file, ''r.in.mb'' reads an MB-System compatible list file.&amp;quot; It can do automatic reprojection and minor hole filling. The default is to import bathymetry data, but optionally amplitude or sidescan sonar data can be loaded instead.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Bob Covill&lt;br /&gt;
&lt;br /&gt;
==== r.in.onearth ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Soeren Gebbert&lt;br /&gt;
&lt;br /&gt;
==== r.in.swisstopo ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.in.swisstopo/ r.in.swisstopo] for importing swisstopo digital elevation model data into GRASS raster maps.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' J&amp;amp;uuml;rgen Hansmann&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.in.swisstopo/&lt;br /&gt;
&lt;br /&gt;
==== r.in.wms (.py) ====&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. Note GRASS 6.2+ provides a shell script version of r.in.wms, take care of which one is actually being run.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.inund.fluv ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.inund.fluv/ r.inund.fluv]This command allows to obtain a fluvial potentially inundation map given a high-resolution DTM of the area surrounding the river and a water surface profile calculated through an 1-D hydrodinamic model. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Roberto Marzocchi, Bianca Federici, Domenico Sguerso&lt;br /&gt;
&lt;br /&gt;
==== r.isoregions ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.isoregions/r.isoregions r.isoregions] allows isoregions creation from a GRASS raster map. &lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== r.interp.mask ====&lt;br /&gt;
&lt;br /&gt;
: [http://david.p.finlayson.googlepages.com/r.interp.mask r.interp.mask] Creates a user-specified buffer around interpolation points that can be used as a MASK to prevent or clip excessive extrapolation artifacts. This works much better than a standard convex hull around the points.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.ipso ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.ipso/ r.ipso] Produces the ipsometric and ipsographic curve related to a digital elevation model and prints the percentiles&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Margherita Di Leo, Massimo Di Stefano, Francesco Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.ipso/&lt;br /&gt;
&lt;br /&gt;
==== r.li ====&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-SVN'''''.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Claudio Porta, Davide Spano, Serena Pallecchi, [http://www.faunalia.it Faunalia]&lt;br /&gt;
&lt;br /&gt;
==== r.local_max.pl ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.mandelbrot ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/r.mandelbrot r.mandelbrot] is a shell script to calculate the Mandelbrot set.- for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== mcda====&lt;br /&gt;
&lt;br /&gt;
: mcda suite is a toolset for geographics multi-criteria decision aiding and data analysis based on ELECTRE (r.mcda.electre), REGIME (r.mcda.regime) and FUZZY (r.mcda.fuzzy) algorithm. The module r.roughset is also included  for geographics rough set analisys and knowledge discovery based on rough set library. It is written in C language for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/&lt;br /&gt;
&lt;br /&gt;
==== r.mlv ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== r.obstruction, r.planning.static, r.planning.cinematic ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ing.unitn.it/~grass/software.html r.obstruction, r.planning.static, r.planning.cinematic]: r.obstruction creates a polar obstruction map from a DTM. r.planning.static performs a static planning for GPS and Glonass surveys using the obstruction map created with r.obstruction. r.planning.cinematic performs a cinematic planning for GPS and Glonass surveys. (University of Trento, Faculty of Engineering)&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniele Carli, Dimitri D'Inca', Gianluca Fruet, Domenico Sguerso, Paolo Zatelli&lt;br /&gt;
&lt;br /&gt;
==== r.out.jpeg ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.geospatial.it/allegri/grass/r.out.jpeg_ r.out.jpeg] is a simple GRASS script to export georeferenced JPEG images from rasters, keeping the associated color table. It is a two-step export: first a ppm file is created, then it is converted to jpeg usgin the &amp;quot;convert&amp;quot; command from ImageMagick&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Giovanni Allegri&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmap ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.gmap r.out.gmap] outputs GRASS raster map into set of image tiles&lt;br /&gt;
following the tiling scheme of Google Maps and Microsoft Virtual Earth.&amp;lt;BR&amp;gt;Read more in the OSGeo Journal [http://www.osgeo.org/journal Volume 5 (2009, to appear)]&amp;lt;BR&amp;gt;see also [[#r.out.kml|r.out.kml]] and [[#v.out.kml|v.out.kml]]&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Tomas Cebecauer&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmt ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/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&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmt2 ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.gmt2 r.out.gmt2] 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== r.out.kap_template ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.kap_template r.out.kap_template] is a shell script that exports a raster map into a GeoTiff and a metadata text file suitable for use with KAP (BSB) raster nautical chart converter programs such as &amp;lt;tt&amp;gt;tif2bsb&amp;lt;/tt&amp;gt; (after verifying that you are legally entitled to use such a tool).&lt;br /&gt;
: '''''This is EXPERIMENTAL software. NOT FOR NAVIGATIONAL USE.'''''&lt;br /&gt;
: For an easy to use data viewer, see also the [http://www.opencpn.org OpenCPN] free navigational software.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.out.kml ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.kml r.out.kml] is a shell script that exports a raster map into a KML file and image for Google Earth or Worldwind. See also [[#v.out.kml|v.out.kml]] and [[#r.out.gmap|r.out.gmap]].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.pack ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack r.pack] and [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.unpack r.unpack] are two GRASS scripts for transferring raster maps to another computer as a single compressed file including color table etc.&lt;br /&gt;
: An earlier version has been renamed as [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack/experiment r.pack.mat] and [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.unpack/experiment r.unpack.mat].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.pi ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.pi/ r.pi] (raster patch index) provides various functions to analyse spatial attributes of a landscape. It has a focus on patch-based indices but delivers class-based indices as well. r.le and its successor r.li provide landscape indices.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Programming: Elshad Shirinov, Scientific concept: Dr. Martin Wegmann&lt;br /&gt;
&lt;br /&gt;
==== r.prominence ====&lt;br /&gt;
&lt;br /&gt;
: '''r.prominence''' calculates the average difference between a central cell and its neighbors. It approximated the terrain 'ruggedness' by looking at average differences in elevation within a given neighborhood.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.prominence/&lt;br /&gt;
&lt;br /&gt;
==== r.refine ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.bowdoin.edu/~ltoma/research.html r.refine]: reduces a DEM to a TIN (takes as input a grid DEM and an error margin and simplifies it to the desired accuracy into a TIN)&lt;br /&gt;
Available via the source code repository [https://github.com/jonrtodd/r.refine]&lt;br /&gt;
: '''Authors:''' Laura Toma and Jonathan Todd&lt;br /&gt;
&lt;br /&gt;
==== r.rifs ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ucl.ac.uk/~tcrnmar/ r.rifs]: r.rifs generates a raster map and/or image of a fractal by means of the specified random iterated function system.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mark Lake&lt;br /&gt;
&lt;br /&gt;
==== r.roughness ====&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.sh r.roughness.sh] 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;
&lt;br /&gt;
[http://www.igc.usp.br/pessoais/guano/downloads/r.roughness60 r.roughness60] - for GRASS versions 6.0.X&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.area r.roughness.window.area] - calculate surface roughness as the ratio of real (surface) area and planar area, using a moving-window approach.&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.vector r.roughness.window.vector] - calculate surface roughness as vector dispersion, using a moving-window approach. Resulting maps are: Vector Strength (R) and Inverted Fisher's k parameter. &lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.vector.html r.roughness.window.vector.html] - provisional help page for r.roughness.window.vector.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.roughness/&lt;br /&gt;
&lt;br /&gt;
==== r.roughset ====&lt;br /&gt;
&lt;br /&gt;
: r.roughset is a module for geographics rough set analisys and knowledge discovery based on rough set library. It is written in C language for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/r.roughset/&lt;br /&gt;
&lt;br /&gt;
==== r.seg ====&lt;br /&gt;
&lt;br /&gt;
: '''r.seg''' performs image segmentation and discontinuity detection (based on the Mumford-Shah variational model).&lt;br /&gt;
: The module generates a piece-wise smooth approximation of the input raster map and a raster map of the discontinuities of the output approximation. The discontinuities of the output approximation are preserved from being smoothed. &lt;br /&gt;
: See [http://www.ing.unitn.it/~vittia/sw here] for details and examples.&lt;br /&gt;
&lt;br /&gt;
Available [http://www.ing.unitn.it/~vittia/sw here] and with improvements via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.seg/&lt;br /&gt;
&lt;br /&gt;
: '''Author''' Alfonso Vitti&lt;br /&gt;
&lt;br /&gt;
==== r.smoothpatch ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.soils.texture ====&lt;br /&gt;
&lt;br /&gt;
: r.soils.texture is a module to define soils texture from sand and clay raster file with a schema text file (now FAO,USDA and ISSS are available). It is written in C language. - for GRASS versions 6.x - For bugs and suggest: g_massa@libero.it &lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Gianluca Massei&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.soils.texture/&lt;br /&gt;
&lt;br /&gt;
==== r.stack ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stack r.stack] is a shell script used to patch all the raster maps in a time series (or burst 3D raster) together into a vertical stack, to aid mutli-map analyses in modules where group input is not yet available.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.stream.angle ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.angle r.stream.angle] Divide stream network into stright line segments according users input. It extends  Module uses as input direction and stream netwokr map produced by r.watershed and stream.extract  or custom user input. See description for details.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.angle&lt;br /&gt;
&lt;br /&gt;
==== r.stream.basins ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.basins r.stream.basins] delineate basins according users input. It extends r.water.outlet funcionality to extracting more than one basin at one step. Module uses as input direction map produced  stream network produced by r.stream.extract, r.watershed, r.stream order or custom user input. More in tutorial on grass-wiki pages.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.basins&lt;br /&gt;
&lt;br /&gt;
==== r.stream.del ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.del r.stream.del] Calculates downslope length of first order streams and delete them if it length (in pixels) is lower than the treeshold. It also join false segments left by deletion into one with category of upper. It uses r.watershed direction map and r.watershed  stream map as input. The module is added only for r.watershed module, r.stream.extract has deleting short streams build-in. During development of r.stream.* it will be probably abandoned due to duplicate functionality&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.del&lt;br /&gt;
&lt;br /&gt;
==== r.stream.distance ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.distance r.stream.distance] Calculates downslope distance and downslope elevation difference between current cell and stream or outlet cells. It uses r.watershed direction map, r.watershed or r.stream.extract stream map and optionally DEM as input.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.distance&lt;br /&gt;
&lt;br /&gt;
==== r.stream.extract ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.extract r.stream.extract] extracts topologically clean stream networks from input elevation and optionally accumulation maps. Output is available as raster and vector and can be used as input for the other r.stream.* modules by Jarek Jasiewicz. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.extract&lt;br /&gt;
&lt;br /&gt;
==== r.stream.order ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.order r.stream.order] orders stream network outputed by r.watershed or r.stream.extract according Sthrahler, Shreve, Horton and Hack ordering systems. It require as input stream and direction map and optionally accumulation map. It handle both SFD nad MFD modes but all data must come from the same procedure.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz, Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.order&lt;br /&gt;
&lt;br /&gt;
==== r.stream.pos ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.pos r.stream.pos] Helper module for calculating local stream network properties and linear geostatistics. Mostly To use with R and other grass modules. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.pos&lt;br /&gt;
&lt;br /&gt;
==== r.stream.stats ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.stats r.stream.stats] calculate Hortonian statistics for Stahler or Horton stream network created by r.stream.order. It uses r.watershed direction map, DEM and r.stream.order's Stahler or Horton stream network as input. It outputs calculated statistics to standard output.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.stats&lt;br /&gt;
&lt;br /&gt;
==== r.surf.nnbathy ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html r.surf.nnbathy] interpolates a surface from a raster input using Pavel Sakov's [http://code.google.com/p/nn-c/ nn] natural neighbor interpolation library. Provides triangulation, Sibson natural neighbor interpolation and non-Sibsonian interpolation.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== r.surf.volcano ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.surf.volcano r.surf.volcano] creates an artificial surface resembling a seamount or cone volcano. The user can alter the size and shape of the mountain and optionally roughen its surface. Available decay functions are  polynomial, Gaussian, Lorentzian, logarithmic, and exponential.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.terracost ====&lt;br /&gt;
&lt;br /&gt;
[http://www.bowdoin.edu/~ltoma/research.html r.terracost] Scalable approach for computing least-cost-path surfaces on massive grid terrains.&amp;lt;BR&amp;gt;'''Lead author''': Laura Toma&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/raster/r.terracost&lt;br /&gt;
&lt;br /&gt;
==== r.tileset ====&lt;br /&gt;
&lt;br /&gt;
: ''{{cmd|r.tileset}} moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== r.traveltime ====&lt;br /&gt;
&lt;br /&gt;
: [http://jesbergwetter.twoday.net/stories/4845555/ r.traveltime] computes the travel time of surface runoff to an outlet. The program starts at the basin outlet and calculates the travel time at each raster cell recursively. A drainage area related threhold considers even  surface and also channel runoff. Travel times are derived by assuming kinematic wave approximation. The results can be used to derive a time-area function. This might be usefull for precipitation-runoff calculations (estimation of flood predictions) with a lumped hydrologic model (user-specified unit hydrograph).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Kristian Förster&lt;br /&gt;
&lt;br /&gt;
==== r.univar.zonal ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.univar.zonal r.univar.zonal] is similar to r.univar, but calculates statistics separately for each category(zone) present in the separate input map used to define zones (zonal statistics). The output can be like the one of r.univar or in easier to read table format and can be written to a file. This addon is only needed for GRASS 6.4, its functionality has been added to r.univar in 6.5 and 7.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.univar.zonal&lt;br /&gt;
&lt;br /&gt;
==== r.viewshed ====&lt;br /&gt;
&lt;br /&gt;
: r.viewshed is a module for extremely fast line of sight analysis (replaces the slow r.los). It is written in C language for GRASS versions 6.X/7.x.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Laura Toma, USA&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.viewshed&lt;br /&gt;
&lt;br /&gt;
Once {{trac|390}} is solved, it will substitute r.los.&lt;br /&gt;
&lt;br /&gt;
==== r.wavelets ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ing.unitn.it/~grass/software.html r.wavelets]: This package contains wavelets decomposition and reconstruction modules for the GRASS GIS: r.owave.dec computes the orthogonal wavelet transform of a raster map. r.owave.rec reconstructs a raster map from an orthogonal wavelet transform. r.biowave.dec computes the biorthogonal wavelet transform of a raster map. r.biowave.rec reconstructs a raster map from a biorthogonal wavelet transform.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Members of the University of Trento, Faculty of Engineering&lt;br /&gt;
&lt;br /&gt;
==== r.wf ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.wf/ r.wf] produces the Width Function of a basin. The Width Function W(x) gives the number of the cells in a basin at a flow distance x from the outlet (it is also referred as distance-area function). The distance is not the euclidean one, but it is measured along the flowpath towards the outlet.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Margherita Di Leo, Massimo Di Stefano, Francesco Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.wf/&lt;br /&gt;
&lt;br /&gt;
==== r.xtent ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.xtent r.xtent] computes a raster map layer representing the Voronoi diagram, weighted Voronoi diagram or a more complex territorial partitioning of space around points (centers) in a vector input map, based on the XTENT formula.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.xtent&lt;br /&gt;
&lt;br /&gt;
==== r.zc.pl ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== GIPE ====&lt;br /&gt;
&lt;br /&gt;
: The GRASS Image Processing Environment (GIPE) has USLE, Energy-balance and radiance-reflectance correction models.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Yann Chemin (unless specified otherwise).&lt;br /&gt;
   &lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/imagery/gipe&lt;br /&gt;
&lt;br /&gt;
Remark: This is progressively moved to main GRASS SVN (aka GRASS 7)&lt;br /&gt;
&lt;br /&gt;
:* r.hydro.CASC2D, ported from GRASS 5.x version, is temporarily here waiting to return to main GRASS.&lt;br /&gt;
&lt;br /&gt;
:* r.soiltex2prop creates porosity, Saturated Hydraulic conductivity (Ksat) and wetting front pressure head (Hf) from percentage of sand and clay after Rawls et al., 1990. This is a must for r.hydro.CASC2D.&lt;br /&gt;
&lt;br /&gt;
:* i.biomass creates biomass growth map from fPAR, lightuse efficiency, water availability (or evap.fraction), Lat, doy and tsw.&lt;br /&gt;
&lt;br /&gt;
:* i.dn2ref.l7, r.dn2ref.ast create top of atmosphere reflectance for Landsat 7ETM+ and ASTER. These modules also have a flag for radiance output. Updated i.dn2ref.l7 to read .met calibration file.  &lt;br /&gt;
&lt;br /&gt;
:* i.dn2full.l[5,7] is an attempt to get all bands of Landsat[5,7] calibrated and corrected to either reflectance or temperature, reads only the .met file.  &lt;br /&gt;
&lt;br /&gt;
:* i.dn2potrad.l[5,7] is an attempt to get ET potential from DN of Landsat 7 (Careful! No Atmospheric correction!).  &lt;br /&gt;
&lt;br /&gt;
:* i.eb.* are a set of 10+ 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. &lt;br /&gt;
&lt;br /&gt;
:* i.evapo.potrad creates 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 i.eb.eta. &lt;br /&gt;
&lt;br /&gt;
:* i.evapo.SENAY creates actual evapotranspiration following the regional method of Senay (2007). &lt;br /&gt;
&lt;br /&gt;
:* i.lmf creates a Local Maximum Fitting on the temporal dimension of the multi-date input dataset, working, but more precision still to be added.&lt;br /&gt;
&lt;br /&gt;
:* i.vi.mpi is the mpi version of i.vi for cluster GRASS GIS education (no speed up here!) '''Author:''' Shamim Akhter &lt;br /&gt;
&lt;br /&gt;
:* i.modis.stateqa extracts State Quality Assessment information from Modis 500m (MOD09A) products.&lt;br /&gt;
&lt;br /&gt;
:* i.water creates a Water Mask from NDVI and Albedo, or specifically for Modis: NDVI and Band 7.&lt;br /&gt;
&lt;br /&gt;
:* i.wi creates a given Water Index (only one so far).&lt;br /&gt;
&lt;br /&gt;
==== HydroFOSS ====&lt;br /&gt;
&lt;br /&gt;
: HydroFOSS - a GIS embedded approach for Free &amp;amp; Open Source Hydrological modeling.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Massimiliano Cannata&lt;br /&gt;
 &lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/HydroFOSS/&lt;br /&gt;
&lt;br /&gt;
==== Hikereport ====&lt;br /&gt;
&lt;br /&gt;
: python script that computes length, cumulative uphill and downhill, average slopes on an interactively drawn path. Based on r.profile's output.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Negri&lt;br /&gt;
&lt;br /&gt;
 http://tracce.wordpress.com/?attachment_id=71&lt;br /&gt;
&lt;br /&gt;
=== Misc add-ons===&lt;br /&gt;
&lt;br /&gt;
==== m.eigensystem ====&lt;br /&gt;
&lt;br /&gt;
m.eigensystem - Computes eigen values and eigen vectors for square matrices.&lt;br /&gt;
&lt;br /&gt;
: http://svn.osgeo.org/grass/grass-addons/misc/m.eigensystem/&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Michael Shapiro&lt;br /&gt;
&lt;br /&gt;
===Database add-ons===&lt;br /&gt;
==== db.join ====&lt;br /&gt;
&lt;br /&gt;
: Table joining: join one table into another through common attributes&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/database/db.join/&lt;br /&gt;
or&lt;br /&gt;
   g.extension db.join&lt;br /&gt;
&lt;br /&gt;
===General add-ons===&lt;br /&gt;
&lt;br /&gt;
==== GRASS create location scripts ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/grass_create_location grass_create_location.sh] Script to generate a new GRASS location from GIS file (e.g. geoTIFF or SHAPE), wktfile or EPSG code.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler&lt;br /&gt;
&lt;br /&gt;
==== g.laptop.sh ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.gbd-consult.de/dassau/grass/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Otto Dassau&lt;br /&gt;
&lt;br /&gt;
==== Readline completion ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alexandre Sorokine (grass-complete), Daniel Calvelo (grass_rlcompleter.sh)&lt;br /&gt;
&lt;br /&gt;
==== g.region.point ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.region.point g.region.point] is a shell script which resets the computational region to a square box around a given coordinate. It is intended for use within GRASS scripts to speed up processing by limiting expensive raster calculations to a small area of interest.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== g.linke_by_day ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.sun.tools/ g.linke_by_day] is a python script for [[r.sun]] which interpolates a Linke turbidity value for a given day of the year based on monthly values edited into the script.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== g.xlist ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.xlist g.xlist] is a C implementation of g.mlist. g.xlist searches for data files matching a pattern given by wildcards or POSIX Extended Regular Expressions. POSIX regex(3) functions are required.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== g.xremove ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.xremove g.xremove] is a C implementation of g.mremove. g.xremove removes data files matching a pattern given by wildcards or POSIX Extended Regular Expressions. POSIX regex(3) functions are required.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
=== Imagery add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/imagery&lt;br /&gt;
&lt;br /&gt;
==== GIPE ====&lt;br /&gt;
&lt;br /&gt;
GIPE (see also above in raster section) provides:&lt;br /&gt;
i.biomass, i.dn2potrad.l5, i.dn2potrad.l7, i.dn2ref.ast, i.eb.deltat, i.eb.disp, i.eb.eta, i.eb.evapfr, i.eb.g0, i.eb.h0, i.eb.h_SEBAL01, i.eb.h_SEBAL95, i.eb.h_iter, i.eb.molength, i.eb.netrad, i.eb.psi, i.eb.rah, i.eb.rohair, i.eb.ublend, i.eb.ustar, i.eb.wetdrypix, i.eb.z0m, i.eb.z0m0, i.evapo.PT, i.evapo.TSA, i.evapo.potrad, i.evapo.senay, i.evapo.time_integration, i.lmf, i.modis.stateqa, i.sattime, i.vi.grid, i.vi.mpi, i.water, i.wi&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/gipe/&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
==== i.homography ====&lt;br /&gt;
&lt;br /&gt;
Rectifies an image by computing a coordinate transformation for each pixel in the image based on the control points created by i.linespoints. The approach uses homography extended for corresponding lines.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.homography&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniel Grasso, Bolzano, Italy, based on code written by Stefano Merler, ITC-irst, Italy&lt;br /&gt;
&lt;br /&gt;
==== i.linespoints ====&lt;br /&gt;
&lt;br /&gt;
An imagery command that enables the user to mark coordinate system points as well as lines on an image to be rectified and then input the coordinates of each point for creation of a coordinate transformation matrix. The transformation matrix is needed as input for the GRASS program i.homography.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.linespoints&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniel Grasso, Bolzano, Italy, based on i.points&lt;br /&gt;
&lt;br /&gt;
==== i.landsat.toar ====&lt;br /&gt;
&lt;br /&gt;
Transform calibrated digital number of Landsat products to top-of-atmosphere radiance or top-of-atmosphere reflectance and temperature (band 6 of the sensors TM and ETM+). Optionally, used to calculate the at-surface radiance or reflectance with atmospheric correction (DOS method).&lt;br /&gt;
&lt;br /&gt;
Available also in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.landsat.toar&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.landsat.acca ====&lt;br /&gt;
&lt;br /&gt;
Implements the Automated Cloud-Cover Assessment (ACCA) Algorithm from Irish (2000) with the constant values for pass filter one from Irish et al. (2006). To do this, it needs Landsat band numbers 2, 3, 4, 5, and 6 (or band 61 for Landsat-7 ETM+) which have already been processed from DN into reflectance and band-6 temperature with i.landsat.toar). &lt;br /&gt;
&lt;br /&gt;
Available also in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.landsat.acca&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.points.auto ====&lt;br /&gt;
&lt;br /&gt;
This module allows a search of GCP's on two raster-maps with differents levels of automation. The ''manual'' search is the default search, so it's possible to determine the GCP's manually with the mouse (like {{cmd|i.points}}). ''Semiautomated'' search: The user determines with the mouse some correspondent areas (with a discrete precision) in the two maps and the module searches itself the GCP's in these areas. ''Automated'' search: At the start of module the user has to load the maps that the algorithm uses to the search, so it is recommended to use the maps filtered with the filters DIVERSITY or STDDEV (of GRASS) with a window of 3x3 or 5x5 pixels. However, the algorithm sometimes works well with the original maps too.&lt;br /&gt;
&lt;br /&gt;
Note: This code is basically an improved i.points (from 2004). Subsequent changes in i.points haven's been ported here yet.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.points.auto&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' based on i.points; additions by Ivan Michelazzi, Luca Miori (MSc theses at ITC-irst); Supervisors: Markus Neteler, Stefano Merler, ITC-irst 2003, 2004. [http://gisws.media.osaka-cu.ac.jp/grass04/viewpaper.php?id=37 PDF article]&lt;br /&gt;
&lt;br /&gt;
==== i.points.reproj ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/imagery/i.points.reproj i.points.reproj] is a shell script that will use cs2cs to reproject the target coordinates of a group's POINTS file. By running i.rectify directly to the new target projection, a generation of resampling data loss can be avoided (versus i.rectify + r.proj). On the other hand, i.rectify does not calculate cell resolution well if the map is to be rotated ([http://intevation.de/rt/webrt?serial_num=3296 bug #3296]), in those cases i.rectify+r.proj may be the better option.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== i.plr.py ====&lt;br /&gt;
&lt;br /&gt;
: [[I.plr.py|Probabilistic Label Relaxation]], written in Python&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Georg Kaspar&lt;br /&gt;
&lt;br /&gt;
==== i.pr ====&lt;br /&gt;
&lt;br /&gt;
: Image classification: implements k-NN (multiclass), classification trees (multiclass), maximum likelihood (multiclass), Support Vector Machines (binary), bagging versions of all the base classifiers, AdaBoost for binary trees and support vector machines. It allows feature manipulation (normalization, principal components,...). It also implements feature selection techniques (RFE, E-RFE,...), statistical tests on variables, tools for resampling (cross-validation and bootstrap) and cost-sensitive techniques for trees and support vector machines.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Merler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.pr&lt;br /&gt;
&lt;br /&gt;
==== i.spec.sam ====&lt;br /&gt;
&lt;br /&gt;
: Spectral Angle mapping&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.sam/&lt;br /&gt;
&lt;br /&gt;
==== i.spec.unmix ====&lt;br /&gt;
&lt;br /&gt;
: Spectral unmixing&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.unmix/&lt;br /&gt;
&lt;br /&gt;
==== i.topo.corr ====&lt;br /&gt;
: i.topo.corr is used to topographically correct reflectance from imagery files, e.g. obtained with i.landsat.toar (see above), using a sun illumination terrain model. This illumination model represents the cosine of the incident angle, i.e. the  angle between the normal to the ground and the sun rays. It can be obtained with {{cmd|r.sun}} (parameter incidout), and then calculating its cosine with float precision. Correction methods: cosine, minnaert, percent, c-factor.&lt;br /&gt;
&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.topo.corr&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.warp ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/imagery/i.warp i.warp] 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
=== Display add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== d.barb ====&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/display/d.barb d.barb] is a C module that will draw wind barbs, straw plots, and arrow plots from raster array or sparse vector point data. It can use either direction + magnitude, or u + v components as the input, and can produce a legend key. (''work in progress, but it's mostly there'')&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.edit.rast ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.edit.rast d.edit.rast] edits cells in an existing raster map displayed on the current monitor.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== d.frame.quarter ====&lt;br /&gt;
&lt;br /&gt;
: ('''obsolete''') [http://trac.osgeo.org/grass/browser/grass-addons/display/d.frame.split d.frame.quarter] is a shell script that will split the display into four quadrants (or sixths) using ''d.frame''. Individual frames are named ''uno, dos, tres, cuatro'', and ''full_screen''.&lt;br /&gt;
: Replaced by {{cmd|d.split.frame}} in main.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.frame.split ====&lt;br /&gt;
&lt;br /&gt;
: ''d.frame.split moved into main archive as {{cmd|d.split.frame}}''&lt;br /&gt;
&lt;br /&gt;
==== d.frontline ====&lt;br /&gt;
&lt;br /&gt;
: [http://cloud.github.com/downloads/amuriy/GRASS-scripts/d.frontline d.frontline] is a shell script that draws frontlines on the graphics monitor using ''d.graph'' module and different types of symbols. Also it optionally saves frontline graphics to ''d.graph'' commands file and/or ''ps.map'' file (for later use with the &amp;quot;read&amp;quot; ''ps.map'' instruction)   &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alexander Muriy&lt;br /&gt;
&lt;br /&gt;
==== d.hyperlink ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author: '''Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== d.mark ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.mark] is a shell script that quickly displays a marker on the display at a given coordinate.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
==== d.region.box ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.region.box d.region.box] is a shell script that quickly displays a box around the current region.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.stations ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts   d.stations] is a shell script that quickly displays vector points (or sites for GRASS 5.4 and below).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
==== d.varea ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.varea] is a shell script that quickly displays vector areas.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== pd-GRASS ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ornl.gov/sci/gist/software/grass/ pd-GRASS]: Parallel Display for GRASS GIS&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alex Sorokine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[IconSymbols]] ====&lt;br /&gt;
&lt;br /&gt;
* [[IconSymbols|Symbols]] which can be used with ''d.vect, d.graph'', and ''ps.map''.&lt;br /&gt;
&lt;br /&gt;
=== Postscript add-ons ===&lt;br /&gt;
&lt;br /&gt;
* ''See also [[ps.map scripts|ps.map samples and templates]]''.&lt;br /&gt;
&lt;br /&gt;
==== ps.atlas ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== ps.output ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/postscript/ps.output ps.output] is much like {{cmd|ps.map}} but with advanced decorations and ability for translucency. Here you can find a [[Ps.output|tutorial]].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== [[AreaFillPatterns]] ====&lt;br /&gt;
&lt;br /&gt;
* Hatches for ps.map's vareas&lt;br /&gt;
&lt;br /&gt;
=== wxGUI add-ons ===&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;
* See wiki [[GRASS and MapServer]] page&lt;br /&gt;
&lt;br /&gt;
==GRASS 5.x (old)==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.osgeo.org/download/addons.php&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.osgeo.org/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;
* [http://www.bowdoin.edu/~ltoma/research.html r.terracost] Scalable approach for computing least-cost-path surfaces on massive grid terrains. For GRASS 5.3.&amp;lt;BR&amp;gt;'''Lead author''': Laura Toma&lt;br /&gt;
:Newer version available via SVN:&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/raster/r.terracost&lt;br /&gt;
&lt;br /&gt;
==GRASS 4.x (very old)==&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* MAGICAL Software: The MAGICAL software comprises a suite of three programs that provide a multi-agent simulation extension for the GRASS GIS software. http://www.ucl.ac.uk/~tcrnmar/simulation/magical/magical.html&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>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=13786</id>
		<title>AddOns</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=13786"/>
		<updated>2011-07-02T04:57:11Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* v.lda.py */&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.osgeo.org/download/ here]).&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== AddOns source code repository ==&lt;br /&gt;
&lt;br /&gt;
The AddOns source code is hosted in [http://svn.osgeo.org/grass/grass-addons/ GRASS-AddOns SVN repository].&lt;br /&gt;
&lt;br /&gt;
To checkout:&lt;br /&gt;
&lt;br /&gt;
 svn checkout &amp;lt;nowiki&amp;gt;https://svn.osgeo.org/grass/grass-addons/&amp;lt;/nowiki&amp;gt; grass-addons&lt;br /&gt;
&lt;br /&gt;
Please read [http://trac.osgeo.org/grass/wiki/HowToContribute#WriteaccesstotheGRASS-Addons-SVNrepository How to get write access to the GRASS-Addons-SVN repository] and contact the [http://lists.osgeo.org/mailman/listinfo/grass-dev grass-dev] mailing list if you would like to host your module there.&lt;br /&gt;
&lt;br /&gt;
== Building and installing Addons ==&lt;br /&gt;
&lt;br /&gt;
See the [[Compile and Install#Addons|compile and install]] wiki page.&lt;br /&gt;
&lt;br /&gt;
In GRASS 6.4 and newer you can use the {{cmd|g.extension}} module, e.g. to install &amp;lt;tt&amp;gt;r.fuzzy.system&amp;lt;/tt&amp;gt; run:&lt;br /&gt;
&lt;br /&gt;
 g.extension extension=r.fuzzy.system&lt;br /&gt;
&lt;br /&gt;
To remove installed Addons run&lt;br /&gt;
&lt;br /&gt;
 g.extension extension=r.fuzzy.system operation=remove&lt;br /&gt;
&lt;br /&gt;
== Adding something new ==&lt;br /&gt;
&lt;br /&gt;
Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work. Also please consider adding your module to one of the [[Applications]] pages.&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;
=== Coding standards ===&lt;br /&gt;
&lt;br /&gt;
Please have a look at our [http://grass.osgeo.org/grass63/source/SUBMITTING_SCRIPTS Shell script coding standards] before submitting here.&lt;br /&gt;
&lt;br /&gt;
There are other coding standards given for modules written in C, Tcl/Tk, and Python''(?)'' located in the GRASS source code.&lt;br /&gt;
&lt;br /&gt;
=== Documenting your code ===&lt;br /&gt;
&lt;br /&gt;
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the &amp;lt;tt&amp;gt;--html-description&amp;lt;/tt&amp;gt; command line option. Please, see also the [http://grass.ibiblio.org/grass63/manuals/html63_user/g.parser.html g.parser help page]&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous Add-ons ==&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/browser/grass-addons/misc/utm_which_zone utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] or Matlab 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 6.x (current)==&lt;br /&gt;
&lt;br /&gt;
=== Vector add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector&lt;br /&gt;
&lt;br /&gt;
==== v.adehabitat.clusthr, v.adehabitat.kernelUD, v.adehabitat.mcp ====&lt;br /&gt;
&lt;br /&gt;
: Tools to calculate home ranges of animals&lt;br /&gt;
: '''Author:''' Clement Calenge&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/adehabitat&lt;br /&gt;
&lt;br /&gt;
==== v.append ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Michael Barton&lt;br /&gt;
&lt;br /&gt;
==== v.autokrige ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.autokrige/v.autokrige.py v.autokrige] achieves automatic ordinary kriging from GRASS sites (vector point data), using R with spgrass6 (RGRASS) and automap packages.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.breach ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.breach] creates vector maps of lines and points of continously lowering elevation down the input watercourses, based on the input raster DEM.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.colors ====&lt;br /&gt;
&lt;br /&gt;
: {{cmd|v.colors}} ''moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== v.count.points.sh ====&lt;br /&gt;
&lt;br /&gt;
: [http://wiki.iosa.it/dokuwiki/spatial_analysis:feature_count v.count.points.sh] counts point features in areas, generates table good as input to d.vect.chart.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Costa&lt;br /&gt;
&lt;br /&gt;
==== v.digatt ====&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].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Andreas Philipp&lt;br /&gt;
&lt;br /&gt;
==== v.dip ====&lt;br /&gt;
&lt;br /&gt;
: [http://marcin.slodkowski.googlepages.com/v.dip.tgz v.dip] creates points of thickness vectors from the vectors of strike and dip angles. The v.dip is the main ANSI C core program. Program so-called v.dip can run without GRASS environment.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Marcin Slodkowski&lt;br /&gt;
&lt;br /&gt;
==== v.flip ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.flip] flips the direction of selected vector lines (redundant since GRASS 6.3 - there is &amp;quot;v.edit tool=flip&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.group ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
==== v.in.redwg ====&lt;br /&gt;
&lt;br /&gt;
: v.in.redwg imports DWG files into GRASS.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Rodrigo Rodrigues da Silva&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.redwg&lt;br /&gt;
&lt;br /&gt;
==== v.in.gama ====&lt;br /&gt;
&lt;br /&gt;
: Converts [http://www.gnu.org/software/gama/ GNU GaMa] XML output file to a GRASS vector map layer.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Martin Landa&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.gama&lt;br /&gt;
&lt;br /&gt;
==== v.in.geodesic ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.geodesic v.in.geodesic] is a shell script which will create a new vector map containing a great circle line. The user may either define a beginning and end coordinate, or define a starting coordinate along with initial azimuth and desired line length.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.geoplot ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.geoplot v.in.geoplot] converts a [http://www.geoscan-research.co.uk/page9.html/ Geoplot] ASCII export file to a GRASS vector map layer.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.geoplot&lt;br /&gt;
&lt;br /&gt;
==== v.in.gshhs ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.gshhs v.in.gshhs] imports [http://www.soest.hawaii.edu/pwessel/gshhs/index.html GSHHS] shorelines into a GRASS vector map. GSHHS data are automatically reprojected to the current location.&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' several, updated to GRASS 6 by Markus Metz&lt;br /&gt;
&lt;br /&gt;
==== v.in.marxan ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.marxan v.in.marxan] is a python script that imports Marxan output data for display in a vector grid file prepared using v.out.marxan. &lt;br /&gt;
: ''see also the [http://www.uq.edu.au/marxan/ Marxan] &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.in.mbsys_fnv ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.mbsys_fnv v.in.mbsys_fnv] imports [[MB-System]] navigation files into a GRASS vector map. You can choose from swath area coverage, track lines (including outer port/starboard edges), all bounds as points, etc. An attribute database is created containing the vital statistics of the specified feature such as track length or swath coverage (geodesic), start stop time and location, pitch, roll, heave, etc. See also the [[#v.in.p190]] addon.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.ncdc ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.ncdc v.in.ncdc] imports an [http://www.ncdc.noaa.gov NCDC] stn file (station data) into a GRASS vector map.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== v.in.postgis ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.postgis/v.in.postgis.py v.in.postgis] Create a GRASS layer from any sql query on PostGIS data.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.in.osm ====&lt;br /&gt;
&lt;br /&gt;
: [http://kripton.kripserver.net/software/v.in.osm/ v.in.osm]: OpenStreetMap import into GRASS. Yet only supports deprecated API 0.4, will be modified to work with API 0.5 some time soon.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jannis Achstetter&lt;br /&gt;
&lt;br /&gt;
: See also [http://hamish.bowman.googlepages.com/gpsdrivefiles#osm osm2grass.sh] by H Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.osm2 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.osm2 v.in.osm2]: OpenStreetMap import into GRASS. Supports current API 0.6, downloads using the [http://wiki.openstreetmap.org/wiki/Xapi Xapi] interface and imports using GpsBabel 1.3.5 or newer. GpsBabel restricts to either nodes or ways being imported at a time, not both. Use {{cmd|v.patch}} to rejoin them. (''work in progress'')&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.ovl ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/v.in.ovl/ v.in.ovl] is a shell script that imports an ASCII vector file created with TOP10|25|50 or similar products.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== v.in.p190 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.p190 v.in.p190] is a shell script that imports 'Centre of Source' &amp;quot;S&amp;quot; navigation data from seismic P1/90 (UKOOA) data files and writes it either GRASS vector points or vector lines format. Optionally it will export the navigation data into .csv text files as well. ''Currently in the functional prototype stage, some assembly is required. See inside the shell script for details.'' For working with SEG-Y data, see also the [[#v.in.mbsys_fnv]] addon.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.krige ====&lt;br /&gt;
&lt;br /&gt;
: [[V.krige_GSoC_2009 | v.krige]] aims to integrate R functions for kriging (packages automap, gstat, geoR) in a trasparent way. '''Moved into trunk/devbr6 code (r40048)'''&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Anne Ghisla, as Google Summer of Code 2009 project&lt;br /&gt;
&lt;br /&gt;
: See also [[GRASS_AddOns#v.autokrige]] by Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== Spatial Analysis Tools ====&lt;br /&gt;
&lt;br /&gt;
===== v.lda.py =====&lt;br /&gt;
&lt;br /&gt;
: [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.lda.py v.lda.py] is a Python script for calculating Ian Johnson's (U. Sidney) Local Density Analysis values. This can be used in two ways. When only one vector points file is entered, it serves to measure clustering of point data at different neighborhood radii. When two different point files are entered, it measures the the co-occurence of the points from the two files. There is an option to export the data into a cvs format file for easy plotting in a spreadsheet or statistical program like R.&lt;br /&gt;
&lt;br /&gt;
==== v.line.center ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.line.center] creates a points vector map with each point located in the middle of the length of the input vector line.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.lmeasure ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mats Schuh&lt;br /&gt;
&lt;br /&gt;
==== v.mkhexgrid ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.mkhexgrid v.mkhexgrid] is a python script that creates a hexagonal grid the size of the selected region using user specified side lengths. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.out.ascii.db ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/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.&lt;br /&gt;
: ''Superseded in GRASS 6.4 by the new v.out.ascii columns= option.''&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.out.ascii.mat ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.out.ascii.mat v.out.ascii.mat] is a shell script for exporting vector polygon and polyline data into an ASCII text file suitable for loading into Matlab (or [http://www.gnu.org/software/octave/ Octave]).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.out.gmt ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== v.out.kml ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/v.out.kml/ v.out.kml] is a shell script that exports a vector file into a KML file for Google Earth or Worldwind. see also [[#r.out.kml|r.out.kml]] and [[#r.out.gmap|r.out.gmap]]&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== v.out.marxan ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.out.marxan v.out.marxan] is a python script that prepares vector layers and exports GRASS vector attributes and adjacency information as Marxan input files. Output from Marxan simulations can be imported using v.in.marxan. &lt;br /&gt;
: ''see also the [http://www.uq.edu.au/marxan/ Marxan] &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.out.svg ====&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 [http://svn.osgeo.org/grass/grass/trunk/vector/v.out.svg/ grass6-svn].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Klaus Förster&lt;br /&gt;
&lt;br /&gt;
==== v.points.cog ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.points.cog v.points.cog] is a shell script which will create a new point at the center of gravity of each cluster of input points or centroids, grouped by attribute. Among other things this is useful for labeling swarms of points.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.profile ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.profile v.profile] is vector map profiling tool similar to r.profile. This module will print out distance and attributes to points/lines along profiling line. It's also usefull to determine places where raster profile crosses vector features (i.e. where to place river marker on river walley crossection).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maris Nartiss&lt;br /&gt;
&lt;br /&gt;
==== v.random.cover ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.random.cover v.random.cover] is a shell script for creating random points constrained within an irregularly shaped vector area. (v.random places points only in current region rectangle). Optionally the user can upload raster values at the points. See also '&amp;lt;tt&amp;gt;r.random cover= vector_output=&amp;lt;/tt&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.rasterbounds ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== v.rast.stats2 ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.rast.stats2 v.rast.stats2] is an adapted version of the GRASS module v.rast.stats. It uses the grass addon [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.univar.zonal r.univar.zonal] to speed up calculation of univariate statistics from a GRASS raster map based on vector polygons.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Markus Neteler, Otto Dassau&lt;br /&gt;
&lt;br /&gt;
==== v.sample.buffer [Currently unavailable. Being re-written in python. Target for inclusion in addons svn is January 2011]====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.select.region ====&lt;br /&gt;
&lt;br /&gt;
: [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/v.select.region.tar.bz2 v.select.region] is a shell script that prints out the names of all vectors matching an input search pattern that has geometry (points, line, areas) that fall within a region bounded by an existing vector map, or within the current Grass region.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== v.selmany ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/vector/v.selmany/v.selmany v.selmany] is a shell script that allows to interactively select a set of vector objects on a given layer, then assign them attribute values in a connected database table. The script runs on the command line prompt and within a graphic monitor ; it does not work with DBF driver.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Vincent Bain&lt;br /&gt;
&lt;br /&gt;
==== v.surf.icw ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.surf.icw v.surf.icw] is an IDW interpolation method using true distance cost instead of euclidean shortest distance, i.e. ''as the fish swims around an island'' not ''as the bird flies''. This will cleanly travel around hard barriers and a cost surface map may be used to model expensive-cross barriers. Input data points do not need direct line of sight to be considered, but should be kept to less than one hundred as the module becomes very computationally expensive. A number of radial basis function options are available. ([http://grass.osgeo.org/wiki/Image:Inlets_03_SurfSal_icw_big.png screenshot])&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.surf.idwpow ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.geospatial.it/allegri/grass/v.surf.idwpow.zip v.surf.idwpow] integrates the common v.surf.idw algorithm with the exponential parameter for the distance weights&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Giovanni Allegri&lt;br /&gt;
&lt;br /&gt;
==== v.surf.krige [deprecated: use v.autokrige instead] ====&lt;br /&gt;
&lt;br /&gt;
: 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
==== v.strahler ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Florian Kindl. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler&lt;br /&gt;
&lt;br /&gt;
==== v.swathwidth ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.swathwidth v.swathwidth] creates a vector map representing the sea bottom coverage of a multibeam (swath) sonar survey.&lt;br /&gt;
: ([http://david.p.finlayson.googlepages.com/swathwidth Screenshots])&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' David Finlayson, Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.thickness ====&lt;br /&gt;
&lt;br /&gt;
: [http://marcin.slodkowski.googlepages.com/v.thickness.tgz v.thickness] creates points of thickness vectors from the vectors of strike and dip angles.The v.thickness is GUI GRASS script for v.dip.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Marcin Slodkowski&lt;br /&gt;
&lt;br /&gt;
==== v.transect.kia ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/vector/v.transect.kia v.transect.kia] calculates kilometric abundance indexes (KIA), a common indirect presence index used in wildlife monitoring along line transect surveys.&lt;br /&gt;
: Path lenghts can be corrected by draping on a DEM, different type of point objects can be weighted according to their relative importance, and paths can be  segmented using a further polygon vector (to calculate, say, abundances per elevation range or per habitat class).&lt;br /&gt;
: The module is written in bash and needs a GRASS install compiled with sqlite support.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Clara Tattoni and Damiano G. Preatoni&lt;br /&gt;
&lt;br /&gt;
==== v.trees3d ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== v.trimesh ====&lt;br /&gt;
: [http://www.valledemexico.ambitiouslemon.com/vtrimesh.html v.trimesh] creates a triangular mesh from a vector map using areal constraints for refinement. It uses Jonathan Shewchuk's Triangle library.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jaime Carrera&lt;br /&gt;
&lt;br /&gt;
==== v.what.rast.buffer ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.what.rast.buffer v.what.rast.buffer] is a script that calculates univariate statistics of raster map(s) from buffers around vector points. Results are written to a file. Resolution is taken from each input map.&lt;br /&gt;
: ''see also the [http://starspan.casil.ucdavis.edu StarSpan] software&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.variogram [deprecated: use v.autokrige instead] ====&lt;br /&gt;
&lt;br /&gt;
: 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.osgeo.org/pipermail/statsgrass/2006-October/000455.html reply].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Ivan Marchesini, Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
==== v.vect.stats ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.vect.stats v.vect.stats] counts the number of points falling into each polygon and optionally calculates statistics from numeric point attributes for each polygon. v.vect.stats is a C module and works with GRASS 6.4 and higher (see enclosed patches for 6.5 and 7.0).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
==== AniMove ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.faunalia.it/animov/ AniMove] is software for analysis of animal movement and ranging behaviour using QGIS+GRASS+R.&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' Support by Faunalia.it&lt;br /&gt;
&lt;br /&gt;
==== Utilities ====&lt;br /&gt;
&lt;br /&gt;
===== Shapemerge =====&lt;br /&gt;
&lt;br /&gt;
: [http://perrygeo.googlecode.com/svn/trunk/gis-bin/shpmerge.sh shpmerge] merges all the shapefiles in the current directory into a single output shapefile&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' Perrygeo&lt;br /&gt;
&lt;br /&gt;
=== Raster add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co &amp;lt;nowiki&amp;gt;https://svn.osgeo.org/grass/grass-addons/raster&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Raplat ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS-RaPlaT: The Radio Planning Tool for GRASS GIS system developed by support of Slovenian largest mobile operator Mobitel. It is especially designed for radio coverage calculation of GSM/UMTS systems, but can be applied also to other wireless systems in the frequency range 400 MHz – 2.4 GHz (e.g. TETRA, WiFi). Its structure is modular and characterized by high level of flexibility and adaptability. &lt;br /&gt;
&lt;br /&gt;
 * Documentation: http://commsys.ijs.si/en/component/content/article/54-software/149-user-manual&lt;br /&gt;
 * Software: http://commsys.ijs.si/en/software/grass-raplat&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Department of Communication Systems, Jozef Stefan Institue, Jamova 39, SI-1000 Ljubljana, Slovenia&lt;br /&gt;
&lt;br /&gt;
==== r.area ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.area r.area] Very simple module. Calculate area size (in cells) for every individual category in input raster map and write number of cells as the value of each cell in the area. Optionally write a binary coverage map and set a minimum area threshold. Works well with {{cmd|r.clump}}.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.basin ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.basin/ r.basin] Generates the main morphometric parameters of the basin starting from the digital elevation model and the coordinates of the basin's closing section.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Margherita Di Leo, Massimo Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.basin/&lt;br /&gt;
&lt;br /&gt;
==== r.bilateral ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.broscoe ====&lt;br /&gt;
&lt;br /&gt;
r.broscoe.sh calculates waerden test and t test statistics for some values of threshold area on a single basin, according to A.J.Broscoe theory (1959).&lt;br /&gt;
See v.strahler package&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler/&lt;br /&gt;
&lt;br /&gt;
==== r.boxcount ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mark Lake, grass6 port: Florian Kindl.&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount/&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount.sh/&lt;br /&gt;
&lt;br /&gt;
==== r.burn.frict ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.burn.frict r.burn.frict] converts vector geometries to raster cells, using a simple anti-aliasing method to close &amp;quot;gaps&amp;quot; between diagonal cells. Useful for &amp;quot;burning&amp;quot; vector geometries into a friction surface, making sure that simulated movement does not &amp;quot;slip&amp;quot; through converted cells that have only diagonal neighbours.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.burn.frict&lt;br /&gt;
&lt;br /&gt;
==== r.clump2 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.clump2 r.clump2] is a C module similar to r.clump. Differences are: diagonally adjacent cells are also clumped but can be excluded, NULL (nodata) cells are always excluded, and selective clumping with start coordinates is supported.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.clump2&lt;br /&gt;
&lt;br /&gt;
==== r.colors.out_vtk ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.out_vtk r.colors.out_vtk] is a shell script used to export the color table associated with a raster map layer to a {{wikipedia|VTK}} XML file. (see also [[Help with 3D]])&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.colors.quantiles ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.quantiles/r.colors.quantiles r.colors.quantiles] is a shell script used to create raster colors rules based on nquantiles. It uses R and spgrass6 package (RGRASS).&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== r.colors.stddev ====&lt;br /&gt;
&lt;br /&gt;
: [http://hamish.bowman.googlepages.com/grass_color_maps r.colors.stddev] ''moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== r.convergence ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.convergence r.convergence] calculate topographic convergence index, useful to detect lineamets represented by chanell/ridge system&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.cpt2grass ====&lt;br /&gt;
&lt;br /&gt;
: [http://hamish.bowman.googlepages.com/grass_color_maps r.cpt2grass] is a GRASS script for importing a [http://www.soest.hawaii.edu/gmt/ GMT] .cpt color table into GRASS. It can save to a text file suitable for r.colors or automatically apply the color table to a raster map.&amp;lt;BR&amp;gt;For a large collection of GMT .cpt files see http://sview01.wiredworkplace.net/pub/cpt-city/&lt;br /&gt;
: Other palette ideas from [http://geography.uoregon.edu/datagraphics/color_scales.htm Univ. Oregon] and [http://oceancolor.gsfc.nasa.gov/PRODUCTS/colorbars.html NASA/Goddard's OceanColor] (latter partially translated for use with GRASS on the [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.tools/palettes grass-addons SVN]).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.csr ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.csr 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 if the appropriate flag is given. Shading parameters can be modified, though useful defaults are given.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== r.cva ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ucl.ac.uk/~tcrnmar/GIS/r.cva.html r.cva] is a cumulative viewshed analysis module. It is an advanced version of the {{cmd|r.los}} program.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' [http://www.ucl.ac.uk/~tcrnmar/ Mark Lake]&lt;br /&gt;
&lt;br /&gt;
==== r.denoise ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.denoise r.denoise] denoises (smooths/despeckles) topographic data, particular DEMs derived from radar data (including SRTM), using Xianfang Sun's [http://www.cs.cf.ac.uk/meshfiltering/index_files/Page342.htm denoising algorithm].  It is designed to preserve sharp edges and to denoise with minimal changes to the original data.  See the [http://personalpages.manchester.ac.uk/staff/john.stevenson/mdenoise/r.denoise.html manual pages] for details.  Further information on Sun's denoising algorithm, including an example, is available [http://personalpages.manchester.ac.uk/staff/john.stevenson/mdenoise here].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' John Stevenson&lt;br /&gt;
&lt;br /&gt;
==== r.dominant_dir.m and r.calc_terraflow_dir.m ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.terraflow.tools dominant_dir.m and 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.diversity ====&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.diversity/ r.diversity] calculates selected diversity indices by calling various r.li commands.This script uses the [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.pielou.html Pielou], [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.renyi.html Renyi], [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.shannon.html Shannon] and [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.simpson.html Simpson] indices. The output is a map for each index. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Luca Delucchi, Duccio Rocchini&lt;br /&gt;
&lt;br /&gt;
==== r.eucdist ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.fragment ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.chrisgarstin.com/stuff/r.fragment r.fragment] fragments a raster into a user-defined set of smaller tiles according to an input number of rows and columns. &lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy r.fuzzy] Calculates membership of every cell in raster according membership function defined by user.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy.logic ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy.logic r.fuzzy.logic] Perform fuzzy operators (AND, OR, NOT, IMP) on membership's map using T-norms and T-conorms for 6 most popular families.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy.system ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy.system r.fuzzy.system] Perform full fuzzy clasificationwith 6 most popular fuzzy logic families and few methods of deffuzification.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.fuzzy.system&lt;br /&gt;
&lt;br /&gt;
==== r.game_of_life ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.game_of_life r.game_of_life] is a shell script which runs Conway's classic Game of Life using GRASS raster modules. It is meant to demonstrate how easy it is to program cellular automata in GRASS as well as various 3D raster volume and time series visualization techniques.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.gauss ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.les-ejk.cz/files/programs/grass/r.gauss.tgz r.gauss] is Gaussian and Laplacian of Gaussian filter for GRASS. It is written in C language.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.gradgrid4 ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.uibk.ac.at/geographie/personal/mergili/gradgrid4.zip gradgrid4] is a tool for interpolating values of discrete data points to a raster map, applying a local regression approach with a predictor raster. The model is based on shell and python scripts as well as an R batchfile. It was tested on Fedora Core 6 with GRASS 6.2.1 and R 2.5.1, but should work under most UNIX systems. After unzipping the gradgrid4 folder, store it at any place in your local file system. In the subfolder docs you can find a manual and a publication draft with a detailed description of the concept and the example of an application. The subfolder testloc constitutes a GRASS location with test data.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Martin Mergili&lt;br /&gt;
&lt;br /&gt;
==== r.hazard.flood ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.hazard.flood/ r.hazard.flood] is an implementation of a fast procedure to detect flood prone areas. The exposure to flooding may be delineated by adopting a topographic index (TIm) computed from a DEM. The portion of a basin exposed to flood inundation is generally characterized by a TIm higher than a given threshold, tau. The threshold is automatically determinated from the cellsize. The proposed procedure may help in the delineation of flood prone areas especially in basins with marked topography. The use of the modified topographic index should not be considered as an alternative to standard hydrological-hydraulic simulations for flood mapping, but it may represent a useful and rapid tool for a preliminary delineation of flooding areas in ungauged basins and in areas where expensive and time consuming hydrological-hydraulic simulations are not affordable or economically convenient. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Margherita Di Leo&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.hazard.flood/&lt;br /&gt;
&lt;br /&gt;
==== r.in.mb ====&lt;br /&gt;
&lt;br /&gt;
: [http://blogs.tekmap.ns.ca/archives/458 r.in.mb] is a &amp;quot;GRASS/[[MB-System]] program designed to import ''mbio'' compatible multibeam sonar data directly into the GRASS GIS. The program is a modified version of {{cmd|r.in.xyz}}. Instead of reading an ASCII XYZ file, ''r.in.mb'' reads an MB-System compatible list file.&amp;quot; It can do automatic reprojection and minor hole filling. The default is to import bathymetry data, but optionally amplitude or sidescan sonar data can be loaded instead.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Bob Covill&lt;br /&gt;
&lt;br /&gt;
==== r.in.onearth ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Soeren Gebbert&lt;br /&gt;
&lt;br /&gt;
==== r.in.swisstopo ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.in.swisstopo/ r.in.swisstopo] for importing swisstopo digital elevation model data into GRASS raster maps.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' J&amp;amp;uuml;rgen Hansmann&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.in.swisstopo/&lt;br /&gt;
&lt;br /&gt;
==== r.in.wms (.py) ====&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. Note GRASS 6.2+ provides a shell script version of r.in.wms, take care of which one is actually being run.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.inund.fluv ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.inund.fluv/ r.inund.fluv]This command allows to obtain a fluvial potentially inundation map given a high-resolution DTM of the area surrounding the river and a water surface profile calculated through an 1-D hydrodinamic model. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Roberto Marzocchi, Bianca Federici, Domenico Sguerso&lt;br /&gt;
&lt;br /&gt;
==== r.isoregions ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.isoregions/r.isoregions r.isoregions] allows isoregions creation from a GRASS raster map. &lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== r.interp.mask ====&lt;br /&gt;
&lt;br /&gt;
: [http://david.p.finlayson.googlepages.com/r.interp.mask r.interp.mask] Creates a user-specified buffer around interpolation points that can be used as a MASK to prevent or clip excessive extrapolation artifacts. This works much better than a standard convex hull around the points.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.ipso ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.ipso/ r.ipso] Produces the ipsometric and ipsographic curve related to a digital elevation model and prints the percentiles&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Margherita Di Leo, Massimo Di Stefano, Francesco Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.ipso/&lt;br /&gt;
&lt;br /&gt;
==== r.li ====&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-SVN'''''.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Claudio Porta, Davide Spano, Serena Pallecchi, [http://www.faunalia.it Faunalia]&lt;br /&gt;
&lt;br /&gt;
==== r.local_max.pl ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.mandelbrot ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/r.mandelbrot r.mandelbrot] is a shell script to calculate the Mandelbrot set.- for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== mcda====&lt;br /&gt;
&lt;br /&gt;
: mcda suite is a toolset for geographics multi-criteria decision aiding and data analysis based on ELECTRE (r.mcda.electre), REGIME (r.mcda.regime) and FUZZY (r.mcda.fuzzy) algorithm. The module r.roughset is also included  for geographics rough set analisys and knowledge discovery based on rough set library. It is written in C language for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/&lt;br /&gt;
&lt;br /&gt;
==== r.mlv ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== r.obstruction, r.planning.static, r.planning.cinematic ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ing.unitn.it/~grass/software.html r.obstruction, r.planning.static, r.planning.cinematic]: r.obstruction creates a polar obstruction map from a DTM. r.planning.static performs a static planning for GPS and Glonass surveys using the obstruction map created with r.obstruction. r.planning.cinematic performs a cinematic planning for GPS and Glonass surveys. (University of Trento, Faculty of Engineering)&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniele Carli, Dimitri D'Inca', Gianluca Fruet, Domenico Sguerso, Paolo Zatelli&lt;br /&gt;
&lt;br /&gt;
==== r.out.jpeg ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.geospatial.it/allegri/grass/r.out.jpeg_ r.out.jpeg] is a simple GRASS script to export georeferenced JPEG images from rasters, keeping the associated color table. It is a two-step export: first a ppm file is created, then it is converted to jpeg usgin the &amp;quot;convert&amp;quot; command from ImageMagick&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Giovanni Allegri&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmap ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.gmap r.out.gmap] outputs GRASS raster map into set of image tiles&lt;br /&gt;
following the tiling scheme of Google Maps and Microsoft Virtual Earth.&amp;lt;BR&amp;gt;Read more in the OSGeo Journal [http://www.osgeo.org/journal Volume 5 (2009, to appear)]&amp;lt;BR&amp;gt;see also [[#r.out.kml|r.out.kml]] and [[#v.out.kml|v.out.kml]]&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Tomas Cebecauer&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmt ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/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&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmt2 ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.gmt2 r.out.gmt2] 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== r.out.kap_template ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.kap_template r.out.kap_template] is a shell script that exports a raster map into a GeoTiff and a metadata text file suitable for use with KAP (BSB) raster nautical chart converter programs such as &amp;lt;tt&amp;gt;tif2bsb&amp;lt;/tt&amp;gt; (after verifying that you are legally entitled to use such a tool).&lt;br /&gt;
: '''''This is EXPERIMENTAL software. NOT FOR NAVIGATIONAL USE.'''''&lt;br /&gt;
: For an easy to use data viewer, see also the [http://www.opencpn.org OpenCPN] free navigational software.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.out.kml ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.kml r.out.kml] is a shell script that exports a raster map into a KML file and image for Google Earth or Worldwind. See also [[#v.out.kml|v.out.kml]] and [[#r.out.gmap|r.out.gmap]].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.pack ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack r.pack] and [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.unpack r.unpack] are two GRASS scripts for transferring raster maps to another computer as a single compressed file including color table etc.&lt;br /&gt;
: An earlier version has been renamed as [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack/experiment r.pack.mat] and [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.unpack/experiment r.unpack.mat].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.pi ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.pi/ r.pi] (raster patch index) provides various functions to analyse spatial attributes of a landscape. It has a focus on patch-based indices but delivers class-based indices as well. r.le and its successor r.li provide landscape indices.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Programming: Elshad Shirinov, Scientific concept: Dr. Martin Wegmann&lt;br /&gt;
&lt;br /&gt;
==== r.prominence ====&lt;br /&gt;
&lt;br /&gt;
: '''r.prominence''' calculates the average difference between a central cell and its neighbors. It approximated the terrain 'ruggedness' by looking at average differences in elevation within a given neighborhood.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.prominence/&lt;br /&gt;
&lt;br /&gt;
==== r.refine ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.bowdoin.edu/~ltoma/research.html r.refine]: reduces a DEM to a TIN (takes as input a grid DEM and an error margin and simplifies it to the desired accuracy into a TIN)&lt;br /&gt;
Available via the source code repository [https://github.com/jonrtodd/r.refine]&lt;br /&gt;
: '''Authors:''' Laura Toma and Jonathan Todd&lt;br /&gt;
&lt;br /&gt;
==== r.rifs ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ucl.ac.uk/~tcrnmar/ r.rifs]: r.rifs generates a raster map and/or image of a fractal by means of the specified random iterated function system.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mark Lake&lt;br /&gt;
&lt;br /&gt;
==== r.roughness ====&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.sh r.roughness.sh] 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;
&lt;br /&gt;
[http://www.igc.usp.br/pessoais/guano/downloads/r.roughness60 r.roughness60] - for GRASS versions 6.0.X&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.area r.roughness.window.area] - calculate surface roughness as the ratio of real (surface) area and planar area, using a moving-window approach.&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.vector r.roughness.window.vector] - calculate surface roughness as vector dispersion, using a moving-window approach. Resulting maps are: Vector Strength (R) and Inverted Fisher's k parameter. &lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.vector.html r.roughness.window.vector.html] - provisional help page for r.roughness.window.vector.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.roughness/&lt;br /&gt;
&lt;br /&gt;
==== r.roughset ====&lt;br /&gt;
&lt;br /&gt;
: r.roughset is a module for geographics rough set analisys and knowledge discovery based on rough set library. It is written in C language for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/r.roughset/&lt;br /&gt;
&lt;br /&gt;
==== r.seg ====&lt;br /&gt;
&lt;br /&gt;
: '''r.seg''' performs image segmentation and discontinuity detection (based on the Mumford-Shah variational model).&lt;br /&gt;
: The module generates a piece-wise smooth approximation of the input raster map and a raster map of the discontinuities of the output approximation. The discontinuities of the output approximation are preserved from being smoothed. &lt;br /&gt;
: See [http://www.ing.unitn.it/~vittia/sw here] for details and examples.&lt;br /&gt;
&lt;br /&gt;
Available [http://www.ing.unitn.it/~vittia/sw here] and with improvements via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.seg/&lt;br /&gt;
&lt;br /&gt;
: '''Author''' Alfonso Vitti&lt;br /&gt;
&lt;br /&gt;
==== r.smoothpatch ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.soils.texture ====&lt;br /&gt;
&lt;br /&gt;
: r.soils.texture is a module to define soils texture from sand and clay raster file with a schema text file (now FAO,USDA and ISSS are available). It is written in C language. - for GRASS versions 6.x - For bugs and suggest: g_massa@libero.it &lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Gianluca Massei&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.soils.texture/&lt;br /&gt;
&lt;br /&gt;
==== r.stack ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stack r.stack] is a shell script used to patch all the raster maps in a time series (or burst 3D raster) together into a vertical stack, to aid mutli-map analyses in modules where group input is not yet available.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.stream.angle ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.angle r.stream.angle] Divide stream network into stright line segments according users input. It extends  Module uses as input direction and stream netwokr map produced by r.watershed and stream.extract  or custom user input. See description for details.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.angle&lt;br /&gt;
&lt;br /&gt;
==== r.stream.basins ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.basins r.stream.basins] delineate basins according users input. It extends r.water.outlet funcionality to extracting more than one basin at one step. Module uses as input direction map produced  stream network produced by r.stream.extract, r.watershed, r.stream order or custom user input. More in tutorial on grass-wiki pages.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.basins&lt;br /&gt;
&lt;br /&gt;
==== r.stream.del ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.del r.stream.del] Calculates downslope length of first order streams and delete them if it length (in pixels) is lower than the treeshold. It also join false segments left by deletion into one with category of upper. It uses r.watershed direction map and r.watershed  stream map as input. The module is added only for r.watershed module, r.stream.extract has deleting short streams build-in. During development of r.stream.* it will be probably abandoned due to duplicate functionality&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.del&lt;br /&gt;
&lt;br /&gt;
==== r.stream.distance ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.distance r.stream.distance] Calculates downslope distance and downslope elevation difference between current cell and stream or outlet cells. It uses r.watershed direction map, r.watershed or r.stream.extract stream map and optionally DEM as input.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.distance&lt;br /&gt;
&lt;br /&gt;
==== r.stream.extract ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.extract r.stream.extract] extracts topologically clean stream networks from input elevation and optionally accumulation maps. Output is available as raster and vector and can be used as input for the other r.stream.* modules by Jarek Jasiewicz. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.extract&lt;br /&gt;
&lt;br /&gt;
==== r.stream.order ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.order r.stream.order] orders stream network outputed by r.watershed or r.stream.extract according Sthrahler, Shreve, Horton and Hack ordering systems. It require as input stream and direction map and optionally accumulation map. It handle both SFD nad MFD modes but all data must come from the same procedure.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz, Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.order&lt;br /&gt;
&lt;br /&gt;
==== r.stream.pos ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.pos r.stream.pos] Helper module for calculating local stream network properties and linear geostatistics. Mostly To use with R and other grass modules. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.pos&lt;br /&gt;
&lt;br /&gt;
==== r.stream.stats ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.stats r.stream.stats] calculate Hortonian statistics for Stahler or Horton stream network created by r.stream.order. It uses r.watershed direction map, DEM and r.stream.order's Stahler or Horton stream network as input. It outputs calculated statistics to standard output.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.stats&lt;br /&gt;
&lt;br /&gt;
==== r.surf.nnbathy ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html r.surf.nnbathy] interpolates a surface from a raster input using Pavel Sakov's [http://code.google.com/p/nn-c/ nn] natural neighbor interpolation library. Provides triangulation, Sibson natural neighbor interpolation and non-Sibsonian interpolation.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== r.surf.volcano ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.surf.volcano r.surf.volcano] creates an artificial surface resembling a seamount or cone volcano. The user can alter the size and shape of the mountain and optionally roughen its surface. Available decay functions are  polynomial, Gaussian, Lorentzian, logarithmic, and exponential.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.terracost ====&lt;br /&gt;
&lt;br /&gt;
[http://www.bowdoin.edu/~ltoma/research.html r.terracost] Scalable approach for computing least-cost-path surfaces on massive grid terrains.&amp;lt;BR&amp;gt;'''Lead author''': Laura Toma&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/raster/r.terracost&lt;br /&gt;
&lt;br /&gt;
==== r.tileset ====&lt;br /&gt;
&lt;br /&gt;
: ''{{cmd|r.tileset}} moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== r.traveltime ====&lt;br /&gt;
&lt;br /&gt;
: [http://jesbergwetter.twoday.net/stories/4845555/ r.traveltime] computes the travel time of surface runoff to an outlet. The program starts at the basin outlet and calculates the travel time at each raster cell recursively. A drainage area related threhold considers even  surface and also channel runoff. Travel times are derived by assuming kinematic wave approximation. The results can be used to derive a time-area function. This might be usefull for precipitation-runoff calculations (estimation of flood predictions) with a lumped hydrologic model (user-specified unit hydrograph).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Kristian Förster&lt;br /&gt;
&lt;br /&gt;
==== r.univar.zonal ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.univar.zonal r.univar.zonal] is similar to r.univar, but calculates statistics separately for each category(zone) present in the separate input map used to define zones (zonal statistics). The output can be like the one of r.univar or in easier to read table format and can be written to a file. This addon is only needed for GRASS 6.4, its functionality has been added to r.univar in 6.5 and 7.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.univar.zonal&lt;br /&gt;
&lt;br /&gt;
==== r.viewshed ====&lt;br /&gt;
&lt;br /&gt;
: r.viewshed is a module for extremely fast line of sight analysis (replaces the slow r.los). It is written in C language for GRASS versions 6.X/7.x.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Laura Toma, USA&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.viewshed&lt;br /&gt;
&lt;br /&gt;
Once {{trac|390}} is solved, it will substitute r.los.&lt;br /&gt;
&lt;br /&gt;
==== r.wavelets ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ing.unitn.it/~grass/software.html r.wavelets]: This package contains wavelets decomposition and reconstruction modules for the GRASS GIS: r.owave.dec computes the orthogonal wavelet transform of a raster map. r.owave.rec reconstructs a raster map from an orthogonal wavelet transform. r.biowave.dec computes the biorthogonal wavelet transform of a raster map. r.biowave.rec reconstructs a raster map from a biorthogonal wavelet transform.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Members of the University of Trento, Faculty of Engineering&lt;br /&gt;
&lt;br /&gt;
==== r.wf ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.wf/ r.wf] produces the Width Function of a basin. The Width Function W(x) gives the number of the cells in a basin at a flow distance x from the outlet (it is also referred as distance-area function). The distance is not the euclidean one, but it is measured along the flowpath towards the outlet.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Margherita Di Leo, Massimo Di Stefano, Francesco Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.wf/&lt;br /&gt;
&lt;br /&gt;
==== r.xtent ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.xtent r.xtent] computes a raster map layer representing the Voronoi diagram, weighted Voronoi diagram or a more complex territorial partitioning of space around points (centers) in a vector input map, based on the XTENT formula.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.xtent&lt;br /&gt;
&lt;br /&gt;
==== r.zc.pl ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== GIPE ====&lt;br /&gt;
&lt;br /&gt;
: The GRASS Image Processing Environment (GIPE) has USLE, Energy-balance and radiance-reflectance correction models.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Yann Chemin (unless specified otherwise).&lt;br /&gt;
   &lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/imagery/gipe&lt;br /&gt;
&lt;br /&gt;
Remark: This is progressively moved to main GRASS SVN (aka GRASS 7)&lt;br /&gt;
&lt;br /&gt;
:* r.hydro.CASC2D, ported from GRASS 5.x version, is temporarily here waiting to return to main GRASS.&lt;br /&gt;
&lt;br /&gt;
:* r.soiltex2prop creates porosity, Saturated Hydraulic conductivity (Ksat) and wetting front pressure head (Hf) from percentage of sand and clay after Rawls et al., 1990. This is a must for r.hydro.CASC2D.&lt;br /&gt;
&lt;br /&gt;
:* i.biomass creates biomass growth map from fPAR, lightuse efficiency, water availability (or evap.fraction), Lat, doy and tsw.&lt;br /&gt;
&lt;br /&gt;
:* i.dn2ref.l7, r.dn2ref.ast create top of atmosphere reflectance for Landsat 7ETM+ and ASTER. These modules also have a flag for radiance output. Updated i.dn2ref.l7 to read .met calibration file.  &lt;br /&gt;
&lt;br /&gt;
:* i.dn2full.l[5,7] is an attempt to get all bands of Landsat[5,7] calibrated and corrected to either reflectance or temperature, reads only the .met file.  &lt;br /&gt;
&lt;br /&gt;
:* i.dn2potrad.l[5,7] is an attempt to get ET potential from DN of Landsat 7 (Careful! No Atmospheric correction!).  &lt;br /&gt;
&lt;br /&gt;
:* i.eb.* are a set of 10+ 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. &lt;br /&gt;
&lt;br /&gt;
:* i.evapo.potrad creates 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 i.eb.eta. &lt;br /&gt;
&lt;br /&gt;
:* i.evapo.SENAY creates actual evapotranspiration following the regional method of Senay (2007). &lt;br /&gt;
&lt;br /&gt;
:* i.lmf creates a Local Maximum Fitting on the temporal dimension of the multi-date input dataset, working, but more precision still to be added.&lt;br /&gt;
&lt;br /&gt;
:* i.vi.mpi is the mpi version of i.vi for cluster GRASS GIS education (no speed up here!) '''Author:''' Shamim Akhter &lt;br /&gt;
&lt;br /&gt;
:* i.modis.stateqa extracts State Quality Assessment information from Modis 500m (MOD09A) products.&lt;br /&gt;
&lt;br /&gt;
:* i.water creates a Water Mask from NDVI and Albedo, or specifically for Modis: NDVI and Band 7.&lt;br /&gt;
&lt;br /&gt;
:* i.wi creates a given Water Index (only one so far).&lt;br /&gt;
&lt;br /&gt;
==== HydroFOSS ====&lt;br /&gt;
&lt;br /&gt;
: HydroFOSS - a GIS embedded approach for Free &amp;amp; Open Source Hydrological modeling.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Massimiliano Cannata&lt;br /&gt;
 &lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/HydroFOSS/&lt;br /&gt;
&lt;br /&gt;
==== Hikereport ====&lt;br /&gt;
&lt;br /&gt;
: python script that computes length, cumulative uphill and downhill, average slopes on an interactively drawn path. Based on r.profile's output.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Negri&lt;br /&gt;
&lt;br /&gt;
 http://tracce.wordpress.com/?attachment_id=71&lt;br /&gt;
&lt;br /&gt;
=== Misc add-ons===&lt;br /&gt;
&lt;br /&gt;
==== m.eigensystem ====&lt;br /&gt;
&lt;br /&gt;
m.eigensystem - Computes eigen values and eigen vectors for square matrices.&lt;br /&gt;
&lt;br /&gt;
: http://svn.osgeo.org/grass/grass-addons/misc/m.eigensystem/&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Michael Shapiro&lt;br /&gt;
&lt;br /&gt;
===Database add-ons===&lt;br /&gt;
==== db.join ====&lt;br /&gt;
&lt;br /&gt;
: Table joining: join one table into another through common attributes&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/database/db.join/&lt;br /&gt;
or&lt;br /&gt;
   g.extension db.join&lt;br /&gt;
&lt;br /&gt;
===General add-ons===&lt;br /&gt;
&lt;br /&gt;
==== GRASS create location scripts ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/grass_create_location grass_create_location.sh] Script to generate a new GRASS location from GIS file (e.g. geoTIFF or SHAPE), wktfile or EPSG code.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler&lt;br /&gt;
&lt;br /&gt;
==== g.laptop.sh ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.gbd-consult.de/dassau/grass/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Otto Dassau&lt;br /&gt;
&lt;br /&gt;
==== Readline completion ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alexandre Sorokine (grass-complete), Daniel Calvelo (grass_rlcompleter.sh)&lt;br /&gt;
&lt;br /&gt;
==== g.region.point ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.region.point g.region.point] is a shell script which resets the computational region to a square box around a given coordinate. It is intended for use within GRASS scripts to speed up processing by limiting expensive raster calculations to a small area of interest.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== g.linke_by_day ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.sun.tools/ g.linke_by_day] is a python script for [[r.sun]] which interpolates a Linke turbidity value for a given day of the year based on monthly values edited into the script.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== g.xlist ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.xlist g.xlist] is a C implementation of g.mlist. g.xlist searches for data files matching a pattern given by wildcards or POSIX Extended Regular Expressions. POSIX regex(3) functions are required.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== g.xremove ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.xremove g.xremove] is a C implementation of g.mremove. g.xremove removes data files matching a pattern given by wildcards or POSIX Extended Regular Expressions. POSIX regex(3) functions are required.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
=== Imagery add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/imagery&lt;br /&gt;
&lt;br /&gt;
==== GIPE ====&lt;br /&gt;
&lt;br /&gt;
GIPE (see also above in raster section) provides:&lt;br /&gt;
i.biomass, i.dn2potrad.l5, i.dn2potrad.l7, i.dn2ref.ast, i.eb.deltat, i.eb.disp, i.eb.eta, i.eb.evapfr, i.eb.g0, i.eb.h0, i.eb.h_SEBAL01, i.eb.h_SEBAL95, i.eb.h_iter, i.eb.molength, i.eb.netrad, i.eb.psi, i.eb.rah, i.eb.rohair, i.eb.ublend, i.eb.ustar, i.eb.wetdrypix, i.eb.z0m, i.eb.z0m0, i.evapo.PT, i.evapo.TSA, i.evapo.potrad, i.evapo.senay, i.evapo.time_integration, i.lmf, i.modis.stateqa, i.sattime, i.vi.grid, i.vi.mpi, i.water, i.wi&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/gipe/&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
==== i.homography ====&lt;br /&gt;
&lt;br /&gt;
Rectifies an image by computing a coordinate transformation for each pixel in the image based on the control points created by i.linespoints. The approach uses homography extended for corresponding lines.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.homography&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniel Grasso, Bolzano, Italy, based on code written by Stefano Merler, ITC-irst, Italy&lt;br /&gt;
&lt;br /&gt;
==== i.linespoints ====&lt;br /&gt;
&lt;br /&gt;
An imagery command that enables the user to mark coordinate system points as well as lines on an image to be rectified and then input the coordinates of each point for creation of a coordinate transformation matrix. The transformation matrix is needed as input for the GRASS program i.homography.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.linespoints&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniel Grasso, Bolzano, Italy, based on i.points&lt;br /&gt;
&lt;br /&gt;
==== i.landsat.toar ====&lt;br /&gt;
&lt;br /&gt;
Transform calibrated digital number of Landsat products to top-of-atmosphere radiance or top-of-atmosphere reflectance and temperature (band 6 of the sensors TM and ETM+). Optionally, used to calculate the at-surface radiance or reflectance with atmospheric correction (DOS method).&lt;br /&gt;
&lt;br /&gt;
Available also in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.landsat.toar&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.landsat.acca ====&lt;br /&gt;
&lt;br /&gt;
Implements the Automated Cloud-Cover Assessment (ACCA) Algorithm from Irish (2000) with the constant values for pass filter one from Irish et al. (2006). To do this, it needs Landsat band numbers 2, 3, 4, 5, and 6 (or band 61 for Landsat-7 ETM+) which have already been processed from DN into reflectance and band-6 temperature with i.landsat.toar). &lt;br /&gt;
&lt;br /&gt;
Available also in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.landsat.acca&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.points.auto ====&lt;br /&gt;
&lt;br /&gt;
This module allows a search of GCP's on two raster-maps with differents levels of automation. The ''manual'' search is the default search, so it's possible to determine the GCP's manually with the mouse (like {{cmd|i.points}}). ''Semiautomated'' search: The user determines with the mouse some correspondent areas (with a discrete precision) in the two maps and the module searches itself the GCP's in these areas. ''Automated'' search: At the start of module the user has to load the maps that the algorithm uses to the search, so it is recommended to use the maps filtered with the filters DIVERSITY or STDDEV (of GRASS) with a window of 3x3 or 5x5 pixels. However, the algorithm sometimes works well with the original maps too.&lt;br /&gt;
&lt;br /&gt;
Note: This code is basically an improved i.points (from 2004). Subsequent changes in i.points haven's been ported here yet.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.points.auto&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' based on i.points; additions by Ivan Michelazzi, Luca Miori (MSc theses at ITC-irst); Supervisors: Markus Neteler, Stefano Merler, ITC-irst 2003, 2004. [http://gisws.media.osaka-cu.ac.jp/grass04/viewpaper.php?id=37 PDF article]&lt;br /&gt;
&lt;br /&gt;
==== i.points.reproj ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/imagery/i.points.reproj i.points.reproj] is a shell script that will use cs2cs to reproject the target coordinates of a group's POINTS file. By running i.rectify directly to the new target projection, a generation of resampling data loss can be avoided (versus i.rectify + r.proj). On the other hand, i.rectify does not calculate cell resolution well if the map is to be rotated ([http://intevation.de/rt/webrt?serial_num=3296 bug #3296]), in those cases i.rectify+r.proj may be the better option.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== i.plr.py ====&lt;br /&gt;
&lt;br /&gt;
: [[I.plr.py|Probabilistic Label Relaxation]], written in Python&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Georg Kaspar&lt;br /&gt;
&lt;br /&gt;
==== i.pr ====&lt;br /&gt;
&lt;br /&gt;
: Image classification: implements k-NN (multiclass), classification trees (multiclass), maximum likelihood (multiclass), Support Vector Machines (binary), bagging versions of all the base classifiers, AdaBoost for binary trees and support vector machines. It allows feature manipulation (normalization, principal components,...). It also implements feature selection techniques (RFE, E-RFE,...), statistical tests on variables, tools for resampling (cross-validation and bootstrap) and cost-sensitive techniques for trees and support vector machines.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Merler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.pr&lt;br /&gt;
&lt;br /&gt;
==== i.spec.sam ====&lt;br /&gt;
&lt;br /&gt;
: Spectral Angle mapping&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.sam/&lt;br /&gt;
&lt;br /&gt;
==== i.spec.unmix ====&lt;br /&gt;
&lt;br /&gt;
: Spectral unmixing&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.unmix/&lt;br /&gt;
&lt;br /&gt;
==== i.topo.corr ====&lt;br /&gt;
: i.topo.corr is used to topographically correct reflectance from imagery files, e.g. obtained with i.landsat.toar (see above), using a sun illumination terrain model. This illumination model represents the cosine of the incident angle, i.e. the  angle between the normal to the ground and the sun rays. It can be obtained with {{cmd|r.sun}} (parameter incidout), and then calculating its cosine with float precision. Correction methods: cosine, minnaert, percent, c-factor.&lt;br /&gt;
&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.topo.corr&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.warp ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/imagery/i.warp i.warp] 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
=== Display add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== d.barb ====&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/display/d.barb d.barb] is a C module that will draw wind barbs, straw plots, and arrow plots from raster array or sparse vector point data. It can use either direction + magnitude, or u + v components as the input, and can produce a legend key. (''work in progress, but it's mostly there'')&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.edit.rast ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.edit.rast d.edit.rast] edits cells in an existing raster map displayed on the current monitor.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== d.frame.quarter ====&lt;br /&gt;
&lt;br /&gt;
: ('''obsolete''') [http://trac.osgeo.org/grass/browser/grass-addons/display/d.frame.split d.frame.quarter] is a shell script that will split the display into four quadrants (or sixths) using ''d.frame''. Individual frames are named ''uno, dos, tres, cuatro'', and ''full_screen''.&lt;br /&gt;
: Replaced by {{cmd|d.split.frame}} in main.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.frame.split ====&lt;br /&gt;
&lt;br /&gt;
: ''d.frame.split moved into main archive as {{cmd|d.split.frame}}''&lt;br /&gt;
&lt;br /&gt;
==== d.frontline ====&lt;br /&gt;
&lt;br /&gt;
: [http://cloud.github.com/downloads/amuriy/GRASS-scripts/d.frontline d.frontline] is a shell script that draws frontlines on the graphics monitor using ''d.graph'' module and different types of symbols. Also it optionally saves frontline graphics to ''d.graph'' commands file and/or ''ps.map'' file (for later use with the &amp;quot;read&amp;quot; ''ps.map'' instruction)   &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alexander Muriy&lt;br /&gt;
&lt;br /&gt;
==== d.hyperlink ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author: '''Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== d.mark ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.mark] is a shell script that quickly displays a marker on the display at a given coordinate.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
==== d.region.box ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.region.box d.region.box] is a shell script that quickly displays a box around the current region.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.stations ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts   d.stations] is a shell script that quickly displays vector points (or sites for GRASS 5.4 and below).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
==== d.varea ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.varea] is a shell script that quickly displays vector areas.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== pd-GRASS ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ornl.gov/sci/gist/software/grass/ pd-GRASS]: Parallel Display for GRASS GIS&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alex Sorokine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[IconSymbols]] ====&lt;br /&gt;
&lt;br /&gt;
* [[IconSymbols|Symbols]] which can be used with ''d.vect, d.graph'', and ''ps.map''.&lt;br /&gt;
&lt;br /&gt;
=== Postscript add-ons ===&lt;br /&gt;
&lt;br /&gt;
* ''See also [[ps.map scripts|ps.map samples and templates]]''.&lt;br /&gt;
&lt;br /&gt;
==== ps.atlas ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== ps.output ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/postscript/ps.output ps.output] is much like {{cmd|ps.map}} but with advanced decorations and ability for translucency. Here you can find a [[Ps.output|tutorial]].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== [[AreaFillPatterns]] ====&lt;br /&gt;
&lt;br /&gt;
* Hatches for ps.map's vareas&lt;br /&gt;
&lt;br /&gt;
=== wxGUI add-ons ===&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;
* See wiki [[GRASS and MapServer]] page&lt;br /&gt;
&lt;br /&gt;
==GRASS 5.x (old)==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.osgeo.org/download/addons.php&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.osgeo.org/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;
* [http://www.bowdoin.edu/~ltoma/research.html r.terracost] Scalable approach for computing least-cost-path surfaces on massive grid terrains. For GRASS 5.3.&amp;lt;BR&amp;gt;'''Lead author''': Laura Toma&lt;br /&gt;
:Newer version available via SVN:&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/raster/r.terracost&lt;br /&gt;
&lt;br /&gt;
==GRASS 4.x (very old)==&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* MAGICAL Software: The MAGICAL software comprises a suite of three programs that provide a multi-agent simulation extension for the GRASS GIS software. http://www.ucl.ac.uk/~tcrnmar/simulation/magical/magical.html&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>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=13776</id>
		<title>AddOns</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=AddOns&amp;diff=13776"/>
		<updated>2011-07-01T06:09:46Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* v.lda.py */&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.osgeo.org/download/ here]).&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== AddOns source code repository ==&lt;br /&gt;
&lt;br /&gt;
The AddOns source code is hosted in [http://svn.osgeo.org/grass/grass-addons/ GRASS-AddOns SVN repository].&lt;br /&gt;
&lt;br /&gt;
To checkout:&lt;br /&gt;
&lt;br /&gt;
 svn checkout &amp;lt;nowiki&amp;gt;https://svn.osgeo.org/grass/grass-addons/&amp;lt;/nowiki&amp;gt; grass-addons&lt;br /&gt;
&lt;br /&gt;
Please read [http://trac.osgeo.org/grass/wiki/HowToContribute#WriteaccesstotheGRASS-Addons-SVNrepository How to get write access to the GRASS-Addons-SVN repository] and contact the [http://lists.osgeo.org/mailman/listinfo/grass-dev grass-dev] mailing list if you would like to host your module there.&lt;br /&gt;
&lt;br /&gt;
== Building and installing Addons ==&lt;br /&gt;
&lt;br /&gt;
See the [[Compile and Install#Addons|compile and install]] wiki page.&lt;br /&gt;
&lt;br /&gt;
In GRASS 6.4 and newer you can use the {{cmd|g.extension}} module, e.g. to install &amp;lt;tt&amp;gt;r.fuzzy.system&amp;lt;/tt&amp;gt; run:&lt;br /&gt;
&lt;br /&gt;
 g.extension extension=r.fuzzy.system&lt;br /&gt;
&lt;br /&gt;
To remove installed Addons run&lt;br /&gt;
&lt;br /&gt;
 g.extension extension=r.fuzzy.system operation=remove&lt;br /&gt;
&lt;br /&gt;
== Adding something new ==&lt;br /&gt;
&lt;br /&gt;
Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work. Also please consider adding your module to one of the [[Applications]] pages.&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;
=== Coding standards ===&lt;br /&gt;
&lt;br /&gt;
Please have a look at our [http://grass.osgeo.org/grass63/source/SUBMITTING_SCRIPTS Shell script coding standards] before submitting here.&lt;br /&gt;
&lt;br /&gt;
There are other coding standards given for modules written in C, Tcl/Tk, and Python''(?)'' located in the GRASS source code.&lt;br /&gt;
&lt;br /&gt;
=== Documenting your code ===&lt;br /&gt;
&lt;br /&gt;
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the &amp;lt;tt&amp;gt;--html-description&amp;lt;/tt&amp;gt; command line option. Please, see also the [http://grass.ibiblio.org/grass63/manuals/html63_user/g.parser.html g.parser help page]&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous Add-ons ==&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/browser/grass-addons/misc/utm_which_zone utm_which_zone.sh] is a shell script to determine UTM zone from Lat/Lon input. Requires [http://www.octave.org Octave] or Matlab 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 6.x (current)==&lt;br /&gt;
&lt;br /&gt;
=== Vector add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector&lt;br /&gt;
&lt;br /&gt;
==== v.adehabitat.clusthr, v.adehabitat.kernelUD, v.adehabitat.mcp ====&lt;br /&gt;
&lt;br /&gt;
: Tools to calculate home ranges of animals&lt;br /&gt;
: '''Author:''' Clement Calenge&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/adehabitat&lt;br /&gt;
&lt;br /&gt;
==== v.append ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Michael Barton&lt;br /&gt;
&lt;br /&gt;
==== v.autokrige ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.autokrige/v.autokrige.py v.autokrige] achieves automatic ordinary kriging from GRASS sites (vector point data), using R with spgrass6 (RGRASS) and automap packages.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.breach ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.breach] creates vector maps of lines and points of continously lowering elevation down the input watercourses, based on the input raster DEM.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.colors ====&lt;br /&gt;
&lt;br /&gt;
: {{cmd|v.colors}} ''moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== v.count.points.sh ====&lt;br /&gt;
&lt;br /&gt;
: [http://wiki.iosa.it/dokuwiki/spatial_analysis:feature_count v.count.points.sh] counts point features in areas, generates table good as input to d.vect.chart.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Costa&lt;br /&gt;
&lt;br /&gt;
==== v.digatt ====&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].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Andreas Philipp&lt;br /&gt;
&lt;br /&gt;
==== v.dip ====&lt;br /&gt;
&lt;br /&gt;
: [http://marcin.slodkowski.googlepages.com/v.dip.tgz v.dip] creates points of thickness vectors from the vectors of strike and dip angles. The v.dip is the main ANSI C core program. Program so-called v.dip can run without GRASS environment.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Marcin Slodkowski&lt;br /&gt;
&lt;br /&gt;
==== v.flip ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.flip] flips the direction of selected vector lines (redundant since GRASS 6.3 - there is &amp;quot;v.edit tool=flip&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.group ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Cedric Shock&lt;br /&gt;
&lt;br /&gt;
==== v.in.redwg ====&lt;br /&gt;
&lt;br /&gt;
: v.in.redwg imports DWG files into GRASS.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Rodrigo Rodrigues da Silva&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.redwg&lt;br /&gt;
&lt;br /&gt;
==== v.in.gama ====&lt;br /&gt;
&lt;br /&gt;
: Converts [http://www.gnu.org/software/gama/ GNU GaMa] XML output file to a GRASS vector map layer.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Martin Landa&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.gama&lt;br /&gt;
&lt;br /&gt;
==== v.in.geodesic ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.geodesic v.in.geodesic] is a shell script which will create a new vector map containing a great circle line. The user may either define a beginning and end coordinate, or define a starting coordinate along with initial azimuth and desired line length.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.geoplot ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.geoplot v.in.geoplot] converts a [http://www.geoscan-research.co.uk/page9.html/ Geoplot] ASCII export file to a GRASS vector map layer.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.in.geoplot&lt;br /&gt;
&lt;br /&gt;
==== v.in.gshhs ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.gshhs v.in.gshhs] imports [http://www.soest.hawaii.edu/pwessel/gshhs/index.html GSHHS] shorelines into a GRASS vector map. GSHHS data are automatically reprojected to the current location.&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' several, updated to GRASS 6 by Markus Metz&lt;br /&gt;
&lt;br /&gt;
==== v.in.marxan ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.marxan v.in.marxan] is a python script that imports Marxan output data for display in a vector grid file prepared using v.out.marxan. &lt;br /&gt;
: ''see also the [http://www.uq.edu.au/marxan/ Marxan] &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.in.mbsys_fnv ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.mbsys_fnv v.in.mbsys_fnv] imports [[MB-System]] navigation files into a GRASS vector map. You can choose from swath area coverage, track lines (including outer port/starboard edges), all bounds as points, etc. An attribute database is created containing the vital statistics of the specified feature such as track length or swath coverage (geodesic), start stop time and location, pitch, roll, heave, etc. See also the [[#v.in.p190]] addon.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.ncdc ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.ncdc v.in.ncdc] imports an [http://www.ncdc.noaa.gov NCDC] stn file (station data) into a GRASS vector map.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== v.in.postgis ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.postgis/v.in.postgis.py v.in.postgis] Create a GRASS layer from any sql query on PostGIS data.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.in.osm ====&lt;br /&gt;
&lt;br /&gt;
: [http://kripton.kripserver.net/software/v.in.osm/ v.in.osm]: OpenStreetMap import into GRASS. Yet only supports deprecated API 0.4, will be modified to work with API 0.5 some time soon.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jannis Achstetter&lt;br /&gt;
&lt;br /&gt;
: See also [http://hamish.bowman.googlepages.com/gpsdrivefiles#osm osm2grass.sh] by H Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.osm2 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.osm2 v.in.osm2]: OpenStreetMap import into GRASS. Supports current API 0.6, downloads using the [http://wiki.openstreetmap.org/wiki/Xapi Xapi] interface and imports using GpsBabel 1.3.5 or newer. GpsBabel restricts to either nodes or ways being imported at a time, not both. Use {{cmd|v.patch}} to rejoin them. (''work in progress'')&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.in.ovl ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/v.in.ovl/ v.in.ovl] is a shell script that imports an ASCII vector file created with TOP10|25|50 or similar products.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== v.in.p190 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.p190 v.in.p190] is a shell script that imports 'Centre of Source' &amp;quot;S&amp;quot; navigation data from seismic P1/90 (UKOOA) data files and writes it either GRASS vector points or vector lines format. Optionally it will export the navigation data into .csv text files as well. ''Currently in the functional prototype stage, some assembly is required. See inside the shell script for details.'' For working with SEG-Y data, see also the [[#v.in.mbsys_fnv]] addon.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.krige ====&lt;br /&gt;
&lt;br /&gt;
: [[V.krige_GSoC_2009 | v.krige]] aims to integrate R functions for kriging (packages automap, gstat, geoR) in a trasparent way. '''Moved into trunk/devbr6 code (r40048)'''&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Anne Ghisla, as Google Summer of Code 2009 project&lt;br /&gt;
&lt;br /&gt;
: See also [[GRASS_AddOns#v.autokrige]] by Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== v.lda.py ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.lda.py v.lda.py] is a Python script for calculating Ian Johnson's (U. Sidney) Local Density Analysis values. This can be used in two ways. When only one vector points file is entered, it serves to measure clustering of point data at different neighborhood radii. When two different point files are entered, it measures the the co-occurence of the points from the two files. There is an option to export the data into a cvs format file for easy plotting in a spreadsheet or statistical program like R.&lt;br /&gt;
&lt;br /&gt;
==== v.line.center ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html v.line.center] creates a points vector map with each point located in the middle of the length of the input vector line.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== v.lmeasure ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mats Schuh&lt;br /&gt;
&lt;br /&gt;
==== v.mkhexgrid ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.mkhexgrid v.mkhexgrid] is a python script that creates a hexagonal grid the size of the selected region using user specified side lengths. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.out.ascii.db ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/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.&lt;br /&gt;
: ''Superseded in GRASS 6.4 by the new v.out.ascii columns= option.''&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.out.ascii.mat ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.out.ascii.mat v.out.ascii.mat] is a shell script for exporting vector polygon and polyline data into an ASCII text file suitable for loading into Matlab (or [http://www.gnu.org/software/octave/ Octave]).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.out.gmt ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== v.out.kml ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/v.out.kml/ v.out.kml] is a shell script that exports a vector file into a KML file for Google Earth or Worldwind. see also [[#r.out.kml|r.out.kml]] and [[#r.out.gmap|r.out.gmap]]&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== v.out.marxan ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.out.marxan v.out.marxan] is a python script that prepares vector layers and exports GRASS vector attributes and adjacency information as Marxan input files. Output from Marxan simulations can be imported using v.in.marxan. &lt;br /&gt;
: ''see also the [http://www.uq.edu.au/marxan/ Marxan] &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.out.svg ====&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 [http://svn.osgeo.org/grass/grass/trunk/vector/v.out.svg/ grass6-svn].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Klaus Förster&lt;br /&gt;
&lt;br /&gt;
==== v.points.cog ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.points.cog v.points.cog] is a shell script which will create a new point at the center of gravity of each cluster of input points or centroids, grouped by attribute. Among other things this is useful for labeling swarms of points.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.profile ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.profile v.profile] is vector map profiling tool similar to r.profile. This module will print out distance and attributes to points/lines along profiling line. It's also usefull to determine places where raster profile crosses vector features (i.e. where to place river marker on river walley crossection).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maris Nartiss&lt;br /&gt;
&lt;br /&gt;
==== v.random.cover ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.random.cover v.random.cover] is a shell script for creating random points constrained within an irregularly shaped vector area. (v.random places points only in current region rectangle). Optionally the user can upload raster values at the points. See also '&amp;lt;tt&amp;gt;r.random cover= vector_output=&amp;lt;/tt&amp;gt;'&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.rasterbounds ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== v.rast.stats2 ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.rast.stats2 v.rast.stats2] is an adapted version of the GRASS module v.rast.stats. It uses the grass addon [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.univar.zonal r.univar.zonal] to speed up calculation of univariate statistics from a GRASS raster map based on vector polygons.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Markus Neteler, Otto Dassau&lt;br /&gt;
&lt;br /&gt;
==== v.sample.buffer [Currently unavailable. Being re-written in python. Target for inclusion in addons svn is January 2011]====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Trevor Wiens&lt;br /&gt;
&lt;br /&gt;
==== v.select.region ====&lt;br /&gt;
&lt;br /&gt;
: [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/v.select.region.tar.bz2 v.select.region] is a shell script that prints out the names of all vectors matching an input search pattern that has geometry (points, line, areas) that fall within a region bounded by an existing vector map, or within the current Grass region.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== v.selmany ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/vector/v.selmany/v.selmany v.selmany] is a shell script that allows to interactively select a set of vector objects on a given layer, then assign them attribute values in a connected database table. The script runs on the command line prompt and within a graphic monitor ; it does not work with DBF driver.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Vincent Bain&lt;br /&gt;
&lt;br /&gt;
==== v.surf.icw ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.surf.icw v.surf.icw] is an IDW interpolation method using true distance cost instead of euclidean shortest distance, i.e. ''as the fish swims around an island'' not ''as the bird flies''. This will cleanly travel around hard barriers and a cost surface map may be used to model expensive-cross barriers. Input data points do not need direct line of sight to be considered, but should be kept to less than one hundred as the module becomes very computationally expensive. A number of radial basis function options are available. ([http://grass.osgeo.org/wiki/Image:Inlets_03_SurfSal_icw_big.png screenshot])&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.surf.idwpow ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.geospatial.it/allegri/grass/v.surf.idwpow.zip v.surf.idwpow] integrates the common v.surf.idw algorithm with the exponential parameter for the distance weights&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Giovanni Allegri&lt;br /&gt;
&lt;br /&gt;
==== v.surf.krige [deprecated: use v.autokrige instead] ====&lt;br /&gt;
&lt;br /&gt;
: 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
==== v.strahler ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Florian Kindl. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler&lt;br /&gt;
&lt;br /&gt;
==== v.swathwidth ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.swathwidth v.swathwidth] creates a vector map representing the sea bottom coverage of a multibeam (swath) sonar survey.&lt;br /&gt;
: ([http://david.p.finlayson.googlepages.com/swathwidth Screenshots])&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' David Finlayson, Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.thickness ====&lt;br /&gt;
&lt;br /&gt;
: [http://marcin.slodkowski.googlepages.com/v.thickness.tgz v.thickness] creates points of thickness vectors from the vectors of strike and dip angles.The v.thickness is GUI GRASS script for v.dip.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Marcin Slodkowski&lt;br /&gt;
&lt;br /&gt;
==== v.transect.kia ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/vector/v.transect.kia v.transect.kia] calculates kilometric abundance indexes (KIA), a common indirect presence index used in wildlife monitoring along line transect surveys.&lt;br /&gt;
: Path lenghts can be corrected by draping on a DEM, different type of point objects can be weighted according to their relative importance, and paths can be  segmented using a further polygon vector (to calculate, say, abundances per elevation range or per habitat class).&lt;br /&gt;
: The module is written in bash and needs a GRASS install compiled with sqlite support.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Clara Tattoni and Damiano G. Preatoni&lt;br /&gt;
&lt;br /&gt;
==== v.trees3d ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== v.trimesh ====&lt;br /&gt;
: [http://www.valledemexico.ambitiouslemon.com/vtrimesh.html v.trimesh] creates a triangular mesh from a vector map using areal constraints for refinement. It uses Jonathan Shewchuk's Triangle library.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jaime Carrera&lt;br /&gt;
&lt;br /&gt;
==== v.what.rast.buffer ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.what.rast.buffer v.what.rast.buffer] is a script that calculates univariate statistics of raster map(s) from buffers around vector points. Results are written to a file. Resolution is taken from each input map.&lt;br /&gt;
: ''see also the [http://starspan.casil.ucdavis.edu StarSpan] software&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== v.variogram [deprecated: use v.autokrige instead] ====&lt;br /&gt;
&lt;br /&gt;
: 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.osgeo.org/pipermail/statsgrass/2006-October/000455.html reply].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Ivan Marchesini, Pierluigi De Rosa.&lt;br /&gt;
&lt;br /&gt;
==== v.vect.stats ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.vect.stats v.vect.stats] counts the number of points falling into each polygon and optionally calculates statistics from numeric point attributes for each polygon. v.vect.stats is a C module and works with GRASS 6.4 and higher (see enclosed patches for 6.5 and 7.0).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
==== AniMove ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.faunalia.it/animov/ AniMove] is software for analysis of animal movement and ranging behaviour using QGIS+GRASS+R.&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' Support by Faunalia.it&lt;br /&gt;
&lt;br /&gt;
==== Utilities ====&lt;br /&gt;
&lt;br /&gt;
===== Shapemerge =====&lt;br /&gt;
&lt;br /&gt;
: [http://perrygeo.googlecode.com/svn/trunk/gis-bin/shpmerge.sh shpmerge] merges all the shapefiles in the current directory into a single output shapefile&lt;br /&gt;
&lt;br /&gt;
:'''Authors:''' Perrygeo&lt;br /&gt;
&lt;br /&gt;
=== Raster add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co &amp;lt;nowiki&amp;gt;https://svn.osgeo.org/grass/grass-addons/raster&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Raplat ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS-RaPlaT: The Radio Planning Tool for GRASS GIS system developed by support of Slovenian largest mobile operator Mobitel. It is especially designed for radio coverage calculation of GSM/UMTS systems, but can be applied also to other wireless systems in the frequency range 400 MHz – 2.4 GHz (e.g. TETRA, WiFi). Its structure is modular and characterized by high level of flexibility and adaptability. &lt;br /&gt;
&lt;br /&gt;
 * Documentation: http://commsys.ijs.si/en/component/content/article/54-software/149-user-manual&lt;br /&gt;
 * Software: http://commsys.ijs.si/en/software/grass-raplat&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Department of Communication Systems, Jozef Stefan Institue, Jamova 39, SI-1000 Ljubljana, Slovenia&lt;br /&gt;
&lt;br /&gt;
==== r.area ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.area r.area] Very simple module. Calculate area size (in cells) for every individual category in input raster map and write number of cells as the value of each cell in the area. Optionally write a binary coverage map and set a minimum area threshold. Works well with {{cmd|r.clump}}.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.basin ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.basin/ r.basin] Generates the main morphometric parameters of the basin starting from the digital elevation model and the coordinates of the basin's closing section.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Margherita Di Leo, Massimo Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.basin/&lt;br /&gt;
&lt;br /&gt;
==== r.bilateral ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.broscoe ====&lt;br /&gt;
&lt;br /&gt;
r.broscoe.sh calculates waerden test and t test statistics for some values of threshold area on a single basin, according to A.J.Broscoe theory (1959).&lt;br /&gt;
See v.strahler package&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler/&lt;br /&gt;
&lt;br /&gt;
==== r.boxcount ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mark Lake, grass6 port: Florian Kindl.&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount/&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount.sh/&lt;br /&gt;
&lt;br /&gt;
==== r.burn.frict ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.burn.frict r.burn.frict] converts vector geometries to raster cells, using a simple anti-aliasing method to close &amp;quot;gaps&amp;quot; between diagonal cells. Useful for &amp;quot;burning&amp;quot; vector geometries into a friction surface, making sure that simulated movement does not &amp;quot;slip&amp;quot; through converted cells that have only diagonal neighbours.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.burn.frict&lt;br /&gt;
&lt;br /&gt;
==== r.clump2 ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.clump2 r.clump2] is a C module similar to r.clump. Differences are: diagonally adjacent cells are also clumped but can be excluded, NULL (nodata) cells are always excluded, and selective clumping with start coordinates is supported.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.clump2&lt;br /&gt;
&lt;br /&gt;
==== r.colors.out_vtk ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.out_vtk r.colors.out_vtk] is a shell script used to export the color table associated with a raster map layer to a {{wikipedia|VTK}} XML file. (see also [[Help with 3D]])&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.colors.quantiles ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.quantiles/r.colors.quantiles r.colors.quantiles] is a shell script used to create raster colors rules based on nquantiles. It uses R and spgrass6 package (RGRASS).&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== r.colors.stddev ====&lt;br /&gt;
&lt;br /&gt;
: [http://hamish.bowman.googlepages.com/grass_color_maps r.colors.stddev] ''moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== r.convergence ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.convergence r.convergence] calculate topographic convergence index, useful to detect lineamets represented by chanell/ridge system&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.cpt2grass ====&lt;br /&gt;
&lt;br /&gt;
: [http://hamish.bowman.googlepages.com/grass_color_maps r.cpt2grass] is a GRASS script for importing a [http://www.soest.hawaii.edu/gmt/ GMT] .cpt color table into GRASS. It can save to a text file suitable for r.colors or automatically apply the color table to a raster map.&amp;lt;BR&amp;gt;For a large collection of GMT .cpt files see http://sview01.wiredworkplace.net/pub/cpt-city/&lt;br /&gt;
: Other palette ideas from [http://geography.uoregon.edu/datagraphics/color_scales.htm Univ. Oregon] and [http://oceancolor.gsfc.nasa.gov/PRODUCTS/colorbars.html NASA/Goddard's OceanColor] (latter partially translated for use with GRASS on the [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.colors.tools/palettes grass-addons SVN]).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.csr ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.csr 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 if the appropriate flag is given. Shading parameters can be modified, though useful defaults are given.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== r.cva ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ucl.ac.uk/~tcrnmar/GIS/r.cva.html r.cva] is a cumulative viewshed analysis module. It is an advanced version of the {{cmd|r.los}} program.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' [http://www.ucl.ac.uk/~tcrnmar/ Mark Lake]&lt;br /&gt;
&lt;br /&gt;
==== r.denoise ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.denoise r.denoise] denoises (smooths/despeckles) topographic data, particular DEMs derived from radar data (including SRTM), using Xianfang Sun's [http://www.cs.cf.ac.uk/meshfiltering/index_files/Page342.htm denoising algorithm].  It is designed to preserve sharp edges and to denoise with minimal changes to the original data.  See the [http://personalpages.manchester.ac.uk/staff/john.stevenson/mdenoise/r.denoise.html manual pages] for details.  Further information on Sun's denoising algorithm, including an example, is available [http://personalpages.manchester.ac.uk/staff/john.stevenson/mdenoise here].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' John Stevenson&lt;br /&gt;
&lt;br /&gt;
==== r.dominant_dir.m and r.calc_terraflow_dir.m ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.terraflow.tools dominant_dir.m and 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.diversity ====&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.diversity/ r.diversity] calculates selected diversity indices by calling various r.li commands.This script uses the [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.pielou.html Pielou], [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.renyi.html Renyi], [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.shannon.html Shannon] and [http://grass.osgeo.org/grass64/manuals/html64_user/r.li.simpson.html Simpson] indices. The output is a map for each index. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Luca Delucchi, Duccio Rocchini&lt;br /&gt;
&lt;br /&gt;
==== r.eucdist ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.fragment ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.chrisgarstin.com/stuff/r.fragment r.fragment] fragments a raster into a user-defined set of smaller tiles according to an input number of rows and columns. &lt;br /&gt;
: '''Author:''' Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy r.fuzzy] Calculates membership of every cell in raster according membership function defined by user.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy.logic ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy.logic r.fuzzy.logic] Perform fuzzy operators (AND, OR, NOT, IMP) on membership's map using T-norms and T-conorms for 6 most popular families.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
==== r.fuzzy.system ====&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.fuzzy.system r.fuzzy.system] Perform full fuzzy clasificationwith 6 most popular fuzzy logic families and few methods of deffuzification.&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.fuzzy.system&lt;br /&gt;
&lt;br /&gt;
==== r.game_of_life ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.game_of_life r.game_of_life] is a shell script which runs Conway's classic Game of Life using GRASS raster modules. It is meant to demonstrate how easy it is to program cellular automata in GRASS as well as various 3D raster volume and time series visualization techniques.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.gauss ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.les-ejk.cz/files/programs/grass/r.gauss.tgz r.gauss] is Gaussian and Laplacian of Gaussian filter for GRASS. It is written in C language.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.gradgrid4 ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.uibk.ac.at/geographie/personal/mergili/gradgrid4.zip gradgrid4] is a tool for interpolating values of discrete data points to a raster map, applying a local regression approach with a predictor raster. The model is based on shell and python scripts as well as an R batchfile. It was tested on Fedora Core 6 with GRASS 6.2.1 and R 2.5.1, but should work under most UNIX systems. After unzipping the gradgrid4 folder, store it at any place in your local file system. In the subfolder docs you can find a manual and a publication draft with a detailed description of the concept and the example of an application. The subfolder testloc constitutes a GRASS location with test data.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Martin Mergili&lt;br /&gt;
&lt;br /&gt;
==== r.hazard.flood ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.hazard.flood/ r.hazard.flood] is an implementation of a fast procedure to detect flood prone areas. The exposure to flooding may be delineated by adopting a topographic index (TIm) computed from a DEM. The portion of a basin exposed to flood inundation is generally characterized by a TIm higher than a given threshold, tau. The threshold is automatically determinated from the cellsize. The proposed procedure may help in the delineation of flood prone areas especially in basins with marked topography. The use of the modified topographic index should not be considered as an alternative to standard hydrological-hydraulic simulations for flood mapping, but it may represent a useful and rapid tool for a preliminary delineation of flooding areas in ungauged basins and in areas where expensive and time consuming hydrological-hydraulic simulations are not affordable or economically convenient. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Margherita Di Leo&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.hazard.flood/&lt;br /&gt;
&lt;br /&gt;
==== r.in.mb ====&lt;br /&gt;
&lt;br /&gt;
: [http://blogs.tekmap.ns.ca/archives/458 r.in.mb] is a &amp;quot;GRASS/[[MB-System]] program designed to import ''mbio'' compatible multibeam sonar data directly into the GRASS GIS. The program is a modified version of {{cmd|r.in.xyz}}. Instead of reading an ASCII XYZ file, ''r.in.mb'' reads an MB-System compatible list file.&amp;quot; It can do automatic reprojection and minor hole filling. The default is to import bathymetry data, but optionally amplitude or sidescan sonar data can be loaded instead.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Bob Covill&lt;br /&gt;
&lt;br /&gt;
==== r.in.onearth ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Soeren Gebbert&lt;br /&gt;
&lt;br /&gt;
==== r.in.swisstopo ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.in.swisstopo/ r.in.swisstopo] for importing swisstopo digital elevation model data into GRASS raster maps.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' J&amp;amp;uuml;rgen Hansmann&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.in.swisstopo/&lt;br /&gt;
&lt;br /&gt;
==== r.in.wms (.py) ====&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. Note GRASS 6.2+ provides a shell script version of r.in.wms, take care of which one is actually being run.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.inund.fluv ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.inund.fluv/ r.inund.fluv]This command allows to obtain a fluvial potentially inundation map given a high-resolution DTM of the area surrounding the river and a water surface profile calculated through an 1-D hydrodinamic model. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Roberto Marzocchi, Bianca Federici, Domenico Sguerso&lt;br /&gt;
&lt;br /&gt;
==== r.isoregions ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.isoregions/r.isoregions r.isoregions] allows isoregions creation from a GRASS raster map. &lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Mathieu Grelier&lt;br /&gt;
&lt;br /&gt;
==== r.interp.mask ====&lt;br /&gt;
&lt;br /&gt;
: [http://david.p.finlayson.googlepages.com/r.interp.mask r.interp.mask] Creates a user-specified buffer around interpolation points that can be used as a MASK to prevent or clip excessive extrapolation artifacts. This works much better than a standard convex hull around the points.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.ipso ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.ipso/ r.ipso] Produces the ipsometric and ipsographic curve related to a digital elevation model and prints the percentiles&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Margherita Di Leo, Massimo Di Stefano, Francesco Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.ipso/&lt;br /&gt;
&lt;br /&gt;
==== r.li ====&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-SVN'''''.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Claudio Porta, Davide Spano, Serena Pallecchi, [http://www.faunalia.it Faunalia]&lt;br /&gt;
&lt;br /&gt;
==== r.local_max.pl ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== r.mandelbrot ====&lt;br /&gt;
&lt;br /&gt;
: [http://grasslab.gisix.com/scripts/r.mandelbrot r.mandelbrot] is a shell script to calculate the Mandelbrot set.- for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Peter Löwe&lt;br /&gt;
&lt;br /&gt;
==== mcda====&lt;br /&gt;
&lt;br /&gt;
: mcda suite is a toolset for geographics multi-criteria decision aiding and data analysis based on ELECTRE (r.mcda.electre), REGIME (r.mcda.regime) and FUZZY (r.mcda.fuzzy) algorithm. The module r.roughset is also included  for geographics rough set analisys and knowledge discovery based on rough set library. It is written in C language for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/&lt;br /&gt;
&lt;br /&gt;
==== r.mlv ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== r.obstruction, r.planning.static, r.planning.cinematic ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ing.unitn.it/~grass/software.html r.obstruction, r.planning.static, r.planning.cinematic]: r.obstruction creates a polar obstruction map from a DTM. r.planning.static performs a static planning for GPS and Glonass surveys using the obstruction map created with r.obstruction. r.planning.cinematic performs a cinematic planning for GPS and Glonass surveys. (University of Trento, Faculty of Engineering)&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniele Carli, Dimitri D'Inca', Gianluca Fruet, Domenico Sguerso, Paolo Zatelli&lt;br /&gt;
&lt;br /&gt;
==== r.out.jpeg ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.geospatial.it/allegri/grass/r.out.jpeg_ r.out.jpeg] is a simple GRASS script to export georeferenced JPEG images from rasters, keeping the associated color table. It is a two-step export: first a ppm file is created, then it is converted to jpeg usgin the &amp;quot;convert&amp;quot; command from ImageMagick&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Giovanni Allegri&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmap ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.gmap r.out.gmap] outputs GRASS raster map into set of image tiles&lt;br /&gt;
following the tiling scheme of Google Maps and Microsoft Virtual Earth.&amp;lt;BR&amp;gt;Read more in the OSGeo Journal [http://www.osgeo.org/journal Volume 5 (2009, to appear)]&amp;lt;BR&amp;gt;see also [[#r.out.kml|r.out.kml]] and [[#v.out.kml|v.out.kml]]&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Tomas Cebecauer&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmt ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/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&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== r.out.gmt2 ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.gmt2 r.out.gmt2] 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette&lt;br /&gt;
&lt;br /&gt;
==== r.out.kap_template ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.kap_template r.out.kap_template] is a shell script that exports a raster map into a GeoTiff and a metadata text file suitable for use with KAP (BSB) raster nautical chart converter programs such as &amp;lt;tt&amp;gt;tif2bsb&amp;lt;/tt&amp;gt; (after verifying that you are legally entitled to use such a tool).&lt;br /&gt;
: '''''This is EXPERIMENTAL software. NOT FOR NAVIGATIONAL USE.'''''&lt;br /&gt;
: For an easy to use data viewer, see also the [http://www.opencpn.org OpenCPN] free navigational software.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.out.kml ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/raster/r.out.kml r.out.kml] is a shell script that exports a raster map into a KML file and image for Google Earth or Worldwind. See also [[#v.out.kml|v.out.kml]] and [[#r.out.gmap|r.out.gmap]].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.pack ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack r.pack] and [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.unpack r.unpack] are two GRASS scripts for transferring raster maps to another computer as a single compressed file including color table etc.&lt;br /&gt;
: An earlier version has been renamed as [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack/experiment r.pack.mat] and [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.unpack/experiment r.unpack.mat].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.pi ====&lt;br /&gt;
&lt;br /&gt;
: [https://svn.osgeo.org/grass/grass-addons/raster/r.pi/ r.pi] (raster patch index) provides various functions to analyse spatial attributes of a landscape. It has a focus on patch-based indices but delivers class-based indices as well. r.le and its successor r.li provide landscape indices.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Programming: Elshad Shirinov, Scientific concept: Dr. Martin Wegmann&lt;br /&gt;
&lt;br /&gt;
==== r.prominence ====&lt;br /&gt;
&lt;br /&gt;
: '''r.prominence''' calculates the average difference between a central cell and its neighbors. It approximated the terrain 'ruggedness' by looking at average differences in elevation within a given neighborhood.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.prominence/&lt;br /&gt;
&lt;br /&gt;
==== r.refine ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.bowdoin.edu/~ltoma/research.html r.refine]: reduces a DEM to a TIN (takes as input a grid DEM and an error margin and simplifies it to the desired accuracy into a TIN)&lt;br /&gt;
Available via the source code repository [https://github.com/jonrtodd/r.refine]&lt;br /&gt;
: '''Authors:''' Laura Toma and Jonathan Todd&lt;br /&gt;
&lt;br /&gt;
==== r.rifs ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ucl.ac.uk/~tcrnmar/ r.rifs]: r.rifs generates a raster map and/or image of a fractal by means of the specified random iterated function system.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Mark Lake&lt;br /&gt;
&lt;br /&gt;
==== r.roughness ====&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.sh r.roughness.sh] 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;
&lt;br /&gt;
[http://www.igc.usp.br/pessoais/guano/downloads/r.roughness60 r.roughness60] - for GRASS versions 6.0.X&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.area r.roughness.window.area] - calculate surface roughness as the ratio of real (surface) area and planar area, using a moving-window approach.&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.vector r.roughness.window.vector] - calculate surface roughness as vector dispersion, using a moving-window approach. Resulting maps are: Vector Strength (R) and Inverted Fisher's k parameter. &lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/raster/r.roughness/r.roughness.window.vector.html r.roughness.window.vector.html] - provisional help page for r.roughness.window.vector.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Carlos Henrique Grohmann&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.roughness/&lt;br /&gt;
&lt;br /&gt;
==== r.roughset ====&lt;br /&gt;
&lt;br /&gt;
: r.roughset is a module for geographics rough set analisys and knowledge discovery based on rough set library. It is written in C language for GRASS versions 6.X.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/r.roughset/&lt;br /&gt;
&lt;br /&gt;
==== r.seg ====&lt;br /&gt;
&lt;br /&gt;
: '''r.seg''' performs image segmentation and discontinuity detection (based on the Mumford-Shah variational model).&lt;br /&gt;
: The module generates a piece-wise smooth approximation of the input raster map and a raster map of the discontinuities of the output approximation. The discontinuities of the output approximation are preserved from being smoothed. &lt;br /&gt;
: See [http://www.ing.unitn.it/~vittia/sw here] for details and examples.&lt;br /&gt;
&lt;br /&gt;
Available [http://www.ing.unitn.it/~vittia/sw here] and with improvements via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.seg/&lt;br /&gt;
&lt;br /&gt;
: '''Author''' Alfonso Vitti&lt;br /&gt;
&lt;br /&gt;
==== r.smoothpatch ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' David Finlayson&lt;br /&gt;
&lt;br /&gt;
==== r.soils.texture ====&lt;br /&gt;
&lt;br /&gt;
: r.soils.texture is a module to define soils texture from sand and clay raster file with a schema text file (now FAO,USDA and ISSS are available). It is written in C language. - for GRASS versions 6.x - For bugs and suggest: g_massa@libero.it &lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Gianluca Massei&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.soils.texture/&lt;br /&gt;
&lt;br /&gt;
==== r.stack ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stack r.stack] is a shell script used to patch all the raster maps in a time series (or burst 3D raster) together into a vertical stack, to aid mutli-map analyses in modules where group input is not yet available.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.stream.angle ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.angle r.stream.angle] Divide stream network into stright line segments according users input. It extends  Module uses as input direction and stream netwokr map produced by r.watershed and stream.extract  or custom user input. See description for details.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.angle&lt;br /&gt;
&lt;br /&gt;
==== r.stream.basins ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.basins r.stream.basins] delineate basins according users input. It extends r.water.outlet funcionality to extracting more than one basin at one step. Module uses as input direction map produced  stream network produced by r.stream.extract, r.watershed, r.stream order or custom user input. More in tutorial on grass-wiki pages.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.basins&lt;br /&gt;
&lt;br /&gt;
==== r.stream.del ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.del r.stream.del] Calculates downslope length of first order streams and delete them if it length (in pixels) is lower than the treeshold. It also join false segments left by deletion into one with category of upper. It uses r.watershed direction map and r.watershed  stream map as input. The module is added only for r.watershed module, r.stream.extract has deleting short streams build-in. During development of r.stream.* it will be probably abandoned due to duplicate functionality&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.del&lt;br /&gt;
&lt;br /&gt;
==== r.stream.distance ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.distance r.stream.distance] Calculates downslope distance and downslope elevation difference between current cell and stream or outlet cells. It uses r.watershed direction map, r.watershed or r.stream.extract stream map and optionally DEM as input.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.distance&lt;br /&gt;
&lt;br /&gt;
==== r.stream.extract ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.extract r.stream.extract] extracts topologically clean stream networks from input elevation and optionally accumulation maps. Output is available as raster and vector and can be used as input for the other r.stream.* modules by Jarek Jasiewicz. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.extract&lt;br /&gt;
&lt;br /&gt;
==== r.stream.order ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.order r.stream.order] orders stream network outputed by r.watershed or r.stream.extract according Sthrahler, Shreve, Horton and Hack ordering systems. It require as input stream and direction map and optionally accumulation map. It handle both SFD nad MFD modes but all data must come from the same procedure.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz, Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.order&lt;br /&gt;
&lt;br /&gt;
==== r.stream.pos ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.pos r.stream.pos] Helper module for calculating local stream network properties and linear geostatistics. Mostly To use with R and other grass modules. &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.pos&lt;br /&gt;
&lt;br /&gt;
==== r.stream.stats ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.stream.stats r.stream.stats] calculate Hortonian statistics for Stahler or Horton stream network created by r.stream.order. It uses r.watershed direction map, DEM and r.stream.order's Stahler or Horton stream network as input. It outputs calculated statistics to standard output.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jarek Jasiewicz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.stream.stats&lt;br /&gt;
&lt;br /&gt;
==== r.surf.nnbathy ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.sieczka.org/programy_en.html r.surf.nnbathy] interpolates a surface from a raster input using Pavel Sakov's [http://code.google.com/p/nn-c/ nn] natural neighbor interpolation library. Provides triangulation, Sibson natural neighbor interpolation and non-Sibsonian interpolation.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Maciej Sieczka&lt;br /&gt;
&lt;br /&gt;
==== r.surf.volcano ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.surf.volcano r.surf.volcano] creates an artificial surface resembling a seamount or cone volcano. The user can alter the size and shape of the mountain and optionally roughen its surface. Available decay functions are  polynomial, Gaussian, Lorentzian, logarithmic, and exponential.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== r.terracost ====&lt;br /&gt;
&lt;br /&gt;
[http://www.bowdoin.edu/~ltoma/research.html r.terracost] Scalable approach for computing least-cost-path surfaces on massive grid terrains.&amp;lt;BR&amp;gt;'''Lead author''': Laura Toma&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/raster/r.terracost&lt;br /&gt;
&lt;br /&gt;
==== r.tileset ====&lt;br /&gt;
&lt;br /&gt;
: ''{{cmd|r.tileset}} moved into main archive''&lt;br /&gt;
&lt;br /&gt;
==== r.traveltime ====&lt;br /&gt;
&lt;br /&gt;
: [http://jesbergwetter.twoday.net/stories/4845555/ r.traveltime] computes the travel time of surface runoff to an outlet. The program starts at the basin outlet and calculates the travel time at each raster cell recursively. A drainage area related threhold considers even  surface and also channel runoff. Travel times are derived by assuming kinematic wave approximation. The results can be used to derive a time-area function. This might be usefull for precipitation-runoff calculations (estimation of flood predictions) with a lumped hydrologic model (user-specified unit hydrograph).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Kristian Förster&lt;br /&gt;
&lt;br /&gt;
==== r.univar.zonal ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.univar.zonal r.univar.zonal] is similar to r.univar, but calculates statistics separately for each category(zone) present in the separate input map used to define zones (zonal statistics). The output can be like the one of r.univar or in easier to read table format and can be written to a file. This addon is only needed for GRASS 6.4, its functionality has been added to r.univar in 6.5 and 7.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Metz&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.univar.zonal&lt;br /&gt;
&lt;br /&gt;
==== r.viewshed ====&lt;br /&gt;
&lt;br /&gt;
: r.viewshed is a module for extremely fast line of sight analysis (replaces the slow r.los). It is written in C language for GRASS versions 6.X/7.x.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Laura Toma, USA&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.viewshed&lt;br /&gt;
&lt;br /&gt;
Once {{trac|390}} is solved, it will substitute r.los.&lt;br /&gt;
&lt;br /&gt;
==== r.wavelets ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ing.unitn.it/~grass/software.html r.wavelets]: This package contains wavelets decomposition and reconstruction modules for the GRASS GIS: r.owave.dec computes the orthogonal wavelet transform of a raster map. r.owave.rec reconstructs a raster map from an orthogonal wavelet transform. r.biowave.dec computes the biorthogonal wavelet transform of a raster map. r.biowave.rec reconstructs a raster map from a biorthogonal wavelet transform.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Members of the University of Trento, Faculty of Engineering&lt;br /&gt;
&lt;br /&gt;
==== r.wf ====&lt;br /&gt;
&lt;br /&gt;
: [http://svn.osgeo.org/grass/grass-addons/raster/r.wf/ r.wf] produces the Width Function of a basin. The Width Function W(x) gives the number of the cells in a basin at a flow distance x from the outlet (it is also referred as distance-area function). The distance is not the euclidean one, but it is measured along the flowpath towards the outlet.&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' Margherita Di Leo, Massimo Di Stefano, Francesco Di Stefano&lt;br /&gt;
&lt;br /&gt;
Available via SVN:&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.wf/&lt;br /&gt;
&lt;br /&gt;
==== r.xtent ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.xtent r.xtent] computes a raster map layer representing the Voronoi diagram, weighted Voronoi diagram or a more complex territorial partitioning of space around points (centers) in a vector input map, based on the XTENT formula.&lt;br /&gt;
&lt;br /&gt;
:'''Author:''' Benjamin Ducke&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/raster/r.xtent&lt;br /&gt;
&lt;br /&gt;
==== r.zc.pl ====&lt;br /&gt;
&lt;br /&gt;
: [http://les-ejk.cz/files/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== GIPE ====&lt;br /&gt;
&lt;br /&gt;
: The GRASS Image Processing Environment (GIPE) has USLE, Energy-balance and radiance-reflectance correction models.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Yann Chemin (unless specified otherwise).&lt;br /&gt;
   &lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/imagery/gipe&lt;br /&gt;
&lt;br /&gt;
Remark: This is progressively moved to main GRASS SVN (aka GRASS 7)&lt;br /&gt;
&lt;br /&gt;
:* r.hydro.CASC2D, ported from GRASS 5.x version, is temporarily here waiting to return to main GRASS.&lt;br /&gt;
&lt;br /&gt;
:* r.soiltex2prop creates porosity, Saturated Hydraulic conductivity (Ksat) and wetting front pressure head (Hf) from percentage of sand and clay after Rawls et al., 1990. This is a must for r.hydro.CASC2D.&lt;br /&gt;
&lt;br /&gt;
:* i.biomass creates biomass growth map from fPAR, lightuse efficiency, water availability (or evap.fraction), Lat, doy and tsw.&lt;br /&gt;
&lt;br /&gt;
:* i.dn2ref.l7, r.dn2ref.ast create top of atmosphere reflectance for Landsat 7ETM+ and ASTER. These modules also have a flag for radiance output. Updated i.dn2ref.l7 to read .met calibration file.  &lt;br /&gt;
&lt;br /&gt;
:* i.dn2full.l[5,7] is an attempt to get all bands of Landsat[5,7] calibrated and corrected to either reflectance or temperature, reads only the .met file.  &lt;br /&gt;
&lt;br /&gt;
:* i.dn2potrad.l[5,7] is an attempt to get ET potential from DN of Landsat 7 (Careful! No Atmospheric correction!).  &lt;br /&gt;
&lt;br /&gt;
:* i.eb.* are a set of 10+ 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. &lt;br /&gt;
&lt;br /&gt;
:* i.evapo.potrad creates 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 i.eb.eta. &lt;br /&gt;
&lt;br /&gt;
:* i.evapo.SENAY creates actual evapotranspiration following the regional method of Senay (2007). &lt;br /&gt;
&lt;br /&gt;
:* i.lmf creates a Local Maximum Fitting on the temporal dimension of the multi-date input dataset, working, but more precision still to be added.&lt;br /&gt;
&lt;br /&gt;
:* i.vi.mpi is the mpi version of i.vi for cluster GRASS GIS education (no speed up here!) '''Author:''' Shamim Akhter &lt;br /&gt;
&lt;br /&gt;
:* i.modis.stateqa extracts State Quality Assessment information from Modis 500m (MOD09A) products.&lt;br /&gt;
&lt;br /&gt;
:* i.water creates a Water Mask from NDVI and Albedo, or specifically for Modis: NDVI and Band 7.&lt;br /&gt;
&lt;br /&gt;
:* i.wi creates a given Water Index (only one so far).&lt;br /&gt;
&lt;br /&gt;
==== HydroFOSS ====&lt;br /&gt;
&lt;br /&gt;
: HydroFOSS - a GIS embedded approach for Free &amp;amp; Open Source Hydrological modeling.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Massimiliano Cannata&lt;br /&gt;
 &lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/HydroFOSS/&lt;br /&gt;
&lt;br /&gt;
==== Hikereport ====&lt;br /&gt;
&lt;br /&gt;
: python script that computes length, cumulative uphill and downhill, average slopes on an interactively drawn path. Based on r.profile's output.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Negri&lt;br /&gt;
&lt;br /&gt;
 http://tracce.wordpress.com/?attachment_id=71&lt;br /&gt;
&lt;br /&gt;
=== Misc add-ons===&lt;br /&gt;
&lt;br /&gt;
==== m.eigensystem ====&lt;br /&gt;
&lt;br /&gt;
m.eigensystem - Computes eigen values and eigen vectors for square matrices.&lt;br /&gt;
&lt;br /&gt;
: http://svn.osgeo.org/grass/grass-addons/misc/m.eigensystem/&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Michael Shapiro&lt;br /&gt;
&lt;br /&gt;
===Database add-ons===&lt;br /&gt;
==== db.join ====&lt;br /&gt;
&lt;br /&gt;
: Table joining: join one table into another through common attributes&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/database/db.join/&lt;br /&gt;
or&lt;br /&gt;
   g.extension db.join&lt;br /&gt;
&lt;br /&gt;
===General add-ons===&lt;br /&gt;
&lt;br /&gt;
==== GRASS create location scripts ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/grass_create_location grass_create_location.sh] Script to generate a new GRASS location from GIS file (e.g. geoTIFF or SHAPE), wktfile or EPSG code.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler&lt;br /&gt;
&lt;br /&gt;
==== g.laptop.sh ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.gbd-consult.de/dassau/grass/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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Otto Dassau&lt;br /&gt;
&lt;br /&gt;
==== Readline completion ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alexandre Sorokine (grass-complete), Daniel Calvelo (grass_rlcompleter.sh)&lt;br /&gt;
&lt;br /&gt;
==== g.region.point ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.region.point g.region.point] is a shell script which resets the computational region to a square box around a given coordinate. It is intended for use within GRASS scripts to speed up processing by limiting expensive raster calculations to a small area of interest.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== g.linke_by_day ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.sun.tools/ g.linke_by_day] is a python script for [[r.sun]] which interpolates a Linke turbidity value for a given day of the year based on monthly values edited into the script.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== g.xlist ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.xlist g.xlist] is a C implementation of g.mlist. g.xlist searches for data files matching a pattern given by wildcards or POSIX Extended Regular Expressions. POSIX regex(3) functions are required.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== g.xremove ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/general/g.xremove g.xremove] is a C implementation of g.mremove. g.xremove removes data files matching a pattern given by wildcards or POSIX Extended Regular Expressions. POSIX regex(3) functions are required.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
=== Imagery add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/imagery&lt;br /&gt;
&lt;br /&gt;
==== GIPE ====&lt;br /&gt;
&lt;br /&gt;
GIPE (see also above in raster section) provides:&lt;br /&gt;
i.biomass, i.dn2potrad.l5, i.dn2potrad.l7, i.dn2ref.ast, i.eb.deltat, i.eb.disp, i.eb.eta, i.eb.evapfr, i.eb.g0, i.eb.h0, i.eb.h_SEBAL01, i.eb.h_SEBAL95, i.eb.h_iter, i.eb.molength, i.eb.netrad, i.eb.psi, i.eb.rah, i.eb.rohair, i.eb.ublend, i.eb.ustar, i.eb.wetdrypix, i.eb.z0m, i.eb.z0m0, i.evapo.PT, i.evapo.TSA, i.evapo.potrad, i.evapo.senay, i.evapo.time_integration, i.lmf, i.modis.stateqa, i.sattime, i.vi.grid, i.vi.mpi, i.water, i.wi&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/gipe/&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Yann Chemin&lt;br /&gt;
&lt;br /&gt;
==== i.homography ====&lt;br /&gt;
&lt;br /&gt;
Rectifies an image by computing a coordinate transformation for each pixel in the image based on the control points created by i.linespoints. The approach uses homography extended for corresponding lines.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.homography&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniel Grasso, Bolzano, Italy, based on code written by Stefano Merler, ITC-irst, Italy&lt;br /&gt;
&lt;br /&gt;
==== i.linespoints ====&lt;br /&gt;
&lt;br /&gt;
An imagery command that enables the user to mark coordinate system points as well as lines on an image to be rectified and then input the coordinates of each point for creation of a coordinate transformation matrix. The transformation matrix is needed as input for the GRASS program i.homography.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.linespoints&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Daniel Grasso, Bolzano, Italy, based on i.points&lt;br /&gt;
&lt;br /&gt;
==== i.landsat.toar ====&lt;br /&gt;
&lt;br /&gt;
Transform calibrated digital number of Landsat products to top-of-atmosphere radiance or top-of-atmosphere reflectance and temperature (band 6 of the sensors TM and ETM+). Optionally, used to calculate the at-surface radiance or reflectance with atmospheric correction (DOS method).&lt;br /&gt;
&lt;br /&gt;
Available also in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.landsat.toar&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.landsat.acca ====&lt;br /&gt;
&lt;br /&gt;
Implements the Automated Cloud-Cover Assessment (ACCA) Algorithm from Irish (2000) with the constant values for pass filter one from Irish et al. (2006). To do this, it needs Landsat band numbers 2, 3, 4, 5, and 6 (or band 61 for Landsat-7 ETM+) which have already been processed from DN into reflectance and band-6 temperature with i.landsat.toar). &lt;br /&gt;
&lt;br /&gt;
Available also in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.landsat.acca&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.points.auto ====&lt;br /&gt;
&lt;br /&gt;
This module allows a search of GCP's on two raster-maps with differents levels of automation. The ''manual'' search is the default search, so it's possible to determine the GCP's manually with the mouse (like {{cmd|i.points}}). ''Semiautomated'' search: The user determines with the mouse some correspondent areas (with a discrete precision) in the two maps and the module searches itself the GCP's in these areas. ''Automated'' search: At the start of module the user has to load the maps that the algorithm uses to the search, so it is recommended to use the maps filtered with the filters DIVERSITY or STDDEV (of GRASS) with a window of 3x3 or 5x5 pixels. However, the algorithm sometimes works well with the original maps too.&lt;br /&gt;
&lt;br /&gt;
Note: This code is basically an improved i.points (from 2004). Subsequent changes in i.points haven's been ported here yet.&lt;br /&gt;
&lt;br /&gt;
svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.points.auto&lt;br /&gt;
&lt;br /&gt;
: '''Authors:''' based on i.points; additions by Ivan Michelazzi, Luca Miori (MSc theses at ITC-irst); Supervisors: Markus Neteler, Stefano Merler, ITC-irst 2003, 2004. [http://gisws.media.osaka-cu.ac.jp/grass04/viewpaper.php?id=37 PDF article]&lt;br /&gt;
&lt;br /&gt;
==== i.points.reproj ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/imagery/i.points.reproj i.points.reproj] is a shell script that will use cs2cs to reproject the target coordinates of a group's POINTS file. By running i.rectify directly to the new target projection, a generation of resampling data loss can be avoided (versus i.rectify + r.proj). On the other hand, i.rectify does not calculate cell resolution well if the map is to be rotated ([http://intevation.de/rt/webrt?serial_num=3296 bug #3296]), in those cases i.rectify+r.proj may be the better option.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== i.plr.py ====&lt;br /&gt;
&lt;br /&gt;
: [[I.plr.py|Probabilistic Label Relaxation]], written in Python&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Georg Kaspar&lt;br /&gt;
&lt;br /&gt;
==== i.pr ====&lt;br /&gt;
&lt;br /&gt;
: Image classification: implements k-NN (multiclass), classification trees (multiclass), maximum likelihood (multiclass), Support Vector Machines (binary), bagging versions of all the base classifiers, AdaBoost for binary trees and support vector machines. It allows feature manipulation (normalization, principal components,...). It also implements feature selection techniques (RFE, E-RFE,...), statistical tests on variables, tools for resampling (cross-validation and bootstrap) and cost-sensitive techniques for trees and support vector machines.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Stefano Merler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.pr&lt;br /&gt;
&lt;br /&gt;
==== i.spec.sam ====&lt;br /&gt;
&lt;br /&gt;
: Spectral Angle mapping&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.sam/&lt;br /&gt;
&lt;br /&gt;
==== i.spec.unmix ====&lt;br /&gt;
&lt;br /&gt;
: Spectral unmixing&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Markus Neteler. Available via SVN:&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.unmix/&lt;br /&gt;
&lt;br /&gt;
==== i.topo.corr ====&lt;br /&gt;
: i.topo.corr is used to topographically correct reflectance from imagery files, e.g. obtained with i.landsat.toar (see above), using a sun illumination terrain model. This illumination model represents the cosine of the incident angle, i.e. the  angle between the normal to the ground and the sun rays. It can be obtained with {{cmd|r.sun}} (parameter incidout), and then calculating its cosine with float precision. Correction methods: cosine, minnaert, percent, c-factor.&lt;br /&gt;
&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.topo.corr&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' E. Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== i.warp ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/imagery/i.warp i.warp] 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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
=== Display add-ons ===&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
&lt;br /&gt;
 svn co https://svn.osgeo.org/grass/grass-addons/display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== d.barb ====&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass-addons/display/d.barb d.barb] is a C module that will draw wind barbs, straw plots, and arrow plots from raster array or sparse vector point data. It can use either direction + magnitude, or u + v components as the input, and can produce a legend key. (''work in progress, but it's mostly there'')&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.edit.rast ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.edit.rast d.edit.rast] edits cells in an existing raster map displayed on the current monitor.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Huidae Cho&lt;br /&gt;
&lt;br /&gt;
==== d.frame.quarter ====&lt;br /&gt;
&lt;br /&gt;
: ('''obsolete''') [http://trac.osgeo.org/grass/browser/grass-addons/display/d.frame.split d.frame.quarter] is a shell script that will split the display into four quadrants (or sixths) using ''d.frame''. Individual frames are named ''uno, dos, tres, cuatro'', and ''full_screen''.&lt;br /&gt;
: Replaced by {{cmd|d.split.frame}} in main.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.frame.split ====&lt;br /&gt;
&lt;br /&gt;
: ''d.frame.split moved into main archive as {{cmd|d.split.frame}}''&lt;br /&gt;
&lt;br /&gt;
==== d.frontline ====&lt;br /&gt;
&lt;br /&gt;
: [http://cloud.github.com/downloads/amuriy/GRASS-scripts/d.frontline d.frontline] is a shell script that draws frontlines on the graphics monitor using ''d.graph'' module and different types of symbols. Also it optionally saves frontline graphics to ''d.graph'' commands file and/or ''ps.map'' file (for later use with the &amp;quot;read&amp;quot; ''ps.map'' instruction)   &lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alexander Muriy&lt;br /&gt;
&lt;br /&gt;
==== d.hyperlink ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author: '''Eric Patton&lt;br /&gt;
&lt;br /&gt;
==== d.mark ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.mark] is a shell script that quickly displays a marker on the display at a given coordinate.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
==== d.region.box ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.region.box d.region.box] is a shell script that quickly displays a box around the current region.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== d.stations ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts   d.stations] is a shell script that quickly displays vector points (or sites for GRASS 5.4 and below).&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman &lt;br /&gt;
&lt;br /&gt;
==== d.varea ====&lt;br /&gt;
&lt;br /&gt;
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.varea] is a shell script that quickly displays vector areas.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Hamish Bowman&lt;br /&gt;
&lt;br /&gt;
==== pd-GRASS ====&lt;br /&gt;
&lt;br /&gt;
: [http://www.ornl.gov/sci/gist/software/grass/ pd-GRASS]: Parallel Display for GRASS GIS&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Alex Sorokine&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== [[IconSymbols]] ====&lt;br /&gt;
&lt;br /&gt;
* [[IconSymbols|Symbols]] which can be used with ''d.vect, d.graph'', and ''ps.map''.&lt;br /&gt;
&lt;br /&gt;
=== Postscript add-ons ===&lt;br /&gt;
&lt;br /&gt;
* ''See also [[ps.map scripts|ps.map samples and templates]]''.&lt;br /&gt;
&lt;br /&gt;
==== ps.atlas ====&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.&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jachym Cepicky&lt;br /&gt;
&lt;br /&gt;
==== ps.output ====&lt;br /&gt;
&lt;br /&gt;
: [https://trac.osgeo.org/grass/browser/grass-addons/postscript/ps.output ps.output] is much like {{cmd|ps.map}} but with advanced decorations and ability for translucency. Here you can find a [[Ps.output|tutorial]].&lt;br /&gt;
&lt;br /&gt;
: '''Author:''' Jorge Tizado&lt;br /&gt;
&lt;br /&gt;
==== [[AreaFillPatterns]] ====&lt;br /&gt;
&lt;br /&gt;
* Hatches for ps.map's vareas&lt;br /&gt;
&lt;br /&gt;
=== wxGUI add-ons ===&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;
* See wiki [[GRASS and MapServer]] page&lt;br /&gt;
&lt;br /&gt;
==GRASS 5.x (old)==&lt;br /&gt;
&lt;br /&gt;
===Vector add-ons===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.osgeo.org/download/addons.php&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* See here: http://grass.osgeo.org/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;
* [http://www.bowdoin.edu/~ltoma/research.html r.terracost] Scalable approach for computing least-cost-path surfaces on massive grid terrains. For GRASS 5.3.&amp;lt;BR&amp;gt;'''Lead author''': Laura Toma&lt;br /&gt;
:Newer version available via SVN:&lt;br /&gt;
  svn co https://svn.osgeo.org/grass/grass-addons/raster/r.terracost&lt;br /&gt;
&lt;br /&gt;
==GRASS 4.x (very old)==&lt;br /&gt;
&lt;br /&gt;
===Raster add-ons===&lt;br /&gt;
&lt;br /&gt;
* MAGICAL Software: The MAGICAL software comprises a suite of three programs that provide a multi-agent simulation extension for the GRASS GIS software. http://www.ucl.ac.uk/~tcrnmar/simulation/magical/magical.html&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>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=WxPython-based_GUI_for_GRASS&amp;diff=10296</id>
		<title>WxPython-based GUI for GRASS</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=WxPython-based_GUI_for_GRASS&amp;diff=10296"/>
		<updated>2010-02-13T20:16:10Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* What others do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also [[GRASS GUI]], [[GRASS and Python]] and [[GRASS SoC Ideas 2009‎]].&lt;br /&gt;
&lt;br /&gt;
For developer-related issues see [http://trac.osgeo.org/grass/wiki/wxGUIDevelopment Trac wxGUI page].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/wxGUI.html Manual page]&lt;br /&gt;
* A nice summary of the progress to date, written by Jachym Cepicky:&lt;br /&gt;
** [http://www.les-ejk.cz/english/wxgrass-new-grass-gui-1 Part 1]&lt;br /&gt;
** [http://www.les-ejk.cz/english/wxgrass-new-grass-gui-2 Part 2]&lt;br /&gt;
* [[User:Landa|Martin Landa]]: [http://gama.fsv.cvut.cz/~landa/publications/2008/gis-ostrava-08/paper/landa-grass-gui-wxpython.pdf New GUI for GRASS GIS based on wxPython] ([http://gis2008.com/indexe.html GIS Ostrava 2008], January 27-30, 2008, Ostrava, Czech Republic)&lt;br /&gt;
* [[User:Landa|Martin Landa]], Cristina Moretto, Michele Zanolli, Luca Manganelli and Markus Neteler: [http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/paper/grass-gfoss-tn.pdf wxPython-based GUI for GRASS GIS] ([http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/prezentazione/perugia-grass-gui-wxpython.pdf presentation]) ([http://www.grassmeeting2008.unipg.it IX Meeting degli Utenti Italiani di GRASS - GFOSS], February 20-22, Perugia, Italy)&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
 &lt;br /&gt;
* [http://svn.osgeo.org/grass/grass/trunk/gui/wxpython/README README]&lt;br /&gt;
&lt;br /&gt;
=== Development ===&lt;br /&gt;
&lt;br /&gt;
Do you want to help with the development?&lt;br /&gt;
&lt;br /&gt;
* basic Python programming ability required&lt;br /&gt;
* GUI programming experience welcomed (especially wxPython)&lt;br /&gt;
* GRASS user (or better developer) experience &lt;br /&gt;
&lt;br /&gt;
How to get [http://trac.osgeo.org/grass/wiki/HowToContribute write access] to the GRASS SVN repository.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
* [http://svn.osgeo.org/grass/grass-addons/screenshots/wxpython SVN]&lt;br /&gt;
* [http://grass.osgeo.org/screenshots/gui.php Website screenshot page]&lt;br /&gt;
* Various screenshots from [[:Category:WxGUI|GRASS-Wiki]]&lt;br /&gt;
&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-startup-gnulinux.png|300px|thumb|Start-up screen]]&lt;br /&gt;
|| &lt;br /&gt;
[[Image:Wxgui-vdigit1-gnulinux.png|300px|thumb|Vector digitizer]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-atm0-gnulinux.png|300px|thumb|Attribute Table Manager]]&lt;br /&gt;
|| &lt;br /&gt;
[[Image:Wxgui-vector-querying-gnulinux.png|300px|thumb|Querying vector map layers (attribute data)]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mac OS ===&lt;br /&gt;
&lt;br /&gt;
=== MS Windows ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-startup-windows1.png|300px|thumb|Start-up screen]]&lt;br /&gt;
|| &lt;br /&gt;
[[Image:Wxgui-d-vect-windows.png|300px|thumb|GUI dialog d.vect]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-atm-windows.png|300px|thumb|Attribute Table Manager]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Wxgui-r-buffer-windows.png|300px|thumb|Running command (r.buffer)]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-vector-querying-windows.png|300px|thumb|Querying vector map layer (editable mode)]]&lt;br /&gt;
||&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== Layer Manager ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
The '''GRASS GIS Layer Manager''' provides an interactive graphical interface to GRASS commands. The Layer Manager includes a set of pull-down menus for all GRASS GIS functions (analysis, file I/O, GIS configuration and management), toolbar that manage display map layers in map display windows, layer tree in which map layers to display are organized, command output window and integrated command line prompt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:wxgrass-gis-manager-layer.png|350px]] || [[Image:wxgrass-gis-manager-output.png|350px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Wxgrass rgb.png|350px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Map display window ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Each '''Map display window''' has a unique set of layers to display and region setting (zoom). The map display window includes main toolbar with basic tools including zooming, panning, data querying, simple analyse functions (measure, profile, histogram, etc.), overlay management, etc. From main toolbar are accessible additional toolbars, currently only Digitization tool is available. Under development is Georectification tool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgrass-mapdisplay-0.png|thumb|350px|center]] ||&lt;br /&gt;
[[Image:Wxgui-mapdisplay-1.png|thumb|350px|center]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module GUIs ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Generated from XML using &amp;lt;tt&amp;gt;--interface-description&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E.g. &amp;lt;tt&amp;gt;d.rgb --help&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Description:&lt;br /&gt;
 Displays three user-specified raster map layers as red, green, and blue overlays in the active graphics frame.&lt;br /&gt;
&lt;br /&gt;
Keywords:&lt;br /&gt;
 display&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 d.rgb [-ox] red=name green=name blue=name [--verbose] [--quiet]&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
  -o   Overlay (non-null values only)&lt;br /&gt;
  -x   Don't add to list of commands in monitor&lt;br /&gt;
 --v   Verbose module output&lt;br /&gt;
 --q   Quiet module output&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
    red   Name of raster map to be used for &amp;lt;red&amp;gt;&lt;br /&gt;
  green   Name of raster map to be used for &amp;lt;green&amp;gt;&lt;br /&gt;
   blue   Name of raster map to be used for &amp;lt;blue&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
becomes with &amp;lt;tt&amp;gt;d.rgb --interface-description&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;!DOCTYPE task SYSTEM &amp;quot;[http://trac.osgeo.org/grass/browser/grass/trunk/gui/xml/grass-interface.dtd grass-interface.dtd]&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;task name=&amp;quot;d.rgb&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;&lt;br /&gt;
                Displays three user-specified raster map layers as red, green, and blue overlays in the active graphics frame.&lt;br /&gt;
        &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;keywords&amp;gt;&lt;br /&gt;
                display&lt;br /&gt;
        &amp;lt;/keywords&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;red&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;yes&amp;quot; multiple=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Name of raster map to be used for &amp;amp;lt;red&amp;amp;gt;&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
                &amp;lt;keydesc&amp;gt;&lt;br /&gt;
                        &amp;lt;item order=&amp;quot;1&amp;quot;&amp;gt;name&amp;lt;/item&amp;gt;&lt;br /&gt;
                &amp;lt;/keydesc&amp;gt;&lt;br /&gt;
                &amp;lt;gisprompt age=&amp;quot;old&amp;quot; element=&amp;quot;cell&amp;quot; prompt=&amp;quot;raster&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/parameter&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;green&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;yes&amp;quot; multiple=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Name of raster map to be used for &amp;amp;lt;green&amp;amp;gt;&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
                &amp;lt;keydesc&amp;gt;&lt;br /&gt;
                        &amp;lt;item order=&amp;quot;1&amp;quot;&amp;gt;name&amp;lt;/item&amp;gt;&lt;br /&gt;
                &amp;lt;/keydesc&amp;gt;&lt;br /&gt;
                &amp;lt;gisprompt age=&amp;quot;old&amp;quot; element=&amp;quot;cell&amp;quot; prompt=&amp;quot;raster&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/parameter&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;blue&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;yes&amp;quot; multiple=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Name of raster map to be used for &amp;amp;lt;blue&amp;amp;gt;&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
                &amp;lt;keydesc&amp;gt;&lt;br /&gt;
                        &amp;lt;item order=&amp;quot;1&amp;quot;&amp;gt;name&amp;lt;/item&amp;gt;&lt;br /&gt;
                &amp;lt;/keydesc&amp;gt;&lt;br /&gt;
                &amp;lt;gisprompt age=&amp;quot;old&amp;quot; element=&amp;quot;cell&amp;quot; prompt=&amp;quot;raster&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/parameter&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;o&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Overlay (non-null values only)&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;x&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Don't add to list of commands in monitor&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;verbose&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Verbose module output&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;quiet&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Quiet module output&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
  &amp;lt;/task&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
which is then used to generate:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxgrass-d-rgb.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Startup GUI ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Start new GRASS session with&lt;br /&gt;
&lt;br /&gt;
 grass -wxpython&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgrass-startup.png|center|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Location wizard ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Wizard for creating new GRASS project location based on:&lt;br /&gt;
&lt;br /&gt;
* Coordinate system&lt;br /&gt;
* EPSG code&lt;br /&gt;
* Georeferenced file&lt;br /&gt;
* PROJ.4 string&lt;br /&gt;
* XY&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS Location Wizard]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgui-location-wizard.png|center|thumb|600px|Location wizard]]&lt;br /&gt;
&lt;br /&gt;
=== Cartography tools ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
==== GUI for ps.map ====&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass63/manuals/html63_user/ps.map.html ps.map] 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 map canvas, 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;
: see also these discussions and pyGTK prototype by Jachym Cepicky&lt;br /&gt;
:* http://thread.gmane.org/gmane.comp.gis.grass.devel/12469&lt;br /&gt;
:* http://thread.gmane.org/gmane.comp.gis.grass.devel/19368&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;
===== Intelligent label placement in ps.map =====&lt;br /&gt;
&lt;br /&gt;
* use PAL/JPAL [http://geosysin.iict.ch/PAL cartographic labelling library] (GPL, C++ language, JNI wrapper)&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;
===== Prototype g-ps.map =====&lt;br /&gt;
* [http://les-ejk.cz/files/programs/grass/gpsmap-0.1.2.tgz gpsmap-0.1.2.tgz]&lt;br /&gt;
* [http://les-ejk.cz/tmp/gpsmap.png g-ps.map Screenshot]&lt;br /&gt;
* [http://www.nabble.com/status-of-g-ps.map-tf4465835.html#a12733414 Jachym's posting]&lt;br /&gt;
&lt;br /&gt;
==== Direct printing ====&lt;br /&gt;
&lt;br /&gt;
Implement direct printing of map canvas content using GRASS PS driver or Cairo driver.&lt;br /&gt;
&lt;br /&gt;
* [http://trac.gispython.org/projects/PCL/wiki Python Cartographic Lab]&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/OSGeo_Cartographic_Library OSGeo Cartographic Library]&lt;br /&gt;
** http://lists.osgeo.org/pipermail/discuss/2008-April/003337.html&lt;br /&gt;
** http://www.intevation.de/pipermail/freegis-list/2007-April/003142.html&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/OSGeo_map_symbol_set OSGeo Map Symbol Set]&lt;br /&gt;
* [http://www.gdal.org/ogr/ogr_feature_style.html OGR - Feature Style Specification]&lt;br /&gt;
* [http://trac.osgeo.org/mapguide/wiki/MapGuideRfc14 MapGuide RFC 14 - Cartographic Stylization Engine]&lt;br /&gt;
&lt;br /&gt;
* [http://www.iho.shom.fr/PUBLICATIONS/download.htm#special S-52 standard for nautical chart (ENC) symbology] and cartography from the [http://www.iho.shom.fr/ International Hydrographic Bureau]&lt;br /&gt;
** [http://openev.cvs.sourceforge.net/openev/contrib/S52/ GPL library implementing the S-52 standard] (OpenEV)&lt;br /&gt;
&lt;br /&gt;
* [http://www.opengeospatial.org/standards/symbol OpenGIS Symbology Encoding Implementation Specification]&lt;br /&gt;
&lt;br /&gt;
* [http://geosysin.iict.ch/trac/wiki/Index4extJPAL PAL]&lt;br /&gt;
&lt;br /&gt;
=== Georectifier ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgui-georectify-0.png|thumb|350px|center]] ||&lt;br /&gt;
[[Image:Wxgui-georectify-1.png|thumb|350px|center]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Profile Analysis Tool ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgui-profile-0.png|thumb|350px|center]] ||&lt;br /&gt;
[[Image:Wxgui-profile-1.png|thumb|350px|center]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vector digitizer ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
[http://grass.osgeo.org/grass64/manuals/html64_user/wxGUI.Vector_Digitizing_Tool.html Manual page].&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS Digitizing tool]].&lt;br /&gt;
&lt;br /&gt;
Replacement of &amp;lt;tt&amp;gt;v.digit&amp;lt;/tt&amp;gt; module integrated to Map display window ([http://svn.osgeo.org/grass/grass-addons/screenshots/wxpython/digitization Screenshots]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:WxDigit200804.png|thumb|300px|center|Vector digitizer (2008/04)]] ||&lt;br /&gt;
[[Image:Digit-01.png|thumb|300px|center|Vector digitizer (2007/11)]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:WxGUI-vdigit-fill-area.png|thumb|300px|center|Vector digitizer - fill valid areas (closed boundary + centroid) (2008/07)]] || &lt;br /&gt;
[[Image:WxGUI-vdigit-bg.png|thumb|300px|center|Vector digitizer - background raster maps with different opacity level (2008/07)]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raster digitizer ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
* r.digit (merge with v.digit?)&lt;br /&gt;
: Probably write a front end for [http://grass.osgeo.org/grass63/manuals/html63_user/r.in.poly.html r.in.poly], that's all the old r.digit is.&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;
===== Category Labels =====&lt;br /&gt;
&lt;br /&gt;
* Write with new r.category import tool&lt;br /&gt;
** ''Back-end component complete: r.category module is now updated to handle a rules= file and other goodies like dynamic labels''&lt;br /&gt;
&lt;br /&gt;
* Read with one of r.category, r.describe, r.report, r.stats, ???&lt;br /&gt;
** probably need to add a new flag to one of those to print flat &amp;lt;tt&amp;gt;&amp;quot;%d %s&amp;quot;, cat, label&amp;lt;/tt&amp;gt;&lt;br /&gt;
: or read the cats/ file directly, it's already flat ascii.&lt;br /&gt;
 &lt;br /&gt;
* how to deal with FP maps &amp;amp; cats?&lt;br /&gt;
&lt;br /&gt;
=== Ortho photos ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
* To replace i.ortho.photo and friends&lt;br /&gt;
&lt;br /&gt;
=== Attribute table manager ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgui-attribute-table-manager.png|right|thumb|350px|Attribute Table Manager]]&lt;br /&gt;
&lt;br /&gt;
;'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
[http://grass.osgeo.org/grass64/manuals/html64_user/wxGUI.Attribute_Table_Manager.html Manual page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Allows:&lt;br /&gt;
&lt;br /&gt;
* To browse attribute data, perform SQL select statements&lt;br /&gt;
* Modify attribute data, insert new records to attribute table, delete existing records&lt;br /&gt;
* Highlight selected items in Map Display Window&lt;br /&gt;
* Extract selected items into new vector map layer&lt;br /&gt;
* Modify attribute table - add, drop, rename columns&lt;br /&gt;
* Modify vector map layer DB connestion settings - add, remove or modify layers&lt;br /&gt;
&lt;br /&gt;
=== NVIZ replacement ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' under development.&lt;br /&gt;
&lt;br /&gt;
Detailed information [[wxNVIZ]].&lt;br /&gt;
&lt;br /&gt;
=== Imagery tools ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' (re)development not started in earnest yet. Some behind-the-scenes code has been prepared, but not much.&lt;br /&gt;
: ''Volunteers welcome!''&lt;br /&gt;
&lt;br /&gt;
=== Graphical modeller ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
=== GEM integration ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass/trunk/gem GEM] is GRASS Extension Manager. Or use the R packages approach.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalog ===&lt;br /&gt;
&lt;br /&gt;
;'''Status:''' Under development.&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/browser/grass-addons/gui/wxpython/data_catalog Data Catalog]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Catalog.png|350px|thumb|center|Data Catalog ]]&lt;br /&gt;
| [[Image:Aspect.png|350px|thumb|center|Data Catalog]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Current Features:&lt;br /&gt;
&lt;br /&gt;
* copy, delete, rename map layers (raster &amp;amp; vector) in current mapset.&lt;br /&gt;
* view raster &amp;amp; vector map layers from any location and any mapset.&lt;br /&gt;
* Provides a GUI wrapper for r.info &amp;amp; v.info grass commands while viewing map layers in mapwindow.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
;To be implemented:&lt;br /&gt;
&lt;br /&gt;
* copy, move map layers in different mapsets.&lt;br /&gt;
* View DBF files as tables.&lt;br /&gt;
* Copy, delete, rename DBF files.&lt;br /&gt;
* Modify attribute tables.&lt;br /&gt;
* Viewing other formats.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Help browser ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
For browsing manual pages is currently used web browser, the goal is to design integrated help system.&lt;br /&gt;
: HB: ''We used to have one of these for viewing the help pages of Tcl/Tk NVIZ. We dropped it because it was a pain to maintain and generally outside our core mission so a distraction.''&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* See and report in trac: [http://trac.osgeo.org/grass/query?status=new&amp;amp;status=assigned&amp;amp;status=reopened&amp;amp;component=wxGUI&amp;amp;order=priority List of open issues]&lt;br /&gt;
&lt;br /&gt;
* Warning &amp;quot;widget class `GtkPizza' has no property named `row-ending-details'&amp;quot;, http://trac.osgeo.org/grass/ticket/204&lt;br /&gt;
&lt;br /&gt;
=== Platform specific ===&lt;br /&gt;
&lt;br /&gt;
For the GUI to know what platform it's on, and therefore apply platform specific commands (e.g. append '.exe' to programs) it has to test what platform it is running on. Here we take the experimental approach to learning what's best to use. Please add or generalize this list as you can.&lt;br /&gt;
&lt;br /&gt;
Platform information - start Python from the command line then issue&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.platform&lt;br /&gt;
 &lt;br /&gt;
 import os&lt;br /&gt;
 os.name&lt;br /&gt;
 os.environ['OS']&lt;br /&gt;
 &lt;br /&gt;
 import platform&lt;br /&gt;
 platform.system()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Results:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
! Platform &lt;br /&gt;
! sys.platform&lt;br /&gt;
! os.name&lt;br /&gt;
! os.environ['OS']&lt;br /&gt;
! platform.system()&lt;br /&gt;
|-&lt;br /&gt;
| 32bit GNU/Linux&lt;br /&gt;
| linux2&lt;br /&gt;
| posix&lt;br /&gt;
| ''n/a''&lt;br /&gt;
| Linux&lt;br /&gt;
|-&lt;br /&gt;
| 64bit GNU/Linux&lt;br /&gt;
| linux2&lt;br /&gt;
| posix&lt;br /&gt;
| ''n/a''&lt;br /&gt;
| Linux&lt;br /&gt;
|-&lt;br /&gt;
| 32bit Mac OSX (PowerPC G4)&lt;br /&gt;
| darwin&lt;br /&gt;
| posix&lt;br /&gt;
| ''n/a''&lt;br /&gt;
| Darwin&lt;br /&gt;
|-&lt;br /&gt;
| 64bit Mac OSX (Intel)&lt;br /&gt;
| [1] see note&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 32bit MS Windows XP&lt;br /&gt;
| win32&lt;br /&gt;
| nt&lt;br /&gt;
| Windows_NT&lt;br /&gt;
| Windows&lt;br /&gt;
|-&lt;br /&gt;
| 64bit MS Windows Vista&lt;br /&gt;
| win32&lt;br /&gt;
| nt&lt;br /&gt;
| Windows_NT&lt;br /&gt;
| Windows&lt;br /&gt;
|-&lt;br /&gt;
| 32bit MS Windows XP (Cygwin)&lt;br /&gt;
| win32&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] On Fri, May 29, 2009 at 10:49 PM, William Kyngesburye wrote:&lt;br /&gt;
: ''Right now the GUI only runs 32bit, even if the rest of GRASS is 64bit, because it's not yet possible for wxPython to be 64bit.  It comes out the same as PPC 32bit - no distinction between ppc/intel or 32/64 bit, it's all darwin. (yes, I checked, and I have a custom 64bit python executable to verify)''&lt;br /&gt;
&lt;br /&gt;
== General GUI Design ==&lt;br /&gt;
&lt;br /&gt;
=== Layout ===&lt;br /&gt;
&lt;br /&gt;
For some users, the current approach of separate windows (SDI) leads to a windows flooding. Especially on large monitors or dual screen systems catching the wxGUI windows can be tedious when they appear on separate monitors (depends on windows manager, the much used KDE scatters typically the wxGUI windows all over the screen real estate). Almost each task generates a new wxGUI window which is freely floating around on the screen: [http://grass.osgeo.org/grass63/screenshots/images/wxgrass_digit-03.png example 1] and [http://grass.osgeo.org/grass63/screenshots/images/wxgrass_digit-01.png example 2]. On a dual-screen this may sum up to 50cm of distance!&lt;br /&gt;
&lt;br /&gt;
'''Proposed solutions:'''&lt;br /&gt;
* implement ''optional'' layout similar to QGIS (with a legend attached to each display) or [http://sourceforge.net/dbimage.php?id=215336 GSDView] etc) (see figure below)&lt;br /&gt;
* implement ''optional'' magnetic docking of the layer manager and display windows to keep the windows closer&lt;br /&gt;
* do not allow module windows to stay open. That is, get rid of the apply button and force each window to close when OK is pressed (QGIS/ArcGIS approach). This leaves only the display(s) and single legend/layer manager on desktop.&lt;br /&gt;
* If you otherwise wish to continue using your current WM, file a bug report with them asking for better multi-head support and get the problem fixed at the source. (there probably already is a bug filed with tips in it)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgui_current.png|350px|thumb|center|Current wxGUI layout with detached window components]]&lt;br /&gt;
| [[Image:Wxgui_proposal.png|350px|thumb|center|'''Proposal''' for wxGUI layout modification (Recomposition of existing toolbars, mapview and menus)]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''New solution: see data catalog above.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What others do====&lt;br /&gt;
&lt;br /&gt;
'''SDI: (each document opened in application occupies a window on the desktop)'''&lt;br /&gt;
* GRASS: display window for each document (i.e., set of maps displayed) opened on desktop; one legend/layer manager window for all display windows; ; each module/function opens a separate window on the desktop&lt;br /&gt;
* QGIS: display window for each document (i.e., set of maps displayed) opened on the desktop; legend/layer manager window attached to each display window; each module/function opens a separate window on the desktop (e.g. http://grass.osgeo.org/grass61/screenshots/images/qgis08_grass6_toolbox.png)&lt;br /&gt;
* ArcGIS: similar to QGIS with combined legend/display for each document (set of maps displayed); each module/function opens a separate window on the desktop (e.g. http://upload.wikimedia.org/wikipedia/en/9/92/ArcMap.jpg)&lt;br /&gt;
* MapInfo (pre Pitney Bowes): each document opens a map display window on the desktop; single legend/toolbox opened on the desktop controls all visible documents (i.e., map displays); each module/function opens a separate window on the desktop (similar to current GRASS layout)&lt;br /&gt;
&lt;br /&gt;
'''MDI: (a single frame is opened for the application on the desktop; all documents opened inside the application frame)'''&lt;br /&gt;
* SAGA: single application frame opened on the desktop; all documents (display windows) open inside application frame; one legend/layer manager for all display windows; each module/function opens a separate window inside the frame (http://www.saga-gis.uni-goettingen.de/html/images/bild8.gif  and http://sourceforge.net/dbimage.php?id=44455)&lt;br /&gt;
* Ossim: single application frame opened on the desktop; all documents (display windows) open inside application frame; one legend/layer manager for all display windows; each module/function opens a separate window inside the frame (http://www.ossim.org/OSSIM/Albums/Pages/ImageLinker.html)&lt;br /&gt;
* Idrisi: similar to SAGA and Ossim (http://www.clarklabs.org/products/idrisi-taiga.cfm)&lt;br /&gt;
* MapInfo (Pitney Bowes): Seems to be like Saga (http://www.pbinsight.com/support/training/video-tutorials/)&lt;br /&gt;
&lt;br /&gt;
'''''See also'''''&lt;br /&gt;
* Solution to the problem: [http://www.wxwidgets.org/manuals/stable/wx_wxlayoutalgorithm.html wxLayoutAlgorithm]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Multiple_document_interface Multiple document interface] (MDI, windows reside under a single parent window)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Single_document_interface Single document interface] (SDI, separate windows, currently used for wxGUI)&lt;br /&gt;
* and [http://en.wikipedia.org/wiki/Human_interface_guidelines Human interface guidelines] (HIG)&lt;br /&gt;
&lt;br /&gt;
== HowTo ==&lt;br /&gt;
&lt;br /&gt;
* [[Import DXF]]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.poromenos.org/tutorials/python 10 minutes Python tutorial] for programmers of other languages&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[User:Landa|Martin Landa]]: [http://gama.fsv.cvut.cz/~landa/publications/2008/gis-ostrava-08/paper/landa-grass-gui-wxpython.pdf New GUI for GRASS GIS based on wxPython] ([http://gis2008.com/indexe.html GIS Ostrava 2008], January 27-30, 2008, Ostrava, Czech Republic)&lt;br /&gt;
* [[User:Landa|Martin Landa]], Cristina Moretto, Michele Zanolli, Luca Manganelli and Markus Neteler: [http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/paper/grass-gfoss-tn.pdf wxPython-based GUI for GRASS GIS] ([http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/prezentazione/perugia-grass-gui-wxpython.pdf presentation]) ([http://www.grassmeeting2008.unipg.it IX Meeting degli Utenti Italiani di GRASS - GFOSS], February 20-22, Perugia, Italy)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:GUI]]&lt;br /&gt;
[[Category:Python]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=WxPython-based_GUI_for_GRASS&amp;diff=10295</id>
		<title>WxPython-based GUI for GRASS</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=WxPython-based_GUI_for_GRASS&amp;diff=10295"/>
		<updated>2010-02-13T20:14:26Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Layout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also [[GRASS GUI]], [[GRASS and Python]] and [[GRASS SoC Ideas 2009‎]].&lt;br /&gt;
&lt;br /&gt;
For developer-related issues see [http://trac.osgeo.org/grass/wiki/wxGUIDevelopment Trac wxGUI page].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/wxGUI.html Manual page]&lt;br /&gt;
* A nice summary of the progress to date, written by Jachym Cepicky:&lt;br /&gt;
** [http://www.les-ejk.cz/english/wxgrass-new-grass-gui-1 Part 1]&lt;br /&gt;
** [http://www.les-ejk.cz/english/wxgrass-new-grass-gui-2 Part 2]&lt;br /&gt;
* [[User:Landa|Martin Landa]]: [http://gama.fsv.cvut.cz/~landa/publications/2008/gis-ostrava-08/paper/landa-grass-gui-wxpython.pdf New GUI for GRASS GIS based on wxPython] ([http://gis2008.com/indexe.html GIS Ostrava 2008], January 27-30, 2008, Ostrava, Czech Republic)&lt;br /&gt;
* [[User:Landa|Martin Landa]], Cristina Moretto, Michele Zanolli, Luca Manganelli and Markus Neteler: [http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/paper/grass-gfoss-tn.pdf wxPython-based GUI for GRASS GIS] ([http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/prezentazione/perugia-grass-gui-wxpython.pdf presentation]) ([http://www.grassmeeting2008.unipg.it IX Meeting degli Utenti Italiani di GRASS - GFOSS], February 20-22, Perugia, Italy)&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
 &lt;br /&gt;
* [http://svn.osgeo.org/grass/grass/trunk/gui/wxpython/README README]&lt;br /&gt;
&lt;br /&gt;
=== Development ===&lt;br /&gt;
&lt;br /&gt;
Do you want to help with the development?&lt;br /&gt;
&lt;br /&gt;
* basic Python programming ability required&lt;br /&gt;
* GUI programming experience welcomed (especially wxPython)&lt;br /&gt;
* GRASS user (or better developer) experience &lt;br /&gt;
&lt;br /&gt;
How to get [http://trac.osgeo.org/grass/wiki/HowToContribute write access] to the GRASS SVN repository.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
* [http://svn.osgeo.org/grass/grass-addons/screenshots/wxpython SVN]&lt;br /&gt;
* [http://grass.osgeo.org/screenshots/gui.php Website screenshot page]&lt;br /&gt;
* Various screenshots from [[:Category:WxGUI|GRASS-Wiki]]&lt;br /&gt;
&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-startup-gnulinux.png|300px|thumb|Start-up screen]]&lt;br /&gt;
|| &lt;br /&gt;
[[Image:Wxgui-vdigit1-gnulinux.png|300px|thumb|Vector digitizer]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-atm0-gnulinux.png|300px|thumb|Attribute Table Manager]]&lt;br /&gt;
|| &lt;br /&gt;
[[Image:Wxgui-vector-querying-gnulinux.png|300px|thumb|Querying vector map layers (attribute data)]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mac OS ===&lt;br /&gt;
&lt;br /&gt;
=== MS Windows ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-startup-windows1.png|300px|thumb|Start-up screen]]&lt;br /&gt;
|| &lt;br /&gt;
[[Image:Wxgui-d-vect-windows.png|300px|thumb|GUI dialog d.vect]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-atm-windows.png|300px|thumb|Attribute Table Manager]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Wxgui-r-buffer-windows.png|300px|thumb|Running command (r.buffer)]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-vector-querying-windows.png|300px|thumb|Querying vector map layer (editable mode)]]&lt;br /&gt;
||&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== Layer Manager ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
The '''GRASS GIS Layer Manager''' provides an interactive graphical interface to GRASS commands. The Layer Manager includes a set of pull-down menus for all GRASS GIS functions (analysis, file I/O, GIS configuration and management), toolbar that manage display map layers in map display windows, layer tree in which map layers to display are organized, command output window and integrated command line prompt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:wxgrass-gis-manager-layer.png|350px]] || [[Image:wxgrass-gis-manager-output.png|350px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Wxgrass rgb.png|350px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Map display window ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Each '''Map display window''' has a unique set of layers to display and region setting (zoom). The map display window includes main toolbar with basic tools including zooming, panning, data querying, simple analyse functions (measure, profile, histogram, etc.), overlay management, etc. From main toolbar are accessible additional toolbars, currently only Digitization tool is available. Under development is Georectification tool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgrass-mapdisplay-0.png|thumb|350px|center]] ||&lt;br /&gt;
[[Image:Wxgui-mapdisplay-1.png|thumb|350px|center]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module GUIs ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Generated from XML using &amp;lt;tt&amp;gt;--interface-description&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E.g. &amp;lt;tt&amp;gt;d.rgb --help&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Description:&lt;br /&gt;
 Displays three user-specified raster map layers as red, green, and blue overlays in the active graphics frame.&lt;br /&gt;
&lt;br /&gt;
Keywords:&lt;br /&gt;
 display&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 d.rgb [-ox] red=name green=name blue=name [--verbose] [--quiet]&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
  -o   Overlay (non-null values only)&lt;br /&gt;
  -x   Don't add to list of commands in monitor&lt;br /&gt;
 --v   Verbose module output&lt;br /&gt;
 --q   Quiet module output&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
    red   Name of raster map to be used for &amp;lt;red&amp;gt;&lt;br /&gt;
  green   Name of raster map to be used for &amp;lt;green&amp;gt;&lt;br /&gt;
   blue   Name of raster map to be used for &amp;lt;blue&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
becomes with &amp;lt;tt&amp;gt;d.rgb --interface-description&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;!DOCTYPE task SYSTEM &amp;quot;[http://trac.osgeo.org/grass/browser/grass/trunk/gui/xml/grass-interface.dtd grass-interface.dtd]&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;task name=&amp;quot;d.rgb&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;&lt;br /&gt;
                Displays three user-specified raster map layers as red, green, and blue overlays in the active graphics frame.&lt;br /&gt;
        &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;keywords&amp;gt;&lt;br /&gt;
                display&lt;br /&gt;
        &amp;lt;/keywords&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;red&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;yes&amp;quot; multiple=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Name of raster map to be used for &amp;amp;lt;red&amp;amp;gt;&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
                &amp;lt;keydesc&amp;gt;&lt;br /&gt;
                        &amp;lt;item order=&amp;quot;1&amp;quot;&amp;gt;name&amp;lt;/item&amp;gt;&lt;br /&gt;
                &amp;lt;/keydesc&amp;gt;&lt;br /&gt;
                &amp;lt;gisprompt age=&amp;quot;old&amp;quot; element=&amp;quot;cell&amp;quot; prompt=&amp;quot;raster&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/parameter&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;green&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;yes&amp;quot; multiple=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Name of raster map to be used for &amp;amp;lt;green&amp;amp;gt;&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
                &amp;lt;keydesc&amp;gt;&lt;br /&gt;
                        &amp;lt;item order=&amp;quot;1&amp;quot;&amp;gt;name&amp;lt;/item&amp;gt;&lt;br /&gt;
                &amp;lt;/keydesc&amp;gt;&lt;br /&gt;
                &amp;lt;gisprompt age=&amp;quot;old&amp;quot; element=&amp;quot;cell&amp;quot; prompt=&amp;quot;raster&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/parameter&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;blue&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;yes&amp;quot; multiple=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Name of raster map to be used for &amp;amp;lt;blue&amp;amp;gt;&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
                &amp;lt;keydesc&amp;gt;&lt;br /&gt;
                        &amp;lt;item order=&amp;quot;1&amp;quot;&amp;gt;name&amp;lt;/item&amp;gt;&lt;br /&gt;
                &amp;lt;/keydesc&amp;gt;&lt;br /&gt;
                &amp;lt;gisprompt age=&amp;quot;old&amp;quot; element=&amp;quot;cell&amp;quot; prompt=&amp;quot;raster&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/parameter&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;o&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Overlay (non-null values only)&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;x&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Don't add to list of commands in monitor&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;verbose&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Verbose module output&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;quiet&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Quiet module output&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
  &amp;lt;/task&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
which is then used to generate:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxgrass-d-rgb.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Startup GUI ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Start new GRASS session with&lt;br /&gt;
&lt;br /&gt;
 grass -wxpython&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgrass-startup.png|center|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Location wizard ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Wizard for creating new GRASS project location based on:&lt;br /&gt;
&lt;br /&gt;
* Coordinate system&lt;br /&gt;
* EPSG code&lt;br /&gt;
* Georeferenced file&lt;br /&gt;
* PROJ.4 string&lt;br /&gt;
* XY&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS Location Wizard]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgui-location-wizard.png|center|thumb|600px|Location wizard]]&lt;br /&gt;
&lt;br /&gt;
=== Cartography tools ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
==== GUI for ps.map ====&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass63/manuals/html63_user/ps.map.html ps.map] 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 map canvas, 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;
: see also these discussions and pyGTK prototype by Jachym Cepicky&lt;br /&gt;
:* http://thread.gmane.org/gmane.comp.gis.grass.devel/12469&lt;br /&gt;
:* http://thread.gmane.org/gmane.comp.gis.grass.devel/19368&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;
===== Intelligent label placement in ps.map =====&lt;br /&gt;
&lt;br /&gt;
* use PAL/JPAL [http://geosysin.iict.ch/PAL cartographic labelling library] (GPL, C++ language, JNI wrapper)&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;
===== Prototype g-ps.map =====&lt;br /&gt;
* [http://les-ejk.cz/files/programs/grass/gpsmap-0.1.2.tgz gpsmap-0.1.2.tgz]&lt;br /&gt;
* [http://les-ejk.cz/tmp/gpsmap.png g-ps.map Screenshot]&lt;br /&gt;
* [http://www.nabble.com/status-of-g-ps.map-tf4465835.html#a12733414 Jachym's posting]&lt;br /&gt;
&lt;br /&gt;
==== Direct printing ====&lt;br /&gt;
&lt;br /&gt;
Implement direct printing of map canvas content using GRASS PS driver or Cairo driver.&lt;br /&gt;
&lt;br /&gt;
* [http://trac.gispython.org/projects/PCL/wiki Python Cartographic Lab]&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/OSGeo_Cartographic_Library OSGeo Cartographic Library]&lt;br /&gt;
** http://lists.osgeo.org/pipermail/discuss/2008-April/003337.html&lt;br /&gt;
** http://www.intevation.de/pipermail/freegis-list/2007-April/003142.html&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/OSGeo_map_symbol_set OSGeo Map Symbol Set]&lt;br /&gt;
* [http://www.gdal.org/ogr/ogr_feature_style.html OGR - Feature Style Specification]&lt;br /&gt;
* [http://trac.osgeo.org/mapguide/wiki/MapGuideRfc14 MapGuide RFC 14 - Cartographic Stylization Engine]&lt;br /&gt;
&lt;br /&gt;
* [http://www.iho.shom.fr/PUBLICATIONS/download.htm#special S-52 standard for nautical chart (ENC) symbology] and cartography from the [http://www.iho.shom.fr/ International Hydrographic Bureau]&lt;br /&gt;
** [http://openev.cvs.sourceforge.net/openev/contrib/S52/ GPL library implementing the S-52 standard] (OpenEV)&lt;br /&gt;
&lt;br /&gt;
* [http://www.opengeospatial.org/standards/symbol OpenGIS Symbology Encoding Implementation Specification]&lt;br /&gt;
&lt;br /&gt;
* [http://geosysin.iict.ch/trac/wiki/Index4extJPAL PAL]&lt;br /&gt;
&lt;br /&gt;
=== Georectifier ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgui-georectify-0.png|thumb|350px|center]] ||&lt;br /&gt;
[[Image:Wxgui-georectify-1.png|thumb|350px|center]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Profile Analysis Tool ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgui-profile-0.png|thumb|350px|center]] ||&lt;br /&gt;
[[Image:Wxgui-profile-1.png|thumb|350px|center]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vector digitizer ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
[http://grass.osgeo.org/grass64/manuals/html64_user/wxGUI.Vector_Digitizing_Tool.html Manual page].&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS Digitizing tool]].&lt;br /&gt;
&lt;br /&gt;
Replacement of &amp;lt;tt&amp;gt;v.digit&amp;lt;/tt&amp;gt; module integrated to Map display window ([http://svn.osgeo.org/grass/grass-addons/screenshots/wxpython/digitization Screenshots]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:WxDigit200804.png|thumb|300px|center|Vector digitizer (2008/04)]] ||&lt;br /&gt;
[[Image:Digit-01.png|thumb|300px|center|Vector digitizer (2007/11)]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:WxGUI-vdigit-fill-area.png|thumb|300px|center|Vector digitizer - fill valid areas (closed boundary + centroid) (2008/07)]] || &lt;br /&gt;
[[Image:WxGUI-vdigit-bg.png|thumb|300px|center|Vector digitizer - background raster maps with different opacity level (2008/07)]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raster digitizer ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
* r.digit (merge with v.digit?)&lt;br /&gt;
: Probably write a front end for [http://grass.osgeo.org/grass63/manuals/html63_user/r.in.poly.html r.in.poly], that's all the old r.digit is.&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;
===== Category Labels =====&lt;br /&gt;
&lt;br /&gt;
* Write with new r.category import tool&lt;br /&gt;
** ''Back-end component complete: r.category module is now updated to handle a rules= file and other goodies like dynamic labels''&lt;br /&gt;
&lt;br /&gt;
* Read with one of r.category, r.describe, r.report, r.stats, ???&lt;br /&gt;
** probably need to add a new flag to one of those to print flat &amp;lt;tt&amp;gt;&amp;quot;%d %s&amp;quot;, cat, label&amp;lt;/tt&amp;gt;&lt;br /&gt;
: or read the cats/ file directly, it's already flat ascii.&lt;br /&gt;
 &lt;br /&gt;
* how to deal with FP maps &amp;amp; cats?&lt;br /&gt;
&lt;br /&gt;
=== Ortho photos ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
* To replace i.ortho.photo and friends&lt;br /&gt;
&lt;br /&gt;
=== Attribute table manager ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgui-attribute-table-manager.png|right|thumb|350px|Attribute Table Manager]]&lt;br /&gt;
&lt;br /&gt;
;'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
[http://grass.osgeo.org/grass64/manuals/html64_user/wxGUI.Attribute_Table_Manager.html Manual page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Allows:&lt;br /&gt;
&lt;br /&gt;
* To browse attribute data, perform SQL select statements&lt;br /&gt;
* Modify attribute data, insert new records to attribute table, delete existing records&lt;br /&gt;
* Highlight selected items in Map Display Window&lt;br /&gt;
* Extract selected items into new vector map layer&lt;br /&gt;
* Modify attribute table - add, drop, rename columns&lt;br /&gt;
* Modify vector map layer DB connestion settings - add, remove or modify layers&lt;br /&gt;
&lt;br /&gt;
=== NVIZ replacement ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' under development.&lt;br /&gt;
&lt;br /&gt;
Detailed information [[wxNVIZ]].&lt;br /&gt;
&lt;br /&gt;
=== Imagery tools ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' (re)development not started in earnest yet. Some behind-the-scenes code has been prepared, but not much.&lt;br /&gt;
: ''Volunteers welcome!''&lt;br /&gt;
&lt;br /&gt;
=== Graphical modeller ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
=== GEM integration ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass/trunk/gem GEM] is GRASS Extension Manager. Or use the R packages approach.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalog ===&lt;br /&gt;
&lt;br /&gt;
;'''Status:''' Under development.&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/browser/grass-addons/gui/wxpython/data_catalog Data Catalog]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Catalog.png|350px|thumb|center|Data Catalog ]]&lt;br /&gt;
| [[Image:Aspect.png|350px|thumb|center|Data Catalog]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Current Features:&lt;br /&gt;
&lt;br /&gt;
* copy, delete, rename map layers (raster &amp;amp; vector) in current mapset.&lt;br /&gt;
* view raster &amp;amp; vector map layers from any location and any mapset.&lt;br /&gt;
* Provides a GUI wrapper for r.info &amp;amp; v.info grass commands while viewing map layers in mapwindow.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
;To be implemented:&lt;br /&gt;
&lt;br /&gt;
* copy, move map layers in different mapsets.&lt;br /&gt;
* View DBF files as tables.&lt;br /&gt;
* Copy, delete, rename DBF files.&lt;br /&gt;
* Modify attribute tables.&lt;br /&gt;
* Viewing other formats.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Help browser ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
For browsing manual pages is currently used web browser, the goal is to design integrated help system.&lt;br /&gt;
: HB: ''We used to have one of these for viewing the help pages of Tcl/Tk NVIZ. We dropped it because it was a pain to maintain and generally outside our core mission so a distraction.''&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* See and report in trac: [http://trac.osgeo.org/grass/query?status=new&amp;amp;status=assigned&amp;amp;status=reopened&amp;amp;component=wxGUI&amp;amp;order=priority List of open issues]&lt;br /&gt;
&lt;br /&gt;
* Warning &amp;quot;widget class `GtkPizza' has no property named `row-ending-details'&amp;quot;, http://trac.osgeo.org/grass/ticket/204&lt;br /&gt;
&lt;br /&gt;
=== Platform specific ===&lt;br /&gt;
&lt;br /&gt;
For the GUI to know what platform it's on, and therefore apply platform specific commands (e.g. append '.exe' to programs) it has to test what platform it is running on. Here we take the experimental approach to learning what's best to use. Please add or generalize this list as you can.&lt;br /&gt;
&lt;br /&gt;
Platform information - start Python from the command line then issue&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.platform&lt;br /&gt;
 &lt;br /&gt;
 import os&lt;br /&gt;
 os.name&lt;br /&gt;
 os.environ['OS']&lt;br /&gt;
 &lt;br /&gt;
 import platform&lt;br /&gt;
 platform.system()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Results:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
! Platform &lt;br /&gt;
! sys.platform&lt;br /&gt;
! os.name&lt;br /&gt;
! os.environ['OS']&lt;br /&gt;
! platform.system()&lt;br /&gt;
|-&lt;br /&gt;
| 32bit GNU/Linux&lt;br /&gt;
| linux2&lt;br /&gt;
| posix&lt;br /&gt;
| ''n/a''&lt;br /&gt;
| Linux&lt;br /&gt;
|-&lt;br /&gt;
| 64bit GNU/Linux&lt;br /&gt;
| linux2&lt;br /&gt;
| posix&lt;br /&gt;
| ''n/a''&lt;br /&gt;
| Linux&lt;br /&gt;
|-&lt;br /&gt;
| 32bit Mac OSX (PowerPC G4)&lt;br /&gt;
| darwin&lt;br /&gt;
| posix&lt;br /&gt;
| ''n/a''&lt;br /&gt;
| Darwin&lt;br /&gt;
|-&lt;br /&gt;
| 64bit Mac OSX (Intel)&lt;br /&gt;
| [1] see note&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 32bit MS Windows XP&lt;br /&gt;
| win32&lt;br /&gt;
| nt&lt;br /&gt;
| Windows_NT&lt;br /&gt;
| Windows&lt;br /&gt;
|-&lt;br /&gt;
| 64bit MS Windows Vista&lt;br /&gt;
| win32&lt;br /&gt;
| nt&lt;br /&gt;
| Windows_NT&lt;br /&gt;
| Windows&lt;br /&gt;
|-&lt;br /&gt;
| 32bit MS Windows XP (Cygwin)&lt;br /&gt;
| win32&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] On Fri, May 29, 2009 at 10:49 PM, William Kyngesburye wrote:&lt;br /&gt;
: ''Right now the GUI only runs 32bit, even if the rest of GRASS is 64bit, because it's not yet possible for wxPython to be 64bit.  It comes out the same as PPC 32bit - no distinction between ppc/intel or 32/64 bit, it's all darwin. (yes, I checked, and I have a custom 64bit python executable to verify)''&lt;br /&gt;
&lt;br /&gt;
== General GUI Design ==&lt;br /&gt;
&lt;br /&gt;
=== Layout ===&lt;br /&gt;
&lt;br /&gt;
For some users, the current approach of separate windows (SDI) leads to a windows flooding. Especially on large monitors or dual screen systems catching the wxGUI windows can be tedious when they appear on separate monitors (depends on windows manager, the much used KDE scatters typically the wxGUI windows all over the screen real estate). Almost each task generates a new wxGUI window which is freely floating around on the screen: [http://grass.osgeo.org/grass63/screenshots/images/wxgrass_digit-03.png example 1] and [http://grass.osgeo.org/grass63/screenshots/images/wxgrass_digit-01.png example 2]. On a dual-screen this may sum up to 50cm of distance!&lt;br /&gt;
&lt;br /&gt;
'''Proposed solutions:'''&lt;br /&gt;
* implement ''optional'' layout similar to QGIS (with a legend attached to each display) or [http://sourceforge.net/dbimage.php?id=215336 GSDView] etc) (see figure below)&lt;br /&gt;
* implement ''optional'' magnetic docking of the layer manager and display windows to keep the windows closer&lt;br /&gt;
* do not allow module windows to stay open. That is, get rid of the apply button and force each window to close when OK is pressed (QGIS/ArcGIS approach). This leaves only the display(s) and single legend/layer manager on desktop.&lt;br /&gt;
* If you otherwise wish to continue using your current WM, file a bug report with them asking for better multi-head support and get the problem fixed at the source. (there probably already is a bug filed with tips in it)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgui_current.png|350px|thumb|center|Current wxGUI layout with detached window components]]&lt;br /&gt;
| [[Image:Wxgui_proposal.png|350px|thumb|center|'''Proposal''' for wxGUI layout modification (Recomposition of existing toolbars, mapview and menus)]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''New solution: see data catalog above.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====What others do====&lt;br /&gt;
&lt;br /&gt;
'''SDI: (each document opened in application occupies a window on the desktop)'''&lt;br /&gt;
* GRASS: display window for each document (i.e., set of maps displayed) opened on desktop; one legend/layer manager window for all display windows; ; each module/function opens a separate window on the desktop&lt;br /&gt;
* QGIS: display window for each document (i.e., set of maps displayed) opened on the desktop; legend/layer manager window attached to each display window; each module/function opens a separate window on the desktop (e.g. http://grass.osgeo.org/grass61/screenshots/images/qgis08_grass6_toolbox.png)&lt;br /&gt;
* ArcGIS: similar to QGIS with combined legend/display for each document (set of maps displayed); each module/function opens a separate window on the desktop (e.g. http://upload.wikimedia.org/wikipedia/en/9/92/ArcMap.jpg)&lt;br /&gt;
* MapInfo (pre Pitney Bowes): each document opens a map display window on the desktop; single legend/toolbox opened on the desktop controls all visible documents (i.e., map displays); each module/function opens a separate window on the desktop &lt;br /&gt;
&lt;br /&gt;
'''MDI: (a single frame is opened for the application on the desktop; all documents opened inside the application frame)'''&lt;br /&gt;
* SAGA: single application frame opened on the desktop; all documents (display windows) open inside application frame; one legend/layer manager for all display windows; each module/function opens a separate window inside the frame (http://www.saga-gis.uni-goettingen.de/html/images/bild8.gif  and http://sourceforge.net/dbimage.php?id=44455)&lt;br /&gt;
* Ossim: single application frame opened on the desktop; all documents (display windows) open inside application frame; one legend/layer manager for all display windows; each module/function opens a separate window inside the frame (http://www.ossim.org/OSSIM/Albums/Pages/ImageLinker.html)&lt;br /&gt;
* Idrisi: similar to SAGA and Ossim (http://www.clarklabs.org/products/idrisi-taiga.cfm)&lt;br /&gt;
MapInfo (Pitney Bowes): Seems to be like Saga (http://www.pbinsight.com/support/training/video-tutorials/)&lt;br /&gt;
&lt;br /&gt;
'''''See also'''''&lt;br /&gt;
* Solution to the problem: [http://www.wxwidgets.org/manuals/stable/wx_wxlayoutalgorithm.html wxLayoutAlgorithm]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Multiple_document_interface Multiple document interface] (MDI, windows reside under a single parent window)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Single_document_interface Single document interface] (SDI, separate windows, currently used for wxGUI)&lt;br /&gt;
* and [http://en.wikipedia.org/wiki/Human_interface_guidelines Human interface guidelines] (HIG)&lt;br /&gt;
&lt;br /&gt;
== HowTo ==&lt;br /&gt;
&lt;br /&gt;
* [[Import DXF]]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.poromenos.org/tutorials/python 10 minutes Python tutorial] for programmers of other languages&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[User:Landa|Martin Landa]]: [http://gama.fsv.cvut.cz/~landa/publications/2008/gis-ostrava-08/paper/landa-grass-gui-wxpython.pdf New GUI for GRASS GIS based on wxPython] ([http://gis2008.com/indexe.html GIS Ostrava 2008], January 27-30, 2008, Ostrava, Czech Republic)&lt;br /&gt;
* [[User:Landa|Martin Landa]], Cristina Moretto, Michele Zanolli, Luca Manganelli and Markus Neteler: [http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/paper/grass-gfoss-tn.pdf wxPython-based GUI for GRASS GIS] ([http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/prezentazione/perugia-grass-gui-wxpython.pdf presentation]) ([http://www.grassmeeting2008.unipg.it IX Meeting degli Utenti Italiani di GRASS - GFOSS], February 20-22, Perugia, Italy)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:GUI]]&lt;br /&gt;
[[Category:Python]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=WxPython-based_GUI_for_GRASS&amp;diff=10294</id>
		<title>WxPython-based GUI for GRASS</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=WxPython-based_GUI_for_GRASS&amp;diff=10294"/>
		<updated>2010-02-13T19:53:05Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Layout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also [[GRASS GUI]], [[GRASS and Python]] and [[GRASS SoC Ideas 2009‎]].&lt;br /&gt;
&lt;br /&gt;
For developer-related issues see [http://trac.osgeo.org/grass/wiki/wxGUIDevelopment Trac wxGUI page].&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/wxGUI.html Manual page]&lt;br /&gt;
* A nice summary of the progress to date, written by Jachym Cepicky:&lt;br /&gt;
** [http://www.les-ejk.cz/english/wxgrass-new-grass-gui-1 Part 1]&lt;br /&gt;
** [http://www.les-ejk.cz/english/wxgrass-new-grass-gui-2 Part 2]&lt;br /&gt;
* [[User:Landa|Martin Landa]]: [http://gama.fsv.cvut.cz/~landa/publications/2008/gis-ostrava-08/paper/landa-grass-gui-wxpython.pdf New GUI for GRASS GIS based on wxPython] ([http://gis2008.com/indexe.html GIS Ostrava 2008], January 27-30, 2008, Ostrava, Czech Republic)&lt;br /&gt;
* [[User:Landa|Martin Landa]], Cristina Moretto, Michele Zanolli, Luca Manganelli and Markus Neteler: [http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/paper/grass-gfoss-tn.pdf wxPython-based GUI for GRASS GIS] ([http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/prezentazione/perugia-grass-gui-wxpython.pdf presentation]) ([http://www.grassmeeting2008.unipg.it IX Meeting degli Utenti Italiani di GRASS - GFOSS], February 20-22, Perugia, Italy)&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
 &lt;br /&gt;
* [http://svn.osgeo.org/grass/grass/trunk/gui/wxpython/README README]&lt;br /&gt;
&lt;br /&gt;
=== Development ===&lt;br /&gt;
&lt;br /&gt;
Do you want to help with the development?&lt;br /&gt;
&lt;br /&gt;
* basic Python programming ability required&lt;br /&gt;
* GUI programming experience welcomed (especially wxPython)&lt;br /&gt;
* GRASS user (or better developer) experience &lt;br /&gt;
&lt;br /&gt;
How to get [http://trac.osgeo.org/grass/wiki/HowToContribute write access] to the GRASS SVN repository.&lt;br /&gt;
&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&lt;br /&gt;
* [http://svn.osgeo.org/grass/grass-addons/screenshots/wxpython SVN]&lt;br /&gt;
* [http://grass.osgeo.org/screenshots/gui.php Website screenshot page]&lt;br /&gt;
* Various screenshots from [[:Category:WxGUI|GRASS-Wiki]]&lt;br /&gt;
&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-startup-gnulinux.png|300px|thumb|Start-up screen]]&lt;br /&gt;
|| &lt;br /&gt;
[[Image:Wxgui-vdigit1-gnulinux.png|300px|thumb|Vector digitizer]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-atm0-gnulinux.png|300px|thumb|Attribute Table Manager]]&lt;br /&gt;
|| &lt;br /&gt;
[[Image:Wxgui-vector-querying-gnulinux.png|300px|thumb|Querying vector map layers (attribute data)]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mac OS ===&lt;br /&gt;
&lt;br /&gt;
=== MS Windows ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-startup-windows1.png|300px|thumb|Start-up screen]]&lt;br /&gt;
|| &lt;br /&gt;
[[Image:Wxgui-d-vect-windows.png|300px|thumb|GUI dialog d.vect]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-atm-windows.png|300px|thumb|Attribute Table Manager]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Wxgui-r-buffer-windows.png|300px|thumb|Running command (r.buffer)]]&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Wxgui-vector-querying-windows.png|300px|thumb|Querying vector map layer (editable mode)]]&lt;br /&gt;
||&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== Layer Manager ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
The '''GRASS GIS Layer Manager''' provides an interactive graphical interface to GRASS commands. The Layer Manager includes a set of pull-down menus for all GRASS GIS functions (analysis, file I/O, GIS configuration and management), toolbar that manage display map layers in map display windows, layer tree in which map layers to display are organized, command output window and integrated command line prompt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|[[Image:wxgrass-gis-manager-layer.png|350px]] || [[Image:wxgrass-gis-manager-output.png|350px]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Wxgrass rgb.png|350px]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Map display window ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Each '''Map display window''' has a unique set of layers to display and region setting (zoom). The map display window includes main toolbar with basic tools including zooming, panning, data querying, simple analyse functions (measure, profile, histogram, etc.), overlay management, etc. From main toolbar are accessible additional toolbars, currently only Digitization tool is available. Under development is Georectification tool.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgrass-mapdisplay-0.png|thumb|350px|center]] ||&lt;br /&gt;
[[Image:Wxgui-mapdisplay-1.png|thumb|350px|center]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module GUIs ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Generated from XML using &amp;lt;tt&amp;gt;--interface-description&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
E.g. &amp;lt;tt&amp;gt;d.rgb --help&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Description:&lt;br /&gt;
 Displays three user-specified raster map layers as red, green, and blue overlays in the active graphics frame.&lt;br /&gt;
&lt;br /&gt;
Keywords:&lt;br /&gt;
 display&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 d.rgb [-ox] red=name green=name blue=name [--verbose] [--quiet]&lt;br /&gt;
&lt;br /&gt;
Flags:&lt;br /&gt;
  -o   Overlay (non-null values only)&lt;br /&gt;
  -x   Don't add to list of commands in monitor&lt;br /&gt;
 --v   Verbose module output&lt;br /&gt;
 --q   Quiet module output&lt;br /&gt;
&lt;br /&gt;
Parameters:&lt;br /&gt;
    red   Name of raster map to be used for &amp;lt;red&amp;gt;&lt;br /&gt;
  green   Name of raster map to be used for &amp;lt;green&amp;gt;&lt;br /&gt;
   blue   Name of raster map to be used for &amp;lt;blue&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
becomes with &amp;lt;tt&amp;gt;d.rgb --interface-description&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;!DOCTYPE task SYSTEM &amp;quot;[http://trac.osgeo.org/grass/browser/grass/trunk/gui/xml/grass-interface.dtd grass-interface.dtd]&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;task name=&amp;quot;d.rgb&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;&lt;br /&gt;
                Displays three user-specified raster map layers as red, green, and blue overlays in the active graphics frame.&lt;br /&gt;
        &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;keywords&amp;gt;&lt;br /&gt;
                display&lt;br /&gt;
        &amp;lt;/keywords&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;red&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;yes&amp;quot; multiple=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Name of raster map to be used for &amp;amp;lt;red&amp;amp;gt;&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
                &amp;lt;keydesc&amp;gt;&lt;br /&gt;
                        &amp;lt;item order=&amp;quot;1&amp;quot;&amp;gt;name&amp;lt;/item&amp;gt;&lt;br /&gt;
                &amp;lt;/keydesc&amp;gt;&lt;br /&gt;
                &amp;lt;gisprompt age=&amp;quot;old&amp;quot; element=&amp;quot;cell&amp;quot; prompt=&amp;quot;raster&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/parameter&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;green&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;yes&amp;quot; multiple=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Name of raster map to be used for &amp;amp;lt;green&amp;amp;gt;&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
                &amp;lt;keydesc&amp;gt;&lt;br /&gt;
                        &amp;lt;item order=&amp;quot;1&amp;quot;&amp;gt;name&amp;lt;/item&amp;gt;&lt;br /&gt;
                &amp;lt;/keydesc&amp;gt;&lt;br /&gt;
                &amp;lt;gisprompt age=&amp;quot;old&amp;quot; element=&amp;quot;cell&amp;quot; prompt=&amp;quot;raster&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/parameter&amp;gt;&lt;br /&gt;
        &amp;lt;parameter name=&amp;quot;blue&amp;quot; type=&amp;quot;string&amp;quot; required=&amp;quot;yes&amp;quot; multiple=&amp;quot;no&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Name of raster map to be used for &amp;amp;lt;blue&amp;amp;gt;&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
                &amp;lt;keydesc&amp;gt;&lt;br /&gt;
                        &amp;lt;item order=&amp;quot;1&amp;quot;&amp;gt;name&amp;lt;/item&amp;gt;&lt;br /&gt;
                &amp;lt;/keydesc&amp;gt;&lt;br /&gt;
                &amp;lt;gisprompt age=&amp;quot;old&amp;quot; element=&amp;quot;cell&amp;quot; prompt=&amp;quot;raster&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/parameter&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;o&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Overlay (non-null values only)&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;x&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Don't add to list of commands in monitor&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;verbose&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Verbose module output&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
        &amp;lt;flag name=&amp;quot;quiet&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;description&amp;gt;&lt;br /&gt;
                        Quiet module output&lt;br /&gt;
                &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/flag&amp;gt;&lt;br /&gt;
  &amp;lt;/task&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
which is then used to generate:&lt;br /&gt;
&lt;br /&gt;
[[Image:wxgrass-d-rgb.png|center|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Startup GUI ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Start new GRASS session with&lt;br /&gt;
&lt;br /&gt;
 grass -wxpython&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgrass-startup.png|center|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Location wizard ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Wizard for creating new GRASS project location based on:&lt;br /&gt;
&lt;br /&gt;
* Coordinate system&lt;br /&gt;
* EPSG code&lt;br /&gt;
* Georeferenced file&lt;br /&gt;
* PROJ.4 string&lt;br /&gt;
* XY&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS Location Wizard]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgui-location-wizard.png|center|thumb|600px|Location wizard]]&lt;br /&gt;
&lt;br /&gt;
=== Cartography tools ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
==== GUI for ps.map ====&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass63/manuals/html63_user/ps.map.html ps.map] 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 map canvas, 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;
: see also these discussions and pyGTK prototype by Jachym Cepicky&lt;br /&gt;
:* http://thread.gmane.org/gmane.comp.gis.grass.devel/12469&lt;br /&gt;
:* http://thread.gmane.org/gmane.comp.gis.grass.devel/19368&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;
===== Intelligent label placement in ps.map =====&lt;br /&gt;
&lt;br /&gt;
* use PAL/JPAL [http://geosysin.iict.ch/PAL cartographic labelling library] (GPL, C++ language, JNI wrapper)&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;
===== Prototype g-ps.map =====&lt;br /&gt;
* [http://les-ejk.cz/files/programs/grass/gpsmap-0.1.2.tgz gpsmap-0.1.2.tgz]&lt;br /&gt;
* [http://les-ejk.cz/tmp/gpsmap.png g-ps.map Screenshot]&lt;br /&gt;
* [http://www.nabble.com/status-of-g-ps.map-tf4465835.html#a12733414 Jachym's posting]&lt;br /&gt;
&lt;br /&gt;
==== Direct printing ====&lt;br /&gt;
&lt;br /&gt;
Implement direct printing of map canvas content using GRASS PS driver or Cairo driver.&lt;br /&gt;
&lt;br /&gt;
* [http://trac.gispython.org/projects/PCL/wiki Python Cartographic Lab]&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/OSGeo_Cartographic_Library OSGeo Cartographic Library]&lt;br /&gt;
** http://lists.osgeo.org/pipermail/discuss/2008-April/003337.html&lt;br /&gt;
** http://www.intevation.de/pipermail/freegis-list/2007-April/003142.html&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/OSGeo_map_symbol_set OSGeo Map Symbol Set]&lt;br /&gt;
* [http://www.gdal.org/ogr/ogr_feature_style.html OGR - Feature Style Specification]&lt;br /&gt;
* [http://trac.osgeo.org/mapguide/wiki/MapGuideRfc14 MapGuide RFC 14 - Cartographic Stylization Engine]&lt;br /&gt;
&lt;br /&gt;
* [http://www.iho.shom.fr/PUBLICATIONS/download.htm#special S-52 standard for nautical chart (ENC) symbology] and cartography from the [http://www.iho.shom.fr/ International Hydrographic Bureau]&lt;br /&gt;
** [http://openev.cvs.sourceforge.net/openev/contrib/S52/ GPL library implementing the S-52 standard] (OpenEV)&lt;br /&gt;
&lt;br /&gt;
* [http://www.opengeospatial.org/standards/symbol OpenGIS Symbology Encoding Implementation Specification]&lt;br /&gt;
&lt;br /&gt;
* [http://geosysin.iict.ch/trac/wiki/Index4extJPAL PAL]&lt;br /&gt;
&lt;br /&gt;
=== Georectifier ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgui-georectify-0.png|thumb|350px|center]] ||&lt;br /&gt;
[[Image:Wxgui-georectify-1.png|thumb|350px|center]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Profile Analysis Tool ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgui-profile-0.png|thumb|350px|center]] ||&lt;br /&gt;
[[Image:Wxgui-profile-1.png|thumb|350px|center]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Vector digitizer ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
[http://grass.osgeo.org/grass64/manuals/html64_user/wxGUI.Vector_Digitizing_Tool.html Manual page].&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS Digitizing tool]].&lt;br /&gt;
&lt;br /&gt;
Replacement of &amp;lt;tt&amp;gt;v.digit&amp;lt;/tt&amp;gt; module integrated to Map display window ([http://svn.osgeo.org/grass/grass-addons/screenshots/wxpython/digitization Screenshots]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:WxDigit200804.png|thumb|300px|center|Vector digitizer (2008/04)]] ||&lt;br /&gt;
[[Image:Digit-01.png|thumb|300px|center|Vector digitizer (2007/11)]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:WxGUI-vdigit-fill-area.png|thumb|300px|center|Vector digitizer - fill valid areas (closed boundary + centroid) (2008/07)]] || &lt;br /&gt;
[[Image:WxGUI-vdigit-bg.png|thumb|300px|center|Vector digitizer - background raster maps with different opacity level (2008/07)]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Raster digitizer ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
* r.digit (merge with v.digit?)&lt;br /&gt;
: Probably write a front end for [http://grass.osgeo.org/grass63/manuals/html63_user/r.in.poly.html r.in.poly], that's all the old r.digit is.&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;
===== Category Labels =====&lt;br /&gt;
&lt;br /&gt;
* Write with new r.category import tool&lt;br /&gt;
** ''Back-end component complete: r.category module is now updated to handle a rules= file and other goodies like dynamic labels''&lt;br /&gt;
&lt;br /&gt;
* Read with one of r.category, r.describe, r.report, r.stats, ???&lt;br /&gt;
** probably need to add a new flag to one of those to print flat &amp;lt;tt&amp;gt;&amp;quot;%d %s&amp;quot;, cat, label&amp;lt;/tt&amp;gt;&lt;br /&gt;
: or read the cats/ file directly, it's already flat ascii.&lt;br /&gt;
 &lt;br /&gt;
* how to deal with FP maps &amp;amp; cats?&lt;br /&gt;
&lt;br /&gt;
=== Ortho photos ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
* To replace i.ortho.photo and friends&lt;br /&gt;
&lt;br /&gt;
=== Attribute table manager ===&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgui-attribute-table-manager.png|right|thumb|350px|Attribute Table Manager]]&lt;br /&gt;
&lt;br /&gt;
;'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
[http://grass.osgeo.org/grass64/manuals/html64_user/wxGUI.Attribute_Table_Manager.html Manual page].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Allows:&lt;br /&gt;
&lt;br /&gt;
* To browse attribute data, perform SQL select statements&lt;br /&gt;
* Modify attribute data, insert new records to attribute table, delete existing records&lt;br /&gt;
* Highlight selected items in Map Display Window&lt;br /&gt;
* Extract selected items into new vector map layer&lt;br /&gt;
* Modify attribute table - add, drop, rename columns&lt;br /&gt;
* Modify vector map layer DB connestion settings - add, remove or modify layers&lt;br /&gt;
&lt;br /&gt;
=== NVIZ replacement ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' under development.&lt;br /&gt;
&lt;br /&gt;
Detailed information [[wxNVIZ]].&lt;br /&gt;
&lt;br /&gt;
=== Imagery tools ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' (re)development not started in earnest yet. Some behind-the-scenes code has been prepared, but not much.&lt;br /&gt;
: ''Volunteers welcome!''&lt;br /&gt;
&lt;br /&gt;
=== Graphical modeller ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
=== GEM integration ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
[http://trac.osgeo.org/grass/browser/grass/trunk/gem GEM] is GRASS Extension Manager. Or use the R packages approach.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalog ===&lt;br /&gt;
&lt;br /&gt;
;'''Status:''' Under development.&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/browser/grass-addons/gui/wxpython/data_catalog Data Catalog]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Catalog.png|350px|thumb|center|Data Catalog ]]&lt;br /&gt;
| [[Image:Aspect.png|350px|thumb|center|Data Catalog]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Current Features:&lt;br /&gt;
&lt;br /&gt;
* copy, delete, rename map layers (raster &amp;amp; vector) in current mapset.&lt;br /&gt;
* view raster &amp;amp; vector map layers from any location and any mapset.&lt;br /&gt;
* Provides a GUI wrapper for r.info &amp;amp; v.info grass commands while viewing map layers in mapwindow.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
;To be implemented:&lt;br /&gt;
&lt;br /&gt;
* copy, move map layers in different mapsets.&lt;br /&gt;
* View DBF files as tables.&lt;br /&gt;
* Copy, delete, rename DBF files.&lt;br /&gt;
* Modify attribute tables.&lt;br /&gt;
* Viewing other formats.&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== Help browser ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
For browsing manual pages is currently used web browser, the goal is to design integrated help system.&lt;br /&gt;
: HB: ''We used to have one of these for viewing the help pages of Tcl/Tk NVIZ. We dropped it because it was a pain to maintain and generally outside our core mission so a distraction.''&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
* See and report in trac: [http://trac.osgeo.org/grass/query?status=new&amp;amp;status=assigned&amp;amp;status=reopened&amp;amp;component=wxGUI&amp;amp;order=priority List of open issues]&lt;br /&gt;
&lt;br /&gt;
* Warning &amp;quot;widget class `GtkPizza' has no property named `row-ending-details'&amp;quot;, http://trac.osgeo.org/grass/ticket/204&lt;br /&gt;
&lt;br /&gt;
=== Platform specific ===&lt;br /&gt;
&lt;br /&gt;
For the GUI to know what platform it's on, and therefore apply platform specific commands (e.g. append '.exe' to programs) it has to test what platform it is running on. Here we take the experimental approach to learning what's best to use. Please add or generalize this list as you can.&lt;br /&gt;
&lt;br /&gt;
Platform information - start Python from the command line then issue&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 import sys&lt;br /&gt;
 sys.platform&lt;br /&gt;
 &lt;br /&gt;
 import os&lt;br /&gt;
 os.name&lt;br /&gt;
 os.environ['OS']&lt;br /&gt;
 &lt;br /&gt;
 import platform&lt;br /&gt;
 platform.system()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Results:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
! Platform &lt;br /&gt;
! sys.platform&lt;br /&gt;
! os.name&lt;br /&gt;
! os.environ['OS']&lt;br /&gt;
! platform.system()&lt;br /&gt;
|-&lt;br /&gt;
| 32bit GNU/Linux&lt;br /&gt;
| linux2&lt;br /&gt;
| posix&lt;br /&gt;
| ''n/a''&lt;br /&gt;
| Linux&lt;br /&gt;
|-&lt;br /&gt;
| 64bit GNU/Linux&lt;br /&gt;
| linux2&lt;br /&gt;
| posix&lt;br /&gt;
| ''n/a''&lt;br /&gt;
| Linux&lt;br /&gt;
|-&lt;br /&gt;
| 32bit Mac OSX (PowerPC G4)&lt;br /&gt;
| darwin&lt;br /&gt;
| posix&lt;br /&gt;
| ''n/a''&lt;br /&gt;
| Darwin&lt;br /&gt;
|-&lt;br /&gt;
| 64bit Mac OSX (Intel)&lt;br /&gt;
| [1] see note&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|-&lt;br /&gt;
| 32bit MS Windows XP&lt;br /&gt;
| win32&lt;br /&gt;
| nt&lt;br /&gt;
| Windows_NT&lt;br /&gt;
| Windows&lt;br /&gt;
|-&lt;br /&gt;
| 64bit MS Windows Vista&lt;br /&gt;
| win32&lt;br /&gt;
| nt&lt;br /&gt;
| Windows_NT&lt;br /&gt;
| Windows&lt;br /&gt;
|-&lt;br /&gt;
| 32bit MS Windows XP (Cygwin)&lt;br /&gt;
| win32&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
| ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[1] On Fri, May 29, 2009 at 10:49 PM, William Kyngesburye wrote:&lt;br /&gt;
: ''Right now the GUI only runs 32bit, even if the rest of GRASS is 64bit, because it's not yet possible for wxPython to be 64bit.  It comes out the same as PPC 32bit - no distinction between ppc/intel or 32/64 bit, it's all darwin. (yes, I checked, and I have a custom 64bit python executable to verify)''&lt;br /&gt;
&lt;br /&gt;
== General GUI Design ==&lt;br /&gt;
&lt;br /&gt;
=== Layout ===&lt;br /&gt;
&lt;br /&gt;
For some users, the current approach of separate windows (SDI) leads to a windows flooding. Especially on large monitors or dual screen systems catching the wxGUI windows can be tedious when they appear on separate monitors (depends on windows manager, the much used KDE scatters typically the wxGUI windows all over the screen real estate). Almost each task generates a new wxGUI window which is freely floating around on the screen: [http://grass.osgeo.org/grass63/screenshots/images/wxgrass_digit-03.png example 1] and [http://grass.osgeo.org/grass63/screenshots/images/wxgrass_digit-01.png example 2]. On a dual-screen this may sum up to 50cm of distance!&lt;br /&gt;
&lt;br /&gt;
'''Proposed solutions:'''&lt;br /&gt;
* implement ''optional'' layout similar to QGIS (with a legend attached to each display) or [http://sourceforge.net/dbimage.php?id=215336 GSDView] etc) (see figure below)&lt;br /&gt;
* implement ''optional'' magnetic docking of the layer manager and display windows to keep the windows closer&lt;br /&gt;
* If you otherwise wish to continue using your current WM, file a bug report with them asking for better multi-head support and get the problem fixed at the source. (there probably already is a bug filed with tips in it)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:Wxgui_current.png|350px|thumb|center|Current wxGUI layout with detached window components]]&lt;br /&gt;
| [[Image:Wxgui_proposal.png|350px|thumb|center|'''Proposal''' for wxGUI layout modification (Recomposition of existing toolbars, mapview and menus)]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''New solution: see data catalog above.'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''What others do:'''&lt;br /&gt;
* QGIS: all basic parts in one frame with legend integrated: e.g. http://grass.osgeo.org/grass61/screenshots/images/qgis08_grass6_toolbox.png&lt;br /&gt;
* SAGA: several windows in one frame: http://www.saga-gis.uni-goettingen.de/html/images/bild8.gif  and http://sourceforge.net/dbimage.php?id=44455&lt;br /&gt;
&lt;br /&gt;
'''''See also'''''&lt;br /&gt;
* Solution to the problem: [http://www.wxwidgets.org/manuals/stable/wx_wxlayoutalgorithm.html wxLayoutAlgorithm]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Multiple_document_interface Multiple document interface] (MDI, windows reside under a single parent window)&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Single_document_interface Single document interface] (SDI, separate windows, currently used for wxGUI)&lt;br /&gt;
* and [http://en.wikipedia.org/wiki/Human_interface_guidelines Human interface guidelines] (HIG)&lt;br /&gt;
&lt;br /&gt;
== HowTo ==&lt;br /&gt;
&lt;br /&gt;
* [[Import DXF]]&lt;br /&gt;
&lt;br /&gt;
== Useful links ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.poromenos.org/tutorials/python 10 minutes Python tutorial] for programmers of other languages&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[User:Landa|Martin Landa]]: [http://gama.fsv.cvut.cz/~landa/publications/2008/gis-ostrava-08/paper/landa-grass-gui-wxpython.pdf New GUI for GRASS GIS based on wxPython] ([http://gis2008.com/indexe.html GIS Ostrava 2008], January 27-30, 2008, Ostrava, Czech Republic)&lt;br /&gt;
* [[User:Landa|Martin Landa]], Cristina Moretto, Michele Zanolli, Luca Manganelli and Markus Neteler: [http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/paper/grass-gfoss-tn.pdf wxPython-based GUI for GRASS GIS] ([http://gama.fsv.cvut.cz/~landa/publications/2008/gfoss-it-08/prezentazione/perugia-grass-gui-wxpython.pdf presentation]) ([http://www.grassmeeting2008.unipg.it IX Meeting degli Utenti Italiani di GRASS - GFOSS], February 20-22, Perugia, Italy)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:GUI]]&lt;br /&gt;
[[Category:Python]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_7_Terminology&amp;diff=8697</id>
		<title>GRASS 7 Terminology</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_7_Terminology&amp;diff=8697"/>
		<updated>2009-04-27T04:42:54Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Vector layer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is dedicated to discussion about changes in terminology for GRASS 7.&lt;br /&gt;
&lt;br /&gt;
== Map ==&lt;br /&gt;
&lt;br /&gt;
Currently data entities like rasters or vectors are called in GRASS &amp;quot;maps&amp;quot;, i.e. &amp;quot;raster map&amp;quot; or &amp;quot;vector map&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [[User:Landa|ML]]: GRASS is basically '''&amp;quot;layer-based&amp;quot;''' GIS, calling single raster or vector entities as &amp;quot;maps&amp;quot; is quite confusing. Better would be to use term &amp;quot;layer&amp;quot; or &amp;quot;map layer&amp;quot; for this purpose. &amp;quot;Map&amp;quot; can be used for layer composition, e.g. for cartography outputs.&lt;br /&gt;
&lt;br /&gt;
;Proposal(s)&lt;br /&gt;
&lt;br /&gt;
* map layer&lt;br /&gt;
** raster layer&lt;br /&gt;
** 3D raster layer&lt;br /&gt;
** vector layer&lt;br /&gt;
&lt;br /&gt;
== Vector layer ==&lt;br /&gt;
&lt;br /&gt;
The term &amp;quot;vector layer&amp;quot; is currently used even in more confusing sense, to mark subgroup of vector objects in vector entity. Originally called as &amp;quot;field&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [[User:Landa|ML]]: Not sure if to go back to the original term &amp;quot;field&amp;quot; (DB-based) or use something like &amp;quot;sub-layer&amp;quot;.&lt;br /&gt;
* WB: How about calling it &amp;quot;attribute-layer&amp;quot; which connects to an &amp;quot;attribute-table&amp;quot; (DB table)?&lt;br /&gt;
&lt;br /&gt;
;Proposal(s)&lt;br /&gt;
&lt;br /&gt;
* field number&lt;br /&gt;
* key&lt;br /&gt;
** +1 ([[User:cmbarton|Michael]]). This is the proper term in database terminology. A vector must have at least one set of keys (= 1 or more layers). These are currently called &amp;quot;CAT&amp;quot; for category. The history of this is that it parallels the &amp;quot;category&amp;quot; of a raster cell. Back in GRASS 5 and below, vectors were not regularly linked to external tables (although it was possible to link up a PostgreSQL table) and each vector object had an integer identifier (i.e., a category) and a label, just like a raster. However, since Radim rewrote the vector architecture for GRASS 5.7 (6.0 beta) and above, it is used quite differently, as the key field to link vector objects to lines in an attribute data table. This is pretty standard relational database structure. A linked table is not mandatory, but AFAIK, at least 1 &amp;quot;layer&amp;quot; of &amp;quot;cat&amp;quot; values (i.e., key field values) is required for any vector file. So, I suggest that we don't make up a special GRASS term for a key field but just use the term key (or keyfield). Any set of vector objects in a file can have 1 or more key fields. This identifies each vector object with 1 or more keys, and has the potential to link each object to a line in an attribute data table that has a matching key. In GRASS, keys do not have to be unique; this does not keep them from being keys, but is simply a characteristic of GRASS key fields.&lt;br /&gt;
* keyfield&lt;br /&gt;
* table link&lt;br /&gt;
* category set&lt;br /&gt;
** +1 ([[User:Landa|ML]])&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* http://lists.osgeo.org/pipermail/grass-dev/2008-August/039277.html&lt;br /&gt;
* [http://grass.osgeo.org/gdp/html_grass5/terminology.html GRASS 5 terminology]&lt;br /&gt;
* [http://www.nabble.com/terminology-fixes-in-GRASS-td7856076.html#a7856076 GRASS 6 terminology fixes]&lt;br /&gt;
* The terminology is related to '''flags and parameters standardization'''. See [http://trac.osgeo.org/grass/browser/grass/trunk/doc/parms_flags.txt proposal(s)].&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_SoC_Ideas_2009&amp;diff=8515</id>
		<title>GRASS SoC Ideas 2009</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_SoC_Ideas_2009&amp;diff=8515"/>
		<updated>2009-03-26T21:10:49Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2009 summer of code logo final r3-01.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#FFF5E5;&amp;quot;&amp;gt;&lt;br /&gt;
'''March 2009: This page is open to contributions - please edit!'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the GRASS page for [http://wiki.osgeo.org/index.php/Google_Summer_of_Code Google Summer of Code] 2009. Here we will list project ideas and and other information related to the GRASS GSoC projects.&lt;br /&gt;
&lt;br /&gt;
Promotion:&lt;br /&gt;
   OSGeo Flyer at http://svn.osgeo.org/osgeo/marketing/flyer/&lt;br /&gt;
   Videos at      http://code.google.com/p/google-summer-of-code/wiki/Videos&lt;br /&gt;
   More Flyers at http://code.google.com/p/google-summer-of-code/wiki/GsocFlyers&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
([http://code.google.com/opensource/gsoc/2009/faqs.html#0_1_timeline_5354032302481437_ GSoC timeline])&lt;br /&gt;
&lt;br /&gt;
* Community bonding time (getting to know the students)&lt;br /&gt;
* Deadline for student's applications (April 3rd)&lt;br /&gt;
* Accepted proposals announced (April 20th)&lt;br /&gt;
* Work Begins (May 23th)&lt;br /&gt;
* Midterm evaluation (July 6th-13th)&lt;br /&gt;
* Pencils down! (August 10th-17th)&lt;br /&gt;
&lt;br /&gt;
== Required Steps ==&lt;br /&gt;
&lt;br /&gt;
* List ideas&lt;br /&gt;
* Assign Mentors to Ideas&lt;br /&gt;
* Notify OSGeo&lt;br /&gt;
* Mentors evaluate student applications ('''Deadline April 3rd''')&lt;br /&gt;
* April 20st: Accepted students announced&lt;br /&gt;
* Students subscribe to the [http://grass.osgeo.org/community/support.php grass-dev mailing list] and introduce themselves&lt;br /&gt;
* Create directory structure in the [http://trac.osgeo.org/grass/browser/grass-addons GRASS add-ons SVN] for projects and setup access for students&lt;br /&gt;
** Students must read and post agreement to [http://download.osgeo.org/grass/grass6_progman/rfc/ RFC2] to the [http://grass.osgeo.org/community/support.php grass-psc mailing list] to gain SVN access&lt;br /&gt;
** Create a Wiki page for each accepted project, to be used as a progress reporting tool&lt;br /&gt;
* Coding begins...&lt;br /&gt;
* Students and mentors: Complete the Mid-term survey&lt;br /&gt;
* Final commit and packaging for Google&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
* '''Also review ideas from [[GRASS SoC Ideas 2008#Ideas|2008]] which are still open'''.&lt;br /&gt;
* Project ideas of your own are also most welcome.&lt;br /&gt;
&lt;br /&gt;
=== [[wxGUI]] ===&lt;br /&gt;
&lt;br /&gt;
* While the GUI is becoming very powerful, there is potential for improvement of the layout. It is suggested to reorganize the wxGUI layout to be more similar to QGIS and likeminded with all-in-one-frame interface (see figure below). Essentially follow the [http://en.wikipedia.org/wiki/Human_interface_guidelines Human interface guidelines] and mind your users (and where they come from - think newcomers to the GRASS world - &amp;quot;Don't Limit Your User Base&amp;quot; by being too different from others). If possible, this could be implemented as ''skin'' to give users choices to also get wxGUI as Multiple Document Interface (MDI, i.e, the wxGUI windows reside under a single parent window). More [[WxGUI#Layout|here]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgui_current.png|200px|thumb|center|Current wxGUI layout with detached window components]] [[Image:Wxgui_proposal.png|200px|thumb|center|Proposal for wxGUI layout modification (Recomposition of existing toolbars, mapview and menus)]]&lt;br /&gt;
&lt;br /&gt;
* Implement new [[wxGUI#GEM integration|extension manager]] which downloads from GRASS Addons SVN (Unix based systems) or from precompiled Windows binaries ([http://trac.osgeo.org/osgeo4w/ OSGeo4W]?). See the [http://cran.at.r-project.org/web/packages/ R packages manager]&lt;br /&gt;
&lt;br /&gt;
* Continue [[wxNviz]] development for enhanced 3-4D visualization and analysis.&lt;br /&gt;
&lt;br /&gt;
* Implement [[wxGUI#Graphical_modeller|graphical modeller]].&lt;br /&gt;
&lt;br /&gt;
* Develop a [[WxPython-based_GUI_for_GRASS#Cartography_tools|graphical cartographic module]] - something like a GUI front-end or replacement for ps.map&lt;br /&gt;
&lt;br /&gt;
* Create a fully functional command line interface with history within the GUI (see [http://trac.osgeo.org/grass/ticket/528#comment:6 suggestion])&lt;br /&gt;
&lt;br /&gt;
* Develop a GUI module in wxPython for creating animations from multiple maps and saving animation outputs to animated GIF, MOV, or MPEG files.&lt;br /&gt;
&lt;br /&gt;
====Kriging GUI====&lt;br /&gt;
Currently GRASS has no native support for Kriging. Kriging is done either with the R package or with the GStat package. Both are command driven and thus a GUI could be created to control the program. R could be maybe called directly or via a script to do the variograms etc.&lt;br /&gt;
&lt;br /&gt;
Your job would be to create a GUI (in wxPython) that can:&lt;br /&gt;
# Do Kriging based on R&lt;br /&gt;
#* Create and edit R scripts&lt;br /&gt;
#* Call R to do variogram analysis. For efficiency the R environment should be done &lt;br /&gt;
#* Call R to do the actual Kriging. This includes importing the result back to GRASS.&lt;br /&gt;
# Do Kriging based on gstat.&lt;br /&gt;
#* Create and edit GStat command files&lt;br /&gt;
#* Call gstat to do variogram analysis&lt;br /&gt;
#* Call gstat to do the actual Kriging.&lt;br /&gt;
&lt;br /&gt;
: See [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.autokrige v.autokridge] in Addons&lt;br /&gt;
&lt;br /&gt;
'''Willing to Mentor:'''Wolf Bergenheim&lt;br /&gt;
&lt;br /&gt;
* Develop a graphing toolkit that could be used by other modules and by GUI to create analytical graphs like histograms and scatter plots.&lt;br /&gt;
&lt;br /&gt;
=== Raster ===&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] (multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
* Enhance current visibility module to encompass cumulative viewshed analysis and related functions (see [http://www.uni-kiel.de/ufg/ufg_BerDucke.htm B. Ducke's site]). Considerable code already started in AddOns&lt;br /&gt;
&lt;br /&gt;
* Anisotropic spreading simulator. Bring wildfire simulation modules up to date in GRASS 6.4-7 and make them into a more general anisotropic spreading module (useful for other kinds of spreading phenomena).&lt;br /&gt;
&lt;br /&gt;
=== Vector ===&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
* Rewrite {{cmd|v.select}} to implement more spatial operators (currently only &amp;quot;overlap&amp;quot; is available) - see [http://edndoc.esri.com/arcsde/9.0/general_topics/understand_spatial_relations.htm].&lt;br /&gt;
: Probably merge {{cmd|v.select}} with {{cmd|v.overlay}}.&lt;br /&gt;
: ''--HB: I'm not so sure that a merge is justified; they perform two conceptually different tasks. A full-summer project would probably require more than this one task''&lt;br /&gt;
&lt;br /&gt;
* Implement [http://www.vividsolutions.com/JCS/images/Road%20Network%20Matching.gif vector conflation] to match vector networks from different sources (even rasterized streets from aerial/satellite imagery)&lt;br /&gt;
&lt;br /&gt;
* Further development of network analysis, modules for calculating new indicators such as degree, betweenness, etc, a v.net.distance module (see [http://trac.osgeo.org/grass/ticket/521 ticket 521], integration of time tables (train, public transport) into routing, etc.&lt;br /&gt;
&lt;br /&gt;
* Update and enhance vector querying to give full query capabilities to GRASS vectors. See vector querying section of [http://grass.osgeo.org/wiki/GRASS_6.4_Feature_Plan  GRASS 6.4 Feature Plan].&lt;br /&gt;
&lt;br /&gt;
=== Imagery ===&lt;br /&gt;
&lt;br /&gt;
* GRASS's imagery modules (for satellite, scanned maps, and orthophotos) act as enhanced raster modules. In GRASS 5 and 6 they were mostly implimented using interactive X-monitors which are not available in MS Windows and so are removed in the new cross-platform code of GRASS 7.&lt;br /&gt;
** We need someone willing to port the old modules to work with GRASS 7, including writing new wxPython GUI frontends to a number of existing tools and updating the imagery libraries to current raster library standards.&lt;br /&gt;
** In addition, there are a number of improved/automated georectification tools which have not been merged into GRASS 5/6 which it would be nice to have updated and merged into the main code.&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
See the [[Image_processing#Ideas_collection_for_improving_GRASS.27_Image_processing_capabilities|Ideas for imagery improvement]] and [[GRASS_7_ideas_collection#Imagery|GRASS 7 ideas]] wiki pages for more details.&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
* Continue the development of [[WinGRASS_Current_Status|GRASS for Windows]]. We are especially interested in having GRASS work on Windows Vista.&lt;br /&gt;
&lt;br /&gt;
== Guidelines for Students ==&lt;br /&gt;
&lt;br /&gt;
How do you maximize your chances of getting picked? First read the [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Google SoC FAQ]. Then talk to us about your idea. Try emailing [http://lists.osgeo.org/mailman/listinfo/grass-dev our dev-mailing list], or come and talk to us in [[IRC]] (#grass). You can also reach the mentors directly by emailing:&lt;br /&gt;
* Wolf Bergenheim (wolf+grass@bergenheim.net)&lt;br /&gt;
&lt;br /&gt;
=== Getting started with GRASS coding ===&lt;br /&gt;
&lt;br /&gt;
* The source code is maintained in a [http://trac.osgeo.org/grass/browser/grass/trunk SVN server] which is easy to browse&lt;br /&gt;
: Please review the SUBMITTING files there for our coding standards.&lt;br /&gt;
&lt;br /&gt;
* There is lots of good info at the [http://trac.osgeo.org/grass/wiki GRASS Developer's wiki]&lt;br /&gt;
: See also the [[Development|development section]] of the GRASS user's wiki&lt;br /&gt;
&lt;br /&gt;
== Accepted Ideas ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- See: http://code.google.com/soc/2009/osgeo/about.html --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_SoC_Ideas_2009&amp;diff=8509</id>
		<title>GRASS SoC Ideas 2009</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_SoC_Ideas_2009&amp;diff=8509"/>
		<updated>2009-03-26T20:59:33Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* wxGUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2009 summer of code logo final r3-01.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#FFF5E5;&amp;quot;&amp;gt;&lt;br /&gt;
'''March 2009: This page is open to contributions - please edit!'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the GRASS page for [http://wiki.osgeo.org/index.php/Google_Summer_of_Code Google Summer of Code] 2009. Here we will list project ideas and and other information related to the GRASS GSoC projects.&lt;br /&gt;
&lt;br /&gt;
Promotion:&lt;br /&gt;
   OSGeo Flyer at http://svn.osgeo.org/osgeo/marketing/flyer/&lt;br /&gt;
   Videos at      http://code.google.com/p/google-summer-of-code/wiki/Videos&lt;br /&gt;
   More Flyers at http://code.google.com/p/google-summer-of-code/wiki/GsocFlyers&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
([http://code.google.com/opensource/gsoc/2009/faqs.html#0_1_timeline_5354032302481437_ GSoC timeline])&lt;br /&gt;
&lt;br /&gt;
* Community bonding time (getting to know the students)&lt;br /&gt;
* Deadline for student's applications (April 3rd)&lt;br /&gt;
* Accepted proposals announced (April 20th)&lt;br /&gt;
* Work Begins (May 23th)&lt;br /&gt;
* Midterm evaluation (July 6th-13th)&lt;br /&gt;
* Pencils down! (August 10th-17th)&lt;br /&gt;
&lt;br /&gt;
== Required Steps ==&lt;br /&gt;
&lt;br /&gt;
* List ideas&lt;br /&gt;
* Assign Mentors to Ideas&lt;br /&gt;
* Notify OSGeo&lt;br /&gt;
* Mentors evaluate student applications ('''Deadline April 3rd''')&lt;br /&gt;
* April 20st: Accepted students announced&lt;br /&gt;
* Students subscribe to the [http://grass.osgeo.org/community/support.php grass-dev mailing list] and introduce themselves&lt;br /&gt;
* Create directory structure in the [http://trac.osgeo.org/grass/browser/grass-addons GRASS add-ons SVN] for projects and setup access for students&lt;br /&gt;
** Students must read and post agreement to [http://download.osgeo.org/grass/grass6_progman/rfc/ RFC2] to the [http://grass.osgeo.org/community/support.php grass-psc mailing list] to gain SVN access&lt;br /&gt;
** Create a Wiki page for each accepted project, to be used as a progress reporting tool&lt;br /&gt;
* Coding begins...&lt;br /&gt;
* Students and mentors: Complete the Mid-term survey&lt;br /&gt;
* Final commit and packaging for Google&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
* '''Also review ideas from [[GRASS SoC Ideas 2008#Ideas|2008]] which are still open'''.&lt;br /&gt;
* Project ideas of your own are also most welcome.&lt;br /&gt;
&lt;br /&gt;
=== [[wxGUI]] ===&lt;br /&gt;
&lt;br /&gt;
* While the GUI is becoming very powerful, there is potential for improvement of the layout. It is suggested to reorganize the wxGUI layout to be more similar to QGIS and likeminded with all-in-one-frame interface (see figure below). Essentially follow the [http://en.wikipedia.org/wiki/Human_interface_guidelines Human interface guidelines] and mind your users (and where they come from - think newcomers to the GRASS world - &amp;quot;Don't Limit Your User Base&amp;quot; by being too different from others). If possible, this could be implemented as ''skin'' to give users choices to also get wxGUI as Multiple Document Interface (MDI, i.e, the wxGUI windows reside under a single parent window). More [[WxGUI#Layout|here]].&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxgui_current.png|200px|thumb|center|Current wxGUI layout with detached window components]]&lt;br /&gt;
[[Image:Wxgui_proposal.png|200px|thumb|center|Proposal for wxGUI layout modification (Recomposition of existing toolbars, mapview and menus)]]&lt;br /&gt;
&lt;br /&gt;
====GUI/Extension Manager Integration====&lt;br /&gt;
* Implement new [[wxGUI#GEM integration|extension manager]] which downloads from GRASS Addons SVN (Unix based systems) or from precompiled Windows binaries ([http://trac.osgeo.org/osgeo4w/ OSGeo4W]?). See the [http://cran.at.r-project.org/web/packages/ R packages manager]&lt;br /&gt;
&lt;br /&gt;
====Enhance wxNviz for 3-4D visualization====&lt;br /&gt;
* Continue in [[wxNviz]] development.&lt;br /&gt;
&lt;br /&gt;
====Graphical Modeling and Scripter====&lt;br /&gt;
* Implement [[wxGUI#Graphical_modeller|graphical modeller]].&lt;br /&gt;
&lt;br /&gt;
====Cartography GUI====&lt;br /&gt;
* Develop a [[WxPython-based_GUI_for_GRASS#Cartography_tools|graphical cartographic module]] - something like a GUI front-end or replacement for ps.map&lt;br /&gt;
&lt;br /&gt;
====Command Line Interface====&lt;br /&gt;
* Create a fully functional command line interface with history within the GUI (see [http://trac.osgeo.org/grass/ticket/528#comment:6 suggestion])&lt;br /&gt;
&lt;br /&gt;
====Animation GUI====&lt;br /&gt;
* Develop a GUI module in wxPython for creating animations from multiple maps and saving animation outputs to animated GIF, MOV, or MPEG files.&lt;br /&gt;
&lt;br /&gt;
====Kriging GUI====&lt;br /&gt;
Currently GRASS has no native support for Kriging. Kriging is done either with the R package or with the GStat package. Both are command driven and thus a GUI could be created to control the program. R could be maybe called directly or via a script to do the variograms etc.&lt;br /&gt;
&lt;br /&gt;
Your job would be to create a GUI (in wxPython) that can:&lt;br /&gt;
# Do Kriging based on R&lt;br /&gt;
#* Create and edit R scripts&lt;br /&gt;
#* Call R to do variogram analysis. For efficiency the R environment should be done &lt;br /&gt;
#* Call R to do the actual Kriging. This includes importing the result back to GRASS.&lt;br /&gt;
# Do Kriging based on gstat.&lt;br /&gt;
#* Create and edit GStat command files&lt;br /&gt;
#* Call gstat to do variogram analysis&lt;br /&gt;
#* Call gstat to do the actual Kriging.&lt;br /&gt;
&lt;br /&gt;
: See [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.autokrige v.autokridge] in Addons&lt;br /&gt;
&lt;br /&gt;
'''Willing to Mentor:'''Wolf Bergenheim&lt;br /&gt;
====Enhanced Visibility Analysis Tools====&lt;br /&gt;
* Enhance current visibility module to encompass cumulative viewshed analysis and related functions (see [http://www.uni-kiel.de/ufg/ufg_BerDucke.htm B. Ducke's site]). Considerable code already started in AddOns&lt;br /&gt;
&lt;br /&gt;
====Anisotropic spreading simulator====&lt;br /&gt;
* Bring wildfire simulation modules up to date in GRASS 6.4-7 and make them into a more general anisotropic spreading module (useful for other kinds of spreading phenomena).&lt;br /&gt;
&lt;br /&gt;
=== Raster ===&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] (multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
=== Vector ===&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
* Rewrite {{cmd|v.select}} to implement more spatial operators (currently only &amp;quot;overlap&amp;quot; is available) - see [http://edndoc.esri.com/arcsde/9.0/general_topics/understand_spatial_relations.htm].&lt;br /&gt;
: Probably merge {{cmd|v.select}} with {{cmd|v.overlay}}.&lt;br /&gt;
: ''--HB: I'm not so sure that a merge is justified; they perform two conceptually different tasks. A full-summer project would probably require more than this one task''&lt;br /&gt;
&lt;br /&gt;
* Implement [http://www.vividsolutions.com/JCS/images/Road%20Network%20Matching.gif vector conflation] to match vector networks from different sources (even rasterized streets from aerial/satellite imagery)&lt;br /&gt;
&lt;br /&gt;
* Further development of network analysis, modules for calculating new indicators such as degree, betweenness, etc, a v.net.distance module (see [http://trac.osgeo.org/grass/ticket/521 ticket 521], integration of time tables (train, public transport) into routing, etc.&lt;br /&gt;
&lt;br /&gt;
* Update and enhance vector querying to give full query capabilities to GRASS vectors. See vector querying section of [http://grass.osgeo.org/wiki/GRASS_6.4_Feature_Plan  GRASS 6.4 Feature Plan].&lt;br /&gt;
&lt;br /&gt;
=== Imagery ===&lt;br /&gt;
&lt;br /&gt;
* GRASS's imagery modules (for satellite, scanned maps, and orthophotos) act as enhanced raster modules. In GRASS 5 and 6 they were mostly implimented using interactive X-monitors which are not available in MS Windows and so are removed in the new cross-platform code of GRASS 7.&lt;br /&gt;
** We need someone willing to port the old modules to work with GRASS 7, including writing new wxPython GUI frontends to a number of existing tools and updating the imagery libraries to current raster library standards.&lt;br /&gt;
** In addition, there are a number of improved/automated georectification tools which have not been merged into GRASS 5/6 which it would be nice to have updated and merged into the main code.&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
See the [[Image_processing#Ideas_collection_for_improving_GRASS.27_Image_processing_capabilities|Ideas for imagery improvement]] and [[GRASS_7_ideas_collection#Imagery|GRASS 7 ideas]] wiki pages for more details.&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
&lt;br /&gt;
* Continue the development of [[WinGRASS_Current_Status|GRASS for Windows]]. We are especially interested in having GRASS work on Windows Vista.&lt;br /&gt;
&lt;br /&gt;
== Guidelines for Students ==&lt;br /&gt;
&lt;br /&gt;
How do you maximize your chances of getting picked? First read the [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Google SoC FAQ]. Then talk to us about your idea. Try emailing [http://lists.osgeo.org/mailman/listinfo/grass-dev our dev-mailing list], or come and talk to us in [[IRC]] (#grass). You can also reach the mentors directly by emailing:&lt;br /&gt;
* Wolf Bergenheim (wolf+grass@bergenheim.net)&lt;br /&gt;
&lt;br /&gt;
=== Getting started with GRASS coding ===&lt;br /&gt;
&lt;br /&gt;
* The source code is maintained in a [http://trac.osgeo.org/grass/browser/grass/trunk SVN server] which is easy to browse&lt;br /&gt;
: Please review the SUBMITTING files there for our coding standards.&lt;br /&gt;
&lt;br /&gt;
* There is lots of good info at the [http://trac.osgeo.org/grass/wiki GRASS Developer's wiki]&lt;br /&gt;
: See also the [[Development|development section]] of the GRASS user's wiki&lt;br /&gt;
&lt;br /&gt;
== Accepted Ideas ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- See: http://code.google.com/soc/2009/osgeo/about.html --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_SoC_Ideas_2009&amp;diff=8492</id>
		<title>GRASS SoC Ideas 2009</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_SoC_Ideas_2009&amp;diff=8492"/>
		<updated>2009-03-22T16:37:10Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Vector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2009 summer of code logo final r3-01.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#FFF5E5;&amp;quot;&amp;gt;&lt;br /&gt;
'''March 2009: This page is open to contributions - please edit!'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the GRASS page for [http://wiki.osgeo.org/index.php/Google_Summer_of_Code Google Summer of Code] 2009. Here we will list project ideas and and other information related to the GRASS GSoC projects.&lt;br /&gt;
&lt;br /&gt;
Promotion:&lt;br /&gt;
   OSGeo Flyer at http://svn.osgeo.org/osgeo/marketing/flyer/&lt;br /&gt;
   Videos at      http://code.google.com/p/google-summer-of-code/wiki/Videos&lt;br /&gt;
   More Flyers at http://code.google.com/p/google-summer-of-code/wiki/GsocFlyers&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
([http://code.google.com/opensource/gsoc/2009/faqs.html#0_1_timeline_5354032302481437_ GSoC timeline])&lt;br /&gt;
&lt;br /&gt;
* Community bonding time (getting to know the students)&lt;br /&gt;
* Deadline for student's applications (April 3rd)&lt;br /&gt;
* Accepted proposals announced (April 20th)&lt;br /&gt;
* Work Begins (May 23th)&lt;br /&gt;
* Midterm evaluation (July 6th-13th)&lt;br /&gt;
* Pencils down! (August 10th-17th)&lt;br /&gt;
&lt;br /&gt;
== Required Steps ==&lt;br /&gt;
&lt;br /&gt;
* List ideas&lt;br /&gt;
* Assign Mentors to Ideas&lt;br /&gt;
* Notify OSGeo&lt;br /&gt;
* Mentors evaluate student applications ('''Deadline April 3rd''')&lt;br /&gt;
* April 20st: Accepted students announced&lt;br /&gt;
* Students subscribe to the [http://grass.osgeo.org/community/support.php grass-dev mailing list] and introduce themselves&lt;br /&gt;
* Create directory structure in the [http://trac.osgeo.org/grass/browser/grass-addons GRASS add-ons SVN] for projects and setup access for students&lt;br /&gt;
** Students must read and post agreement to [http://download.osgeo.org/grass/grass6_progman/rfc/ RFC2] to the [http://grass.osgeo.org/community/support.php grass-psc mailing list] to gain SVN access&lt;br /&gt;
** Create a Wiki page for each accepted project, to be used as a progress reporting tool&lt;br /&gt;
* Coding begins...&lt;br /&gt;
* Students and mentors: Complete the Mid-term survey&lt;br /&gt;
* Final commit and packaging for Google&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
* '''Also review ideas from [[GRASS SoC Ideas 2008#Ideas|2008]] which are still open'''.&lt;br /&gt;
* Project ideas of your own are also most welcome.&lt;br /&gt;
&lt;br /&gt;
=== [[wxGUI]] ===&lt;br /&gt;
&lt;br /&gt;
* Reorganize the wxGUI layout to be more similar to QGIS and likeminded with all-in-one-frame interface. Essentially follow the [http://en.wikipedia.org/wiki/Human_interface_guidelines Human interface guidelines] mind your users (and where they come from!) and &amp;quot;Don't Limit Your User Base&amp;quot; by being too different from others. This could also be implemented as ''skin'' to give users choices to also get wxGUI as Multiple document interface (i.e, the wxGUI windows reside under a single parent window) . More [[WxGUI#Layout|here]]&lt;br /&gt;
&lt;br /&gt;
* Implement new [[wxGUI#GEM integration|extension manager]] which downloads from GRASS Addons SVN (Unix based systems) or from precompiled Windows binaries (OSgeo4W?). See the [http://cran.at.r-project.org/web/packages/ R packages manager]&lt;br /&gt;
&lt;br /&gt;
* Continue in [[wxNviz]] development.&lt;br /&gt;
&lt;br /&gt;
* Implement [[wxGUI#Graphical_modeller|graphical modeller]].&lt;br /&gt;
&lt;br /&gt;
* Develop a graphical cartographic module - something like a GUI front-end or replacement for ps.map&lt;br /&gt;
&lt;br /&gt;
* Create a fully functional command line interface with history within the GUI&lt;br /&gt;
&lt;br /&gt;
* Develop a GUI module in wxPython for creating animations from multiple maps and saving animation outputs to animated GIF, MOV, or MPEG files.&lt;br /&gt;
&lt;br /&gt;
=== Raster ===&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] (multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
=== Vector ===&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
* Rewrite {{cmd|v.select}} to implement more spatial operators (currently only &amp;quot;overlap&amp;quot; is available) - see [http://edndoc.esri.com/arcsde/9.0/general_topics/understand_spatial_relations.htm].&lt;br /&gt;
: Probably merge {{cmd|v.select}} with {{cmd|v.overlay}}.&lt;br /&gt;
: ''--HB: I'm not so sure that a merge is justified; they perform two conceptually different tasks. A full-summer project would probably require more than this one task''&lt;br /&gt;
&lt;br /&gt;
* Implement [http://www.vividsolutions.com/JCS/images/Road%20Network%20Matching.gif vector conflation] to match vector networks from different sources (even rasterized streets from aerial/satellite imagery)&lt;br /&gt;
&lt;br /&gt;
* Further development of network analysis, modules for calculating new indicators such as degree, betweenness, etc, a v.net.distance module (see [http://trac.osgeo.org/grass/ticket/521 ticket 521], integration of time tables (train, public transport) into routing, etc.&lt;br /&gt;
&lt;br /&gt;
* Update and enhance vector querying to give full query capabilities to GRASS vectors. See vector querying section of [http://grass.osgeo.org/wiki/GRASS_6.4_Feature_Plan  GRASS 6.4 Feature Plan].&lt;br /&gt;
&lt;br /&gt;
=== Imagery ===&lt;br /&gt;
&lt;br /&gt;
* GRASS's imagery modules (for satellite, scanned maps, and orthophotos) act as enhanced raster modules. In GRASS 5 and 6 they were mostly implimented using interactive X-monitors which are not available in MS Windows and so are removed in the new cross-platform code of GRASS 7.&lt;br /&gt;
** We need someone willing to port the old modules to work with GRASS 7, including writing new wxPython GUI frontends to a number of existing tools and updating the imagery libraries to current raster library standards.&lt;br /&gt;
** In addition, there are a number of improved/automated georectification tools which have not been merged into GRASS 5/6 which it would be nice to have updated and merged into the main code.&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
See the [[Image_processing#Ideas_collection_for_improving_GRASS.27_Image_processing_capabilities|Ideas for imagery improvement]] and [[GRASS_7_ideas_collection#Imagery|GRASS 7 ideas]] wiki pages for more details.&lt;br /&gt;
&lt;br /&gt;
== Guidelines for Students ==&lt;br /&gt;
&lt;br /&gt;
How do you maximize your chances of getting picked? First read the [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Google SoC FAQ]. Then talk to us about your idea. Try emailing [http://lists.osgeo.org/mailman/listinfo/grass-dev our dev-mailing list], or come and talk to us in [[IRC]] (#grass). You can also reach the mentors directly by emailing:&lt;br /&gt;
* Wolf Bergenheim (wolf+grass@bergenheim.net)&lt;br /&gt;
&lt;br /&gt;
=== Getting started with GRASS coding ===&lt;br /&gt;
&lt;br /&gt;
* The source code is maintained in a [http://trac.osgeo.org/grass/browser/grass/trunk SVN server] which is easy to browse&lt;br /&gt;
: Please review the SUBMITTING files there for our coding standards.&lt;br /&gt;
&lt;br /&gt;
* There is lots of good info at the [http://trac.osgeo.org/grass/wiki GRASS Developer's wiki]&lt;br /&gt;
: See also the [[Development|development section]] of the GRASS user's wiki&lt;br /&gt;
&lt;br /&gt;
== Accepted Ideas ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- See: http://code.google.com/soc/2009/osgeo/about.html --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_SoC_Ideas_2009&amp;diff=8491</id>
		<title>GRASS SoC Ideas 2009</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_SoC_Ideas_2009&amp;diff=8491"/>
		<updated>2009-03-22T16:31:38Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* wxGUI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:2009 summer of code logo final r3-01.png|right|400px]]&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#FFF5E5;&amp;quot;&amp;gt;&lt;br /&gt;
'''March 2009: This page is open to contributions - please edit!'''&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the GRASS page for [http://wiki.osgeo.org/index.php/Google_Summer_of_Code Google Summer of Code] 2009. Here we will list project ideas and and other information related to the GRASS GSoC projects.&lt;br /&gt;
&lt;br /&gt;
Promotion:&lt;br /&gt;
   OSGeo Flyer at http://svn.osgeo.org/osgeo/marketing/flyer/&lt;br /&gt;
   Videos at      http://code.google.com/p/google-summer-of-code/wiki/Videos&lt;br /&gt;
   More Flyers at http://code.google.com/p/google-summer-of-code/wiki/GsocFlyers&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
([http://code.google.com/opensource/gsoc/2009/faqs.html#0_1_timeline_5354032302481437_ GSoC timeline])&lt;br /&gt;
&lt;br /&gt;
* Community bonding time (getting to know the students)&lt;br /&gt;
* Deadline for student's applications (April 3rd)&lt;br /&gt;
* Accepted proposals announced (April 20th)&lt;br /&gt;
* Work Begins (May 23th)&lt;br /&gt;
* Midterm evaluation (July 6th-13th)&lt;br /&gt;
* Pencils down! (August 10th-17th)&lt;br /&gt;
&lt;br /&gt;
== Required Steps ==&lt;br /&gt;
&lt;br /&gt;
* List ideas&lt;br /&gt;
* Assign Mentors to Ideas&lt;br /&gt;
* Notify OSGeo&lt;br /&gt;
* Mentors evaluate student applications ('''Deadline April 3rd''')&lt;br /&gt;
* April 20st: Accepted students announced&lt;br /&gt;
* Students subscribe to the [http://grass.osgeo.org/community/support.php grass-dev mailing list] and introduce themselves&lt;br /&gt;
* Create directory structure in the [http://trac.osgeo.org/grass/browser/grass-addons GRASS add-ons SVN] for projects and setup access for students&lt;br /&gt;
** Students must read and post agreement to [http://download.osgeo.org/grass/grass6_progman/rfc/ RFC2] to the [http://grass.osgeo.org/community/support.php grass-psc mailing list] to gain SVN access&lt;br /&gt;
** Create a Wiki page for each accepted project, to be used as a progress reporting tool&lt;br /&gt;
* Coding begins...&lt;br /&gt;
* Students and mentors: Complete the Mid-term survey&lt;br /&gt;
* Final commit and packaging for Google&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
* '''Also review ideas from [[GRASS SoC Ideas 2008#Ideas|2008]] which are still open'''.&lt;br /&gt;
* Project ideas of your own are also most welcome.&lt;br /&gt;
&lt;br /&gt;
=== [[wxGUI]] ===&lt;br /&gt;
&lt;br /&gt;
* Reorganize the wxGUI layout to be more similar to QGIS and likeminded with all-in-one-frame interface. Essentially follow the [http://en.wikipedia.org/wiki/Human_interface_guidelines Human interface guidelines] mind your users (and where they come from!) and &amp;quot;Don't Limit Your User Base&amp;quot; by being too different from others. This could also be implemented as ''skin'' to give users choices to also get wxGUI as Multiple document interface (i.e, the wxGUI windows reside under a single parent window) . More [[WxGUI#Layout|here]]&lt;br /&gt;
&lt;br /&gt;
* Implement new [[wxGUI#GEM integration|extension manager]] which downloads from GRASS Addons SVN (Unix based systems) or from precompiled Windows binaries (OSgeo4W?). See the [http://cran.at.r-project.org/web/packages/ R packages manager]&lt;br /&gt;
&lt;br /&gt;
* Continue in [[wxNviz]] development.&lt;br /&gt;
&lt;br /&gt;
* Implement [[wxGUI#Graphical_modeller|graphical modeller]].&lt;br /&gt;
&lt;br /&gt;
* Develop a graphical cartographic module - something like a GUI front-end or replacement for ps.map&lt;br /&gt;
&lt;br /&gt;
* Create a fully functional command line interface with history within the GUI&lt;br /&gt;
&lt;br /&gt;
* Develop a GUI module in wxPython for creating animations from multiple maps and saving animation outputs to animated GIF, MOV, or MPEG files.&lt;br /&gt;
&lt;br /&gt;
=== Raster ===&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] (multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
=== Vector ===&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
* Rewrite {{cmd|v.select}} to implement more spatial operators (currently only &amp;quot;overlap&amp;quot; is available) - see [http://edndoc.esri.com/arcsde/9.0/general_topics/understand_spatial_relations.htm].&lt;br /&gt;
: Probably merge {{cmd|v.select}} with {{cmd|v.overlay}}.&lt;br /&gt;
: ''--HB: I'm not so sure that a merge is justified; they perform two conceptually different tasks. A full-summer project would probably require more than this one task''&lt;br /&gt;
&lt;br /&gt;
* Implement [http://www.vividsolutions.com/JCS/images/Road%20Network%20Matching.gif vector conflation] to match vector networks from different sources (even rasterized streets from aerial/satellite imagery)&lt;br /&gt;
&lt;br /&gt;
* Further development of network analysis, modules for calculating new indicators such as degree, betweenness, etc, a v.net.distance module (see [http://trac.osgeo.org/grass/ticket/521 ticket 521], integration of time tables (train, public transport) into routing, etc.&lt;br /&gt;
&lt;br /&gt;
=== Imagery ===&lt;br /&gt;
&lt;br /&gt;
* GRASS's imagery modules (for satellite, scanned maps, and orthophotos) act as enhanced raster modules. In GRASS 5 and 6 they were mostly implimented using interactive X-monitors which are not available in MS Windows and so are removed in the new cross-platform code of GRASS 7.&lt;br /&gt;
** We need someone willing to port the old modules to work with GRASS 7, including writing new wxPython GUI frontends to a number of existing tools and updating the imagery libraries to current raster library standards.&lt;br /&gt;
** In addition, there are a number of improved/automated georectification tools which have not been merged into GRASS 5/6 which it would be nice to have updated and merged into the main code.&lt;br /&gt;
&lt;br /&gt;
* implement [[OpenMP]] multithreading) as much as possible&lt;br /&gt;
&lt;br /&gt;
See the [[Image_processing#Ideas_collection_for_improving_GRASS.27_Image_processing_capabilities|Ideas for imagery improvement]] and [[GRASS_7_ideas_collection#Imagery|GRASS 7 ideas]] wiki pages for more details.&lt;br /&gt;
&lt;br /&gt;
== Guidelines for Students ==&lt;br /&gt;
&lt;br /&gt;
How do you maximize your chances of getting picked? First read the [http://code.google.com/p/google-summer-of-code/wiki/AdviceforStudents Google SoC FAQ]. Then talk to us about your idea. Try emailing [http://lists.osgeo.org/mailman/listinfo/grass-dev our dev-mailing list], or come and talk to us in [[IRC]] (#grass). You can also reach the mentors directly by emailing:&lt;br /&gt;
* Wolf Bergenheim (wolf+grass@bergenheim.net)&lt;br /&gt;
&lt;br /&gt;
=== Getting started with GRASS coding ===&lt;br /&gt;
&lt;br /&gt;
* The source code is maintained in a [http://trac.osgeo.org/grass/browser/grass/trunk SVN server] which is easy to browse&lt;br /&gt;
: Please review the SUBMITTING files there for our coding standards.&lt;br /&gt;
&lt;br /&gt;
* There is lots of good info at the [http://trac.osgeo.org/grass/wiki GRASS Developer's wiki]&lt;br /&gt;
: See also the [[Development|development section]] of the GRASS user's wiki&lt;br /&gt;
&lt;br /&gt;
== Accepted Ideas ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- See: http://code.google.com/soc/2009/osgeo/about.html --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:GSoC]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Tips_for_Arc_users&amp;diff=5337</id>
		<title>Tips for Arc users</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Tips_for_Arc_users&amp;diff=5337"/>
		<updated>2007-11-21T06:02:48Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Raster import/export commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Working with your ArcGIS data ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Importing ArcGIS Data''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grass provides convertors for importing ESRI shapefiles, e00 files, and many other GIS formats as well. The key Grass programs for importing vector formats are [http://grass.itc.it/grass61/manuals/html61_user/v.in.ogr.html v.in.ogr] (for ESRI shapefiles, MapInfo files, SDTS, TIGER, etc.) and [http://grass.itc.it/grass61/manuals/html61_user/v.in.e00.html v.in.e00] for e00 format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vector import/export commands ===&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/v.in.ogr.html v.in.ogr] - Convert [http://www.gdal.org/ogr OGR] supported vector formats to GRASS vector format.&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/v.out.ogr.html v.out.ogr] - Convert from the GRASS vector format to one of the supported OGR vector formats.&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/v.in.e00.html v.in.e00] - Import a E00 coverage into a GRASS vector map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Import of Shapefiles into Grass ====&lt;br /&gt;
&lt;br /&gt;
specify the directory&lt;br /&gt;
 v.in.ogr dsn=/home/data/navigation_files output=Tracklines layer=Ship_Tracklines&lt;br /&gt;
&lt;br /&gt;
: or just the .shp file name directly&lt;br /&gt;
 v.in.ogr dsn=Ship_Tracklines.shp output=Tracklines&lt;br /&gt;
&lt;br /&gt;
This is the syntax for v.in.ogr in its most basic form. The ''dsn'' parameter corresponds to the directory path of the vector you are trying to import. You can enter a full or relative path. The ''output'' paramter, aptly enough, is the name of your output Grass vector. The ''layer'' parameter is the name of the input vector, be it shapefile, MapInfo file, or what have you.&lt;br /&gt;
&lt;br /&gt;
==== Export of Shapefiles from GRASS ====&lt;br /&gt;
&lt;br /&gt;
Export lines from GRASS vector map to Shapefile format (generates /tmp/testogr.shp and related files): &lt;br /&gt;
&lt;br /&gt;
 v.out.ogr input=multi type=line dsn=/tmp olayer=testogr &lt;br /&gt;
&lt;br /&gt;
Export areas from GRASS vector map to Shapefile format (generates /tmp/testogr.shp and related files): &lt;br /&gt;
&lt;br /&gt;
 v.out.ogr input=multi type=area dsn=/tmp olayer=testogr &lt;br /&gt;
&lt;br /&gt;
Export 3D lines from GRASS vector map to Shapefile format: &lt;br /&gt;
&lt;br /&gt;
 v.out.ogr input=lines_3d type=line dsn=/tmp olayer=testogr lco=&amp;quot;SHPT=ARCZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Raster import/export commands ===&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/r.in.arc.html r.in.arc] - Convert an ESRI ARC/INFO ascii raster file (GRID) into a GRASS (binary) raster map layer.&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/r.out.arc.html r.out.arc] - Converts a GRASS raster map layer into an ESRI ARCGRID file.&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/r.in.gdal.html r.in.gdal] - Import [http://www.gdal.org GDAL] supported raster file into a binary raster map layer.&lt;br /&gt;
** Import a binary ArcInfo raster grid into GRASS:&lt;br /&gt;
 r.in.gdal input=/path/to/map/hdr.adf output=map&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/r.out.gdal.html r.out.gdal] - Exports GRASS raster data into various formats.&lt;br /&gt;
** Export a raster as a GeoTIFF for use with ArcView 3.1:&lt;br /&gt;
 r.out.gdal input=map output=map.tif type=Byte createopt=&amp;quot;INTERLEAVE=PIXEL,COMPRESS=PACKBITS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[GRASS migration hints]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Tips_for_Arc_users&amp;diff=5336</id>
		<title>Tips for Arc users</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Tips_for_Arc_users&amp;diff=5336"/>
		<updated>2007-11-21T05:59:53Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Raster import/export commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Working with your ArcGIS data ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Importing ArcGIS Data''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Grass provides convertors for importing ESRI shapefiles, e00 files, and many other GIS formats as well. The key Grass programs for importing vector formats are [http://grass.itc.it/grass61/manuals/html61_user/v.in.ogr.html v.in.ogr] (for ESRI shapefiles, MapInfo files, SDTS, TIGER, etc.) and [http://grass.itc.it/grass61/manuals/html61_user/v.in.e00.html v.in.e00] for e00 format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Vector import/export commands ===&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/v.in.ogr.html v.in.ogr] - Convert [http://www.gdal.org/ogr OGR] supported vector formats to GRASS vector format.&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/v.out.ogr.html v.out.ogr] - Convert from the GRASS vector format to one of the supported OGR vector formats.&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/v.in.e00.html v.in.e00] - Import a E00 coverage into a GRASS vector map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Import of Shapefiles into Grass ====&lt;br /&gt;
&lt;br /&gt;
specify the directory&lt;br /&gt;
 v.in.ogr dsn=/home/data/navigation_files output=Tracklines layer=Ship_Tracklines&lt;br /&gt;
&lt;br /&gt;
: or just the .shp file name directly&lt;br /&gt;
 v.in.ogr dsn=Ship_Tracklines.shp output=Tracklines&lt;br /&gt;
&lt;br /&gt;
This is the syntax for v.in.ogr in its most basic form. The ''dsn'' parameter corresponds to the directory path of the vector you are trying to import. You can enter a full or relative path. The ''output'' paramter, aptly enough, is the name of your output Grass vector. The ''layer'' parameter is the name of the input vector, be it shapefile, MapInfo file, or what have you.&lt;br /&gt;
&lt;br /&gt;
==== Export of Shapefiles from GRASS ====&lt;br /&gt;
&lt;br /&gt;
Export lines from GRASS vector map to Shapefile format (generates /tmp/testogr.shp and related files): &lt;br /&gt;
&lt;br /&gt;
 v.out.ogr input=multi type=line dsn=/tmp olayer=testogr &lt;br /&gt;
&lt;br /&gt;
Export areas from GRASS vector map to Shapefile format (generates /tmp/testogr.shp and related files): &lt;br /&gt;
&lt;br /&gt;
 v.out.ogr input=multi type=area dsn=/tmp olayer=testogr &lt;br /&gt;
&lt;br /&gt;
Export 3D lines from GRASS vector map to Shapefile format: &lt;br /&gt;
&lt;br /&gt;
 v.out.ogr input=lines_3d type=line dsn=/tmp olayer=testogr lco=&amp;quot;SHPT=ARCZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Raster import/export commands ===&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/r.in.arc.html r.in.arc] - Convert an ESRI ARC/INFO ascii raster file (GRID) into a GRASS (binary) raster map layer.&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/r.out.arc.html r.out.arc] - Converts a GRASS raster map layer into an ESRI ARCGRID file.&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/r.in.gdal.html r.in.gdal] - Import [http://www.gdal.org GDAL] supported raster file into a binary raster map layer.&lt;br /&gt;
** Import a binary ArcInfo raster grid into GRASS:&lt;br /&gt;
 r.in.gdal in=/path/to/map/hdr.adf out=map&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass61/manuals/html61_user/r.out.gdal.html r.out.gdal] - Exports GRASS raster data into various formats.&lt;br /&gt;
** Export a raster as a GeoTIFF for use with ArcView 3.1:&lt;br /&gt;
 r.out.gdal in=map out=map.tif type=Byte createopt=&amp;quot;INTERLEAVE=PIXEL,COMPRESS=PACKBITS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
[[GRASS migration hints]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.3_Feature_Plan&amp;diff=5032</id>
		<title>GRASS 6.3 Feature Plan</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.3_Feature_Plan&amp;diff=5032"/>
		<updated>2007-10-24T06:41:46Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Mostly done? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS 6.3.x feature plan ==&lt;br /&gt;
=== About feature plan ===&lt;br /&gt;
&lt;br /&gt;
To make GRASS releases more often and more predictable, here is GRASS next releases feature plan. This feature plan has to be filled by developers working on GRASS 6.3.&lt;br /&gt;
&lt;br /&gt;
=== TODO GRASS 6.3.0 ===&lt;br /&gt;
There is the release branch for 6.3.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;
==== RC1 ====&lt;br /&gt;
&lt;br /&gt;
''released 24 Oct 2007''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;annoying winGRASS vector/DBMI freeze bug&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;replace r.proj with r.proj.seg&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;d.text with d.text.new&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Windows start script's installed on Linux (grass63.bat etc.) [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=323 #323] and [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=471 #471]&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Makefile cleanups for parallel builds [http://wald.intevation.org/tracker/?func=detail&amp;amp;aid=359&amp;amp;group_id=21&amp;amp;atid=204 #359]&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;r.info and Total Cell count overflow [http://wald.intevation.org/tracker/?func=detail&amp;amp;aid=493&amp;amp;group_id=21&amp;amp;atid=204 #493]&amp;lt;/strike&amp;gt; (Glynn Clements, Brad Douglas)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Makefile cleanups for MS-Windows&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
&lt;br /&gt;
==== RC2 ====&lt;br /&gt;
&lt;br /&gt;
''not released yet''&lt;br /&gt;
&lt;br /&gt;
===== Must do =====&lt;br /&gt;
* complete and stabilize the native [[WinGRASS Current Status|winGRASS port]] (seems to be in a good shape now)&lt;br /&gt;
* g.region vect=map -a issues [http://wald.intevation.org/tracker/index.php?func=detail&amp;amp;aid=489&amp;amp;group_id=21&amp;amp;atid=204 #489]&lt;br /&gt;
* r.out.gdal sets NoData wrong [http://wald.intevation.org/tracker/index.php?func=detail&amp;amp;aid=405&amp;amp;group_id=21&amp;amp;atid=204 #405]&lt;br /&gt;
* Update in Web-CVS: http://grass.itc.it/announces/announce_grass630.html&lt;br /&gt;
&lt;br /&gt;
===== Mostly done? =====&lt;br /&gt;
* r.in.xyz improvements (see GForge patch)&lt;br /&gt;
* v.sample improvements (see GForge patch)&lt;br /&gt;
* v.what.vect improvements (see GForge patch)&lt;br /&gt;
* use GEM for ''GRASS Addons SVN'' - status unclear&lt;br /&gt;
**gis.m menu part of this done (Michael)&lt;br /&gt;
&lt;br /&gt;
===== Wishlist =====&lt;br /&gt;
&lt;br /&gt;
* modify Makefile system to support translated HTML pages. Store translated HTML files in centralized directory with locale specific subdirs, file name is module name.&lt;br /&gt;
* Implement [http://freegis.org/cgi-bin/viewcvs.cgi/*checkout*/grass6/doc/vector/TODO vector improvements] as suggested by Radim&lt;br /&gt;
* Integrate [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/i.points.auto/#_trunk_grassaddons_i.points.auto_ i.points.auto] (merge into i.vpoints) - see also [[Image processing]] - note that A Scianna/Palermo has modernized version&lt;br /&gt;
* Make sqlite the default DB? &amp;lt;- needs more testing, for 6.5? &lt;br /&gt;
* drop d.m display manager (as now almost unmaintained; there is gis.m and/or a python based GUI)&lt;br /&gt;
: Some people still prefer it (see posts to grass-dev) and I will fix bugs in it, but not enhance/add new modules to it without good reason. So I don't see the need to drop it before the WxPython version is ready. It's not hurting us any keeping it. --Hamish&lt;br /&gt;
:: We should keep plain d.mon interface but why keep d.m, if gis.m has become really good? Probably we should clearly state, that d.m is UNMAINTAINED and OBSOLETE? [[User:MarisN|MarisN]] 08:24, 16 February 2007 (CET)&lt;br /&gt;
* raster maps: implement SQL based [[Time series in GRASS|time series support]] (Markus has working code from Soeren; done some improvements)&lt;br /&gt;
* Clean up Makefile system to support extension compilation and installation outside the GRASS installation and without the full GRASS source.  Much like what GEM does, but without needing the module source setup and not limited to installing within the GRASS installation dir.  This could also simplify GEM on the compilation side.  See also general [[Extension development]].&lt;br /&gt;
&lt;br /&gt;
*'''''Updates to vector querying'''''&lt;br /&gt;
*v.select (query using a vector map): &lt;br /&gt;
**add flags -p and -g for text output instead of creating a new map. It would report which map(s) and feature(s)/cat(s) meet the query criteria. &lt;br /&gt;
**allow multiple maps to be selected. This would directly address Eric's question. If the output is a map, it would be the equivalent of v.patch on all queried vector elements.&lt;br /&gt;
**add operators &amp;quot;contains&amp;quot; and &amp;quot;adjacent&amp;quot;. Contains=all vector features whose nodes are completely inside a polygon (or inside or touching the boundary). Adjacent=all vector features who share a node/point or line/boundary with the selecting feature. Because GRASS is topologically correct, adjacency information is readily available.&lt;br /&gt;
**maybe change option names from ainput and binput to selector and selected or queried. This would have to wait until GRASS 7, of course. I find ainput and binput not very clear where used in other vector operations either (maybe I'm just dense). &lt;br /&gt;
&lt;br /&gt;
*v.what (query using coordinates):&lt;br /&gt;
**add flags -p and -g for current behavior (-pg could be the default if we wanted to do this before GRASS 7)&lt;br /&gt;
**add &amp;quot;output=&amp;quot; option to allow v.what to create a new map from the results of its query, like v.select does&lt;br /&gt;
**allow multiple maps for input, as with the suggestion for v.select&lt;br /&gt;
**allow coordinates to be read optionally as a line or area boundary (-l or -a?) instead of only as individual points.&lt;br /&gt;
**add operators overlap, contains, adjacent.(This also would make possible interactive vector selection with a mouse drawn box or polygon from the GUI)&lt;br /&gt;
&lt;br /&gt;
*In other words, have v.select and v.what work the same except that v.select uses a vector map for querying and v.what uses a set of coordinate points.&lt;br /&gt;
&lt;br /&gt;
*v.overlay (boolean combination of maps):&lt;br /&gt;
**drop the ainput and binput. Replace with just input. &lt;br /&gt;
**allow multiple maps to be entered into input, not just 2&lt;br /&gt;
**deprecate v.patch because v.overlay with the OR operator replaces it. (If we wanted to do this before GRASS 7, we'd have to create a new module, maybe named v.combine or something like that because this changes the default behavior of v.overlay).&lt;br /&gt;
&lt;br /&gt;
=== In progress ===&lt;br /&gt;
* native [[WinGRASS Current Status|MS Windows port]]&lt;br /&gt;
* Database connection for v.out.vtk: --[[User:Huhabla|huhabla]] 20:47, 14 August 2006 (CEST)&lt;br /&gt;
** single column support for numerical data (int, float, double)&lt;br /&gt;
** GRASSRGB column support (done for ps.map)&lt;br /&gt;
** multiple column support for vector data&lt;br /&gt;
* rewrite most of the g3d modules to fulfill the grass function naming convention --[[User:Huhabla|huhabla]] 20:47, 14 August 2006 (CEST)&lt;br /&gt;
* adding further (organized) keywords to every grass command and script [http://grass.itc.it/pipermail/grass-dev/2006-August/025164.html] and [http://grass.itc.it/pipermail/grass-dev/2006-August/025190.html]:&lt;br /&gt;
** display commands&lt;br /&gt;
** database commands&lt;br /&gt;
** general commands&lt;br /&gt;
** imagery commands&lt;br /&gt;
** misc commands&lt;br /&gt;
** paint commands&lt;br /&gt;
** photo commands&lt;br /&gt;
** postscript commands&lt;br /&gt;
** raster commands&lt;br /&gt;
** raster3D commands&lt;br /&gt;
** vector commands&lt;br /&gt;
* continue with [[WxPython-based GUI for GRASS]]&lt;br /&gt;
* &amp;lt;strike&amp;gt;write (Python based?) GUI wizard to create new locations&amp;lt;/strike&amp;gt; (done by Jachym and Michael, see [[WxPython-based GUI for GRASS]])&lt;br /&gt;
** This is done. AFAICT it works really well (IIDSSM). It will create locations using EPSG, georeferenced files, custom selection of projection parameters, and xy locations. You can also set default extents (DEFAULT_WIND).&lt;br /&gt;
* improve Python-SWIG interface&lt;br /&gt;
* less verbose commands (work in progress)&lt;br /&gt;
* BLAS/LAPACK updates (Brad)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Release Roadmap]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.3_Feature_Plan&amp;diff=5031</id>
		<title>GRASS 6.3 Feature Plan</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.3_Feature_Plan&amp;diff=5031"/>
		<updated>2007-10-24T06:40:47Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Wishlist */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS 6.3.x feature plan ==&lt;br /&gt;
=== About feature plan ===&lt;br /&gt;
&lt;br /&gt;
To make GRASS releases more often and more predictable, here is GRASS next releases feature plan. This feature plan has to be filled by developers working on GRASS 6.3.&lt;br /&gt;
&lt;br /&gt;
=== TODO GRASS 6.3.0 ===&lt;br /&gt;
There is the release branch for 6.3.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;
==== RC1 ====&lt;br /&gt;
&lt;br /&gt;
''released 24 Oct 2007''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;annoying winGRASS vector/DBMI freeze bug&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;replace r.proj with r.proj.seg&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;d.text with d.text.new&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Windows start script's installed on Linux (grass63.bat etc.) [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=323 #323] and [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=471 #471]&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Makefile cleanups for parallel builds [http://wald.intevation.org/tracker/?func=detail&amp;amp;aid=359&amp;amp;group_id=21&amp;amp;atid=204 #359]&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;r.info and Total Cell count overflow [http://wald.intevation.org/tracker/?func=detail&amp;amp;aid=493&amp;amp;group_id=21&amp;amp;atid=204 #493]&amp;lt;/strike&amp;gt; (Glynn Clements, Brad Douglas)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Makefile cleanups for MS-Windows&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
&lt;br /&gt;
==== RC2 ====&lt;br /&gt;
&lt;br /&gt;
''not released yet''&lt;br /&gt;
&lt;br /&gt;
===== Must do =====&lt;br /&gt;
* complete and stabilize the native [[WinGRASS Current Status|winGRASS port]] (seems to be in a good shape now)&lt;br /&gt;
* g.region vect=map -a issues [http://wald.intevation.org/tracker/index.php?func=detail&amp;amp;aid=489&amp;amp;group_id=21&amp;amp;atid=204 #489]&lt;br /&gt;
* r.out.gdal sets NoData wrong [http://wald.intevation.org/tracker/index.php?func=detail&amp;amp;aid=405&amp;amp;group_id=21&amp;amp;atid=204 #405]&lt;br /&gt;
* Update in Web-CVS: http://grass.itc.it/announces/announce_grass630.html&lt;br /&gt;
&lt;br /&gt;
===== Mostly done? =====&lt;br /&gt;
* r.in.xyz improvements (see GForge patch)&lt;br /&gt;
* v.sample improvements (see GForge patch)&lt;br /&gt;
* v.what.vect improvements (see GForge patch)&lt;br /&gt;
* use GEM for ''GRASS Addons SVN'' - status unclear&lt;br /&gt;
&lt;br /&gt;
===== Wishlist =====&lt;br /&gt;
&lt;br /&gt;
* modify Makefile system to support translated HTML pages. Store translated HTML files in centralized directory with locale specific subdirs, file name is module name.&lt;br /&gt;
* Implement [http://freegis.org/cgi-bin/viewcvs.cgi/*checkout*/grass6/doc/vector/TODO vector improvements] as suggested by Radim&lt;br /&gt;
* Integrate [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/i.points.auto/#_trunk_grassaddons_i.points.auto_ i.points.auto] (merge into i.vpoints) - see also [[Image processing]] - note that A Scianna/Palermo has modernized version&lt;br /&gt;
* Make sqlite the default DB? &amp;lt;- needs more testing, for 6.5? &lt;br /&gt;
* drop d.m display manager (as now almost unmaintained; there is gis.m and/or a python based GUI)&lt;br /&gt;
: Some people still prefer it (see posts to grass-dev) and I will fix bugs in it, but not enhance/add new modules to it without good reason. So I don't see the need to drop it before the WxPython version is ready. It's not hurting us any keeping it. --Hamish&lt;br /&gt;
:: We should keep plain d.mon interface but why keep d.m, if gis.m has become really good? Probably we should clearly state, that d.m is UNMAINTAINED and OBSOLETE? [[User:MarisN|MarisN]] 08:24, 16 February 2007 (CET)&lt;br /&gt;
* raster maps: implement SQL based [[Time series in GRASS|time series support]] (Markus has working code from Soeren; done some improvements)&lt;br /&gt;
* Clean up Makefile system to support extension compilation and installation outside the GRASS installation and without the full GRASS source.  Much like what GEM does, but without needing the module source setup and not limited to installing within the GRASS installation dir.  This could also simplify GEM on the compilation side.  See also general [[Extension development]].&lt;br /&gt;
&lt;br /&gt;
*'''''Updates to vector querying'''''&lt;br /&gt;
*v.select (query using a vector map): &lt;br /&gt;
**add flags -p and -g for text output instead of creating a new map. It would report which map(s) and feature(s)/cat(s) meet the query criteria. &lt;br /&gt;
**allow multiple maps to be selected. This would directly address Eric's question. If the output is a map, it would be the equivalent of v.patch on all queried vector elements.&lt;br /&gt;
**add operators &amp;quot;contains&amp;quot; and &amp;quot;adjacent&amp;quot;. Contains=all vector features whose nodes are completely inside a polygon (or inside or touching the boundary). Adjacent=all vector features who share a node/point or line/boundary with the selecting feature. Because GRASS is topologically correct, adjacency information is readily available.&lt;br /&gt;
**maybe change option names from ainput and binput to selector and selected or queried. This would have to wait until GRASS 7, of course. I find ainput and binput not very clear where used in other vector operations either (maybe I'm just dense). &lt;br /&gt;
&lt;br /&gt;
*v.what (query using coordinates):&lt;br /&gt;
**add flags -p and -g for current behavior (-pg could be the default if we wanted to do this before GRASS 7)&lt;br /&gt;
**add &amp;quot;output=&amp;quot; option to allow v.what to create a new map from the results of its query, like v.select does&lt;br /&gt;
**allow multiple maps for input, as with the suggestion for v.select&lt;br /&gt;
**allow coordinates to be read optionally as a line or area boundary (-l or -a?) instead of only as individual points.&lt;br /&gt;
**add operators overlap, contains, adjacent.(This also would make possible interactive vector selection with a mouse drawn box or polygon from the GUI)&lt;br /&gt;
&lt;br /&gt;
*In other words, have v.select and v.what work the same except that v.select uses a vector map for querying and v.what uses a set of coordinate points.&lt;br /&gt;
&lt;br /&gt;
*v.overlay (boolean combination of maps):&lt;br /&gt;
**drop the ainput and binput. Replace with just input. &lt;br /&gt;
**allow multiple maps to be entered into input, not just 2&lt;br /&gt;
**deprecate v.patch because v.overlay with the OR operator replaces it. (If we wanted to do this before GRASS 7, we'd have to create a new module, maybe named v.combine or something like that because this changes the default behavior of v.overlay).&lt;br /&gt;
&lt;br /&gt;
=== In progress ===&lt;br /&gt;
* native [[WinGRASS Current Status|MS Windows port]]&lt;br /&gt;
* Database connection for v.out.vtk: --[[User:Huhabla|huhabla]] 20:47, 14 August 2006 (CEST)&lt;br /&gt;
** single column support for numerical data (int, float, double)&lt;br /&gt;
** GRASSRGB column support (done for ps.map)&lt;br /&gt;
** multiple column support for vector data&lt;br /&gt;
* rewrite most of the g3d modules to fulfill the grass function naming convention --[[User:Huhabla|huhabla]] 20:47, 14 August 2006 (CEST)&lt;br /&gt;
* adding further (organized) keywords to every grass command and script [http://grass.itc.it/pipermail/grass-dev/2006-August/025164.html] and [http://grass.itc.it/pipermail/grass-dev/2006-August/025190.html]:&lt;br /&gt;
** display commands&lt;br /&gt;
** database commands&lt;br /&gt;
** general commands&lt;br /&gt;
** imagery commands&lt;br /&gt;
** misc commands&lt;br /&gt;
** paint commands&lt;br /&gt;
** photo commands&lt;br /&gt;
** postscript commands&lt;br /&gt;
** raster commands&lt;br /&gt;
** raster3D commands&lt;br /&gt;
** vector commands&lt;br /&gt;
* continue with [[WxPython-based GUI for GRASS]]&lt;br /&gt;
* &amp;lt;strike&amp;gt;write (Python based?) GUI wizard to create new locations&amp;lt;/strike&amp;gt; (done by Jachym and Michael, see [[WxPython-based GUI for GRASS]])&lt;br /&gt;
** This is done. AFAICT it works really well (IIDSSM). It will create locations using EPSG, georeferenced files, custom selection of projection parameters, and xy locations. You can also set default extents (DEFAULT_WIND).&lt;br /&gt;
* improve Python-SWIG interface&lt;br /&gt;
* less verbose commands (work in progress)&lt;br /&gt;
* BLAS/LAPACK updates (Brad)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Release Roadmap]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.3_Feature_Plan&amp;diff=5030</id>
		<title>GRASS 6.3 Feature Plan</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.3_Feature_Plan&amp;diff=5030"/>
		<updated>2007-10-24T05:40:14Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* In progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS 6.3.x feature plan ==&lt;br /&gt;
=== About feature plan ===&lt;br /&gt;
&lt;br /&gt;
To make GRASS releases more often and more predictable, here is GRASS next releases feature plan. This feature plan has to be filled by developers working on GRASS 6.3.&lt;br /&gt;
&lt;br /&gt;
=== TODO GRASS 6.3.0 ===&lt;br /&gt;
There is the release branch for 6.3.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;
==== RC1 ====&lt;br /&gt;
&lt;br /&gt;
''released 24 Oct 2007''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;annoying winGRASS vector/DBMI freeze bug&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;replace r.proj with r.proj.seg&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;d.text with d.text.new&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Windows start script's installed on Linux (grass63.bat etc.) [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=323 #323] and [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=471 #471]&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Makefile cleanups for parallel builds [http://wald.intevation.org/tracker/?func=detail&amp;amp;aid=359&amp;amp;group_id=21&amp;amp;atid=204 #359]&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;r.info and Total Cell count overflow [http://wald.intevation.org/tracker/?func=detail&amp;amp;aid=493&amp;amp;group_id=21&amp;amp;atid=204 #493]&amp;lt;/strike&amp;gt; (Glynn Clements, Brad Douglas)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Makefile cleanups for MS-Windows&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
&lt;br /&gt;
==== RC2 ====&lt;br /&gt;
&lt;br /&gt;
''not released yet''&lt;br /&gt;
&lt;br /&gt;
===== Must do =====&lt;br /&gt;
* complete and stabilize the native [[WinGRASS Current Status|winGRASS port]] (seems to be in a good shape now)&lt;br /&gt;
* g.region vect=map -a issues [http://wald.intevation.org/tracker/index.php?func=detail&amp;amp;aid=489&amp;amp;group_id=21&amp;amp;atid=204 #489]&lt;br /&gt;
* r.out.gdal sets NoData wrong [http://wald.intevation.org/tracker/index.php?func=detail&amp;amp;aid=405&amp;amp;group_id=21&amp;amp;atid=204 #405]&lt;br /&gt;
* Update in Web-CVS: http://grass.itc.it/announces/announce_grass630.html&lt;br /&gt;
&lt;br /&gt;
===== Mostly done? =====&lt;br /&gt;
* r.in.xyz improvements (see GForge patch)&lt;br /&gt;
* v.sample improvements (see GForge patch)&lt;br /&gt;
* v.what.vect improvements (see GForge patch)&lt;br /&gt;
* use GEM for ''GRASS Addons SVN'' - status unclear&lt;br /&gt;
&lt;br /&gt;
===== Wishlist =====&lt;br /&gt;
&lt;br /&gt;
* modify Makefile system to support translated HTML pages. Store translated HTML files in centralized directory with locale specific subdirs, file name is module name.&lt;br /&gt;
* Implement [http://freegis.org/cgi-bin/viewcvs.cgi/*checkout*/grass6/doc/vector/TODO vector improvements] as suggested by Radim&lt;br /&gt;
* Integrate [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/i.points.auto/#_trunk_grassaddons_i.points.auto_ i.points.auto] (merge into i.vpoints) - see also [[Image processing]] - note that A Scianna/Palermo has modernized version&lt;br /&gt;
* Make sqlite the default DB? &amp;lt;- needs more testing, for 6.5? &lt;br /&gt;
* drop d.m display manager (as now almost unmaintained; there is gis.m and/or a python based GUI)&lt;br /&gt;
: Some people still prefer it (see posts to grass-dev) and I will fix bugs in it, but not enhance/add new modules to it without good reason. So I don't see the need to drop it before the WxPython version is ready. It's not hurting us any keeping it. --Hamish&lt;br /&gt;
:: We should keep plain d.mon interface but why keep d.m, if gis.m has become really good? Probably we should clearly state, that d.m is UNMAINTAINED and OBSOLETE? [[User:MarisN|MarisN]] 08:24, 16 February 2007 (CET)&lt;br /&gt;
* raster maps: implement SQL based [[Time series in GRASS|time series support]] (Markus has working code from Soeren; done some improvements)&lt;br /&gt;
* Clean up Makefile system to support extension compilation and installation outside the GRASS installation and without the full GRASS source.  Much like what GEM does, but without needing the module source setup and not limited to installing within the GRASS installation dir.  This could also simplify GEM on the compilation side.  See also general [[Extension development]].&lt;br /&gt;
&lt;br /&gt;
=== In progress ===&lt;br /&gt;
* native [[WinGRASS Current Status|MS Windows port]]&lt;br /&gt;
* Database connection for v.out.vtk: --[[User:Huhabla|huhabla]] 20:47, 14 August 2006 (CEST)&lt;br /&gt;
** single column support for numerical data (int, float, double)&lt;br /&gt;
** GRASSRGB column support (done for ps.map)&lt;br /&gt;
** multiple column support for vector data&lt;br /&gt;
* rewrite most of the g3d modules to fulfill the grass function naming convention --[[User:Huhabla|huhabla]] 20:47, 14 August 2006 (CEST)&lt;br /&gt;
* adding further (organized) keywords to every grass command and script [http://grass.itc.it/pipermail/grass-dev/2006-August/025164.html] and [http://grass.itc.it/pipermail/grass-dev/2006-August/025190.html]:&lt;br /&gt;
** display commands&lt;br /&gt;
** database commands&lt;br /&gt;
** general commands&lt;br /&gt;
** imagery commands&lt;br /&gt;
** misc commands&lt;br /&gt;
** paint commands&lt;br /&gt;
** photo commands&lt;br /&gt;
** postscript commands&lt;br /&gt;
** raster commands&lt;br /&gt;
** raster3D commands&lt;br /&gt;
** vector commands&lt;br /&gt;
* continue with [[WxPython-based GUI for GRASS]]&lt;br /&gt;
* &amp;lt;strike&amp;gt;write (Python based?) GUI wizard to create new locations&amp;lt;/strike&amp;gt; (done by Jachym and Michael, see [[WxPython-based GUI for GRASS]])&lt;br /&gt;
** This is done. AFAICT it works really well (IIDSSM). It will create locations using EPSG, georeferenced files, custom selection of projection parameters, and xy locations. You can also set default extents (DEFAULT_WIND).&lt;br /&gt;
* improve Python-SWIG interface&lt;br /&gt;
* less verbose commands (work in progress)&lt;br /&gt;
* BLAS/LAPACK updates (Brad)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Release Roadmap]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.3_Feature_Plan&amp;diff=5029</id>
		<title>GRASS 6.3 Feature Plan</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_6.3_Feature_Plan&amp;diff=5029"/>
		<updated>2007-10-24T05:38:15Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* In progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS 6.3.x feature plan ==&lt;br /&gt;
=== About feature plan ===&lt;br /&gt;
&lt;br /&gt;
To make GRASS releases more often and more predictable, here is GRASS next releases feature plan. This feature plan has to be filled by developers working on GRASS 6.3.&lt;br /&gt;
&lt;br /&gt;
=== TODO GRASS 6.3.0 ===&lt;br /&gt;
There is the release branch for 6.3.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;
==== RC1 ====&lt;br /&gt;
&lt;br /&gt;
''released 24 Oct 2007''&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;annoying winGRASS vector/DBMI freeze bug&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;replace r.proj with r.proj.seg&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;d.text with d.text.new&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Windows start script's installed on Linux (grass63.bat etc.) [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=323 #323] and [http://wald.intevation.org/tracker/?group_id=21&amp;amp;atid=204&amp;amp;func=detail&amp;amp;aid=471 #471]&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Makefile cleanups for parallel builds [http://wald.intevation.org/tracker/?func=detail&amp;amp;aid=359&amp;amp;group_id=21&amp;amp;atid=204 #359]&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
* &amp;lt;strike&amp;gt;r.info and Total Cell count overflow [http://wald.intevation.org/tracker/?func=detail&amp;amp;aid=493&amp;amp;group_id=21&amp;amp;atid=204 #493]&amp;lt;/strike&amp;gt; (Glynn Clements, Brad Douglas)&lt;br /&gt;
* &amp;lt;strike&amp;gt;Makefile cleanups for MS-Windows&amp;lt;/strike&amp;gt; (Glynn Clements)&lt;br /&gt;
&lt;br /&gt;
==== RC2 ====&lt;br /&gt;
&lt;br /&gt;
''not released yet''&lt;br /&gt;
&lt;br /&gt;
===== Must do =====&lt;br /&gt;
* complete and stabilize the native [[WinGRASS Current Status|winGRASS port]] (seems to be in a good shape now)&lt;br /&gt;
* g.region vect=map -a issues [http://wald.intevation.org/tracker/index.php?func=detail&amp;amp;aid=489&amp;amp;group_id=21&amp;amp;atid=204 #489]&lt;br /&gt;
* r.out.gdal sets NoData wrong [http://wald.intevation.org/tracker/index.php?func=detail&amp;amp;aid=405&amp;amp;group_id=21&amp;amp;atid=204 #405]&lt;br /&gt;
* Update in Web-CVS: http://grass.itc.it/announces/announce_grass630.html&lt;br /&gt;
&lt;br /&gt;
===== Mostly done? =====&lt;br /&gt;
* r.in.xyz improvements (see GForge patch)&lt;br /&gt;
* v.sample improvements (see GForge patch)&lt;br /&gt;
* v.what.vect improvements (see GForge patch)&lt;br /&gt;
* use GEM for ''GRASS Addons SVN'' - status unclear&lt;br /&gt;
&lt;br /&gt;
===== Wishlist =====&lt;br /&gt;
&lt;br /&gt;
* modify Makefile system to support translated HTML pages. Store translated HTML files in centralized directory with locale specific subdirs, file name is module name.&lt;br /&gt;
* Implement [http://freegis.org/cgi-bin/viewcvs.cgi/*checkout*/grass6/doc/vector/TODO vector improvements] as suggested by Radim&lt;br /&gt;
* Integrate [https://grasssvn.itc.it/grasssvn/grassaddons/trunk/grassaddons/i.points.auto/#_trunk_grassaddons_i.points.auto_ i.points.auto] (merge into i.vpoints) - see also [[Image processing]] - note that A Scianna/Palermo has modernized version&lt;br /&gt;
* Make sqlite the default DB? &amp;lt;- needs more testing, for 6.5? &lt;br /&gt;
* drop d.m display manager (as now almost unmaintained; there is gis.m and/or a python based GUI)&lt;br /&gt;
: Some people still prefer it (see posts to grass-dev) and I will fix bugs in it, but not enhance/add new modules to it without good reason. So I don't see the need to drop it before the WxPython version is ready. It's not hurting us any keeping it. --Hamish&lt;br /&gt;
:: We should keep plain d.mon interface but why keep d.m, if gis.m has become really good? Probably we should clearly state, that d.m is UNMAINTAINED and OBSOLETE? [[User:MarisN|MarisN]] 08:24, 16 February 2007 (CET)&lt;br /&gt;
* raster maps: implement SQL based [[Time series in GRASS|time series support]] (Markus has working code from Soeren; done some improvements)&lt;br /&gt;
* Clean up Makefile system to support extension compilation and installation outside the GRASS installation and without the full GRASS source.  Much like what GEM does, but without needing the module source setup and not limited to installing within the GRASS installation dir.  This could also simplify GEM on the compilation side.  See also general [[Extension development]].&lt;br /&gt;
&lt;br /&gt;
=== In progress ===&lt;br /&gt;
* native [[WinGRASS Current Status|MS Windows port]]&lt;br /&gt;
* Database connection for v.out.vtk: --[[User:Huhabla|huhabla]] 20:47, 14 August 2006 (CEST)&lt;br /&gt;
** single column support for numerical data (int, float, double)&lt;br /&gt;
** GRASSRGB column support (done for ps.map)&lt;br /&gt;
** multiple column support for vector data&lt;br /&gt;
* rewrite most of the g3d modules to fulfill the grass function naming convention --[[User:Huhabla|huhabla]] 20:47, 14 August 2006 (CEST)&lt;br /&gt;
* adding further (organized) keywords to every grass command and script [http://grass.itc.it/pipermail/grass-dev/2006-August/025164.html] and [http://grass.itc.it/pipermail/grass-dev/2006-August/025190.html]:&lt;br /&gt;
** display commands&lt;br /&gt;
** database commands&lt;br /&gt;
** general commands&lt;br /&gt;
** imagery commands&lt;br /&gt;
** misc commands&lt;br /&gt;
** paint commands&lt;br /&gt;
** photo commands&lt;br /&gt;
** postscript commands&lt;br /&gt;
** raster commands&lt;br /&gt;
** raster3D commands&lt;br /&gt;
** vector commands&lt;br /&gt;
* continue with [[WxPython-based GUI for GRASS]]&lt;br /&gt;
* write (Python based?) GUI wizard to create new locations (done by Jachym, see [[WxPython-based GUI for GRASS]])&lt;br /&gt;
** This is done. AFAICT it works really well (IIDSSM). It will create locations using EPSG, georeferenced files, custom selection of projection parameters, and xy locations. You can also set default extents (DEFAULT_WIND).&lt;br /&gt;
* improve Python-SWIG interface&lt;br /&gt;
* less verbose commands (work in progress)&lt;br /&gt;
* BLAS/LAPACK updates (Brad)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Release Roadmap]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=4319</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=4319"/>
		<updated>2007-06-10T20:52:33Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* Writing python scripts in GRASS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''(for discussions on the new GRASS GUI, see [[GRASS GUI|here]])''&lt;br /&gt;
&lt;br /&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 programs. 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;
     if ( len(sys.argv) &amp;lt;= 1 or sys.argv[1] != &amp;quot;@ARGS_PARSED@&amp;quot; ):&lt;br /&gt;
         os.execvp(&amp;quot;g.parser&amp;quot;, [sys.argv[0]] + sys.argv)&lt;br /&gt;
     else:&lt;br /&gt;
	 main();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== SUBMITTING_PYTHON proposal ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NOTE: Please improve this list!&lt;br /&gt;
&lt;br /&gt;
Dear (new) GRASS Developer,&lt;br /&gt;
&lt;br /&gt;
When submitting PYTHON SCRIPTS to GRASS SVN repository,&lt;br /&gt;
please take care of following rules:&lt;br /&gt;
&lt;br /&gt;
[ see SUBMITTING for C code hints ]&lt;br /&gt;
[ see SUBMITTING_SCRIPTS for shell script hints ]&lt;br /&gt;
[ see SUBMITTING_TCLTK for TCL/TK script hints ]&lt;br /&gt;
&lt;br /&gt;
1.  Indentation&lt;br /&gt;
&lt;br /&gt;
    As Python determines nesting based upon indentation, it&lt;br /&gt;
    isn't just a stylistic issue.&lt;br /&gt;
&lt;br /&gt;
    Please use 4-space indentation (GNU Emacs python-mode default).&lt;br /&gt;
&lt;br /&gt;
2.  Add a header section to the script you submit and make sure you&lt;br /&gt;
    include the copyright. The purpose section is meant to contain a&lt;br /&gt;
    general over view of the code in the file to assist other programmers&lt;br /&gt;
    that will need to make changes to your code. For this purpose use&lt;br /&gt;
    Python Docstring.&lt;br /&gt;
&lt;br /&gt;
    Example (fictitious header for a script called r.myscript):&lt;br /&gt;
&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
MODULE: r.myscript&lt;br /&gt;
&lt;br /&gt;
AUTHOR(S): Me &amp;lt;email AT some domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PURPOSE: Calculates univariate statistics from a GRASS raster map&lt;br /&gt;
&lt;br /&gt;
COPYRIGHT: (C) 2007 by the GRASS Development Team&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;
&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   The copyright protects your rights according to GNU General Public&lt;br /&gt;
   License (www.gnu.org).&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
[please add further hints if required]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Python extensions for GRASS GIS==&lt;br /&gt;
=== wxPython GUI development for GRASS ===&lt;br /&gt;
&lt;br /&gt;
* See the [[GRASS GUI]] wiki page&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;
&lt;br /&gt;
* [http://www.poromenos.org/tutorials/python Quick Python tutorial] for programmers of other languages&lt;br /&gt;
: [http://wiki.python.org/moin/BeginnersGuide/Programmers More Python tutorials] for programmers&lt;br /&gt;
* [http://www.python.org/dev/peps/pep-0008/ Python programming style guide]&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>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=2359</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=2359"/>
		<updated>2006-08-14T16:02:42Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* 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;
==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/&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;
=== 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;
* GRASS-SWIG interface http://mpa.itc.it/markus/grass61progman/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;
[[Category:Development]]&lt;br /&gt;
[[Category:Linking to other languages]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=2298</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=2298"/>
		<updated>2006-08-08T22:50:34Z</updated>

		<summary type="html">&lt;p&gt;⚠️Cmbarton: /* wxPython GUI development for GRASS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Python extensions for GRASS GIS==&lt;br /&gt;
&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 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/&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;
=== 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;
* GRASS-SWIG interface http://mpa.itc.it/markus/grass61progman/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;
[[Category:Development]]&lt;br /&gt;
[[Category:Linking to other languages]]&lt;/div&gt;</summary>
		<author><name>⚠️Cmbarton</name></author>
	</entry>
</feed>