Ticket #930 (closed task: fixed)
[raster] ST_SummaryStats
| Reported by: | dustymugs | Owned by: | dustymugs |
|---|---|---|---|
| Priority: | medium | Milestone: | PostGIS 2.0.0 |
| Component: | raster | Version: | trunk |
| Keywords: | history | Cc: |
Description
Like how ST_AsGDALRaster is the backend to ST_AsTIFF, ST_AsJPEG and ST_AsPNG, ST_SummaryStats is the backend for several summary stats:
1. Count of the population/sample included in the stats
2. Mean (ST_Mean or is ST_Average better?)
3. Standard Deviation (ST_StdDev)
4. Min/Max (ST_MinMax)
The proposed variations are:
1. ST_SummaryStats(rast raster, nband int, ignore_nodata boolean) -> record
returns one record of five columns (count, mean, stddev, min, max)
nband: index of band to process on
ignore_nodata: if TRUE, any pixel who's value is nodata is ignored.
ST_SummaryStats(rast, 2, TRUE)
2. ST_SummaryStats(rast raster, nband int) -> record
assumes ignore_nodata = TRUE
ST_SummaryStats(rast, 2)
3. ST_SummaryStats(rast raster, ignore_nodata boolean) -> record
assumes band index = 1
ST_SummaryStats(rast, FALSE)
4. ST_SummaryStats(rast raster) -> record
assumes band index = 1 and ignore_nodata = TRUE
ST_SummaryStats(rast)
Four approximation functions are also proposed sacrificing some accuracy for speed, especially on large rasters (10000 x 10000).
1. ST_SummaryStats(rast raster, nband int, ignore_nodata boolean, sample_percent double precision) -> record
sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider when determining the min/max pair.
ST_SummaryStats(rast, 3, FALSE, 0.1) ST_SummaryStats(rast, 1, TRUE, 0.5)
2. ST_SummaryStats(rast raster, ignore_nodata boolean, sample_percent double precision) -> record
assumes that nband = 1
ST_SummaryStats(rast, FALSE, 0.01) ST_SummaryStats(rast, TRUE, 0.025)
3. ST_SummaryStats(rast raster, sample_percent double precision) -> record
assumes that nband = 1 and ignore_nodata = TRUE
ST_SummaryStats(rast, 0.25)
4. ST_SummaryStats(rast raster) -> record
assumes that nband = 1, ignore_nodata = TRUE and sample_percent = 0.1
ST_SummaryStats(rast)
New tickets for ST_Mean and ST_StdDev will be posted next.
Functions that can depend upon the basic stats (ST_Histogram and ST_Quantile) will be proposed later.

