[GRASS-SVN] r66032 - grass/trunk/doc

svn_grass at osgeo.org svn_grass at osgeo.org
Wed Aug 26 13:37:24 PDT 2015


Author: wenzeslaus
Date: 2015-08-26 13:37:24 -0700 (Wed, 26 Aug 2015)
New Revision: 66032

Added:
   grass/trunk/doc/grass_database.html
   grass/trunk/doc/grass_database.png
   grass/trunk/doc/grass_database.svg
Modified:
   grass/trunk/doc/Makefile
Log:
docs: GRASS GIS Database structure and description

Based on helptext.html from r59690 but completely rewritten, updated, and focused on user (rather then programmer or sysadmin).

New image showing the structure doesn't include internal files and dirs (like cell); that's for programming manual. SVG created in Inkscape.

Page not meant to be a tutorial but rather a description with some practical info how to get the database/location/mapset.

Using capital in Database, Location and Mapset (experimental). Unclear on GRASS GIS Database vs GRASS Database.


Modified: grass/trunk/doc/Makefile
===================================================================
--- grass/trunk/doc/Makefile	2015-08-26 18:44:53 UTC (rev 66031)
+++ grass/trunk/doc/Makefile	2015-08-26 20:37:24 UTC (rev 66032)
@@ -1,8 +1,7 @@
 MODULE_TOPDIR = ..
 
-PGM = projectionintro
+include $(MODULE_TOPDIR)/include/Make/Other.make
 
-include $(MODULE_TOPDIR)/include/Make/Dir.make
+FILES := $(wildcard *.html)
 
-default: htmldir
-
+default: $(patsubst %,$(HTMLDIR)/%,$(FILES))

