<?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%8FReverse22</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%8FReverse22"/>
	<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/wiki/Special:Contributions/%E2%9A%A0%EF%B8%8FReverse22"/>
	<updated>2026-05-25T17:08:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=WxPython-based_GUI_for_GRASS&amp;diff=14666</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=14666"/>
		<updated>2011-12-30T20:59:01Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Browse also wxGUI related [[:Category:WxGUI|articles or screenshots]].&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS GUI]], and [[GRASS and Python]].&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;
* [[:Category:WxGUI|Screenshots from GRASSWiki]]&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;
|&lt;br /&gt;
[[Image:Wxnviz-volumes.png|300px|thumb|center|wxGUI: Displaying raster (surface), 2D vector and 3D raster (volume) in the 3D space]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:wxgui-spatial-query.png|300px|thumb|center|wxGUI: Spatial query]]&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;
== Video tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== Import vector data ===&lt;br /&gt;
&lt;br /&gt;
* [[Import DXF]]&lt;br /&gt;
{{YouTube|eD2B1i9YxxQ|desc=Importing single shapefile}}&lt;br /&gt;
{{YouTube|ohbV_MR530Q|desc=Importing multiple shapefiles}}&lt;br /&gt;
{{YouTube|lJVBw78zYY0|desc=Importing SpatiaLite layers}}&lt;br /&gt;
{{YouTube|JoqIkL2VRVc|desc=Importing PostGIS layers into GRASS}}&lt;br /&gt;
&lt;br /&gt;
=== Import raster data ===&lt;br /&gt;
&lt;br /&gt;
Importing multiple GeoTIFF files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
[[Image:WxGUI bulk raster import1.png|300px|thumb|Bulk import of GeoTIFF via menu]]&lt;br /&gt;
|| &lt;br /&gt;
[[Image:WxGUI bulk raster import2.png|320px|thumb|Bulk import of GeoTIFF via menu (files are auto-selected)]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Link vector data (GRASS 7) ===&lt;br /&gt;
&lt;br /&gt;
{{YouTube|eB3_SmE3E9Q|desc=Link PostGIS layers as GRASS vector maps}}&lt;br /&gt;
&lt;br /&gt;
=== Map display ===&lt;br /&gt;
&lt;br /&gt;
{{YouTube|PY8aytvfQqA|desc=Define legend and export to image}}&lt;br /&gt;
&lt;br /&gt;
=== Georectifier ===&lt;br /&gt;
&lt;br /&gt;
* Manual page of {{cmd|wxGUI.GCP_Manager|desc=GCP Manager}}&lt;br /&gt;
&lt;br /&gt;
=== Graphical modeler ===&lt;br /&gt;
&lt;br /&gt;
''Note:'' GRASS 6.4.2+ required.&lt;br /&gt;
&lt;br /&gt;
See wxGUI [[WxGUI Modeler#Video Tutorials|Modeler]] page.&lt;br /&gt;
&lt;br /&gt;
=== Layer Manager: Searching GRASS module ===&lt;br /&gt;
&lt;br /&gt;
{{YouTube|Z9STgChNWcM|desc=Search for GRASS module (GRASS 6.4.2 required)}}&lt;br /&gt;
&lt;br /&gt;
=== Map Calculator ===&lt;br /&gt;
&lt;br /&gt;
{{YouTube|yMpVVRaVYeA|desc=Calculating NDVI}}&lt;br /&gt;
&lt;br /&gt;
=== wxGUI 3D view mode (wxNviz) ===&lt;br /&gt;
&lt;br /&gt;
See [[WxNviz#Video tutorials|wxNviz]] page.&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
=== Core 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;center&amp;gt;&lt;br /&gt;
&amp;lt;gallery perrow=2 widths=300 heights=200&amp;gt;&lt;br /&gt;
Image:wxgrass-gis-manager-layer.png|2007/12&lt;br /&gt;
Image:wxgrass-gis-manager-output.png|2007/12&lt;br /&gt;
Image:Wxgrass rgb.png|2008/02&lt;br /&gt;
Image:wxgui-layer-manager-70.png|2010/08&lt;br /&gt;
Image:wxgui-pyshell.png|2011/06 - Embedded interactive Python Shell&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/center&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;
&amp;lt;gallery perrow=2 widths=300 heights=200&amp;gt;&lt;br /&gt;
Image:Wxgrass-mapdisplay-0.png&lt;br /&gt;
Image:Wxgui-mapdisplay-1.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GUI dialogs ====&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;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&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;
&amp;lt;/source&amp;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 (welcome screen) ====&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;
=== Digitizer ===&lt;br /&gt;
&lt;br /&gt;
==== Vector digitizer ====&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented.&lt;br /&gt;
&lt;br /&gt;
Manual page - {{cmd|wxGUI.Vector_Digitizer}}&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS Digitizing tool]] and [[wxGUI Vector Digitizer]].&lt;br /&gt;
&lt;br /&gt;
Replacement of &amp;lt;tt&amp;gt;v.digit&amp;lt;/tt&amp;gt; module integrated into Map display window ([http://svn.osgeo.org/grass/grass-promo/screenshots/wxpython/digitization Screenshots]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery perrow=2 widths=300 heights=200&amp;gt;&lt;br /&gt;
Image:WxDigit200804.png|Vector digitizer (2008/04)&lt;br /&gt;
Image:Digit-01.png|Vector digitizer (2007/11)&lt;br /&gt;
Image:WxGUI-vdigit-fill-area.png|Vector digitizer - fill valid areas (closed boundary + centroid) (2008/07)&lt;br /&gt;
Image:WxGUI-vdigit-bg.png|Vector digitizer - background raster maps with different opacity level (2008/07)&lt;br /&gt;
Image:WxGUI-vdigit-win0.png|Vector digitizer on MS Windows (2011/01)&lt;br /&gt;
Image:Wxgui-vdigit-dupl.png|Vector digitizer - checking for duplicates (2011/02)&lt;br /&gt;
&amp;lt;/gallery&amp;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;
=== Cartography tools ===&lt;br /&gt;
&lt;br /&gt;
==== GUI for ps.map ====&lt;br /&gt;
&lt;br /&gt;
'''Status:''' under development (Anna Kratochvilova).&lt;br /&gt;
&lt;br /&gt;
More into at '''[[WxGUI Cartographic Composer]]'''.&lt;br /&gt;
&lt;br /&gt;
==== Direct printing ====&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&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;
See also [[Georeferencing]].&lt;br /&gt;
&lt;br /&gt;
; Tutorials&lt;br /&gt;
&lt;br /&gt;
* [http://gama.fsv.cvut.cz/~landa/grass/swf/georect.html Georectifing raster data]&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;
=== 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;
[[Image:Grass-atm-example.png|center|thumb|640px|Attributes queries in wxGUI]]&lt;br /&gt;
[[Image:Wxgui-attribute-table-manager.png|center|thumb|350px|Attribute Table Manager]]&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;
=== 3D view mode ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' under development (Google Summer of Code 2008/2010).&lt;br /&gt;
&lt;br /&gt;
See detailed information at [[wxNVIZ]] page and original TCL/TK {{cmd|version=64|nviz}} manual page.&lt;br /&gt;
&lt;br /&gt;
[[Image:Wxnviz-volumes.png|640px|thumb|center|Displaying raster (surface), 2D vector and 3D raster (volume) in the 3D space.]]&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;
==== Ortho photos ====&lt;br /&gt;
&lt;br /&gt;
'''Status:''' development not started yet.&lt;br /&gt;
&lt;br /&gt;
* To replace {{cmd|i.ortho.photo}} and friends&lt;br /&gt;
&lt;br /&gt;
==== wx.iclass ====&lt;br /&gt;
&lt;br /&gt;
'''Status:''' Under development.&lt;br /&gt;
&lt;br /&gt;
===== First prototype (AddOns) =====&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/browser/grass-addons/gui/wxpython/wx.class wx.class]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:wx.class1.png|350px|thumb|center|wx.class]]&lt;br /&gt;
| [[Image:wx.class2.png|350px|thumb|center|wx.class]]&lt;br /&gt;
| [[Image:wx.class3.png|350px|thumb|center|wx.class]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Current Features:&lt;br /&gt;
&lt;br /&gt;
* Does not require xterm&lt;br /&gt;
* works on windows which is not currently available&lt;br /&gt;
&lt;br /&gt;
To be implemented:&lt;br /&gt;
&lt;br /&gt;
* Proper view of histogram using python-matplotlib&lt;br /&gt;
* To work on other datset (currently works for nc_spm_08)&lt;br /&gt;
* Needs a code cleanup&lt;br /&gt;
&lt;br /&gt;
===== Second prototype (trunk) =====&lt;br /&gt;
&lt;br /&gt;
* [[wxIClass]]&lt;br /&gt;
&lt;br /&gt;
=== Graphical Modeller ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' under development.&lt;br /&gt;
&lt;br /&gt;
See [[wxGUI Modeler]] page for more information.&lt;br /&gt;
&lt;br /&gt;
=== Extension Manager ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' under development&lt;br /&gt;
&lt;br /&gt;
* [http://gama.fsv.cvut.cz/~landa/grass/swf/install-addons.html wxGUI Extension Manager]&lt;br /&gt;
&lt;br /&gt;
[[Image:wxgui-em.png|center|thumb|500px|wxGUI Extension Manager]]&lt;br /&gt;
&lt;br /&gt;
=== Map Calculator ===&lt;br /&gt;
&lt;br /&gt;
'''Status:''' prototype implemented&lt;br /&gt;
&lt;br /&gt;
[[Image:wxgui-mapcalc.png|center|thumb|500px|wxGUI Map Calculator]]&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;
;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;
* Can connect with OssimPlanet using PlanetSasha&lt;br /&gt;
* Add and Remove maps from GRASS GIS to OssimPlanet(Send to OssimPlanet/Remove from OssimPlanet)&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;
* Create a properties window to display Coordinate system &amp;amp; projection for each map&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
Alternative: http://code.google.com/p/wxgis/&lt;br /&gt;
&lt;br /&gt;
=== r.li.setup GUI ===&lt;br /&gt;
;'''Status:''' Under development.&lt;br /&gt;
&lt;br /&gt;
Porting of {{cmd|r.li.setup}} in wxPython. &lt;br /&gt;
Some screenshots of developing version&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;gallery perrow=2 widths=300 heights=200&amp;gt;&lt;br /&gt;
Image:Rlisetup_first_frame.png | The first windows where you can select existing configuration file or create new one&lt;br /&gt;
Image:Rlisetup wizard first page.png | First window of wizard&lt;br /&gt;
Image:Rlisetup wizard keybord sampling frame.png | Choose the sampling frame&lt;br /&gt;
Image:Rlisetup_wizard_sampling_areas.png ‎| Choose the type of sampling area&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;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;
=== 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 [[WxGUI#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;
== 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;
{{wxGUI}}&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=WxNviz&amp;diff=14665</id>
		<title>WxNviz</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=WxNviz&amp;diff=14665"/>
		<updated>2011-12-30T20:58:48Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[WxPython-based GUI for GRASS|wxGUI]] page.&lt;br /&gt;
&lt;br /&gt;
See also {{cmd|wxGUI.Nviz|version=70|desc=manual page}}.&lt;br /&gt;
&lt;br /&gt;
'''wxNviz''' is a [[wxGUI]] extension which allows users to realistically render multiple surfaces (raster data) in a 3D space, optionally using thematic coloring, draping 2D vector data over the surfaces, displaying 3D vector data in the space, and visualization of volume data (3D raster data). &lt;br /&gt;
__TOC__&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&amp;lt;gallery perrow=3 widths=200&amp;gt;&lt;br /&gt;
Image:Wxnviz-alpha-0.png|2008-06-27: Display raster map from layer tree in 2.5D (surface)&lt;br /&gt;
Image:Wxnviz-alpha-1.png|2008-07-05: Support for vector data (2D lines) added&lt;br /&gt;
Image:Wxnviz-alpha-2.png|2008-07-26: Support for vector point data&lt;br /&gt;
Image:Wxnviz-alpha-3.png|2008-08-02: 3D vector data support&lt;br /&gt;
Image:Wxnviz-alpha-4.png|2008-08-09: Initial support for volumetric data&lt;br /&gt;
Image:Wxnviz-lmgr.png|2010-05-31: 3D view tools window integrated into Layer Manager&lt;br /&gt;
Image:Wxnviz-light.png|Lighting control panel in Layer Manager (2010-06-17)&lt;br /&gt;
Image:Wxnviz-fringe.png|Fringe control panel in Layer Manager (2010-06-23)&lt;br /&gt;
Image:Wxnviz-redirect.png|Redirect messages to wxGUI (2010-08-08)&lt;br /&gt;
Image:Wxnviz-volumes.png|Displaying raster (surface), 2D vector and 3D raster (volume) in the 3D space (2010-08-16)&lt;br /&gt;
Image:WxNviz surface page.png|Surface page of WxNviz modified (2011-06-02)&lt;br /&gt;
Image:WxNviz_constant_surface_page.png|Constant surface page added (2011-06-02)&lt;br /&gt;
Image:WxNviz_lighting.png|Lighting fixed (2011-05-02)&lt;br /&gt;
Image:WxNviz_cutting_planes_1.png|Cutting planes (shading blend) (2011-06-10)&lt;br /&gt;
Image:WxNviz_cutting_planes_2.png|Cutting planes (shading top color) (2011-06-10)&lt;br /&gt;
Image:WxNviz_view_page.png|View page modified (2011-06-10)&lt;br /&gt;
Image:Nviz_cmd_cutting_planes.png‎|Picture of surfaces cut by two planes (generated by nviz_cmd) (2011-06-30)&lt;br /&gt;
Image:WxNviz_generate_command.png‎|Command for nviz_cmd generated by wxNviz (2011-07-01)&lt;br /&gt;
Image:WxNviz_north_arrow.png‎|North Arrow implemented (2011-07-08)&lt;br /&gt;
Image:WxNviz_volumes.png‎|Colored isosurfaces with transparency (2011-07-08)&lt;br /&gt;
Image:WxNviz_volume_slices_1.png‎|Partially transparent slice (2011-07-14)&lt;br /&gt;
Image:WxNviz_volume_slices_2.png‎|Combination of slices and isosurface (2011-07-14)&lt;br /&gt;
Image:WxNviz_overlays.png‎|Raster legend, text label and north arrow (2011-07-22)&lt;br /&gt;
Image:WxNviz_thematic_points_colors‎.png|Thematic mapping (colors) for points (2011-08-05)&lt;br /&gt;
Image:WxNviz_colorrules_dialog.png|Dialog for {{cmd|v.colors}} opened from 3D view (2011-08-05)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Animations ==&lt;br /&gt;
{{YouTube|AByFPKHvgu4|desc=Using fly-through mode for creating animation}}&lt;br /&gt;
&lt;br /&gt;
== Video tutorials ==&lt;br /&gt;
&lt;br /&gt;
{{YouTube|ib1-mBbWkv4|desc=Loading data, settings layer properties}}&lt;br /&gt;
{{YouTube|ZLDstyumxv0|desc=Visualizing fringes and north arrow}}&lt;br /&gt;
{{YouTube|CmK-fEyf2SY|desc=3D raster maps (volumes) in the space (isosurface and slice mode)}}&lt;br /&gt;
{{YouTube|13wj5KWEweE|desc=Color thematic mapping}}&lt;br /&gt;
&lt;br /&gt;
=== Older tutorials (2010) ===&lt;br /&gt;
&lt;br /&gt;
{{YouTube|Ej_rBc9sgvE|desc=Loading data, settings layer properties}}&lt;br /&gt;
{{YouTube|iWyaBL2Krto|desc=Visualizing fringes}}&lt;br /&gt;
{{YouTube|ioE_hHMHqKg|desc=3D raster maps (volumes) in the space}}&lt;br /&gt;
&lt;br /&gt;
== Ideas ==&lt;br /&gt;
&lt;br /&gt;
* Fog support (see [http://gpwiki.org/index.php/OpenGL:Tutorials:Tutorial_Framework:Light_and_Fog], [http://www.swiftless.com/tutorials/opengl/fog.html], [http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=16])&lt;br /&gt;
* Vertical labels (take from geonames.org point data): like in http://tev.fbk.eu/marmota/blog/?p=82&lt;br /&gt;
* Second interactive light source for isosurface visualization&lt;br /&gt;
* Tick marks and coordinate values to x,y,z axis when drawing fringe&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strike&amp;gt;&amp;lt;/strike&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Known issues  ==&lt;br /&gt;
&lt;br /&gt;
#List of [http://trac.osgeo.org/grass/query?status=assigned&amp;amp;status=new&amp;amp;status=reopened&amp;amp;order=priority&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=type&amp;amp;col=priority&amp;amp;col=milestone&amp;amp;keywords=~wxNviz open] and [http://trac.osgeo.org/grass/query?status=assigned&amp;amp;status=closed&amp;amp;order=priority&amp;amp;col=id&amp;amp;col=summary&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=type&amp;amp;col=priority&amp;amp;col=milestone&amp;amp;keywords=~wxNviz closed] tickets &lt;br /&gt;
#&amp;lt;strike&amp;gt;Adding vector data crashes wxGUI on Mac&amp;lt;/strike&amp;gt; &lt;br /&gt;
#&amp;lt;strike&amp;gt;Viewing height sometimes sets to 1 after switching to 2D and back to 3D View (or with the simultaneous 2D view - very nice feature) and even after View is reset, it keeps getting back at 1 each time the slider is touched&amp;lt;/strike&amp;gt; &lt;br /&gt;
#:Fixed in {{rev|46208}} &lt;br /&gt;
#Isosurfaces tested with Nags Head time series data (I will provide link) don't seem to be working, after setting 3D region and adding 3D raster nothing gets drawn, when moving the related DEM around only line rectangle shows instead of a box. &lt;br /&gt;
#Adding draw, draw current and clear button may be useful &lt;br /&gt;
#Thematic mapping is available in GRASS 7 only &lt;br /&gt;
#Display region in 3D does not change accordingly to display region in 2D in version &amp;amp;lt;= 6.5 &lt;br /&gt;
#Appearance: &lt;br /&gt;
##&amp;amp;nbsp;I&amp;amp;nbsp;need to click View tab to get the arrow draw, same for the scale bar &lt;br /&gt;
##add legend &amp;amp;gt; OK: nothing gets drawn in 3D but the legend shows up when I switch to 2D but when I clicked delete scalebar (which was not drawn), my surface disapeared but the legend showed up along with white and black background (which I assume was supposed to be transparent, because when I moved the legend the surface was under it - we already discussed this, it may be my problem, because it works for Michael). &lt;br /&gt;
#General &lt;br /&gt;
##&amp;lt;strike&amp;gt;when I go from 3D view to 2D and then back to 3D I lose most of my settings&amp;amp;nbsp;&amp;lt;/strike&amp;gt; &lt;br /&gt;
##similarly, when I add volume to Map layers I lose my view settings and the 3D view goes back to default &lt;br /&gt;
#Volumes: &lt;br /&gt;
##change of region by g.region seems to be ignored (or I missed something), I had to restart GRASS with the new region to get the 3D region for volumes right. Given that the default top, botom is 1,0, if GRASS starts with the default 3D region settings volumes do not work because there is just one level. &lt;br /&gt;
##isosurfaces work with my terrestrial lidar data but the slices don't, it seems that it is due my resolution being 0.3m, when I change it to 1m I get at least some limited slicing &lt;br /&gt;
###this may be in ogsf becuase slices in nviz do not work with this data either &lt;br /&gt;
#changing color to constant did not change the color of the isosurface&lt;br /&gt;
&lt;br /&gt;
[[Sv:Main Page/sv|sv:Main Page/sv]] &lt;br /&gt;
&lt;br /&gt;
[[Pl:WxNviz/pl|pl:WxNviz/pl]] &lt;br /&gt;
&lt;br /&gt;
[[Pl:WxNviz/pl|pl:WxNviz/pl]] &lt;br /&gt;
&lt;br /&gt;
[[pl:WxNviz/pl|pl:WxNviz/pl]]&lt;br /&gt;
&lt;br /&gt;
== Google Summer of Code ==&lt;br /&gt;
&lt;br /&gt;
=== [[wxNviz GSoC 2008|2008]] ===&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/wiki/SoCProjects#wxNvizdevelopmentforenhanced34Dvisualizationandanalysis Accepted Google Summer of Code 2008 project]&lt;br /&gt;
&lt;br /&gt;
=== [[wxNviz GSoC 2010|2010]] ===&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/wiki/SoCProjects#wxNvizdevelopmentforenhanced34Dvisualizationandanalysis Accepted Google Summer of Code 2010 project]&lt;br /&gt;
&lt;br /&gt;
=== [[wxNviz GSoC 2011|2011]] ===&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/wiki/SoCProjects#CompletionofwxGUINvizextensionfor3DdatavisualizationinGRASSGIS Accepted Google Summer of Code 2011 project]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* http://lists.osgeo.org/pipermail/grass-dev/2008-February/035792.html&lt;br /&gt;
&lt;br /&gt;
{{WxGUI}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=WinGRASS_6_Current_Status&amp;diff=14664</id>
		<title>WinGRASS 6 Current Status</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=WinGRASS_6_Current_Status&amp;diff=14664"/>
		<updated>2011-12-30T20:58:34Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
See also '''[http://trac.osgeo.org/grass/wiki/BuildingOnWindows http://trac.osgeo.org/grass/wiki/BuildingOnWindows]'''&lt;br /&gt;
&lt;br /&gt;
This page describes the current status of winGRASS development:&lt;br /&gt;
&lt;br /&gt;
* '''[http://grass.osgeo.org/download/index.php#g64x Lastest downloads]'''&lt;br /&gt;
&lt;br /&gt;
* ''Older precompiled winGRASS/Cygwin packages are available for [http://grass.itc.it/grass63/binary/mswindows/cygwin/ GRASS 6.3], ''&lt;br /&gt;
* ''Older native winGRASS packages [http://geog-pc40.ulb.ac.be/grass/wingrass/ GRASS 6.3],''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Current status - Summary ==&lt;br /&gt;
&lt;br /&gt;
The native windows port of GRASS is slowly coming to a stage where it can be considered mature beta status. All main functions seem to work, but much more testing is needed. The port is of the current SVN release branch for GRASS 6.4.0. The only prior native port of an earlier version is 6.3.0.&lt;br /&gt;
&lt;br /&gt;
The general idea is to reach a point where GRASS runs in MS-Windows without any kind of UNIX emulation. Currently this is possible but limits the use to compiled modules, as scripts are all of UNIX-shell type and cannot run within a Windows cmd.exe environment without a series of UNIX tools such as a shell, awk, sed, etc. So in order to run such scripts a collection of UNIX-like tools needs to be installed, such as Msys or Gnuwin32+Shell.&lt;br /&gt;
&lt;br /&gt;
Another major feature not available in the MS-Windows version are the old-style interactive X monitors (i.e. the x0, PNG, PS, Cairo, etc, monitors opened with '&amp;lt;tt&amp;gt;d.mon&amp;amp;nbsp;x0&amp;lt;/tt&amp;gt;'). Only direct rendering works currently. Display is thus &amp;quot;limited&amp;quot; to the Tcl/Tk and wxPython GUIs (the latter might still need some cleanup of UNIX-specific code). Modules like i.points and d.zoom will not work due to their interactive monitor requirements (see [[#Known_Issues]]).&lt;br /&gt;
&lt;br /&gt;
== Installing binary snapshots ==&lt;br /&gt;
&lt;br /&gt;
Regular binary snapshots for windows are available from the main GRASS [http://grass.osgeo.org/download/index.php download page].&lt;br /&gt;
&lt;br /&gt;
== Compiling by yourself ==&lt;br /&gt;
&lt;br /&gt;
=== Guide ===&lt;br /&gt;
&lt;br /&gt;
All informations for compiling yourself are in '''''[http://trac.osgeo.org/grass/wiki/CompileOnWindows Compiling GRASS on MS-Windows]'''''&lt;br /&gt;
&lt;br /&gt;
=== Nullsoft installer ===&lt;br /&gt;
&lt;br /&gt;
See http://trac.osgeo.org/grass/browser/grass/branches/develbranch_6/mswindows&lt;br /&gt;
&lt;br /&gt;
[[Image:Wingrass63 installer1.jpg|220px|New winGRASS installer 1]]&lt;br /&gt;
[[Image:Wingrass63 installer2.jpg|220px|New winGRASS installer 2]]&lt;br /&gt;
[[Image:Wingrass63 installer3.jpg|220px|New winGRASS installer 3]]&lt;br /&gt;
&lt;br /&gt;
== Known Issues  ==&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
* [https://trac.osgeo.org/grass/wiki/CompileOnWindows#Errata WinGrass current bug list],&lt;br /&gt;
* [http://n2.nabble.com/Grass---Win-f1928820.html winGRASS Mailing list archives],&lt;br /&gt;
&lt;br /&gt;
=== Flagrant ===&lt;br /&gt;
&lt;br /&gt;
* '''wxVdigit''' (vector digitizer) doesn't work. see {{trac|541}}.&lt;br /&gt;
: Workaround: Use the old Tcl/Tk {{cmd|v.digit}} module, simply type &amp;lt;tt&amp;gt;v.digit&amp;lt;/tt&amp;gt; at the &amp;lt;tt&amp;gt;Cmd&amp;gt;&amp;lt;/tt&amp;gt; prompt in the Layer Manager GUI.&lt;br /&gt;
&lt;br /&gt;
* '''wxNviz''' (3D visualization) works, but there are some issues. see {{trac|541}}, {{trac|1141}}.&lt;br /&gt;
: Please test the new wxNviz on Windows and report any issues. For a workaround: Use the Tcl/Tk {{cmd|nviz}} module, simply type &amp;lt;tt&amp;gt;nviz&amp;lt;/tt&amp;gt; at the terminal prompt in shell window.&lt;br /&gt;
&lt;br /&gt;
* '''Spaces in path names'''&lt;br /&gt;
** Installation directory: WinGRASS uses the MSys software to run on MS-Windows. Unfortunately MSys isn't very interested in supporting spaces in path names, but WinGrass-development in the last few months tried to get this ready. Currently the default installation directory is c:\Programm Files\Grass-64\&lt;br /&gt;
** GIS data directory: It is generally safe to have spaces in your GIS data directory path, but there are few spots where it might still get confused and chop the path off at the first space. If you find one please report it to the bug tracker, the sooner we know about it the sooner we can fix it.&lt;br /&gt;
: Workaround: if this is causing problems for you the quick solution is to rename the GIS data directory and replace all spaces with underscores (_).&lt;br /&gt;
&lt;br /&gt;
* The '''{{cmd|r.li}}''' suite and '''{{cmd|d.mon}}''' monitors won't work. These use UNIX pipes and won't work on Windows without a lot of work.&lt;br /&gt;
&lt;br /&gt;
=== Won't fix (at least not immediately) ===&lt;br /&gt;
&lt;br /&gt;
Issues listed here are rather impossible to fix due to the different nature of native Windows. Or, lend us a hand and let's try harder!&lt;br /&gt;
&lt;br /&gt;
* No monitors&lt;br /&gt;
&lt;br /&gt;
This means that you cannot launch any monitor launched with d.mon (x0, PNG, PS, etc). The only way you can render is directly to a file. But you cannot directly display to screen from the command line. This will be solved in GRASS 7 with a new rendering system and possibly via the new wxgrass GUI. So no work will probably be put into this until then. &lt;br /&gt;
&lt;br /&gt;
The absence of monitors also makes impossible the use of interactive modules based on these monitors, such as:&lt;br /&gt;
&lt;br /&gt;
** i.class. However, See http://trac.osgeo.org/grass/browser/grass-addons/gui/wxpython/wx.class for a start&lt;br /&gt;
** i.ortho.photo/photo.2image&lt;br /&gt;
** i.ortho.photo/photo.2target&lt;br /&gt;
** i.points&lt;br /&gt;
** i.vpoints&lt;br /&gt;
&lt;br /&gt;
i.points and i.vpoints have already been replaced by the gis.m georectifier module (File -&amp;gt; Georectify). In replacement of i.class you can digitize training areas with v.digit. This will not however, give you all the information i.class provides, such as the histogram of the region, the statistics and the display of matches. These modules will have to be rewritten to clearly separate display and backend parts, so that the backend can be run on the command line or from any GUI frontend. '''Volunteers needed.'''&lt;br /&gt;
&lt;br /&gt;
Another module affected is d.vect.thematic which uses monitors. This will hopefully be replaced by a C-version in a not too far future.&lt;br /&gt;
&lt;br /&gt;
* Scripts need *nix-like shell&lt;br /&gt;
&lt;br /&gt;
All current GRASS 6.4 scripts are written in shell language. This means they need a shell, and several related tools (awk, sed, etc), to function. The actual WinGrass 6.4-installer includes Msys, so all shell-scripts should work.&lt;br /&gt;
&lt;br /&gt;
In 7.0, these scripts have been rewritten in Python, thus totally eliminating the need for any shell.&lt;br /&gt;
&lt;br /&gt;
=== Platform specific issues ===&lt;br /&gt;
&lt;br /&gt;
==== XP/2000 ====&lt;br /&gt;
&lt;br /&gt;
If the GRASS GUI startup fails with &amp;quot;[Error 14001]&amp;quot; in the MSys terminal on a relatively fresh install of XP, the solution is to install some missing DLL files from Microsoft which apparently don't come standard.&lt;br /&gt;
If these library files are missing, [http://www.qgis.org Quantum GIS] and other software from the [http://osgeo4w.osgeo.org OSGeo4W] stack will likely encounter the same trouble as well.&lt;br /&gt;
&lt;br /&gt;
You'll need to install two files: (in order)&lt;br /&gt;
&lt;br /&gt;
* MS's Windows Installer 3.1 Redistributable (v2)&lt;br /&gt;
: http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=25&lt;br /&gt;
&lt;br /&gt;
* MS's .net framework 3.5 downloader&lt;br /&gt;
: http://www.microsoft.com/download/en/details.aspx?id=21&lt;br /&gt;
&lt;br /&gt;
It is recommended to run Windows updates after installing these.&lt;br /&gt;
&lt;br /&gt;
==== Vista ====&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;sometimes {{cmd|r.patch}} fails: {{trac|118}} [ticket closed]&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Windows7 ====&lt;br /&gt;
&lt;br /&gt;
* Missing MSVCR71.dll on startup&lt;br /&gt;
: Try installing Microsoft's .net frameworks as described above in the XP section. If that doesn't solve it, try these instructions found in a web search: http://i.justrealized.com/2009/how-to-fix-missing-msvcr71dll-problem-in-windows/&lt;br /&gt;
&lt;br /&gt;
=== ToDo ===&lt;br /&gt;
&lt;br /&gt;
==== Installer ====&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;change the Uninstall icon&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;fix the language errors in the StartMenu link's descriptions&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;change the name of the South-Dakota sample database to Spearfish60&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;add a GRASS Command Line link (cmd.exe) into the GRASS StartMenu group&amp;lt;/strike&amp;gt;&lt;br /&gt;
* create a GRASS Addons installer or integrate the GRASS Addons in the current installer as downloadable options.&lt;br /&gt;
: See {{cmd|g.extension|version=65}} in GRASS 6.5+&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ====&lt;br /&gt;
&lt;br /&gt;
===== GRASS Dependencies =====&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;add the Indipendent JPEG support to GRASS *&amp;lt;/strike&amp;gt;&lt;br /&gt;
* add the FFMPEG support in GRASS (reports an error in building OGSF library; probably needs to specify -lavutil in gcc command) ***&lt;br /&gt;
* add the NLS support in GRASS (needs gettext)&lt;br /&gt;
* add the wxWidgets support in GRASS (for the wxPython GUI v.digit replacement)&lt;br /&gt;
&lt;br /&gt;
===== GDAL Dependencies =====&lt;br /&gt;
&lt;br /&gt;
* add the ECW support in GDAL */**&lt;br /&gt;
* add the JPEG2000 support in GDAL (through Jasper or Kadaku *) **&lt;br /&gt;
* add the OGDI support in GDAL *&lt;br /&gt;
* add the MrSID support in GDAL */**&lt;br /&gt;
&lt;br /&gt;
===== GRASS and GDAL Dependencies =====&lt;br /&gt;
&lt;br /&gt;
* add the Xerces support in both GDAL and GRASS *&lt;br /&gt;
* add the ODBC support in both GDAL and GRASS */**&lt;br /&gt;
* add the MySQL support in both GDAL and GRASS */**&lt;br /&gt;
&lt;br /&gt;
===== Miscellaneus Dependencies =====&lt;br /&gt;
&lt;br /&gt;
* add the OpenSSL support in both PostgreSQL and SQLite *&lt;br /&gt;
* &amp;lt;strike&amp;gt;add the AVCE00 tools (build from source in minGW)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;add the E00compr tools (build from source in minGW)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;add the GPSBabel tool (use prebuilt binaries from GPSBabel Web Site)&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; needs to build related libraries from source in MinGW&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;**&amp;lt;/nowiki&amp;gt; needs to check the licences first&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;***&amp;lt;/nowiki&amp;gt; FFMPEG has been already succesfully built on MinGW&lt;br /&gt;
&lt;br /&gt;
==== Internal Libraries ====&lt;br /&gt;
&lt;br /&gt;
* parser: find out why launching a module from the command line without parameters does not call module GUI&lt;br /&gt;
&lt;br /&gt;
==== Vector modules ====&lt;br /&gt;
&lt;br /&gt;
* v.in.ascii crashes on files with irregular line length (see [http://lists.osgeo.org/pipermail/grass-dev/2008-February/035268.html this thread])&lt;br /&gt;
&lt;br /&gt;
==== Raster modules ====&lt;br /&gt;
* &amp;lt;strike&amp;gt;r.terraflow does not compile&amp;lt;/strike&amp;gt; fix backported 27/3/2008&lt;br /&gt;
: This seems to be due to the use of the function getrusage() which is not supported under MinGW. Check this octave patch [http://osdir.com/ml/gnu.octave.maintainers/2006-03/msg00083.html email thread].&lt;br /&gt;
&lt;br /&gt;
==== Other modules ====&lt;br /&gt;
* r.li moduels do not compile (they require UNIX sockets, much the same situation as the display monitors)&lt;br /&gt;
: Use the older r.le modules instead.&lt;br /&gt;
&lt;br /&gt;
==== GRASS Addons ====&lt;br /&gt;
* compile the GRASS Addons&lt;br /&gt;
&lt;br /&gt;
==== TclTk issues ====&lt;br /&gt;
&lt;br /&gt;
* var=val style argument is not valid for batch files: equal sign is a separator like a space. http://support.microsoft.com/?kbid=71247 http://www.gatago.com/alt/msdos/batch/17358926.html&lt;br /&gt;
** Could you give an example of where this is a problem ?&lt;br /&gt;
* file command returns bad code (catch is needed): http://sources.redhat.com/ml/insight/2003-q1/msg00079.html&lt;br /&gt;
** catch {file copy}&lt;br /&gt;
** catch {file delete}&lt;br /&gt;
** catch {file rename -force} does not work. Delete old file first: catch {file delete}; catch {file rename}&lt;br /&gt;
** exec a batch file doing redirection (&amp;gt;&amp;amp;2, 2&amp;gt;&amp;amp;1)&lt;br /&gt;
* no -permissions file attributes&lt;br /&gt;
** catch {file attributes -permissions}&lt;br /&gt;
&lt;br /&gt;
==== Miscellaneous ====&lt;br /&gt;
&lt;br /&gt;
* metacharacter escape in &amp;quot;sh -c '$cmd'&amp;quot;&lt;br /&gt;
* modules not working: &amp;lt;strike&amp;gt;v.neighbors, v.kernel, r.cost&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Cannot open Help pages.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Have to type &amp;quot;exit&amp;quot; in the console to save ~/.grassrc file. Then, close gis.m to finish the session.&lt;br /&gt;
* A previous installation of grass under cygwin is likely to cause problems with WinGrass. Follow the directions to remove cygwin at http://cygwin.com/faq/faq-nochunks.html#faq.setup.uninstall-all&lt;br /&gt;
&lt;br /&gt;
The following items cannot be fixed in the near future:&lt;br /&gt;
** can't read &amp;quot;_data(.gronsole.gronsole,4,donecmd)&amp;quot;: no such element in array error&lt;br /&gt;
*** Could you be more precise about this error ? When does it occur ?&lt;br /&gt;
&lt;br /&gt;
== Dealing with shell scripts or .bat files ==&lt;br /&gt;
&lt;br /&gt;
Bourne shell scripts require MSys (or some other Bourne shell), but you don't need to start GRASS from MSys.&lt;br /&gt;
&lt;br /&gt;
The main issue with scripts is that Windows doesn't understand the &amp;quot;#!&amp;quot; notation used to specify the interpreter.&lt;br /&gt;
&lt;br /&gt;
All of the supplied scripts in $GISBASE/scripts have a corresponding .bat file in $GISBASE/bin which invokes script via %GRASS_SH%. This allows you to run those scripts from the Windows command prompt.&lt;br /&gt;
&lt;br /&gt;
If you write scripts of your own, you need to either add a corresponding .bat file, or give the script a .sh extension and associate that with the shell, e.g. via the ftype and assoc commands. You can use the PATHEXT variable to eliminate the need to type the extension.&lt;br /&gt;
&lt;br /&gt;
== Other libraries ==&lt;br /&gt;
&lt;br /&gt;
GDAL&lt;br /&gt;
* lib/gis/OBJ.*/fmode.o is needed for any GRASS related modules.&lt;br /&gt;
* modified ltmain.sh to install binary files from wrapper scripts.&lt;br /&gt;
* see also [http://trac.osgeo.org/gdal/wiki/BuildingWithMinGW GDAL Building With MinGW]&lt;br /&gt;
&lt;br /&gt;
== Related efforts ==&lt;br /&gt;
&lt;br /&gt;
* http://trac.osgeo.org/osgeo4w/wiki/pkg-grass&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Vector_Database_Management&amp;diff=14663</id>
		<title>Vector Database Management</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Vector_Database_Management&amp;diff=14663"/>
		<updated>2011-12-30T20:58:23Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''This page is a work in progress.&amp;lt;BR&amp;gt;Please contribute if you have experience with anything that is still poorly documented.''&lt;br /&gt;
&lt;br /&gt;
==Vector data processing==&lt;br /&gt;
&lt;br /&gt;
* See the GRASS {{cmd|vectorintro}} vector data processing help page.&lt;br /&gt;
* See also the GRASS {{cmd|databaseintro}} Database management help page.&lt;br /&gt;
&lt;br /&gt;
* See also the [[Openoffice.org with SQL Databases]] wiki page&lt;br /&gt;
&lt;br /&gt;
===Database Support===&lt;br /&gt;
&lt;br /&gt;
==== AsciiText (.csv, etc.) ====&lt;br /&gt;
&lt;br /&gt;
The GRASS 6 vector engine supports the following databases:&lt;br /&gt;
* {{cmd|v.in.ascii}} module help page&lt;br /&gt;
* {{cmd|v.out.ascii}} module help page&lt;br /&gt;
&lt;br /&gt;
==== DBF ====&lt;br /&gt;
In GRASS 6, DBF is the default (local) DB used for GRASS vector attributes. It is easy to use but with the simplicity comes limited features. Such limits are 10 chars per column name and no support for SQL calculations in SELECT statements.&lt;br /&gt;
&lt;br /&gt;
* GRASS {{cmd|grass-dbf}} DBF driver help page&lt;br /&gt;
&lt;br /&gt;
==== SQLite ==== &lt;br /&gt;
&lt;br /&gt;
SQLite is another local database format, but much more featureful than DBF. It basically combines the power of real SQL databases with the advantage of local data storage (no server needed). A nice tool to directly work in the SQLite database is [http://sqlitebrowser.sourceforge.net/ SQLite Database Browser].&lt;br /&gt;
In GRASS 7, SQLite is the default (local) DB used for GRASS vector attributes.&lt;br /&gt;
&lt;br /&gt;
* GRASS {{cmd|grass-sqlite}} SQLite driver help page&lt;br /&gt;
* [http://www.sqlite.org SQLite Homepage]&lt;br /&gt;
&lt;br /&gt;
==== MySQL ==== &lt;br /&gt;
* GRASS {{cmd|grass-mysql}} MySQL driver page&lt;br /&gt;
* GRASS {{cmd|grass-mesql}} MSQL embedded driver page&lt;br /&gt;
* [http://www.mysql.com MySQL Homepage]&lt;br /&gt;
&lt;br /&gt;
==== PostgreSQL ==== &lt;br /&gt;
* GRASS {{cmd|grass-pg}} PostgreSQL driver page&lt;br /&gt;
* [http://www.postgresql.org PostgreSQL Homepage]&lt;br /&gt;
&lt;br /&gt;
==== FileMaker Pro ====&lt;br /&gt;
&lt;br /&gt;
''William Kyngesburye wrote on the grass-user mailing list:''&lt;br /&gt;
&lt;br /&gt;
I think the key to access FileMaker DBs from GRASS is that the FileMaker ODBC connector is for OSX's iODBC, not UnixODBC.&lt;br /&gt;
&lt;br /&gt;
GRASS 6 has an iODBC configure option.  It's the same --with- odbc-* options, it just tries iodbc if it can't find unixodbc.&lt;br /&gt;
&lt;br /&gt;
==== Oracle ====&lt;br /&gt;
&lt;br /&gt;
This has been reported to work. Try ODBC and search the mailing list archive.&lt;br /&gt;
The connection is done via OGR.&lt;br /&gt;
&lt;br /&gt;
==== ODBC ==== &lt;br /&gt;
* External DB support via ODBC (e.g. FileMaker Pro)&lt;br /&gt;
* unixODBC is required to make it work&lt;br /&gt;
* to configure you could use the graphical frontend '''ODBCConfig''' to configure your ODBC connection.&lt;br /&gt;
&lt;br /&gt;
Example-entry in '''~/.odbc.ini''' for usage of ODBC with PostgreSQL&lt;br /&gt;
   [dbname]&lt;br /&gt;
   Description         = PostgreSQL database for my project&lt;br /&gt;
   Driver              = postgres&lt;br /&gt;
   Trace               = No&lt;br /&gt;
   TraceFile           =&lt;br /&gt;
   Database            = mydb&lt;br /&gt;
   Servername          = myserver&lt;br /&gt;
   UserName            = myusername&lt;br /&gt;
   Password            = mysecretpasswd&lt;br /&gt;
   Port                = 5432&lt;br /&gt;
   Protocol            = 9.0.3&lt;br /&gt;
   ReadOnly            = No&lt;br /&gt;
   RowVersioning       = No&lt;br /&gt;
   ShowSystemTables    = No&lt;br /&gt;
   ShowOidColumn       = No&lt;br /&gt;
   FakeOidIndex        = No&lt;br /&gt;
   ConnSettings        =&lt;br /&gt;
&lt;br /&gt;
Additionall you need to define the libraries to use for the different drivers in '''/etc/odbcinst.ini'''.&lt;br /&gt;
   [postgres]&lt;br /&gt;
   Description     = ODBC for postgres&lt;br /&gt;
   Driver          = /usr/lib/unixODBC/libodbcpsql.so&lt;br /&gt;
   Setup           = /usr/lib/unixODBC/libodbcpsqlS.so&lt;br /&gt;
   FileUsage       = 1&lt;br /&gt;
&lt;br /&gt;
* GRASS {{cmd|grass-odbc}} ODBC driver page&lt;br /&gt;
&lt;br /&gt;
=== Concepts and jargon ===&lt;br /&gt;
&lt;br /&gt;
* [[GRASS 6 Terminology]]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Table_%28database%29 Table]&lt;br /&gt;
** Table column&lt;br /&gt;
** Table row&lt;br /&gt;
** Vector map layer&lt;br /&gt;
** Each vector file has a special data field named &amp;quot;cat&amp;quot; (derived originally from &amp;quot;category&amp;quot;), filled with integers, that serves to identify each vector object. The 'cat' field also serves as a &amp;quot;key field&amp;quot; that can link each vector object with a corresponding record in an attributes table of a database (NB: 'cat' values do NOT have to be unique for vector objects, but DO have to be unique in an attributes table, permitting both one-to-one and many-to-one relationships). The attributes table must contain a key field, filled with integers (only integers are permitted to serve as key fields in GRASS), that matches the values in the vector 'cat' field.&lt;br /&gt;
** A vector can be linked with more than one attribute table, using LAYERS. By default, every vector file has a '''LAYER 1''' with a 'cat' field, filled with integers to identify each vector object. Additional *LAYERS*, along with their associated 'cat' fields, can be created using v.category. Each '''LAYER''' has its own independent 'cat' field that can be used to link with a separate attributes table.&lt;br /&gt;
** For example, a vector file of cities can have *LAYER 1* whose 'cat' field links the vector points with an attributes table of demographic data; it can also have a '''LAYER 2''', with an associated 'cat' field (independent of the 'cat' field of '''LAYER 1'''), linked to a different attributes table of economic data. Values in the 'cat' fields of different LAYERS can be the same or different. The 'cat' values and linked attributes table can be queried independently for each '''LAYER'''. In the example, one can query the cities by population from the demographics attributes table linked with the 'cat' field of '''LAYER 1''', or query the cities by household income from the economic attributes table linked with the same vector points through the 'cat' field of '''LAYER 2'''. _MichaelBarton - 12 Nov 2005_&lt;br /&gt;
&lt;br /&gt;
===Common tasks===&lt;br /&gt;
&lt;br /&gt;
Background info find in {{cmd|vectorintro}} Vector data processing in GRASS GIS.&lt;br /&gt;
&lt;br /&gt;
* Connect a DB ({{cmd|db.connect}}, {{cmd|v.db.connect}})&lt;br /&gt;
* Copy a table ({{cmd|db.copy}})&lt;br /&gt;
* Copy selected columns from a table&lt;br /&gt;
* Create a new table ({{cmd|v.db.addtable}})&lt;br /&gt;
* Create a new column ({{cmd|v.db.addcol}})&lt;br /&gt;
* Extract data via SQL query ({{cmd|v.extract}}, {{cmd|db.select}})&lt;br /&gt;
* Low level access to DB&lt;br /&gt;
* The {{cmd|db.execute}} module&lt;br /&gt;
* Populate a DB ({{cmd|v.db.update}} etc.)&lt;br /&gt;
** The {{cmd|v.to.db}} module&lt;br /&gt;
&lt;br /&gt;
===More Help===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|database}} module help pages&lt;br /&gt;
* {{cmd|vector}} module help pages&lt;br /&gt;
* GRASS {{cmd|sql}} query help page&lt;br /&gt;
* [http://grass.osgeo.org/grass57/tutorial/links.html SQL reference links]&lt;br /&gt;
* [http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-0.html MySQL reserved words list]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Vector]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Vector_Data&amp;diff=14662</id>
		<title>Vector Data</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Vector_Data&amp;diff=14662"/>
		<updated>2011-12-30T20:58:12Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Vector Data Structures = &lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Caveat_emptor Caveat emptor!] Different terminology (eg. vertex, node, point or edge, line, line segment, link) due to different vocabulary in the underlying theories (e.g. linear algebra, graph theory, network theory) of vector data can already lead to great confusion.&lt;br /&gt;
&lt;br /&gt;
The confusion is greatly enhanced by very different concepts and implementations of vector data. &lt;br /&gt;
&lt;br /&gt;
Hence a discussion of the currently most widely vector data structures and formats in the geoiformatics field is surely not bad, IMO. Naturally the focus is GRASS and FOSS4G centric, maybe almost too formal form a user's point of view, and yet certainly way too informal from a programmers point of view.&lt;br /&gt;
&lt;br /&gt;
The reader is assumed to be familiar with the section {{cmd|vectorintro}} (Vector data processing in GRASS GIS) in the GRASS GIS Reference Manual, the Wiki topics [[Vector FAQ GRASS6]] and [[Help with 3D#Vector_3D_point_data]].&lt;br /&gt;
Also reading [http://mapserver.gis.umn.edu/docs/reference/vector_data Vector Data Access] from the Mapserver Documentation does not hurt.&lt;br /&gt;
&lt;br /&gt;
==  GRASS 6 Vector Architecture ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Grass_vector_line.png]]&lt;br /&gt;
[[Image:Grass_vector_area.png]]&lt;br /&gt;
&lt;br /&gt;
The GRASS vector data model includes the description of topology, where besides the coordinates describing the location of the primitives (points, lines, boundaries and centroids), their spatial relations are also stored. In general, topological GIS require a data structure where the common boundary between two adjacent areas is stored as a single line, simplifying the map maintenance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following vector objects are defined:&lt;br /&gt;
&lt;br /&gt;
* point&lt;br /&gt;
* line: directed sequence of connected vertices with 2 endpoints called nodes&lt;br /&gt;
&lt;br /&gt;
* boundary: the border line to describe an area&lt;br /&gt;
* centroid: a point within a closed boundary (missing centroids can be created with '''v.centroids''')&lt;br /&gt;
* area: the topological composition of centroid and boundary&lt;br /&gt;
&lt;br /&gt;
* face: a 3D area;&lt;br /&gt;
&lt;br /&gt;
Further following vector objects are defined, but not yet fully implemented/used:&lt;br /&gt;
* kernel: a 3D centroid in a volume (exists, but currently mostly unused)&lt;br /&gt;
* volume: a 3D corpus, the topological composition of faces and kernel (not yet implemented)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' all lines and boundaries can be polylines (with nodes/vertices in between). {{cmd|v.build.polylines}} creates these.&lt;br /&gt;
&lt;br /&gt;
=== Data Structure === &lt;br /&gt;
&lt;br /&gt;
a vector map '''&amp;lt;some_vector&amp;gt;''' is stored in the directory '''$MAPSET/vector/&amp;lt;some_vector&amp;gt;'''.&lt;br /&gt;
This directory normally contains the files listed below.&lt;br /&gt;
&lt;br /&gt;
* /[http://download.osgeo.org/grass/grass6_progman/Vector_Library.html#head_file_format head]: ASCII file with header information; this is more or less the stuff that '''v.info''' displays.&lt;br /&gt;
&lt;br /&gt;
* /[http://download.osgeo.org/grass/grass6_progman/Vector_Library.html#vlib_attributes dbln]: ASCII file that link(s) to attribute table(s)&lt;br /&gt;
&lt;br /&gt;
* /hist: ASCII file with vector map change history. '''v.info -h''' can be used to display this file.&lt;br /&gt;
&lt;br /&gt;
* /[http://download.osgeo.org/grass/grass6_progman/Vector_Library.html#coor_file_format_specification coor]: binary file for storing the coordinates&lt;br /&gt;
&lt;br /&gt;
* /[http://download.osgeo.org/grass/grass6_progman/Vector_Library.html#topo_file_format topo]: binary file for topology &lt;br /&gt;
&lt;br /&gt;
* /[http://download.osgeo.org/grass/grass6_progman/Vector_Library.html#vlib_cidx cidx]: binary category index&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The creation of certain files can be disabled. The '''-t''' flag supported by v.in.ogr and v.in.ascii disables the creation of an attribute table. The '''-b''' flag supported by {{cmd|r.to.vect}} and {{cmd|v.in.ascii}} disables the creation of a topology file. This is [http://www.intevation.de/rt/webrt?display=History&amp;amp;serial_num=3877 needed] and useful e.g. for very large datasets (&amp;gt; 3 million points). The user is expected to understand what s/he is doing.&lt;br /&gt;
&lt;br /&gt;
=== Linear Reference System (LRS) ===&lt;br /&gt;
&lt;br /&gt;
/*TODO*/&lt;br /&gt;
&lt;br /&gt;
* GRASS GIS Manual: {{cmd|lrs}} - Linear Reference System Tutorial&lt;br /&gt;
* R. Blazek: [http://www.j-geoinfo.net/Content/fulmar05/IJG_095-100.pdf Introducing the Linear Reference System in GRASS] (March 2005, Int'l Journal of Geoinformatics, Vol. 1(3), pp. 95-100)&lt;br /&gt;
* R. Blazek: [http://gisws.media.osaka-cu.ac.jp/grass04/viewpaper.php?id=50 Introducing the Linear Reference System in GRASS] (Sept 2004, Conference Paper)&lt;br /&gt;
* http://freegis.org/cgi-bin/viewcvs.cgi/*checkout*/grass6/vector/v.lrs/MAIL&lt;br /&gt;
* PostGIS Reference, Chapter 6 [http://postgis.refractions.net/docs/ch06.html#id2646260 PostGIS Extensions: 6.2.7. Linear Referencing]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
http://en.wikipedia.org/wiki/Linear_Reference_System&lt;br /&gt;
http://freegis.org/cgi-bin/viewcvs.cgi/*checkout*/grass6/vector/v.lrs/lrs.html&lt;br /&gt;
 http://pgrouting.postlbs.org/&lt;br /&gt;
&lt;br /&gt;
http://freegis.org/cgi-bin/viewcvs.cgi/grass6/vector/v.lrs/lib/&lt;br /&gt;
http://postgis.refractions.net/pipermail/postgis-users/2006-July/012537.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linear referencing is a natural and convenient means to associate attributes or events to locations or portions of a linear feature. It has been widely used in transportation applications (such as for highways, railroads, and transit routes) and utilities applications (such as for gas and oil pipelines). The major advantage of linear referencing is its capability of locating attributes and events along a linear feature with only one parameter (usually known as measure) instead of two (such as latitude/longitude or x/y in Cartesian space). Sections of a linear feature can be referenced and created dynamically by indicating the start and end locations along the feature without explicitly storing them. http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96630/sdo_lrs_concepts.htm --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Specs ===&lt;br /&gt;
* http://download.osgeo.org/grass/grass6_progman/Vector_Library.html#background ([http://download.osgeo.org/grass/grass6_progman_pdf/ PDF version])&lt;br /&gt;
* R. Blazek, M. Neteler, R. Micarelli: [http://www.ing.unitn.it/~grass/conferences/GRASS2002/proceedings/proceedings/pdfs/Blazek_Radim.pdf The new GRASS 5.1 vector architecture] (Sept 2002, Conference-Paper)&lt;br /&gt;
* R. Blazek: [http://trac.osgeo.org/grass/browser/grass/trunk/doc/vector/TODO GRASS 6 vector TODO] (May 2006) (see also [http://www.intevation.de/rt/webrt?display=History&amp;amp;serial_num=3877 RT#3877])&lt;br /&gt;
* OGR documentation: [http://www.gdal.org/ogr/drv_grass.html GRASS driver]&lt;br /&gt;
&lt;br /&gt;
=== GRASS ===&lt;br /&gt;
&lt;br /&gt;
* http://www.gdf-hannover.de/lit_html/grass60_v1.2_en/node46.html&lt;br /&gt;
* J. Čepický, M. Landa: [http://gislab.dirap.unipa.it/grass_meeting/articoli/grass-digit.pdf GRASS GIS Digitization Tools] (Feb. 2007, Conference Paper) focuses on v.digit, v.edit and QGIS/GRASS&lt;br /&gt;
&lt;br /&gt;
==  ESRI Shapefile ==&lt;br /&gt;
&lt;br /&gt;
A [http://en.wikipedia.org/wiki/Shapefile shapefile] stores non-topological geometry and attribute information for the spatial features in a data set. The geometry for a feature is stored as a shape comprising a set of&lt;br /&gt;
vector coordinates.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following vector objects are defined:&lt;br /&gt;
&lt;br /&gt;
* Point&lt;br /&gt;
* MultiPoint: a set of points&lt;br /&gt;
&lt;br /&gt;
* PolyLine: A PolyLine is an ordered set of vertices that consists of one or more parts. A part is a connected sequence of 2 or more points. Parts may or may not be connected to one another. Parts may or may not intersect one another.&lt;br /&gt;
&lt;br /&gt;
* Polygon: A polygon consists of 1 or more rings. A ring is a connected sequence of 4 or more points that form a closed, non-self-intersecting loop.&lt;br /&gt;
&lt;br /&gt;
* PointM: Point plus support for a Measure (cf. [http://lists.maptools.org/pipermail/gdal-dev/2002-December/000047.html Measure in shape file])&lt;br /&gt;
* PolyLineM: Point plus support for a Measure&lt;br /&gt;
* PolygonM: Point plus support for a Measure&lt;br /&gt;
* MultiPointM: MultiPoint plus support for a Measure&lt;br /&gt;
&lt;br /&gt;
* PointZ: 3D capable version of PointM&lt;br /&gt;
* PolyLineZ: 3D capable version of PolyLineM&lt;br /&gt;
* PolygonZ: 3D capable version of PolygonM&lt;br /&gt;
* MultiPointZ: 3D capable version of MultiPointM&lt;br /&gt;
&lt;br /&gt;
* MultiPatch: consists of a number of surface patches, each patch describes a surface. [http://en.wikipedia.org/wiki/Triangulated_irregular_network TIN]-like.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' the &amp;quot;measure&amp;quot; or the z-coord may always be omitted, by specifying the null element. e.g. a PolyLineZ(x,y,0,0) is the same as a PolyLineM(x,y,0) which is the same as PolyLine(x,y)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Unlike [http://shapelib.maptools.org/shp_api.html Shapelib] OGR does [http://www.gdal.org/ogr/drv_shapefile.html not support] MultiPatch, PointM, PolyLineM, PolygonM, MultiPointM are [http://www.gdal.org/ogr/drv_shapefile.html not supported] by OGR. Hence GRASS also does not support them. Postgres has an almost complete support (with some limitations, and lacking documentation)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Data Structure ===&lt;br /&gt;
&lt;br /&gt;
a shapefile '''&amp;lt;some_vector&amp;gt;''' is actually a set of files:&lt;br /&gt;
* '''&amp;lt;some_vector&amp;gt;.shp''' vector features&lt;br /&gt;
* '''&amp;lt;some_vector&amp;gt;.shx''' feature index data pointing to the vector features&lt;br /&gt;
* '''&amp;lt;some_vector&amp;gt;.dbf''' attributes in [http://www.clicketyclick.dk/databases/xbase/format/index.html dBase DB] format&lt;br /&gt;
* '''&amp;lt;some_vector&amp;gt;.prj''' ASCII file with projection info in [http://en.wikipedia.org/wiki/Well-known_text WKT] format&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;some_vector&amp;gt;.sbn''' optional spatial index file&lt;br /&gt;
&lt;br /&gt;
This set of files is often packed into a zip-compressed archive '''&amp;lt;some_vector&amp;gt;.zip''' or placed into a unique directory '''../&amp;lt;some_vector&amp;gt;/'''&lt;br /&gt;
&lt;br /&gt;
=== Specs ===&lt;br /&gt;
* ESRI: [http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf Shapefile Technical Description] (July 1998, Whitepaper) ([http://shapelib.maptools.org/dl/shapefile.pdf mirrored copy])&lt;br /&gt;
* ESRI: [http://www.esri.com/library/whitepapers/pdfs/lrds_arcgis.pdf Linear Referencing and Dynamic Segmentation in ArcGIS 8.1] (May 2001, Whitepaper) (has a section called &amp;quot;Routes and Measures&amp;quot;, that explains measures in shapefiles)&lt;br /&gt;
&lt;br /&gt;
* OGR documentation: [http://www.gdal.org/ogr/drv_shapefile.html Shapefile Driver]&lt;br /&gt;
* http://shapelib.maptools.org/&lt;br /&gt;
* http://mapserver.gis.umn.edu/docs/reference/vector_data/shapefiles&lt;br /&gt;
&lt;br /&gt;
== OpenGIS Simple Features ==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Simple_Features Simple Features] is a widely implemented non-topological standard. The internal data representation of OGR is closely modeled after it, [http://postgis.refractions.net/ PostGIS] is a PostgreSQL implementation and the [http://dev.mysql.com/doc/refman/5.1/en/spatial-extensions.html Spatial Extensions] of MySQL implement it too, etc.&lt;br /&gt;
&lt;br /&gt;
The following vector objects are defined:&lt;br /&gt;
&lt;br /&gt;
* Point&lt;br /&gt;
* LineString&lt;br /&gt;
* Polygon&lt;br /&gt;
* Multipoint&lt;br /&gt;
* Multipolygon&lt;br /&gt;
* GeomCollection&lt;br /&gt;
&lt;br /&gt;
=== Specs ===&lt;br /&gt;
* OpenGIS: [http://www.opengis.org/docs/99-049.pdf Simple Features Specifications For SQL]&lt;br /&gt;
* Adam Gawne-Cain: [http://home.gdal.org/projects/opengis/twohalfdsf.html 2.5 D Simple Features Proposal (OGC 99-402r2)]&lt;br /&gt;
* http://www.opengeospatial.org/standards&lt;br /&gt;
&lt;br /&gt;
=== GRASS ===&lt;br /&gt;
* {{cmd|v.external}}&lt;br /&gt;
* {{cmd|v.in.ogr}}&lt;br /&gt;
* {{cmd|v.out.ogr}}&lt;br /&gt;
&lt;br /&gt;
== SVG ==&lt;br /&gt;
&lt;br /&gt;
is a non-topological, non-spatial W3C vector format standard. The following vector objects are defined:&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/TR/SVG/paths.html path]: represents the outline of a shape&lt;br /&gt;
* [http://www.w3.org/TR/SVG/shapes.html#LineElement line]: a (directed?) line segment that starts at one point and ends at another.&lt;br /&gt;
* [http://www.w3.org/TR/SVG/shapes.html#PolylineElement polyline]: a set of connected straight line segments. typically, it defines open shapes.&lt;br /&gt;
* [http://www.w3.org/TR/SVG/shapes.html#PolygonElement polygon]: a closed shape consisting of a set of connected straight line segments.&lt;br /&gt;
* rect: defines a rectangle shape&lt;br /&gt;
* circle&lt;br /&gt;
* ellipse&lt;br /&gt;
&lt;br /&gt;
=== Specs ===&lt;br /&gt;
[http://www.w3.org/TR/SVG/ Scalable Vector Graphics (SVG) 1.1 Specification]&lt;br /&gt;
&lt;br /&gt;
=== GRASS ===&lt;br /&gt;
* {{cmd|v.out.svg}}&lt;br /&gt;
* [[GRASS vector export to Inkscape]]&lt;br /&gt;
&lt;br /&gt;
== GPS receiver vector data ==&lt;br /&gt;
&lt;br /&gt;
* '''waypoint''' (WP): point given by its geographic coordinates (usually, user-defined)&lt;br /&gt;
* '''route''' (RT) a sequence of waypoints (usually, user-defined)&lt;br /&gt;
* '''track point''' (TP) a point given by its geographic coordinates with a time-stamp&lt;br /&gt;
* '''track''' (TR) (Lowrance calls it: '''trail''') is a sequence of '''track points''' recorded by the GPS receiver during a certain time-interval&lt;br /&gt;
&lt;br /&gt;
=== Specs ===&lt;br /&gt;
* [http://www.gpsbabel.org/ GpsBabel] Documentation: [http://www.gpsbabel.org/htmldoc-1.3.4/Route_And_Track_Modes.html Route and Track Modes]&lt;br /&gt;
: GpsBabel performs GPS format and receiver interchange&lt;br /&gt;
* http://www.ncc.up.pt/gpsman/gpsmanhtml/manual/html/GPSMandoc_15.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== GRASS ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.in.garmin}}&lt;br /&gt;
* {{cmd|v.in.gpsbabel}}&lt;br /&gt;
* {{cmd|v.out.gpsbabel}} (in development)&lt;br /&gt;
&lt;br /&gt;
: ''v.in|out.gpsbabel will be renamed/replaced with v.in|out.gps in GRASS 7.''&lt;br /&gt;
&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
[[Category: Vector]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Vector_aggregate_values&amp;diff=14661</id>
		<title>Vector aggregate values</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Vector_aggregate_values&amp;diff=14661"/>
		<updated>2011-12-30T20:57:53Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
GIS users often wish to aggregate the values of one polygon layer into another. Although this is not integrated as a standard tool in GRASS, it is definitely possible. This article introduces two methods to do just that: A simple, quick operation will be described that can take place entirely in GRASS GIS and produces raster maps or, if desired, polygons with aggregated values from two maps and a second, more complex method that uses external editors and creates text files as outputs.&lt;br /&gt;
&lt;br /&gt;
=== Method 1 ===&lt;br /&gt;
&lt;br /&gt;
''written by Daniel Lee''&lt;br /&gt;
&lt;br /&gt;
In this example we assume that we have a vector map of catchment areas and a raster map of precipitation. We want to find out what the sum total of precipitation per catchment area is. This method would also work if the precipitation data were also stored as vector data, but the vector precipitation data would have to be turned into a raster map, just as the catchment areas are converted to rasters in the following steps. Remember to set the region, etc. in GRASS properly.&lt;br /&gt;
&lt;br /&gt;
''' Step 1: Convert catchment area polygons to rasters '''&lt;br /&gt;
&lt;br /&gt;
The polygons are converted to rasters using v.to.rast. The primary key for the polygons should be used as the values for the new rasters. If the polygons were imported from a shapefile, for example, the field FID could be used.&lt;br /&gt;
&lt;br /&gt;
        v.to.rast input=CatchmentAreas output=CatchmentAreas_Raster column=FID&lt;br /&gt;
&lt;br /&gt;
''' Step 2: Convert precipitation raster to integer values '''&lt;br /&gt;
&lt;br /&gt;
The tool that we will be using later, r.statistics, requires integer values. Because the precipitation raster is composed of floating point values, we have to convert it to an integer map first. In order to avoid rounding areas in the final results, we also multiply the raster by 100. This way we can divide it by 100 later in order to the original float values back.&lt;br /&gt;
If the raster that you want to aggregate into your vectors is already made of integer values or if rounding errors aren't a problem, this step can be changed or left out.&lt;br /&gt;
&lt;br /&gt;
        r.mapcalc 'Precipitation_Integer = round (Precipitation * 100)&lt;br /&gt;
&lt;br /&gt;
''' Step 3: Aggregate the precipitation values by summing them in the catchment areas they fall in '''&lt;br /&gt;
&lt;br /&gt;
Now we have two rasters that can be combined. In order to find the sum of the pixels of the precipitation map we use r.statistics.&lt;br /&gt;
&lt;br /&gt;
        r.statistics base=CatchmentAreas_Raster cover=Precipitation_Integer method=sum output=Precipitation_by_CatchmentArea&lt;br /&gt;
&lt;br /&gt;
''' Step 4: Extract sums from the new map '''&lt;br /&gt;
&lt;br /&gt;
Now the precipitation sums are aggregated by catchment area, but only as attributes and not as categories in the resulting raster. We now extract the aggregated sums, overwriting the previous raster, by using the &amp;quot;@&amp;quot; function in r.mapcalc. Additionally, the map is divided by 100 to scale the values back, reversing the change we made when we turned the original precipitation map into an integer map.&lt;br /&gt;
Don't forget to not divide by 100 if you didn't multiply by 100 in step 2.&lt;br /&gt;
&lt;br /&gt;
        r.mapcalc 'Precipitation_by_CatchmentArea = @Precipitation_by_CatchmentArea / 100'&lt;br /&gt;
&lt;br /&gt;
''' Step 5: Convert the aggregated precipitation raster to a vector map. '''&lt;br /&gt;
&lt;br /&gt;
This procedure should already be familiar for those who work with vector maps. If vectors are not needed, it can be skipped.&lt;br /&gt;
&lt;br /&gt;
        r.to.vect input=Precipitation_by_CatchmentArea output=Precipitation_by_CatchmentArea_Vectors feature=area&lt;br /&gt;
&lt;br /&gt;
=== Method 2 ===&lt;br /&gt;
&lt;br /&gt;
''written by Michael O'Donovan''&lt;br /&gt;
&lt;br /&gt;
GIS users accustomed to proprietary vector-based products (MapInfo, MapMaker, Atlas and some other ESRI) are often disappointed when the try migrating to OpenSource software. Many of the key functions that make vector-based systems so useful are unavailable in OpenSource software like QGIS, Thuban and GRASS. One such function is the ability to aggregate values from one polygon layer to another.&lt;br /&gt;
&lt;br /&gt;
A typical example would be one of aggregating the population of census tracts (or municipalities) to derive the population of a suburb (or province). The aggregation is simply one of adding the tracts together only when the outer edge of some combination of polygons coincide. This happens when tracts are defined in such a way that they coincide with suburb perimeters. However when the boundaries do not coincide the situation usually calls for a vector-based system that will allocate populations according to the location of the tract centroid or the proportion of a tract falling into a particular suburb. The absence of this aggregation feature discourages potential users from adopting OpenSource software like GRASS. The section that follows shows how, with a little bit of preparation, aggregations can be easily performed by GRASS raster functions. It follows a hypothetical example inspired by the proposed redrawing of South Africa's nine provinces which currently dissect many of the 280+ municipalities.  It shows how municipal populations can be re-combined to derive the provincial population by converting the vector features to rasters.&lt;br /&gt;
&lt;br /&gt;
For simplicity it is assumed that the user has two shape files &amp;quot;Municipalities&amp;quot; and &amp;quot;Province&amp;quot;. The &amp;quot;Municipalities&amp;quot; file is linked to a file &amp;quot;Municipalities.dbf&amp;quot; which contains numerous variables including &amp;quot;pop&amp;quot; (its population) and &amp;quot;SHP_FID&amp;quot; (a unique number which identifies each polygon). Both files can be easily imported into GRASS (using v.in.ogr) and displayed along with their variables. Before the vector files can be converted to rasters an unusual preparatory step is required. This entails converting the variables of interest from a value per vector to a value per raster cell. To make this conversion it is necessary to place into the appropriate .dbf file a count of the number of raster cells that will represent that vector. In this example this will enable the user to represent the population not as a number per municipality but as a number per cell. All subsequent aggregations need to be based on these cell values and thus on the cell counts.&lt;br /&gt;
&lt;br /&gt;
The first step in preparation is to calculate the number of cells in each municipality. To do this convert the municipality vector into a raster file. Remember that, unlike vectors which can be linked to a large number of other variables, raster cells take on a single value only. For this step this value must be a number that uniquely identifies each municipality. If the municipality vector was obtained from an ESRI shapefile the field &amp;quot;SHP_FID&amp;quot; doesthe job. From the command line type:&lt;br /&gt;
&lt;br /&gt;
        v.to.rast input=Municipalities output=municipalities use=attr col=SHP_FID&lt;br /&gt;
&lt;br /&gt;
This creates a raster file called &amp;quot;municipalities&amp;quot;. As vectors and raster are of different types there is little prospect of their  names being confused. (Nevertheless vectors are indicated by a starting capital while rasters are kept as lowercase words.) the new raster can be seen by typing... &lt;br /&gt;
&lt;br /&gt;
        d.rast municipalities.&lt;br /&gt;
&lt;br /&gt;
If is looks funny change the color scheme using something like...&lt;br /&gt;
&lt;br /&gt;
        r.colors map=municipalities color=random&lt;br /&gt;
and d.rast it again.&lt;br /&gt;
&lt;br /&gt;
The next step requires extracting a count of the number of raster cells in each municipality. Once again this is a simple procedure. To save do this and save the output to a file called &amp;quot;munic_count&amp;quot; type...&lt;br /&gt;
&lt;br /&gt;
        r.stats input=municipalities output=munic_count -c&lt;br /&gt;
&lt;br /&gt;
This will produce a text file with the SHP_FID and a cell count seperated by a space. The final preparatory step is to place the count corresponding to each municipality into the Municipalities.dbf file and to calculate the variables of interest as an amount per cell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
This is how you would link the files in OpenOffice if you have not yet set up your data sources and do not know how to use VLOOKUP etc.&lt;br /&gt;
&lt;br /&gt;
# Open the file &amp;quot;munic_count&amp;quot; - it will default to a text page containing the SHP_FID, an open space and the cell count.&lt;br /&gt;
# Convert the open spaces to tabs using &amp;quot;Edit&amp;quot;, &amp;quot;Find and Replace&amp;quot;. Place a space in the &amp;quot;search for&amp;quot; box and \t in the &amp;quot;replace with&amp;quot; boxes. Activate &amp;quot;Regular expressions&amp;quot; and click on &amp;quot;Replace all&amp;quot;.&lt;br /&gt;
# Select all of the data (Ctrl A) and copy it to a clipboard (Ctrl C)&lt;br /&gt;
&lt;br /&gt;
You now have all the data ordered by SHP_FID ready to be pasted into the Municpalities.dbf file. So open the Municipalities.dbf file - it will default to a spreadsheet.&lt;br /&gt;
&lt;br /&gt;
# Make sure that the spreadsheet data is in ascending ordered of SHP_FID. (Select all data other than the headers then go to &amp;quot;Data&amp;quot;, &amp;quot;Sort&amp;quot; and select the appropriate column).&lt;br /&gt;
# Click on to cell at the top of the first unused column and click on &amp;quot;Edit&amp;quot;, &amp;quot;Paste special&amp;quot; and &amp;quot;unformatted text&amp;quot;. The cells values and SHP_FID data should now be placed in the corresponding rows. Check that this has been done.&lt;br /&gt;
&lt;br /&gt;
=== Variables of interest ===&lt;br /&gt;
&lt;br /&gt;
If you are interested in, say, aggregating populations then calculate the population per cell for every municipality. (If your data starts in row 1, population is in column C and the cell count in column K type &amp;quot;=C1/K1&amp;quot;. Copy and then paste the formula into all other rows.) Give the new column an appropraite name, say, &amp;quot;cell_value&amp;quot; and save the file under its original name (i.e. as a .dbf). You may well return at a latter stage and calculate new variables of interest using the cell counts. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can now proceed with the aggregations.&lt;br /&gt;
&lt;br /&gt;
First convert the Municipalities vector into a raster (again). This time use the cell_value as the attribute of interest. At the command prompt type...&lt;br /&gt;
&lt;br /&gt;
        v.to.rast input=Municipalities output=municipalities use=attr col=cell_value&lt;br /&gt;
&lt;br /&gt;
Note that I gave the output raster the same name as earlier. This will overwrite the original raster thereby minimizing clutter.&lt;br /&gt;
&lt;br /&gt;
Now also convert the Provinces vector to a raster file &lt;br /&gt;
&lt;br /&gt;
        v.to.rast input=Provinces output=provinces use=attr col=SHP_FID&lt;br /&gt;
&lt;br /&gt;
The relationship between the two raster files can now be explored using a number of statistics commands most of which are found under r.statistics. Perhapsthe most important statistics are r.sum and r.average. &lt;br /&gt;
&lt;br /&gt;
The command&lt;br /&gt;
        r.sum municpalities &lt;br /&gt;
&lt;br /&gt;
will give the total of all the cell values in the municipalities raster. This equals the total population of the region. However what is actually required in the sum of the population for each province. To get this we use r.statistics. Unfortunately this script does not work for floating point rasters (which is what you are most likely to have). To overcome this problem create a new raster reflecting the integer value of each cell. To create a file useable for r.statistics use..&lt;br /&gt;
&lt;br /&gt;
        r.mapcalc&lt;br /&gt;
(then enter line-by-line)&lt;br /&gt;
        int_municpal=round(municipalities)&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
If rounding of the cell values to an integer results in a notable decline in accuracy then create a new raster file in which the values are multiplied by ten or a hundred and only then rounded. In latter analysis recall that the units have been dramatically (but precisely) inflated. To do this try &amp;quot;int_munic=round(100*municipalities)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To finally aggregate the municipal population to provinces type... &lt;br /&gt;
&lt;br /&gt;
        r.statistics base=provinces cover=int_municipal method=sum output=prov_pop&lt;br /&gt;
&lt;br /&gt;
This creates a new raster &amp;quot;prov_pop&amp;quot; which can be explored using&lt;br /&gt;
&lt;br /&gt;
d.what.vect&lt;br /&gt;
(click on each region of interest)&lt;br /&gt;
&lt;br /&gt;
You will see that the values for each province now equals the sum of all the cells that fall into that province. If you want to list the values so that you can put them into Provinces.dbf (i.e. the vector) use..&lt;br /&gt;
&lt;br /&gt;
        r.stats input=RSA_STATS -l &lt;br /&gt;
&lt;br /&gt;
The output can then be placed into the corresponding data file using a method similar to that above. &lt;br /&gt;
&lt;br /&gt;
r.statistics comes with a range of other functions other than &amp;quot;sum&amp;quot;. These substantially improve the functionality of the method.  Statistics include distribution, average, mode, median, average deviation, standard deviation, variance, skewness, kurtosis, minimum and maximum. For assistance type &amp;quot;man r.statistics&amp;quot; from the command prompt. Additional functionality is gained by r.mapcalc's ability to perform functions on multiple raster files. This, in itself, makes the move to raster-based mapping most promising.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sometimes the above procedure results in a notable loss in accuracy. There are two main sources for this: &lt;br /&gt;
&lt;br /&gt;
The rounding of cell values (to use r.statistics) may be problematic for areas with very small values. If this is the case consider inflating cell values by one of several orders of magnitude.  &lt;br /&gt;
&lt;br /&gt;
When the region was set up a resolution (E-W and N-S) was specified. If this resolution is not fine enough there may be some loss of accuracy through aggregation. Consider increasing the resolution.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Vector]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Tips_for_Arc_users&amp;diff=14660</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=14660"/>
		<updated>2011-12-30T20:57:42Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &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 {{cmd|v.in.ogr}} (for ESRI shapefiles, MapInfo files, SDTS, TIGER, etc.) and {{cmd|v.in.e00}} for e00 format.&lt;br /&gt;
&lt;br /&gt;
'''Coordinate Reference Systems'''&lt;br /&gt;
&lt;br /&gt;
The GRASS data structure requires that each data layer have its CRS exactly defined. This is done by maintaining data layers within a &amp;quot;[[Location and Mapsets|Location]]&amp;quot;. Each Location has a strictly defined projection, and datum, and all the data layers (raster and vector) within that location should already be either created in or projected to that CRS. GRASS does '''not''' do &amp;quot;on-the-fly&amp;quot; reprojection due to the problems often encountered in other GIS software with datum mismatches. So data layers in one location are not visible from other locations. However GRASS does supply a collection of [[Common_Tasks#GIS_Tasks|tools]] for projecting vector and raster layers from one location to another. Use of these tools is explained in the [[http://grass.osgeo.org/grass64/manuals/html64_user/projectionintro.html  manual]].&lt;br /&gt;
 &lt;br /&gt;
=== Vector import/export commands ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.in.ogr}} - Convert [http://www.gdal.org/ogr OGR] supported vector formats to GRASS vector format.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|v.out.ogr}} - Convert from the GRASS vector format to one of the supported OGR vector formats.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|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 {{cmd|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;
&amp;lt;!--Tom Russo wrote on the grass-user list ... --&amp;gt;&lt;br /&gt;
Shapefiles can only hold one type of data (point, line, polygon) per shapefile.&lt;br /&gt;
You can't export a GRASS vector map with both points and areas to a single&lt;br /&gt;
shapefile.  You'll have to do it in two passes to two different files with&lt;br /&gt;
{{cmd|v.out.ogr}} and different &amp;quot;type=&amp;quot; parameters.&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;
==== Various vector commands ====&lt;br /&gt;
* Editing differences&lt;br /&gt;
: Tips for [[Digitizing_Area_Features|Digitizing area features with attributes]]&lt;br /&gt;
&lt;br /&gt;
=== Raster import/export commands ===&lt;br /&gt;
&lt;br /&gt;
* {{cmd|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;
* {{cmd|r.out.arc}} - Converts a GRASS raster map layer into an ESRI ARCGRID file.&lt;br /&gt;
** [http://listserver.mbari.org/sympa/arc/mbsystem/2009-03/msg00031.html Some tips and tricks for imporing Arc ASCII grids from external software]&lt;br /&gt;
&lt;br /&gt;
* {{cmd|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;
*** See the [http://www.gdal.org/frmt_various.html#AIG GDAL help page for AIC]&lt;br /&gt;
*** Often the biggest .adf file is the right one to import -- check your data values after importing even if they visually look correct!&lt;br /&gt;
 r.in.gdal input=/path/to/map/hdr.adf output=map&lt;br /&gt;
&lt;br /&gt;
* {{cmd|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;
==== Import ArcASCII raster grid and connect to database ====&lt;br /&gt;
&lt;br /&gt;
The trick is to convert the raster coverage to vector&lt;br /&gt;
areas to take advantage of GRASS's rich vector attribute/database tie-ins. You can use either {{cmd|r.in.arc}} or {{cmd|r.in.gdal}} for the import.&lt;br /&gt;
If using r.in.arc be careful to set the map type to CELL for categorical maps.&lt;br /&gt;
&lt;br /&gt;
 # import ArcASCII grid to UTM55S location&lt;br /&gt;
 r.in.gdal  input=aas_z55.asc output=aas_z55&lt;br /&gt;
 r.colors aas_z55.gdal color=random&lt;br /&gt;
 r.info aas_z55&lt;br /&gt;
 &lt;br /&gt;
 # convert to vector areas, using raster value for category&lt;br /&gt;
 g.region rast=aas_z55&lt;br /&gt;
 r.to.vect -v in=aas_z55.gdal out=aas_z55 feature=area&lt;br /&gt;
 &lt;br /&gt;
 # get rid of empty DBF table created by r.to.vect&lt;br /&gt;
 v.db.droptable aas_z55&lt;br /&gt;
 &lt;br /&gt;
 # copy real DBF file into $MAPSET/dbf/ directory&lt;br /&gt;
 eval `g.gisenv`&lt;br /&gt;
 cp /tmp/au/aas_z55.DBF &amp;quot;$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/aas_z55.dbf&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # connect full DBF database to vector map, use &amp;quot;VALUE&amp;quot; as the key column&lt;br /&gt;
 v.db.connect map=aas_z55 driver=dbf table=aas_z55 key=value&lt;br /&gt;
&lt;br /&gt;
done!&lt;br /&gt;
&lt;br /&gt;
==== Import E00 raster grids ====&lt;br /&gt;
&lt;br /&gt;
The {{cmd|v.in.e00}} module only handles vector data. You will have to convert raster E00 data into an Arc ASCII grid before importing into GRASS with {{cmd|r.in.arc}} or {{cmd|r.in.gdal}}.&lt;br /&gt;
&lt;br /&gt;
* [http://lists.osgeo.org/pipermail/grass-user/2009-October/052758.html See instructions in this mailing list post] about the &lt;br /&gt;
&amp;quot;ArcExplorer Import Utility&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Various hydrology and terrain analysis commands ===&lt;br /&gt;
&lt;br /&gt;
* Watershed modeling differences:&lt;br /&gt;
** ArcInfo wants a depressionless, filled, hydrologically correct DEM.&lt;br /&gt;
** {{cmd|r.watershed}} does explicitly not want such a DEM, it just wants a raw DEM with depressions, not filled, and not hydrologically correct (hence, no preparations needed).&lt;br /&gt;
* How to [[Creating_watersheds|Create watersheds for specific drainage points]] like the Arc Hydro extension&lt;br /&gt;
* See also [[Hydrological Sciences]] for a list of available hydrological GRASS tools&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;br /&gt;
[[Category: Hydrology]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Sqlite_Drop_Column&amp;diff=14659</id>
		<title>Sqlite Drop Column</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Sqlite_Drop_Column&amp;diff=14659"/>
		<updated>2011-12-30T20:57:29Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Q:''' How can I drop a column in sqlite-databases?&lt;br /&gt;
&lt;br /&gt;
New '''A:''' GRASS 6.3.cvs contains v.db.dropcol which supports it.&lt;br /&gt;
&lt;br /&gt;
Old '''A:''' It is not possible to drop columns within sqlite using the syntax ALTER TABLE DROP COLUMN [1]. However, there is a workaround for this issue [2]:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN TRANSACTION;&lt;br /&gt;
CREATE TEMPORARY TABLE t1_backup(a,b);&lt;br /&gt;
INSERT INTO t1_backup SELECT a,b FROM t1;&lt;br /&gt;
DROP TABLE t1;&lt;br /&gt;
CREATE TABLE t1(a,b);&lt;br /&gt;
INSERT INTO t1 SELECT a,b FROM t1_backup;&lt;br /&gt;
DROP TABLE t1_backup;&lt;br /&gt;
COMMIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's obvious that this is a little bit complex. But if you use sqlitebrowser [3]  this can be done with a few mouse-clicks (look under --&amp;gt;modify table for a button &amp;quot;remove field&amp;quot;. See also the Firefox SQLite Manager add-on [4], which is similar to SqliteBrowser.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you could try this approach, which is slightly fewer steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BEGIN TRANSACTION;&lt;br /&gt;
CREATE TABLE t1_new (&lt;br /&gt;
  foo  TEXT PRIMARY KEY,&lt;br /&gt;
  bar  TEXT,&lt;br /&gt;
  baz  INTEGER&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
INSERT INTO t1_new SELECT foo, bar, baz FROM t1;&lt;br /&gt;
DROP TABLE t1;&lt;br /&gt;
ALTER TABLE t1_new RENAME TO t1;&lt;br /&gt;
COMMIT;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [1] http://www.sqlite.org/omitted.html &lt;br /&gt;
* [2] http://www.sqlite.org/faq.html#q11&lt;br /&gt;
* [3] http://sqlitebrowser.sourceforge.net/&lt;br /&gt;
* [4] https://addons.mozilla.org/en-US/firefox/addon/5817&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=SQL_rename_columns&amp;diff=14658</id>
		<title>SQL rename columns</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=SQL_rename_columns&amp;diff=14658"/>
		<updated>2011-12-30T20:57:25Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Q: I have imported successfully a large dataset to GRASS. After the import, the attribute columns are named like this: dbl_1 dbl_2...... I would like to change these names to something more friendly. I've tried some dbf editors but they allow only to change values but not the database structure.''&lt;br /&gt;
&lt;br /&gt;
'''A:''' You can change column names with [http://openoffice.org Openoffice.org] (Version 2). But take care to use 'oobase' (or: File -&amp;gt; New -&amp;gt; Database) to avoid problems with the number of rows. So, use 'oobase' to connect to your dbf file using the dbase driver (in the launch dialog chose &amp;quot;connect to existing database&amp;quot;). Then you don't have any problems with row number limits.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* In PostgreSQL there is an ALTER TABLE/RENAME COLUMN command.&lt;br /&gt;
* For SQLite, use the [http://sqlitebrowser.sourceforge.net/ SQLiteBrowser] program or the [https://addons.mozilla.org/en-US/firefox/addon/5817 Firefox SQLite Manager plugin].&lt;br /&gt;
&lt;br /&gt;
Alternative: in GRASS &amp;gt;=6.3 there is drop column support: so you can add a new column, update it to the one to be renamed, drop the old column.&lt;br /&gt;
* {{cmd|v.db.renamecol}}&lt;br /&gt;
* {{cmd|v.db.dropcol}}&lt;br /&gt;
* {{cmd|v.db.addcol}}&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
* [[Openoffice.org with SQL Databases]]&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Search_and_Rescue&amp;diff=14657</id>
		<title>Search and Rescue</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Search_and_Rescue&amp;diff=14657"/>
		<updated>2011-12-30T20:57:17Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Along with GIS's role in natural hazard mitigation planning, such as preparing proactive earthquake, landslide, or tsunami risk maps, SAR is one of the truly rewarding applications of the software. The majority of the work on GRASS (and Open Source software in general) is done on a volunteer basis, indoors on a terminal screen with little feedback. Hearing about some little program that you created helping folks in dire need really makes our day and keeps us motivated to continue working on the software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The following thread appeared on the GRASS users' mailing list in early Feb 2008: &amp;quot;[http://thread.gmane.org/gmane.comp.gis.grass.user/22261 Search and Rescue Volunteer Groups]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== In the news ===&lt;br /&gt;
&lt;br /&gt;
The speed with which open source software can be modified and component tools grafted together to create new custom application software lends itself to use in dynamic situations where speed of deployment is key.&lt;br /&gt;
&lt;br /&gt;
* [http://thread.gmane.org/gmane.comp.gis.gdal.devel/5243 GDAL's use in Hurricane Katrina rescue efforts]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Case Studies ===&lt;br /&gt;
&lt;br /&gt;
GIS operations are a natural fit in search and rescue planning.  This application shows how a GIS could have been deployed to analyze information known to search management during a difficult search, had the tool been available to planners at the time.&lt;br /&gt;
&lt;br /&gt;
* [http://www.swcp.com/~russo/080103/ GRASS potential impact to SAR planning]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Agent Modeling ===&lt;br /&gt;
Agent modeling could be an interesting mix of modeling in a GIS environment especially in use by Search and Rescue (SAR). Interesting area tho think about.&lt;br /&gt;
&lt;br /&gt;
* [http://gisagents.blogspot.com/2007/10/open-source-simulation-modelling.html GIS and Agent Based Modeling] Blog&lt;br /&gt;
&lt;br /&gt;
* [http://repast.sourceforge.net/ REPAST] Repast Simphony is a free and open source agent-based modeling toolkit that offers users a rich variety of features. Java and Python. Integrates with Geotools, java topology suite, R-Stats and OpenMap&lt;br /&gt;
&lt;br /&gt;
* [http://www.ucl.ac.uk/~tcrnmar/ MAGICAL] The MAGICAL software comprises a suite of three programs that provide a multi-agent simulation extension for the GRASS GIS software.&lt;br /&gt;
&lt;br /&gt;
*[http://lists.osgeo.org/mailman/listinfo/grass-abm GRASS-ABM mailing list]: Integration of GRASS with JAVA based agent based modeling (ABM)&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&lt;br /&gt;
* Ciolli M., Vitti A., Mengon L., Zatelli P., Zottele F., &amp;quot;''A GIS-based decision support system for the management of SAR operations in mountain areas''&amp;quot;.  Geomatics workbooks, 2006, v. 6.&lt;br /&gt;
: URL: http://geomatica.como.polimi.it/workbooks/n6/articoli/sar_geomatics.pdf&lt;br /&gt;
&lt;br /&gt;
* Ciolli M., Mengon L., Vitti A., Zatelli P., Zottele F., &amp;quot;''A GIS-based FOSS decision support system for the management of SAR operations in mountain areas''&amp;quot;. Contributo a &amp;quot;FOSS4G2006 - Free And Open Source Software for Geoinformatics&amp;quot;, Losanna, Svizzera, 11-15 Settembre 2006.&lt;br /&gt;
: URL: http://www.foss4g2006.org/contributionDisplay.py?contribId=137&amp;amp;sessionId=49&amp;amp;confId=1&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.xastir.org Xastir] - X Amateur Tracking and Information System&lt;br /&gt;
&lt;br /&gt;
* [http://e-gads.sourceforge.net E-GADS!] - Electronic Ground Search and Rescue Administrative Database System&lt;br /&gt;
&lt;br /&gt;
* [http://gpsd.berlios.de GPSd] - gpsd is a service daemon that monitors one or more GPSes attached to a host computer through serial or USB ports, making all data on the location/course/velocity of the sensors available to be queried on TCP port 2947 of the host computer.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gpsdrive.de GpsDrive] - Real time navigation software for Linux &amp;amp; Mac&lt;br /&gt;
: see also the ''d.out.gpsdrive'' GRASS module&lt;br /&gt;
&lt;br /&gt;
* [http://pywps.wald.intevation.org/ PyWPS] and more generally [http://grass.osgeo.org/screenshots/web.php GRASS web interface] applications&lt;br /&gt;
&lt;br /&gt;
* [http://sahana.lk/ Sahana] is a Free and Open Source Disaster Management system. It is a web based collaboration tool that addresses the common coordination problems during a disaster from finding missing people, managing aid, managing volunteers, tracking camps effectively between Government groups, the civil society (NGOs) and the victims themselves.&lt;br /&gt;
&lt;br /&gt;
=== Contacts ===&lt;br /&gt;
&lt;br /&gt;
* -[[User:Dsampson|Dsampson]] Dave Sampson ([http://grass.itc.it/ GRASS], [http://qgis.org/ QGIS], [http://wiki.osgeo.org/index.php?title=Ottawa_Chapter OSGEO Ottawa], [http://www.sarglobal1.ca/index.htm SAR Global1], G3 Geomatics)&lt;br /&gt;
* -&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Scripting&amp;diff=14656</id>
		<title>Scripting</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Scripting&amp;diff=14656"/>
		<updated>2011-12-30T20:57:13Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Scripting ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* See the [http://grass.ibiblio.org/grass63/manuals/html63_user/g.parser.html g.parser] module help page. It's an easy way to make your script look and act like a GRASS module, including creating a GUI and help page template for it automatically.&lt;br /&gt;
&lt;br /&gt;
* There are a number of [http://grass.ibiblio.org/grass63/manuals/html63_user/general.html other] g.* modules which are specifically useful for scripting use.&lt;br /&gt;
&lt;br /&gt;
==== Verbosity level ====&lt;br /&gt;
&lt;br /&gt;
Use the &amp;quot;--quiet&amp;quot; (alias --q) and &amp;quot;--verbose&amp;quot; (alias --v) command line arguments to make the script produce more or less messages and info like percent done. This works for almost all modules. The big exception to that is r.mapcalc which doesn't use the standard parser.&lt;br /&gt;
&lt;br /&gt;
For r.mapcalc, or if you want to set a blanket --quiet directive for the whole script, you can set the GRASS_VERBOSE environmental variable. Python's os module has a putenv() function to do that. &lt;br /&gt;
&lt;br /&gt;
These are the levels you can use:&lt;br /&gt;
  (from lib/gis/verbose.c)&lt;br /&gt;
 0 - module should print nothing but errors and warnings (G_fatal_error,&lt;br /&gt;
      G_warning)  Triggered by &amp;quot;--q&amp;quot; or &amp;quot;--quiet&amp;quot;.&lt;br /&gt;
 1 - module will print progress information (G_percent)&lt;br /&gt;
 2 - module will print all messages (G_message)  [default level]&lt;br /&gt;
 3 - module will be very verbose. Triggered by &amp;quot;--v&amp;quot; or &amp;quot;--verbose&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;--quiet&amp;quot; will set the level to 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
shell script example&lt;br /&gt;
 # for everything that follows&lt;br /&gt;
 GRASS_VERBOSE=1&lt;br /&gt;
 export GRASS_VEBOSE&lt;br /&gt;
&lt;br /&gt;
 # override for just one module&lt;br /&gt;
 GRASS_VERBOSE=0 \&lt;br /&gt;
   r.mapcalc &amp;quot;only_set = for_this_process&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Another nice thing about using the enviro variable method is that it is&lt;br /&gt;
silently ignored for earlier versions of GRASS. For earlier versions of GRASS&lt;br /&gt;
an error happens when &amp;quot;--quiet&amp;quot; isn't recognized as a valid command line&lt;br /&gt;
option. (the new 6.2.3 knows to ignore it)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
see &amp;quot;Verbosity levels&amp;quot; on the [[Development_Specs]] page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The advantage of these methods versus sending all stderr to /dev/null is that&lt;br /&gt;
warning and error messages are not lost, making prototyping and debugging a&lt;br /&gt;
whole lot easier.&lt;br /&gt;
&lt;br /&gt;
=== Bash ===&lt;br /&gt;
&lt;br /&gt;
See the [http://grass.itc.it/grass63/source/snapshot/SUBMITTING_SCRIPTS SUBMITTING_SCRIPTS] file for some tips.&lt;br /&gt;
&lt;br /&gt;
See the existing GRASS scripts in the scripts/ directory for examples of using tempfiles, etc.&lt;br /&gt;
&lt;br /&gt;
Newer versions of Ubuntu use Dash as the default /bin/sh, so don't assume that sh will handle Bashisms.&lt;br /&gt;
&lt;br /&gt;
* [[GRASS_and_Shell|Running GRASS as a batch job]]&lt;br /&gt;
&lt;br /&gt;
=== Tcl/Tk ===&lt;br /&gt;
&lt;br /&gt;
See the [http://grass.itc.it/grass63/source/snapshot/SUBMITTING_TCLTK SUBMITTING_TCLTK] file for some tips.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
* See the [[GRASS and Python]] page&lt;br /&gt;
&lt;br /&gt;
{{Python}}&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Screenshot_suggestions&amp;diff=14655</id>
		<title>Screenshot suggestions</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Screenshot_suggestions&amp;diff=14655"/>
		<updated>2011-12-30T20:57:09Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please put suggestions for screenshots to go onto the main website on this page. You can post URLs or [[Special:Upload|upload images]] directly to the wiki or upload them to the [http://svn.osgeo.org/grass/grass-addons/screenshots/ SVN addons repository].&lt;br /&gt;
&lt;br /&gt;
Here is the new work-in-progress screenshots page:&lt;br /&gt;
* http://grass.osgeo.org/screenshots/&lt;br /&gt;
&lt;br /&gt;
'''Note that all screenshots are to be licensed under the [http://creativecommons.org/ Creative Commons] [http://creativecommons.org/licenses/by-sa/2.5/ Attribution ShareAlike 2.5] License.''' Please leave your name as well so we can attribute correct credit.&lt;br /&gt;
&lt;br /&gt;
* See [http://en.wikipedia.org/wiki/Wikipedia:Extended_image_syntax here] for help making an image on this page an instant thumbnail.&amp;lt;BR&amp;gt;(The syntax is '''&amp;lt;nowiki&amp;gt;[[Image:{name}|{width}px]]&amp;lt;/nowiki&amp;gt;''')&lt;br /&gt;
&lt;br /&gt;
* PNG images are lossless but can be very large for satellite images &amp;amp; photographs. Best format to use for things like menus with a lot of solid colors and where crispness counts.&lt;br /&gt;
** To help save bandwidth, save your PNGs with compression setting of 9. Often you can reduce the file size significantly by reducing the pallet size to be big enough to hold just the colors used.&lt;br /&gt;
** Running a program like [http://pmt.sourceforge.net/pngcrush/ pngcrush] can compress it further.&lt;br /&gt;
 pngcrush -brute image.png image_crushed.png&lt;br /&gt;
&lt;br /&gt;
* JPG images are lossy but can be much smaller for things like satellite images &amp;amp; photographs.&lt;br /&gt;
** For quality save nearer to 85%, for size save nearer to 75%.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
'''Still to do'''&lt;br /&gt;
&lt;br /&gt;
* Enhance the web services page&lt;br /&gt;
&lt;br /&gt;
* Clean up &amp;amp; add to RS/imagery pages, clarify meanings of the two categories&lt;br /&gt;
&lt;br /&gt;
* Nicer raster/'''vector''' page images?&lt;br /&gt;
: Create a Spearfish/NC map showing vector maps rendered with the new Cairo display driver&lt;br /&gt;
&lt;br /&gt;
* Create modeling page (R stats, Dylan's spearfish clustering fig, ..?)&lt;br /&gt;
: Idea for modeling page is non-map figures and graphs&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
Stuff still to merge &amp;amp; places to draw from:&lt;br /&gt;
* Old screenshots from the website [grass6?/screenshots/]&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass60/screenshots/&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass61/screenshots/&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/grass63/screenshots/&lt;br /&gt;
* stuff in the main website images/ dir (mostly GRASS 5 shots)&lt;br /&gt;
** http://freegis.org/cgi-bin/viewcvs.cgi/web/images/&lt;br /&gt;
* Screenshots from http://www.osgeo.org/grass/&lt;br /&gt;
* The wiki [[Special:Imagelist|Imagelist]]&lt;br /&gt;
* Old GRASSNews and OSGeo journal articles&lt;br /&gt;
* Scans of old GRASS-Clippings articles? -&amp;gt; helena + old GRASS 4 3D globes?&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Subcategories are:&lt;br /&gt;
== User Interface ==&lt;br /&gt;
&lt;br /&gt;
=== Startup screen ===&lt;br /&gt;
&lt;br /&gt;
* Mapset picker&lt;br /&gt;
* Define new location by EPSG &amp;amp; custom params&lt;br /&gt;
* Markus has some on the [[FOSS4G2007 IntegrationShowcase]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== TclTk GUI ===&lt;br /&gt;
&lt;br /&gt;
* GUI and tools in action&lt;br /&gt;
&lt;br /&gt;
=== wxPython interface ===&lt;br /&gt;
&lt;br /&gt;
* GIS manager&lt;br /&gt;
* module window&lt;br /&gt;
&lt;br /&gt;
=== GRASS and QGIS ===&lt;br /&gt;
&lt;br /&gt;
* see Trento QGIS &lt;br /&gt;
&lt;br /&gt;
== Platforms ==&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
=== Mac ===&lt;br /&gt;
=== Windows ===&lt;br /&gt;
=== Handhelds ===&lt;br /&gt;
&lt;br /&gt;
== Raster map operations ==&lt;br /&gt;
&lt;br /&gt;
[[Image:D_rast_arrow_magnitude.png|right|100px]]&lt;br /&gt;
* ''d.rast.arrow'' example (HB) - '''''added to raster page'''''&lt;br /&gt;
&lt;br /&gt;
[[Image:Spearfish_catchements.png|right|100px]]&lt;br /&gt;
* ''r.watershed'' help page example (HB) - '''''added to raster page'''''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Zurich.png|right|100px]]&lt;br /&gt;
* ''r.mapcalc'' and LANDSAT imaging/processing&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;r.param.scale param=feature&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Some more [http://www.grassbook.org/gallery/ch3getstarted/images.html raster maps]&lt;br /&gt;
* And even more [http://www.grassbook.org/gallery/extra/osgeo_nc_example1.png raster maps]&lt;br /&gt;
&lt;br /&gt;
== Vector map operations ==&lt;br /&gt;
&lt;br /&gt;
* Network ops.&lt;br /&gt;
* 3D visualization&lt;br /&gt;
** DXF ant (HB): [http://bambi.otago.ac.nz/hamish/grass/bugs/insects01_nviz_dxf.png] (combine with [http://grass.ibiblio.org/grass63/screenshots/vector.php Möbius strip])&lt;br /&gt;
** NYC-3D (HB): [http://bambi.otago.ac.nz/hamish/grass/screenshots/nyc3d_nviz3_midtown.png]&lt;br /&gt;
&lt;br /&gt;
* USA 3D bargraph by state [http://grass.fbk.eu/grass60/screenshots/viz.php here] - v.extrude [http://grass.fbk.eu/grass61/screenshots/vector.php here], NVIZ&lt;br /&gt;
&lt;br /&gt;
* vector map (roads, railway, fields, points, etc) rendered using the Cairo driver&lt;br /&gt;
&lt;br /&gt;
== Imagery ==&lt;br /&gt;
&lt;br /&gt;
''We still need to better define where to make the split between Image Processing and Remote Sensing''&lt;br /&gt;
&lt;br /&gt;
* i.fusion.brovey example [http://mpa.itc.it/markus/grass61/demos/ here]&lt;br /&gt;
* i.vpoints example showing back-transformed vector overlay check&lt;br /&gt;
* I remember a picture of a house and dock rendered in 3D from key GCPs in some sort of stereo photogrammetry project. Maybe from an abstract of talk from the GRASS conf. that took place in EU before the Thailand one (??)&lt;br /&gt;
&lt;br /&gt;
== Remote Sensing and LIDAR ==&lt;br /&gt;
&lt;br /&gt;
=== Satellite Data ===&lt;br /&gt;
MODIS, Quickbird, etc, I thought to put some sites/vector points stuff here too. Maybe split that out into its own category?&lt;br /&gt;
&lt;br /&gt;
* clustering, segmentation [http://gama.fsv.cvut.cz/wiki/index.php/Zpracov%C3%A1n%C3%AD_obrazov%C3%BDch_dat_-_cvi%C4%8Den%C3%AD_%C4%8D.11 many examples from Martin]&lt;br /&gt;
: - '''''very nice!'''''&lt;br /&gt;
* sat img edge detection  (Markus posted one recently)&lt;br /&gt;
* i.landsat.rgb trials [http://bambi.otago.ac.nz/hamish/grass/landsat/]&lt;br /&gt;
: '''''- added to RS page'''''&lt;br /&gt;
: also [http://mpa.itc.it/markus/grass61/demos/ Markus's example] is nice&lt;br /&gt;
&lt;br /&gt;
* [http://mpa.itc.it/rs/modis_reflectance/modis_reflectance500m.png MODIS/Terra Surface Reflectance Daily L2G Global 500m] - ''8 Aug 2002 - true color image composite. Part of Europe as seen from MODIS/TERRA at 500m resolution (R1 G4 B3). New snow arrived in the Alps, floods in Austria, Czech Republic and Germany due to heavy rain (up to 300mm/24h in Eastern Europe)''. (screenshot Markus Neteler)&lt;br /&gt;
* [http://mpa.itc.it/rs/modis_ndvi_evi/index.html MODIS NDVI/EVI] images&lt;br /&gt;
* [http://mpa.itc.it/rs/aster/index.html ASTER high resolution remote sensing] - ships on the North Sea near Germany&lt;br /&gt;
: '''''- added to the RS page '''''&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/SRTM SRTM void filling with spline interpolation in GRASS GIS] (screenshot Markus Neteler)&lt;br /&gt;
: '''''- already on the raster screenshot page'''''. ''add to the RS page too?''&lt;br /&gt;
&lt;br /&gt;
* [http://mpa.itc.it/rs/landsat7/index.html LANDSAT TM7 visualizations of Venice, Trento] (screenshots Markus Neteler)&lt;br /&gt;
* ? more ideas please ?&lt;br /&gt;
&lt;br /&gt;
=== LIDAR and Sonar Data ===&lt;br /&gt;
* [http://www.grassbook.org/gallery/extra/osgeo_nc_example2.png Lidar with NC OSGeo data set]&lt;br /&gt;
* [http://skagit.meas.ncsu.edu/~drake/drake/jockey/jockeys_ridge.html Jockey's Ridge] '''''- added'''''&lt;br /&gt;
* gdalwarping of sidescan sonar track? - yes!&lt;br /&gt;
: http://bambi.otago.ac.nz/hamish/grass/gdal/sidescan_warp.html&lt;br /&gt;
&lt;br /&gt;
=== Sites (point) data ===&lt;br /&gt;
* where to put this?&lt;br /&gt;
 - eg NVIZ 3D histograms   (example?)&lt;br /&gt;
&lt;br /&gt;
== 3D Visualization ==&lt;br /&gt;
&lt;br /&gt;
* see [[Help with 3D]]&lt;br /&gt;
&lt;br /&gt;
* NVIZ, r3.out.vtk, ... [http://www-pool.math.tu-berlin.de/~soeren/grass/modules/screenshots/ paraview] from Sören&lt;br /&gt;
* MARS MOLA data ([http://bambi.otago.ac.nz/hamish/olympus_mons.html]) '''''added to viz page'''''&lt;br /&gt;
&lt;br /&gt;
[[Category:Visualization]]&lt;br /&gt;
&lt;br /&gt;
== 3D Rendering ==&lt;br /&gt;
&lt;br /&gt;
* [http://mpa.itc.it/markus/povray/ Povray rendering] (Markus Neteler)&lt;br /&gt;
: '''''- added to viz page'''''&lt;br /&gt;
* [http://casoilresource.lawr.ucdavis.edu/drupal/node/80 Povray rendering] (Dylan Beaudette)&lt;br /&gt;
: '''''- link added to viz page'''''&lt;br /&gt;
&lt;br /&gt;
* see also the GRASS [[POV-Ray]] wiki page&lt;br /&gt;
&lt;br /&gt;
== Map reprojection ==&lt;br /&gt;
&lt;br /&gt;
* [http://grass.fbk.eu/grass60/screenshots/raster.php Lambert Equal Area projection of ETOPO2]&lt;br /&gt;
: - ''currently on the raster page''&lt;br /&gt;
&lt;br /&gt;
* i.vpoints preview vector map backwards projection overlay&lt;br /&gt;
&lt;br /&gt;
== Cartography ==&lt;br /&gt;
''Aim for publication quality''&lt;br /&gt;
&lt;br /&gt;
* ps.map, nice PS,PNG driver renders&lt;br /&gt;
** I do not know, if it suits, but this I got some time ago with pure ps.map [[http://wwwold.fle.czu.cz/~jachym/img/grass/krkonose_prehledka.jpg]]&lt;br /&gt;
&lt;br /&gt;
* example of rotated symbols in ps.map: (H Bowman)&lt;br /&gt;
: --''HB:'' does this demo count as cartography? I'm not quite sure how to classify it.&lt;br /&gt;
: http://mpa.itc.it/markus/grass63/demos/psmap_rotcol.png&lt;br /&gt;
&lt;br /&gt;
* [http://grass.itc.it/images/spearfish_drg_nviz.jpg US DRG draped over DEM (NVIZ)] (Markus Neteler)&lt;br /&gt;
: - '''''already added as first image on viz page''''', ''add to the cartography page as well as an example of what can be done with a printed topo map??'' (HB: sure, if you like)&lt;br /&gt;
&lt;br /&gt;
[[File:Ps.output.png|thumb|right|200px]]&lt;br /&gt;
* example of map using {{AddonCmd|ps.output}} addon&lt;br /&gt;
: - '''''added'''''&lt;br /&gt;
&lt;br /&gt;
* screenshot of a map created with GRASS and viewed within from QGIS (using aspect data to rotate and area data to adjust the size of arrow-symbols corresponding to forest gaps).&lt;br /&gt;
: - Does this fit here? Names and text can be removed as well as a high quality version can be created if required[[File:Forestgaps_Moseltal_Germany.png|thumb|right|200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Web Services ==&lt;br /&gt;
&lt;br /&gt;
* Markus's PHP earthquake map: http://grass.itc.it/spearfish/php_grass_earthquakes.php&lt;br /&gt;
* Jachym's contributions&lt;br /&gt;
** PyWPS&lt;br /&gt;
** The new one&lt;br /&gt;
** There is a lot of the stuff&lt;br /&gt;
*** http://www.bnhelp.cz/mapserv/pokusy/OpenLayers/jachym/openlayers/examples/wps.html&lt;br /&gt;
*** http://pywps.ominiverdi.org - more stuff&lt;br /&gt;
*** http://pywps.wald.intevation.org&lt;br /&gt;
*** http://www.bnhelp.cz/mapserv/pokusy/openlayers/bonifacio&lt;br /&gt;
* r.in.wms, v.in.wfs&lt;br /&gt;
* CSISS/GMU contributions: GRASS_based geospatial web services &lt;br /&gt;
** A lot of web services are developed based on GRASS functions for imagery/raster and vector map processing&lt;br /&gt;
*** http://geobrain.laits.gmu.edu:81/grassweb/manuals/&lt;br /&gt;
** They are standard web services, which allow anyone to invoke with their own client applications &lt;br /&gt;
** All these web services also could be invoked through our GeOnAS interface&lt;br /&gt;
*** http://geobrain.laits.gmu.edu:81/OnAS/&lt;br /&gt;
*** http://geobrain.laits.gmu.edu:81/OnAS/User_Guide.htm&lt;br /&gt;
* OSU IPPC GRASSLinks:&lt;br /&gt;
: http://pnwpest.org/glinks/&lt;br /&gt;
&lt;br /&gt;
== Modeling and Statistics ==&lt;br /&gt;
''this sections needs a better title''&lt;br /&gt;
&lt;br /&gt;
* Dylan's Spearfish bugsites cluster plot: http://casoilresource.lawr.ucdavis.edu/drupal/node/340&lt;br /&gt;
* Some R variograms etc&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
* see [[Movies]]&lt;br /&gt;
&lt;br /&gt;
=== 2D MPEGs ===&lt;br /&gt;
(r.out.mpeg et al)&lt;br /&gt;
&lt;br /&gt;
* old MPEG-1 canyon fly through&lt;br /&gt;
: - '''''added'''''&lt;br /&gt;
* Bob Covill had some ETOPO5 world bathymetry fly throughs&lt;br /&gt;
: - '''''added'''''&lt;br /&gt;
: Still need to add new movies from Bob&lt;br /&gt;
&lt;br /&gt;
* Maris' r.lakes Latvia animations at http://mpa.itc.it/markus/grass61/demos/rlake/&lt;br /&gt;
: (don't use the bad Trento figures there)&lt;br /&gt;
&lt;br /&gt;
=== 3.5 and 4D ===&lt;br /&gt;
&lt;br /&gt;
* moving NVIZ cutting planes&lt;br /&gt;
: example South America movie from Bob '''''- added'''''&lt;br /&gt;
* Paraview&lt;br /&gt;
&lt;br /&gt;
== More sections? ==&lt;br /&gt;
&lt;br /&gt;
Feel free to suggest something.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=S-57_data&amp;diff=14654</id>
		<title>S-57 data</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=S-57_data&amp;diff=14654"/>
		<updated>2011-12-30T20:57:03Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''''More to come'''''&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
* Import with v.in.ogr&lt;br /&gt;
* '''There is some more info and links on the [[Export for GpsDrive]] wiki page'''&lt;br /&gt;
: (see the mailing list posts linked at the end of that page):&lt;br /&gt;
:: http://thread.gmane.org/gmane.comp.linux.gps/3920/focus=3937 &lt;br /&gt;
:: http://thread.gmane.org/gmane.comp.linux.gps/3920/focus=3934&lt;br /&gt;
&lt;br /&gt;
== Obtaining data ==&lt;br /&gt;
&lt;br /&gt;
=== Worldwide ===&lt;br /&gt;
&lt;br /&gt;
* Often this is problematic, which is a real shame because lives depend - in a very real way - on universal access to good chart data. My frustrated take (rant?) on the matter:&lt;br /&gt;
: ''The hydrographic offices of many countries, and their associates, earn significant revenue from selling nautical chart data back to the tax payers who funded them in the first place, and they are as a whole loathe to give that up. This follows on from a tradition of selling paper charts, which did have substantial printing and distribution costs. But for electronic charts the primary cost of production is shifted the maintenance of the bathymetric survey and light lists, which must be borne as a fixed cost anyway. There are some justified worries about outdated or invalid data being used for navigational purposes, but in this sailor's opinion an out of date chart is worlds better than no chart at all; money spent on fragile fail-dangerous software is money not spent of the upkeep of the boat; we all know full well what &amp;quot;Not for navigational purposes&amp;quot; means (and that is mostly irrelevant for GIS work anyway); and cryptographically signed data packages (e.g. MD5 checksums) have been around and in wide use for more than a decade, ensuring that the end-user's data has not been corrupted or altered, without requiring a closed system. If you live in a country so effected, probably the best you can do is have your local OSGeo chapter &amp;amp;/or institution complain en masse to your national geospatial information office, citing the United States's NOAA as an example which can not be ignored. Even if they will sell you the data it will typically be encrypted in a form which will require one of their proprietary vendor-partners' software, OS, and typically a hardware dongle which can not be repaired or replaced at sea. These &amp;quot;DRM&amp;quot; tactics are fundamentally incompatible with almost all Free and Open Source software licenses (and goals) so there is little hope of a FOSS solution without action from higher up in the government. [http://www.gdal.org/ogr OGR]'s S-57 reader can not decrypt this data even if you own it; the IHO's technical committees are dominated (and often lead) by representatives of the established commercial vendors which have a vested interest in keeping the barrier to entry high.''&lt;br /&gt;
&lt;br /&gt;
=== Cananda ===&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
=== USA ===&lt;br /&gt;
&lt;br /&gt;
* Free ENC vector data for the USA from NOAA&lt;br /&gt;
: http://nauticalcharts.noaa.gov/mcd/enc/download.htm&lt;br /&gt;
&lt;br /&gt;
* Nice previews / chart picker: &lt;br /&gt;
: http://www.oceangrafix.com/o.g/search-nautical-charts.html&lt;br /&gt;
&lt;br /&gt;
== Import ==&lt;br /&gt;
&lt;br /&gt;
* Use a Lat/lon WGS84 location&lt;br /&gt;
:Select &amp;quot;create new location from georeferenced file&amp;quot;, using the ENC *.000 file. It's just lat/lon WGS84, so you could create a new location by EPSG code (4326) or by custom entry too. Another automatic way (from within grass) is to use v.in.ogr's location= option.&lt;br /&gt;
&lt;br /&gt;
* Unzip dataset&lt;br /&gt;
 unzip NOAA_ENCs440569.zip&lt;br /&gt;
&lt;br /&gt;
* test dataset with ogrinfo&lt;br /&gt;
 ogrinfo --formats | grep S57&lt;br /&gt;
 ogrinfo ENC_ROOT/US3NY01M/US3NY01M.000&lt;br /&gt;
&lt;br /&gt;
* Try to load and view it with a nice viewer like [http://openev.sf.net OpenEV] or libS52's s52glx test app&lt;br /&gt;
&lt;br /&gt;
* Import S-57 data into GRASS GIS (grass.osgeo.org) with v.in.ogr&lt;br /&gt;
   # change default database from DBF to SQLite as it is less lossy&lt;br /&gt;
   db.connect driver=sqlite \&lt;br /&gt;
      database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite.db'&lt;br /&gt;
 &lt;br /&gt;
   # import data  (ignore the many string warnings)&lt;br /&gt;
   v.in.ogr dsn=ENC_ROOT/US3NY01M/US3NY01M.000 out=noaa_12300&lt;br /&gt;
&lt;br /&gt;
   # have a look&lt;br /&gt;
   v.info noaa_12300&lt;br /&gt;
   g.region vect=noaa_12300&lt;br /&gt;
   # render all features from all layers&lt;br /&gt;
   d.mon x0; d.vect noaa_12300&lt;br /&gt;
 &lt;br /&gt;
   # view DB columns available for layer 20:&lt;br /&gt;
   v.info -c noaa_12300 layer=20&lt;br /&gt;
 &lt;br /&gt;
   # browse attribute database&lt;br /&gt;
   v.db.connect -p noaa_12326 | head -n1&lt;br /&gt;
   sqlitebrowser $MAPSET/sqlite.db&lt;br /&gt;
&lt;br /&gt;
SQLiteBrowser from http://sqlitebrowser.sourceforge.net/&lt;br /&gt;
: (alternative: [https://addons.mozilla.org/en-US/firefox/addon/5817 Firefox SQLite Manager addon])&lt;br /&gt;
&lt;br /&gt;
   # e.g. land              Layer: LNDARE&lt;br /&gt;
   ogrinfo -ro ENC_ROOT/US3NY01M/US3NY01M.000 | grep LNDARE&lt;br /&gt;
     20: LNDARE&lt;br /&gt;
   d.vect noaa_12300 layer=20 type=area disp=shape,attr attrcol=objnam \&lt;br /&gt;
     llayer=20 fcolor=255:200:80&lt;br /&gt;
   # e.g. soundings         Layer: SOUNDG   (automated layer by name)&lt;br /&gt;
   LAYER=SOUNDG&lt;br /&gt;
   LAYER_ID=`ogrinfo -ro ENC_ROOT/US3NY01M/US3NY01M.000 | \&lt;br /&gt;
     grep &amp;quot;$LAYER&amp;quot; | cut -f1 -d':'`&lt;br /&gt;
     38: SOUNDG (Multi Point)&lt;br /&gt;
   d.vect noaa_12300 layer=$LAYER_ID type=point icon=basic/diamond \&lt;br /&gt;
     fcolor=yellow size=6&lt;br /&gt;
&lt;br /&gt;
   # e.g. buoys             Layer: BOYSPP&lt;br /&gt;
   ogrinfo -ro ENC_ROOT/US3NY01M/US3NY01M.000 | grep BOY&lt;br /&gt;
     7: BOYLAT (Point)&lt;br /&gt;
     8: BOYSAW (Point)&lt;br /&gt;
     9: BOYSPP (Point)&lt;br /&gt;
   d.vect noaa_12300 layer=7 type=point icon=basic/circle \&lt;br /&gt;
     fcolor=orange size=8&lt;br /&gt;
   d.vect noaa_12300 layer=8 type=point icon=basic/circle \&lt;br /&gt;
     fcolor=magenta size=8&lt;br /&gt;
   d.vect noaa_12300 layer=9 type=point icon=basic/circle \&lt;br /&gt;
     fcolor=blue size=8&lt;br /&gt;
&lt;br /&gt;
* Set zoom, display layers, colors, line widths, labels, etc. in GRASS&lt;br /&gt;
: (this will take some work)&lt;br /&gt;
&lt;br /&gt;
    # show everything&lt;br /&gt;
    NUMLAYERS=`v.db.connect -g noaa_12326 | wc -l`&lt;br /&gt;
    for layer in `seq 1 $NUMLAYERS` ; do&lt;br /&gt;
        echo &amp;quot;layer=$layer&amp;quot;&lt;br /&gt;
        d.vect noaa_12326 layer=$layer \&lt;br /&gt;
           color=$((layer*4)):$((layer*4)):$((layer*4)) \&lt;br /&gt;
           fcolor=$((layer*4)):$((layer*4)):$((layer*4))&lt;br /&gt;
    done&lt;br /&gt;
&lt;br /&gt;
* Color and symbology standards: see libS52 from OpenEV contrib/ CVS&lt;br /&gt;
: http://www.iho.shom.fr/ECDIS/s52intro.htm&lt;br /&gt;
: http://www.iho.shom.fr/publicat/free/files/PresLib_3.3_Addendum_2007.pdf&lt;br /&gt;
&lt;br /&gt;
     e.g. fill color for land is 255:200:80&lt;br /&gt;
     d.vect noaa_12326 attrcol=objnam llayer=24 disp=attr \&lt;br /&gt;
       layer=24 fcolor=255:200:80&lt;br /&gt;
&lt;br /&gt;
?? For more colors see openev/contrib/S52/doc/C1.lup_collision.txt&lt;br /&gt;
&lt;br /&gt;
== Accessing S-52 symbology ==&lt;br /&gt;
&lt;br /&gt;
S-57 is the data format. The S-52 standard contains the standardized coloring and symbology for electronic navigation charts. We want to view the S-57 data through the lens of the S-52 rules. Some ideas for that:&lt;br /&gt;
&lt;br /&gt;
* GRASS interface: (wishlist prototype) display imported S-57 data (v.in.ogr or v.external) using S-52's coloring and layer-order info. Some environment will be information like lighting level and hull depth (start at 0) will be needed&lt;br /&gt;
&lt;br /&gt;
* View with the OpenEV plugin (functional)&lt;br /&gt;
* Create the dataviewer as a QGIS plugin (wishlist user app)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== libS52 ===&lt;br /&gt;
&lt;br /&gt;
* GPL library&lt;br /&gt;
* housed in [http://openev.sourceforge.net/ OpenEV] CVS as [http://openev.cvs.sourceforge.net/openev/contrib/S52/ contrib/S52/]&lt;br /&gt;
&lt;br /&gt;
Example rendering a few base layers:&lt;br /&gt;
&lt;br /&gt;
: [[Image:Noaa_12300_simpleglx.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== How to build ====&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/cvs/?group_id=6087 Get source code from CVS]&lt;br /&gt;
&lt;br /&gt;
* Install build dependencies&lt;br /&gt;
: Install OpenGL and X11 -dev packages (X11/Xlib.h and GL/gl.h)&lt;br /&gt;
: PROJ.4 for proj_api.h?&lt;br /&gt;
&lt;br /&gt;
* Build it:&lt;br /&gt;
 make          # for s52glx simple test program&lt;br /&gt;
 make default  # for libS52&lt;br /&gt;
&lt;br /&gt;
==== Run simple s52glx test program ====&lt;br /&gt;
&lt;br /&gt;
* [[Export_for_GpsDrive#Nautical_data_2|Get ENC data]]&lt;br /&gt;
* Edit s52test.conf with the full path to your ENC chart datafile (*.000 file)&lt;br /&gt;
* Run it with ./s52glx and you should see a new window with all layers rendered&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/grass/s52/ Screenshots]&lt;br /&gt;
&lt;br /&gt;
==== OpenEV S52 plugin ====&lt;br /&gt;
&lt;br /&gt;
* Copy &amp;lt;tt&amp;gt;libS52.so&amp;lt;/tt&amp;gt; to GDAL's lib directory&lt;br /&gt;
: putting the lib in /usr/local/lib seems to work.&lt;br /&gt;
: ''run ldconfig'' ?&lt;br /&gt;
&lt;br /&gt;
* Configure OpenEV with render plugin support:&lt;br /&gt;
 CFLAGS='-I/usr/include/gdal' CPPFLAGS='-I/usr/include/gdal' \&lt;br /&gt;
   ./configure --with-double-geocoord --with-render-plugin&lt;br /&gt;
 &lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
===== Test S52 plugin with OpenEV =====&lt;br /&gt;
&lt;br /&gt;
* Set environment variables&lt;br /&gt;
 export S57_CSV=/usr/share/gdal&lt;br /&gt;
 export OGR_S57_OPTIONS=&amp;quot;LNAM_REFS:ON,UPDATES:ON,\&lt;br /&gt;
 SPLIT_MULTIPOINT:ON,PRESERVE_EMPTY_NUMBERS:ON,\&lt;br /&gt;
 RETURN_LINKAGES:ON&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Using gvtest:&lt;br /&gt;
 ./openev/gvtest -ogr=/path/to/ENC_ROOT/US3NY01M/US3NY01M.000 &lt;br /&gt;
&lt;br /&gt;
* Using s52test:&lt;br /&gt;
: (s52test.conf will need ENC path adjusted)&lt;br /&gt;
 ./openev/contrib/S52/s52test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [??] Using pymod/openev.py:&lt;br /&gt;
: (Open .000 file, load all layers)&lt;br /&gt;
 export PYTHONPATH=&amp;quot;/usr/lib/python2.4/site-packages/gtk-1.2&amp;quot;&lt;br /&gt;
 python2.4 ./openev/pymod/openev.py&lt;br /&gt;
&lt;br /&gt;
=== GRASS S-52 interface for rendering S-57 data ===&lt;br /&gt;
&lt;br /&gt;
* TODO&lt;br /&gt;
* build little command line app to output coloring and layer order info which can be fed to d.vect et al?&lt;br /&gt;
&lt;br /&gt;
: Colors:&lt;br /&gt;
: (S-52 bright mode, click to enlarge)&lt;br /&gt;
&lt;br /&gt;
[[Image:S52_colors_bright.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Specific color RGB-equivalent values can be found in the OpenEV contrib libS52 docs:&lt;br /&gt;
: http://openev.cvs.sourceforge.net/openev/contrib/S52/doc/C1.lup_collision.txt&lt;br /&gt;
: scroll down to &amp;quot;S52_dummy.BRIGHT&amp;quot; section of the file (not quite right?? above is based on that)&lt;br /&gt;
&lt;br /&gt;
The above is just the &amp;quot;bright&amp;quot; color mode. There are also reverse background, low light, and nightime (red/black) color modes. Look in the libS52 code to convert those from CIE luminance into RGB colorspace. (S52GL.c?)&lt;br /&gt;
&lt;br /&gt;
Color abbreviation key may be found in the IHO PDF document&lt;br /&gt;
: [http://www.iho.shom.fr/PUBLICATIONS/download.htm#special S-52 Appendix 2 - Colour and Symbols Specifications for ECDIS, Edition 4.3, January 2008]&lt;br /&gt;
: Table 3: &amp;quot;Alphabetical list of colour tokens&amp;quot; (page 49)&lt;br /&gt;
&lt;br /&gt;
for example:&lt;br /&gt;
 DEPVS = 131:184:224 = Depth (very shallow)&lt;br /&gt;
 DEPMS = 166:198:227 = Depth (medium shallow)&lt;br /&gt;
 LANDA = 211:187:121 = Land (not built up)&lt;br /&gt;
 CSTLN = 140:144:138 = Coastline&lt;br /&gt;
&lt;br /&gt;
=== QGIS S-52 plugin for viewing S-57 data ===&lt;br /&gt;
&lt;br /&gt;
* Status: '''''TODO'''''&lt;br /&gt;
* QGIS reads S-57 data via GDAL's OGR driver, but it aborts because it doesn't know what to do with all the layers. I suspect getting this working at a basic level only requires a minimal amount of work from an interested programmer.&lt;br /&gt;
&lt;br /&gt;
* Integrate libS52 as a plugin.&lt;br /&gt;
: ''QGIS plugins can be written as C++ or Python. For python use SWIG to access libS52?''&lt;br /&gt;
&lt;br /&gt;
* please add ideas here ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[BSB_data|Using rasterized navigation charts (RNC) with GRASS]]&lt;br /&gt;
: importing and working with BSB charts&lt;br /&gt;
&lt;br /&gt;
[[Category: Geodata]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Ps.map_scripts&amp;diff=14653</id>
		<title>Ps.map scripts</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Ps.map_scripts&amp;diff=14653"/>
		<updated>2011-12-30T20:56:59Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Reference manual ==&lt;br /&gt;
&lt;br /&gt;
You will want to have the ps.map reference manual handy as you will refer to it often. Within the document click on the instruction list links to quickly jump to the section of interest.&lt;br /&gt;
&lt;br /&gt;
* The [http://grass.ibiblio.org/grass63/manuals/html63_user/ps.map.html ps.map help page].&lt;br /&gt;
&lt;br /&gt;
It is suggested to start simply, test the result, and then add more decorations one at a time. The command interface may appear daunting at first but you should get used to it before too long. Manual placement of decorations is a bit of a pain and time-consuming, but it is hoped that there will soon be a new [[WxPython-based_GUI_for_GRASS#Cartography_tools|wxGUI map-composer wizard]] which will act as a front-end to the program, greatly speeding up this part of the task.&lt;br /&gt;
&lt;br /&gt;
== Script examples ==&lt;br /&gt;
&lt;br /&gt;
* [[psmap_simple_example|Simple ps.map examples]] ([http://grass.ibiblio.org/download/data6.php Spearfish dataset])&lt;br /&gt;
&lt;br /&gt;
* Example showing all standard vareas [[psmap_fill_patterns|fill pattern hatches]]. (Spearfish dataset)&lt;br /&gt;
&amp;lt;!-- HB 5 Aug 2008: Willem requested this be taken offline, commented out while I clarify.&lt;br /&gt;
* [[psmap_moldefjord_example|Commands used to create the geology map of Moldefjord, Norway]] shown on the [http://grass.ibiblio.org/screenshots/cartography.php cartography screenshots page].&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ps.map example demonstrating a [[Psmap_flooding_example|scripted flood risk map]]&lt;br /&gt;
&lt;br /&gt;
* [http://geog-pc40.ulb.ac.be/grass/psmap/ Thematic maps] of Belgium&lt;br /&gt;
&lt;br /&gt;
* Create [[ps.map_graph_paper|graph paper]] ready for printing.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Map Creation ===&lt;br /&gt;
==== Multiple raster images ====&lt;br /&gt;
&lt;br /&gt;
While any number of vector maps can be drawn, ps.map will only let you draw one raster image or RGB image set per map.&lt;br /&gt;
* If you want to show two or more overlapping raster maps you need to combine them with the r.patch module or r.mapcalc's '#' color operator.&lt;br /&gt;
: (see also the r.his and r.composite modules)&lt;br /&gt;
&lt;br /&gt;
* If you want to show a number of raster maps side by side in a paneled figure you will have to do it in a two step process. The first step is to create each panel as an EPS file, the second step is to include these EPS files in the ps.map command file. [[psmap_multi_pane_example|Here is an example script demonstrating this]].&lt;br /&gt;
&lt;br /&gt;
==== Placing text below the map box ====&lt;br /&gt;
&lt;br /&gt;
Use the '''text''' instruction with a y coordinate less than 0%. In the same way text can be placed above the map box by using a coordinate greater than 100%. To right justify the text set the x coordinate to 100% and the '''ref'''erence to right.&lt;br /&gt;
&lt;br /&gt;
 ps.map out=test.ps &amp;lt;&amp;lt; EOF&lt;br /&gt;
  raster elevation.dem&lt;br /&gt;
  text 0% -6% Figure 1.1: Elevation map of Spearfish, SD&lt;br /&gt;
    fontsize 12&lt;br /&gt;
    ref left&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
==== Creating a custom info box ====&lt;br /&gt;
&lt;br /&gt;
The scalebar position and divisions will still have to be set manually, but that just takes a minute if you get the box center coordinate from the ''gv'' mouse cursor (see points-&amp;gt;inch conversion tip below). For a more simple to use version see the ps.map ''mapinfo'' instruction.&lt;br /&gt;
The same method can be used with the ps.map ''point'' and ''text'' instructions to create a custom legend.&lt;br /&gt;
&lt;br /&gt;
 #...&lt;br /&gt;
 scale 1:100000&lt;br /&gt;
 scalebar s&lt;br /&gt;
   where 2.4 5.8&lt;br /&gt;
   length 4000&lt;br /&gt;
   segment 4&lt;br /&gt;
   end&lt;br /&gt;
 text 13.5% 16.5% meters&lt;br /&gt;
   background white&lt;br /&gt;
   end&lt;br /&gt;
 text 13.5% 27% SCALE: 1:100,000&lt;br /&gt;
   background white&lt;br /&gt;
   end&lt;br /&gt;
 rectangle 3.4% 14% 24% 31%&lt;br /&gt;
   fcolor white&lt;br /&gt;
   width 0.5&lt;br /&gt;
   end&lt;br /&gt;
 #...&lt;br /&gt;
&lt;br /&gt;
See example in image below.&lt;br /&gt;
&lt;br /&gt;
==== Creating a fancy North Arrow ====&lt;br /&gt;
&lt;br /&gt;
You can make a fancy north arrow by combining several ps.map instructions.&lt;br /&gt;
&lt;br /&gt;
In this example we also rotate the north arrow to match true-north instead of the projection's north. This is useful when used with a geo-grid overlay where the grid and the north arrow are right next to each other but don't point in the same direction.&lt;br /&gt;
&lt;br /&gt;
[[Image:Narrow1.png|center|404px|thumb|Example of fancy north arrow and custom info box]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The deviation between true north and the map projection's local +y direction can be obtained from the &amp;lt;tt&amp;gt;proj&amp;lt;/tt&amp;gt; program from [http://trac.osgeo.org/proj/ PROJ.4]. Look for the ''Convergence'' angle. It can be obtained in newer versions of GRASS with &amp;quot;&amp;lt;tt&amp;gt;g.region -n&amp;lt;/tt&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # Spearfish sample dataset&lt;br /&gt;
 &lt;br /&gt;
 # Set the region to match the map to be plotted&lt;br /&gt;
 g.region rast=elevation.dem&lt;br /&gt;
 &lt;br /&gt;
 # find the region's projection information&lt;br /&gt;
 g.proj -pj&lt;br /&gt;
 # find the region's center coordinates in lat/lon&lt;br /&gt;
 g.region -l&lt;br /&gt;
 &lt;br /&gt;
 # Pass this information to the &amp;quot;proj&amp;quot; program &lt;br /&gt;
 echo &amp;quot;103d44'58.937352\&amp;quot;W 44d26'14.761572\&amp;quot;N&amp;quot; | \&lt;br /&gt;
    proj -V +proj=utm +zone=13 +ellps=clrk66&lt;br /&gt;
 ...&lt;br /&gt;
 Convergence : 0d52'31.587&amp;quot; [ 0.87544073 ]&lt;br /&gt;
&lt;br /&gt;
We then use this angle with the point (mark symbol) and text instructions' rotate option.&lt;br /&gt;
&lt;br /&gt;
 ps.map  out=test.ps &amp;lt;&amp;lt; EOF&lt;br /&gt;
  raster elevation.dem&lt;br /&gt;
 &lt;br /&gt;
 # 4 arc-minute geo-grid&lt;br /&gt;
  geogrid 4 m&lt;br /&gt;
    color grey&lt;br /&gt;
    width 0.25&lt;br /&gt;
    numbers 1&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
 # Fancy N arrow&lt;br /&gt;
  point 84.4% 83%&lt;br /&gt;
    symbol extra/n_arrow1&lt;br /&gt;
    rotate 0.875&lt;br /&gt;
    fcolor black&lt;br /&gt;
    size 15&lt;br /&gt;
    end&lt;br /&gt;
  text 84.2% 90% N&lt;br /&gt;
    rotate 0.875&lt;br /&gt;
    end&lt;br /&gt;
  point 84.4% 83%&lt;br /&gt;
    symbol basic/circle&lt;br /&gt;
    fcolor none&lt;br /&gt;
    size 35&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is also possible to estimate this angle by reprojecting two points within the map with the same longitude, and then using trigonometry on the resulting coordinates. For example:&lt;br /&gt;
 g.region -b&lt;br /&gt;
 ...&lt;br /&gt;
 center latitude:  103:45:00.965601W&lt;br /&gt;
 center longitude: 44:26:09.69961N&lt;br /&gt;
 &lt;br /&gt;
 echo -e &amp;quot;103d45'W 44d26N\n 103d45'W 44d27N&amp;quot; | m.proj -i&lt;br /&gt;
 ...&lt;br /&gt;
 599526.26       4920549.57 0.00&lt;br /&gt;
 599497.97       4922400.85 0.00&lt;br /&gt;
 &lt;br /&gt;
 # reverse normal atan2(y,x) as we use CW from north as 0 degrees, not CCW from east for theta&lt;br /&gt;
 # thus atan2(x2-x1, y2-y1) gives angle in radians&lt;br /&gt;
 echo &amp;quot;599526.26 599497.97 4920549.57 4922400.85&amp;quot; | \&lt;br /&gt;
   awk '{print atan2($2-$1,$4-$3) * (180/3.14159265) * -1}'&lt;br /&gt;
 0.875487&lt;br /&gt;
&lt;br /&gt;
Which is reasonably close to the more trusted value given by the ''proj'' software, and good enough for our purposes.&lt;br /&gt;
&lt;br /&gt;
==== Centering a map of fixed scale ====&lt;br /&gt;
&lt;br /&gt;
By default ''ps.map'' centers the image at the top of the page and adjusts the map scale to suit. If you set a fixed map scale it will then place the map box at the top-left margins. Note that if the scale does not fit on the page it will be adjusted so it does, so keep an eye on it.&lt;br /&gt;
&lt;br /&gt;
A method to recenter a map box with fixed scale follows. It involves the 'gv' program and a hand calculator. It is hoped in future this can be set automatically ... a pain, but you only have to do it once per map.&lt;br /&gt;
Example uses the Spearfish dataset.&lt;br /&gt;
&lt;br /&gt;
: 1. Run the ps.map process with no scale.&lt;br /&gt;
 ps.map out=test.ps &amp;lt;&amp;lt; EOF&lt;br /&gt;
  raster elevation.dem&lt;br /&gt;
  end&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 Scale set to 1 : 102867.&lt;br /&gt;
 Reading raster map &amp;lt;elevation.dem in PERMANENT&amp;gt; ...&lt;br /&gt;
 PostScript file [test.ps] successfully written.&lt;br /&gt;
&lt;br /&gt;
If you view the resulting PS file you will see it nicely centered, i.e. extending to the left and right margins.&lt;br /&gt;
&lt;br /&gt;
: 2. Change the scale shown by the program up to some nice round number and run ps.map again.&lt;br /&gt;
 ps.map out=test.ps &amp;lt;&amp;lt; EOF&lt;br /&gt;
  raster elevation.dem&lt;br /&gt;
  scale 1:125000&lt;br /&gt;
  end&lt;br /&gt;
 EOF&lt;br /&gt;
 &lt;br /&gt;
 Scale set to 1 : 125000.&lt;br /&gt;
 Reading raster map &amp;lt;elevation.dem in PERMANENT&amp;gt; ...&lt;br /&gt;
 PostScript file [test.ps] successfully written.&lt;br /&gt;
&lt;br /&gt;
Note the scale is set to what we asked it to be, and the map box is now smaller and justified to the top-left margins.&lt;br /&gt;
&lt;br /&gt;
: 3. Open the map in gv,&lt;br /&gt;
 gv test.ps&lt;br /&gt;
and note a few numbers: the coordinate of the right edge of the paper (596 for A4), the right-hand border of the map box (466 for the above example), and the left edge of the map box (36 in the above example). tip: use the middle mouse button to draw a temporary zoom box in gv.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| border=1&lt;br /&gt;
|''These numbers are measured in &amp;quot;points&amp;quot;, which are 1/72&amp;quot;. So the left edge of the map box is at 36pt, or 1/2&amp;quot;, the default left margin.''&lt;br /&gt;
* You can use this to convert the cursor coordinate in ''gv'' to inches for use with the various ps.map decorations which require placement in inches measured from the top-left corner of the page.&lt;br /&gt;
* In the same way a font of size 10 is 10/72&amp;quot; tall, a 72pt font is exactly 1&amp;quot; tall on the printed page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can then calculate the map location to use to center the map box by finding the average of the current margins (in points):&lt;br /&gt;
 avg_margin = ( (page_right - box_right) + box_left ) / 2&lt;br /&gt;
&lt;br /&gt;
And then converting points to inches:&lt;br /&gt;
 avg_margin / 72.0&lt;br /&gt;
&lt;br /&gt;
So for this example the map should be centered if 1.146&amp;quot; left and right margins are used. Use the &amp;lt;tt&amp;gt;maploc&amp;lt;/tt&amp;gt; instruction to place the map.&lt;br /&gt;
 ps.map out=test.ps &amp;lt;&amp;lt; EOF&lt;br /&gt;
  raster elevation.dem&lt;br /&gt;
  scale 1:125000&lt;br /&gt;
  maploc 1.146 1.0&lt;br /&gt;
  end&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Voilà!&lt;br /&gt;
&lt;br /&gt;
=== Format Conversions ===&lt;br /&gt;
==== Converting SVG to EPS ====&lt;br /&gt;
&lt;br /&gt;
The ps.map '''eps''' and '''vpoints''' instructions can display an EPS symbol at points on the map. For instructions on how to convert SVG images to EPS using [http://www.inkscape.org/ Inkscape], see the [[IconSymbols#Other_contributions|symbols]] help page.&lt;br /&gt;
&lt;br /&gt;
==== PostScript files are simply plain text files! ====&lt;br /&gt;
&lt;br /&gt;
To fix typos, insert special characters, etc., you can open the PostScript file in your favorite industrial-strength text editor, search for the text string, make the edit and resave. Much easier then regenerating the graph for something as simple as a spelling mistake or a figure number change.&lt;br /&gt;
&lt;br /&gt;
==== Converting PostScript to PDF ====&lt;br /&gt;
&lt;br /&gt;
[http://pages.cs.wisc.edu/~ghost/doc/AFPL/6.50/Ps2pdf.htm ps2pdf] is a GhostScript wrapper for converting PostScript files to PDF. The default is to create PDF with rasters sampled at 72dpi for viewing on a computer screen. To render at 1200dpi with defaults set for high quality printing, you can add some gs options to the operation:&lt;br /&gt;
&lt;br /&gt;
 ps2pdf -dPDFSETTINGS=/prepress -r1200 filename.ps&lt;br /&gt;
&lt;br /&gt;
* See also: [http://www.grassbook.org/neteler/highres_pdf.html Creating High Resolution PDF files for book production with Open Source tools] by Markus Neteler.&lt;br /&gt;
: [http://lists.osgeo.org/pipermail/grass-user/2010-January/053946.html some tips from Vincent Bain]&lt;br /&gt;
&lt;br /&gt;
==== PDF files are simply containerized PostScript files! ====&lt;br /&gt;
&lt;br /&gt;
Well, perhaps it is better to say they are an evolution. If you uncompress the PDF file you can edit it just as in the PostScript editing example above, and then recompress when you are done. A nice tool to compress/decompress PDF is [http://www.accesspdf.com/pdftk/ pdftk].&lt;br /&gt;
The pdftk program also lets you do nice things like concatenate a series of PDF pages into a single PDF document, and split a multi-page document into a series of single page PDFs. Very handy for splicing figures into a bigger document.&lt;br /&gt;
&lt;br /&gt;
==== Converting PostScript to PNG ====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;pstoimg&amp;lt;/tt&amp;gt; program from [http://www.latex2html.org/ latex2html] does a fine job of this (it's a Ghostscript front-end).&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 # convert to PNG&lt;br /&gt;
 pstoimg -antialias -aaliastext -out flood_warning.png -scale 1.3 \&lt;br /&gt;
   -crop tb flood_warning.ps&lt;br /&gt;
&lt;br /&gt;
=== Integration with other software ===&lt;br /&gt;
&lt;br /&gt;
You can use 3rd party software to fine-tune and annotate your maps.&lt;br /&gt;
: '''''Please populate with tips!'''''&lt;br /&gt;
&lt;br /&gt;
* Translate to many different vector formats for further editing with [http://www.pstoedit.net/pstoedit pstoedit]&lt;br /&gt;
&lt;br /&gt;
* [http://www.inkscape.org/ Inkscape]&lt;br /&gt;
: -&lt;br /&gt;
&lt;br /&gt;
* [http://www.scribus.net/ Scribus]&lt;br /&gt;
: -&lt;br /&gt;
&lt;br /&gt;
* Illustrator&lt;br /&gt;
: -&lt;br /&gt;
&lt;br /&gt;
* R Statistics&lt;br /&gt;
: You can save small graphs as EPS, then display them at point/centroid positions on the map using the '''eps''' or '''vpoints''' instructions. (see Belgium &amp;quot;ages&amp;quot; example script above)&lt;br /&gt;
   # plot some North Carolina data (imported with readVECT6() of spgrass6 class)&lt;br /&gt;
   plot(nc_state, axes=TRUE)&lt;br /&gt;
   plot(precip30n, add=TRUE, lwd=2, col=&amp;quot;brown&amp;quot;)&lt;br /&gt;
   # generate EPS:&lt;br /&gt;
   dev.copy2eps()&lt;br /&gt;
   # convert with ps2pdf to PDF&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:ps.map]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=PostGIS&amp;diff=14652</id>
		<title>PostGIS</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=PostGIS&amp;diff=14652"/>
		<updated>2011-12-30T20:56:55Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also [[Working with external data in GRASS 7|working with external data in GRASS 7]].&lt;br /&gt;
__TOC__&lt;br /&gt;
== Help pages ==&lt;br /&gt;
&lt;br /&gt;
* {{cmd|databaseintro|desc=Database management in GRASS GIS}} help page&lt;br /&gt;
* {{cmd|sql|desc=SQL support in GRASS GIS}} help page&lt;br /&gt;
&lt;br /&gt;
* {{cmd|grass-pg|desc=PostgreSQL driver in GRASS}} help page&lt;br /&gt;
* {{cmd|grass-odbc|desc=ODBC driver in GRASS}} help page&lt;br /&gt;
&lt;br /&gt;
== Link to external dataset ==&lt;br /&gt;
&lt;br /&gt;
* input maps: {{cmd|v.external|version=70}}&lt;br /&gt;
*::(in GRASS 6 links are read only, for GRASS 7 see [[Working with external data in GRASS 7#Vector data|working with external data in GRASS 7]])&lt;br /&gt;
* output maps: {{cmd|v.external.out|version=70}} (GRASS 7 only)&lt;br /&gt;
&lt;br /&gt;
== Import into GRASS ==&lt;br /&gt;
&lt;br /&gt;
# {{cmd|v.in.ogr}} (import only geometry column from postgresql/postgis)&lt;br /&gt;
# {{cmd|v.clean}}&lt;br /&gt;
&lt;br /&gt;
There is a fundamental difference between the PostGIS format which is&lt;br /&gt;
non-topological (OGC simple feature-based) and the internal GRASS format which is topological and&lt;br /&gt;
which, thus, does not really allow for overlapping polygons. You can&lt;br /&gt;
digitize them, but they are not really useful...&lt;br /&gt;
&lt;br /&gt;
{{YouTube|JoqIkL2VRVc|desc=Importing PostGIS layers into GRASS}}&lt;br /&gt;
&lt;br /&gt;
== Link to GRASS ==&lt;br /&gt;
&lt;br /&gt;
You can register a PostGIS layer into GRASS using {{cmd|v.external}}, eg. PostGIS layer 'lakes' from database 'pgis_nc'&lt;br /&gt;
&lt;br /&gt;
 v.external dsn=PG:dbname=pgis_nc layer=lakes&lt;br /&gt;
&lt;br /&gt;
It will create in the current mapset new vector map 'lakes', the module also builds pseudo-topology for this map,&lt;br /&gt;
&lt;br /&gt;
To link a PostGIS layer from non-public schema&lt;br /&gt;
&lt;br /&gt;
 v.external dsn=PG:&amp;lt;connection sting&amp;gt; layer=&amp;lt;schema&amp;gt;.&amp;lt;layer&amp;gt; output=&amp;lt;layer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Important note:'' In GRASS 6 this link is read-only, in GRASS 7 it's possible to modify linked layers directly via OGR library, see [[Working with external data in GRASS 7#Vector data|working with external data in GRASS 7]].&lt;br /&gt;
&lt;br /&gt;
You can also link a GRASS layer to a PostgreSQL attribute table, though {{cmd|v.db.connect}}.&lt;br /&gt;
&lt;br /&gt;
{{YouTube|eB3_SmE3E9Q|desc=Link PostGIS layers as GRASS vector maps}}&lt;br /&gt;
&lt;br /&gt;
== Export to PostGIS ==&lt;br /&gt;
&lt;br /&gt;
To export GRASS vector map layer to PostGIS layer use {{cmd|v.out.ogr}}, eg.&lt;br /&gt;
&lt;br /&gt;
 v.out.ogr in=lakes@PERMANENT dsn=PG:dbname=pgis_nc format=PostgreSQL type=area&lt;br /&gt;
&lt;br /&gt;
Note that exporting data can be quite time-consuming task, especially when input vector map attributes are stored in DBF format. It's recommended to store attribute data in {{cmd|grass-sqlite|desc=SQLite format}} rather then in old-fashioned {{cmd|grass-dbf|desc=DBF format}}. For example when exporting vector map 'lakes' from [http://grass.osgeo.org/download/data.php North Carolina] sample dataset.&lt;br /&gt;
&lt;br /&gt;
* Attributes in DBF format&lt;br /&gt;
&lt;br /&gt;
 real    1m15.072s&lt;br /&gt;
 user    1m6.160s&lt;br /&gt;
 sys     0m3.824s&lt;br /&gt;
&lt;br /&gt;
* Attributes in SQLite format&lt;br /&gt;
&lt;br /&gt;
 real    0m11.796s&lt;br /&gt;
 user    0m5.564s&lt;br /&gt;
 sys     0m4.148s&lt;br /&gt;
&lt;br /&gt;
{{YouTube|DTMmmcVpJKk|desc=Creating model which exports all GRASS vector maps from given mapset to PostGIS database}}&lt;br /&gt;
{{YouTube|uStN3F6ZZoc|desc=Creating model which exports all GRASS vector maps from given mapset to PostGIS database (including schema)&lt;br /&gt;
&lt;br /&gt;
1) create schema with name of input mapset&lt;br /&gt;
&lt;br /&gt;
2) copy vector maps from selected mapset to the current and stores their attributes in SQLite database&lt;br /&gt;
&lt;br /&gt;
3) exports GRASS vector maps to the selected PostGIS database&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
See also [[wxGUI Modeler]].&lt;br /&gt;
&lt;br /&gt;
== Direct access to PostGIS data ==&lt;br /&gt;
&lt;br /&gt;
''Important note:'' Direct read/write access is implemented only in GRASS 7.&lt;br /&gt;
&lt;br /&gt;
=== Direct read access ===&lt;br /&gt;
&lt;br /&gt;
GRASS 7 enables the users to access PostGIS layers directly via virtual mapset 'OGR' and  modules parameters &amp;lt;code&amp;gt;map=OGR_datasource@OGR&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;layer=OGR_layer&amp;lt;/code&amp;gt;, eg. to access PostGIS layer 'lakes' from database 'pgis_nc'&lt;br /&gt;
&lt;br /&gt;
 v.info map=PG:dbname=pgis_nc@OGR layer=lakes&lt;br /&gt;
&lt;br /&gt;
The direct read access avoids need of creating a link via {{cmd|v.external|version=70}} and accessing PostGIS data directly without creating any data elements in the current mapset. The main drawback of direct read access is that the pseudo-topology is built each time when accessing the data.&lt;br /&gt;
&lt;br /&gt;
=== Direct write access ===&lt;br /&gt;
&lt;br /&gt;
''Note:'' direct write access via OGR library is currently under development (GRASS 7 only).&lt;br /&gt;
&lt;br /&gt;
GRASS 7 allows to write output vector map directly via OGR library. For defining output vector data format is designed {{cmd|v.external.out|version=70}} module. For example&lt;br /&gt;
&lt;br /&gt;
 v.external.out dsn=PG:dbname=pgis_nc format=PostgreSQL&lt;br /&gt;
&lt;br /&gt;
causes that every newly created vector map will be stored as PostGIS layer in database 'pgis_nc' without any data elements created in the current mapset. Such PostGIS layer can be linked afterwards via {{cmd|v.external|version=70}} or accessed directly as described in the section above. For example&lt;br /&gt;
&lt;br /&gt;
 v.extract input=lakes out=reservoir where=&amp;quot;FTYPE = 'RESERVOIR'&amp;quot;&lt;br /&gt;
 v.info map=PG:dbname=pgis_nc@OGR layer=reservoir&lt;br /&gt;
&lt;br /&gt;
To switch back to GRASS native format enter&lt;br /&gt;
&lt;br /&gt;
 v.external.out -r&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.surfaces.co.il/?p=645 Tutorial by Micha Silver]&lt;br /&gt;
* [http://gdal.org/ogr OGR library]&lt;br /&gt;
&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
[[Category: Vector]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=How_to_participate_in_IRC_communication&amp;diff=14651</id>
		<title>How to participate in IRC communication</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=How_to_participate_in_IRC_communication&amp;diff=14651"/>
		<updated>2011-12-30T20:53:33Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Background==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Internet_Relay_Chat Internet Relay Chat] (IRC) is an online system of communication. It is a form of instant communication over the Internet. It is mainly designed for group (many-to-many) communication in discussion forums called channels, but also allows one-to-one communication. The basic means of communication in an established IRC session is a channel. Users can join to channels (using the command /join #channelname) and then send messages to it, which are then relayed to all other users in the same channel. Users access IRC networks by connecting a client to a server. There are many client and server implementations. Most IRC servers do not require users to log in, but a user will have to set a nickname before being connected.&lt;br /&gt;
&lt;br /&gt;
The GRASS community uses the dedicated channel ([irc://irc.freenode.net/grass #grass] on irc.freenode.net), feel free to join. There are many other geo related channels such as [irc://irc.freenode.net/gdal #gdal], [irc://irc.freenode.net/qgis #qgis], [irc://irc.freenode.net/mapserver #mapserver], [irc://irc.freenode.net/osgeo #osgeo], [irc://irc.freenode.net/proj #proj] etc. The German speaking FOSSGIS (former GAV) community uses the channel [irc://irc.freenode.net/fossgis #fossgis].&lt;br /&gt;
&lt;br /&gt;
People interested in being involved in the [http://pkg-grass.alioth.debian.org/ Debian GIS project] can join a dedicated channel ([irc://irc.oftc.net/debian-gis #debian-gis] on irc.oftc.net). A [irc://irc.oftc.net/geo #geo] channel is also available on the same network.&lt;br /&gt;
&lt;br /&gt;
==Logs of communication==&lt;br /&gt;
&lt;br /&gt;
Thanks to Gary Sherman (QGIS project) and his friendly 'sigq' IRC bot, the communication is archived:&lt;br /&gt;
&lt;br /&gt;
* GRASS (#grass) - http://logs.qgis.org/grass/&lt;br /&gt;
* OSGeo Foundation (#osgeo) - http://logs.qgis.org/osgeo/&lt;br /&gt;
* QGIS (#qgis) - http://logs.qgis.org/slogs&lt;br /&gt;
&lt;br /&gt;
==How to do it the first time==&lt;br /&gt;
&lt;br /&gt;
#Get a IRC client software (see [http://en.wikipedia.org/wiki/List_of_IRC_clients software list]). We like the [https://addons.mozilla.org/extensions/moreinfo.php?id=16 Chatzilla extension for Firefox], [http://gaim.sourceforge.net/ gaim], [http://xchat.org/ xchat] and on MacOSX the [http://colloquy.info/ Colloquy] software.&lt;br /&gt;
#Connect to IRC, for &amp;quot;our&amp;quot; channels to a freenode.net server ([http://freenode.net/irc_servers.shtml list of servers]).&lt;br /&gt;
#Define some settings: Here some useful commands which you will enter into the field to also enter the communication (be aware to not start such commands with a space!). Anything started with /command will not be visible to the others:&lt;br /&gt;
&lt;br /&gt;
Web based alternatives to join a channel (don't forget to select a reasonable nick name): &lt;br /&gt;
* Use the [http://irc.telascience.org/ OSGeo Web interface to IRC/#grass]&lt;br /&gt;
* Use the [http://webchat.freenode.net/ Web interface to IRC]&lt;br /&gt;
* Use the [http://irc.netsplit.de/webchat/?net=freenode&amp;amp;room=%23grass Netsplit JAVA interface to IRC/#grass]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# select nick name&lt;br /&gt;
/nick yournickname&lt;br /&gt;
&lt;br /&gt;
## better don't show your email address:&lt;br /&gt;
/ns set hide email on&lt;br /&gt;
&lt;br /&gt;
### register (only one time needed) - PW is in clear text!!&lt;br /&gt;
/msg NickServ register [password] [email]&lt;br /&gt;
&lt;br /&gt;
### identify yourself to the IRC server (always needed) (xxxx == pw)&lt;br /&gt;
/msg NickServ IDENTIFY xxxx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Join a channel====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/join #grass&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you will see (depends on your client) the list of people lurking in the channel. You may convey your greetings and go ahead for conversation...&lt;br /&gt;
See below how to automate the identification process.&lt;br /&gt;
&lt;br /&gt;
http://grass.osgeo.org/images/irc_chatzilla.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The communication is logged (see [http://logs.qgis.org/grass/ #grass archives]).&lt;br /&gt;
&lt;br /&gt;
==Some useful hints==&lt;br /&gt;
&lt;br /&gt;
With chatzilla and other clients you can set your nickname in the preferences. You can also open several channels at time. It's convenient to automate the identification.&lt;br /&gt;
&lt;br /&gt;
===Chatzilla auto-identification===&lt;br /&gt;
&lt;br /&gt;
You can put the next command as &amp;quot;autoscript&amp;quot; into chatzilla's settings&lt;br /&gt;
for each channel, see Edit -&amp;gt; Preferences -&amp;gt; Global Settings -&amp;gt; Startup tab&lt;br /&gt;
-&amp;gt; Auto-url [someone please verify this, probably it's sufficient to type&lt;br /&gt;
below one time into chatzilla]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# auto-identify yourself to the IRC server (xxxx == pw)&lt;br /&gt;
/network-pref autoperform msg nickserv identify xxxx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To quickly open the GRASS channel in Chatzilla, simply click here:&lt;br /&gt;
irc://freenode/grass&lt;br /&gt;
&lt;br /&gt;
Try to find the [http://freenode.net/irc_servers.shtml next freenode server] to have speedy connection (e.g., Italy: irc://calvino.freenode.net/grass).&lt;br /&gt;
&lt;br /&gt;
===TAB extension===&lt;br /&gt;
&lt;br /&gt;
A nice feature is to use TAB key for type completion of nick names&lt;br /&gt;
in the channel - just try it!&lt;br /&gt;
&lt;br /&gt;
===IRC Ghosts===&lt;br /&gt;
&lt;br /&gt;
If your communication crashed, it can happen that your nick is still online, a so-called &amp;quot;ghost&amp;quot;. When you login again, an underscore will be added to your nick name. To takeover your own nick name, you have to kill the &amp;quot;ghost&amp;quot; by entering next command with your password (takes some seconds):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# kill ghost after crash (xxxx == pw)&lt;br /&gt;
/msg NickServ ghost yournickname xxxx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The nick server will then remove the &amp;quot;ghost&amp;quot; and give you your nick name back.&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Internet_Relay_Chat Wikipedia article]&lt;br /&gt;
* [http://freenode.net/faq.shtml#contents-userregistration FAQ freenode on user registration and more]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Help_with_3D&amp;diff=14650</id>
		<title>Help with 3D</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Help_with_3D&amp;diff=14650"/>
		<updated>2011-12-30T20:53:11Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Raster 2.5D Surfaces ==&lt;br /&gt;
&lt;br /&gt;
This is the &amp;quot;typical&amp;quot; case, and most {{cmd|raster}} (GRASS r.* modules) work in this mode. The GIS layer is defined by north,south,east,west and the raster map's cell values represent the elevation.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|rasterintro}}: An introduction to raster processing in GRASS GIS&lt;br /&gt;
&lt;br /&gt;
Snippet from the [http://en.wikipedia.org/wiki/2.5D Wikipedia definition] for 2.5D: &amp;quot;The idea is that the program's canvas represents a normal 2D painting surface, but that the data structure that holds the pixel information is also able to store information regarding z-index (depth) as well as other information such as material settings, specularity, etc. With this data it is thus possible to simulate lighting, shadows, and so on.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Horizontal (2D) region settings are handled by the ''g.region'' module. The third dimension is unbound.&lt;br /&gt;
&lt;br /&gt;
2.5D rasters may be visualized in 3D with GRASS's [[NVIZ]] program, or as a shaded relief in 2D space with the {{cmd|r.shaded.relief}} module.&lt;br /&gt;
&lt;br /&gt;
==== Screenshots ====&lt;br /&gt;
&lt;br /&gt;
:[[Image:srtmV2_trento_small.jpg]]&lt;br /&gt;
* [http://grass.osgeo.org/grass61/screenshots/raster.php GRASS 6.1 elevation screenshots]&lt;br /&gt;
&lt;br /&gt;
:[[Image:olympus_mons-medium.jpg]]&lt;br /&gt;
* [http://bambi.otago.ac.nz/hamish/olympus_mons.html Olympus Mons (Mars) topography] viewed with NVIZ&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
([http://grass.osgeo.org/download/data6.php spearfish dataset])&lt;br /&gt;
 g.region rast=elevation.10m&lt;br /&gt;
 nviz elev=elevation.10m&lt;br /&gt;
&lt;br /&gt;
== Raster 3D Volumes (voxels) ==&lt;br /&gt;
&lt;br /&gt;
Support for 3D rasters (voxels) is relatively new in GRASS and is primarily handled by the {{cmd|raster3D|desc=r3.* modules}}.&lt;br /&gt;
A 3D raster can be thought of as a stack of 2D raster maps forming a 3D cube of data cells.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|raster3dintro|desc=An introduction to 3D raster processing in GRASS GIS}}&lt;br /&gt;
&lt;br /&gt;
The third dimension need not be limited to &amp;quot;z&amp;quot; elevation! It can just as well represent the time dimension in a time series of 2.5D raster surfaces. It is possible to make a '''4D''' visualization using the [[NVIZ]] software's animation panels and movie making facility.&lt;br /&gt;
&lt;br /&gt;
==== Screenshots ====&lt;br /&gt;
&lt;br /&gt;
:[[Image:nviz_isosurf3d_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
* NVIZ [http://grass.osgeo.org/grass60/screenshots/images/nviz_isosurf3d.jpg Precipitation isosurfaces above Slovakia]&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
: [[Image:chal3d_i.gif]] [[Image:chal4d_i.gif]]&lt;br /&gt;
&lt;br /&gt;
* [http://skagit.meas.ncsu.edu/~helena/gmslab/viz/ches.html Chesapeake Bay Nitrogen Levels (4D)] from NCSU GMS Lab (''Mitasova et al.'')&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
[[Image:r.to.rast3.png]]&lt;br /&gt;
* {{cmd|r.to.rast3}}&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[[Image:r3.to.rast.png]]&lt;br /&gt;
* {{cmd|r3.to.rast}}&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[[Image:r.to.rast3elev.png|400px]]&lt;br /&gt;
* {{cmd|r.to.rast3elev}}&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
[[Image:r3.cross.rast.png|400px]]&lt;br /&gt;
* {{cmd|r3.cross.rast}}&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
==== Region settings ====&lt;br /&gt;
Region settings are handled by the {{cmd|g.region}} module.&lt;br /&gt;
Special 3D raster controls for ''g.region'' include:&lt;br /&gt;
 -3 flag:  Prints 3D settings&lt;br /&gt;
  rast3d   Set region to match this 3D raster map (both 2D and 3D values)&lt;br /&gt;
       t   Value for the top edge&lt;br /&gt;
       b   Value for the bottom edge&lt;br /&gt;
    res3   3D grid resolution (north-south, east-west and top-bottom)&lt;br /&gt;
   tbres   Top-bottom grid resolution 3D&lt;br /&gt;
&amp;lt;!-- (??)  3dview   Set region to match this 3dview file --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tips ====&lt;br /&gt;
&lt;br /&gt;
* From the mailing list: [http://thread.gmane.org/gmane.comp.gis.grass.user/12869/focus=12873 Raster 3D from DEMs (drillhole data)]&lt;br /&gt;
&amp;lt;!-- http://lists.osgeo.org/pipermail/grass-user/2006-April/033602.html --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&lt;br /&gt;
* [http://mpa.itc.it/grasstutor/data_menu2nd.phtml Slovakia 3D precipitation]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Custom volume creation. Here is a small ''[http://www.gnu.org/software/octave/ Octave]'' (''Matlab'') script to create a text file suitable for loading as a 3D raster with {{cmd|r3.in.ascii}}. Here is the file that this script creates: [http://bambi.otago.ac.nz/hamish/grass/vox_data50.txt.gz vox_data50.txt.gz]&lt;br /&gt;
&lt;br /&gt;
 % f(x,y,z) = x + (y^2 /2) + z^2&lt;br /&gt;
 x= y= z= 50;&lt;br /&gt;
 &lt;br /&gt;
 cd ~/grass/&lt;br /&gt;
 fp = fopen('vox_data50.txt', 'wt')&lt;br /&gt;
 &lt;br /&gt;
 fprintf(fp, 'north: %d\n', y);&lt;br /&gt;
 fprintf(fp, 'south: 0\n');&lt;br /&gt;
 fprintf(fp, 'east: %d\n', x);&lt;br /&gt;
 fprintf(fp, 'west: 0\n');&lt;br /&gt;
 fprintf(fp, 'top: %d\n', z);&lt;br /&gt;
 fprintf(fp, 'bottom: 0\n');&lt;br /&gt;
 fprintf(fp, 'rows: %d\n', y);&lt;br /&gt;
 fprintf(fp, 'cols: %d\n', x);&lt;br /&gt;
 fprintf(fp, 'levels: %d\n', z);&lt;br /&gt;
 &lt;br /&gt;
 for dep = 1:z&lt;br /&gt;
   for row = 1:y&lt;br /&gt;
     for col = 1:x&lt;br /&gt;
        fprintf(fp, '%.4f', col + (row^2 /2) + dep^2 );&lt;br /&gt;
        if(col &amp;lt; 50)&lt;br /&gt;
           fprintf(fp, ' ');&lt;br /&gt;
        end&lt;br /&gt;
     end&lt;br /&gt;
     fprintf(fp, '\n');&lt;br /&gt;
   end&lt;br /&gt;
   disp(['dep ' num2str(dep)])&lt;br /&gt;
   fflush(stdout);&lt;br /&gt;
 end&lt;br /&gt;
 fclose(fp)&lt;br /&gt;
&lt;br /&gt;
Load the data with:&lt;br /&gt;
 r3.in.ascii in=vox_data50.txt out=vox50&lt;br /&gt;
&lt;br /&gt;
display isosurfaces with:&lt;br /&gt;
 g.region rast3d=vox50&lt;br /&gt;
 nviz -q&lt;br /&gt;
 Panel-&amp;gt;Raster volumes&lt;br /&gt;
 [New] vox50&lt;br /&gt;
 Isosurface [Add] [New Constant] 500 [Accept]  &lt;br /&gt;
  (repeat for 1000,2000,3000)&lt;br /&gt;
 Change main view height to 125.00 (manual entry)&lt;br /&gt;
&lt;br /&gt;
extract a slice to a 2D raster map with:&lt;br /&gt;
 g.region t=26.0 b=25.0&lt;br /&gt;
 r3.to.rast in=vox50 out=vox50x&lt;br /&gt;
&lt;br /&gt;
== Vector 3D point data ==&lt;br /&gt;
&lt;br /&gt;
''Historical note: known as &amp;quot;site data&amp;quot; in GRASS GIS 5''&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot;typical&amp;quot; case, &amp;quot;z&amp;quot; data is stored as a non-spatial attribute in a vector point map. In GRASS 6 it is possible to create 3D vector files, i.e. points exist in 3D space.&lt;br /&gt;
&lt;br /&gt;
* {{cmd|vectorintro}} - An introduction to vector processing in GRASS GIS&lt;br /&gt;
&lt;br /&gt;
==== Import ====&lt;br /&gt;
&lt;br /&gt;
* Import x,y,z,... data as 3D with the {{cmd|v.in.ascii}} &amp;quot;-z&amp;quot; flag and &amp;quot;z=&amp;quot; column parameter:&lt;br /&gt;
 v.in.ascii -z format=point cat=1 x=2 y=3 z=4&lt;br /&gt;
&lt;br /&gt;
* You can convert a 2D vector into a 3D vector with {{cmd|v.extrude}} (take elevation values from vector attribute column) or {{cmd|v.drape}} (interpolate elevation values from a raster DEM map).&lt;br /&gt;
&lt;br /&gt;
* It may be more convenient to import massive datasets (millions and millions of points) with {{cmd|r.in.xyz}} to create a 2.5D raster map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Conversion to 3D raster volume ====&lt;br /&gt;
&lt;br /&gt;
* Use the {{cmd|v.vol.rst}} module to interpolate 3D vector points into a 3D raster volume.&lt;br /&gt;
&lt;br /&gt;
==== Screenshot ====&lt;br /&gt;
&lt;br /&gt;
3D points defining the hull of a ship, visualized using [[NVIZ]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Ship.png|center]]&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
&lt;br /&gt;
TODO: ''import star guide and display using NVIZ, using magnitude column in database table for dynamic sizing. Requires a &amp;quot;Free&amp;quot; dataset, if you have any leads, please add links to this wiki page. Thanks.''&lt;br /&gt;
&lt;br /&gt;
== Vector 3D lines ==&lt;br /&gt;
&lt;br /&gt;
The GRASS vector engine is fully 3D aware, so 3D lines such as highways which cross at a bridge, but do not touch, can be modelled.&lt;br /&gt;
&lt;br /&gt;
* 3D line objects can be displayed with [[NVIZ]]&lt;br /&gt;
:(place above a 2D raster isosurface)&lt;br /&gt;
&lt;br /&gt;
== Vector 3D polygons ==&lt;br /&gt;
&lt;br /&gt;
In the &amp;quot;typical&amp;quot; case, &amp;quot;z&amp;quot; data is stored as a non-spatial attribute in a vector point map. In GRASS 6 it is possible to create 3D vector files,&lt;br /&gt;
i.e. lines and polygons exist in 3D space. The topological nature of GRASS 6's vector engine means that roads can cross via a bridge without topologically meeting.&lt;br /&gt;
&lt;br /&gt;
* 3D feature types&lt;br /&gt;
** ''face'': The 3D equivalent of a boundary. These combine to form a volume surface (e.g. a teapot)&lt;br /&gt;
** ''kernel'': The 3D equivalent of a centroid (''infrastructure for kernels is in place, but they are currently mostly unused'')&lt;br /&gt;
** ''volume'': An enclosed 3D space. The 3D equivalent to GRASS's ''area'' vector feature, meaning an alias to a &amp;quot;face(s)+kernel&amp;quot; set. &amp;lt;!-- HB: this is just a wild guess, I'm really not sure --&amp;gt; (''some infrastructure and place-holders exist, but not much in the way of practical applications has been coded yet'')&lt;br /&gt;
&lt;br /&gt;
* {{cmd|vectorintro}}: An introduction to vector processing in GRASS GIS&lt;br /&gt;
&lt;br /&gt;
* The [http://freegis.org/cgi-bin/viewcvs.cgi/~checkout~/grass6/doc/vector/vector.html#ascii GRASS ASCII format specification]&lt;br /&gt;
&lt;br /&gt;
* The ''v.in.ascii'' '''-z''' flag must be used to create a 3D file&lt;br /&gt;
&lt;br /&gt;
* The {{cmd|v.in.dxf}} or ''v.in.dwg'' modules can import 3D vector surfaces. DXF files are usually imported without georeference. To move into the geo-space of the rest of your data they must be projected with ''v.proj'' or translated with ''v.transform''. If working with them alone, it is recommended to use a simple XY location.&lt;br /&gt;
&lt;br /&gt;
* Visualization with NVIZ: must be placed on a raster surface or constant surface. It may be useful to set the transparency attribute of the raster surface to something unobtrusive.&lt;br /&gt;
&lt;br /&gt;
==== Getting data and data conversion ====&lt;br /&gt;
&lt;br /&gt;
There are many free 3D mesh files available for research purposes from [http://www-rocq1.inria.fr/gamma/download/download.php INRIA.fr's GAMMA project]. These can be converted from e.g. 3D Studio (.3ds) format into DXF files with a converter program like [http://ftp.carnet.hr/pub/misc/VRML/utilities/converters/ wcvt2pov.exe] (runs well in Linux under wine). Then use v.in.dxf.&lt;br /&gt;
Also [http://www.blender.org/ Blender] does a nice job for exporting to 3D DXF.&lt;br /&gt;
&lt;br /&gt;
''' wcvt2pov.exe supported file formats '''&lt;br /&gt;
* load: AOFF (*.geo), AutoCAD DXF (*.dxf), 3D Studio (*.3ds), Neutral File Format (*.nff), RAW (*.raw), TPOLY (*.tpo), True Type Font (*.ttf), Wavefront (*.obj), World Toolkit (*.nff)&lt;br /&gt;
&lt;br /&gt;
* save: AutoCAD DXF (*.dxf), 3D Studio (*.asc), Neutral File Format (*.nff), Povray V2.2 (*.pov), Povray V2.2 Include (*.inc), RAW (*.raw), TPOLY (*.tpo), True Space (*.cob), VRML V1.0 (*.wrl), Wavefront (*.obj), World Toolkit (*.nff)&lt;br /&gt;
&lt;br /&gt;
==== Screenshots ====&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass61/screenshots/vector.php GRASS 6 screenshots]&lt;br /&gt;
:[[Image:object_nviz_from_dxf_mesh_small.jpg]]&lt;br /&gt;
&lt;br /&gt;
* ''3D DXF Mesh object, created in [http://www.blender.org Blender] and imported into GRASS (screenshot: A. Bezzi, M. Neteler)''&lt;br /&gt;
&lt;br /&gt;
:[[Image:trento3d_small.jpg|450px]]&lt;br /&gt;
&lt;br /&gt;
* '' GRASS: building footprints extruded to 3D blocks (screenshot: M. Neteler)&lt;br /&gt;
:(data courtesy City of Trento, Italy - see &amp;quot;Mostra Strumenti Dati&amp;quot; for geodata download)''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Image:Nviz watertower.jpg|center]] --&amp;gt;&lt;br /&gt;
:[[Image:Nviz watertower.jpg]]&lt;br /&gt;
* Watertower imported with ''v.in.dwg'' (or use v.in.dxf) displayed over a 2.5D raster surface with color orthophoto raster providing ground coloration.&lt;br /&gt;
&lt;br /&gt;
==== Example ====&lt;br /&gt;
pyramid: the following is an example of 3D vector surfaces in GRASS's standard ascii format. load with v.in.ascii.&lt;br /&gt;
&lt;br /&gt;
 # 3D Pyramid in GRASS:  (kernel type still unused in GRASS 6)&lt;br /&gt;
 #  v.in.ascii in=pyramid.vasc out=pyramid_3d format=standard -nz&lt;br /&gt;
 #  g.region n=150 s=-50 w=-50 e=150 res=10&lt;br /&gt;
 #  r.mapcalc one=1&lt;br /&gt;
 #  nviz elev=one vect=pyramid_3d&lt;br /&gt;
 #&lt;br /&gt;
 #  tip: in nviz try setting the raster surface transparency to 50%&lt;br /&gt;
 #&lt;br /&gt;
 F 5&lt;br /&gt;
  0 0 10&lt;br /&gt;
  0 100 10&lt;br /&gt;
  100 100 10&lt;br /&gt;
  100 0 10&lt;br /&gt;
  0 0 10&lt;br /&gt;
 F 4&lt;br /&gt;
  0 0 10&lt;br /&gt;
  50 50 80&lt;br /&gt;
  100 0 10&lt;br /&gt;
  0 0 10&lt;br /&gt;
 F 4&lt;br /&gt;
  0 100 10&lt;br /&gt;
  50 50 80&lt;br /&gt;
  0 0 10&lt;br /&gt;
  0 100 10&lt;br /&gt;
 F 4&lt;br /&gt;
  100 100 10&lt;br /&gt;
  50 50 80&lt;br /&gt;
  0 100 10&lt;br /&gt;
  100 100 10&lt;br /&gt;
 F 4&lt;br /&gt;
  100 0 10&lt;br /&gt;
  50 50 80&lt;br /&gt;
  100 100 10&lt;br /&gt;
  100 0 10&lt;br /&gt;
 K 1 1&lt;br /&gt;
  40 50 40&lt;br /&gt;
  1 1&lt;br /&gt;
&lt;br /&gt;
== Visualization Tools ==&lt;br /&gt;
&lt;br /&gt;
* [[NVIZ]]: GRASS's own ''n''-dimensional visualization suite&lt;br /&gt;
** [http://grass.osgeo.org/screenshots/viz.php Screenshots]&lt;br /&gt;
&lt;br /&gt;
* [[wxNviz]]: wxGUI 3D view mode extension&lt;br /&gt;
&lt;br /&gt;
* output to VTK &amp;amp; Paraview ({{cmd|r.out.vtk}}, {{cmd|r3.out.vtk}}, {{cmd|v.out.vtk}})&lt;br /&gt;
** [[GRASS and Paraview]]&lt;br /&gt;
** [http://www-pool.math.tu-berlin.de/~soeren/grass/modules/screenshots/ Screenshots] (seek Para* there)&lt;br /&gt;
&lt;br /&gt;
* output to [[POV-Ray]] ({{cmd|r.out.pov}}, {{cmd|v.out.pov}})&lt;br /&gt;
** [http://mpa.itc.it/markus/povray/ Screenshots]&lt;br /&gt;
&lt;br /&gt;
* output to Vis5D ({{cmd|r3.out.v5d}})&lt;br /&gt;
&lt;br /&gt;
* output to VRML (3D virtual reality) ({{cmd|r.out.vrml}})&lt;br /&gt;
&lt;br /&gt;
* output to KML (Google Earth) ({{cmd|v.out.ogr}}, {{AddonCmd|r.out.kml}}, {{AddonCmd|v.out.kml}})&lt;br /&gt;
&lt;br /&gt;
* output to DXF (Blender, AutoCAD, ...) ({{cmd|v.out.dxf}})&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category: Visualization]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Help&amp;diff=14649</id>
		<title>Help</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Help&amp;diff=14649"/>
		<updated>2011-12-30T20:52:56Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&lt;br /&gt;
'''For experiments use [[Sandbox]]...'''&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
== What's a Wiki ==&lt;br /&gt;
&lt;br /&gt;
A wiki is software that allows registered users or anyone to collaboratively create, edit, link, and organize the content of a website, usually for reference material. Wikis are often used to create collaborative websites and to power community websites. These wiki websites are often also referred to as wikis; for example, [http://wikipedia.org Wikipedia] is one of the best known wikis. Wikis are used in businesses to provide affordable and effective intranets and for Knowledge Management. Ward Cunningham, developer of the first wiki, WikiWikiWeb, originally described it as &amp;quot;the simplest online database that could possibly work&amp;quot;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt; From [http://en.wikipedia.org/wiki/Wiki Wikipedia], the free encyclopedia&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We use [http://www.mediawiki.org MediaWiki] platform for the GRASS-Wiki.&lt;br /&gt;
&lt;br /&gt;
== Editing pages ==&lt;br /&gt;
&lt;br /&gt;
* http://www.mediawiki.org/wiki/Help:Editing_pages&lt;br /&gt;
* http://en.wikipedia.org/wiki/Help:Editing&lt;br /&gt;
* http://en.wikipedia.org/wiki/Help:Table&lt;br /&gt;
* http://www.ascii.cl/htmlcodes.htm (if you search for a certain character)&lt;br /&gt;
&lt;br /&gt;
=== Some examples ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* It's easy to create a list:&lt;br /&gt;
** Start every line with a star.&lt;br /&gt;
*** More stars means deeper levels.&lt;br /&gt;
**** A newline in a list marks the end of a list item.&lt;br /&gt;
&lt;br /&gt;
* An empty line starts a new list.&lt;br /&gt;
&lt;br /&gt;
# Numbered lists are also good&lt;br /&gt;
## very organized&lt;br /&gt;
## easy to follow&lt;br /&gt;
### easier still&lt;br /&gt;
&lt;br /&gt;
; Definition list : list of definitions&lt;br /&gt;
; item : the item's definition&lt;br /&gt;
; another item&lt;br /&gt;
: the other item's definition&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* It's easy to create a list:&lt;br /&gt;
** Start every line with a star.&lt;br /&gt;
*** More stars means deeper levels.&lt;br /&gt;
**** A newline in a list marks the end of a list item.&lt;br /&gt;
&lt;br /&gt;
* An empty line starts a new list.&lt;br /&gt;
&lt;br /&gt;
# Numbered lists are also good&lt;br /&gt;
## very organized&lt;br /&gt;
## easy to follow&lt;br /&gt;
### easier still&lt;br /&gt;
&lt;br /&gt;
; Definition list : list of definitions&lt;br /&gt;
; item : the item's definition&lt;br /&gt;
; another item&lt;br /&gt;
: the other item's definition&lt;br /&gt;
&lt;br /&gt;
== Importing content ==&lt;br /&gt;
&lt;br /&gt;
Here are some HTML to MediaWiki syntax converters:&lt;br /&gt;
&lt;br /&gt;
* http://www.jtidy.de/&lt;br /&gt;
* http://diberri.dyndns.org/wikipedia/html2wiki/index.html&lt;br /&gt;
&lt;br /&gt;
== Language policy ==&lt;br /&gt;
&lt;br /&gt;
* [[GRASS-Wiki:Language policy|Language policy]]&lt;br /&gt;
&lt;br /&gt;
== Templates ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Templates|List of templates]]&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
&lt;br /&gt;
* [[Special:Categories|List of categories]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRIB&amp;diff=14648</id>
		<title>GRIB</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRIB&amp;diff=14648"/>
		<updated>2011-12-30T20:52:47Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* ''see also the [[Meteorology]] wiki page''&lt;br /&gt;
&lt;br /&gt;
== GRIB data ==&lt;br /&gt;
&lt;br /&gt;
Meteorological data from the [http://www.wmo.int WMO] is supplied in GRIB format. See the [http://www.gdal.org/frmt_grib.html GDAL GRIB format page].&lt;br /&gt;
&lt;br /&gt;
* Some data available here:&lt;br /&gt;
** http://www.globalmarinenet.net/grib.htm&lt;br /&gt;
** http://www.raymarine.com/default.aspx?site=1&amp;amp;section=3&amp;amp;page=149&lt;br /&gt;
** http://www.navcenter.com/newdwnld.ccml&lt;br /&gt;
&lt;br /&gt;
* GRIB data viewer:&lt;br /&gt;
** zyGRIB (GPL3)&lt;br /&gt;
: http://www.zygrib.org (French; translate with [http://babelfish.yahoo.com/ Babelfish])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Newer versions of [http://www.gdal.org GDAL] can read this data (i.e. newer than the 1.5 branch; SVN trunk is best), and it can be imported with {{cmd|r.in.gdal}}.&lt;br /&gt;
&lt;br /&gt;
It often contains a small number of cells but many many bands (layers).&lt;br /&gt;
&lt;br /&gt;
View band metadata with &amp;lt;tt&amp;gt;gdalinfo&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Processing ===&lt;br /&gt;
&lt;br /&gt;
A mini-tutorial follows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The data is in Lat/Lon on a Sphere. It is not quite correct to import into a Lat/Lon WGS84 location, but the resolution is so crude that you might be able to hold your nose and do so anyway.&lt;br /&gt;
&lt;br /&gt;
* ''There is a cell-registration bug in GDAL: (grid vs cell-center convention) cells are all offset to the east and south by half a cell. You can fix this by hand with the {{cmd|r.region}} module. See:''&lt;br /&gt;
: https://trac.osgeo.org/gdal/ticket/2550&lt;br /&gt;
: https://trac.osgeo.org/gdal/ticket/2637&lt;br /&gt;
: GRASS's [[Grid registration]] wiki page for a general discussion&lt;br /&gt;
&lt;br /&gt;
==== GDAL bug workaround ====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
 g.region rast=mapname&lt;br /&gt;
 eval `g.region -pg`&lt;br /&gt;
 HALF_NSRES=`echo &amp;quot;$nsres&amp;quot; | awk '{printf(&amp;quot;%.15g&amp;quot;, $1 / 2.)}'`&lt;br /&gt;
 HALF_EWRES=`echo &amp;quot;$ewres&amp;quot; | awk '{printf(&amp;quot;%.15g&amp;quot;, $1 / 2.)}'`&lt;br /&gt;
 NEW_N=`echo &amp;quot;$n&amp;quot; &amp;quot;$HALF_NSRES&amp;quot; | awk '{printf(&amp;quot;%.15g&amp;quot;, $1 + $2)}'`&lt;br /&gt;
 NEW_S=`echo &amp;quot;$s&amp;quot; &amp;quot;$HALF_NSRES&amp;quot; | awk '{printf(&amp;quot;%.15g&amp;quot;, $1 + $2)}'`&lt;br /&gt;
 NEW_E=`echo &amp;quot;$e&amp;quot; &amp;quot;$HALF_EWRES&amp;quot; | awk '{printf(&amp;quot;%.15g&amp;quot;, $1 - $2)}'`&lt;br /&gt;
 NEW_W=`echo &amp;quot;$w&amp;quot; &amp;quot;$HALF_EWRES&amp;quot; | awk '{printf(&amp;quot;%.15g&amp;quot;, $1 - $2)}'`&lt;br /&gt;
 &lt;br /&gt;
 r.region mapname n=$NEW_N s=$NEW_S e=$NEW_E w=$NEW_W&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ''Currently band metadata is not automatically copied with the import. Add it in manually with'' &amp;quot;&amp;lt;tt&amp;gt;r.support history=&amp;lt;/tt&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Convert latest u,v components of wind to GeoTiff (not really needed, but easier to debug) and import into GRASS. Use &amp;lt;tt&amp;gt;gdalinfo&amp;lt;/tt&amp;gt; to view the list of available bands and determine the needed band number(s).&lt;br /&gt;
&lt;br /&gt;
No-data (NULL) values are flagged as &amp;quot;9999&amp;quot; in this file.&lt;br /&gt;
&lt;br /&gt;
 $ gdal_translate -b 1 -a_nodata 9999 TasmanSea.wind.grb TasmanSea.wind.u_wind_latest.tif&lt;br /&gt;
 $ gdal_translate -b 2 -a_nodata 9999 TasmanSea.wind.grb TasmanSea.wind.v_wind_latest.tif&lt;br /&gt;
 &lt;br /&gt;
 r.in.gdal -o in=TasmanSea.wind.u_wind_latest.tif out=TasmanSea.wind.u_wind_latest&lt;br /&gt;
 r.in.gdal -o in=TasmanSea.wind.v_wind_latest.tif out=TasmanSea.wind.v_wind_latest&lt;br /&gt;
&lt;br /&gt;
or import into GRASS directly:&lt;br /&gt;
&lt;br /&gt;
 r.in.gdal in=TasmanSea.wind.grb band=1 out=TasmanSea.wind.u_wind_latest&lt;br /&gt;
 r.in.gdal in=TasmanSea.wind.grb band=2 out=TasmanSea.wind.v_wind_latest&lt;br /&gt;
 r.null TasmanSea.wind.u_wind_latest setnull=9999&lt;br /&gt;
 r.null TasmanSea.wind.v_wind_latest setnull=9999&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Convert U,V velocity component maps into magnitide,direction maps for use with d.rast.arrow:&lt;br /&gt;
 g.copy TasmanSea.wind.u_wind_latest,U_map&lt;br /&gt;
 g.copy TasmanSea.wind.v_wind_latest,V_map&lt;br /&gt;
 &lt;br /&gt;
 g.region rast=TasmanSea.wind.u_wind_latest -p&lt;br /&gt;
 r.mapcalc 'magnitude = sqrt(U_map^2 + V_map^2)'&lt;br /&gt;
 r.colors magnitude col=bcyr&lt;br /&gt;
 r.support magnitude units=&amp;quot;m/s&amp;quot;&lt;br /&gt;
 r.mapcalc 'direction = atan(U_map, V_map)'&lt;br /&gt;
&lt;br /&gt;
Convert m/s to knots:&lt;br /&gt;
 r.mapcalc 'magnitude_kts = magnitude * 3600/1852.0'&lt;br /&gt;
 r.support magnitude_kts units=&amp;quot;knots&amp;quot;&lt;br /&gt;
 r.colors magnitude_kts col=bcyr&lt;br /&gt;
&lt;br /&gt;
Display:&lt;br /&gt;
 d.mon x0&lt;br /&gt;
 d.rast magnitude&lt;br /&gt;
 d.vect admin98 type=area fcol=225:225:255 color=none&lt;br /&gt;
 &lt;br /&gt;
 d.rast.arrow map=direction type=grass magnitude_map=magnitude grid=none arrow=black&lt;br /&gt;
 &lt;br /&gt;
 d.legend map=&amp;quot;magnitude&amp;quot; at=90.3,94.7,1.8,26.5&lt;br /&gt;
 echo &amp;quot;wind (m/s)&amp;quot; | d.text color=black at=13.8,80.6 size=3 align=lc&lt;br /&gt;
&lt;br /&gt;
Export to a PNG image using the Cairo driver:&lt;br /&gt;
 d.out.file -c TasmanSea_winds_latest&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Resulting image:&lt;br /&gt;
: [[Image:TasmanSea winds latest.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Create contours ====&lt;br /&gt;
&lt;br /&gt;
Create smooth contour lines at 5 knot intervals. First resample to a higher raster resolution with {{cmd|r.resamp.interp}} so the lines come out smooth.&lt;br /&gt;
&lt;br /&gt;
 g.region res=0:15 -p&lt;br /&gt;
 r.resamp.interp in=magnitude_kts out=magnitude_kts.resamp.cube method=bicubic&lt;br /&gt;
 r.contour in=magnitude_kts.resamp.cube out=latest_wind_5kt step=5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Alternatively the {{cmd|v.generalize}} module may be used to smooth the contours. The ''Snakes'' spline method is used here as it smooths by minimization of the &amp;quot;energy&amp;quot; in the line, which mimics the wind's natural tendency to strive for geostrophic balance.&lt;br /&gt;
&lt;br /&gt;
 g.region rast=magnitude_kts&lt;br /&gt;
 r.contour in=magnitude_kts out=latest_wind_5kt_raw step=5&lt;br /&gt;
 v.generalize in=latest_wind_5kt_raw out=latest_wind_5kt_Snakes method=snakes alpha=0.25 beta=0.25&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To remove any tiny rings and slivers you can add a length column in the contours map with {{cmd|v.db.addcol}}, populate the column with line length using the {{cmd|v.to.db}} module, and finally extract only lines with a length greater than some threshold with a SQL query to {{cmd|v.extract}}.&lt;br /&gt;
&lt;br /&gt;
=== Automation ===&lt;br /&gt;
&lt;br /&gt;
You can automate the generation of a weather map with a little GRASS scripting (e.g. as a {{wikipedia|cron_job}}). After downloading the latest forecast with &amp;lt;tt&amp;gt;wget&amp;lt;/tt&amp;gt; and extracting timestamp info with &amp;lt;tt&amp;gt;gdalinfo&amp;lt;/tt&amp;gt;, with a &amp;lt;tt&amp;gt;GRASS_BATCH_JOB&amp;lt;/tt&amp;gt; you can import the data into a lat/lon location with {{cmd|r.in.gdal}} and then in a following batch job from the master script use {{cmd|r.proj}} to reproject the data into another location/projection (if you choose) and run the appropriate d.* rendering commands. See the [[GRASS_and_Shell#GRASS_Batch_jobs]] wiki page and the main GRASS man page for more details.&lt;br /&gt;
&lt;br /&gt;
=== TODO ===&lt;br /&gt;
&lt;br /&gt;
* d.barb module: ''work in progress by Hamish'' (partially done; low on the priority list currently; still plan to finish it)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Help&amp;diff=14647</id>
		<title>GRASS Help</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Help&amp;diff=14647"/>
		<updated>2011-12-30T20:52:20Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
''Most tutorials and examples will use the [[GRASS_Help#Sample_Dataset | Spearfish County, SD]] sample dataset.'' New examples are also based on the rich [http://www.grassbook.org/data_menu3rd.php OSGeo Educational Dataset] (North Carolina, USA)&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
* Covered in the [[Installation Guide]]&lt;br /&gt;
&lt;br /&gt;
=== Frequently Asked Questions ===&lt;br /&gt;
&lt;br /&gt;
* [[Faq|FAQ]]&lt;br /&gt;
* You can contact GRASS users in [[How to participate in IRC communication|IRC]]&lt;br /&gt;
* [[How the Open Source software development model works]]&lt;br /&gt;
&lt;br /&gt;
=== First Day Documentation ===&lt;br /&gt;
&lt;br /&gt;
* [[GRASS 6 Terminology]]&lt;br /&gt;
&lt;br /&gt;
* [[Gis Concepts|Basic GIS concepts]] and how GRASS implements them&lt;br /&gt;
&lt;br /&gt;
* [http://grass.bologna.enea.it/tutorial/ Five minute program launch tutorial] by Lorenzo Moretti&lt;br /&gt;
: First few slides are geared for Mac OSX, the rest is generic.&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/helptext.html GRASS Quickstart] help page&lt;br /&gt;
&lt;br /&gt;
* [[Importing data]]: how to get your data into GRASS&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/index.html GRASS help pages] including basic introductions&lt;br /&gt;
&lt;br /&gt;
==== Short tutorials ====&lt;br /&gt;
&lt;br /&gt;
* [[Quick_wx_tutorial|A quick introduction to the 6.4 wxGUI and raster maps]]&lt;br /&gt;
&lt;br /&gt;
* Course material of [http://geostat-course.org/Topic_NetelerMetz_2011 Introduction to GRASS GIS], Geostat 2011, Landau, Germany, by M. Neteler and M. Metz&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/grass/wiki/HowToTestGrass6 How-To Test GRASS6] - easy to replicate steps with GRASS 6.3+ and QGIS&lt;br /&gt;
&lt;br /&gt;
* The [[GRASS 6 Tutorial]] (a work in progress; seeking for volunteers)&lt;br /&gt;
&lt;br /&gt;
* [http://www.grassbook.org/neteler/osg05/ GRASS 6 in a nutshell] by M. Neteler (2005, short tutorial, also translated to Spanish and French)&lt;br /&gt;
&lt;br /&gt;
* [http://www.gdf-hannover.de/lit_html/grass60_v1.2_en/index.html An introduction to the practical use of the Free Geographical Information System GRASS 6.0] by GDF Hannover - [http://www.gdf-hannover.de/media.php?id=0&amp;amp;lg=en More tutorials] from GDF Hannover&lt;br /&gt;
&lt;br /&gt;
==== Textbook ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.grassbook.org Open Source GIS: A GRASS GIS Approach. 3rd ed. 2008] by M. Neteler and H. Mitasova (Springer book; focus is on GRASS 6.3)&lt;br /&gt;
&lt;br /&gt;
==== Individual modules ====&lt;br /&gt;
&lt;br /&gt;
* Synopsis of GRASS modules, including menu positions ({{website|gdp/grassmanuals/grass64_module_list.pdf|PDF, 100k}}) ({{website|gdp/grassmanuals/grass64_module_list.html|HTML version}})&lt;br /&gt;
: ''Create current list with'' &amp;quot;&amp;lt;tt&amp;gt;make html2pdfdoc&amp;lt;/tt&amp;gt;&amp;quot; or &amp;quot;&amp;lt;tt&amp;gt;cd tools; ./module_synopsis.sh&amp;lt;/tt&amp;gt;&amp;quot; ''in GRASS 6.3+''&lt;br /&gt;
&lt;br /&gt;
* Individual GRASS module [http://grass.osgeo.org/grass64/manuals/html64_user/index.html  reference manuals]&lt;br /&gt;
&lt;br /&gt;
* All GRASS module reference manuals (PDF Book)&lt;br /&gt;
: ''Create current set with'' &amp;quot;&amp;lt;tt&amp;gt;make html2pdfdoccomplete&amp;lt;/tt&amp;gt;&amp;quot; ''in GRASS 6.3+''&lt;br /&gt;
&lt;br /&gt;
=== Sample Datasets ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.grassbook.org/data_menu3rd.php North Carolina, USA (OSGeo Edu dataset)] - rich data set prepared in 2007/2008&lt;br /&gt;
* [http://grass.osgeo.org/download/data6.php Spearfish County, SD, USA] (not so far from Mount Rushmore) with [http://mpa.itc.it/markus/osg05/ extra data]&lt;br /&gt;
** Mount Rushmore: [43&amp;amp;deg;53' N,  103&amp;amp;deg;28' W]&lt;br /&gt;
&lt;br /&gt;
* [[Global datasets]]&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/download/data.php More sample data]&lt;br /&gt;
&lt;br /&gt;
== Further Reading ==&lt;br /&gt;
&lt;br /&gt;
* [[Documents|Full GRASS Documentation]]&lt;br /&gt;
&lt;br /&gt;
* [[GRASS_Education_%28Free_GIS_education%29#Teaching_Materials | Teaching materials]] contributed by the community.&amp;lt;BR&amp;gt;(Tutorials, courseware, training videos, etc.)&lt;br /&gt;
&lt;br /&gt;
* More GRASS documentation and tutorials from the old [http://grass.osgeo.org/gdp/index.php GRASS Documentation Project].&amp;lt;BR&amp;gt;[''content is slowly being merged into this Wiki'']&lt;br /&gt;
&lt;br /&gt;
* [[GRASS and its siblings%3B a guide for the novice]]&lt;br /&gt;
&lt;br /&gt;
== Migration from other GIS Software ==&lt;br /&gt;
&lt;br /&gt;
* [[GRASS_migration_hints|GRASS migration hints]]&lt;br /&gt;
* [[GIS to GRASS command translation|GIS Software to GRASS command translation table and discussion]]&lt;br /&gt;
* [[Tips for Arc users]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Interfacing with external software ==&lt;br /&gt;
&lt;br /&gt;
* [[Tips_and_Tricks#Using_QGIS_as_a_frontend_to_GRASS| QGIS]] frontend&lt;br /&gt;
&lt;br /&gt;
* [[GRASS_and_Rstat|R statistics]] interface&lt;br /&gt;
&lt;br /&gt;
* [[GRASS_and_GMT|GMT mapping]] cartography&lt;br /&gt;
&lt;br /&gt;
* [[GRASS_and_MapServer| MapServer]] web server&lt;br /&gt;
&lt;br /&gt;
* External databases ({{cmd|db.connect}})&lt;br /&gt;
* External raster data ({{cmd|r.external}})&lt;br /&gt;
* External vector data ({{cmd|v.external}})&lt;br /&gt;
* [[GRASS and Paraview|Paraview]] 3D visualization ({{cmd|r.out.vtk}}, {{cmd|r3.out.vtk}}, {{cmd|v.out.vtk}})&lt;br /&gt;
* [[POV-Ray|POVray]] 3D visualization ({{cmd|r.out.pov}}, {{cmd|v.out.pov}})&lt;br /&gt;
* [[OpenSceneGraph]] 3D visualization&lt;br /&gt;
* [[GRASS vector export to Inkscape]]&lt;br /&gt;
&lt;br /&gt;
== Misc. Help ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:FAQ|GRASS FAQ]] (see also: [[GRASS 6 Tutorial]])&lt;br /&gt;
* [[Tips and Tricks]]&lt;br /&gt;
* [[Compile and install GRASS and QGIS with GDAL/OGR Plugin]]&lt;br /&gt;
* [[How to interpolate point value using kriging method with R and GRASS 6]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------&lt;br /&gt;
* Wiki [[Help]] (how to edit pages after registration)&lt;br /&gt;
&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_Citation_Repository&amp;diff=14646</id>
		<title>GRASS Citation Repository</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_Citation_Repository&amp;diff=14646"/>
		<updated>2011-12-30T20:52:09Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to cite GRASS GIS ==&lt;br /&gt;
&lt;br /&gt;
Please cite GRASS when using the software in your work. Here are some choices depending on the version used:&lt;br /&gt;
&lt;br /&gt;
=== GRASS GIS Manual citations ===&lt;br /&gt;
* GRASS Development Team, 2011. Geographic Resources Analysis Support System (GRASS) Software. Open Source Geospatial Foundation Project. http://grass.osgeo.org&lt;br /&gt;
* GRASS Development Team, 2011. Geographic Resources Analysis Support System (GRASS) Programmer's Manual. Open Source Geospatial Foundation Project. Electronic document: http://grass.osgeo.org/devel/index.php&lt;br /&gt;
* GRASS Development Team, 2011. GRASS 6.4 Users Manual. Open Source Geospatial Foundation, USA. Electronic document: http://grass.osgeo.org/grass64/manuals/html64_user/&lt;br /&gt;
* GRASS Development Team, 2007. GRASS 6.2 Users Manual. ITC-irst, Trento, Italy. Electronic document: http://grass.osgeo.org/grass62/manuals/html62_user/&lt;br /&gt;
* GRASS Development Team, 2002. GRASS 5.0 Users Manual. ITC-irst, Trento, Italy. Electronic document: http://grass.osgeo.org/gdp/html_grass5/&lt;br /&gt;
* U.S. Army CERL, 1993. GRASS 4.1 Reference Manual. U.S. Army Corps of Engineers, Construction Engineering Research Laboratories, Champaign, Illinois, 1-425.&lt;br /&gt;
&lt;br /&gt;
Related BibTeX entry:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  @Manual{GRASS_GIS_software,&lt;br /&gt;
    title = {Geographic Resources Analysis Support System (GRASS GIS) Software},&lt;br /&gt;
    author = {{GRASS Development Team}},&lt;br /&gt;
    organization = {Open Source Geospatial Foundation},&lt;br /&gt;
    year = {2011},&lt;br /&gt;
    url = {http://grass.osgeo.org},&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Peer reviewed general GRASS GIS articles ===&lt;br /&gt;
* Neteler, M., Bowman, M.H., Landa, M., Metz, M. (2012) &amp;quot;GRASS GIS: A multi-purpose open source GIS.&amp;quot; Environmental Modelling &amp;amp; Software ([http://dx.doi.org/10.1016/j.envsoft.2011.11.014 DOI] | [http://gis.cri.fmach.it/uploads/neteler2012_grass_gis_proof.pdf PDF])&lt;br /&gt;
&lt;br /&gt;
=== Books ===&lt;br /&gt;
* M. Neteler and H. Mitasova, 2008, Open Source GIS: A GRASS GIS Approach. 3rd Ed. 406 pp, 80 illus., Springer, New York. Online Supplement: http://www.grassbook.org/&lt;br /&gt;
&lt;br /&gt;
=== Topic oriented citations ===&lt;br /&gt;
* see [[Citations for specific modules]]&lt;br /&gt;
* Citations of [[GRASS in the wild]]  (add your publications here)&lt;br /&gt;
&lt;br /&gt;
* Newsletter citations&lt;br /&gt;
** [[Newsletter citations Vol1]]&lt;br /&gt;
** [[Newsletter citations Vol2]]&lt;br /&gt;
** [[Newsletter citations Vol3]]&lt;br /&gt;
** [[Newsletter citations Vol4]]&lt;br /&gt;
&lt;br /&gt;
* [[Historical citations]]&lt;br /&gt;
&lt;br /&gt;
* Master file of all citations for download  ''(todo once we have collected enough)''&lt;br /&gt;
&lt;br /&gt;
== Helpful tools and GRASS related bibliographic searches ==&lt;br /&gt;
* [http://scholar.google.com Google Scholar] - [http://scholar.google.com/scholar?q=GRASS+GIS Search for &amp;quot;GRASS GIS&amp;quot;] (activate BibTex export in &amp;quot;Scholar preferences&amp;quot;)&lt;br /&gt;
* [http://www.citeulike.org CiteULike] - [http://www.citeulike.org/tag/grass Search for &amp;quot;GRASS&amp;quot;]&lt;br /&gt;
* [http://www.scripps.edu/~cdputnam/software/bibutils/ Bibutils] bibliography conversion utilities&lt;br /&gt;
* [http://gbib.seul.org Gbib BibTeX editor] for GTK+Gnome&lt;br /&gt;
* [http://jabref.sourceforge.net/ JabRef] Multi-platform, multi-format bibliography tool&lt;br /&gt;
* [http://www.zotero.org/groups/gis Zotero citation manager GIS group] - with all known GRASS references&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Sextante&amp;diff=14645</id>
		<title>GRASS and Sextante</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Sextante&amp;diff=14645"/>
		<updated>2011-12-30T20:51:57Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GRASS has been integrated into [http://www.sextantegis.com Sextante] as extension. Sextante itself is commonly used within gvSIG. Through this integration, gvSIG users have access to the wealth of well tested algorithms provided by GRASS.&lt;br /&gt;
&lt;br /&gt;
Note: the GDAL-GRASS plugin must be installed.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
=== How to install the improved gvSIG OADE version ===&lt;br /&gt;
&lt;br /&gt;
From version gvSIG OA Digital Edition 2010 (1.0) onwards, Sextante 0.6 with integrated GRASS GIS support is included.&lt;br /&gt;
&lt;br /&gt;
You can download and install OADE gvSIG binaries from [http://oadigital.net/software/gvsigoade/ here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note 1''': If you are on a 64bit system, add this to your settings file, e.g. $HOME/.bashrc:&lt;br /&gt;
  # 32bit fix&lt;br /&gt;
  export LD_LIBRARY_PATH=$HOME/gvsig-oade-2010-1.0.0/grass/lib/&lt;br /&gt;
&lt;br /&gt;
'''Note 2''': If you want to use latest GRASS 6.4 rather than the bundled version, you have two options:&lt;br /&gt;
* you can install or use an already installed version by pointing to the right path in the Sextante setup (see below);&lt;br /&gt;
* you can replace the included grass/ version in the  gvsig-oade-2010-1.0.0/ directory. For example, get latest Linux 32bit GRASS binaries [http://grass.osgeo.org/grass64/binary/linux/snapshot/ here]. Likewise, for MacOSX (or Windows).&lt;br /&gt;
&lt;br /&gt;
=== Alternative: How to install the original gvSIG version ===&lt;br /&gt;
&lt;br /&gt;
From gvSIG 1.10 onwards, Sextante with integrated GRASS GIS support is included (which yet fails):&lt;br /&gt;
&lt;br /&gt;
# download gvSIG binaries from [http://www.gvsig.org/web/home/gvsig-en/view?set_language=en here] (download the '''All-included version''')&lt;br /&gt;
# run the installer&lt;br /&gt;
# start gvSIG&lt;br /&gt;
&lt;br /&gt;
== Activating GRASS GIS in Sextante ==&lt;br /&gt;
&lt;br /&gt;
''(modified after grass_sextante.html)''&lt;br /&gt;
&lt;br /&gt;
Configuring Sextante to use GRASS takes just a few easy steps. Once you have configured the system, you will be able to execute GRASS algorithms from any Sextante component like the toolbox or the graphical modeller, just like you do with any other Sextante geo-algorithm.&lt;br /&gt;
&lt;br /&gt;
Only two parameters must be set, namely:&lt;br /&gt;
* The path to the GRASS installation folder. It is needed by Sextante to execute GRASS commands.&lt;br /&gt;
* The path to a GRASS mapset. Sextante is able to use a temporary mapset.&lt;br /&gt;
&lt;br /&gt;
So we do the simple setup:&lt;br /&gt;
* Open the '''Sextante Toolbox icon'''&lt;br /&gt;
* Go to Sextante settings (open icon -&amp;gt; right of the &amp;quot;Search&amp;quot; bar at bottom of the window)&lt;br /&gt;
* Go to &amp;quot;GRASS&amp;quot;. Set therein&lt;br /&gt;
** GRASS folder: /path/to/grass-binary-installation/  (e.g., /usr/local/grass-6.4.0/ )&lt;br /&gt;
** Activate &amp;quot;Create temporary mapset&amp;quot;&lt;br /&gt;
* Click on &amp;quot;Setup GRASS&amp;quot; to register the raster and vector commands&lt;br /&gt;
* Now click on the &amp;quot;Help&amp;quot; button to know that it is there and what it contains&lt;br /&gt;
* Finally click &amp;quot;OK&amp;quot; to leave the dialog. Now 5xx Sextante/GRASS commands should be available&lt;br /&gt;
&lt;br /&gt;
== How to use ==&lt;br /&gt;
&lt;br /&gt;
Note that GRASS is used in an internal temporary session (so you cannot open GRASS data but work on GeoTIFF, SHAPE files using GRASS through gvSIG/Sextante).&lt;br /&gt;
&lt;br /&gt;
=== Getting sample data ===&lt;br /&gt;
&lt;br /&gt;
A sample dataset (based on free [http://www.grassbook.org/data_menu3rd.php North Carolina dataset], packaged by B. Ducke) is coming with the gvSIG-OADE installer. Otherwise, if you prefer, you can also download and unpack it manually from [ftp://88.208.250.116/gvsig-ref-data-nc.zip here].&lt;br /&gt;
&lt;br /&gt;
This data set contains several raster and vector map files. The projection is ([http://spatialreference.org/ref/epsg/32119/ EPSG code 32119]).&lt;br /&gt;
&lt;br /&gt;
=== Sample session ===&lt;br /&gt;
# Start a new project: &amp;quot;File&amp;quot; -&amp;gt; &amp;quot;New Project&amp;quot; -&amp;gt; Click on the new name -&amp;gt; &amp;quot;Open&amp;quot; button&lt;br /&gt;
# Set the projection of the View: &amp;quot;View&amp;quot; -&amp;gt; &amp;quot;Properties&amp;quot; -&amp;gt; &amp;quot;Current projection&amp;quot; -&amp;gt; &amp;quot;Type:&amp;quot; select &amp;quot;EPSG&amp;quot; -&amp;gt; Enter code: &amp;quot;32119&amp;quot; -&amp;gt; Click on &amp;quot;Search&amp;quot; -&amp;gt; Click on &amp;quot;OK&amp;quot; -&amp;gt; Accept Properties with &amp;quot;OK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Vector points map interpolation ====&lt;br /&gt;
# Add a vector points map with the &amp;quot;Add layer&amp;quot; icon (top menu): File -&amp;gt; &amp;quot;Add&amp;quot; -&amp;gt; Select file &amp;quot;geodetic_pts.shp&amp;quot; -&amp;gt; &amp;quot;OK&amp;quot;&lt;br /&gt;
# Zoom to a portion of the map&lt;br /&gt;
# Open Sextante dialog&lt;br /&gt;
# Go to &amp;quot;GRASS&amp;quot;, expand &amp;quot;Vector (v.*)&amp;quot;&lt;br /&gt;
# Select &amp;quot;v.surf.idw&amp;quot; (double click)&lt;br /&gt;
## The SHAPE file &amp;quot;geodetic_pts.shp&amp;quot; should be preselected. Enter as column name &amp;quot;elevation&amp;quot;.&lt;br /&gt;
## Go to the region tab and select &amp;quot;Use extent from view&amp;quot;.&lt;br /&gt;
## Enter &amp;quot;Cell size&amp;quot;: 1000 (this is in map units, here: meters)&lt;br /&gt;
## Click &amp;quot;OK&amp;quot; to run the computation&lt;br /&gt;
# The resulting IDW interpolated raster map should appear in the view.&lt;br /&gt;
&lt;br /&gt;
[[Image:GvSIG OADE sextante vsurfidw.png|thumb|center|400px|gvSIG-Sextante-GRASS GIS: IDW interpolated geodetic points, North Carolina, USA]]&lt;br /&gt;
&lt;br /&gt;
==== Raster map analysis: Create topographic index map from elevation map ====&lt;br /&gt;
# Add a raster elevation map with the &amp;quot;Add layer&amp;quot; icon (top menu): File -&amp;gt; &amp;quot;Add&amp;quot; -&amp;gt; Select File Type &amp;quot;Raster&amp;quot; -&amp;gt; Select file &amp;quot;north_carolina/wake/wake_elevation.tif&amp;quot; -&amp;gt; &amp;quot;OK&amp;quot;, &amp;quot;Accept&amp;quot; projection.&lt;br /&gt;
# &amp;quot;Zoom to layer&amp;quot; with right mouse button in the legend&lt;br /&gt;
# Open Sextante dialog&lt;br /&gt;
# Go to &amp;quot;GRASS&amp;quot;, expand &amp;quot;Raster (r.*)&amp;quot;&lt;br /&gt;
# Go to &amp;quot;r.topidx&amp;quot;&lt;br /&gt;
## Start (double click) r.topidx, the map &amp;quot;wake_elevation.tif&amp;quot; should be predefined, as output write &amp;quot;wake_topidx.tif&amp;quot; (it will go into your current directory; check with browse button),&lt;br /&gt;
## Go to the region tab and select &amp;quot;Use extent from view&amp;quot;.&lt;br /&gt;
## Enter &amp;quot;Cell size&amp;quot;: 10 (this is in map units, here: meters)&lt;br /&gt;
## Click &amp;quot;OK&amp;quot; to run the computation&lt;br /&gt;
# It should have generated a new map which should appear in the view.&lt;br /&gt;
&lt;br /&gt;
[[Image:GvSIG OADE sextante rtopidx.png|thumb|center|400px|gvSIG-Sextante-GRASS GIS: Topographic index map from elevation map, North Carolina, USA]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Victor Olaya's [http://sextantegis.blogspot.com/2009/07/nantes-ogrs-2009.html blog announcement] of the integration&lt;br /&gt;
* V. Olaya, JC Giménez, 2010: [http://2010.foss4g.org/presentations_show.php?id=3382 Integrating Sextante and GRASS]. FOSS4G 2010, Barcelona&lt;br /&gt;
* M. Neteler, 2011: GRASS GIS e Sextante. [http://www.gvsig.org/web/community/events/giornate-italia/2011/Programa Quarte Giornate Italiane di gvSIG], 19-21 Apr 2011, Udine, Italy ([http://gvsig-desktop.forge.osor.eu/downloads/pub/events/giornate-triestine/2011/Presentazioni/GRASS_GIS_and_Sextante.pdf PDF])&lt;br /&gt;
&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
[[Category: Linking to other languages]]&lt;br /&gt;
[[Category: Tutorial]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Python&amp;diff=14644</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=14644"/>
		<updated>2011-12-30T20:51:41Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &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;
&lt;br /&gt;
Python is a programming language which is more powerful than shell scripting but easier and more forgiving than C.&lt;br /&gt;
The Python script can contain simple module description definitions which will be processed with {{cmd|g.parser}}, as shown in the example below. In this way with no extra coding a GUI can be built, inputs checked, and a skeleton help page can be generated automatically. In addition it adds links to the GRASS message translation system.&lt;br /&gt;
For code which needs access to the power of C, you can access the GRASS C library functions via the Python &amp;quot;ctypes&amp;quot; interface.&lt;br /&gt;
&lt;br /&gt;
;GRASS Python Scripting Library&lt;br /&gt;
* http://grass.osgeo.org/programming6/pythonlib.html (GRASS 6)&lt;br /&gt;
* http://grass.osgeo.org/programming7/pythonlib.html (GRASS 7)&lt;br /&gt;
&lt;br /&gt;
Code style: Have a look at [http://trac.osgeo.org/grass/browser/grass/trunk/SUBMITTING_PYTHON SUBMITTING_PYTHON].&lt;br /&gt;
&lt;br /&gt;
=== Creating Python scripts that call GRASS functionality from outside ===&lt;br /&gt;
&lt;br /&gt;
In order to use GRASS from outside, some environment variables have to be set.&lt;br /&gt;
&lt;br /&gt;
==== MS-Windows ====&lt;br /&gt;
&lt;br /&gt;
 GISBASE= C:\GRASS-64&lt;br /&gt;
 GISRC= C:\Documents and Settings\user\.grassrc6&lt;br /&gt;
 LD_LIBRARY_PATH= C:\GRASS-64\lib&lt;br /&gt;
 PATH= C:\GRASS-64\etc;C:\GRASS-64\etc\python;C:\GRASS-64\lib;C:\GRASS-64\bin;C:\GRASS-64\extralib;C:\GRASS-64\msys\bin;C:\Python26;&lt;br /&gt;
 PYTHONLIB= C:\Python26&lt;br /&gt;
 PYTHONPATH= C:\GRASS-64\etc\python&lt;br /&gt;
 GRASS_SH= C:\GRASS-64\msys\bin\sh.exe&lt;br /&gt;
&lt;br /&gt;
Some hints:&lt;br /&gt;
&lt;br /&gt;
# The Python interpreter (python.exe) needs to be in the PATH&lt;br /&gt;
# Python needs to be associated with the .py extension&lt;br /&gt;
# PATHEXT needs to include .py if you want to be able to omit the extension&lt;br /&gt;
# PYTHONPATH needs to be set to %WINGISBASE%\etc\python&lt;br /&gt;
&lt;br /&gt;
1-3 should be taken care of by the Python installer. 4 needs to be done by the startup (currently, this doesn't appear to be the case on MS-Windows).&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
&lt;br /&gt;
Currently (as of 22 Feb 2011) if you want to use Python for scripting GRASS on Windows, the best solution is to delete the bundled version of Python 2.5 from the GRASS installation, install Python and the required add-ons (wxPython, NumPy, PyWin32) from their official installers,&lt;br /&gt;
then edit the GRASS start-up script to remove any references to the bundled version.&lt;br /&gt;
&lt;br /&gt;
==== Linux ====&lt;br /&gt;
&lt;br /&gt;
The variables are set like this:&lt;br /&gt;
&lt;br /&gt;
 export GISBASE=&amp;quot;/usr/local/grass-6.4.svn/&amp;quot;&lt;br /&gt;
 export PATH=&amp;quot;$PATH:$GISBASE/bin:$GISBASE/scripts&amp;quot;&lt;br /&gt;
 export LD_LIBRARY_PATH=&amp;quot;$LD_LIBRARY_PATH:$GISBASE/lib&amp;quot;&lt;br /&gt;
 # for parallel session management, we use process ID (PID) as lock file number:&lt;br /&gt;
 export GIS_LOCK=$$&lt;br /&gt;
 # path to GRASS settings file&lt;br /&gt;
 export GISRC=&amp;quot;$HOME/.grassrc6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Running external commands from Python ===&lt;br /&gt;
For information on running external commands from Python, see:&lt;br /&gt;
http://docs.python.org/lib/module-subprocess.html&lt;br /&gt;
&lt;br /&gt;
Avoid using the older os.* functions. Section 17.1.3 lists equivalents&lt;br /&gt;
using the Popen() interface, which is more robust (particularly on&lt;br /&gt;
Windows).&lt;br /&gt;
&lt;br /&gt;
=== Using the GRASS Python Scripting Library ===&lt;br /&gt;
&lt;br /&gt;
The code in lib/python/ provides 'grass.script' in order to support GRASS scripts written in Python. The scripts/ directory of GRASS 7 contains a series of examples actually provided to the end users (while the script in GRASS 6 are shell scripts).&lt;br /&gt;
&lt;br /&gt;
Python Scripting Library code details:&lt;br /&gt;
* [http://grass.osgeo.org/programming6/pythonlib.html for GRASS 6]: core.py, db.py, raster.py, vector.py, setup.py, array.py&lt;br /&gt;
* [http://grass.osgeo.org/programming7/pythonlib.html for GRASS 7]: core.py, db.py, raster.py, vector.py, setup.py, array.py&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
==== Display example ====&lt;br /&gt;
Example of Python script, which is processed by g.parser:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
#&lt;br /&gt;
############################################################################&lt;br /&gt;
#&lt;br /&gt;
# MODULE:      d.shadedmap&lt;br /&gt;
# AUTHOR(S):   Unknown; updated to GRASS 5.7 by Michael Barton&lt;br /&gt;
#              Converted to Python by Glynn Clements&lt;br /&gt;
# PURPOSE:     Uses d.his to drape a color raster over a shaded relief map&lt;br /&gt;
# COPYRIGHT:   (C) 2004,2008,2009 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;
#&lt;br /&gt;
#############################################################################&lt;br /&gt;
&lt;br /&gt;
#%Module&lt;br /&gt;
#% description: Drapes a color raster over a shaded relief map using d.his&lt;br /&gt;
#%End&lt;br /&gt;
#%option&lt;br /&gt;
#% key: reliefmap&lt;br /&gt;
#% type: string&lt;br /&gt;
#% gisprompt: old,cell,raster&lt;br /&gt;
#% description: Name of shaded relief or aspect map&lt;br /&gt;
#% required : yes&lt;br /&gt;
#%end&lt;br /&gt;
#%option&lt;br /&gt;
#% key: drapemap&lt;br /&gt;
#% type: string&lt;br /&gt;
#% gisprompt: old,cell,raster&lt;br /&gt;
#% description: Name of raster to drape over relief map&lt;br /&gt;
#% required : yes&lt;br /&gt;
#%end&lt;br /&gt;
#%option&lt;br /&gt;
#% key: brighten&lt;br /&gt;
#% type: integer&lt;br /&gt;
#% description: Percent to brighten&lt;br /&gt;
#% options: -99-99&lt;br /&gt;
#% answer: 0&lt;br /&gt;
#%end&lt;br /&gt;
&lt;br /&gt;
import sys&lt;br /&gt;
from grass.script import core as grass&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    drape_map = options['drapemap']&lt;br /&gt;
    relief_map = options['reliefmap']&lt;br /&gt;
    brighten = options['brighten']&lt;br /&gt;
    ret = grass.run_command(&amp;quot;d.his&amp;quot;, h_map = drape_map,  i_map = relief_map, brighten = brighten)&lt;br /&gt;
    sys.exit(ret)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    options, flags = grass.parser()&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Parsing the options and flags  ====&lt;br /&gt;
&lt;br /&gt;
grass.parser() is an interface to g.parser, and allows to parse the options and flags passed to your script on the command line. It is to be called at the top-level:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    options, flags = grass.parser()&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Global variables &amp;quot;options&amp;quot; and &amp;quot;flags&amp;quot; are Python dictionaries containing the options/flags values, keyed by lower-case option/flag names. The values in &amp;quot;options&amp;quot; are strings, those in &amp;quot;flags&amp;quot; are Python booleans. All those variables have to be previously declared in the header of your script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; options, flags = grass.parser()&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; options&lt;br /&gt;
{'input': 'my_map', 'output': 'map_out', 'option1': '21.472', 'option2': ''}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; flags&lt;br /&gt;
{'c': True, 'm': False}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example for embedding r.mapcalc (map algebra) ====&lt;br /&gt;
&lt;br /&gt;
grass.mapcalc() accepts a template string followed by keyword&lt;br /&gt;
arguments for the substitutions, e.g. (code snippets):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
grass.mapcalc(&amp;quot;${out} = ${rast1} + ${rast2}&amp;quot;,&lt;br /&gt;
              out = options['output'],&lt;br /&gt;
              rast1 = options['raster1'],&lt;br /&gt;
              rast2 = options['raster2'])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Best practice'': first copy all of the options[] into separate variables at the beginning of main(), i.e.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def main():&lt;br /&gt;
    output = options['output']&lt;br /&gt;
    raster1 = options['raster1']&lt;br /&gt;
    raster2 = options['raster2']&lt;br /&gt;
 &lt;br /&gt;
    ...&lt;br /&gt;
 &lt;br /&gt;
    grass.mapcalc(&amp;quot;${out} = ${rast1} + ${rast2}&amp;quot;,&lt;br /&gt;
                  out = output,&lt;br /&gt;
                  rast1 = raster1,&lt;br /&gt;
                  rast2 = raster2)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example for parsing raster category labels ====&lt;br /&gt;
&lt;br /&gt;
How to obtain the text labels&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    # dump cats to file to avoid &amp;quot;too many argument&amp;quot; problem:&lt;br /&gt;
    p = grass.pipe_command('r.category', map = rastertmp, fs = ';', quiet = True)&lt;br /&gt;
    cats = []&lt;br /&gt;
    for line in p.stdout:&lt;br /&gt;
        cats.append(line.rstrip('\r\n').split(';')[0])&lt;br /&gt;
    p.wait()&lt;br /&gt;
&lt;br /&gt;
    number = len(cats)&lt;br /&gt;
    if number &amp;lt; 1:&lt;br /&gt;
        grass.fatal(_(&amp;quot;No categories found in raster map&amp;quot;))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example for parsing category numbers ====&lt;br /&gt;
&lt;br /&gt;
Q: How to obtain the number of cells of a certain category?&lt;br /&gt;
&lt;br /&gt;
A: It is recommended to use pipe_command() and parse the output, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       p = grass.pipe_command('r.stats',flags='c',input='map')&lt;br /&gt;
       result = {}&lt;br /&gt;
       for line in p.stdout:&lt;br /&gt;
           val,count = line.strip().split()&lt;br /&gt;
           result[int(val)] = int(count)&lt;br /&gt;
       p.wait()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example for getting the region's number of rows and columns ====&lt;br /&gt;
&lt;br /&gt;
Q: How to obtain the number of rows and columns of the current region?&lt;br /&gt;
&lt;br /&gt;
A: It is recommended to use the &amp;quot;grass.region()&amp;quot; function which will create a dictionary with values for extents and resolution, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
#-*- coding:utf-8 -*-&lt;br /&gt;
#&lt;br /&gt;
############################################################################&lt;br /&gt;
#&lt;br /&gt;
# MODULE:       g.region.resolution&lt;br /&gt;
# AUTHOR(S):    based on a post at GRASS-USER mailing list [1]               &lt;br /&gt;
# PURPOSE:	Parses &amp;quot;g.region -g&amp;quot;, prints out number of rows, cols&lt;br /&gt;
# COPYLEFT:     ;-)&lt;br /&gt;
# COMMENT:      ...a lot of comments to be easy-to-read for/by beginners&lt;br /&gt;
#&lt;br /&gt;
#############################################################################&lt;br /&gt;
#&lt;br /&gt;
#%Module&lt;br /&gt;
#% description: Print number of rows, cols of current geographic region&lt;br /&gt;
#% keywords: region&lt;br /&gt;
#%end&lt;br /&gt;
&lt;br /&gt;
# importing required modules&lt;br /&gt;
import sys # the sys module [2]&lt;br /&gt;
from grass.script import core as grass # the core module [3]&lt;br /&gt;
&lt;br /&gt;
# information about imported modules can be obtained using the dir() function&lt;br /&gt;
# e.g.: dir(sys)&lt;br /&gt;
&lt;br /&gt;
# define the &amp;quot;main&amp;quot; function: get number of rows, cols of region&lt;br /&gt;
def main():&lt;br /&gt;
    &lt;br /&gt;
    # #######################################################################&lt;br /&gt;
    # the following commented code works but is kept only for learning purposes&lt;br /&gt;
     &lt;br /&gt;
    ## assigning the output of the command &amp;quot;g.region -g&amp;quot; in a string called &amp;quot;return_rows_x_cols&amp;quot;&lt;br /&gt;
    # return_rows_x_cols = grass.read_command('g.region', flags = 'g')&lt;br /&gt;
    &lt;br /&gt;
    ## parsing arguments of interest (rows, cols) in a dictionary named &amp;quot;rows_x_cols&amp;quot;&lt;br /&gt;
    # rows_x_cols = grass.parse_key_val(return_rows_x_cols)&lt;br /&gt;
    &lt;br /&gt;
    ## selectively print rows, cols from the dictionary &amp;quot;rows_x_cols&amp;quot;&lt;br /&gt;
    # print 'rows=%d \ncols=%d' % (int(rows_x_cols['rows']), int(rows_x_cols['cols']))&lt;br /&gt;
    &lt;br /&gt;
    # #######################################################################&lt;br /&gt;
    &lt;br /&gt;
    # faster/ easier way: use of the &amp;quot;grass.region()&amp;quot; function&lt;br /&gt;
    gregion = grass.region()&lt;br /&gt;
    rows = gregion['rows']&lt;br /&gt;
    cols = gregion['cols']&lt;br /&gt;
    &lt;br /&gt;
    # print rows, cols properly formated &lt;br /&gt;
    print 'rows=%d \ncols=%d' % (rows, cols)&lt;br /&gt;
&lt;br /&gt;
# this &amp;quot;if&amp;quot; condition instructs execution of code contained in this script, *only* if the script is being executed directly &lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;: # this allows the script to be used as a module in other scripts or as a standalone script&lt;br /&gt;
    options, flags = grass.parser() #&lt;br /&gt;
    sys.exit(main()) #&lt;br /&gt;
&lt;br /&gt;
# Links&lt;br /&gt;
# [1] http://n2.nabble.com/Getting-rows-cols-of-a-region-in-a-script-tp2787474p2787509.html&lt;br /&gt;
# [2] http://www.python.org/doc/2.5.2/lib/module-sys.html&lt;br /&gt;
# [3] http://download.osgeo.org/grass/grass6_progman/pythonlib.html#pythonCore&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Managing mapsets ====&lt;br /&gt;
&lt;br /&gt;
To check if a certain mapset exists in the active location, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       grass.script.mapsets(False)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... returns a list of mapsets in the current location.&lt;br /&gt;
&lt;br /&gt;
==== r.mapcalc example ====&lt;br /&gt;
&lt;br /&gt;
Example of Python script, which is processed by {{cmd|g.parser}}:&lt;br /&gt;
&lt;br /&gt;
The shell script line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  r.mapcalc &amp;quot;MASK = if(($cloudResampName &amp;lt; 0.01000),1,null())&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
would be written like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
&lt;br /&gt;
       ...&lt;br /&gt;
&lt;br /&gt;
       grass.mapcalc(&amp;quot;MASK=if(($cloudResampName &amp;lt; 0.01000),1,null())&amp;quot;,&lt;br /&gt;
                     cloudResampName = cloudResampName)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first argument to the mapcalc function is a template (see the Python library documentation for [http://docs.python.org/library/string.html string.Template]). Any keyword arguments (other than quiet, verbose or overwrite) specify substitutions.&lt;br /&gt;
&lt;br /&gt;
==== Using output from GRASS modules in the script ====&lt;br /&gt;
&lt;br /&gt;
Sometimes you need to use the output of a module for the next step. There are dedicated functions to obtain the result of, for example, a statistical analysis.&lt;br /&gt;
&lt;br /&gt;
Example: get the range of a raster map and use it in {{cmd|r.mapcalc}}. Here you can use &amp;lt;code&amp;gt;grass.script.raster_info()&amp;lt;/code&amp;gt;, e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
&lt;br /&gt;
       max = grass.raster_info(inmap)['max']&lt;br /&gt;
       grass.mapcalc(&amp;quot;$outmap = $inmap / $max&amp;quot;,&lt;br /&gt;
                     inmap = inmap, outmap = outmap, max = max)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Calling a GRASS module in Python  ====&lt;br /&gt;
&lt;br /&gt;
Imagine, you wanted to execute this command in Python:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
  r.profile -g input=mymap output=newfile profile=12244.256,-295112.597,12128.012,-295293.77&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All arguments except the first (which is a flag) are keyword arguments, i.e. &amp;lt;tt&amp;gt;arg = val&amp;lt;/tt&amp;gt;. For the flag, use &amp;lt;tt&amp;gt;flags = 'g'&amp;lt;/tt&amp;gt; (note that &amp;quot;-g&amp;quot; would be the negative of a Python variable named &amp;quot;g&amp;quot;!). So:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       grass.run_command(&lt;br /&gt;
               'r.profile',&lt;br /&gt;
               input = input_map,&lt;br /&gt;
               output = output_file,&lt;br /&gt;
               profile = [12244.256,-295112.597,12128.012,-295293.77]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
               profile = [(12244.256,-295112.597),(12128.012,-295293.77)]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i.e. you need to provide the keyword, and the argument must be a valid Python expression. Function &amp;lt;code&amp;gt;run_command()&amp;lt;/code&amp;gt; etc accept lists and tuples.&lt;br /&gt;
&lt;br /&gt;
'''Differences between ''run_command()'' and ''read_command()'':'''&lt;br /&gt;
&lt;br /&gt;
* run_command() executes the command and waits for it to terminate; it doesn't redirect any of the standard streams.&lt;br /&gt;
* read_command() executes the command with stdout redirected to a pipe, and reads everything written to it. Once the command terminates, it returns the data written to stdout as a string.&lt;br /&gt;
&lt;br /&gt;
'''How to retrieve error messages from ''read_command()'':'''&lt;br /&gt;
&lt;br /&gt;
None of the existing *_command functions redirect stderr. You can do so with e.g.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def read2_command(*args, **kwargs):&lt;br /&gt;
   kwargs['stdout'] = grass.PIPE&lt;br /&gt;
   kwargs['stderr'] = grass.PIPE&lt;br /&gt;
   ps = grass.start_command(*args, **kwargs)&lt;br /&gt;
   return ps.communicate()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This behaves like read_command() except that it returns a tuple of (stdout,stderr) rather than just stdout.&lt;br /&gt;
&lt;br /&gt;
==== Percentage output for progress of computation ====&lt;br /&gt;
&lt;br /&gt;
A) Within a Python script, the grass.script.core.percent() module method wraps the &amp;lt;tt&amp;gt;g.message -p&amp;lt;/tt&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
B) If you call a GRASS command within the Python code, you have to parse the output by setting &amp;lt;tt&amp;gt;GRASS_MESSAGE_FORMAT=gui&amp;lt;/tt&amp;gt; in the environment when running the command and read from the command's stderr; e.g.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
       env = os.environ.copy()&lt;br /&gt;
       env['GRASS_MESSAGE_FORMAT'] = 'gui'&lt;br /&gt;
       p = grass.start_command(..., stderr = grass.PIPE, env = env)&lt;br /&gt;
       # read from p.stderr&lt;br /&gt;
       p.wait()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to capture both stdout and stderr, you need to use threads, select, or non-blocking I/O to consume data from both streams as it is generated in order to avoid deadlock.&lt;br /&gt;
&lt;br /&gt;
ALTERNATIVE:&lt;br /&gt;
&lt;br /&gt;
Redirect both stdout and stderr to the same pipe (and hope that the normal output doesn't include anything which will be mistaken for progress/error/etc messages):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       p = grass.start_command(..., stdout = grass.PIPE, stderr = grass.STDOUT, env = env)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Path to GISDBASE ====&lt;br /&gt;
&lt;br /&gt;
In order to a avoid hardcoded paths to GRASS mapset files like the SQLite DB file, you can get the GISDBASE variable from the environment:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
       import grass.script as grass&lt;br /&gt;
       import os.path&lt;br /&gt;
&lt;br /&gt;
       env = grass.gisenv()&lt;br /&gt;
&lt;br /&gt;
       gisdbase = env['GISDBASE']&lt;br /&gt;
       location = env['LOCATION_NAME']&lt;br /&gt;
       mapset = env['MAPSET']&lt;br /&gt;
&lt;br /&gt;
       path = os.path.join(gisdbase, location, mapset, 'sqlite.db')&lt;br /&gt;
&amp;lt;/source&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 [[wxGUI]] wiki page&lt;br /&gt;
&lt;br /&gt;
=== GRASS Python Scripting Library ===&lt;br /&gt;
&lt;br /&gt;
See [http://grass.osgeo.org/programming7/pythonlib.html GRASS Python Scripting Library] (Programmer's manual). See also [[Converting Bash scripts to Python]], and [http://trac.osgeo.org/grass/browser/grass/trunk/scripts sample Python scripts in GRASS 7]&lt;br /&gt;
&lt;br /&gt;
==== Uses for read, feed and pipe, start and exec commands ====&lt;br /&gt;
&lt;br /&gt;
All of the *_command functions use make_command to construct a command&lt;br /&gt;
line for a program which uses the GRASS parser. Most of them then pass&lt;br /&gt;
that command line to ''subprocess.Popen()'' via ''start_command()'', except&lt;br /&gt;
for ''exec_command()'' which uses ''os.execvpe()''.&lt;br /&gt;
&lt;br /&gt;
[To be precise, they use grass.Popen(), which just calls&lt;br /&gt;
subprocess.Popen() with shell=True on Windows and shell=False&lt;br /&gt;
otherwise. On Windows, you need to use shell=True to be able to&lt;br /&gt;
execute scripts (including batch files); shell=False only works with&lt;br /&gt;
binary executables.]&lt;br /&gt;
&lt;br /&gt;
start_command() separates the arguments into those which&lt;br /&gt;
subprocess.Popen() understands and the rest. The rest are passed to&lt;br /&gt;
make_command() to construct a command line which is passed as the&lt;br /&gt;
&amp;quot;args&amp;quot; parameter to subprocess.Popen().&lt;br /&gt;
&lt;br /&gt;
In other words, start_command() is a GRASS-oriented interface to&lt;br /&gt;
subprocess.Popen(). It should be suitable for any situation where you&lt;br /&gt;
would use subprocess.Popen() to execute a normal GRASS command (one&lt;br /&gt;
which uses the GRASS parser, which is almost all of them; the main&lt;br /&gt;
exception is r.mapcalc in 6.x).&lt;br /&gt;
&lt;br /&gt;
Most of the others are convenience wrappers around start_command(), for common use cases.&lt;br /&gt;
&lt;br /&gt;
* run_command() calls the wait() method on the process, so it doesn't return until the command has finished, and returns the command's exit code. Similar to system().&lt;br /&gt;
&lt;br /&gt;
* pipe_command() calls start_command() with stdout=PIPE and returns the process object. You can use the process' .stdout member to read the command's stdout. Similar to popen(..., &amp;quot;r&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
* feed_command() calls start_command() with stdin=PIPE and returns the process object. You can use the process' .stdin member to write to the command's stdout. Similar to popen(..., &amp;quot;w&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
* read_command() calls pipe_command(), reads the data from the command's stdout, and returns it as a string. Similar to `backticks` in the shell.&lt;br /&gt;
&lt;br /&gt;
* write_command() calls feed_command(), sends the string specified by the &amp;quot;stdin&amp;quot; argument to the command's stdin, waits for the command to finish and returns its exit code. Similar to &amp;quot;echo ... | command&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* parse_command() calls read_command() and parses its output as key-value pairs. Useful for obtaining information from g.region, g.proj, r.info, etc.&lt;br /&gt;
&lt;br /&gt;
* exec_command() doesn't use start_command() but os.execvpe(). This causes the specified command to replace the current program (i.e. the Python script), so exec_command() never returns. Similar to bash's &amp;quot;exec&amp;quot; command. This can be useful if the script is a &amp;quot;wrapper&amp;quot; around a single command, where you construct the command line and execute the command as the final step.&lt;br /&gt;
&lt;br /&gt;
If you have any other questions, you might want to look at the code ($GISBASE/etc/python/grass/script/core.py). Most of these functions are only a few lines long.&lt;br /&gt;
&lt;br /&gt;
==== Interfacing with NumPy ====&lt;br /&gt;
&lt;br /&gt;
The {{api|pythonlib.html#pythonArray|grass.script.array}} module defines a {{api|classpython_1_1array_1_1array.html|class array}} which is a subclass of [http://docs.scipy.org/doc/numpy/reference/generated/numpy.memmap.html numpy.memmap] with &amp;lt;code&amp;gt;.read()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;.write()&amp;lt;/code&amp;gt; methods to read/write the underlying file via {{cmd|r.out.bin}}/{{cmd|r.in.bin}}. Metadata can be read with {{api|namespacepython_1_1raster.html#a69e4a61eb59a31608410b733d174b8a7|raster::raster_info}}():&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import grass.script as grass&lt;br /&gt;
import grass.script.array as garray&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    map = &amp;quot;elevation.dem&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    # read map&lt;br /&gt;
    a = garray.array()&lt;br /&gt;
    a.read(map)&lt;br /&gt;
&lt;br /&gt;
    # get raster map info&lt;br /&gt;
    print grass.raster_info(map)['datatype']&lt;br /&gt;
    i = grass.raster_info(map)&lt;br /&gt;
    &lt;br /&gt;
    # get computational region info&lt;br /&gt;
    c = grass.region()&lt;br /&gt;
    print &amp;quot;rows: %d&amp;quot; % c['rows']&lt;br /&gt;
    print &amp;quot;cols: %d&amp;quot; % c['cols']&lt;br /&gt;
&lt;br /&gt;
    # new array for result&lt;br /&gt;
    b = garray.array()&lt;br /&gt;
    # calculate new map from input map and store as GRASS raster map&lt;br /&gt;
    b[...] = (a / 50).astype(int) * 50&lt;br /&gt;
    b.write(&amp;quot;elev.50m&amp;quot;)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The size of the array is taken from the current region ([[computational region]]).&lt;br /&gt;
&lt;br /&gt;
The main drawback of using numpy is that you're limited by available&lt;br /&gt;
memory. Using a subclass of &amp;lt;code&amp;gt;numpy.memmap&amp;lt;/code&amp;gt; lets you use files which may&lt;br /&gt;
be much larger, but processing the entire array in one go is likely to&lt;br /&gt;
produce in-memory results of a similar size.&lt;br /&gt;
&lt;br /&gt;
==== Interfacing with NumPy and SciPy  ====&lt;br /&gt;
&lt;br /&gt;
[http://docs.scipy.org/doc/scipy/reference/index.html SciPy] offers simple access to complex calculations. Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from scipy import stats&lt;br /&gt;
import grass.script as grass&lt;br /&gt;
import grass.script.array as garray&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    map = &amp;quot;elevation.dem&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    x = garray.array()&lt;br /&gt;
    x.read(map)&lt;br /&gt;
&lt;br /&gt;
    # Descriptive Statistics:&lt;br /&gt;
    print &amp;quot;max, min, mean, var:&amp;quot;&lt;br /&gt;
    print x.max(), x.min(), x.mean(), x.var()&lt;br /&gt;
    print &amp;quot;Skewness test: z-score and 2-sided p-value:&amp;quot;&lt;br /&gt;
    print stats.skewtest(stats.skew(x))&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Interfacing with NumPy, SciPy and Matlab ====&lt;br /&gt;
&lt;br /&gt;
One may also use the SciPy - Matlab interface:&lt;br /&gt;
    &lt;br /&gt;
    ### SH: in GRASS ###&lt;br /&gt;
    r.out.mat input=elevation output=elev.mat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
    ### PY ###&lt;br /&gt;
    import scipy.io as sio&lt;br /&gt;
    # load data&lt;br /&gt;
    elev = sio.loadmat('elev.mat')&lt;br /&gt;
    # retrive the actual array. the data set contains also the spatial reference&lt;br /&gt;
    elev.get('map_data')&lt;br /&gt;
    data = elev.get('map_data')&lt;br /&gt;
    # a first simple plot&lt;br /&gt;
    import pylab&lt;br /&gt;
    pylab.plot(data)&lt;br /&gt;
    pylab.show()&lt;br /&gt;
    # the contour plot&lt;br /&gt;
    pylab.contour(data)&lt;br /&gt;
    # obviously data needs to ne reversed&lt;br /&gt;
    import numpy as np&lt;br /&gt;
    data_rev = data[::-1]&lt;br /&gt;
    pylab.contour(data_rev)&lt;br /&gt;
    # =&amp;gt; this is a quick plot. basemap mapping may provide a nicer map!&lt;br /&gt;
    #######&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing and installing Python extensions ===&lt;br /&gt;
&lt;br /&gt;
==== Debugging ====&lt;br /&gt;
&lt;br /&gt;
Make sure the script is executable:&lt;br /&gt;
&lt;br /&gt;
    chmod +x /path/to/my.extension.py&lt;br /&gt;
&lt;br /&gt;
During development, a Python script can be debugged using the Python Debugger (pdb):&lt;br /&gt;
&lt;br /&gt;
    python -m pdb /path/to/my.extension.py input=my_input_layer output=my_output_layer option=value -f&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
Once you're happy with your script, you can put it in the scripts/ folder of your GRASS install. To do so, first create a directory named after your extension, then create a Makefile for it, and a HTML man page:&lt;br /&gt;
&lt;br /&gt;
    cd /path/to/grass_src/&lt;br /&gt;
    cd scripts&lt;br /&gt;
    ls # It is useful to check out the existing scripts and their structure&lt;br /&gt;
    mkdir my.extension&lt;br /&gt;
    cd my.extension&lt;br /&gt;
    cp path/to/my.extension.py .&lt;br /&gt;
    touch my.extension.html&lt;br /&gt;
    touch Makefile&lt;br /&gt;
&lt;br /&gt;
Next step is to edit the Makefile. It is a very simple text file, the only thing to check is to put the right extension name (WITHOUT the .py file extension) after PGM:&lt;br /&gt;
&lt;br /&gt;
    MODULE_TOPDIR = ../..&lt;br /&gt;
    &lt;br /&gt;
    PGM = my.extension&lt;br /&gt;
    &lt;br /&gt;
    include $(MODULE_TOPDIR)/include/Make/Script.make&lt;br /&gt;
    &lt;br /&gt;
    default: script&lt;br /&gt;
&lt;br /&gt;
The HTML file would be generated automatically. If you want to add more precisions in it, you can do it (just make sure you start at DESCRIPTION. See existing scripts.)&lt;br /&gt;
&lt;br /&gt;
You can then run &amp;quot;make&amp;quot; within the my.extension folder. Running &amp;quot;make&amp;quot; in the extension directory places the resulting files in the staging directory (path/to/grass_src/dist.&amp;lt;YOUR_ARCH&amp;gt;/). If you're running GRASS from the staging directory (/path/to/grass_src/bin.&amp;lt;YOUR_ARCH&amp;gt;/grass7), subsequent commands will used the updated files. &lt;br /&gt;
&lt;br /&gt;
    # in your extension directory (/path/to/grass_src/scripts/my.extension/)&lt;br /&gt;
    make&lt;br /&gt;
    # Starting GRASS from the staging directory&lt;br /&gt;
    /path/to/grass_src/bin.&amp;lt;YOUR_ARCH&amp;gt;/grass7&lt;br /&gt;
    my.extension help&lt;br /&gt;
&lt;br /&gt;
You can also run &amp;quot;make install&amp;quot; from the top level directory of your GRASS install (say /usr/local/src/grass_trunk/). Running &amp;quot;make install&amp;quot; from the top level just copies the whole of the dist.&amp;lt;YOUR_ARCH&amp;gt;/ directory to the installation directory (e.g. /usr/local/grass70) and the bin.&amp;lt;YOUR_ARCH&amp;gt;/grass70 bin file to the bin directory (e.g. /usr/local/bin), and fixes any embedded paths in scripts and configuration files.&lt;br /&gt;
&lt;br /&gt;
    cd /path/to/grass_src&lt;br /&gt;
    make install&lt;br /&gt;
    # Starting GRASS as usual would work and show your extension available&lt;br /&gt;
    grass7&lt;br /&gt;
    my.extension help&lt;br /&gt;
&lt;br /&gt;
=== Python Ctypes Interface ===&lt;br /&gt;
&lt;br /&gt;
This interface allows calling GRASS library functions from Python scripts. See [[Python Ctypes Examples]] for details.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
* GRASS 7: [http://trac.osgeo.org/grass/browser/grass/trunk/doc/python/raster_example_ctypes.py raster], [http://trac.osgeo.org/grass/browser/grass/trunk/doc/python/vector_example_ctypes.py vector] example&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Latest and greatest: [[http://trac.osgeo.org/grass/browser/grass/trunk/scripts GRASS 7 Python scripts]]&lt;br /&gt;
&lt;br /&gt;
* [[PythonSwigExamples|More complicated examples]] &amp;lt;&amp;lt;-- TODO: update to Ctypes&lt;br /&gt;
&lt;br /&gt;
Sample script for GRASS 6 raster access (use within GRASS, Spearfish session):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
&lt;br /&gt;
## TODO: update example to Ctypes&lt;br /&gt;
&lt;br /&gt;
import os, sys&lt;br /&gt;
from grass.lib import grass&lt;br /&gt;
&lt;br /&gt;
if &amp;quot;GISBASE&amp;quot; not in os.environ:&lt;br /&gt;
    print &amp;quot;You must be in GRASS GIS to run this program.&amp;quot;&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
if len(sys.argv)==2:&lt;br /&gt;
  input = sys.argv[1]&lt;br /&gt;
else:&lt;br /&gt;
  input = raw_input(&amp;quot;Raster Map Name? &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# initialize&lt;br /&gt;
grass.G_gisinit('')&lt;br /&gt;
&lt;br /&gt;
# find map in search path&lt;br /&gt;
mapset = grass.G_find_cell2(input, '')&lt;br /&gt;
&lt;br /&gt;
# determine the inputmap type (CELL/FCELL/DCELL) */&lt;br /&gt;
data_type = grass.G_raster_map_type(input, mapset)&lt;br /&gt;
&lt;br /&gt;
infd = grass.G_open_cell_old(input, mapset)&lt;br /&gt;
inrast = grass.G_allocate_raster_buf(data_type)&lt;br /&gt;
&lt;br /&gt;
rown = 0&lt;br /&gt;
while True:&lt;br /&gt;
    myrow = grass.G_get_raster_row(infd, inrast, rown, data_type)&lt;br /&gt;
    print rown, myrow[0:10]&lt;br /&gt;
    rown += 1&lt;br /&gt;
    if rown == 476:&lt;br /&gt;
        break&lt;br /&gt;
&lt;br /&gt;
grass.G_close_cell(inrast)&lt;br /&gt;
grass.G_free(cell)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample script for vector access (use within GRASS, Spearfish session):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
&lt;br /&gt;
# run within GRASS Spearfish session&lt;br /&gt;
# run this before starting python to append module search path:&lt;br /&gt;
#   export PYTHONPATH=/usr/src/grass70/swig/python&lt;br /&gt;
#   check with &amp;quot;import sys; sys.path&amp;quot;&lt;br /&gt;
# or:&lt;br /&gt;
#   sys.path.append(&amp;quot;/usr/src/grass70/swig/python&amp;quot;)&lt;br /&gt;
# FIXME: install the grass bindings in $GISBASE/lib/ ?&lt;br /&gt;
&lt;br /&gt;
import os, sys&lt;br /&gt;
from grass.lib import grass&lt;br /&gt;
from grass.lib import vector as grassvect&lt;br /&gt;
&lt;br /&gt;
if &amp;quot;GISBASE&amp;quot; not in os.environ:&lt;br /&gt;
    print &amp;quot;You must be in GRASS GIS to run this program.&amp;quot;&lt;br /&gt;
    sys.exit(1)&lt;br /&gt;
&lt;br /&gt;
if len(sys.argv)==2:&lt;br /&gt;
  input = sys.argv[1]&lt;br /&gt;
else:&lt;br /&gt;
  input = raw_input(&amp;quot;Vector Map Name? &amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# initialize&lt;br /&gt;
grass.G_gisinit('')&lt;br /&gt;
&lt;br /&gt;
# find map in search path&lt;br /&gt;
mapset = grass.G_find_vector2(input,'')&lt;br /&gt;
&lt;br /&gt;
# define map structure&lt;br /&gt;
map = grassvect.Map_info()&lt;br /&gt;
&lt;br /&gt;
# define open level (level 2: topology)&lt;br /&gt;
grassvect.Vect_set_open_level (2)&lt;br /&gt;
&lt;br /&gt;
# open existing map&lt;br /&gt;
grassvect.Vect_open_old(map, input, mapset)&lt;br /&gt;
&lt;br /&gt;
# query&lt;br /&gt;
print 'Vect map: ', input&lt;br /&gt;
print 'Vect is 3D: ', grassvect.Vect_is_3d (map)&lt;br /&gt;
print 'Vect DB links: ', grassvect.Vect_get_num_dblinks(map)&lt;br /&gt;
print 'Map Scale:  1:', grassvect.Vect_get_scale(map)&lt;br /&gt;
print 'Number of areas:', grassvect.Vect_get_num_areas(map)&lt;br /&gt;
&lt;br /&gt;
# close map&lt;br /&gt;
grassvect.Vect_close(map)&lt;br /&gt;
&amp;lt;/source&amp;gt;&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;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;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;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* '''Q:''' Error message &amp;quot;execl() failed: Permission denied&amp;quot; - what to do?&lt;br /&gt;
: '''A:''' Be sure that the execute bit of the script is set.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
=== General guides ===&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikibooks.org/wiki/Python_Programming/ Wikibook Python Programming]&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;
* [http://wiki.python.org/moin/PythonEditors Python Editors]&lt;br /&gt;
&lt;br /&gt;
=== Programming ===&lt;br /&gt;
&lt;br /&gt;
* Python and GRASS:&lt;br /&gt;
** GRASS Python interface to library functions: http://download.osgeo.org/grass/grass6_progman/swig/ based on SWIG http://www.swig.org/&lt;br /&gt;
** GRASS Python scripting library: http://download.osgeo.org/grass/grass6_progman/pythonlib.html&lt;br /&gt;
** PyWPS, GRASS-Web Processing Service http://pywps.wald.intevation.org&lt;br /&gt;
&lt;br /&gt;
* Python and OSGeo:&lt;br /&gt;
** [http://wiki.osgeo.org/wiki/OSGeo_Python_Library OSGeo Python Library]&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
* Python and GIS:&lt;br /&gt;
** [http://gispython.org/ Open Source GIS-Python Laboratory]&lt;br /&gt;
&lt;br /&gt;
* Python and Statistics:&lt;br /&gt;
** [http://rpy.sourceforge.net/ RPy] - Python interface to the R-statistics programming language&lt;br /&gt;
&lt;br /&gt;
* Bindings:&lt;br /&gt;
** SIP (C/C++ bindings generator) http://directory.fsf.org/all/Python-SIP.html&lt;br /&gt;
** [http://www.cython.org/ Cython] - C-Extensions for Python (compile where speed is needed)&lt;br /&gt;
&lt;br /&gt;
* Other external projects&lt;br /&gt;
** [http://www.scipy.org Scientific Python]&lt;br /&gt;
** [http://wiki.python.org/moin/NumericAndScientific Numeric and Scientific]&lt;br /&gt;
** [http://w3.pppl.gov/~hammett/comp/python/python.html Info on Python for Scientific Applications]&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 (see also [[WPS]])&lt;br /&gt;
&lt;br /&gt;
{{Python}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_MapServer&amp;diff=14643</id>
		<title>GRASS and MapServer</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_MapServer&amp;diff=14643"/>
		<updated>2011-12-30T20:51:26Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==GRASS maps from mapfiles==&lt;br /&gt;
&lt;br /&gt;
MapServer needs a mapfile containing the information, how to create the maps. Examples of these can be found, so here you'll find GRASS specific information.&lt;br /&gt;
&lt;br /&gt;
==Raster Maps==&lt;br /&gt;
&lt;br /&gt;
A short example of a layer definition to access a GRASS raster:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LAYER&lt;br /&gt;
  NAME &amp;quot;Example&amp;quot;&lt;br /&gt;
  TYPE RASTER&lt;br /&gt;
  STATUS ON&lt;br /&gt;
  DATA &amp;quot;/path/to/grassdb/location/mapset/cellhd/example&amp;quot;&lt;br /&gt;
  CLASS NAME &amp;quot;Example&amp;quot; # You need to have a class definition in the layer&lt;br /&gt;
  END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* The rasters are limited to values from 0 to 255, the values over this are interpreted as 255. Rescale (&amp;lt;code&amp;gt;r.rescale&amp;lt;/code&amp;gt;) your maps when necessary.&lt;br /&gt;
* You really need to have a CLASS in your layer, otherwise no data will be shown. An empty class is quite fine to show the whole map.&lt;br /&gt;
&lt;br /&gt;
==Vector Maps==&lt;br /&gt;
&lt;br /&gt;
A short example of a layer definition to access a GRASS vector:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LAYER&lt;br /&gt;
  NAME &amp;quot;Example&amp;quot;&lt;br /&gt;
  TYPE LINE&lt;br /&gt;
  STATUS ON&lt;br /&gt;
  CONNECTIONTYPE OGR&lt;br /&gt;
  CONNECTION &amp;quot;/path/to/grassdb/mapset/location/vector/example/head&amp;quot;&lt;br /&gt;
  DATA &amp;quot;1&amp;quot; # Layer number&lt;br /&gt;
  CLASS # You need to have a class definition; otherwise nothing is shown on the map&lt;br /&gt;
    NAME &amp;quot;Example&amp;quot;&lt;br /&gt;
    COLOR 155 155 0&lt;br /&gt;
  END&lt;br /&gt;
END&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
&lt;br /&gt;
* You need to have GDAL with OGR and GRASS support for this to work. Note, that in this [http://grass.itc.it/start.html example] the maps are first exported to shapefiles. This is no longer necessary, as the maps can be accessed directly with OGR.&lt;br /&gt;
* Usually GRASS layers have no names and the layer number is used in DATA. However, it is possible that they do have names. This can happen for example when importing files with v.in.dxf, as the module keeps the dxf-file layer names and stores them into the GRASS vector. The layer names, if such there are, can be found in &amp;lt;tt&amp;gt;/path/to/grassdb/mapset/location/vector/vectorname/dbln&amp;lt;/tt&amp;gt;, or with &amp;lt;code&amp;gt;ogrinfo -ro /path/to/grassdb/mapset/location/vector/vectorname/dbln&amp;lt;/code&amp;gt;. Why this is so important is because if there are layer names defined, these layers cannot be accessed through the layer number with OGR. They ''have'' to be accessed through the layer name.&lt;br /&gt;
&lt;br /&gt;
==Examples and useful links==&lt;br /&gt;
&lt;br /&gt;
* [http://grass.itc.it/start.html Example] of GRASS with MapServer.&lt;br /&gt;
* [http://mapserver.gis.umn.edu UMN Mapserver homepage]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Java&amp;diff=14642</id>
		<title>GRASS and Java</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_and_Java&amp;diff=14642"/>
		<updated>2011-12-30T20:51:16Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== vtk-grass-bridge with JAVA bindings ===&lt;br /&gt;
&lt;br /&gt;
The vtk-grass-bridge main page&lt;br /&gt;
http://code.google.com/p/vtk-grass-bridge/&lt;br /&gt;
&lt;br /&gt;
Short introduction how to compile the vtk-grass-bridge:&lt;br /&gt;
http://code.google.com/p/vtk-grass-bridge/wiki/HowToCompile&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
The Java module v_sample_rast:&lt;br /&gt;
http://code.google.com/p/vtk-grass-bridge/source/browse/trunk/Modules/Java/v_sample_rast.java&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Calling GRASS from JAVA  ===&lt;br /&gt;
&lt;br /&gt;
Define:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
       public String run(String[] cmd)  {&lt;br /&gt;
       ...&lt;br /&gt;
                       Process p1=rt.exec(cmd, env);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and use:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
       gm.run({&amp;quot;r.info&amp;quot;, &amp;quot;map=roads&amp;quot;});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&lt;br /&gt;
===== Installation =====&lt;br /&gt;
It seems that calling grass in JAVA by using &amp;lt;tt&amp;gt;java.Lang.Runtime.exec()&amp;lt;/tt&amp;gt; can be implemented easily in Linux platform (tested successfully on Ubuntu 9.10).&lt;br /&gt;
&lt;br /&gt;
First install the grass use the apt-get:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get install grass  # it will install the latest stable version&lt;br /&gt;
&lt;br /&gt;
After the installation completed you can:&lt;br /&gt;
&lt;br /&gt;
  #Test it in the terminal without JAVA (make sure that you have a GRASS database installed):&lt;br /&gt;
&lt;br /&gt;
Open a terminal and enter:&lt;br /&gt;
&lt;br /&gt;
  grass64&lt;br /&gt;
&lt;br /&gt;
The following the instruction in the screen or check [http://trac.osgeo.org/grass/wiki/HowToTestGrass6 here].&lt;br /&gt;
&lt;br /&gt;
===== Test the environment settings =====&lt;br /&gt;
&lt;br /&gt;
Test using GRASS command directly in the terminal:&lt;br /&gt;
&lt;br /&gt;
Set the environment (we assume GRASS being installed under /usr/lib/grass64):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export GISBASE=/usr/lib/grass64&lt;br /&gt;
export GISRC=/home/kk/gisrc&lt;br /&gt;
export LD_LIBRARY_PATH=$GISBASE/lib&lt;br /&gt;
export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then try some GRASS command directly, for example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
g.version&lt;br /&gt;
g.gisenv&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now call GRASS in JAVA if the above test 2 passed.&lt;br /&gt;
&lt;br /&gt;
Just use the &amp;lt;tt&amp;gt;Runtime.getRuntime.exec(String cmd,String[] env)&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
String cmd=&amp;quot;g.version&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
String[] exe = { &amp;quot;bash&amp;quot;, &amp;quot;-c&amp;quot;, cmd };&lt;br /&gt;
String[] env={&amp;quot;GISBASE=..&amp;quot;,&amp;quot;GISRC=&amp;quot;&amp;quot;.......};  // the environment variables which you set in the step 2.&lt;br /&gt;
p=Runtime.getRuntime.exec(exe,env);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Linking to other languages]]&lt;br /&gt;
[[Category:Java]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_7_Terminology&amp;diff=14641</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=14641"/>
		<updated>2011-12-30T20:51:06Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &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;
* Moritz: I think the original motivation of layers was not necessarily DB-based, but rather to make it possible to have different types of features in one file. For example, you could have a file with fields and roads together, where the boundary of a field is a road. So in layer 1 (the fields) this line would not have a category value, but in layer 2 (the roads) it would. The fact that you can (but do not have to) then link each of these layers to different tables is just part of the story.&lt;br /&gt;
: Hamish: I'm pretty sure Radim meant for fields/layers to be a DB link from the start.&lt;br /&gt;
&lt;br /&gt;
;Proposal(s)&lt;br /&gt;
&lt;br /&gt;
* '''field number'''&lt;br /&gt;
** +0 (Hamish). The only thing I see against going back to this is that it can be confusing for non-native English speakers who only are familiar with the primary definition and not the intended &amp;amp; more abstract secondary meaning.&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;
** +1 ([[User:micha|Micha]]). Despite the widespread use of &amp;quot;cat&amp;quot; and &amp;quot;category&amp;quot; in GRASS, it seems clearer to me to have a totally different term for database links. In a vector context, &amp;quot;category&amp;quot; or &amp;quot;category sets&amp;quot; reminds me of thematic maps, which is not what we want. Other GIS use field names like &amp;quot;fid&amp;quot; &amp;quot;gid&amp;quot; etc. &amp;quot;key&amp;quot; or &amp;quot;keyfield&amp;quot; makes perfect sense to me.&lt;br /&gt;
** -0 (Hamish). I've got nothing against ''key'' per se, but to someone not familar with common DB jargon like myself, there is little intuitive connection between the key to a lock and a link to a vector+DB grouping -- ''unless you are dealing with a DB which requires a username:password in which case it makes clear sense''. But many/most users will not be using Postgre/MySQL/Oracle out of the box and those who do are probably advanced enough to figure out whatever name we use pretty quickly. Note name-space collision with &amp;quot;key column&amp;quot;, which may rule this one out.&lt;br /&gt;
* '''keyfield'''&lt;br /&gt;
** -1 (Hamish). Redundant; too wordy; too &amp;quot;wtf?&amp;quot;.&lt;br /&gt;
* '''table link'''&lt;br /&gt;
** -1 (Hamish). I don't like &amp;quot;table link&amp;quot; as it is too wordy, but I do really like '''link''' on its own.&lt;br /&gt;
* '''link'''&lt;br /&gt;
** +1 (Hamish) IMHO this describes both the idea and actual mechanics of it rather well.&lt;br /&gt;
* '''category set'''&lt;br /&gt;
** +1 ([[User:Landa|ML]])&lt;br /&gt;
** +1 - in light of my above remark this seems to be the most general term (Moritz)&lt;br /&gt;
** -1 (Hamish). Too wordy; too close to &amp;quot;category&amp;quot; so would be confusing and in practice would get shortened to &amp;quot;set&amp;quot; which could possibly be confusing to MSWindows .bat users and csh dinosaurs; too &amp;quot;wtf?&amp;quot;. &amp;quot;''Set the category to what? Have you set the category or not?''&amp;quot;&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;
* [[GRASS 6 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;
* [http://trac.osgeo.org/grass/wiki/Grass7/NewFeatures#Renamedoptions GRASS 6 -&amp;gt; 7 renamed parameter options]&lt;br /&gt;
* [http://trac.osgeo.org/grass/wiki/MessageStandardization GRASS Message Standardization]&lt;br /&gt;
* [http://www.opengeospatial.org/standards OGC standards]&lt;br /&gt;
* [http://www.lib.unc.edu/reference/gis/datafinder/glossary.html GIS DataFinder]&lt;br /&gt;
* [http://www.opengeospatial.org/ogc/glossary/ OGC Glossary of Terms]&lt;br /&gt;
* [http://support.esri.com/index.cfm?fa=knowledgebase.gisDictionary.gateway ESRI GIS Dictionary]&lt;br /&gt;
&lt;br /&gt;
[[Category: Development]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_6_Tutorial&amp;diff=14640</id>
		<title>GRASS 6 Tutorial</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_6_Tutorial&amp;diff=14640"/>
		<updated>2011-12-30T20:50:53Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Free Software/Open Source GIS GRASS 6 is fully operational and stable version for production use.  This tutorial tries to&lt;br /&gt;
give you a hand to familiarize yourself with the improved functionality, especially in the vector engine and attribute management.&lt;br /&gt;
For further reading, see the references below.&lt;br /&gt;
&lt;br /&gt;
'''Disclaimer:''' In case the examples described here do not work properly, you are kindly invited to send us further examples and/or code bugfixes/enhancements. Enjoy the WIKI!&lt;br /&gt;
&lt;br /&gt;
This tutorial is intended for GRASS users who want to migrate from a previous release to the new GRASS Version. If you are a beginner, please also consider additional [http://grass.itc.it/gdp/tutorials.php books or tutorials].&lt;br /&gt;
&lt;br /&gt;
'''''NOTE: This tutorial here still awaits the merge of the [http://grass.osgeo.org/grass57/tutorial/ previous GRASS 5.7 tutorial].'''''&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
New GRASS development has made major improvements to the vector&lt;br /&gt;
architecture. The most significant change includes a new 2- and&lt;br /&gt;
3-dimensional vector library that manages vector attributes in&lt;br /&gt;
standard database management systems (DBMS). This system provides the&lt;br /&gt;
power of true relational databases for vector attribute management&lt;br /&gt;
while preserving the flexibility of traditional GRASS topological&lt;br /&gt;
tools. GRASS now also incorporates true 3-dimensional voxels in the&lt;br /&gt;
[http://grass.itc.it/gdp/nviz/index.html NVIZ] visualization environment as well as [http://grass.itc.it/grass60/index.php numerous enhancements] to&lt;br /&gt;
virtually every tool in the GRASS library.&lt;br /&gt;
&lt;br /&gt;
==Getting started in general==&lt;br /&gt;
&lt;br /&gt;
* [[GRASS_Help| Introductory Material]] for GRASS&lt;br /&gt;
* [http://www.linux.org/lessons/ Introductory Material] for Linux&lt;br /&gt;
&lt;br /&gt;
==Getting started - how to migrate to the new GRASS version==&lt;br /&gt;
&lt;br /&gt;
* [[Grass Six Tutorial Getting Started]]&lt;br /&gt;
* [[GRASS_Help#Migration_from_other_GIS_Software|Migration tips]] from other GIS softwares&lt;br /&gt;
&lt;br /&gt;
==Raster data management==&lt;br /&gt;
&lt;br /&gt;
* The raster management works as it did in previous GRASS versions.&lt;br /&gt;
: Tutorials and books written for GRASS 4 and 5 should for the most part still work.&lt;br /&gt;
* [http://grass.ibiblio.org/grass63/manuals/html63_user/rasterintro.html Raster data processing introduction] from the main help manual.&lt;br /&gt;
&lt;br /&gt;
==Vector data management==&lt;br /&gt;
&lt;br /&gt;
* [http://grass.ibiblio.org/grass63/manuals/html63_user/vectorintro.html Vector data processing introduction] from the main help manual.&lt;br /&gt;
&lt;br /&gt;
===[[Grass Six Tutorial Default Settings]]=== &lt;br /&gt;
       -  Default settings for vector geometry;&lt;br /&gt;
          for vector attributes; for db.* modules&lt;br /&gt;
&lt;br /&gt;
===[[Grass Six Tutorial Geometry Management]]=== &lt;br /&gt;
http://grass.osgeo.org/grass57/tutorial/geom_storage.html&lt;br /&gt;
        -  General notes on Geometry &lt;br /&gt;
          management; Managing the default settings; &lt;br /&gt;
          GRASS vector architecture; Geometry stored in native format;&lt;br /&gt;
          Geometry stored in SHAPE file; &lt;br /&gt;
          Import/export of vector data Geometry;&lt;br /&gt;
          Generating vector geometry from various sources&lt;br /&gt;
&lt;br /&gt;
===[[Grass Six Tutorial Attribute Management]]===&lt;br /&gt;
http://grass.osgeo.org/grass57/tutorial/attrib_storage.html&lt;br /&gt;
        - General notes on Attribute &lt;br /&gt;
          management; Managing the default settings; Examples;&lt;br /&gt;
          Database Schema&lt;br /&gt;
&lt;br /&gt;
==Usage examples==&lt;br /&gt;
&lt;br /&gt;
''There await porting from the GRASS 5.7 tutorial''&lt;br /&gt;
&lt;br /&gt;
===Basic usage examples===&lt;br /&gt;
http://grass.osgeo.org/grass57/tutorial/ex_basic.html&lt;br /&gt;
&lt;br /&gt;
===Complex usage examples===&lt;br /&gt;
http://grass.osgeo.org/grass57/tutorial/ex_complex.html&lt;br /&gt;
&lt;br /&gt;
===Vector network analysis examples===&lt;br /&gt;
&lt;br /&gt;
* New Spearfish examples: [http://grass.osgeo.org/grass63/manuals/html63_user/v.net.html v.net], [http://grass.osgeo.org/grass63/manuals/html63_user/v.net.iso.html v.net.iso], [http://grass.osgeo.org/grass63/manuals/html63_user/v.net.path.html v.net.path] etc.&lt;br /&gt;
* Old tutorial: http://grass.osgeo.org/grass57/tutorial/network.html&lt;br /&gt;
&lt;br /&gt;
===Vector overlay/clipping examples===&lt;br /&gt;
http://grass.osgeo.org/grass57/tutorial/vectoroverlay.html&lt;br /&gt;
&lt;br /&gt;
===Examples from US National Atlas===&lt;br /&gt;
http://grass.osgeo.org/grass57/tutorial/usa_demo.html&lt;br /&gt;
&lt;br /&gt;
===FAQ (Frequently Asked Questions)===&lt;br /&gt;
* [[Faq|GRASS Wiki FAQ]]&lt;br /&gt;
&lt;br /&gt;
* [[Grass Six Tutorial Faq]]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
http://grass.osgeo.org/grass57/tutorial/troubleshooting.html&lt;br /&gt;
&lt;br /&gt;
* Grass Six Tutorial Troubleshooting&lt;br /&gt;
&lt;br /&gt;
==Links of interest==&lt;br /&gt;
&lt;br /&gt;
* GRASS-GMT Examples: http://169.237.35.250/~dylan/grass_user_group/&lt;br /&gt;
&lt;br /&gt;
==Further reading==&lt;br /&gt;
&lt;br /&gt;
===GRASS and R kriging interpolation===&lt;br /&gt;
&lt;br /&gt;
====Mini How to interpolate using kriging with GRASS and R====&lt;br /&gt;
&lt;br /&gt;
[[How to interpolate point value using kriging method with R and GRASS 6]]&lt;br /&gt;
&lt;br /&gt;
==== References ====&lt;br /&gt;
* GRASS [http://grass.osgeo.org/gdp/tutorials.php books and tutorials]&lt;br /&gt;
* GRASS 6 Tutorial: http://www.gdf-hannover.de/literature&lt;br /&gt;
* Translation Portal for GRASS 6 Tutorial http://www.gdf-hannover.de/translation&lt;br /&gt;
&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Tutorial]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_6_Terminology&amp;diff=14639</id>
		<title>GRASS 6 Terminology</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_6_Terminology&amp;diff=14639"/>
		<updated>2011-12-30T20:50:39Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General ==&lt;br /&gt;
&lt;br /&gt;
* '''LOCATION''': This is the name of an available geographic location. It contains a series of MAPSETS which share a common map projection.&lt;br /&gt;
: Typically its name will be based on the larger job/project you are working on, a reflection of the map projection which it will use, or a combination of both of these. For example: &amp;quot;''The_Rockies''&amp;quot;, &amp;quot;''UTM18_nad27''&amp;quot;, &amp;quot;''LL_wgs84''&amp;quot;, &amp;quot;''Spearfish60''&amp;quot;, &amp;quot;''simple_xy''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''MAPSET''':   Every GRASS session runs under the name of a MAPSET. A MAPSET may       be a geographical subset or as large as the parent LOCATION.           Technically they are subdirectories under any location. In a          networked environment with several users working within the same          location, mapsets play a special role. Users may only select (and        thus modify) a mapset that they own (i.e., have created). However,          data in all mapsets for a given location can be read by anyone          (unless prevented by UNIX file permissions). The &amp;quot;PERMANENT&amp;quot;          mapset usually contains the read-only base maps like the elevation          model, while the other locations are readable and writable by          their owners. The &amp;quot;PERMANENT&amp;quot; mapset also contains some          information about the location itself that is not found in the  mapsets (projection info etc.), thus it must exist in every          location. &lt;br /&gt;
: The MAPSETS might be named for their owner (on a networked multi-user system) (''e.g. user1''), a specific area or study site within the greater region (''e.g. Wade_County''), all maps concerning a specific field study (''e.g. Jan2008''), or whatever is useful to organize your data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DATABASE''': This is the unix directory containing the geographic LOCATIONS (also called GIS'''D'''BASE). For a desktop GIS user typically this will be a subdirectory called &amp;lt;tt&amp;gt;grassdata&amp;lt;/tt&amp;gt; in your home directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Loc_struct.png|center|thumb|600px|Structure of the GRASS data hierarchy]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''REGION''': The REGION may be the entire area or subset of the chosen        LOCATION. It is defined by northern, southern, eastern, and western bounds, as well as the raster grid resolution. It is controlled by the {{cmd|g.region}} module and is of primary importance for raster operations. Its most obvious effect is of setting the map zoom, but it is much more than that.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''WINDOW''': see REGION&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[https://trac.osgeo.org/grass/browser/grass/branches/releasebranch_5_5/html/spearfish_directorytree.html  Sample GRASS 5.0 database directory tree structure (Spearfish data set)]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Raster maps ==&lt;br /&gt;
&lt;br /&gt;
* '''CELL DATA TYPE''': a raster map from INTEGER type (whole numbers only)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''FCELL DATA TYPE''': a raster map from FLOAT type (4 bytes, 6 digits precision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DCELL DATA TYPE''': a raster map from DOUBLE type (8 bytes, 15 digits precision)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''NULL''': represents &amp;quot;no data&amp;quot; in raster maps, to be distinguished from 0 (zero)      data value&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''INTEGER MAP''': see CELL DATA TYPE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''FLOAT MAP''': see FCELL DATA TYPE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DOUBLE MAP''': see DCELL DATA TYPE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Raster 3D maps ==&lt;br /&gt;
&lt;br /&gt;
* '''VOXEL''': A 3-dimensional grid cell. (An individual cube in a greater 3D region block)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vector maps ==&lt;br /&gt;
&lt;br /&gt;
* '''CATEGORY NUMBER''': A numerical value for a map feature (e.g. road number). The CATEGORY NUMBER is related to the attribute database. The internal vector feature ID is different from this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''LAYER''': A single vector map can be connected to multiple database tables. This number determines which table to use.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DRIVER''': The database backend. e.g. dbf, sqlite, pg, mysql&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''TABLE''': The attribute table(s) associated with a map.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''DATABASE''': The path or connection to the backend database storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''KEY COLUMN''': The attribute column that relates the spatial data to the attribute database data. Typically the &amp;lt;tt&amp;gt;cat&amp;lt;/tt&amp;gt; column is used as the key column.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''SQL''': The Structured Query Language. A standardized method of accessing and manipulating databases. Almost all modern databases speak some dialect of this common language.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Map Projections ==&lt;br /&gt;
&lt;br /&gt;
''See the [[GIS Concepts]] wiki page for details.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* '''PROJECTION''':&lt;br /&gt;
* '''DATUM''':&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
see the [[GRASS 7 Terminology]] page for more discussion.&lt;br /&gt;
&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Global_datasets&amp;diff=14638</id>
		<title>Global datasets</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Global_datasets&amp;diff=14638"/>
		<updated>2011-12-30T20:50:28Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &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://gfoss.blogspot.com/2009/08/aster-gdem-30m-quality-assessment.html 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:''' [http://grass.osgeo.org/wiki/ASTER_topography ASTER topography].&lt;br /&gt;
* To order and download data: http://digitalelevation.blogspot.com/2009/07/aster-gdem-download-tutorial.html&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/routine/aster_global_digital_elevation_model/v2/astgtm&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://gfoss.blogspot.com/2009/08/aster-gdem-30m-quality-assessment.html ASTER GDEM 30m quality assessment]''&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;
=== 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 region'''. GRASS raster data is cell registered (see&lt;br /&gt;
the [[GRASS raster semantics]] page)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The ''grid registered'' version must be loaded into a simple XY location using the parameters found in the .hdr file, and needs to have the 90deg N,S rows cropped away:&lt;br /&gt;
&lt;br /&gt;
 # grid registered version only: create a new simple XY location and mapset&lt;br /&gt;
 &lt;br /&gt;
 # Import grid registered binary float&lt;br /&gt;
 r.in.bin -f in=etopo1_bed_g.flt out=etopo1_bed_g \&lt;br /&gt;
    n=90.008333333335 s=-90.008333333335 e=180.00833333334 \&lt;br /&gt;
    w=-180.00833333334 rows=10801 cols=21601 anull=-9999&lt;br /&gt;
 r.colors out=etopo1_bed_g color=etopo2&lt;br /&gt;
 &lt;br /&gt;
 # reduce region by 1 cell&lt;br /&gt;
 g.region rast=etopo1_bed_g&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&amp;quot;&lt;br /&gt;
 g.remove etopo1_bed_g&lt;br /&gt;
 &lt;br /&gt;
 # change the location to lat/lon by restarting GRASS&lt;br /&gt;
 #  in the PERMANENT mapset and running {{cmd|g.setproj}}&lt;br /&gt;
 #  or move the entire mapset into a lat/lon location&lt;br /&gt;
 #  and manually edit the $MAPSET/cellhd/ files (dirty!)&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 [http://eros.usgs.gov/#/Find_Data/Products_and_Data_Available/GMTED2010 download] - Import with {{cmd|r.in.gdal}}.&lt;br /&gt;
&lt;br /&gt;
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.shaded.relief gmted2010_30N000E_20101117 units=meters&lt;br /&gt;
  d.mon x0&lt;br /&gt;
  d.rast gmted2010_30N000E_20101117.shade&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;
=== 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;
=== 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)&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;
{{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;
&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;
&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]&lt;br /&gt;
* see [[HOWTO import SRTM elevation data]]&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 second which is roughly one kilometer.&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 &amp;lt;code&amp;gt;r.in.srtm&amp;lt;/code&amp;gt; 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.Bathmetry.srtm output=e020n40_topex bytes=2 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;
&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;
== 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;
=== 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;
=== 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;
=== 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;
=== 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;
=== 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;
=== 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;
* {{cmd|i.landsat.rgb}} - 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;
=== MODIS imagery ===&lt;br /&gt;
&lt;br /&gt;
* see the [[MODIS]] wiki page&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;
== Climatic data ==&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.&lt;br /&gt;
* Load into a Lat/Lon WGS84 location (EPSG:4326)&lt;br /&gt;
* Import with {{cmd|r.in.bin}} or {{cmd|r.in.gdal}}&lt;br /&gt;
* {{cmd|r.in.gdal}} will read .BIL format, see the {{cmd|r.in.srtm}} shell script for hints&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
=== OGC WCS - Albedo example ===&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;
&lt;br /&gt;
== Population maps ==&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;
=== 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;
* Download original data from http://www.soest.hawaii.edu/wessel/gshhs/gshhs.html&lt;br /&gt;
&lt;br /&gt;
* Import with the {{AddonCmd|v.in.gshhs}} GRASS Add-on module.&lt;br /&gt;
&lt;br /&gt;
* Download data from [http://www.ngdc.noaa.gov/mgg/shorelines/shorelines.html NOAA's shoreline extractor] site.&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;
* '''Shapefiles''' for the 1.6 version are available from ftp://ftp.ihg.uni-duisburg.de/GIS/GISData/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;
=== 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;
== 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;
* 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;
&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://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;
=== European datasets ===&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/wiki/European_datasets European datasets]&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;
&lt;br /&gt;
[[Category: Geodata]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GIS_Concepts&amp;diff=14637</id>
		<title>GIS Concepts</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GIS_Concepts&amp;diff=14637"/>
		<updated>2011-12-30T20:50:15Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Geodesy and Cartography ==&lt;br /&gt;
=== Background material ===&lt;br /&gt;
&lt;br /&gt;
* [http://oceanservice.noaa.gov/education/kits/geodesy/welcome.html An introduction to Geodesy] from NOAA&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Geodesy Wikipedia's Geodesy entry]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/GIS Wikipedia's GIS entry]&lt;br /&gt;
* [http://www.nga.mil/portal/site/maritime/ Bowditch's American Practical Navigator] - (especially chapter 2)&lt;br /&gt;
* [http://earth-info.nima.mil/GandG/publications/ NGA Geodesy and Geophysics publications] &lt;br /&gt;
* [http://www.ordnancesurvey.co.uk/oswebsite/gps/information/coordinatesystemsinfo/guidecontents/index.html UK Ordnance Survey primer on coordinate system concepts] ([http://www.ordnancesurvey.co.uk/gps/docs/A_Guide_to_Coordinate_Systems_in_Great_Britain.pdf PDF])&lt;br /&gt;
* Clifford J Mugnier's [http://www.asprs.org/resources/grids/ Grids and Datums column from PE&amp;amp;RS] containing detailed descriptions of many national projections &amp;amp; datums&lt;br /&gt;
&lt;br /&gt;
=== Map projections ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.mapref.org/ MapRef] - The Collection of Map Projections and Reference Systems for Europe&lt;br /&gt;
* [http://www.remotesensing.org/geotiff/proj_list/ Projections Transform Lists] (PROJ4) &lt;br /&gt;
* [http://www.dmap.co.uk/utmworld.htm UTM Zones]&lt;br /&gt;
&lt;br /&gt;
EPSG:&lt;br /&gt;
* [http://www.epsg.org EPSG projection codes]&lt;br /&gt;
* [http://www.epsg-registry.org/ EPSG database search]&lt;br /&gt;
* [http://spatialreference.org/ Spatialreference community portal]&lt;br /&gt;
&lt;br /&gt;
Projection galleries:&lt;br /&gt;
* [http://www.progonos.com/furuti/MapProj/CartIndex/cartIndex.html Map projection concepts] by Carlos Furuti&lt;br /&gt;
* [http://www.csiss.org/map-projections/index.html Map projection gallery] by Paul Anderson ([http://www.galleryofmapprojections.com/ old link])&lt;br /&gt;
&amp;lt;!-- retained the old link as new one seems to lead to a dead server --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Map datums ===&lt;br /&gt;
&lt;br /&gt;
An extra calculation is needed when re-projecting maps and data between&lt;br /&gt;
two different co-ordinate systems (in addition to the re-projection) if&lt;br /&gt;
the two co-ordinate systems are based on different models of the&lt;br /&gt;
curvature of the earth. E.g. OSGB36 uses the Airy ellipsoid and WGS84 uses the WGS84 ellipsoid, which have slightly different sizes and shapes. The error is not large - generally a few hundred metres at most on the ground.&lt;br /&gt;
The datum transformation parameters describe this adjustment&lt;br /&gt;
mathematically.&lt;br /&gt;
&lt;br /&gt;
As the transformation between any two datums is approximate and varies by location, different sets of parameters are often offered to give improved accuracy in different regions of a country. In general there is no one &amp;quot;correct&amp;quot; set of transformation parameters - indeed the accuracy changes over time due to tectonic movements in the Earth.&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/mailarchive/forum.php?thread_name=1190060064.27461.57.camel%40blackpad&amp;amp;forum_name=jump-pilot-devel A brief history of map datums] for the layman&lt;br /&gt;
* [http://www.colorado.edu/geography/gcraft/notes/datum/datum.html An introduction to geodetic datums] by Peter Dana&lt;br /&gt;
* [http://home.online.no/~sigurdhu/WGS84_Eng.html How WGS 84 defines the Earth]&lt;br /&gt;
* A discussion of [http://www.linz.govt.nz/geodetic/conversion-coordinates/geodetic-datum-conversion/nzgd1949-nzgd2000/index.aspx 3-term, 7-term, and NTv2 grid datum transformations] by Land Information New Zealand&lt;br /&gt;
: (besides the web page have a look at the PDF fact sheet and guide linked therein)&lt;br /&gt;
&amp;lt;!-- old (better?&amp;gt;) link: http://web.archive.org/web/20070828042606/http://www.linz.govt.nz/core/surveysystem/geodeticinfo/geodeticdatums/nzgd49tonzgd2000/index.html --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How GRASS deals with geodetics==&lt;br /&gt;
&lt;br /&gt;
As far as GRASS is concerned, an ellipsoid and a spheroid are the same thing, and ellipsoid is the prefered name.&lt;br /&gt;
&lt;br /&gt;
As far as GRASS is concerned, a datum is made up of an ellipsoid and an origin.&lt;br /&gt;
Setting a datum is optional, but highly recommended.&lt;br /&gt;
&lt;br /&gt;
GRASS uses a modified version of the [http://proj.maptools.org PROJ.4] library.&lt;br /&gt;
&lt;br /&gt;
=== Modules controling a location's map projection ===&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/g.proj.html g.proj] help page&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/g.setproj.html g.setproj] help page&lt;br /&gt;
&lt;br /&gt;
=== Modules for reprojecting GIS maps and data ===&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/r.proj.html r.proj] for reprojecting raster maps&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/v.proj.html v.proj] for reprojecting vector maps&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/m.proj.html m.proj] for reprojecting a list of coordinate pairs&lt;br /&gt;
&lt;br /&gt;
=== Modules for georectifying images ===&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/r.region.html r.region] for resetting a raster map's bounds information&lt;br /&gt;
* gis.m GIS manager GeoReferencing tool (File menu)&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/i.points.html i.points] and  [http://grass.osgeo.org/grass64/manuals/html64_user/i.vpoints.html i.vpoints] for setting GCPs&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/i.rectify.html i.rectify] for georectifying imagery&lt;br /&gt;
* [http://www.gdal.org GDALwarp] (use with gdal_translate, see the i.warp script in the wiki [[GRASS_AddOns#Imagery_add-ons|AddOns]] page)&lt;br /&gt;
&lt;br /&gt;
;[[Georeferencing]]&lt;br /&gt;
&lt;br /&gt;
==GIS Data types==&lt;br /&gt;
&lt;br /&gt;
===Raster Data===&lt;br /&gt;
&lt;br /&gt;
Data which occurs in a regularly spaced grid. e.g. a satellite image or digital terrain map.&amp;lt;BR&amp;gt;&lt;br /&gt;
Region settings determine the spatial extent and resolution of the grid.&lt;br /&gt;
&lt;br /&gt;
;[http://grass.osgeo.org/grass64/manuals/html64_user/rasterintro.html Raster Intro]&lt;br /&gt;
&lt;br /&gt;
[[GRASS Raster Mask]]&lt;br /&gt;
&lt;br /&gt;
[[GRASS raster semantics]]&lt;br /&gt;
&lt;br /&gt;
===3D Raster Data (Voxel)===&lt;br /&gt;
&lt;br /&gt;
A stack of 2D raster maps.&lt;br /&gt;
&lt;br /&gt;
;[http://grass.osgeo.org/grass64/manuals/html64_user/raster3dintro.html Raster 3D Intro]&lt;br /&gt;
&lt;br /&gt;
===Vector Data===&lt;br /&gt;
&lt;br /&gt;
Data which occurs as a series of coordinates. e.g. a GPS position or coastline map. May be a point, line, area, etc in either 2D or 3D space. Generally independent of region settings.&lt;br /&gt;
&lt;br /&gt;
;[http://grass.osgeo.org/grass64/manuals/html64_user/vectorintro.html Vector Intro] &lt;br /&gt;
[[Vectordata]]&lt;br /&gt;
&lt;br /&gt;
=== Imagery Data ===&lt;br /&gt;
Pixelated photographic or satellite images, often imported from a &lt;br /&gt;
[http://en.wikipedia.org/wiki/GeoTIFF GeoTIFF] or PNG image file.&lt;br /&gt;
&lt;br /&gt;
As far as the GIS is concerned this is just another raster map, but there are several modules specially tailored for rectification and processing common imagery types. e.g. ortho-photos or multi-channel [[LANDSAT]] data.&lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/grass64/manuals/html64_user/imageryintro.html GRASS Imagery module introduction]&lt;br /&gt;
&lt;br /&gt;
* The GRASS [[Image processing]] wiki page&lt;br /&gt;
&lt;br /&gt;
===Site Data===&lt;br /&gt;
Old versions of GRASS (5 and earlier) treated point data separate to line and polygon data. GRASS 6 classes all vector data features the same. Convert old sites file data into GRASS 6 vector format with the GRASS 6 [http://grass.osgeo.org/grass64/manuals/html64_user/v.in.sites.html v.in.sites] or &lt;br /&gt;
[http://grass.osgeo.org/grass64/manuals/html64_user/v.in.sites.all.html v.in.sites.all] modules.&lt;br /&gt;
&lt;br /&gt;
==Conversions between data types==&lt;br /&gt;
&lt;br /&gt;
The following table is intended to catalog transformations from one type of data to another:&amp;lt;BR&amp;gt;&lt;br /&gt;
''[table is currently incomplete!]''&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
| From / To&lt;br /&gt;
![http://grass.osgeo.org/grass64/manuals/html64_user/rasterintro.html Raster]&lt;br /&gt;
![http://grass.osgeo.org/grass64/manuals/html64_user/raster3dintro.html 3D Raster] &lt;br /&gt;
![http://grass.osgeo.org/grass64/manuals/html64_user/vectorintro.html Vector]&lt;br /&gt;
|-&lt;br /&gt;
! Raster&lt;br /&gt;
| r.mapcalc&lt;br /&gt;
| r.to.rast3&lt;br /&gt;
| r.to.vect, v.sample, r.volume&lt;br /&gt;
|-&lt;br /&gt;
! 3D Raster&lt;br /&gt;
| r3.to.rast, r3.cross.rast&lt;br /&gt;
| r3.mapcalc&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
! Vector&lt;br /&gt;
| v.to.rast, v.surf.rst, v.surf.idw&lt;br /&gt;
| v.vol.rst, v.vol.idw, v.to.rast3&lt;br /&gt;
| v.clean	&lt;br /&gt;
|-&lt;br /&gt;
! Data&lt;br /&gt;
| r.in.*&lt;br /&gt;
| r3.in.*&lt;br /&gt;
| v.in.*&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==How a GRASS project is organized==&lt;br /&gt;
&lt;br /&gt;
GRASS data is stored in a three level structure, the database, location and mapset. These can be found in a series of nested directories on the user's computer. All three must exist and are set at GRASS startup time.&lt;br /&gt;
&lt;br /&gt;
===The Database===&lt;br /&gt;
&lt;br /&gt;
The directory in which all GIS data is to be stored.&lt;br /&gt;
&lt;br /&gt;
e.g. &amp;lt;tt&amp;gt;~/grassdata/&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===The Location===&lt;br /&gt;
&lt;br /&gt;
A ''location'' is a GRASS project consisting of an area, projection definition (or unprojected), a grouping of mapsets, all with the same projection settings. A location is a subdirectory of the GRASS ''database''.&lt;br /&gt;
&lt;br /&gt;
e.g. world_lat_lon, utm_zone_59, or west_coast&lt;br /&gt;
&lt;br /&gt;
A ''location'' contains one or many ''mapsets''.&lt;br /&gt;
&lt;br /&gt;
===The Mapset===&lt;br /&gt;
&lt;br /&gt;
A ''mapset'' contains map(s), it is a subdirectory of a ''location''.&lt;br /&gt;
Conceptually, if several mapsets are used in a location, they may be assigned to different users (each has one or several own mapsets to work in and cannot modify thos of other users), and/or it they are used to organize a project (''location'') by subareas or subprojects.&lt;br /&gt;
There are no specific organizational limitations.&lt;br /&gt;
&lt;br /&gt;
There is always a PERMANENT mapset which is readable from all other mapsets within the same location. Read access to maps in other mapsets is managed with the 'g.mapsets' command or by adding the &amp;quot;@&amp;quot; symbol and mapset name (e.g. &amp;lt;tt&amp;gt;map@othermapset&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Raster GIS Analysis==&lt;br /&gt;
&lt;br /&gt;
===Simple Raster Math===&lt;br /&gt;
&lt;br /&gt;
Sometimes when analyzing the relationship between two or more raster data sets, a relatively simple mathematical approach is best. One example using the {{cmd|r.mapcalc}} tool would be to look at changes between two raster data sets. By subtracting the values in these two data sets you can assume that resulting cells with a positive value have a positive change and those with a negative value have negative change.  If the cell values have a zero value then there would be no change.&lt;br /&gt;
&lt;br /&gt;
GRASS comes bundled with the {{cmd|r.mapcalc}} command line tool as well as a GUI interface for the tool accessible using the {{cmd|r.mapcalculator}} command.  This GUI allows the user to easily assign raster maps to the variables used in the formulas and easily create mathematical strings that will result in a new raster data set containing the results.&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Geophysics&amp;diff=14636</id>
		<title>Geophysics</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Geophysics&amp;diff=14636"/>
		<updated>2011-12-30T20:49:53Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Given GRASS great raster function, it is suprising that so few (none?) geophysics applications surfaced so far.&lt;br /&gt;
&lt;br /&gt;
In August, 2008, talks were initiated regarding the creation of modules to address potential field methods.&lt;br /&gt;
&lt;br /&gt;
So far, the iniative has produced some wikipages and tentative &amp;quot;software specs&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The initial focus is on '''[[Gravity]]''' and '''[[Geomagnetism]]'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Potential Field Methods ==&lt;br /&gt;
&lt;br /&gt;
The USGS has two reports on this subject. [http://pubs.usgs.gov/of/1997/ofr-97-0725/ Open-File Report 97-725], '''Potential-Field Geophysical Software for the PC, version 2.2''' and [http://pubs.usgs.gov/of/1995/ofr-95-0077/of-95-77.html Open-File Report 95-77], '''A bibliography of some geophysical computer programs, databases, and maps from the U.S. Geological Survey, 1971-1994'''. Most of the software listed here is provided with source.&lt;br /&gt;
&lt;br /&gt;
The Colorado School of Mines also has [http://geophysics.mines.edu/cgem/workshops_software/CGEM_App.html software libraries].&lt;br /&gt;
&lt;br /&gt;
== Reflection Seismic ==&lt;br /&gt;
&lt;br /&gt;
GRASS has already support for 3D rasters. Reading 2D/3D seismic data might be achieved via integration with [http://www.cwp.mines.edu/cwpcodes/ CWP/SU], which is licensed under a BSD-style open source [http://www.cwp.mines.edu/cwpcodes/LEGAL_STATEMENT license].&lt;br /&gt;
&lt;br /&gt;
== P190 input ==&lt;br /&gt;
&lt;br /&gt;
Have a look in the GRASS addons for the {{AddonCmd|v.in.p190}} script for loading ship tracks as vector lines.&lt;br /&gt;
: ''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.''&lt;br /&gt;
&lt;br /&gt;
== SEG-Y input ==&lt;br /&gt;
&lt;br /&gt;
Have a look in the GRASS addons for the {{AddonCmd|v.in.mbsys_fnv}} script for loading ship tracks as vector lines.&lt;br /&gt;
: ''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.''&lt;br /&gt;
&lt;br /&gt;
The MB-Systems software (GPL) has a `segytogrd` program which creates a GMT grid which can be imported into GRASS with the {{cmd|r.in.gdal}} module. (theoretically)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Geomagnetism&amp;diff=14635</id>
		<title>Geomagnetism</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Geomagnetism&amp;diff=14635"/>
		<updated>2011-12-30T20:49:43Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Magnetism is an ever present phenomenon in our daily lives. More so in some geo/cartographic contexts. Providing a way to add magnetic information to our GRASS projects might be helpful.&lt;br /&gt;
&lt;br /&gt;
Here is a gathering of ideas, in order to produce geomagnetic modules or scripts to GRASS&lt;br /&gt;
&lt;br /&gt;
== Interesting Links ==&lt;br /&gt;
&lt;br /&gt;
The California Soil Resource Lab has some quite interesting information for production of a &lt;br /&gt;
[http://casoilresource.lawr.ucdavis.edu/drupal/node/560 Detailed Magnetic Declination] map.&lt;br /&gt;
&lt;br /&gt;
As Dylan points out in his post, Stefan Maus has put together an excellent website on the [http://geomag.org/info/declination.html Historical main field change and declination]. (This sentence shamelessly pasted from Dylan's blog)&lt;br /&gt;
&lt;br /&gt;
They also cite the NOAA website, which has [http://www.ngdc.noaa.gov/IAGA/vmod/igrf.html IGRF] and [http://www.ngdc.noaa.gov/geomag/WMM/soft.shtml WMM] computer models available for download (registration not necessary). They also have several [http://www.ngdc.noaa.gov/geomag/geom_util/utilities_home.shtml utility programs].&lt;br /&gt;
&lt;br /&gt;
The USGS has a [http://pubs.usgs.gov/of/1997/ofr-97-0725/ collection of software], however it dates of 1997. This Open-File Report (97-725) is named '''Potential-Field Geophysical Software for the PC, version 2.2''' and supersedes [http://pubs.usgs.gov/of/1995/ofr-95-0077/of-95-77.html Open-File Report 95-77], from 1995, '''A bibliography of some geophysical computer programs, databases, and maps from the U.S. Geological Survey, 1971-1994'''.&lt;br /&gt;
&lt;br /&gt;
The [http://www.on.br  Brazilian National Observatory] (ON) also had its own geomagnetic model, called ELEMAG, which agrees with the IGRF, but is calibrated to work only in Brazil. I ([[User:Pmarc|Pmarc]]) however, have not been able to find it on their website, on the other hand, [http://www.google.com/search?q=Declinação+elemag+on Google] was able to find some versions online.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
* Rotating a [[IconSymbols|north arrow symbol]] by a given amount can be accomplished using the '''d.graph''' module or in a '''[[Ps.map_scripts#Creating_a_fancy_North_Arrow|ps.map]]''' plot using a specified rotation angle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The d.rast.arrow module may be of use for [http://grass.osgeo.org/grass62/screenshots/images/d_rast_arrow_magnitude.png visualizing] gravity fields.&lt;br /&gt;
&lt;br /&gt;
== Wishlist ==&lt;br /&gt;
&lt;br /&gt;
* Module capable of computing the magnetic field (all 7 components) over a location, for a given date or range of dates. It seems to me ([[User:Pmarc|Pmarc]]) that the most appropriate output would be a vector map. The starting point could be the IGRF model provided by NOAA (link above)&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Geology&amp;diff=14634</id>
		<title>Geology</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Geology&amp;diff=14634"/>
		<updated>2011-12-30T20:49:33Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Modules of interest ==&lt;br /&gt;
&lt;br /&gt;
* {{cmd|ps.map}} for cartography&lt;br /&gt;
* {{cmd|v.vol.rst}} for 3D raster voxel interpolation&lt;br /&gt;
* {{cmd|raster3dintro}}: Introduction to 3D raster processing&lt;br /&gt;
: see also r3.* commands&lt;br /&gt;
* {{cmd|nviz}}: Native 3D visualization and animation suite (interactive cutting planes through stacked 3D grid surfaces, etc.)&lt;br /&gt;
* {{cmd|v.out.vtk}}, {{cmd|r.out.vtk}}, and {{cmd|r3.out.vtk}}: Export to VTK format for ParaView or other 3D visualization software &lt;br /&gt;
&lt;br /&gt;
* [http://grass.osgeo.org/wiki/GRASS_AddOns#d.frontline d.frontline] 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;
== Cartography ==&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
* See the Cartography {{website|screenshots|screenshots}} page&lt;br /&gt;
&lt;br /&gt;
=== Strike-and-dip symbols ===&lt;br /&gt;
&lt;br /&gt;
See the [[IconSymbols]] wiki page&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;geology/strike_line,box,triangle,circle&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: [[Image:Symb-geo.png|350px]]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;geology/strike_half-bowtie&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: [[Image:Symb-geo_bowtie.png|100px]]&lt;br /&gt;
: (to get a full bowtie: overlay two, rotate one of them by 180 degrees)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;geology/half_arrow&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: [[Image:Half_arrow_x2.png]]&lt;br /&gt;
: (two displayed, one of which has been rotated 180 degrees)&lt;br /&gt;
&lt;br /&gt;
* {{cmd|ps.map}} can take rotation angle from an attribute column for each site with the '''''vpoints''' rotatecolumn'' instruction; for {{cmd|d.graph}} you can prepare a command file with a custom rotation for each point using {{cmd|v.out.ascii}}, {{cmd|v.db.select}}, or the ''v.out.ascii.db'' addon script. Note that GRASS uses the Cartesian convention for rotation angles, i.e. CCW from east. Convert from compass angles (CW from north) with:&lt;br /&gt;
     theta = 90 - degrees_true&lt;br /&gt;
: You could possibly write a small {{cmd|db.execute}} script to populate a new column with this conversion by way of a SQL query. (and post it here :)&lt;br /&gt;
&lt;br /&gt;
* to make open symbols set the fill color to 'none'.&lt;br /&gt;
* to make a double sided dip symbol draw the same symbol twice with 180 rotation the second time.&lt;br /&gt;
&lt;br /&gt;
=== Fill patterns ===&lt;br /&gt;
&lt;br /&gt;
* [[AreaFillPatterns]]: {{cmd|ps.map}} allows custom fill patterns based on simple PostScript-like rules files. A number of patterns are provided. It is reasonably simple to create new ones- just copy an existing one to a new file and edit the drawing coordinates in a text editor. (new contributions welcome)&lt;br /&gt;
&lt;br /&gt;
=== Dashed lines ===&lt;br /&gt;
 &lt;br /&gt;
In {{cmd|ps.map}} use the '''''vlines''' style'' instruction to set the line style. The ''linecap'' instruction can further refine the draw mode.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Create_concave_hull&amp;diff=14633</id>
		<title>Create concave hull</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Create_concave_hull&amp;diff=14633"/>
		<updated>2011-12-30T20:49:13Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Q: I have a set of points and would like to compute the concave hull of it.&lt;br /&gt;
&lt;br /&gt;
A: You can approximate a concave hull through the following steps:&lt;br /&gt;
&lt;br /&gt;
* create map of lines connecting all points (I find it easier to do this with v.net.visibility, but v.distance works also)&lt;br /&gt;
* add a table with a column 'cat' and a column 'length double precision' and categories to these lines (v.db.addtable, v.category)&lt;br /&gt;
* upload the length of each line to the table (v.to.db)&lt;br /&gt;
* visually identify a length threshold above which the lines should not be used&lt;br /&gt;
* extract only those lines below that threshold (v.extract where=&amp;quot;length&amp;lt;MAXLENGTH)&lt;br /&gt;
* convert the lines to boundaries (v.type)&lt;br /&gt;
* break overlapping lines (v.clean tool=break, there shouldn't be any duplicate lines, but just in case you can also use rmdupl)&lt;br /&gt;
* add centroids with the same category value to the boundaries (v.centroids step=0)&lt;br /&gt;
* dissolve the areas into one (v.dissolve)&lt;br /&gt;
&lt;br /&gt;
The image to shows the results:&lt;br /&gt;
&lt;br /&gt;
[[Image:Concave_hull.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Compile_and_Install&amp;diff=14632</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=14632"/>
		<updated>2011-12-30T20:49:04Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{MoveToTrac}}&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 [http://grass.osgeo.org/download/ here], otherwise read on...&lt;br /&gt;
&lt;br /&gt;
== How to do compilation and installation of GRASS 6? ==&lt;br /&gt;
&lt;br /&gt;
Here we explain the procedure to compile GRASS from SVN, but it also applies to official GRASS 6 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 [http://grass.osgeo.org/grass64/source/INSTALL INSTALL] file in the source code.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
GRASS needs at least two extra libraries: PROJ and GDAL/OGR&lt;br /&gt;
&lt;br /&gt;
''Note: if you want to have DBMS support in GDAL (subsequently in GRASS) you have to perform the &amp;quot;Optional&amp;quot; steps below as well.''&lt;br /&gt;
&lt;br /&gt;
* [http://trac.osgeo.org/proj/ PROJ4] for management of projections (with proj-datumgrid-1.3.zip support)&lt;br /&gt;
* Optional: [http://trac.osgeo.org/geos/ GEOS]&lt;br /&gt;
* Optional: [http://www.postgresql.org PostgreSQL], [http://www.mysql.org mySQL], [http://www.unixodbc.org unixODBC], [http://www.sqlite.org SQLite] (SQLite is needed for [[QGIS]])&lt;br /&gt;
* [http://www.gdal.org GDAL/OGR] for reading and writing various GIS data formats (interoperability)&lt;br /&gt;
&lt;br /&gt;
You have to install these two libraries '''first'''.&lt;br /&gt;
&lt;br /&gt;
It is easiest to obtain a prepackaged version of these libraries (e.g., .rpm; .deb) for your particular operating system and run the corresponding package installation (e.g., rpm -Uhv packagename.rpm; apt-get) in a terminal window. Take care to also install the development packages of these libraries (...-devel packages). If there is no prepackage version, then you will have to download the source code (see links above, source code packages usually ends in .tar.gz or .zip) and compile it (you must have a C compiler installed as part of your operating system). The Web sites show the steps to compile the libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Other libraries needed to run GRASS are listed on the {{website|grass64/source/REQUIREMENTS.html|requirements page}}.&lt;br /&gt;
&lt;br /&gt;
To compile, you will also need the respective &amp;quot;-devel&amp;quot; packages.&lt;br /&gt;
&lt;br /&gt;
Then [http://grass.osgeo.org/download/index.php#g64x download GRASS] of course.&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 grass6'&lt;br /&gt;
      su -c 'chown yourlogin:yourgroup grass6'&lt;br /&gt;
&lt;br /&gt;
Otherwise if you have permissions just continue as a normal user:&lt;br /&gt;
      cd /usr/local/src/&lt;br /&gt;
      svn checkout ...&lt;br /&gt;
&lt;br /&gt;
* do a code checkout from the SVN source code repository&lt;br /&gt;
: checkout the latest GRASS 6.x from SVN (see: {{twiki|DownloadSource}})&lt;br /&gt;
&lt;br /&gt;
* in the grass6 directory, you will find the precious INSTALL file, open it with your favourite pager/editor and read it carefully!&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-postgres-libs=/usr/include/pgsql/libpq \&lt;br /&gt;
          --with-postgres-includes=/usr/include/pgsql \&lt;br /&gt;
          --with-freetype \&lt;br /&gt;
          --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
          --with-motif \&lt;br /&gt;
          --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:  i686-pc-linux-gnu&lt;br /&gt;
 &lt;br /&gt;
 Source directory:            /usr/src/grass6&lt;br /&gt;
 Build directory:             /usr/src/grass6&lt;br /&gt;
 Installation directory:      /usr/local/grass-6.3.svn&lt;br /&gt;
 Startup script in directory: ${exec_prefix}/bin&lt;br /&gt;
 C compiler:                  gcc -g -O2 &lt;br /&gt;
 C++ compiler:                c++ -g -O2&lt;br /&gt;
 FORTRAN compiler:            &lt;br /&gt;
 Building shared libraries:   yes&lt;br /&gt;
 64bit support:               no&lt;br /&gt;
 &lt;br /&gt;
  NVIZ:                       yes&lt;br /&gt;
 &lt;br /&gt;
  BLAS support:               no&lt;br /&gt;
  C++ support:                yes&lt;br /&gt;
  DWG support:                no&lt;br /&gt;
  FFMPEG support:             no&lt;br /&gt;
  FFTW support:               yes&lt;br /&gt;
  FreeType support:           yes&lt;br /&gt;
  GDAL support:               yes&lt;br /&gt;
  GLw support:                no&lt;br /&gt;
  JPEG support:               yes&lt;br /&gt;
  LAPACK support:             no&lt;br /&gt;
  Large File Support (LFS):   no&lt;br /&gt;
  Motif support:              no&lt;br /&gt;
  MySQL support:              no&lt;br /&gt;
  NLS support:                no&lt;br /&gt;
  ODBC support:               no&lt;br /&gt;
  OGR support:                yes&lt;br /&gt;
  OpenGL(R) support:          yes&lt;br /&gt;
  PNG support:                yes&lt;br /&gt;
  PostgreSQL support:         yes&lt;br /&gt;
  Readline support:           no&lt;br /&gt;
  SQLite support:             no&lt;br /&gt;
  Tcl/Tk support:             yes&lt;br /&gt;
  TIFF support:               yes&lt;br /&gt;
  X11 support:                yes&lt;br /&gt;
  &lt;br /&gt;
* Let's compile it (takes a little while...)!&lt;br /&gt;
      make&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: Ne kvě 28 13:18:43 CEST 2006&lt;br /&gt;
 --&lt;br /&gt;
 Errors in:&lt;br /&gt;
 --&lt;br /&gt;
 Finished compilation: Ne kvě 28 13:43:40 CEST 2006&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 occuring 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;
      grass64&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;
===== Debian =====&lt;br /&gt;
&lt;br /&gt;
Read the instructions here:&lt;br /&gt;
: http://trac.osgeo.org/grass/browser/grass/branches/develbranch_6/debian/README.debian&lt;br /&gt;
&lt;br /&gt;
   # first install PROJ, GDAL, etc.&lt;br /&gt;
   cd grass64/&lt;br /&gt;
   # follow instructions in debian/README.debian&lt;br /&gt;
   fakeroot buildpackage&lt;br /&gt;
&lt;br /&gt;
* Official [http://wiki.debian.org/DebianGis DebianGIS] packaging [http://svn.debian.org/viewsvn/pkg-grass/packages/grass/ control files], also accessible via svn:&lt;br /&gt;
&lt;br /&gt;
  svn co svn://svn.debian.org/svn/pkg-grass/packages/grass/trunk/&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
  svn co svn://svn.debian.org/svn/pkg-grass/packages/grass/branches/&amp;lt;GRASS Version&amp;gt;&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 swig libgdal1-dev  libgdal1-1.5.0 libproj-dev libproj0 proj-data mysql&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;
&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-1.6.0 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 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;
 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 --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&lt;br /&gt;
&lt;br /&gt;
===== Ubuntu =====&lt;br /&gt;
&lt;br /&gt;
''The above Debian notes will probably work with Ubuntu as well.''&lt;br /&gt;
&lt;br /&gt;
A more  [[Compile_and_Install_Ubuntu | specific page]] towards Ubuntu is being written on.&lt;br /&gt;
&lt;br /&gt;
====== Ubuntu 6.06, 7.10 ======&lt;br /&gt;
&lt;br /&gt;
* [http://david.p.finlayson.googlepages.com/makegrass.sh makegrass.sh] is script designed to automate most of the download, configuration and compilation of GRASS 6.x-CVS&lt;br /&gt;
** it is advised use [https://help.ubuntu.com/community/CheckInstall checkinstall] (''sudo apt-get install checkinstall'') instead of ''make install'' to keep track of installed software &lt;br /&gt;
** Think twice before using this script. Some users experienced problems such as disabled XGL etc.&lt;br /&gt;
* [[User:Steko/Automated_CVS_compiling|Here]] is another of these scripts, it's homemade so probably you'll find the above more useful for production sites.&lt;br /&gt;
&lt;br /&gt;
====== Ubuntu 7.10 64-bit ======&lt;br /&gt;
&lt;br /&gt;
* Compiling latest GRASS source code on a 64-bit machine (with an ATI graphic card) under Ubuntu 7.10 64-bit with support for: 64-bit, SQLite, OpenGL, PYTHON, FFMPEG&lt;br /&gt;
(Based on &amp;quot;Ubuntu 6.06 LTS - GRASS 6.1 Compilation Script&amp;quot; by David Finlayson)&lt;br /&gt;
''Assuming it is the first time attempting to compile GRASS' source code &amp;amp; installing SVN, PROJ, GDAL/OGR''&lt;br /&gt;
&lt;br /&gt;
'''Preparation'''&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
* install dependencies for compiling (in general) and dependencies for GRASS: PROJ, GDAL/OGR&lt;br /&gt;
 sudo apt-get install grass build-essential flex bison libncurses5-dev zlib1g-dev \&lt;br /&gt;
 libjpeg62-dev libgdal1-dev libtiff4-dev libgcc1 libpng12-dev tcl8.4-dev tk8.4-dev fftw3-dev \&lt;br /&gt;
 libfreetype6-dev libavcodec-dev libxmu-dev gdal-bin libreadline5 libreadline5-dev \&lt;br /&gt;
 make python-dev python-wxversion swig&lt;br /&gt;
&lt;br /&gt;
* install SQLite&lt;br /&gt;
 sudo apt-get install sqlite3 libsqlite3-dev&lt;br /&gt;
&lt;br /&gt;
* install SVN&lt;br /&gt;
 sudo apt-get install subversion&lt;br /&gt;
&lt;br /&gt;
* create a directory as a simple user where source code(s) are going to be stored (in our example we use a directory called '''src''' under '''/usr/local''')&lt;br /&gt;
&lt;br /&gt;
 sudo mkdir /usr/local/src&lt;br /&gt;
&lt;br /&gt;
* grant rwx (read-write-execute) permissions for our userid/ groupid on the directory (replace words userid and groupid with real userid):&lt;br /&gt;
 sudo chown ''userid'':''groupid'' /usr/local/src&lt;br /&gt;
&lt;br /&gt;
 sudo chmod ug+rwx /usr/local/src&lt;br /&gt;
&lt;br /&gt;
* download latest source code from GRASS SVN repository in a directory on the system (e.g. /usr/local/src)&lt;br /&gt;
 svn checkout https://svn.osgeo.org/grass/grass/trunk grass_trunk&lt;br /&gt;
&lt;br /&gt;
* Above command places GRASS' source code in '''/usr/local/src/grass_trunk'''. In case of a subsequent update use the command: '''svn up''' from within the grass_trunk directory&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''Before''' attempting to compile GRASS, READ section (C) in the '''INSTALL''' file located in the main directory of GRASS source code entitled:&lt;br /&gt;
'''(C) COMPILATION NOTES for 64bit platforms'''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* installing FFTW3 if not already on system&lt;br /&gt;
 sudo apt-get install fftw3 fftw3-dev&lt;br /&gt;
&lt;br /&gt;
'''FFMPEG'''&lt;br /&gt;
&lt;br /&gt;
Note: Back in Ubuntu 7.10, installing ffmpeg through the repositories wouldn't work with grass. The following steps were successfully used.&lt;br /&gt;
&lt;br /&gt;
* install FFMPEG (information taken from: http://stream0.org/2008/01/install-ffmpeg-on-ubuntu-gutsy.html)&lt;br /&gt;
* download source code with svn&lt;br /&gt;
 svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg&lt;br /&gt;
&lt;br /&gt;
* install dependencies&lt;br /&gt;
 sudo apt-get install liblame-dev libfaad2-dev libfaac-dev libxvidcore4-dev \&lt;br /&gt;
      liba52-0.7.4 liba52-0.7.4-dev libx264-dev libdts-dev checkinstall \&lt;br /&gt;
      build-essential subversion&lt;br /&gt;
&lt;br /&gt;
* guide to ffmpeg directory&lt;br /&gt;
 cd ffmpeg&lt;br /&gt;
&lt;br /&gt;
if necessary: '''make distclean''' before configuration (look at notes below)&lt;br /&gt;
&lt;br /&gt;
* configuration ('''note:''' the configuration parameter &amp;quot;'''--enable-pp'''&amp;quot; does not work anymore)&lt;br /&gt;
 # configure FFMPEG&lt;br /&gt;
 ./configure --enable-gpl --enable-libvorbis --enable-libtheora \&lt;br /&gt;
             --enable-liba52 --enable-libdc1394 --enable-libgsm \&lt;br /&gt;
             --enable-libmp3lame --enable-libfaad --enable-libfaac \&lt;br /&gt;
             --enable-libxvid --enable-pthreads --enable-libx264 \&lt;br /&gt;
             --enable-shared&lt;br /&gt;
&lt;br /&gt;
* compilation&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* installation on /usr/local/bin -- important to remember when configuring GRASS' source code for compilation&lt;br /&gt;
 sudo checkinstall&lt;br /&gt;
&lt;br /&gt;
'''Go for GRASS!'''&lt;br /&gt;
* in our example we used the /usr/local/src directory to store GRASS' source code, so:&lt;br /&gt;
 cd /usr/local/src/grass_trunk&lt;br /&gt;
&lt;br /&gt;
* configuration&lt;br /&gt;
  CFLAGS=&amp;quot;-g -Wall&amp;quot; ./configure --enable-64bit \&lt;br /&gt;
        --with-libs=/usr/lib64 --with-cxx --with-freetype=yes \&lt;br /&gt;
        --with-postgres=no --with-sqlite=yes --enable-largefile=yes \&lt;br /&gt;
        --with-tcltk-includes=/usr/include/tcl8.4 \&lt;br /&gt;
        --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
        --with-opengl-libs=/usr/include/GL --with-readline \&lt;br /&gt;
        --with-python=yes --with-ffmpeg=yes \&lt;br /&gt;
        --with-ffmpeg-includes=/usr/local/include/ffmpeg&lt;br /&gt;
&lt;br /&gt;
*if OpenGL fails then maybe it is necessary to link '''glxATI.h''' with '''glx.h''' and re-run the configuration&lt;br /&gt;
&lt;br /&gt;
 cd /usr/include/GL&lt;br /&gt;
&lt;br /&gt;
 sudo ln glxATI.h glx.h&lt;br /&gt;
&lt;br /&gt;
* compilation&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
* compilation is expected to end with a statement similar to the following:&lt;br /&gt;
&lt;br /&gt;
 Started compilation: Wed Feb 27 00:24:36 CET 2008&lt;br /&gt;
 --&lt;br /&gt;
 Errors in:&lt;br /&gt;
 No errors detected.&lt;br /&gt;
&lt;br /&gt;
* installation&lt;br /&gt;
 sudo checkinstall&lt;br /&gt;
&lt;br /&gt;
* launch 64-bit GRASS.6.4.svn&lt;br /&gt;
 grass64&lt;br /&gt;
&lt;br /&gt;
'''Notes'''&lt;br /&gt;
* in case of errors in future compilation attempts, remember to remove program binaries with&lt;br /&gt;
 make clean&lt;br /&gt;
* and the files created with the &amp;quot;configuration&amp;quot; from previous compilations with&lt;br /&gt;
 make distclean&lt;br /&gt;
&lt;br /&gt;
====== Ubuntu 8.04 and above ======&lt;br /&gt;
&lt;br /&gt;
* See [[Compile and Install Ubuntu‎]]&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++ swig 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++ swig gettext \&lt;br /&gt;
          lib64jpeg-devel 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;
===== CentOS =====&lt;br /&gt;
&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;
&lt;br /&gt;
Preparation:&lt;br /&gt;
  yum install flex bison zlib-devel  tcl-devel tk-devel gcc-c++ swig gettext \&lt;br /&gt;
              libtiff-devel libpng-devel sqlite-devel libjpeg-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&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Compile and install [http://proj.osgeo.org PROJ4]:&lt;br /&gt;
&lt;br /&gt;
 # get source code and unpack:&lt;br /&gt;
 wget http://download.osgeo.org/proj/proj-4.7.0.tar.gz&lt;br /&gt;
 tar xvfz proj-4.7.0.tar.gz &lt;br /&gt;
 rm -f proj-4.7.0.tar.gz &lt;br /&gt;
 cd proj-4.7.0/&lt;br /&gt;
 &lt;br /&gt;
 # get and install datum files into right directory:&lt;br /&gt;
 cd nad/&lt;br /&gt;
 wget http://download.osgeo.org/proj/proj-datumgrid-1.5.zip&lt;br /&gt;
 unzip proj-datumgrid-1.5.zip&lt;br /&gt;
 rm -f proj-datumgrid-1.5.zip&lt;br /&gt;
 cd ..&lt;br /&gt;
 &lt;br /&gt;
 # configure and compile&lt;br /&gt;
 sh configure&lt;br /&gt;
 make -j4&lt;br /&gt;
 &lt;br /&gt;
 # install (may require &amp;quot;root&amp;quot; permissions, use &amp;quot;su&amp;quot;):&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
Compile and install [http://www.gdal.org GDAL]:&lt;br /&gt;
 # get source code and unpack:&lt;br /&gt;
 wget http://download.osgeo.org/gdal/gdal-1.6.3.tar.gz&lt;br /&gt;
 tar xvfz gdal-1.6.3.tar.gz &lt;br /&gt;
 rm -f gdal-1.6.3.tar.gz &lt;br /&gt;
 cd gdal-1.6.3/&lt;br /&gt;
 &lt;br /&gt;
 # configure and compile&lt;br /&gt;
 sh configure&lt;br /&gt;
 make -j4&lt;br /&gt;
 &lt;br /&gt;
 # install (may require &amp;quot;root&amp;quot; permissions, use &amp;quot;su&amp;quot;):&lt;br /&gt;
 make install&lt;br /&gt;
 &lt;br /&gt;
 # add /usr/local/lib/ to LD_LIBRARY_PATH, requires &amp;quot;root&amp;quot; permissions:&lt;br /&gt;
 su - &lt;br /&gt;
 echo &amp;quot;/usr/local/lib&amp;quot; &amp;gt; /etc/ld.so.conf.d/gdal.conf&lt;br /&gt;
 ldconfig&lt;br /&gt;
 exit&lt;br /&gt;
 &lt;br /&gt;
 # test installation by running&lt;br /&gt;
 gdalinfo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GRASS 7 compilation and installation, here 64bit example:&lt;br /&gt;
&lt;br /&gt;
1. Download wxGTP and wxPython:&lt;br /&gt;
&lt;br /&gt;
  wget http://packages.sw.be/wxPython/wxPython-2.8.9.1-1.el5.rf.x86_64.rpm&lt;br /&gt;
  wget http://packages.sw.be/wxPython/wxPython-devel-2.8.9.1-1.el5.rf.x86_64.rpm&lt;br /&gt;
  wget http://packages.sw.be/wxGTK/wxGTK-2.8.9-1.el5.rf.x86_64.rpm&lt;br /&gt;
  wget http://packages.sw.be/wxGTK/wxGTK-devel-2.8.9-1.el5.rf.x86_64.rpm&lt;br /&gt;
 &lt;br /&gt;
  # Install:&lt;br /&gt;
  rpm -Uhv wxPython-2.8.9.1-1.el5.rf.x86_64.rpm wxPython-devel-2.8.9.1-1.el5.rf.x86_64.rpm \&lt;br /&gt;
           wxGTK-2.8.9-1.el5.rf.x86_64.rpm wxGTK-devel-2.8.9-1.el5.rf.x86_64.rpm&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
2. [http://grass.osgeo.org/download/ Download] and configure GRASS 7 (suggestion: save this as script). Note that [http://proj.osgeo.org PROJ4] and [http://www.gdal.org GDAL] must be compiled first:&lt;br /&gt;
&lt;br /&gt;
 ./configure \&lt;br /&gt;
  --with-libs=/usr/lib64 \&lt;br /&gt;
  --with-cxx \&lt;br /&gt;
  --without-ffmpeg \&lt;br /&gt;
  --with-gdal=/usr/local/bin/gdal-config \&lt;br /&gt;
  --without-odbc \&lt;br /&gt;
  --with-sqlite \&lt;br /&gt;
  --with-postgres \&lt;br /&gt;
  --without-mysql \&lt;br /&gt;
  --with-nls \&lt;br /&gt;
  --with-python \&lt;br /&gt;
  --with-cairo \&lt;br /&gt;
  --with-wxwidgets=/usr/bin/wx-config \&lt;br /&gt;
  --without-fftw \&lt;br /&gt;
  --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
  --enable-largefile \&lt;br /&gt;
  --with-pthread&lt;br /&gt;
&lt;br /&gt;
3. Hack the Makefile of GRASS-SWIG since python-config isn't there (add one line without the '+'):&lt;br /&gt;
&lt;br /&gt;
  svn diff swig/&lt;br /&gt;
  Index: swig/python/Makefile&lt;br /&gt;
  ===================================================================&lt;br /&gt;
  --- swig/python/Makefile        (revision 38916)&lt;br /&gt;
  +++ swig/python/Makefile        (working copy)&lt;br /&gt;
  @@ -36,6 +36,7 @@&lt;br /&gt;
   EXTRA_SWIG = ../include/python/my_typemaps.i ../include/python/common.i&lt;br /&gt;
   SWIGFLAGS = $(INC) -I../include/python -outdir .&lt;br /&gt;
   EXTRA_CFLAGS = $(PYMOD_CFLAGS)&lt;br /&gt;
  +EXTRA_LIBS = -lpython2.4&lt;br /&gt;
   EXTRA_CLEAN_FILES := $(foreach M,$(MODULES),$(M)_wrap.o $(M)_wrap.c $(M).pyc $(M).py _$(M).so)&lt;br /&gt;
   CLEAN_SUBDIRS = NumPtr&lt;br /&gt;
&lt;br /&gt;
4. Add manually the path to the python include directory since python-config isn't there:&lt;br /&gt;
&lt;br /&gt;
   # edit include/Make/Platform.make&lt;br /&gt;
   # and add manually the line&lt;br /&gt;
 &lt;br /&gt;
   PYTHONINC           = -I/usr/include/python2.4&lt;br /&gt;
&lt;br /&gt;
5. Compile&lt;br /&gt;
    make&lt;br /&gt;
   or on multicore:&lt;br /&gt;
    make -j4&lt;br /&gt;
&lt;br /&gt;
6. Either install with &amp;quot;make install&amp;quot; or run directly from compile directory (substitute ARCH with i586 or x86_64):&lt;br /&gt;
&lt;br /&gt;
    bin.$ARCH/grass70 -wx&lt;br /&gt;
&lt;br /&gt;
===== Gentoo =====&lt;br /&gt;
&lt;br /&gt;
See http://gentoo-portage.com/sci-geosciences/grass&lt;br /&gt;
&lt;br /&gt;
===== Fedora =====&lt;br /&gt;
&lt;br /&gt;
Ingredients:&lt;br /&gt;
&lt;br /&gt;
  yum install proj-devel libjpeg-devel gdal-devel sqlite-devel ffmpeg-devel mesa-libGL-devel \&lt;br /&gt;
              mesa-libGLU-devel libXmu-devel tcl-devel fftw-devel lesstif-devel python-devel \&lt;br /&gt;
              wxPython wxGTK-devel bison flex ncurses-devel proj-epsg proj-nad xml2&lt;br /&gt;
&lt;br /&gt;
''Note 1: that currently gdal-devel has (too) many dependencies and will lead to a massive download of extra packages (200 on a fresh Fedora 16 install).''&lt;br /&gt;
&lt;br /&gt;
''Note 2: ffmpeg-devel comes from the rpmfusion-free repository.''&lt;br /&gt;
&lt;br /&gt;
This is an example how to compile GRASS 6 on a 32bit 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-wxwidgets=/usr/bin/wx-config \&lt;br /&gt;
   --with-fftw \&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;
&lt;br /&gt;
This is an example how to compile GRASS 6 on a 64bit 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-wxwidgets=/usr/bin/wx-config \&lt;br /&gt;
   --with-fftw \&lt;br /&gt;
   --with-python=/usr/bin/python-config \&lt;br /&gt;
   --with-freetype --with-freetype-includes=/usr/include/freetype2 \&lt;br /&gt;
   --without-odbc&lt;br /&gt;
&lt;br /&gt;
An effective (but not fast) way of getting dependencies is to decide what to enable in the configuration, and then run ./config and see which files are missing. The package providing it can be found via:&lt;br /&gt;
&lt;br /&gt;
 yum provides */&amp;lt;name of the file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then installed with your favourite package manager frontend.&lt;br /&gt;
&lt;br /&gt;
===== RPM SPEC files =====&lt;br /&gt;
* ... can be found in the source code, rpm/ directory, &lt;br /&gt;
* or [https://build.opensuse.org/package/show?package=grass&amp;amp;project=Application%3AGeo OpenSuSe]&lt;br /&gt;
* or [https://admin.fedoraproject.org/pkgdb/acls/name/grass Fedora]&lt;br /&gt;
* or [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/grass/ Mandriva] (there are also [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/proj/ proj4], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/geos/ geos], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/gdal/ gdal], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/gdal-grass/ gdal-grass-plugin], [http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/qgis/ qgis] etc)&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;
* see the source/macosx readme&lt;br /&gt;
* also see [[Compiling on MacOSX]]&lt;br /&gt;
* some notes on [[Packaging on MacOSX]]&lt;br /&gt;
* Download [http://www.kyngchaos.com/software/frameworks#build_scripts build scripts]&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;
===== 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;
* ''see [http://thread.gmane.org/gmane.comp.gis.grass.user/32667 this mailing list thread]''&lt;br /&gt;
&lt;br /&gt;
Mike wrote:&lt;br /&gt;
&amp;lt;pre&amp;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;
&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;
==== MS-Windows ====&lt;br /&gt;
&lt;br /&gt;
===== MS-Windows/Cygwin =====&lt;br /&gt;
&lt;br /&gt;
... see [http://grass.itc.it/platforms/wingrass.html here] (should be moved to the Wiki)&lt;br /&gt;
&lt;br /&gt;
===== MS-Windows/native =====&lt;br /&gt;
&lt;br /&gt;
====== Compile ======&lt;br /&gt;
&lt;br /&gt;
* [http://www.webalice.it/marco.pasetti/grass/BuildFromSource.html GRASS Windows Native Binary Building Guide] (GRASS 6.3.x)&lt;br /&gt;
* [http://trac.osgeo.org/grass/wiki/CompileOnWindows GRASS Windows Native Binary Building Guide] (GRASS 6.4.x)&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;
=== 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;
=== Compiled C modules ===&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;
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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Atmospheric_correction&amp;diff=14631</id>
		<title>Atmospheric correction</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Atmospheric_correction&amp;diff=14631"/>
		<updated>2011-12-30T20:48:47Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See also the [[LANDSAT]] wiki page.&lt;br /&gt;
&lt;br /&gt;
'''Aim of this tutorial:'''&lt;br /&gt;
&lt;br /&gt;
* Transforming a Landsat ETM+ image from DN values to radiance values&lt;br /&gt;
* Conducting an atmospheric correction of a Landsat image using the {{cmd|i.atcorr}} module in GRASS GIS&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The standard steps for processing satellite images are:&lt;br /&gt;
&lt;br /&gt;
# Convert DN (digital number = pixel values) to ''Radiance at TOA'' (see formula below or use {{cmd|i.landsat.toar|version=65}}). {{cmd|i.landsat.toar|version=65}} supports all Landsat versions from MSS to TM to ETM+.&lt;br /&gt;
# Perform atmospheric correction (which converts Radiance at TOA -&amp;gt; ''Reflectance at surface''): done by {{cmd|i.atcorr}}.&lt;br /&gt;
&lt;br /&gt;
''Note:'' Remember, to check if water areas are &amp;gt; 0, since reflectance is always positive. If negative, you have a &amp;quot;cornichon&amp;quot; (pickle in English ;-0). Means the transform equation inputs are not belong to image processed.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* GRASS 6.4.0 or higher&lt;br /&gt;
* North Carolina sample dataset (location): http://grass.osgeo.org/download/data.php&lt;br /&gt;
&lt;br /&gt;
After downloading of the North Carolina dataset, it must be unzipped into your GIS database. When starting GRASS GIS, select this GIS database, open the ‘nc_spm_08’ dataset as LOCATION, and ‘PERMANENT’ as MAPSET. &lt;br /&gt;
&lt;br /&gt;
== Calculating radiance values ==&lt;br /&gt;
&lt;br /&gt;
The NC data set mapset contains, amongst others, a Landsat ETM+ image of 24th of May 2002. Every pixel of this image contains a DN or grey value. In order to be able to make calculations with satellite imagery, or compare values amongst different sensors, these values have to be converted to radiances or reflectances. The formulas to do this conversion are described here for Landsat images (or use [[GRASS_AddOns#i.landsat.toar|i.landsat.toar]]).&lt;br /&gt;
The conversion from DN values to top-of-atmosphere radiances is done as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- why doesn't TeX markup work??&lt;br /&gt;
&amp;lt;math&amp;gt;L\lambda = \frac{L_{MAX}λ - L_{MIN}λ}{QCAL_{MAX}-QCAL_{MIN}} * (QCAL-QCAL_{MIN}) + L_{MIN}\lambda&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\sqrt{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 Lλ = ((LMAXλ - LMINλ)/(QCALMAX-QCALMIN)) * (QCAL-QCALMIN) + LMINλ&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
&lt;br /&gt;
* Lλ - spectral Radiance at the sensor's aperture in watts/(meter squared * ster * μm), the apparent radiance as seen by the satellite sensor;&lt;br /&gt;
* QCAL - the quantized calibrated pixel value in DN;&lt;br /&gt;
* LMINλ - the spectral radiance that is scaled to QCALMIN in watts/(meter squared * ster * μm);&lt;br /&gt;
* LMAXλ - the spectral radiance that is scaled to QCALMAX in watts/(meter squared * ster * μm);&lt;br /&gt;
* QCALMIN - the minimum quantized calibrated pixel value (corresponding to LMINλ) in DN;&lt;br /&gt;
* QCALMAX - the maximum quantized calibrated pixel value (corresponding to LMAXλ) in DN=255.&lt;br /&gt;
&lt;br /&gt;
LMINλ and LMAXλ are the radiances related to the minimal and maximal DN value, and are reported in the metadata file for each image, or in the table 1. High gain or low gain is also reported in the metadata file of each Landsat image. The minimal DN value (QCALMIN) is 1 for Landsat ETM+ images (1), and the maximal DN value (QCALMAX) is 255. QCAL is the DN value for every separate pixel in the Landsat image. &lt;br /&gt;
&lt;br /&gt;
Accessing the metadata:&lt;br /&gt;
&lt;br /&gt;
 {{cmd|r.info}} lsat7_2002_xx&lt;br /&gt;
&lt;br /&gt;
Under ‘comments’, the maximal and minimal radiance (LMAX and LMIN) for each band are given. &lt;br /&gt;
&lt;br /&gt;
Power users may use this for nicely readable output (example for channel 1):&lt;br /&gt;
&lt;br /&gt;
 CHAN=1&lt;br /&gt;
 {{cmd|r.info}} lsat7_2002_${CHAN}0 -h | tr '\n' ' '  | sed 's+ ++g' | tr ':' '\n' | grep &amp;quot;LMIN_BAND${CHAN}\|LMAX_BAND${CHAN}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Conversion to radiance (this calculation is done for band 1, for the other bands, the numbers in italics need to be replaced with their correct values):&lt;br /&gt;
&lt;br /&gt;
 {{cmd|g.region}} rast=lsat7_2002_10 -p&lt;br /&gt;
 {{cmd|r.mapcalc}} &amp;quot;lsat7_2002_10_rad=((''191.6'' - (''-6.2'')) / (255.0 - 1.0)) * (lsat7_2002_10 - 1.0) + (''-6.2'')&amp;quot;&lt;br /&gt;
&lt;br /&gt;
For faster computations, use an integer DEM:&lt;br /&gt;
&lt;br /&gt;
  {{cmd|r.mapcalc}} &amp;quot;elev_int = round(elevation)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Find mean elevation to initialize computations (needed in 'icnd' file below)&lt;br /&gt;
&lt;br /&gt;
 {{cmd|r.univar}} elev_int&lt;br /&gt;
&lt;br /&gt;
== Estimating the overpass time from the sun position ==&lt;br /&gt;
&lt;br /&gt;
The satellite overpass time can be estimated rather precisely from the sun position reported in metadata using {{cmd|r.sunmask}}:&lt;br /&gt;
The [ftp://ftp.glcf.umiacs.umd.edu/glcf/Landsat/WRS2/p016/r035/p016r035_7x20020524.ETM-EarthSat-Orthorectified/p016r035_7x20020524.met metadata] of this example report: SUN_AZIMUTH = 120.8810347, SUN_ELEVATION = 64.7730999&lt;br /&gt;
&lt;br /&gt;
 # iteratively change hour and minutes to obtain a good result, timezone needs to be correct of course:&lt;br /&gt;
 {{cmd|r.sunmask}} -s elev=elevation out=dummy year=2002 month=5 day=24 hour=10 min=42 sec=7 timezone=-5&lt;br /&gt;
&lt;br /&gt;
Reports: sun azimuth: 121.342461, sun angle above horz.(refraction corrected): 65.396652&lt;br /&gt;
&lt;br /&gt;
The resulting overpass local time 10:42:07 corresponds to 15:42 in GMT which corresponds to 15.67 in decimal GMT hours (decimal minutes: 42 * 100 / 60). This value is needed for the control file.&lt;br /&gt;
&lt;br /&gt;
== Atmospheric correction ==&lt;br /&gt;
&lt;br /&gt;
This radiance image can be used for the atmospheric correction with the '''6S algorithm'''. The algorithm will transform the top-of-the-atmosphere radiance values to top-of-canopy reflectance values using predefined information on the aerosol content and atmospheric composition of the time the image was taken. What follows describes the method to use this algorithm in GRASS GIS. Again, only the calculations for band 1 are shown, and the numbers to be changed for the other bands are indicated in red. The 'icnd_lsat1.txt' control file consists of the following parameters, and is written with a text editor:&lt;br /&gt;
&lt;br /&gt;
 8                          # indicates that it is an ETM+ image&lt;br /&gt;
 05 24 15.67 -78.691 35.749 # image taken on the 24th of May, at 15:42 GMT in decimals; the center of the image lies at 78.691°W and 35.749°N &lt;br /&gt;
 2                          # the midlatitude summer atmospheric model&lt;br /&gt;
 1                          # the continental aerosol model&lt;br /&gt;
 50                         # the visibility for the aerosol model [km]&lt;br /&gt;
 -0.110                     # the terrain lies 110 meters above sea level [km] * -1&lt;br /&gt;
 -1000                      # image taken of a satellite sensor (1000)&lt;br /&gt;
 61                         # spectral band, here 1: blue&lt;br /&gt;
&lt;br /&gt;
''TODO: understand if the [http://modis.gsfc.nasa.gov/data/dataprod/dataproducts.php?MOD_NUMBER=04 MODIS Aerosol Product (MOD04)] could be useful to estimate the visibility for the aerosol model.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This file is then used in the {{cmd|i.atcorr}} module:&lt;br /&gt;
&lt;br /&gt;
 {{cmd|i.atcorr}} -a -o iimg=lsat7_2002_10_rad ialt=elev_int icnd=icdn_lsat1.txt oimg=lsat7_2002_10_atcorr&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* &amp;lt;tt&amp;gt;-a&amp;lt;/tt&amp;gt; refers to a Landsat image taken after July 2000&lt;br /&gt;
* &amp;lt;tt&amp;gt;-o&amp;lt;/tt&amp;gt; activates the cache acceleration&lt;br /&gt;
* &amp;lt;tt&amp;gt;iimg&amp;lt;/tt&amp;gt; is the image to be corrected&lt;br /&gt;
* &amp;lt;tt&amp;gt;ialt&amp;lt;/tt&amp;gt; is the altitude map which overrides the initialization value of 110 meters&lt;br /&gt;
* &amp;lt;tt&amp;gt;icnd&amp;lt;/tt&amp;gt; is the path to the icnd.txt file&lt;br /&gt;
* &amp;lt;tt&amp;gt;oimg&amp;lt;/tt&amp;gt; is the name of the output image&lt;br /&gt;
&lt;br /&gt;
More information on the use of {{cmd|i.atcorr}} for other images can be found in the {{cmd|i.atcorr}} manual.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://6s.ltdri.org 6S Web site]&lt;br /&gt;
* [http://modis-sr.ltdri.org/ Land Surface Reflectance Science Computing Facility website - 6S]&lt;br /&gt;
* (1)  http://landsathandbook.gsfc.nasa.gov/handbook/handbook_htmls/chapter11/chapter11.html&lt;br /&gt;
* (2)  http://landsat.usgs.gov/documents/L5TM_postcal_v11.pdf&lt;br /&gt;
* [http://www-air.larc.nasa.gov/tools/predict.htm NASA LaRC Satellite Overpass Predictor]&lt;br /&gt;
&lt;br /&gt;
Adding new sensors:&lt;br /&gt;
* see http://trac.osgeo.org/grass/browser/grass/trunk/imagery/i.atcorr/README&lt;br /&gt;
&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Tutorial]]&lt;br /&gt;
[[Category: Image processing]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Archeology&amp;diff=14630</id>
		<title>Archeology</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Archeology&amp;diff=14630"/>
		<updated>2011-12-30T20:48:23Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &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;
== 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;
== See also ==&lt;br /&gt;
&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;
== 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;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS-Wiki&amp;diff=14629</id>
		<title>GRASS-Wiki</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS-Wiki&amp;diff=14629"/>
		<updated>2011-12-30T20:48:02Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;68%&amp;quot; style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-right:10px; border:1px solid #dfdfdf; background-color:#f8f8ff;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:0.3em 1em 0.7em 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:grasslogo_vector_small.png|right|link=http://grass.osgeo.org]]&lt;br /&gt;
&lt;br /&gt;
=== Welcome to the GRASS GIS Users Wiki ===&lt;br /&gt;
&lt;br /&gt;
{{website|intro/general.php|'''GRASS GIS'''}} is a [http://en.wikipedia.org/wiki/Geographic_information_system Geographic Information System] used for geospatial data management and analysis, image processing, graphics/map production, spatial modeling, and visualization.&lt;br /&gt;
&lt;br /&gt;
On this Wiki, you can get and contribute to GRASS related information, documents and community provided add-ons programs. To edit here, you need to register and login first (see top right link).&lt;br /&gt;
&lt;br /&gt;
For GRASS at a glance, see [[Core features]]. For usage examples, see the [http://grass.osgeo.org/screenshots/index.php screenshots gallery] and [[Applications]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&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:#FFE5E5;&amp;quot;&amp;gt;&lt;br /&gt;
'''What's hot:'''&lt;br /&gt;
* [http://grass.osgeo.org/download/ '''GRASS 6.4.2RC2''' available for testing - get it now!]&lt;br /&gt;
* Then try the [[Quick wxGUI tutorial]]&lt;br /&gt;
* Temporal support and other new [[Initiatives]]&lt;br /&gt;
* [http://www.osgeo.org/node/1069 Helena Mitasova Receives Sol Katz Award 2010]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&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:#f8f8ff;&amp;quot;&amp;gt;&lt;br /&gt;
==== User Documentation and Support ====&lt;br /&gt;
* [[GRASS Help|GRASS Help and Getting Started]]&lt;br /&gt;
* [[GRASS Documents|In depth GRASS Documentation]]&lt;br /&gt;
* [[Installation Guide]] for precompiled binaries&lt;br /&gt;
* '''[[Faq|FAQ]] - Frequently Asked Questions'''&lt;br /&gt;
* [[Applications]] - use cases of GRASS in various disciplines&lt;br /&gt;
* [[wxGUI]] - Graphical User Interface based on wxPython&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&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:#f8f8ff;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Community ====&lt;br /&gt;
* [[GRASS Community]]: Getting in touch&lt;br /&gt;
* [[Applications|Research applications]]: What people are doing with GRASS&lt;br /&gt;
* [[GRASS migration hints|Migrating to GRASS]]&lt;br /&gt;
* [[GRASS Blogger]]&lt;br /&gt;
* Get involved: [[Project jobs]]&lt;br /&gt;
* [http://grass.osgeo.org/wiki/Special:Recentchanges?feed=rss RSS feed] of recent changes of this Wiki&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;Have a look at the GRASS GIS users worldwide [http://grass.osgeo.org/community/ GRASS GIS User Online]. If you operate a GRASS GIS installation, you are welcome to enter your user data there. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;p&amp;gt;''[[GRASS-Wiki:Language policy|Translate this Wiki]]''&amp;lt;/p&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- RIGHT COLUMN --&amp;gt;&lt;br /&gt;
| width=&amp;quot;38%&amp;quot; style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0;  border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:OSGeo 220pix.png|center|220px|link=http://www.osgeo.org]]&lt;br /&gt;
&amp;lt;center&amp;gt;OSGeo Foundation Project&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:1em 1em 1em 1em; background-color:#f8f8ff;&amp;quot;&amp;gt;&lt;br /&gt;
[[Image:Btn_donate_SM.gif|center|link=http://grass.osgeo.org/donation.php]]&amp;lt;center&amp;gt;[http://grass.osgeo.org/donation.php Donate via PayPal.com]&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#f8f8ff;&amp;quot;&amp;gt;&lt;br /&gt;
* [http://grass.osgeo.org/screenshots/index.php GRASS Screenshots]&lt;br /&gt;
* [http://trac.osgeo.org SVN/trac] Source Code Repository&lt;br /&gt;
* [http://grass.osgeo.org/community/support.php Mailing lists] and [http://grass.osgeo.org/community/support.php#irc IRC]&lt;br /&gt;
* [http://trac.osgeo.org/grass/ Report errors or wishes]&lt;br /&gt;
* [https://svn.osgeo.org/grass/grass/branches/releasebranch_6_4/COPYING Licensed under GNU GPL]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Download ====&lt;br /&gt;
* [http://grass.osgeo.org/download/ Source code and binaries]&lt;br /&gt;
* '''[[GRASS AddOns]]'''&lt;br /&gt;
* [[Promotional material]]&lt;br /&gt;
* [[Sample datasets]]&lt;br /&gt;
* [[Global datasets]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Development ====&lt;br /&gt;
* [[Compile and Install]] of Source Code&lt;br /&gt;
* [[Development|GRASS Development]] intro&lt;br /&gt;
* [http://trac.osgeo.org/grass/wiki GRASS-trac]: the development Wiki, bugtracker, source code browser&lt;br /&gt;
* [[Release Roadmap]]&lt;br /&gt;
* [[GRASS 7 ideas collection]]&lt;br /&gt;
* [[GRASS SoC Ideas|Google Summer of Code ideas collection]]&lt;br /&gt;
* [http://trac.osgeo.org/grass/wiki/HowToContribute How to contribute to GRASS development] (getting write access and such)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin:0; margin-top:10px; border:1px solid #dfdfdf; padding:0em 1em 1em 1em; background-color:#f8f8ff;&amp;quot;&amp;gt;&lt;br /&gt;
Project Metrics provided by [http://www.ohloh.net/projects/3666 Ohloh].&lt;br /&gt;
&lt;br /&gt;
{{#widget:Ohloh Project|id=3666|type=partner_badge}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Agriculture_and_HPC&amp;diff=14628</id>
		<title>Agriculture and HPC</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Agriculture_and_HPC&amp;diff=14628"/>
		<updated>2011-12-30T20:41:23Z</updated>

		<summary type="html">&lt;p&gt;⚠️Reverse22: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Introduction ===&lt;br /&gt;
Agricultural activity monitoring, e.g. enclosed quantifying the irrigation scheduling, tracing the soil hydraulic properties, generating the crop calendar etc., is necessary for efficient food security management at country level. The near real time monitoring or prediction on crop parameters such as crop growth in terms of planting date, date of emergence, extents, acreage, planting intensity, water stress, biomass, yield and etc. is important. It can contribute to better policymaking, timely countermeasures, optimization of water resources distributions, damage assessment and finally to  supply food security and stable market. Researchers of agriculture also try to analyze various information about crops in order to take measures if they had some problems. Particularly, when an on-going experiment covers large area such as a country, satellite imagery plays a vital role by providing useful information over large/provincial area. However, some information, or crop parameters, is not visible through satellite images such as sowing dates, cropping intensity, growth, stress etc., which reflects a practical problem that we can not generate or observe those parameters from remote places. To collect those data, time by time basis field experiments are required. This is a time consuming, complex and expensive procedure. To overcome such problems, crop or simulation models can help. Usually, crop models calculate those missing information by analyzing the crop information with real fields' experiment data. Indirect methods such as inverse modeling with crop model can be used to obtain those basic input parameters. One such method is the manual calibration by &amp;quot;trial and error&amp;quot; procedure, which is very subjective and time consuming, and uncertainty associated with them can not be quantified. A more robust way of inverse modeling is to combine the model and assimilate data with optimization algorithm. &lt;br /&gt;
&lt;br /&gt;
Thus, the challenge for the future is to obtain besides the more direct observable data (land cover, leaf area index, digital elevation model and evapotranspiration), non-visible data (soil characteristics, groundwater depth and irrigation practices) from satellite images.&lt;br /&gt;
&lt;br /&gt;
=== Crop Assimilation Model (CAM) ===&lt;br /&gt;
Crop models, Soil-Water-Air-Plant (SWAP)&amp;lt;ref&amp;gt; [http://www.wiz.uni-kassel.de/model_db/mdb/swap.html Soil Water Atmosphere Plant-General Model Information]&amp;lt;/ref&amp;gt; or Decision Support System for Agrotechnology Transfer (DSSAT) &amp;lt;ref&amp;gt;[http://www.icasa.net/dssat/ ICASA DSSAT software Introduction]&amp;lt;/ref&amp;gt;, have capacity to simulate soil, water and crop processes and serve as crop productivity monitoring tool. Crop Assimilation Model (CAM) predicts parameters of crop models with satelite images. A new methodology was developed in &amp;lt;ref&amp;gt;[http://www.hydrol-earth-syst-sci.net/6/49/2002/hess-6-49-2002.html Inverse modelling in estimating soil hydraulic functions: a Genetic Algorithm approach]&amp;lt;/ref&amp;gt;, CAM-GA, to analyze the crop model (SWAP) parameters assimilation with Remote Sensing (RS) data and that parameters assimilation procedure was optimized by an evolutionary searching technique called Genetic Algorithm (GA). Due to the changing in input parameters of SWAP model for pixel-to-pixel basis, the assimilation search space is very large. Evolutionary search algorithms are  performing well in such conditions. Similar works in &amp;lt;ref&amp;gt;[http://www.sciencedirect.com/science?_ob=ArticleURL&amp;amp;_udi=B6VCF-4FPJBB4-1&amp;amp;_user=126251&amp;amp;_rdoc=1&amp;amp;_fmt=&amp;amp;_orig=search&amp;amp;_sort=d&amp;amp;_docanchor=&amp;amp;view=c&amp;amp;_searchStrId=1016133229&amp;amp;_rerunOrigin=google&amp;amp;_acct=C000010218&amp;amp;_version=1&amp;amp;_urlVersion=0&amp;amp;_userid=126251&amp;amp;md5=93a7735a8b4bcbfc2bea9cde9bf4e66a On quantifying agricultural and water management practices from low spatial resolution RS data using genetic algorithms: A numerical study for mixed-pixel environment]&amp;lt;/ref&amp;gt; and  &amp;lt;ref&amp;gt;[http://www.aars-acrs.org/acrs/proceeding/ACRS2004/Papers/DF204-6.htm SWAP crop model Parameter Identification using SPOT Vegetation in Suphanburi, Thailand]&amp;lt;/ref&amp;gt; used some remotely sensed information combined with a binary GA &amp;lt;ref&amp;gt;[http://www.amazon.com/reader/3540606769?_encoding=UTF8&amp;amp;ref_=sib%5Fdp%5Fpt#reader-link]&amp;lt;/ref&amp;gt; and SWAP model for optimizing soil hydraulic parameters. CAM with double layers GA, CAM-DLGA &amp;lt;ref&amp;gt;[http://www.freewebs.com/ychemin/2006_IEEE_TGRS_chemin_honda.pdf Spatiotemporal Fusion of Rice Actual Evapotranspiration With Genetic Algorithms and an Agrohydrological Model]&amp;lt;/ref&amp;gt;, uses directly visible multi-resolution RS images (ASTER &amp;lt;ref&amp;gt;[http://asterweb.jpl.nasa.gov/ Advanced Spaceborne Thermal Emission and Reflection Radiometer]&amp;lt;/ref&amp;gt;,  MODIS &amp;lt;ref&amp;gt;[http://modis.gsfc.nasa.gov/ Moderate Resolution Imaging Spectroradiometer]&amp;lt;/ref&amp;gt;) and inversely assimilates to SWAP model data for estimating the non-visible model parameters. One of the advantages of the GA is that they operate well even in domains, where little information is known. However, the main difficulty on GA is to decide an appropriate set of parameters, such as population size, number of generation, selection rate, crossover probability, and mutation probability. Other models, e.g., CAM-PSO &amp;lt;ref&amp;gt;[http://www.igarss08.org/Abstracts/pdfs/2357.pdf Combining remote sensing maeasurements and model estimates through hybrid data assimilation scheme to predict hydrological fluxes at a watershed scale]&amp;lt;/ref&amp;gt; and CAM-PEST &amp;lt;ref&amp;gt;[http://www.itc.nl/library/papers_2003/msc/wrem/minur_dorji.pdf]&amp;lt;/ref&amp;gt;, use different evolutionary searching technique. They were developed and provided the similar functionality as CAM-GA. However, processing the agricultural information with CAM has a problem in practicality, that is, they require a huge amount of processing times. It becomes necessary to introduce methods for using higher processing power such as High Performance Computing (HPC) technologies.&lt;br /&gt;
&lt;br /&gt;
=== Rationale ===&lt;br /&gt;
Multi computer based distributed systems (clusters and Grids) have a large processing capacity for a lower cost, naturally, choice turns towards developing HPC applications. However, it is not an easy job to port CAM in HPC environment. The application performance is significantly affected by the data distribution and task distribution methods on the HPC, and developers of agriculture or satellite image processing applications need to solve the problem of both data and task distribution, or how to distribute data and tasks among single or multiple clusters environment. The workload in HPC, the bandwidth, the processors speed, parameters of evaluation methods and data size are additional concerning factors. Moreover, interoperability between the agriculture application and existing RS image processing software is also necessary to improve practicality. However, users need to manually extract satellite data from some databases in the existing CAM works. Some researches separately focused on the agricultural models activities or satellite image processing performance on HPC and a few of them are in the merging domains with satellite image processing, agriculture and HPC. Still, the merging domain researches are mainly in hypothetical or conjectural theme rather than practical implementation. Thus, agricultural researchers require a web based system or tool for the agricultural activity monitoring so that they do not need to concern about the implementation issues for agricultural models or RS image processing on HPC.&lt;br /&gt;
&lt;br /&gt;
=== Research Objectives ===&lt;br /&gt;
Thus, the main focus of the research is to propose a new software system to support agriculture activities using both Remote Sensing (RS) and HPC. Processing satellite images automatically through HPC, CAM HPC implementation with appropriate data and task distribution schemes, web portal system on HPC are the vital sectors for modeling the overall distributed agriculture monitoring scheme and require individual experiments. Therefore, the research question is &amp;quot;Does the HPC system help to improve the performance in each sector separately?&amp;quot;. In this study, the performance in HPC system for each sector is successfully examined and experimented with different targeted applications. The applications are being implemented first time in HPC platform and their performance results are quite impressive and acceptable.&lt;br /&gt;
&lt;br /&gt;
GRASS GIS (Geographical Resources Analysis Support System) is a free, open source software/tool and has been used for RS and GIS data analysis and visualization. GRASS module [[r.vi]] is used as a test example for experimenting on HPC ([[r.vi.mpi]], [[r.vi.grid]]) &amp;lt;ref&amp;gt;[http://www.osgeo.org/ojs/index.php/journal/article/view/93 Porting a GRASS raster module to distributed computing Examples for MPI and Ninf-G]&amp;lt;/ref&amp;gt;. Moreover, temporally splined procedure such as Local Maximum Fitting (LMF) processing methodology is improved to reduce the processing time by combining the parallelization of data and task distribution together on multi-cluster Grids&amp;lt;ref&amp;gt;[http://j-geoinfo.net/Content/Dec2008/p02.html Asynchronous Grid LMF Processing of Vegetation Index for Asia]&amp;lt;/ref&amp;gt;. CAM-GA, is implemented in grid testbed and  the impact on the performance of parallelization methods is discussed. Additionally, a new CAM called CAM-PLDLGA is proposed and implemented &amp;lt;ref&amp;gt;[http://www.alab.ip.titech.ac.jp/papers/shamim-ICCSA-Jul2009.pdf Parameter-Less GA Based Crop Parameter Assimilation with Satellite Image]&amp;lt;/ref&amp;gt;. A CAM-GA web interface with MapServer and PHPMapscripts is implemented. Thereafter, an implementation methodology with Python based Web Processing Service (PyWPS), Embrio Interface and MapServer are discussed for future extension.&lt;br /&gt;
&lt;br /&gt;
'''Shamim Akhter,18-9-2009'''&lt;br /&gt;
&lt;br /&gt;
P.S: The complete research, ''Study on High Performance Computing of Crop Parameter Identification with The Grid, PhD dissertation, 2009, Information Processing,Tokyo Institute of Technology'', will be sent upon mail request to Shamim Akhter (shamimakhter@gmail.com).&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Applications]]&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
[http://thetvtopc.com/Reverse_Cell_Phone_Lookup_Number reverse phone lookup]&lt;br /&gt;
&lt;br /&gt;
[http://www.prlog.org/11289974-phone-number-lookup-verizon-phone-number-reverse-lookup-to-get-information-you-need-quickly.html phone number lookup]&lt;/div&gt;</summary>
		<author><name>⚠️Reverse22</name></author>
	</entry>
</feed>