postgis/raster/test/regress/rt_summarystats.sql
Bborie Park acb238da0e added ST_SummaryStatsAgg(). Ticket #2565
git-svn-id: http://svn.osgeo.org/postgis/trunk@12159 b70326c6-7e19-0410-871a-916f4a2858ee
2013-12-14 20:54:44 +00:00

369 lines
7.2 KiB
PL/PgSQL

SELECT
count,
round(sum::numeric, 3),
round(mean::numeric, 3),
round(stddev::numeric, 3),
round(min::numeric, 3),
round(max::numeric, 3)
FROM ST_SummaryStats(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_AddBand(
ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
, 1, '64BF', 0, 0
)
, 1, 1, 1, -10
)
, 1, 5, 4, 0
)
, 1, 5, 5, 3.14159
)
, TRUE
);
SELECT
count,
round(sum::numeric, 3),
round(mean::numeric, 3),
round(stddev::numeric, 3),
round(min::numeric, 3),
round(max::numeric, 3)
FROM ST_SummaryStats(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_AddBand(
ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
, 1, '64BF', 0, NULL
)
, 1, 1, 1, -10
)
, 1, 5, 4, 0
)
, 1, 5, 5, 3.14159
)
, TRUE
);
SELECT count FROM ST_SummaryStats(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_AddBand(
ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
, 1, '64BF', 0, 0
)
, 1, 1, 1, -10
)
, 1, 5, 4, 0
)
, 1, 5, 5, 3.14159
)
, TRUE
);
SELECT count FROM ST_SummaryStats(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_AddBand(
ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
, 1, '64BF', 0, 0
)
, 1, 1, 1, -10
)
, 1, 5, 4, 0
)
, 1, 5, 5, 3.14159
)
, FALSE
);
SELECT round(mean::numeric, 3), round(stddev::numeric, 3) FROM ST_SummaryStats(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_AddBand(
ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
, 1, '64BF', 0, 0
)
, 1, 1, 1, -10
)
, 1, 5, 4, 0
)
, 1, 5, 5, 3.14159
)
, TRUE
);
SELECT round(mean::numeric, 3), round(stddev::numeric, 3) FROM ST_SummaryStats(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_AddBand(
ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
, 1, '64BF', 0, 0
)
, 1, 1, 1, -10
)
, 1, 5, 4, 0
)
, 1, 5, 5, 3.14159
)
, FALSE
);
SELECT round(mean::numeric, 3), round(stddev::numeric, 3) FROM ST_SummaryStats(
ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_AddBand(
ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
, 1, '64BF', 0, 0
)
, 1, 1, 1, -10
)
, 1, 5, 4, 0
)
, 1, 5, 5, 3.14159
)
, 2
);
SELECT ST_ApproxSummaryStats(
ST_Clip(
ST_AddBand(
ST_MakeEmptyRaster(10, 10, 0, 0, 1, 1, 0, 0, 0)
, '16BSI'::text, 0, 0
)
, ST_MakeEnvelope(0, 0, 10, 5, 0)
)
, 1, true, 0.1
);
SELECT ST_SummaryStats(
ST_AddBand(
ST_MakeEmptyRaster(10, 0, 0, 0, 1, -1, 0, 0, 0)
, '8BUI'::text, 1, 0
)
);
BEGIN;
CREATE TEMP TABLE test_summarystats
ON COMMIT DROP AS
SELECT
rast.rast
FROM (
SELECT ST_SetValue(
ST_SetValue(
ST_SetValue(
ST_AddBand(
ST_MakeEmptyRaster(10, 10, 10, 10, 2, 2, 0, 0,0)
, 1, '64BF', 0, 0
)
, 1, 1, 1, -10
)
, 1, 5, 4, 0
)
, 1, 5, 5, 3.14159
) AS rast
) AS rast
FULL JOIN (
SELECT generate_series(1, 10) AS id
) AS id
ON 1 = 1;
SELECT
count,
round(sum::numeric, 3),
round(mean::numeric, 3),
round(stddev::numeric, 3),
round(min::numeric, 3),
round(max::numeric, 3)
FROM ST_SummaryStats('test_summarystats', 'rast', 1, TRUE);
SELECT
count,
round(sum::numeric, 3),
round(mean::numeric, 3),
round(stddev::numeric, 3),
round(min::numeric, 3),
round(max::numeric, 3)
FROM ST_SummaryStats('test_summarystats', 'rast', 1, FALSE);
SELECT
count,
round(sum::numeric, 3),
round(mean::numeric, 3),
round(stddev::numeric, 3),
round(min::numeric, 3),
round(max::numeric, 3)
FROM ST_SummaryStats('test_summarystats', 'rast', 1);
SELECT
count,
round(sum::numeric, 3),
round(mean::numeric, 3),
round(stddev::numeric, 3),
round(min::numeric, 3),
round(max::numeric, 3)
FROM ST_SummaryStats('test_summarystats', 'rast');
SAVEPOINT test;
SELECT
count,
round(sum::numeric, 3),
round(mean::numeric, 3),
round(stddev::numeric, 3),
round(min::numeric, 3),
round(max::numeric, 3)
FROM ST_SummaryStats('test_summarystats', 'rast', 2);
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
SAVEPOINT test;
SELECT
count,
round(sum::numeric, 3),
round(mean::numeric, 3),
round(stddev::numeric, 3),
round(min::numeric, 3),
round(max::numeric, 3)
FROM ST_SummaryStats('test1', 'rast');
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
SAVEPOINT test;
SELECT
count,
round(sum::numeric, 3),
round(mean::numeric, 3),
round(stddev::numeric, 3),
round(min::numeric, 3),
round(max::numeric, 3)
FROM ST_SummaryStats('test_summarystats', 'rast1');
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
SAVEPOINT test;
SELECT
(stats).count,
round((stats).sum::numeric, 3),
round((stats).mean::numeric, 3),
round((stats).stddev::numeric, 3),
round((stats).min::numeric, 3),
round((stats).max::numeric, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, 1, TRUE, 1) AS stats
FROM test_summarystats
) foo;
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
SAVEPOINT test;
SELECT
(stats).count,
round((stats).sum::numeric, 3),
round((stats).mean::numeric, 3),
round((stats).stddev::numeric, 3),
round((stats).min::numeric, 3),
round((stats).max::numeric, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, TRUE, 1) AS stats
FROM test_summarystats
) foo;
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
SAVEPOINT test;
SELECT
(stats).count,
round((stats).sum::numeric, 3),
round((stats).mean::numeric, 3),
round((stats).stddev::numeric, 3),
round((stats).min::numeric, 3),
round((stats).max::numeric, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, 1, TRUE) AS stats
FROM test_summarystats
) foo;
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
SAVEPOINT test;
SELECT
(stats).count,
round((stats).sum::numeric, 3),
round((stats).mean::numeric, 3),
round((stats).stddev::numeric, 3),
round((stats).min::numeric, 3),
round((stats).max::numeric, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, 1, FALSE, 1) AS stats
FROM test_summarystats
) foo;
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
SAVEPOINT test;
SELECT
(stats).count,
round((stats).sum::numeric, 3),
round((stats).mean::numeric, 3),
round((stats).stddev::numeric, 3),
round((stats).min::numeric, 3),
round((stats).max::numeric, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, FALSE, 1) AS stats
FROM test_summarystats
) foo;
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
SAVEPOINT test;
SELECT
(stats).count,
round((stats).sum::numeric, 3),
round((stats).mean::numeric, 3),
round((stats).stddev::numeric, 3),
round((stats).min::numeric, 3),
round((stats).max::numeric, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, 1, FALSE) AS stats
FROM test_summarystats
) foo;
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
SAVEPOINT test;
SELECT
(stats).count,
round((stats).sum::numeric, 3),
round((stats).mean::numeric, 3),
round((stats).stddev::numeric, 3),
round((stats).min::numeric, 3),
round((stats).max::numeric, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, 1, TRUE, 2) AS stats
FROM test_summarystats
) foo;
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
SAVEPOINT test;
SELECT
(stats).count,
round((stats).sum::numeric, 3),
round((stats).mean::numeric, 3),
round((stats).stddev::numeric, 3),
round((stats).min::numeric, 3),
round((stats).max::numeric, 3)
FROM (
SELECT
ST_SummaryStatsAgg(rast, 2, TRUE, 1) AS stats
FROM test_summarystats
) foo;
ROLLBACK TO SAVEPOINT test;
RELEASE SAVEPOINT test;
ROLLBACK;