123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- <h2>DESCRIPTION</h2>
- <em>r.univar</em> calculates the univariate statistics of one or several raster
- map(s). This includes the number of cells counted, minimum and maximum cell
- values, range, arithmetic mean, population variance, standard deviation,
- coefficient of variation, and sum. Statistics are calculated separately for every
- category/zone found in the <b>zones</b> input map if given.
- If the <b>-e</b> extended statistics flag is given the 1st quartile, median,
- 3rd quartile, and given <b>percentile</b> are calculated.
- If the <b>-g</b> flag is given the results are presented in a format suitable
- for use in a shell script.
- If the <b>-t</b> flag is given the results are presented in tabular format
- with the given field separator. The table can immediately be converted to a
- vector attribute table which can then be linked to a vector, e.g. the vector
- that was rasterized to create the <b>zones</b> input raster.
- <p>
- When multiple input maps are given to <em>r.univar</em>, the overall statistics
- are calculated. This is useful for a time series of the same variable, as well as
- for the case of a segmented/tiled dataset. Allowing multiple raster maps to be
- specified saves the user from using a temporary raster map for the result of
- <em>r.series</em> or <em>r.patch</em>.
- <h2>NOTES</h2>
- As with most GRASS raster modules, <em>r.univar</em> operates on the raster
- array defined by the current region settings, not the original extent and
- resolution of the input map. See <em><a href="g.region.html">g.region</a></em>,
- but also
- <a href="https://grasswiki.osgeo.org/wiki/Computational_region#Understanding_the_impact_of_region_settings">
- the wiki page on the computational region</a> to understand the impact of the
- region settings on the calculations.
- <p>
- This module can use large amounts of system memory when the <b>-e</b>
- extended statistics flag is used with a very large region setting. If the
- region is too large the module should exit gracefully with a memory allocation
- error. Basic statistics can be calculated using any size input region.
- Extended statistics can be calculated using
- <em><a href="r.stats.quantile.html">r.stats.quantile</a></em>.
- <p>
- Without a <b>zones</b> input raster, the <em>r.quantile</em> module will
- be significantly more efficient for calculating percentiles with large maps.
- <p>
- For calculating univariate statistics from a raster map based on vector polygon
- map and uploads statistics to new attribute columns, see
- <em><a href="v.rast.stats.html">v.rast.stats</a></em>.
- <h2>EXAMPLES</h2>
- <h3>Univariate statistics</h3>
- In this example, the raster map <tt>elevation</tt> in the North
- Carolina sample dataset is used to calculate univariate statistics:
- <div class="code"><pre>
- g.region raster=elevation -p
- # standard output, along with extended statistics
- r.univar -e elevation percentile=98
- total null and non-null cells: 2025000
- total null cells: 0
- Of the non-null cells:
- ----------------------
- n: 2025000
- minimum: 55.5788
- maximum: 156.33
- range: 100.751
- mean: 110.375
- mean of absolute values: 110.375
- standard deviation: 20.3153
- variance: 412.712
- variation coefficient: 18.4057 %
- sum: 223510266.558102
- 1st quartile: 94.79
- median (even number of cells): 108.88
- 3rd quartile: 126.792
- 98th percentile: 147.727
- # script style output, along with extended statistics
- r.univar -ge elevation percentile=98
- n=2025000
- null_cells=0
- cells=2025000
- min=55.5787925720215
- max=156.329864501953
- range=100.751071929932
- mean=110.375440275606
- mean_of_abs=110.375440275606
- stddev=20.3153233205981
- variance=412.712361620436
- coeff_var=18.4056555243368
- sum=223510266.558102
- first_quartile=94.79
- median=108.88
- third_quartile=126.792
- percentile_98=147.727
- </pre></div>
- <h3>Zonal statistics</h3>
- In this example, the raster polygon map <tt>basins</tt> in the North
- Carolina sample dataset is used to calculate raster statistics for zones
- for <tt>elevation</tt> raster map:
- <div class="code"><pre>
- g.region raster=basins -p
- </pre></div>
- This will set and print computational region in the format:
- <div class="code"><pre>
- projection: 99 (Lambert Conformal Conic)
- zone: 0
- datum: nad83
- ellipsoid: a=6378137 es=0.006694380022900787
- north: 228500
- south: 215000
- west: 630000
- east: 645000
- nsres: 10
- ewres: 10
- rows: 1350
- cols: 1500
- cells: 2025000
- </pre></div>
- Check basin's IDs using:
- <div class="code"><pre>
- r.category basins
- </pre></div>
- This will print them in the format:
- <div class="code"><pre>
- 2
- 4
- 6
- 8
- 10
- 12
- 14
- 16
- 18
- 20
- 22
- 24
- 26
- 28
- 30
- </pre></div>
- Visualization of them underlying elevation map can be created as:
- <div class="code"><pre>
- d.mon wx0
- d.rast map=elevation
- r.colors map=elevation color=grey
- d.rast map=basins
- r.colors map=basins color=bgyr
- d.legend raster=basins use=2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
- d.barscale
- </pre></div>
- <!--
- g.region -a n=227228 s=220895 w=631362 e=641170
- d.out.file runivar_basins.png
- optipng -o5 runivar_basins.png width=200px
- -->
- <div align="center" style="margin: 10px">
- <a href="runivar_basins.png">
- <img src="runivar_basins.png" width="600" alt="r.univar basins and their IDs" border=0><br>
- </a>
- <i>Figure: Zones (basins, opacity: 60%) with underlying elevation map
- for North Carolina sample dataset.</i>
- </div>
- <p>
- Then statistics for elevation can be calculated separately for every
- zone, i.e. basin found in the <b>zones</b> parameter:
- <div class="code"><pre>
- r.univar -t map=elevation zones=basins separator=comma \
- output=basin_elev_zonal.csv
- </pre></div>
- This will print information in the format:
- <div class="code"><pre>
- zone,label,non_null_cells,null_cells,min,max,range,mean,mean_of_abs,
- stddev,variance,coeff_var,sum,sum_abs2,,116975,0,55.5787925720215,
- 133.147018432617,77.5682258605957,92.1196971445722,92.1196971445722,
- 15.1475301152556,229.447668592576,16.4433129773355,10775701.5734863,
- 10775701.57348634,,75480,0,61.7890930175781,110.348838806152,
- 48.5597457885742,83.7808205765268,83.7808205765268,11.6451777476995,
- 135.610164775515,13.8995747088232,6323776.33711624,6323776.33711624
- 6,,1137,0,66.9641571044922,83.2070922851562,16.2429351806641,
- 73.1900814395257,73.1900814395257,4.15733292896409,17.2834170822492,
- 5.68018623179036,83217.1225967407,83217.12259674078,,80506,
- 0,67.4670791625977,147.161514282227, ...
- </pre></div>
- Comma Separated Values (CSV) file is best viewed through a spreadsheet
- program such as Microsoft Excel, Libre/Open Office Calc or Google Docs:
- <div align="center" style="margin: 10px">
- <a href="runivar_basins_elev_zonal.png">
- <img src="runivar_basins_elev_zonal.png" width="600" alt="r.univar raster statistics" border=0><br>
- </a>
- <i>Figure: Raster statistics for zones (basins, North Carolina sample
- dataset) viewed through Libre/Open Office Calc.</i>
- </div>
- <h2>TODO</h2>
- To be implemented <i>mode, skewness, kurtosis</i>.
- <h2>SEE ALSO</h2>
- <em>
- <a href="g.region.html">g.region</a>,
- <a href="r3.univar.html">r3.univar</a>,
- <a href="r.mode.html">r.mode</a>,
- <a href="r.quantile.html">r.quantile</a>,
- <a href="r.series.html">r.series</a>,
- <a href="r.stats.html">r.stats</a>,
- <a href="r.stats.quantile.html">r.stats.quantile</a>,
- <a href="r.stats.zonal.html">r.stats.zonal</a>,
- <a href="r.statistics.html">r.statistics</a>,
- <a href="v.rast.stats.html">v.rast.stats</a>,
- <a href="v.univar.html">v.univar</a>
- </em>
- <h2>AUTHORS</h2>
- Hamish Bowman, Otago University, New Zealand<br>
- Extended statistics by Martin Landa<br>
- Multiple input map support by Ivan Shmakov<br>
- Zonal loop by Markus Metz
- <p><i>Last changed: $Date$</i>
|