الاسم
ST_Histogram — تُعيد مجموعة من السجلات تلخّص توزيع بيانات رستر أو تغطية رستر على فئات (bins) منفصلة. يُحسب عدد الفئات تلقائيًا إذا لم يُحدَّد.
المختصر
SETOF record ST_Histogram(raster rast, integer nband=1, boolean exclude_nodata_value=true, integer bins=autocomputed, double precision[] width=NULL, boolean right=false);
SETOF record ST_Histogram(raster rast, integer nband, integer bins, double precision[] width=NULL, boolean right=false);
SETOF record ST_Histogram(raster rast, integer nband, boolean exclude_nodata_value, integer bins, boolean right);
SETOF record ST_Histogram(raster rast, integer nband, integer bins, boolean right);
الوصف
تُعيد مجموعة من السجلات تتكون من min وmax وcount وpercent لنطاق رستر معيّن لكل فئة. إذا لم يُحدَّد نطاق فالقيمة الافتراضية لـ nband هي 1.
|
|
|
افتراضيًا تؤخذ في الحسبان فقط قيم البكسلات غير المساوية لقيمة |
-
width -
width: مصفوفة تشير إلى عرض كل فئة. إذا كان عدد الفئات أكبر من عدد العروض، تُكرَّر العروض.
مثال: 9 فئات والعروض هي [a, b, c] سيكون الناتج [a, b, c, a, b, c, a, b, c]
-
bins -
عدد الفئات -- وهو عدد السجلات التي ستُعيدها الدالة إذا حُدِّد. إذا لم يُحدَّد فإن عدد الفئات يُحسب تلقائيًا.
-
right -
حساب المدرَّج التكراري من اليمين بدلًا من اليسار (الافتراضي). يغيّر هذا معيار تقييم القيمة x من [a, b) إلى (a, b]
تغيّرت في: 3.1.0 أُزيل الشكل ST_Histogram(table_name, column_name).
متاحة منذ: 2.0.0
مثال: بلاطة رستر واحدة - حساب المدرَّجات التكرارية للنطاقات 1 و2 و3 مع حساب الفئات تلقائيًا
SELECT band, (stats).*
FROM (SELECT rid, band, ST_Histogram(rast, band) As stats
FROM dummy_rast CROSS JOIN generate_series(1,3) As band
WHERE rid=2) As foo;
band | min | max | count | percent
------+-------+-------+-------+---------
1 | 249 | 250 | 2 | 0.08
1 | 250 | 251 | 2 | 0.08
1 | 251 | 252 | 1 | 0.04
1 | 252 | 253 | 2 | 0.08
1 | 253 | 254 | 18 | 0.72
2 | 78 | 113.2 | 11 | 0.44
2 | 113.2 | 148.4 | 4 | 0.16
2 | 148.4 | 183.6 | 4 | 0.16
2 | 183.6 | 218.8 | 1 | 0.04
2 | 218.8 | 254 | 5 | 0.2
3 | 62 | 100.4 | 11 | 0.44
3 | 100.4 | 138.8 | 5 | 0.2
3 | 138.8 | 177.2 | 4 | 0.16
3 | 177.2 | 215.6 | 1 | 0.04
3 | 215.6 | 254 | 4 | 0.16
مثال: النطاق 2 فقط ولكن بـ 6 فئات
SELECT (stats).*
FROM (SELECT rid, ST_Histogram(rast, 2,6) As stats
FROM dummy_rast
WHERE rid=2) As foo;
min | max | count | percent
------------+------------+-------+---------
78 | 107.333333 | 9 | 0.36
107.333333 | 136.666667 | 6 | 0.24
136.666667 | 166 | 0 | 0
166 | 195.333333 | 4 | 0.16
195.333333 | 224.666667 | 1 | 0.04
224.666667 | 254 | 5 | 0.2
(6 rows)
-- Same as previous but we explicitly control the pixel value range of each bin.
SELECT (stats).*
FROM (SELECT rid, ST_Histogram(rast, 2,6,ARRAY[0.5,1,4,100,5]) As stats
FROM dummy_rast
WHERE rid=2) As foo;
min | max | count | percent
-------+-------+-------+----------
78 | 78.5 | 1 | 0.08
78.5 | 79.5 | 1 | 0.04
79.5 | 83.5 | 0 | 0
83.5 | 183.5 | 17 | 0.0068
183.5 | 188.5 | 0 | 0
188.5 | 254 | 6 | 0.003664
(6 rows)