AddOns: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
m (resurrected GRASS AddOn to import GSHHS shorelines)
 
(343 intermediate revisions by 42 users not shown)
Line 1: Line 1:
This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded [http://grass.osgeo.org/download/index.php here]).
This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded [http://grass.osgeo.org/download/ here]).


__TOC__
__TOC__


== AddOns source code repository ==
== Overview ==
 
'''[http://grass.osgeo.org/grass8/manuals/addons/ GRASS GIS 8 Addons Manual pages] - a complete overview of available Addons'''
 
== Building and installing AddOns ==
 
=== Common users ===
 
'''Graphical user interface:'''<br>
We recommend to use the [[wxGUI]] [[WxGUI#Extension Manager|Extension Manager]] (''Settings -> Addon extensions -> Install extensions from addons'') to install Addons.
 
'''Command line:'''<br>
You can also use the {{cmd|g.extension}} module, e.g. to install <tt>r.fuzzy.system</tt> run:


The AddOns source code is hosted in [http://svn.osgeo.org/grass/grass-addons/ GRASS-AddOns SVN repository].
g.extension extension=r.fuzzy.system


To checkout:
To remove installed AddOns run


  svn checkout <nowiki>https://svn.osgeo.org/grass/grass-addons/</nowiki> grass-addons
  g.extension extension=r.fuzzy.system operation=remove


Please contact the [http://lists.osgeo.org/mailman/listinfo/grass-dev grass-dev] mailing list if you would like to host your module there.
=== Power users (not recommended for Windows users) ===


For manual compiling see the [[Compile and Install#Addons|compile and install]] wiki page.


== Building and installing Addons ==
== AddOns source code repository ==


* see the [[Compile and Install#Addons]] wiki page
The AddOns source code is hosted in [https://github.com/osgeo/grass-addons GRASS-AddOns Github repository].


== Adding something new ==
== Adding something new ==


Please announce your add-on to the GRASS users' mailing list so that others may be aware of your work.
=== How to obtain write-access ===
While read access is granted to the public, for submissions you best fork this repository, insert your addon or fix an existing one in a new branch and finally open a [https://github.com/OSGeo/grass-addons/pulls pull request].
 
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.


=== Copyright and licensing information ===
=== Copyright and licensing information ===
Line 27: Line 43:


e.g. at the top of a shell script:
e.g. at the top of a shell script:
<pre>
<source lang=bash>
#!/bin/sh
#!/bin/sh
############################################################################
############################################################################
Line 50: Line 66:


[script follows]
[script follows]
</pre>
</source>
 


=== Coding standards ===
=== Coding standards ===


Please have a look at our [http://grass.osgeo.org/grass63/source/SUBMITTING_SCRIPTS Shell script coding standards] before submitting here.
Please have a look at our [https://github.com/OSGeo/grass/blob/main/CONTRIBUTING.md CONTRIBUTING] documentation before submitting here.
 
There are other coding standards given for modules written in C, Tcl/Tk, and Python''(?)'' located in the GRASS source code.


=== Documenting your code ===
=== Documenting your code ===


You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the <tt>--html-description</tt> command line option. Please, see also the [http://grass.ibiblio.org/grass63/manuals/html63_user/g.parser.html g.parser help page]
You can have an help page template auto-generated by using the GRASS [[module command line parser | command line parser]] with the <tt>--html-description</tt> command line option. Please, see also the {{cmd|g.parser}} help page.


== Miscellaneous Add-ons ==
== Miscellaneous Add-ons ==


* [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.<BR>'''Authors''': Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)
* [http://trac.osgeo.org/grass/browser/grass-addons/grass6/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.<BR>'''Authors''': Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)




Line 76: Line 89:
* [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.<BR>'''Author:''' Carlos Henrique Grohmann
* [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.<BR>'''Author:''' Carlos Henrique Grohmann


==GRASS 5.x==
===Vector add-ons for GRASS 5===
* See here: http://grass.osgeo.org/download/addons.php
===Raster add-ons for GRASS 5===
* See here: http://grass.osgeo.org/download/addons.php
* [http://www.valledemexico.ambitiouslemon.com/gwmodelling.html r.gmtg] The groundwater modelling tool for grass. A module to use MODFLOW within GRASS. <BR>'''Author''': Jaime Carrera
* [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.<BR>'''Lead author''': Laura Toma
==GRASS 6.x==
=== Vector add-ons ===
See also
svn co https://svn.osgeo.org/grass/grass-addons/vector
==== v.append ====
: [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.
: '''Author:''' Michael Barton
==== v.autokrige ====
: [http://precisiongis.blogspot.com/2008/11/vautokrige.html v.autokrige] is a shell script used to achieve automatic kriging from GRASS sites (vector point data), using R with spgrass6 (RGRASS) and automap packages.
: '''Author:''' Mathieu Grelier
==== v.breach ====
: [http://kufaya.googlepages.com/v.breach.zip v.breach] creates vector maps of lines and points of continously lowering elevation down the input watercourses, based on the input raster DEM.
: '''Author:''' Maciej Sieczka
==== v.colors ====
: {{cmd|v.colors}} ''moved into main archive''
==== v.count.points.sh ====
: [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.
: '''Author:''' Stefano Costa
==== v.digatt ====
: [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].
: '''Author:''' Andreas Philipp
==== v.dip ====
: [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.
: '''Author:''' Marcin Slodkowski
==== v.flip ====
: [http://kufaya.googlepages.com/v.flip.zip v.flip] flips the direction of selected vector lines (redundant since GRASS 6.3 - there is "v.edit tool=flip").
: '''Author:''' Maciej Sieczka
==== v.group ====
: [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.
: '''Author:''' Cedric Shock
==== v.in.gama ====
: [http://k153-85.fsv.cvut.cz/cgi-bin/viewcvs.cgi/grass6/vector/v.in.gama/ v.in.gama] converts [http://www.gnu.org/software/gama/ GNU GaMa] XML output file to a GRASS vector map layer.
:'''Author:''' Martin Landa
==== v.in.gshhs ====
: [http://trac.osgeo.org/grass/browser/grass-addons/vector/v.in.gshhs v.in.gshhs] imports [http://www.soest.hawaii.edu/wessel/gshhs/gshhs.html GSHHS] shorelines into a GRASS vector map. GSHHS data are automatically reprojected to the current location.
:'''Authors:''' several, updated to GRASS 6 by Markus Metz
==== v.in.ncdc ====
: [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.
: '''Author:''' Huidae Cho
==== v.in.postgis.sqlquery ====
: [http://precisiongis.blogspot.com/2007/11/vinpostgissqlquery-tool-to-import.html v.in.postgis.sqlquery] imports PostGIS data in GRASS, from arbitrary sql queries.
: '''Author:''' Mathieu Grelier
==== v.in.osm ====
: [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.
: '''Author:''' Jannis Achstetter
: See also [http://hamish.bowman.googlepages.com/gpsdrivefiles#osm osm2grass.sh] by H Bowman
==== v.in.ovl ====
: [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.
: '''Author:''' Peter Löwe
==== v.lda ====
: [http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.lda v.lda] is a shell script for calculating Ian Johnson's (U. Sidney) Local Density Analysis values to measure clustering of point data at different neighborhood radii. There is an option to create a simple line graph of the results. There have been reports of problems creating the line graph on Cygwin installations of GRASS.
==== v.line.center ====
: [http://kufaya.googlepages.com/v.line.center.zip v.line.center] creates a points vector map with each point located in the middle of the length of the input vector line.
: '''Author:''' Maciej Sieczka
==== v.lmeasure ====
: [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.
: '''Author:''' Mats Schuh
==== v.out.ascii.db ====
: [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.
: '''Author:''' Hamish Bowman
==== v.out.ascii.mat ====
: [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]).
: '''Author:''' Hamish Bowman
==== v.out.gmt ====
: [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.
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette
==== v.out.kml ====
: [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.
: '''Author:''' Peter Löwe
==== v.out.svg ====
: [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].
: '''Author:''' Klaus Förster
==== v.random.cover ====
: [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 '<tt>r.random cover= vector_output=</tt>'
: '''Author:''' Hamish Bowman
==== v.rasterbounds ====
: [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 < 6.1, you  have to be in the same mapset as your raster maps are from.
: '''Author:''' Jachym Cepicky
==== v.sample.buffer [broken link, please update or delete]====
: [http://www.clubwebcanada.ca/twiens/v.sample.buffer.tgz v.sample.buffer] is a shell script that samples rasters in buffers of a specified size around features in a specified vector file. Sampling results are added as attributes to the vector file. This script was designed for sampling vegetation indices and DEM derived attributes for bird point counts. Sampling results can be one or more basic statistics such as mean, range, max, etc.
: '''Author:''' Trevor Wiens
==== v.select.region ====
: [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.
: '''Author:''' Eric Patton
==== v.surf.icw ====
: [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])
: '''Author:''' Hamish Bowman
==== v.surf.idwpow ====
: [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
: '''Author:''' Giovanni Allegri
==== v.surf.krige ====
: [http://www.gfosservices.it/?q=node/61 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 "fitted by eye" and an automatic fitted variogram model. The cross validation helps the user to choose the best variogram model to interpolate own data.
: '''Author:''' Pierluigi De Rosa.
==== v.strahler ====
: [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.
: '''Author:''' Florian Kindl. Available via SVN:
svn co https://svn.osgeo.org/grass/grass-addons/vector/v.strahler
==== v.swathwidth ====
: [http://david.p.finlayson.googlepages.com/v.swathwidth v.swathwidth] creates a vector map representing the sea bottom coverage of a multibeam (swath) sonar survey.
: '''Author:''' David Finlayson
==== v.thickness ====
: [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.
: '''Author:''' Marcin Slodkowski
==== v.trees3d ====
: [http://les-ejk.cz/programs/ v.trees3d] is a module for making 3D trees from input vector point file.
: '''Author:''' Jachym Cepicky
==== v.trimesh ====
: [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.
: '''Author:''' Jaime Carrera
==== v.what.rast.buffer ====
: [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.
: '''Author:''' Hamish Bowman
==== v.variogram ====
: [http://www.gfosservices.it/?q=node/61 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 >= 0.3 and sp >= 0.9 [http://grass.osgeo.org/pipermail/statsgrass/2006-October/000455.html reply].
: '''Author:''' Ivan Marchesini, Pierluigi De Rosa.
==== AniMove ====
: [http://www.faunalia.it/animov/ AniMove] is software for analysis of animal movement and ranging behaviour using QGIS+GRASS+R.
:'''Authors:''' Support by Faunalia.it
==== Utilities ====
===== Shapemerge =====
: [http://perrygeo.googlecode.com/svn/trunk/gis-bin/shpmerge.sh shpmerge] merges all the shapefiles in the current directory into a single output shapefile
:'''Authors:''' Perrygeo
=== Raster add-ons ===
See also
svn co <nowiki>https://svn.osgeo.org/grass/grass-addons/raster</nowiki>
==== r.bilateral ====
: [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.
: '''Author:''' Jachym Cepicky
==== r.boxcount ====
: 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.
: '''Authors:''' Mark Lake, grass6 port: Florian Kindl.
Available via SVN:
svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount/
svn co https://svn.osgeo.org/grass/grass-addons/raster/r.boxcount.sh/
==== r.colors.quantiles ====
: [http://precisiongis.blogspot.com/2008/10/rcolorsquantiles.html r.colors.quantiles] is a shell script used to create raster colors rules based on nquantiles. It uses R and spgrass6 package (RGRASS).
: '''Authors:''' Mathieu Grelier
==== r.colors.stddev ====
: [http://hamish.bowman.googlepages.com/grass_color_maps r.colors.stddev] ''moved into main archive''
==== r.cpt2grass ====
: [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.<BR>For a large collection of GMT .cpt files see http://sview01.wiredworkplace.net/pub/cpt-city/
: 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]).
: '''Author:''' Hamish Bowman
==== r.csr ====
: [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/r.csr.tar.bz2 r.csr] integrates several Grass programs to produce colored, shaded-relief rasters in one step. Accepts single or multiple elevation/bathymetry maps as input; optionally will fill data holidays with 3x3 median filter, multiple times, if required; can apply color maps from a) input raster, b) another raster in MAPSET, or c) from a rules file; otherwise, rainbow colorbar is applied. Output colored, shaded-relief rasters can optionally be exported to tiff format if the appropriate flag is given. Shading parameters can be modified, though useful defaults are given.
: '''Author:''' Eric Patton
==== r.dominant_dir.m and r.calc_terraflow_dir.m ====
: [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.
: '''Author:''' Hamish Bowman
==== r.eucdist ====
: [http://david.p.finlayson.googlepages.com/r.eucdist r.eucdist] creates a raster map estimating the euclidean distance from known cells.
: '''Author:''' David Finlayson
==== r.fragment ====
: [ftp://gsca.nrcan.gc.ca/outgoing/Patton/Grass/Scripts/r.fragment.tar.bz2 r.fragment] fragments a raster into a user-defined set of smaller tiles according to an input number of rows and columns.
: '''Author:''' Eric Patton
==== r.game_of_life ====
: [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.
: '''Author:''' Hamish Bowman
==== r.gauss ====
: [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.
:'''Author:''' Jachym Cepicky
==== r.gradgrid4 ====
: [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.
: '''Author:''' Martin Mergili
==== r.in.onearth ====
: [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.
: '''Author:''' Soeren Gebbert
==== r.in.wms (.py) ====
: [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.
: '''Author:''' Jachym Cepicky
==== r.inund.fluv ====
: [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.
: '''Authors:''' Roberto Marzocchi, Bianca Federici, Domenico Sguerso
==== r.isoregions ====
: [http://precisiongis.blogspot.com/2007/12/risoregions.html r.isoregions] allows isoregions creation from a GRASS raster map.
: '''Authors:''' Mathieu Grelier
==== r.interp.mask ====
: [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.
: '''Author:''' David Finlayson
==== r.li ====
: [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'''''.
: '''Authors:''' Claudio Porta, Davide Spano, Serena Pallecchi, [http://www.faunalia.it Faunalia]
==== r.local_max.pl ====
: [http://les-ejk.cz/files/programs/local_max.pl Local maxima] is a Perl script for <code>r.mapcalc</code>. It detects local maxima of the image.
: '''Author:''' Jachym Cepicky
==== r.mandelbrot ====
: [http://grasslab.gisix.com/scripts/r.mandelbrot r.mandelbrot] is a shell script to calculate the Mandelbrot set.- for GRASS versions 6.X.
: '''Author:''' Peter Löwe
==== mcda====
: 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.
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia
Available via SVN:
svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/
==== r.mlv ====
: [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.
: '''Author:''' Jachym Cepicky
==== r.out.jpeg ====
: [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 "convert" command from ImageMagick
: '''Author:''' Giovanni Allegri
==== r.out.gmt ====
: [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)<BR>see  also http://169.237.35.250/~dylan/grass_user_group/#GMT_and_GRASS-overview
: '''Authors:''' Hamish Bowman, Dylan Beaudette
==== r.out.gmt2 ====
: [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.
: '''Author:''' Huidae Cho, Hamish Bowman, Dylan Beaudette
==== r.pack ====
: [http://trac.osgeo.org/grass/browser/grass-addons/raster/r.pack r.pack and r.unpack] are two GRASS scripts for transfering raster maps to another computer as a single file.
: '''Author:''' Hamish Bowman
==== r.roughness ====
: [http://www.igc.usp.br/pessoais/guano/downloads/r.roughness r.roughness] is a shell script to calculate the surface roughness of a DEM, using r.surf.area and v.surf.rst. (for GRASS versions 6.1 and above)
[http://www.igc.usp.br/pessoais/guano/downloads/r.roughness60 r.roughness60] - for GRASS versions 6.0.X
[http://www.igc.usp.br/pessoais/guano/downloads/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.
[http://www.igc.usp.br/pessoais/guano/downloads/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.
[http://www.igc.usp.br/pessoais/guano/downloads/r.roughness.window.vector.html r.roughness.window.vector.html] - provisional help page for r.roughness.window.vector.
: '''Author:''' Carlos Henrique Grohmann
==== r.roughset ====
: 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.
: '''Author:''' Gianluca Massei (g_massa@libero.it ) - Antonio Boggia
Available via SVN:
svn co https://svn.osgeo.org/grass/grass-addons/raster/mcda/r.roughset/
==== r.smoothpatch ====
: [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.
: '''Author:''' David Finlayson
==== r.soils.texture ====
: 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
:'''Author:''' Gianluca Massei
Available via SVN:
svn co https://svn.osgeo.org/grass/grass-addons/raster/r.soils.texture/
==== r.surf.nnbathy ====
: [http://kufaya.googlepages.com/r.surf.nnbathy.zip r.surf.nnbathy] interpolates a surface from a raster input using the [http://hamish.bowman.googlepages.com/nn-v.1.80.tar.gz nn] natural neighbor interpolation library. Provides triangulation, Sibson natural neighbor interpolation and non-Sibsonian interpolation.
<!-- original nn site is gone: http://web.archive.org/web/20071009145622/http://www.marine.csiro.au/~sakov/
-->
: '''Author:''' Maciej Sieczka
==== r.tileset ====
: [http://www.shockfamily.net/cedric/grass/r.tileset r.tileset] generates a list of tiles and sizes in a source projection that cover the region in the current database with appropriate resolution. The size of individual tiles can be constrained. Only tiles intersecting the current region are returned. These tilings are appropriate for requesting data from another projection to meet the specifications of the current region. For example, it could be used to generate tile requests to a latitude / longitude WMS server like this <code>r.tileset -w sourceproj="+init=epsg:4326"</code>.
: '''Author:''' Cedric Shock
==== r.traveltime ====
: [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).
: '''Author:''' Kristian Förster
==== r.viewshed ====
: 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.
: '''Author:''' Laura Toma, USA
Available via SVN:
svn co https://svn.osgeo.org/grass/grass-addons/raster/r.viewshed
Once {{trac|390}} is solved, it will substitute r.los.
==== r.zc.pl ====
: [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 <em>very</em> simple, the edges don't need to be really on that pixel, where they are detected, no interpolation is performed.
: '''Author:''' Jachym Cepicky
==== GIPE ====
: The GRASS Image Processing Environment (GIPE) has USLE, Energy-balance and radiance-reflectance correction models.
: '''Author:''' Yann Chemin (unless specified otherwise).
 
svn co https://svn.osgeo.org/grass/grass-addons/gipe
Remark: This is progressively moved to main GRASS SVN (aka GRASS 7)
:* r.hydro.CASC2D, ported from GRASS 5.x version, is temporarily here waiting to return to main GRASS.
:* 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.
:* i.biomass creates biomass growth map from fPAR, lightuse efficiency, water availability (or evap.fraction), Lat, doy and tsw.
:* 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. 
:* 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. 
:* i.dn2potrad.l[5,7] is an attempt to get ET potential from DN of Landsat 7 (Careful! No Atmospheric correction!). 
:* 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.
:* 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.
:* i.evapo.SENAY creates actual evapotranspiration following the regional method of Senay (2007).
:* 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.
:* i.vi.mpi is the mpi version of i.vi for cluster GRASS GIS education (no speed up here!) '''Author:''' Shamim Akhter
:* i.modis.stateqa extracts State Quality Assessment information from Modis 500m (MOD09A) products.
:* i.water creates a Water Mask from NDVI and Albedo, or specifically for Modis: NDVI and Band 7.
:* i.wi creates a given Water Index (only one so far).
==== HydroFOSS ====
: HydroFOSS - a GIS embedded approach for Free & Open Source Hydrological modeling.
: '''Author:''' Massimiliano Cannata
svn co https://svn.osgeo.org/grass/grass-addons/HydroFOSS/
==== Hikereport ====
: python script that computes length, cumulative uphill and downhill, average slopes on an interactively drawn path. Based on r.profile's output.
: '''Author:''' Stefano Negri
http://tracce.wordpress.com/?attachment_id=71
===General add-ons===
==== g.laptop.sh ====
: [http://www.nature-consult.de/dassau/g.laptop/g.laptop.sh g.laptop.sh] is an interactive shell script to extract raster and vector data from current Location into a new one. Data can be copied or extracted in current or original resolution and region extend. This script was written to extract smaller parts of a GRASS location to be able to present them on a laptop without the necessity to transfer huge data. Maps do not have to be in the same mapset.
: '''Author:''' Otto Dassau
==== Readline completion ====
: '''''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.
: '''Author:''' Alexandre Sorokine (grass-complete), Daniel Calvelo (grass_rlcompleter.sh)
==== g.region.nbcell ====
: [http://precisiongis.blogspot.com/2008/02/gregionnbcell.html g.region.nbcell] is a shell script used to fix the number of cells in the current region.
: '''Author:''' Mathieu Grelier
==== g.region.point ====
: [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.
: '''Author:''' Hamish Bowman
==== g.xlist ====
: [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.
: '''Author:''' Huidae Cho
==== g.xremove ====
: [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.
: '''Author:''' Huidae Cho
=== Imagery add-ons ===
See also
svn co https://svn.osgeo.org/grass/grass-addons/imagery
==== i.points.reproj ====
: [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.
: '''Author:''' Hamish Bowman
==== i.pr ====
: 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.
: '''Author:''' Stefano Merler. Available via SVN:
  svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.pr
==== i.spec.sam ====
: Spectral Angle mapping
: '''Author:''' Markus Neteler. Available via SVN:
  svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.sam/
==== i.spec.unmix ====
: Spectral unmixing
: '''Author:''' Markus Neteler. Available via SVN:
  svn co https://svn.osgeo.org/grass/grass-addons/imagery/i.spec.unmix/
==== i.warp ====
: [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.
: '''Author:''' Hamish Bowman
=== Display add-ons ===
See also
svn co https://svn.osgeo.org/grass/grass-addons/display
==== d.edit.rast ====
: [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.
: '''Author:''' Huidae Cho
==== d.frame.quarter ====
: ('''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''.
: Replaced by {{cmd|d.split.frame}} in main.
: '''Author:''' Hamish Bowman
==== d.frame.split ====
: ''d.frame.split moved into main archive as {{cmd|d.split.frame}}''
==== d.hyperlink ====
: [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.
: '''Author: '''Eric Patton
==== d.mark ====
: [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.
: '''Author:''' Hamish Bowman
==== d.region.box ====
: [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.
: '''Author:''' Hamish Bowman
==== d.stations ====
: [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).
: '''Author:''' Hamish Bowman
==== d.varea ====
: [http://trac.osgeo.org/grass/browser/grass-addons/display/d.shortcuts d.varea] is a shell script that quickly displays vector areas.
: '''Author:''' Hamish Bowman
==== pd-GRASS ====
: [http://www.ornl.gov/sci/gist/software/grass/ pd-GRASS]: Parallel Display for GRASS GIS
: '''Author:''' Alex Sorokine


* [http://www.wgug.org/index.php?option=com_content&view=article&id=56&Itemid=9 ann.*] is the set of GRASS modules (in python) which implements artificial neural network using FANN library. The package requires Fast Artificial Neural Network Library ([http://leenissen.dk/fann/wp/ FANN]) v2.x. <BR>'''Author:''' Pawel Netzel


==== [[IconSymbols]] ====


* [[IconSymbols|Symbols]] which can be used with ''d.vect, d.graph'', and ''ps.map''.
* [http://trac.osgeo.org/grass/browser/grass-addons/tools/csv_dequote.pl csv_dequote.pl] is a Perl script to convert comma separated .csv files (including "quoted" text strings containing commas) into a form ready for {{Cmd|v.in.ascii}}. Comma separators are converted to pipes (|), commas in quoted strings are preserved, and "quotes" are removed where it is appropriate to do so. It doesn't need GRASS to run, but it does need the Text::CSV Perl Module (<tt>apt-get install libtext-csv-perl</tt>).<BR>'''Author''': Hamish Bowman


=== Postscript add-ons ===
==GRASS 8.x (current)==


''See also [[ps.map scripts|ps.map samples and templates]]''.
* See [https://grass.osgeo.org/grass8/manuals/addons/ AddOns/GRASS 8]


==== ps.atlas ====
==GRASS 7.x (old)==


: [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.
* See [[AddOns/GRASS 7]]


: '''Author:''' Jachym Cepicky
== GRASS 6.x (very old) ==


==== [[AreaFillPatterns]] ====
* See [[AddOns/GRASS 6]]


* Hatches for ps.map's vareas
==GRASS 5.x (historical)==


===GRASS and UMN Mapserver===
* See [[AddOns/GRASS 5]]


* [http://www.mail-archive.com/mapserver-users@lists.umn.edu/msg00086.html See interesting posting]
==GRASS 4.x (very historical)==


* See [[AddOns/GRASS 4]]


[[Category:Community]]
{{AddOns}}
[[Category:Development]]
[[Category:Documentation]]
[[Category:Installation]]

Latest revision as of 10:59, 7 March 2024

This page contains references to user contributions and add-ons (the original GRASS GIS software can be downloaded here).

Overview

GRASS GIS 8 Addons Manual pages - a complete overview of available Addons

Building and installing AddOns

Common users

Graphical user interface:
We recommend to use the wxGUI Extension Manager (Settings -> Addon extensions -> Install extensions from addons) to install Addons.

Command line:
You can also use the g.extension module, e.g. to install r.fuzzy.system run:

g.extension extension=r.fuzzy.system

To remove installed AddOns run

g.extension extension=r.fuzzy.system operation=remove

Power users (not recommended for Windows users)

For manual compiling see the compile and install wiki page.

AddOns source code repository

The AddOns source code is hosted in GRASS-AddOns Github repository.

Adding something new

How to obtain write-access

While read access is granted to the public, for submissions you best fork this repository, insert your addon or fix an existing one in a new branch and finally open a pull request.

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.

Copyright and licensing information

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.

e.g. at the top of a shell script:

#!/bin/sh
############################################################################
#
# MODULE:       v.in.e00
#
# AUTHOR(S):    Markus Neteler, Otto Dassau
#
# PURPOSE:      Import E00 data into a GRASS vector map
#               Imports single and split E00 files (.e00, .e01, .e02 ...)
#
# COPYRIGHT:    (c) 2004, 2005 GDF Hannover bR, http://www.gdf-hannover.de
#
#               This program is free software under the GNU General Public
#               License (>=v2). Read the file COPYING that comes with GRASS
#               for details.
#
#############################################################################
#
# REQUIREMENTS:
#      -  avcimport: http://avce00.maptools.org

[script follows]

Coding standards

Please have a look at our CONTRIBUTING documentation before submitting here.

Documenting your code

You can have an help page template auto-generated by using the GRASS command line parser with the --html-description command line option. Please, see also the g.parser help page.

Miscellaneous Add-ons

  • utm_which_zone.sh is a shell script to determine UTM zone from Lat/Lon input. Requires Octave or Matlab to be installed. A shell-only version is available which only requires awk.
    Authors: Hamish Bowman (Octave part), Markus Neteler (shell script wrapper), Daniel Calvelo (sh+awk version)


  • Perl scripts for converting data forth and back between Excel files and PostgreSQL: pg2xls.pl reads data from PostgreSQL and produces an excel workbook; xls2sql.pl reads excel files and outputs SQL statements to be fed into an RDBMS. Both scripts need modules from CPAN, especially Spreadsheet::ParseExcel for xls2sql.pl and Spreadsheet::WriteExcel::FromDB and its dependencies for pg2sql.pl. Check the source headers for more info.
    Authors: Daniel Calvelo (xls2sql.pl), Markus Neteler (pg2xls.pl)


  • 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 (dbd::xbase and 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!
    Author:Wolfgang Qual


  • 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.
    Author: Carlos Henrique Grohmann


  • ann.* is the set of GRASS modules (in python) which implements artificial neural network using FANN library. The package requires Fast Artificial Neural Network Library (FANN) v2.x.
    Author: Pawel Netzel


  • csv_dequote.pl is a Perl script to convert comma separated .csv files (including "quoted" text strings containing commas) into a form ready for v.in.ascii. Comma separators are converted to pipes (|), commas in quoted strings are preserved, and "quotes" are removed where it is appropriate to do so. It doesn't need GRASS to run, but it does need the Text::CSV Perl Module (apt-get install libtext-csv-perl).
    Author: Hamish Bowman

GRASS 8.x (current)

GRASS 7.x (old)

GRASS 6.x (very old)

GRASS 5.x (historical)

GRASS 4.x (very historical)