Copied: grass/trunk/doc/grass_database.html (from rev 65998, grass/trunk/lib/init/helptext.html)
===================================================================
--- grass/trunk/doc/grass_database.html	                        (rev 0)
+++ grass/trunk/doc/grass_database.html	2015-08-26 20:37:24 UTC (rev 66032)
@@ -0,0 +1,295 @@
+<!-- meta page description: GRASS GIS Database -->
+
+A GRASS GIS Database is simply a set of directories and files
+with certain structure which GRASS GIS works efficiently with.
+Location is a directory with data related to
+one geographic location or a project.
+All data within one Location has the same cartographic projection.
+A Location contains Mapsets and each Mapset contains data related to
+a specific task, user or a smaller project.
+Within each Location, a mandatory PERMANENT Mapset exists
+which can contain commonly used data within a Location such as base maps.
+PERMANENT Mapset also contains metadata related to Location
+such as projection.
+When GRASS GIS is started it connects to a Database, Location and Mapset
+specified by the user.
+
+<p>
+<!-- original drawing: doc/grass_database.svg -->
+<center>
+  <img src="grass_database.png" alt="example: nc_spm - highway - elevation"><br>
+  <i>Fig. 1: GRASS GIS Database structure as visible to the user</i>
+</center>
+
+<!--
+TODO: Introduction/Rationale/Motivation
+
+data format handling separated from analysis
+
+organizing the data
+In geospatial analysis often involves combining data from various sources
+multiple users
+-->
+
+
+<h3>GRASS GIS Database</h3>
+
+All data for GRASS GIS must be in GRASS GIS Database which is a directory
+(visible on the disk) containing subdirectories which are GRASS Locations.
+User can have one or more of Databases on the disk. Typically users have
+one directory called <code>grassdata</code> in their home directory.
+In multi-user environment users often have a <code>grassdata</code> directory
+mounted as a network directory (network file system).
+For teams, a centralized GRASS DATABASE would be defined
+in a shared network file system (e.g. NFS).
+<!-- TODO: above needs some fixes -->
+
+<p>
+GRASS GIS Databases can be safely copied or moved as any other directories.
+Don't be confused with (relational) databases which are used in GRASS GIS
+to hold attribute data and might be part of the GRASS GIS Database.
+From user point of view, GRASS GIS Database with all its data in it
+is similar to, e.g. PostGIS, database, as it stores all information
+inside in a specific format and is accessible by specific tools.
+GRASS GIS Databases is in GRASS GIS often called GISDBASE or DATABASE.
+
+
+<h3>GRASS Locations</h3>
+
+Location is a directory which contains GRASS Mapsets which are its subdirectories.
+All data in one Location have the same projection (coordinate system, datum).
+Each Location must contain Mapset called PERMANENT.
+Typically, a Location contains all data related to one project
+or a geographic area (geographic location or region).
+Alternatively, Location can simply contain all data in a given projection.
+
+<p>
+GRASS Locations can be safely copied or moved as any other directories.
+Compressed Location is usually what GRASS users exchange between each other
+when they want to share a lot of data.
+For example, GRASS GIS sample data are provided as Locations.
+
+<p>
+Don't be confused with location as a place (file or directory) in a file system.
+The word location in GRASS Location refers to a location or area on Earth
+(or whatever is applicable).
+Users and programmers familiar with relational databases such as PostgreSQL
+can view Location as an individual database inside the system or a storage area
+which would be equivalent to GRASS GIS Database. Mapsets in a Locations
+are like namespaces or schemas inside a database.
+
+<!-- TODO: naming limitations and best practices -->
+
+
+<h3>GRASS Mapsets</h3>
+
+Mapsets contains the actual data, mostly geospatial data,
+referred to as maps in GRASS GIS.
+Mapsets are a tool for organizing maps in a transparent way
+as well as a tool for isolating different tasks to prevent data loss.
+
+<p>
+GRASS GIS is always connected to one particular Mapset.
+GRASS GIS modules can create, modify, change, or delete a data only in
+the current Mapset.
+By default, only the data from the current Mapset and PERMANENT Mapset
+are visible. Using
+<a href="g.mapsets.html"><em>g.mapsets</em></a>
+module or in GUI other Mapsets can be made visible and seamlessly accessible.
+All data are available for reading when Mapset is specified explicitly,
+for example to access map <code>streets</code> in Mapset
+<code>new_highway</code> user can use <code>streets at new_highway</code>.
+For maps which are in the current or PERMAENT Mapsets or Mapsets
+sets as visible (accessible), there is no need to use
+<code>@mapset</code> syntax.
+
+
+<p>
+Mapsets are used to store maps related to one project, smaller project,
+specific task, issue or subregions.
+In multi-user environment, when a team works together on one project,
+Mapsets support simultaneous access of several users to the maps
+stored within the same Location.
+Besides access to his or her own
+Mapset, each user can also read maps in PERMANENT Mapsent
+and in other users' Mapsets when set.
+However, each user can modify or remove only the maps
+in his or her own Mapset.
+
+<p>
+Besides the geospatial data, Mapset holds additional data such as
+color tables (managed e.g. by <a href="r.colors.html"><em>r.colors</em></a>)
+and the current computational region's extent and resolution
+stored in a file called <code>WIND</code>
+and managed by <a href="g.region.html"><em>g.region</em></a>.
+
+<p>
+Mapsets can be copied and moved as directories, however only when it is clear
+that the projections of both Locations
+(as reported by <a href="g.proj.html"><em>g.proj</em></a>)
+match each other. Since this is sometimes hard to to establish,
+it is recommended to use <a href="r.proj.html"><em>r.proj</em></a>
+or <a href="v.proj.html"><em>v.proj</em></a> to reproject the data.
+The files and directories should not be moved or modified directly,
+but only using GRASS GIS tools.
+
+
+<h3>The role of the PERMANENT Mapset</h3>
+
+When creating a new Location, GRASS GIS automatically creates a special
+Mapset called PERMANENT where the core data for the Location are stored.
+
+<p>
+Since the maps in PERMANENT Mapset are visible from all the other Mapsets,
+it can be used to store the base maps (base cartography), data common
+to all projects or needed for different analyses done is separate Mapsets.
+
+<p>
+In multi-user environment, data in the PERMANENT Mapset can only be added,
+modified or removed by the owner of the PERMANENT Mapset; however, they can be
+accessed, analyzed, and copied into their own Mapset by the other
+users. The PERMANENT Mapset is useful for providing general spatial
+data (e.g. an elevation model), accessible but write-protected to all
+users who are working in the same Location as the database owner.
+To manipulate or add data to PERMANENT, the owner can start
+GRASS GIS and choose the relevant Location and the PERMANENT Mapset.
+
+<p>
+The PERMANENT Mapset also contains the <code>DEFAULT_WIND</code> file which holds
+the default computational region's extent and resolution values
+for the Location (which all Mapsets will inherit when they are created).
+Users have the option of switching back to the default region at any time.
+
+
+<h3>Importing, exporting and linking data</h3>
+
+GRASS GIS works only with data which are imported into a GRASS Database,
+so all data needs to be imported, e.g. by
+<a href="r.in.gdal.html"><em>r.in.gdal</em></a> or
+highly convenient <a href="r.import.html"><em>r.import</em></a>,
+before the actual analysis.
+Data in GRASS Datable can be exported using for example
+<a href="r.in.gdal.html"><em>r.in.gdal</em></a> in case of raster maps.
+
+<p>
+For cases when import is not desirable, an option to link external data exists.
+Projection of the linked data must match the Location's projection
+otherwise the external data cannot be linked. (Linking data in different
+projection is not allowed as it would require on-the-fly reprojection
+which could cause inconsistencies in the data.
+
+<p>
+For example, module <a href="r.external.html"><em>r.external</em></a> links
+external raster data, so that the data are accessible in GRASS Database
+as standard raster maps. Similarly for newly created maps,
+<a href="r.external.out.html"><em>r.external.out</em></a>
+setups a format and directory where the actual data will be stored,
+however in GRASS Database the data will be created as standard maps.
+
+
+<h3>Starting GRASS GIS using GUI</h3>
+
+After launching GRASS GIS, the startup window will open (Fig. 2).
+
+<p>
+<center>
+  <img src="grass_start.png" alt="startup window with numbered fields"><br>
+  <i>Fig. 2: GRASS GIS startup window</i>
+</center>
+
+The startup windows provides these functions:
+
+<ol>
+    <li>Selecting the GRASS GIS Database directory.
+    <li>Selecting the Location (e.g. a project or area).
+        See the <em>Location Wizard</em> (4) for creating new Locations.
+    <li>Selecting the Mapset (a subproject or task).
+        Creating a new Mapset requires only name.
+    <li>The <em>Location Wizard</em> for creating new Locations
+        based for example, on existing georeferenced file or EPDS code.
+    <li>Start GRASS GIS once you have selected an existing Location and Mapset
+        or defined a new one. The graphical user interface
+        <a href="wxGUI.html">wxGUI</a> will open and provide you with a
+        menu system, map visualization tool, digitizer, and more.
+</ol>
+
+
+<h3>Starting GRASS GIS using command line</h3>
+
+GRASS GIS can be started with given Database, Location and Mapset
+from the command line. For example, the following will start
+in a given Mapset with only command line interface:
+
+<div class="code"><pre>
+grass71 -text ~/grassdata/mylocation/mymapset
+</pre></div>
+
+And the following will create the given Location with projection given
+by the EPSG code and it will start the default interface
+(GUI or command line):
+
+<div class="code"><pre>
+grass71 -c EPSG:5514:3 ~/grassdata/mylocation
+</pre></div>
+
+See <a href="grass7.html"><em>grass</em></a> command manual for more details.
+
+
+<h3>Creating a New Location with the Location Wizard</h3>
+
+The <a href="wxGUI.html">wxGUI</a> graphical user interface provides a
+graphical <em>Location Wizard</em> which lets you easily create a
+new Location for your own data. You will be guided through a series of
+dialogues to browse and select predefined projections or to
+define custom projections.
+
+<p>
+The most convenient way of using <em>Location Wizard</em> is creating new
+Location based on a georeferenced file, such as Shapefile or GeoTIFF,
+or by selecting the corresponding EPSG projection code.
+In case of using georeferenced file, you are asked whether the data itself
+should be imported into the new Location.
+<!-- TODO: some of this should be or already is automatic
+dialog with checkboxes would be also more convenient than multiple questions -->
+The default region is then set to match imported map.
+<!-- TODO: difference rasters versus vectors -->
+
+<!--
+TODO: some notes about resolution and extent would be nice
+(as well as removing the step from the wizard)
+
+this was in the text pointing to some unknown text:
+* The rules to define the resolution as described above also apply here.
+* Find below also some rules to define the default raster resolution
+  for a new Location.
+-->
+
+<p>
+After defining a new Location, wxGUI starts automatically.
+<!-- TODO: how GUI start actually works -->
+If data were already imported, you can add them into the Layer Manager now
+and display them.
+More data can be imported into the Location, e.g. using import options in
+the <em>File</em> menu in <em>Layer Manager</em> or
+<a href="r.import.html"><em>r.import</em></a>.
+
+
+<h2>See also</h2>
+
+<em>
+<a href="index.html">GRASS GIS 7 Reference Manual</a>
+<br>
+<a href="grass7.html">GRASS GIS 7 startup program manual page</a>
+<br>
+<a href="http://grasswiki.osgeo.org/wiki/Importing_data">Importing data on GRASS Wiki</a>
+<br>
+<a href="r.import.html">r.import</a>,
+<a href="v.import.html">v.import</a>,
+<a href="r.external.html">r.external</a>,
+<a href="v.external.html">v.external</a>,
+<a href="r.proj.html">r.proj</a>,
+<a href="v.proj.html">v.proj</a>,
+</em>
+
+<p>
+<i>Last changed: $Date$</i>

Copied: grass/trunk/doc/grass_database.png (from rev 65998, grass/trunk/lib/init/help_loc_struct.png)
===================================================================
(Binary files differ)

Added: grass/trunk/doc/grass_database.svg
===================================================================
--- grass/trunk/doc/grass_database.svg	                        (rev 0)
+++ grass/trunk/doc/grass_database.svg	2015-08-26 20:37:24 UTC (rev 66032)
@@ -0,0 +1,520 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="194.78999mm"
+   height="107.56693mm"
+   viewBox="0 0 690.20076 381.14265"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="grass_database_s.svg"
+   inkscape:export-filename="grass_database_structure.png"
+   inkscape:export-xdpi="97.797638"
+   inkscape:export-ydpi="97.797638">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="516.9675"
+     inkscape:cy="218.52638"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer3"
+     showgrid="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1055"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     showguides="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4292"
+       originx="-20.781704"
+       originy="-264.0025" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:groupmode="layer"
+     id="layer2"
+     inkscape:label="lines"
+     style="display:inline"
+     transform="translate(-20.781703,-407.21704)">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 140,452.3622 30,0"
+       id="path4321"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 155,452.3622 0,280 15,0"
+       id="path4323"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 155,732.3622 0,40 15,0"
+       id="path4325"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 290,452.3622 20,0 -10,0 0,240 10,0"
+       id="path4327"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 300,492.3622 10,0"
+       id="path4329"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 430,492.3622 20,0"
+       id="path4331"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 440,492.3622 0,160 10,0"
+       id="path4333"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 440,572.3622 10,0"
+       id="path4335"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 570,492.3622 20,0"
+       id="path4337"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 580,492.3622 0,40 10,0"
+       id="path4339"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 570,572.3622 20,0"
+       id="path4341"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 580,572.3622 0,40 10,0"
+       id="path4343"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#d4d800;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 570,652.3622 20,0"
+       id="path4345"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:label="text"
+     inkscape:groupmode="layer"
+     id="layer1"
+     style="display:inline"
+     transform="translate(-20.781703,-407.21704)">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="43.928326"
+       y="455.54086"
+       id="text4197"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199"
+         x="43.928326"
+         y="455.54086"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">grassdata</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="202.2225"
+       y="453.83432"
+       id="text4197-7"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-5"
+         x="202.2225"
+         y="453.83432"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">nc_spm</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="190.54037"
+       y="734.52502"
+       id="text4197-1"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-9"
+         x="190.54037"
+         y="734.52502"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">usa_albers</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="182.01132"
+       y="774.66211"
+       id="text4197-4"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-78"
+         x="182.01132"
+         y="774.66211"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">world_lat_lon</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="474.36481"
+       y="656.65985"
+       id="text4197-0"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-6"
+         x="474.36481"
+         y="656.65985"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">3D raster</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="486.09454"
+       y="575.28345"
+       id="text4197-5"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-0"
+         x="486.09454"
+         y="575.28345"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">vector</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="625.02332"
+       y="575.28345"
+       id="text4197-43"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-27"
+         x="625.02332"
+         y="575.28345"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">streets</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="323.36652"
+       y="456.87021"
+       id="text4197-9-0"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-90-7"
+         x="323.36652"
+         y="456.87021"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">PERMANENT</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="319.50299"
+       y="494.31436"
+       id="text4197-9-7"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         x="319.50299"
+         y="494.31436"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none"
+         id="tspan4186">new_highway</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="321.86139"
+       y="694.97174"
+       id="text4197-9-1"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-90-9"
+         x="321.86139"
+         y="694.97174"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">wake_county</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="487.18951"
+       y="495.54483"
+       id="text4197-9-2"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-90-38"
+         x="487.18951"
+         y="495.54483"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">raster</tspan></text>
+    <flowRoot
+       xml:space="preserve"
+       id="flowRoot4190"
+       style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
+         id="flowRegion4192"><rect
+           id="rect4194"
+           width="190.91884"
+           height="110.10663"
+           x="445.47726"
+           y="739.2149" /></flowRegion><flowPara
+         id="flowPara4196"></flowPara></flowRoot>    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="616.44299"
+       y="495.97696"
+       id="text4197-3"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-2"
+         x="616.44299"
+         y="495.97696"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">elevation</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="613.16907"
+       y="535.76624"
+       id="text4197-3-8"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-2-5"
+         x="613.16907"
+         y="535.76624"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">landcover</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="616.66272"
+       y="615.4408"
+       id="text4197-43-1"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-27-7"
+         x="616.66272"
+         y="615.4408"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">buildings</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.43300009;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="634.32507"
+       y="656.79169"
+       id="text4197-9"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4199-90"
+         x="634.32507"
+         y="656.79169"
+         style="font-size:15px;stroke-width:4.43300009;stroke-miterlimit:4;stroke-dasharray:none">soils</tspan></text>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="boxes"
+     style="display:inline"
+     transform="translate(-20.781703,-407.21704)">
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155"
+       width="115.67372"
+       height="30.820921"
+       x="22.998203"
+       y="435.99222"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-1"
+       width="115.67372"
+       height="30.820921"
+       x="173.04898"
+       y="435.99222"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-8"
+       width="115.67372"
+       height="30.820921"
+       x="173.04898"
+       y="715.18518"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-4"
+       width="115.67372"
+       height="30.820921"
+       x="173.04898"
+       y="755.32227"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-9"
+       width="115.67372"
+       height="30.820921"
+       x="452.27747"
+       y="635.78918"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-91"
+       width="115.67372"
+       height="30.820921"
+       x="452.27747"
+       y="554.71307"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-47"
+       width="115.67372"
+       height="30.820921"
+       x="593.09222"
+       y="554.71307"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-12-0"
+       width="115.67372"
+       height="30.820921"
+       x="312.92468"
+       y="435.99222"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-12-1"
+       width="115.67372"
+       height="30.820921"
+       x="312.92468"
+       y="474.97446"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-12-5"
+       width="115.67372"
+       height="30.820921"
+       x="312.92468"
+       y="675.63184"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-12-2"
+       width="115.67372"
+       height="30.820921"
+       x="452.27747"
+       y="474.97446"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-0"
+       width="115.67372"
+       height="30.820921"
+       x="593.09222"
+       y="474.97446"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-0-7"
+       width="115.67372"
+       height="30.820921"
+       x="593.09222"
+       y="514.76379"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-47-2"
+       width="115.67372"
+       height="30.820921"
+       x="593.09222"
+       y="594.87042"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <rect
+       style="fill:none;stroke:#0092a8;stroke-width:4.43300009;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect4155-12"
+       width="115.67372"
+       height="30.820921"
+       x="593.09222"
+       y="635.78918"
+       rx="5.7467012"
+       ry="5.5560374" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="30"
+       y="422.41235"
+       id="text4363"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4365"
+         x="30"
+         y="422.41235">Database</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="331.38074"
+       y="422.16626"
+       id="text4367"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4369"
+         x="331.38074"
+         y="422.16626">Mapset</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="190"
+       y="422.41235"
+       id="text4371"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4373"
+         x="190"
+         y="422.41235">Location</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:20px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="622"
+       y="422.16626"
+       id="text4375"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4377"
+         x="622"
+         y="422.16626">Maps</tspan></text>
+  </g>
+</svg>



More information about the grass-commit mailing list