/*! \mainpage GRASS_Programmers_Manual GRASS 6 Programmer's Manual: GIS Library
GRASS 6 Programmer's Manual
GRASS GIS (Geographic Resources Analysis Support System) is an open source,
Free Software Geographical Information System (GIS) with raster, topological
vector, image processing, and graphics production functionality that
operates on various platforms through a graphical user interface and shell
in X-Window. It is released under GNU General Public License (GPL).
This manual introduces the reader to the Geographic Resources Analysis
Support System from the programming perspective. Design theory, system
support libraries, system maintenance, and system enhancement are all
presented. Standard GRASS 4.x conventions are still used in much of the
code. This work is part of ongoing research being performed by the
GRASS Development Team coordinated at
FBK-irst(formerly ITC-irst), Trento, Italy,
an international team of programmers,
GRASS module authors are cited within their module's source code and the
contributed manual pages.
© 2000-2007 Markus Neteler / GRASS Development Team
Published under GNU Free Documentation License (GFDL)
http://www.fsf.org/copyleft/fdl.html
This manual comes with ABSOLUTELY NO WARRANTY. The development of GRASS
software and this manual is kindly supported by Intevation GmbH,
Osnabrück, Germany, who provide the GRASS CVS repository.
Main web site: http://grass.itc.it
Missing entries below are either not yet uploaded to CVS (need to be migrated
from GRASS 5 Programmer's manual or are simply undocumented
Principal library
(the name refers to the directory name in lib/ in the source code)
- gis: GRASS GIS library, with following subsection - \ref gislib
- Raster File Processing - \ref gisrasterlib
- Sites File Processing (legacy, merged into vector) - \ref gissiteslib
- Vector File Processing - \ref gisvectorlib
Further libraries
(the name refers to the directory name in lib/ in the source code)
- bitmap: bitmap library for X Window Bitmaps - \ref bitmaplib
- btree: binary tree library - \ref btreelib
- bwidget: Tcl/Tk extra library - \ref bwidgetlib
- cdhc: library for testing normality and exponentiality - \ref cdhc
- D: display library - \ref d_displaylib
- datetime: DateTime library - \ref datetimelib
- db: database management interface database drivers (DBMI) - \ref dbmilib
- display: library for CELL driver - \ref displaylib
- edit: edit library - \ref edit
- external: external libraries from other projects (such as shapelib) - \ref external
- fonts: Hershey library - \ref fonts
- forms: forms library - \ref forms
- front.end: interface for interactive modules library - \ref frontend
- g3d: G3D raster volume library - \ref g3dlib
- gmath: generic mathematical functions and BLAS/LAPACK library wrapper - \ref gmathlib
- gpdelib: partial differential equations library - \ref gpdelib
- gtcltk: Tcl/Tk stuff - \ref gtcltk
- imagery: imagery library - \ref imagerylib
- image: extra imagery library (mainly still unused) - \ref image3lib
- init: GRASS initialization code + scripts - \ref grassinit
- linkm: linked list memory manager - \ref linkmlib
- ogsf: openGL (R) ported gsurf library (required for NVIZ) - \ref ogsflib
- proj: wrapper to PROJ4 projection library - \ref projlib
- raster: Raster Graphics Library (note: raster map functions are in \ref gislib) - \ref rastergraphicslib
- rowio: row in/out library - \ref rowiolib
- rst: library for interpolation with regularized splines with tension - \ref rstlib
- segment: segment library for segmented raster reading - \ref segmentlib
- sites: old Sites library, now interfaced to vect library - \ref sites
- symbol: drawing symbols for point vector data library - \ref symbol
- vask: Cursor management library - \ref vasklib
- vect: GRASS vector and Direct Graph library - \ref Vector_Library
Interfaces
File structure of GRASS Location
A GRASS raster map consists of several files in several subdirectories in a mapset,
organized as follows:
- cellhd/:
map header including projection code, coordinates representing
the spatial extent of the raster map, number of rows and columns, resolution,
and information about map compression;
- cell/, fcell/ or grid3/:
generic matrix of values in a compressed, portable
format which depends on the raster data type (integer, floating point or 3D grid);
- hist/:
history file which contains metadata such as the data source,
the command that was used to generate the raster map, or
other information provided by the user;
- cats/:
optional category file which contains text or numeric labels assigned
to the raster map categories;
- colr/:
optional color table;
- cell_misc/:
optional timestamp, range of values, quantization rules (for floating point maps)
and null (no-data) files;
GRASS vector maps are stored in several separate files in a single
directory. While the attributes are stored in either a DBF file, a SQLite file
or in an external DBMS (PostgreSQL, MySQL, ODBC), the geometric data are saved
as follows:
- head: vector map ASCII header with information about the map creation
(date and name), its scale and threshold;
- coor: binary geometry file which includes the coordinates of graphic
elements (primitives) that define the vector feature;
- topo: binary topology file describes the spatial relationships between the
map's graphic elements;
- hist: history ASCII file with complete commands that were used to
create the vector map, as well as the name and date/time of the map
creation;
- cidx: binary category index file which is used to link the vector
object IDs to the attribute table rows;
- dbln: ASCII file which contains definition(s) of link to attribute
storage in database (DBMS).
*/