<?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%8FEl+selvaje</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%8FEl+selvaje"/>
	<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/wiki/Special:Contributions/%E2%9A%A0%EF%B8%8FEl_selvaje"/>
	<updated>2026-05-10T09:45:57Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=Documentation_and_Education_Working_Group&amp;diff=27271</id>
		<title>Documentation and Education Working Group</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=Documentation_and_Education_Working_Group&amp;diff=27271"/>
		<updated>2023-10-30T17:47:21Z</updated>

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

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

		<summary type="html">&lt;p&gt;⚠️El selvaje: /* Members */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Documentation and education working group is established to coordinate the development of documentation and education materials to meet the needs of a wide range of GRASS users.&lt;br /&gt;
&lt;br /&gt;
== Scope ==&lt;br /&gt;
* coordinate development of documentation and education materials&lt;br /&gt;
* coordinate development of sample datasets and localized datasets&lt;br /&gt;
* decide on best formats and place for documentation, tutorials&lt;br /&gt;
* develop onboarding materials for contributors of documentation and education materials&lt;br /&gt;
&lt;br /&gt;
== Members ==&lt;br /&gt;
Let us know who you are and what are your interests and topics you want to discuss and develop as part of this group.&lt;br /&gt;
&lt;br /&gt;
; [https://wiki.osgeo.org/wiki/User:Helena Helena Mitasova] (working group coordinator)&lt;br /&gt;
: Professor at North Carolina State University&lt;br /&gt;
: Interested in wiki pages cleanup, manual pages updates, integration of GRASS in courses, localized data sets&lt;br /&gt;
&lt;br /&gt;
; [https://wiki.osgeo.org/wiki/Anna_Petrasova Anna Petrasova]&lt;br /&gt;
: Researcher, educator and software developer at North Carolina State University&lt;br /&gt;
: Topics of interest include developing tutorials and workshops in Jupyter Notebooks, onboarding materials&lt;br /&gt;
&lt;br /&gt;
; Eric Patton&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Florian Betz&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Hernán De Angelis&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Micha Silver&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Titus Kiprutto&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Paulo van Breugel&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Brendan Harmon&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Giuseppe Amatulli&lt;br /&gt;
: Research scientist at School of the Environment, Yale University. Educator at Spatial Ecology&lt;br /&gt;
: Topics of interest include developing tutorials and workshops in GRASS&lt;br /&gt;
&lt;br /&gt;
; Michael Barton&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Massimo Di Stefano&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
; Carlos Grohmann&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To be added to this working group, please contact the group coordinator.&lt;br /&gt;
&lt;br /&gt;
== Communication Channels ==&lt;br /&gt;
* [https://lists.osgeo.org/mailman/listinfo/grass-user grass-user] and [https://lists.osgeo.org/mailman/listinfo/grass-dev grass-dev] mailing lists&lt;br /&gt;
* [https://github.com/OSGeo/grass OSGeo/grass GitHub issues and pull requests] and [https://github.com/orgs/OSGeo/projects/3 GitHub project]&lt;br /&gt;
* [https://app.gitter.im/#/room/#grassgis_documentation:gitter.im grassgis/documentation gitter room]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;br /&gt;
[[Category:Working_Groups]]&lt;/div&gt;</summary>
		<author><name>⚠️El selvaje</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Performance&amp;diff=26501</id>
		<title>GRASS GIS Performance</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Performance&amp;diff=26501"/>
		<updated>2021-02-27T14:00:05Z</updated>

		<summary type="html">&lt;p&gt;⚠️El selvaje: add Float32 range-bound&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS GIS Performance ==&lt;br /&gt;
&lt;br /&gt;
GRASS GIS is noted for being ready for massive data analysis. This page contains an yet incomplete collection of performance indicators.&lt;br /&gt;
&lt;br /&gt;
=== Architecture ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS is fully 32bit and 64bit compliant. See also the [[Software requirements specification]].&lt;br /&gt;
&lt;br /&gt;
=== Search strategies used in processing geodata ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS makes heavy use of search trees in order to speed up computation:&lt;br /&gt;
* segment lib: btree2&lt;br /&gt;
* 2D splines (RST): quadtree&lt;br /&gt;
* 3D splines (RST): octree&lt;br /&gt;
* vector lib topology: R*-tree&lt;br /&gt;
&lt;br /&gt;
See the [http://grass.osgeo.org/programming7/ Programmer's manual] for details.&lt;br /&gt;
&lt;br /&gt;
=== Number of opened input files ===&lt;br /&gt;
&lt;br /&gt;
There are only operating system constraints of the number of input files which can be opened simultaneously. Commonly the limit is 1024 files. In operating systems like Linux this limit can be overcome with the &amp;quot;ulimit&amp;quot; settings.&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
* {{cmd|r.series}}&lt;br /&gt;
* {{cmd|r.series.accumulate}}&lt;br /&gt;
&lt;br /&gt;
=== Memory management ===&lt;br /&gt;
&lt;br /&gt;
Due to the modular architecture of GRASS GIS the overhead of the software itself is minimal. &lt;br /&gt;
&lt;br /&gt;
'''Raster data operations''': where appropriate, modules offer a parameter to optimize caching (&amp;quot;memory&amp;quot; parameter).&lt;br /&gt;
# Pixel based operations: they have very low impact on memory usage.&lt;br /&gt;
# Moving window based operations: they have medium impact on memory usage.&lt;br /&gt;
# Full map operations (watersheds, cost surfaces, etc.): they have high impact on memory usage.&lt;br /&gt;
# Statistical operations: while univariate statistics have low impact on memory usage, quartiles and other aggregated statistics have medium impact on memory usage.&lt;br /&gt;
&lt;br /&gt;
'''Vector data operations''':&lt;br /&gt;
# Vector point operations: memory consumption depends on the amount of points. LiDAR data processing is commonly demanding. For some operations the creation of topology can be skipped to reduce the memory footprint.&lt;br /&gt;
# Vector line operations: they have low impact on memory usage (depends on the amount of data).&lt;br /&gt;
# Vector area/faces operations: they have high impact on memory usage.&lt;br /&gt;
# Topological versus non-topological operations: a subset of vector modules is able to operate on point vector maps without topology which saves notably RAM usage.&lt;br /&gt;
&lt;br /&gt;
'''Database operations''':&lt;br /&gt;
* Most operations are simply SQL transactions with low impact on memory usage.&lt;br /&gt;
&lt;br /&gt;
'''See also'''&lt;br /&gt;
* Solving [[Memory issues]] when dealing with large amounts of data&lt;br /&gt;
&lt;br /&gt;
=== Vector management ===&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;vector map&amp;quot; is a data layer consisting of a number of sparse features in geographic space. These might be data points (drill sites), lines (roads), polygons (park boundary), volumes (3D CAD structure), or some combination of all these. Typically each feature in the map will be tied to a set of attribute layers stored in a database (road names, site ID, geologic type, etc.). As a general rule these can exist in 2D or 3D space and are independent of the GIS's computation region.&lt;br /&gt;
&lt;br /&gt;
See also {{cmd|vectorintro}} in the manual.&lt;br /&gt;
&lt;br /&gt;
==== Vector geometry ====&lt;br /&gt;
&lt;br /&gt;
In all GRASS GIS versions, &lt;br /&gt;
&lt;br /&gt;
* with topology the feature limit is at time 2^31 - 1 (about 2 billion) features per vector map.&lt;br /&gt;
* ''TODO: add limit if topology creation is disabled at import for points (e.g., LiDAR points).''&lt;br /&gt;
&lt;br /&gt;
==== Vector attribute management ====&lt;br /&gt;
&lt;br /&gt;
Attributes are managed through a SQL interface (see also {{cmd|databaseintro}})&lt;br /&gt;
&lt;br /&gt;
The default database backend is&lt;br /&gt;
* DBF files (tend to be slow) in GRASS GIS 6 ({{cmd|grass-dbf|version=64}})&lt;br /&gt;
* SQLite file (very fast compared to DBF  in GRASS GIS 7 ({{cmd|grass-sqlite}})&lt;br /&gt;
&lt;br /&gt;
Other SQL backends are offered as well including PostgreSQL, MySQL, etc.: see {{cmd|sql}} support in GRASS GIS.&lt;br /&gt;
&lt;br /&gt;
'''Speed of DBF versus SQLite drivers''': attribute operations which take hours using the DBF backend just take seconds using the SQLite backend.&lt;br /&gt;
&lt;br /&gt;
==== Maximum Number of Attribute Columns ====&lt;br /&gt;
&lt;br /&gt;
The maximum number of attribute columns of a table connected to a vector map is defined by the capabilities of the the selected database backend (set with {{cmd|db.connect}}).&lt;br /&gt;
&lt;br /&gt;
* '''DBF-Backend''': GRASS 4.x - 6.x use by default the DBF backend. While there is no explicitly stated maximum number of allowed attribute columns, Web sources report a maximum '''between 128 and 1023/24'''. Trials with GRASS 6.4.2 in 2012 result in write failure if &amp;gt; 2000 attribute columns are used. Export to DBF-based ESRI Shapefile provides a warning if more that '''255''' attributes are used: Other software tools may ignore all further attributes, hence a maximum of '''128''' columns may be prudent.&lt;br /&gt;
* '''SQLite-Backend''': GRASS 7.x uses by default the SQLite backend. The default maximum number of attribute columns is '''2000''' according to the [http://www.sqlite.org/limits.html#max_column specifications]. This number can be increased by compiling SQlite with changed settings.&lt;br /&gt;
* '''MySQL-Backend''': The default maximum number of attribute columns is '''4096''' according to the [http://wiki.postgresql.org/wiki/FAQ#What_is_the_maximum_size_for_a_row.2C_a_table.2C_and_a_database.3F specifications].&lt;br /&gt;
* '''PostgreSQL-Backend''': The default maximum number of attribute columns is '''250-1600''' according to the [http://dev.mysql.com/doc/refman/5.1/en/column-count-limit.html specifications] depending on column types.&lt;br /&gt;
* '''Oracle-Backend''': The default maximum number of attribute columns is '''1000''' according to the [http://docs.oracle.com/cd/B19306_01/server.102/b14237/limits003.htm specifications].&lt;br /&gt;
&lt;br /&gt;
==== Maximum file size of the attributes file ====&lt;br /&gt;
&lt;br /&gt;
* '''DBF-Backend''' (in GRASS 6 the default DB backend): ''to be added'' (2Gb? in case of LFS enabled?)&lt;br /&gt;
* '''SQLite-Backend''' (in GRASS 7 the default DB backend): The maximum file size of a SQLite db is '''140 TB''', independent of the architecture, i.e. Large File Support (LFS) is always there. Usually SQLite will hit the maximum file size limit of the underlying filesystem or disk hardware size limit long before it hits its own [http://www.sqlite.org/fileformat2.html internal size limit].&lt;br /&gt;
&lt;br /&gt;
=== Raster management ===&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;raster map&amp;quot; is a data layer consisting of a gridded array of cells. It has a certain number of rows and columns, with a data point (or null value indicator) in each cell. These may exist as a 2D grid or as a 3D cube made up of many smaller cubes, i.e. a stack of 2D grids. &lt;br /&gt;
&lt;br /&gt;
See also {{cmd|rasterintro}} in the manual.&lt;br /&gt;
&lt;br /&gt;
==== Raster map precision types ====&lt;br /&gt;
&lt;br /&gt;
* '''CELL DATA TYPE''': a raster map from INTEGER type (4 bytes, whole numbers only).&lt;br /&gt;
** In GRASS GIS, CELL is a 32 bit integer with a range from -2,147,483,647 to +2,147,483,647. The value -2,147,483,648 is reserved for NODATA.&lt;br /&gt;
* '''FCELL DATA TYPE''': a raster map from FLOAT type (4 bytes, 7-9 digits precision).&lt;br /&gt;
** In GRASS GIS, FCELL is a 32 bit float (Float32) with a range from -3.4E38 to 3.4E38. However, the integer precision can be only ensured between -16777216 and 16777216. If your raster overpass this range we strongly suggest to use DCELL, as Float64 data type. &lt;br /&gt;
* '''DCELL DATA TYPE''': a raster map from DOUBLE type (8 bytes, 15-17 digits precision).&lt;br /&gt;
** In GRASS GIS, DCELL is a 64 bit float (Float64) with a range from -1.79E308 to 1.79E308.&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;
Aliases:&lt;br /&gt;
* '''INTEGER MAP''': see CELL DATA TYPE&lt;br /&gt;
* '''FLOAT MAP''': see FCELL DATA TYPE&lt;br /&gt;
* '''DOUBLE MAP''': see DCELL DATA TYPE&lt;br /&gt;
&lt;br /&gt;
(reference in the [https://github.com/OSGeo/grass/blob/master/include/gis.h#L588 GRASS GIS source code])&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS raster semantics]]&lt;br /&gt;
&lt;br /&gt;
== Large file support ==&lt;br /&gt;
=== Large raster data processing ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS 7 supports the off_t type, hence it can address an enormous amount of raster data.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Large raster data processing]]&lt;br /&gt;
&lt;br /&gt;
==== Some '''benchmarks''' ====&lt;br /&gt;
&lt;br /&gt;
* Import of [http://www.ecad.eu/ ECAD 6.0] Tmean dataset: 22650 layers in single netCDF file: import takes 300 Seconds while reading file via NFS (i.e. 75 maps per second)&lt;br /&gt;
* Calculation of watersheds, half basins, flow accumulation, drainage directions, and stream with {{cmd|r.watershed}} for an area of 90,000 rows x 100,000 cols (9,000,000,000 cells, metric) successfully done in 77.2 hours (Intel Xeon X5670, 2.93GHz)&lt;br /&gt;
* European DEM at 25m ([http://www.eea.europa.eu/data-and-maps/data/eu-dem#tab-original-data eudem_dem_3035_europe.tif], 24.1 GB GeoTIFF, 48 billion cells) processing:&lt;br /&gt;
** Import of this GeoTIFF file with r.in.gdal on a blade via NFS: a) '''77h''' without memory option (hence 40MB = GDAL's default cache), b) ''''1.5h'''' with memory=300 (hence using 300MB GDAL cache), c) ''''1.5h'''' with memory=2000 (hence using 2GB GDAL cache)&lt;br /&gt;
* r.neighbors with [https://trac.osgeo.org/grass/ticket/2676#comment:2 3.694261e+12 pixels] (rows: 440046 cols: 830958 cells)&lt;br /&gt;
* Import of Global Forest Loss map with rows=560000 * cols=1440000 = 8.064e+11 pixels (see {{trac|3365}}); map can be easily shown in GRASS GIS monitor&lt;br /&gt;
* r.stream.extract: the upper limit matrix cell number that can handle is about 1.15e+18 raster cells (1.15 &amp;quot;[https://en.wikipedia.org/wiki/Unit_prefix exa]&amp;quot;-cells. The number of detected stream segments must not be larger than 2,147,483,647 streams.&lt;br /&gt;
* ... add more&lt;br /&gt;
&lt;br /&gt;
=== Large vector data processing ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS 7 supports the off_t type, hence it can address an enormous amount of vector data.&lt;br /&gt;
Currently multi-billion vector points have been managed ([http://lists.osgeo.org/pipermail/grass-dev/2011-January/052996.html citation]) without topology (since not needed). In all GRASS versions, the limit with topology is at  time 2^31 - 1 (about 2 billion) features per vector map.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Large vector data processing]]&lt;br /&gt;
&lt;br /&gt;
==== Some '''benchmarks''' ====&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
* ... add more&lt;br /&gt;
&lt;br /&gt;
== Parallelization ==&lt;br /&gt;
&lt;br /&gt;
In GRASS 7, a few modules have been experimentally parallelized with OpenMP. However, if data can be processed in chunks, GRASS GIS can be used on clusters.&lt;br /&gt;
&lt;br /&gt;
* [[OpenMP/Benchmarks]]&lt;br /&gt;
&lt;br /&gt;
Parallelized modules:&lt;br /&gt;
&lt;br /&gt;
* v.surf.rst, r.sim.water, r.sun, ...&lt;br /&gt;
&lt;br /&gt;
Note: As of 2020,  there are still issues with openMP (it may lead to weird results or perform slower).&lt;br /&gt;
&lt;br /&gt;
== Benchmarks ==&lt;br /&gt;
&lt;br /&gt;
=== r.neighbors ===&lt;br /&gt;
&lt;br /&gt;
  $ g.region -pa n=228500 s=215000 w=630000 e=645000 res=0.5&lt;br /&gt;
  $ r.random.surface output=random&lt;br /&gt;
  $ time r.neighbors input=random output=avg,min,max method=average,minimum,maximum size=5&lt;br /&gt;
  real	6m58.801s&lt;br /&gt;
  user	6m45.132s&lt;br /&gt;
  sys	0m6.864s&lt;br /&gt;
&lt;br /&gt;
810,000,000 cells (27,000x30,000), 3 outputs (average, min, max), window size 5, one core, negligible use of RAM.&lt;br /&gt;
&lt;br /&gt;
== User reports ==&lt;br /&gt;
&lt;br /&gt;
* [[Case studies]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Parallel GRASS jobs]]&lt;br /&gt;
* [[Software requirements specification]]&lt;br /&gt;
* [[Performance comparison GRASS vs. ArcGIS]]&lt;br /&gt;
* [[OpenMP/Benchmarks|Benchmarks of OpenMP parallelized code]]&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/GIS_workstation_setup_tips GIS workstation setup tips] (OSGeo Wiki page)&lt;br /&gt;
&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
[[Category: Hardware]]&lt;br /&gt;
[[Category: massive data analysis]]&lt;br /&gt;
[[Category: Raster]]&lt;br /&gt;
[[Category: Vector]]&lt;/div&gt;</summary>
		<author><name>⚠️El selvaje</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_raster_semantics&amp;diff=26500</id>
		<title>GRASS raster semantics</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_raster_semantics&amp;diff=26500"/>
		<updated>2021-02-27T13:59:23Z</updated>

		<summary type="html">&lt;p&gt;⚠️El selvaje: adding Float32 range-bound&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A quick summary c/o Glynn Clements:&lt;br /&gt;
&lt;br /&gt;
== Raster map precision types ==&lt;br /&gt;
&lt;br /&gt;
* '''CELL DATA TYPE''': a raster map from INTEGER type (4 bytes, whole numbers only).&lt;br /&gt;
** In GRASS GIS, CELL is a 32 bit integer with a range from -2,147,483,647 to +2,147,483,647. The value -2,147,483,648 is reserved for NODATA.&lt;br /&gt;
* '''FCELL DATA TYPE''': a raster map from FLOAT type (4 bytes, 7-9 digits precision).&lt;br /&gt;
** In GRASS GIS, FCELL is a 32 bit float (Float32) with a range from -3.4E38 to 3.4E38. However, the integer precision can be only ensured between -16777216 and 16777216. If your raster overpass this range we strongly suggest to use DCELL, as Float64 data type. &lt;br /&gt;
* '''DCELL DATA TYPE''': a raster map from DOUBLE type (8 bytes, 15-17 digits precision).&lt;br /&gt;
** In GRASS GIS, DCELL is a 64 bit float (Float64) with a range from -1.79E308 to 1.79E308.&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;
Aliases:&lt;br /&gt;
* '''INTEGER MAP''': see CELL DATA TYPE&lt;br /&gt;
* '''FLOAT MAP''': see FCELL DATA TYPE&lt;br /&gt;
* '''DOUBLE MAP''': see DCELL DATA TYPE&lt;br /&gt;
&lt;br /&gt;
(reference in the [https://github.com/OSGeo/grass/blob/master/include/gis.h#L588 GRASS GIS source code])&lt;br /&gt;
&lt;br /&gt;
==Region Calculations==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;current region&amp;quot; or &amp;quot;computational region&amp;quot; is the actual setting of the region boundaries and the actual raster resolution. Note that the computational region isn't limited to raster data; it may also affect some&lt;br /&gt;
vector operations.&lt;br /&gt;
&lt;br /&gt;
The computational region's bounds describe a rectangle in two-dimensional space. For&lt;br /&gt;
raster operations, this rectangle is subdivided into a grid of&lt;br /&gt;
rectangular cells, so the region's bounds are aligned with the edges&lt;br /&gt;
of the outermost cells.&lt;br /&gt;
&lt;br /&gt;
For details, see [[Computational region]].&lt;br /&gt;
&lt;br /&gt;
==Cell Locations==&lt;br /&gt;
&lt;br /&gt;
* [[Grid registration|GRASS uses cell-center registration not grid point registration]]&lt;br /&gt;
* The raster region defined with {{cmd|g.region}} refers to the outer-boundary  edge of all cells contained within it.&lt;br /&gt;
&lt;br /&gt;
Cells are areas, not points, so they don't have locations. Their&lt;br /&gt;
corners have locations, as do their centres.&lt;br /&gt;
&lt;br /&gt;
A cell with array indices (i,j) (easting, northing) corresponds to the&lt;br /&gt;
rectangle:&lt;br /&gt;
&lt;br /&gt;
       { (x,y) : west + i * ewres &amp;lt;= x &amp;lt; west + (i+1) * ewres,&lt;br /&gt;
                 north - (j+1) * nsres &amp;lt;= y &amp;lt; north - j * nsres }&lt;br /&gt;
&lt;br /&gt;
whose centre is at:&lt;br /&gt;
&lt;br /&gt;
       (west + (i+1/2) * ewres, north - (j+1/2) * nsres)&lt;br /&gt;
&lt;br /&gt;
[Subject to wrapping of longitude values in lat/lon locations.]&lt;br /&gt;
&lt;br /&gt;
==Raster to Vector Conversions==&lt;br /&gt;
&lt;br /&gt;
IIRC, {{cmd|r.to.vect}} uses the midpoints of the cell's edges (i.e. one&lt;br /&gt;
coordinate will be on a grid line, the other will be mid-way between&lt;br /&gt;
grid lines).&lt;br /&gt;
&lt;br /&gt;
==Resampling==&lt;br /&gt;
&lt;br /&gt;
(see also [[Interpolation#Resampling_methods_and_interpolation_in_GRASS]])&lt;br /&gt;
&lt;br /&gt;
The built-in nearest-neighbour resampling of raster data calculates&lt;br /&gt;
the centre of each region cell, and takes the value of the raster cell&lt;br /&gt;
in which that point falls.&lt;br /&gt;
&lt;br /&gt;
If the point falls exactly upon a grid line, the exact result will be&lt;br /&gt;
determined by the direction of any rounding error.&lt;br /&gt;
&lt;br /&gt;
[One consequence of this is that downsampling by a factor which is an&lt;br /&gt;
even integer will always sample exactly on the boundary between cells,&lt;br /&gt;
meaning that the result is ill-defined.]&lt;br /&gt;
&lt;br /&gt;
{{cmd|r.resample}} uses the built-in resampling, so it should produce&lt;br /&gt;
identical results.&lt;br /&gt;
&lt;br /&gt;
{{cmd|r.resamp.interp}} method=nearest uses the same algorithm, but not the&lt;br /&gt;
same code, so it may not produce identical results in cases which are&lt;br /&gt;
decided by the rounding of floating-point numbers.&lt;br /&gt;
&lt;br /&gt;
For method=bilinear and method=bicubic, the raster values are treated&lt;br /&gt;
as samples at each raster cell's centre, defining a piecewise-&lt;br /&gt;
continuous surface. The resulting raster values are obtained by&lt;br /&gt;
sampling the surface at each region cell's centre.&lt;br /&gt;
&lt;br /&gt;
As the algorithm only interpolates, and doesn't extrapolate, a margin&lt;br /&gt;
of 0.5 (for bilinear) or 1.5 (for bicubic) cells is lost from the&lt;br /&gt;
extent of the original raster. Any samples taken within this margin&lt;br /&gt;
will be null.&lt;br /&gt;
&lt;br /&gt;
AFAIK, {{cmd|r.resamp.rst}} behaves similarly, i.e. it computes a surface&lt;br /&gt;
assuming that the values are samples at each raster cell's centre, and&lt;br /&gt;
samples the surface at each region cell's centre.&lt;br /&gt;
&lt;br /&gt;
For {{cmd|r.resamp.stats}} without -w, the value of each region cell is the&lt;br /&gt;
chosen aggregate of the values from all of the raster cells whose&lt;br /&gt;
centres fall within the bounds of the region cell.&lt;br /&gt;
&lt;br /&gt;
With -w, the samples are weighted according to the proportion of the&lt;br /&gt;
raster cell which falls within the bounds of the region cell, so the&lt;br /&gt;
result is normally[1] unaffected by rounding error (a miniscule&lt;br /&gt;
difference in the position of the boundary results in the addition or&lt;br /&gt;
subtraction of a sample weighted by a miniscule factor).&lt;br /&gt;
&lt;br /&gt;
[1] The min and max aggregates can't use weights, so -w has no effect&lt;br /&gt;
for those.&lt;br /&gt;
&lt;br /&gt;
==General Rules==&lt;br /&gt;
&lt;br /&gt;
For the most part, the interpretation is the &amp;quot;obvious&amp;quot; one, given:&lt;br /&gt;
&lt;br /&gt;
# Cells are areas rather than points.&lt;br /&gt;
# Operations which need a point (e.g. interpolation) use the cell's centre.&lt;br /&gt;
&lt;br /&gt;
== Handling of NULL values ==&lt;br /&gt;
&lt;br /&gt;
=== General remarks ===&lt;br /&gt;
&lt;br /&gt;
The NULL (no data) handling depends on the map precision type. See for details&lt;br /&gt;
* http://grass.osgeo.org/programming7/rasterlib.html#Null_no_data&lt;br /&gt;
&lt;br /&gt;
=== {{cmd|r.mapcalc}} ===&lt;br /&gt;
&lt;br /&gt;
Nearly all operators and functions return null if any of their&lt;br /&gt;
arguments are null.&lt;br /&gt;
&lt;br /&gt;
The main exceptions are:&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;isnull(x)&amp;quot; returns 0 if x is non-null and 1 if x is null.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;if(1,a,b)&amp;quot; returns a even if b is null.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;if(0,a,b)&amp;quot; returns b even if a is null.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;eval(a,b,c,...,x)&amp;quot; returns x even if any or all of a,b,c,... are null.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;0 &amp;amp;&amp;amp;&amp;amp; x&amp;quot; and &amp;quot;x &amp;amp;&amp;amp;&amp;amp; 0&amp;quot; return 0 even if x is null.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;1 ||| x&amp;quot; and &amp;quot;x ||| 1&amp;quot; return 1 even if x is null.&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;graph(x,x1,y1,...,xn,yn)&amp;quot; will return null if x is null or any of the x[i] are null, or if a &amp;quot;relevant&amp;quot; y[i] is null, but not where a y[i] which isn't used in the calculation is null.&lt;br /&gt;
&lt;br /&gt;
[The &amp;amp;&amp;amp;&amp;amp; and ||| operators are a relatively recent addition; the older&lt;br /&gt;
&amp;amp;&amp;amp; and || operators follow the usual behaviour for nulls, i.e. they&lt;br /&gt;
return null if either operand is null.]&lt;br /&gt;
&lt;br /&gt;
The behaviour is quite intuitive if you view null as representing an&lt;br /&gt;
unknown quantity. This explains why both &amp;quot;x == null()&amp;quot; and &amp;quot;x != null()&amp;quot;&lt;br /&gt;
are always null, regardless of whether x is null or non-null.&lt;br /&gt;
&lt;br /&gt;
null() is an unknown value, so it's unknown whether or not it's equal&lt;br /&gt;
to any particular (known) value. If x is also null, then you have two&lt;br /&gt;
unknown values, and it's unknown whether or not the two are equal.&lt;br /&gt;
&lt;br /&gt;
In many respects, the behaviour is similar to that of NaN in&lt;br /&gt;
floating-point arithmetic.&lt;br /&gt;
&lt;br /&gt;
With the exception of the cases listed above, r.mapcalc doesn't try to&lt;br /&gt;
detect &amp;quot;special&amp;quot; cases where the result can be deduced even if one of&lt;br /&gt;
the operands is null. E.g. if x is null, &amp;quot;x * 0&amp;quot; is null rather than&lt;br /&gt;
zero, &amp;quot;x == x&amp;quot; is null rather than 1, &amp;quot;x != x&amp;quot; is null rather than 0,&lt;br /&gt;
etc.&lt;br /&gt;
&lt;br /&gt;
If you have a &amp;quot;boolean&amp;quot; map where the values are either null or 1, you&lt;br /&gt;
normally want to convert null to 0 before performing any other&lt;br /&gt;
processing. You can either replace the nulls in an existing map using&lt;br /&gt;
e.g. &amp;quot;r.null null=0&amp;quot;, or adjust the tests within r.mapcalc&lt;br /&gt;
&lt;br /&gt;
== Arithmetic operations ==&lt;br /&gt;
&lt;br /&gt;
r.mapcalc: Arithmetic operations on mixed types promote the lesser type to the greater type, where CELL &amp;lt; FCELL &amp;lt; DCELL:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
         |  CELL FCELL DCELL&lt;br /&gt;
   ------+------------------&lt;br /&gt;
    CELL |  CELL FCELL DCELL&lt;br /&gt;
   FCELL | FCELL FCELL DCELL&lt;br /&gt;
   DCELL | DCELL DCELL DCELL&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Developer Notes Rules==&lt;br /&gt;
From a programming perspective, the functions:&lt;br /&gt;
&lt;br /&gt;
       G_row_to_northing()&lt;br /&gt;
       G_col_to_easting()&lt;br /&gt;
       G_northing_to_row()&lt;br /&gt;
       G_easting_to_col()&lt;br /&gt;
&lt;br /&gt;
all transform floating-point values.&lt;br /&gt;
&lt;br /&gt;
Passing integer row or column indices to the first two functions will&lt;br /&gt;
return the coordinates of the cell's top-left corner; for the centre&lt;br /&gt;
coordinates, pass row+0.5 and/or col+0.5.&lt;br /&gt;
&lt;br /&gt;
Similarly, the last two functions will typically return non-integral&lt;br /&gt;
values; use floor() to discard the fractional part and obtain the row&lt;br /&gt;
or column index of the cell within which the point lies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
[[Category: Interpolation]]&lt;br /&gt;
[[Category:Raster]]&lt;/div&gt;</summary>
		<author><name>⚠️El selvaje</name></author>
	</entry>
	<entry>
		<id>https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Performance&amp;diff=26499</id>
		<title>GRASS GIS Performance</title>
		<link rel="alternate" type="text/html" href="https://grasswiki.osgeo.org/w/index.php?title=GRASS_GIS_Performance&amp;diff=26499"/>
		<updated>2021-02-27T13:52:10Z</updated>

		<summary type="html">&lt;p&gt;⚠️El selvaje: /* Raster map precision types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GRASS GIS Performance ==&lt;br /&gt;
&lt;br /&gt;
GRASS GIS is noted for being ready for massive data analysis. This page contains an yet incomplete collection of performance indicators.&lt;br /&gt;
&lt;br /&gt;
=== Architecture ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS is fully 32bit and 64bit compliant. See also the [[Software requirements specification]].&lt;br /&gt;
&lt;br /&gt;
=== Search strategies used in processing geodata ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS makes heavy use of search trees in order to speed up computation:&lt;br /&gt;
* segment lib: btree2&lt;br /&gt;
* 2D splines (RST): quadtree&lt;br /&gt;
* 3D splines (RST): octree&lt;br /&gt;
* vector lib topology: R*-tree&lt;br /&gt;
&lt;br /&gt;
See the [http://grass.osgeo.org/programming7/ Programmer's manual] for details.&lt;br /&gt;
&lt;br /&gt;
=== Number of opened input files ===&lt;br /&gt;
&lt;br /&gt;
There are only operating system constraints of the number of input files which can be opened simultaneously. Commonly the limit is 1024 files. In operating systems like Linux this limit can be overcome with the &amp;quot;ulimit&amp;quot; settings.&lt;br /&gt;
&lt;br /&gt;
See also&lt;br /&gt;
* {{cmd|r.series}}&lt;br /&gt;
* {{cmd|r.series.accumulate}}&lt;br /&gt;
&lt;br /&gt;
=== Memory management ===&lt;br /&gt;
&lt;br /&gt;
Due to the modular architecture of GRASS GIS the overhead of the software itself is minimal. &lt;br /&gt;
&lt;br /&gt;
'''Raster data operations''': where appropriate, modules offer a parameter to optimize caching (&amp;quot;memory&amp;quot; parameter).&lt;br /&gt;
# Pixel based operations: they have very low impact on memory usage.&lt;br /&gt;
# Moving window based operations: they have medium impact on memory usage.&lt;br /&gt;
# Full map operations (watersheds, cost surfaces, etc.): they have high impact on memory usage.&lt;br /&gt;
# Statistical operations: while univariate statistics have low impact on memory usage, quartiles and other aggregated statistics have medium impact on memory usage.&lt;br /&gt;
&lt;br /&gt;
'''Vector data operations''':&lt;br /&gt;
# Vector point operations: memory consumption depends on the amount of points. LiDAR data processing is commonly demanding. For some operations the creation of topology can be skipped to reduce the memory footprint.&lt;br /&gt;
# Vector line operations: they have low impact on memory usage (depends on the amount of data).&lt;br /&gt;
# Vector area/faces operations: they have high impact on memory usage.&lt;br /&gt;
# Topological versus non-topological operations: a subset of vector modules is able to operate on point vector maps without topology which saves notably RAM usage.&lt;br /&gt;
&lt;br /&gt;
'''Database operations''':&lt;br /&gt;
* Most operations are simply SQL transactions with low impact on memory usage.&lt;br /&gt;
&lt;br /&gt;
'''See also'''&lt;br /&gt;
* Solving [[Memory issues]] when dealing with large amounts of data&lt;br /&gt;
&lt;br /&gt;
=== Vector management ===&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;vector map&amp;quot; is a data layer consisting of a number of sparse features in geographic space. These might be data points (drill sites), lines (roads), polygons (park boundary), volumes (3D CAD structure), or some combination of all these. Typically each feature in the map will be tied to a set of attribute layers stored in a database (road names, site ID, geologic type, etc.). As a general rule these can exist in 2D or 3D space and are independent of the GIS's computation region.&lt;br /&gt;
&lt;br /&gt;
See also {{cmd|vectorintro}} in the manual.&lt;br /&gt;
&lt;br /&gt;
==== Vector geometry ====&lt;br /&gt;
&lt;br /&gt;
In all GRASS GIS versions, &lt;br /&gt;
&lt;br /&gt;
* with topology the feature limit is at time 2^31 - 1 (about 2 billion) features per vector map.&lt;br /&gt;
* ''TODO: add limit if topology creation is disabled at import for points (e.g., LiDAR points).''&lt;br /&gt;
&lt;br /&gt;
==== Vector attribute management ====&lt;br /&gt;
&lt;br /&gt;
Attributes are managed through a SQL interface (see also {{cmd|databaseintro}})&lt;br /&gt;
&lt;br /&gt;
The default database backend is&lt;br /&gt;
* DBF files (tend to be slow) in GRASS GIS 6 ({{cmd|grass-dbf|version=64}})&lt;br /&gt;
* SQLite file (very fast compared to DBF  in GRASS GIS 7 ({{cmd|grass-sqlite}})&lt;br /&gt;
&lt;br /&gt;
Other SQL backends are offered as well including PostgreSQL, MySQL, etc.: see {{cmd|sql}} support in GRASS GIS.&lt;br /&gt;
&lt;br /&gt;
'''Speed of DBF versus SQLite drivers''': attribute operations which take hours using the DBF backend just take seconds using the SQLite backend.&lt;br /&gt;
&lt;br /&gt;
==== Maximum Number of Attribute Columns ====&lt;br /&gt;
&lt;br /&gt;
The maximum number of attribute columns of a table connected to a vector map is defined by the capabilities of the the selected database backend (set with {{cmd|db.connect}}).&lt;br /&gt;
&lt;br /&gt;
* '''DBF-Backend''': GRASS 4.x - 6.x use by default the DBF backend. While there is no explicitly stated maximum number of allowed attribute columns, Web sources report a maximum '''between 128 and 1023/24'''. Trials with GRASS 6.4.2 in 2012 result in write failure if &amp;gt; 2000 attribute columns are used. Export to DBF-based ESRI Shapefile provides a warning if more that '''255''' attributes are used: Other software tools may ignore all further attributes, hence a maximum of '''128''' columns may be prudent.&lt;br /&gt;
* '''SQLite-Backend''': GRASS 7.x uses by default the SQLite backend. The default maximum number of attribute columns is '''2000''' according to the [http://www.sqlite.org/limits.html#max_column specifications]. This number can be increased by compiling SQlite with changed settings.&lt;br /&gt;
* '''MySQL-Backend''': The default maximum number of attribute columns is '''4096''' according to the [http://wiki.postgresql.org/wiki/FAQ#What_is_the_maximum_size_for_a_row.2C_a_table.2C_and_a_database.3F specifications].&lt;br /&gt;
* '''PostgreSQL-Backend''': The default maximum number of attribute columns is '''250-1600''' according to the [http://dev.mysql.com/doc/refman/5.1/en/column-count-limit.html specifications] depending on column types.&lt;br /&gt;
* '''Oracle-Backend''': The default maximum number of attribute columns is '''1000''' according to the [http://docs.oracle.com/cd/B19306_01/server.102/b14237/limits003.htm specifications].&lt;br /&gt;
&lt;br /&gt;
==== Maximum file size of the attributes file ====&lt;br /&gt;
&lt;br /&gt;
* '''DBF-Backend''' (in GRASS 6 the default DB backend): ''to be added'' (2Gb? in case of LFS enabled?)&lt;br /&gt;
* '''SQLite-Backend''' (in GRASS 7 the default DB backend): The maximum file size of a SQLite db is '''140 TB''', independent of the architecture, i.e. Large File Support (LFS) is always there. Usually SQLite will hit the maximum file size limit of the underlying filesystem or disk hardware size limit long before it hits its own [http://www.sqlite.org/fileformat2.html internal size limit].&lt;br /&gt;
&lt;br /&gt;
=== Raster management ===&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;raster map&amp;quot; is a data layer consisting of a gridded array of cells. It has a certain number of rows and columns, with a data point (or null value indicator) in each cell. These may exist as a 2D grid or as a 3D cube made up of many smaller cubes, i.e. a stack of 2D grids. &lt;br /&gt;
&lt;br /&gt;
See also {{cmd|rasterintro}} in the manual.&lt;br /&gt;
&lt;br /&gt;
==== Raster map precision types ====&lt;br /&gt;
&lt;br /&gt;
* '''CELL DATA TYPE''': a raster map from INTEGER type (4 bytes, whole numbers only)&lt;br /&gt;
** in GRASS GIS, CELL is a 32 bit integer with a range from -2,147,483,647 to +2,147,483,647. The value -2,147,483,648 is reserved for NODATA.&lt;br /&gt;
* '''FCELL DATA TYPE''': a raster map from FLOAT type (4 bytes, 7-9 digits precision)&lt;br /&gt;
** in GRASS GIS, FCELL is a 32 bit float (Float32) with a range from -3.4E38 to 3.4E38. However, the integer precision can be only ensured between -16777216 and 16777216. If your raster overpass this range we strongly suggest to use DCELL, as Float64 data type. &lt;br /&gt;
* '''DCELL DATA TYPE''': a raster map from DOUBLE type (8 bytes, 15-17 digits precision)&lt;br /&gt;
** in GRASS GIS, DCELL is a 64 bit float (Float64) with a range from -3.4E38 to 3.4E38.&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;
Aliases:&lt;br /&gt;
* '''INTEGER MAP''': see CELL DATA TYPE&lt;br /&gt;
* '''FLOAT MAP''': see FCELL DATA TYPE&lt;br /&gt;
* '''DOUBLE MAP''': see DCELL DATA TYPE&lt;br /&gt;
&lt;br /&gt;
(reference in the [https://github.com/OSGeo/grass/blob/master/include/gis.h#L588 GRASS GIS source code])&lt;br /&gt;
&lt;br /&gt;
See also [[GRASS raster semantics]]&lt;br /&gt;
&lt;br /&gt;
== Large file support ==&lt;br /&gt;
=== Large raster data processing ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS 7 supports the off_t type, hence it can address an enormous amount of raster data.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Large raster data processing]]&lt;br /&gt;
&lt;br /&gt;
==== Some '''benchmarks''' ====&lt;br /&gt;
&lt;br /&gt;
* Import of [http://www.ecad.eu/ ECAD 6.0] Tmean dataset: 22650 layers in single netCDF file: import takes 300 Seconds while reading file via NFS (i.e. 75 maps per second)&lt;br /&gt;
* Calculation of watersheds, half basins, flow accumulation, drainage directions, and stream with {{cmd|r.watershed}} for an area of 90,000 rows x 100,000 cols (9,000,000,000 cells, metric) successfully done in 77.2 hours (Intel Xeon X5670, 2.93GHz)&lt;br /&gt;
* European DEM at 25m ([http://www.eea.europa.eu/data-and-maps/data/eu-dem#tab-original-data eudem_dem_3035_europe.tif], 24.1 GB GeoTIFF, 48 billion cells) processing:&lt;br /&gt;
** Import of this GeoTIFF file with r.in.gdal on a blade via NFS: a) '''77h''' without memory option (hence 40MB = GDAL's default cache), b) ''''1.5h'''' with memory=300 (hence using 300MB GDAL cache), c) ''''1.5h'''' with memory=2000 (hence using 2GB GDAL cache)&lt;br /&gt;
* r.neighbors with [https://trac.osgeo.org/grass/ticket/2676#comment:2 3.694261e+12 pixels] (rows: 440046 cols: 830958 cells)&lt;br /&gt;
* Import of Global Forest Loss map with rows=560000 * cols=1440000 = 8.064e+11 pixels (see {{trac|3365}}); map can be easily shown in GRASS GIS monitor&lt;br /&gt;
* r.stream.extract: the upper limit matrix cell number that can handle is about 1.15e+18 raster cells (1.15 &amp;quot;[https://en.wikipedia.org/wiki/Unit_prefix exa]&amp;quot;-cells. The number of detected stream segments must not be larger than 2,147,483,647 streams.&lt;br /&gt;
* ... add more&lt;br /&gt;
&lt;br /&gt;
=== Large vector data processing ===&lt;br /&gt;
&lt;br /&gt;
GRASS GIS 7 supports the off_t type, hence it can address an enormous amount of vector data.&lt;br /&gt;
Currently multi-billion vector points have been managed ([http://lists.osgeo.org/pipermail/grass-dev/2011-January/052996.html citation]) without topology (since not needed). In all GRASS versions, the limit with topology is at  time 2^31 - 1 (about 2 billion) features per vector map.&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[Large vector data processing]]&lt;br /&gt;
&lt;br /&gt;
==== Some '''benchmarks''' ====&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
* ... add more&lt;br /&gt;
&lt;br /&gt;
== Parallelization ==&lt;br /&gt;
&lt;br /&gt;
In GRASS 7, a few modules have been experimentally parallelized with OpenMP. However, if data can be processed in chunks, GRASS GIS can be used on clusters.&lt;br /&gt;
&lt;br /&gt;
* [[OpenMP/Benchmarks]]&lt;br /&gt;
&lt;br /&gt;
Parallelized modules:&lt;br /&gt;
&lt;br /&gt;
* v.surf.rst, r.sim.water, r.sun, ...&lt;br /&gt;
&lt;br /&gt;
Note: As of 2020,  there are still issues with openMP (it may lead to weird results or perform slower).&lt;br /&gt;
&lt;br /&gt;
== Benchmarks ==&lt;br /&gt;
&lt;br /&gt;
=== r.neighbors ===&lt;br /&gt;
&lt;br /&gt;
  $ g.region -pa n=228500 s=215000 w=630000 e=645000 res=0.5&lt;br /&gt;
  $ r.random.surface output=random&lt;br /&gt;
  $ time r.neighbors input=random output=avg,min,max method=average,minimum,maximum size=5&lt;br /&gt;
  real	6m58.801s&lt;br /&gt;
  user	6m45.132s&lt;br /&gt;
  sys	0m6.864s&lt;br /&gt;
&lt;br /&gt;
810,000,000 cells (27,000x30,000), 3 outputs (average, min, max), window size 5, one core, negligible use of RAM.&lt;br /&gt;
&lt;br /&gt;
== User reports ==&lt;br /&gt;
&lt;br /&gt;
* [[Case studies]]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Parallel GRASS jobs]]&lt;br /&gt;
* [[Software requirements specification]]&lt;br /&gt;
* [[Performance comparison GRASS vs. ArcGIS]]&lt;br /&gt;
* [[OpenMP/Benchmarks|Benchmarks of OpenMP parallelized code]]&lt;br /&gt;
* [http://wiki.osgeo.org/wiki/GIS_workstation_setup_tips GIS workstation setup tips] (OSGeo Wiki page)&lt;br /&gt;
&lt;br /&gt;
[[Category: FAQ]]&lt;br /&gt;
[[Category: Hardware]]&lt;br /&gt;
[[Category: massive data analysis]]&lt;br /&gt;
[[Category: Raster]]&lt;br /&gt;
[[Category: Vector]]&lt;/div&gt;</summary>
		<author><name>⚠️El selvaje</name></author>
	</entry>
</feed>