773 | | ---- |
774 | | == '''Objective FV.16 - Being able to quickly get raster statistics.''' == |
775 | | |
776 | | '''Add cached basic raster statistic to the base raster WKB format. |
777 | | |
778 | | Statistics to be cached should include: |
779 | | |
780 | | min/max[[BR]] |
781 | | mean[[BR]] |
782 | | standard deviation[[BR]] |
783 | | histogram[[BR]] |
784 | | build parameters of stats (sample rate, method used to determine # of bins in histogram?)[[BR]] |
785 | | |
786 | | How are the statistics to be kept fresh? Automatically using some method to see how much of the raster has changed since the last stats calculation? Or let the user decide? |
787 | | |
788 | | ---- |
789 | | |
790 | | '''ST_SummaryStats(raster, nband) -> record'''[[BR]] |
791 | | This is the core function that gets the summary statistics (# of values, mean, standard deviation, minimum value, maximum value) of a specified raster's band. It is this function that ST_Mean, ST_StdDev and ST_MinMax calls for their appropriate values. |
792 | | |
793 | | 1. ST_SummaryStats(rast raster, nband int, exclude_nodata_value boolean) -> record |
794 | | |
795 | | returns one record of five columns (count, mean, stddev, min, max) |
796 | | |
797 | | nband: index of band |
798 | | |
799 | | exclude_nodata_value: if FALSE, nodata values in band are included in the stats. if TRUE, nodata values are not included |
800 | | |
801 | | {{{ |
802 | | ST_SummaryStats(rast, 1, FALSE) |
803 | | }}} |
804 | | |
805 | | 2. ST_SummaryStats(rast raster, nband int) -> record |
806 | | |
807 | | assumes exclude_nodata_value = TRUE |
808 | | |
809 | | {{{ |
810 | | ST_SummaryStats(rast, 2) |
811 | | }}} |
812 | | |
813 | | 3. ST_SummaryStats(rast raster, exclude_nodata_value boolean) -> record |
814 | | |
815 | | assumes nband = 1 |
816 | | |
817 | | {{{ |
818 | | ST_SummaryStats(rast, TRUE) |
819 | | }}} |
820 | | |
821 | | 4. ST_SummaryStats(rast raster) -> record |
822 | | |
823 | | assumes nband = 1 and exclude_nodata_value = TRUE |
824 | | |
825 | | {{{ |
826 | | ST_SummaryStats(rast) |
827 | | }}} |
828 | | |
829 | | Due to the time it may take to do on-the-fly calculation of summary stats for large rasters (say 10000 x 10000), an alternative that sacrifices accuracy for speed is required. The following functions sample a percentage of the raster in a methodical randomized manner. The algorithm used for sampling is... |
830 | | |
831 | | 1. select the larger dimension of the width and height. compute the number of pixels to sample in each "row" of the larger dimension |
832 | | |
833 | | 2. pick pixels from each "row" of the larger dimension in an incremental rolling manner where each increment is randomly determined. |
834 | | |
835 | | The set of ST_ApproxSummaryStats functions are: |
836 | | |
837 | | 1. ST_ApproxSummaryStats(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> record |
838 | | |
839 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
840 | | |
841 | | {{{ |
842 | | ST_ApproxSummaryStats(rast, 3, FALSE, 0.1) |
843 | | |
844 | | ST_ApproxSummaryStats(rast, 1, TRUE, 0.5) |
845 | | }}} |
846 | | |
847 | | 2. ST_ApproxSummaryStats(rast raster, nband int, sample_percent double precision) -> record |
848 | | |
849 | | assumes that nband = 1 |
850 | | |
851 | | {{{ |
852 | | ST_ApproxSummaryStats(rast, 2 0.01) |
853 | | |
854 | | ST_ApproxSummaryStats(rast, 4, 0.025) |
855 | | }}} |
856 | | |
857 | | 3. ST_ApproxSummaryStats(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> record |
858 | | |
859 | | assumes that nband = 1 |
860 | | |
861 | | {{{ |
862 | | ST_ApproxSummaryStats(rast, FALSE, 0.01) |
863 | | |
864 | | ST_ApproxSummaryStats(rast, TRUE, 0.025) |
865 | | }}} |
866 | | |
867 | | 4. ST_ApproxSummaryStats(rast raster, sample_percent double precision) -> record |
868 | | |
869 | | assumes that nband = 1 and exclude_nodata_value = TRUE |
870 | | |
871 | | {{{ |
872 | | ST_ApproxSummaryStats(rast, 0.25) |
873 | | }}} |
874 | | |
875 | | 5. ST_ApproxSummaryStats(rast raster) -> record |
876 | | |
877 | | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
878 | | |
879 | | {{{ |
880 | | ST_ApproxSummaryStats(rast) |
881 | | }}} |
882 | | |
883 | | The situation arises where the summary statistics of a coverage table is required. As the coverage may be large (tens of gigabytes of memory or larger), the following functions are provided to permit an incremental computation of the summary statistics. |
884 | | |
885 | | 1. ST_SummaryStats(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> record |
886 | | |
887 | | rastertable: name of table with raster column |
888 | | |
889 | | rastercolumn: name of column of data type raster |
890 | | |
891 | | {{{ |
892 | | ST_SummaryStats('tmax_2010', 'rast', 1, FALSE) |
893 | | |
894 | | ST_SummaryStats('precip_2011', 'rast', 1, TRUE) |
895 | | }}} |
896 | | |
897 | | 2. ST_SummaryStats(rastertable text, rastercolumn text, nband int) -> record |
898 | | |
899 | | exclude_nodata_value = TRUE |
900 | | |
901 | | {{{ |
902 | | ST_SummaryStats('tmax_2010', 'rast', 1) |
903 | | }}} |
904 | | |
905 | | 3. ST_SummaryStats(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> record |
906 | | |
907 | | nband = 1 |
908 | | |
909 | | {{{ |
910 | | ST_SummaryStats('precip_2011', 'rast', TRUE) |
911 | | }}} |
912 | | |
913 | | 4. ST_SummaryStats(rastertable text, rastercolumn text) -> record |
914 | | |
915 | | nband = 1 and exclude_nodata_value = TRUE |
916 | | |
917 | | {{{ |
918 | | ST_SummaryStats('tmin_2009', 'rast') |
919 | | }}} |
920 | | |
921 | | Variations for ST_ApproxSummaryStats are: |
922 | | |
923 | | 1. ST_ApproxSummaryStats(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> record |
924 | | |
925 | | {{{ |
926 | | ST_ApproxSummaryStats('tmax_2010', 'rast', 1, FALSE, 0.5) |
927 | | |
928 | | ST_ApproxSummaryStats('precip_2011', 'rast', 1, TRUE, 0.2) |
929 | | }}} |
930 | | |
931 | | 2. ST_ApproxSummaryStats(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> record |
932 | | |
933 | | exclude_nodata_value = TRUE |
934 | | |
935 | | {{{ |
936 | | ST_ApproxSummaryStats('tmax_2010', 'rast', 1, 0.5) |
937 | | |
938 | | ST_ApproxSummaryStats('precip_2011', 'rast', 1, 0.2) |
939 | | }}} |
940 | | |
941 | | 3. ST_ApproxSummaryStats(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> record |
942 | | |
943 | | nband = 1 |
944 | | |
945 | | {{{ |
946 | | ST_ApproxSummaryStats('tmax_2010', 'rast', FALSE, 0.5) |
947 | | |
948 | | ST_ApproxSummaryStats('precip_2011', 'rast', TRUE, 0.2) |
949 | | }}} |
950 | | |
951 | | 4. ST_ApproxSummaryStats(rastertable text, rastercolumn text, sample_percent double precision) -> record |
952 | | |
953 | | nband = 1 and exclude_nodata_value = TRUE |
954 | | |
955 | | {{{ |
956 | | ST_ApproxSummaryStats('tmax_2010', 'rast', 0.5) |
957 | | |
958 | | ST_ApproxSummaryStats('precip_2011', 'rast', 0.2) |
959 | | }}} |
960 | | |
961 | | 5. ST_ApproxSummaryStats(rastertable text, rastercolumn text) -> record |
962 | | |
963 | | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
964 | | |
965 | | {{{ |
966 | | ST_ApproxSummaryStats('tmax_2010', 'rast') |
967 | | |
968 | | ST_ApproxSummaryStats('precip_2011', 'rast') |
969 | | }}} |
970 | | |
971 | | The mean returned in the coverage functions (has rastertable and rastercolumn arguments) is the true mean of the raster tiles. The standard deviation returned is the standard deviation of all raster tiles. |
972 | | |
973 | | ---- |
974 | | |
975 | | '''ST_Count(raster, nband) -> bigint'''[[BR]] |
976 | | |
977 | | This function calls ST_SummaryStats and only returns the count from that function. |
978 | | |
979 | | 1. ST_Count(rast raster, nband int, exclude_nodata_value boolean) -> bigint |
980 | | |
981 | | returns the count as an integer |
982 | | |
983 | | nband: index of band |
984 | | |
985 | | exclude_nodata_value: if FALSE, nodata values in band are included in the stats. if TRUE, nodata values are not included |
986 | | |
987 | | {{{ |
988 | | ST_Count(rast, 1, FALSE) |
989 | | }}} |
990 | | |
991 | | 2. ST_Count(rast raster, nband int) -> bigint |
992 | | |
993 | | assumes exclude_nodata_value = TRUE |
994 | | |
995 | | {{{ |
996 | | ST_Count(rast, 2) |
997 | | }}} |
998 | | |
999 | | 3. ST_Count(rast raster, exclude_nodata_value boolean) -> bigint |
1000 | | |
1001 | | assumes nband = 1 |
1002 | | |
1003 | | {{{ |
1004 | | ST_Count(rast, TRUE) |
1005 | | }}} |
1006 | | |
1007 | | 4. ST_Count(rast raster) -> bigint |
1008 | | |
1009 | | assumes nband = 1 and exclude_nodata_value = TRUE |
1010 | | |
1011 | | {{{ |
1012 | | ST_Count(rast) |
1013 | | }}} |
1014 | | |
1015 | | The set of ST_ApproxCount functions are: |
1016 | | |
1017 | | 1. ST_ApproxCount(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> bigint |
1018 | | |
1019 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
1020 | | |
1021 | | {{{ |
1022 | | ST_ApproxCount(rast, 3, FALSE, 0.1) |
1023 | | |
1024 | | ST_ApproxCount(rast, 1, TRUE, 0.5) |
1025 | | }}} |
1026 | | |
1027 | | 2. ST_ApproxCount(rast raster, nband int, sample_percent double precision) -> bigint |
1028 | | |
1029 | | assumes that nband = 1 |
1030 | | |
1031 | | {{{ |
1032 | | ST_ApproxCount(rast, 2 0.01) |
1033 | | |
1034 | | ST_ApproxCount(rast, 4, 0.025) |
1035 | | }}} |
1036 | | |
1037 | | 3. ST_ApproxCount(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> bigint |
1038 | | |
1039 | | assumes that nband = 1 |
1040 | | |
1041 | | {{{ |
1042 | | ST_ApproxCount(rast, FALSE, 0.01) |
1043 | | |
1044 | | ST_ApproxCount(rast, TRUE, 0.025) |
1045 | | }}} |
1046 | | |
1047 | | 4. ST_ApproxCount(rast raster, sample_percent double precision) -> bigint |
1048 | | |
1049 | | assumes that nband = 1 and exclude_nodata_value = TRUE |
1050 | | |
1051 | | {{{ |
1052 | | ST_ApproxCount(rast, 0.25) |
1053 | | }}} |
1054 | | |
1055 | | 5. ST_ApproxCount(rast raster) -> bigint |
1056 | | |
1057 | | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
1058 | | |
1059 | | {{{ |
1060 | | ST_ApproxCount(rast) |
1061 | | }}} |
1062 | | |
1063 | | The following functions are provided for coverage tables. |
1064 | | |
1065 | | 1. ST_Count(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> bigint |
1066 | | |
1067 | | rastertable: name of table with raster column |
1068 | | |
1069 | | rastercolumn: name of column of data type raster |
1070 | | |
1071 | | {{{ |
1072 | | ST_Count('tmax_2010', 'rast', 1, FALSE) |
1073 | | |
1074 | | ST_Count('precip_2011', 'rast', 1, TRUE) |
1075 | | }}} |
1076 | | |
1077 | | 2. ST_Count(rastertable text, rastercolumn text, nband int) -> bigint |
1078 | | |
1079 | | exclude_nodata_value = TRUE |
1080 | | |
1081 | | {{{ |
1082 | | ST_Count('tmax_2010', 'rast', 1) |
1083 | | }}} |
1084 | | |
1085 | | 3. ST_Count(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> bigint |
1086 | | |
1087 | | nband = 1 |
1088 | | |
1089 | | {{{ |
1090 | | ST_Count('precip_2011', 'rast', TRUE) |
1091 | | }}} |
1092 | | |
1093 | | 4. ST_Count(rastertable text, rastercolumn text) -> bigint |
1094 | | |
1095 | | nband = 1 and exclude_nodata_value = TRUE |
1096 | | |
1097 | | {{{ |
1098 | | ST_Count('tmin_2009', 'rast') |
1099 | | }}} |
1100 | | |
1101 | | Variations for ST_ApproxCount are: |
1102 | | |
1103 | | 1. ST_ApproxCount(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> bigint |
1104 | | |
1105 | | {{{ |
1106 | | ST_ApproxCount('tmax_2010', 'rast', 1, FALSE, 0.5) |
1107 | | |
1108 | | ST_ApproxCount('precip_2011', 'rast', 1, TRUE, 0.2) |
1109 | | }}} |
1110 | | |
1111 | | 2. ST_ApproxCount(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> bigint |
1112 | | |
1113 | | exclude_nodata_value = TRUE |
1114 | | |
1115 | | {{{ |
1116 | | ST_ApproxCount('tmax_2010', 'rast', 1, 0.5) |
1117 | | |
1118 | | ST_ApproxCount('precip_2011', 'rast', 1, 0.2) |
1119 | | }}} |
1120 | | |
1121 | | 3. ST_ApproxCount(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> bigint |
1122 | | |
1123 | | nband = 1 |
1124 | | |
1125 | | {{{ |
1126 | | ST_ApproxCount('tmax_2010', 'rast', FALSE, 0.5) |
1127 | | |
1128 | | ST_ApproxCount('precip_2011', 'rast', TRUE, 0.2) |
1129 | | }}} |
1130 | | |
1131 | | 4. ST_ApproxCount(rastertable text, rastercolumn text, sample_percent double precision) -> bigint |
1132 | | |
1133 | | nband = 1 and exclude_nodata_value = TRUE |
1134 | | |
1135 | | {{{ |
1136 | | ST_ApproxCount('tmax_2010', 'rast', 0.5) |
1137 | | |
1138 | | ST_ApproxCount('precip_2011', 'rast', 0.2) |
1139 | | }}} |
1140 | | |
1141 | | 5. ST_ApproxCount(rastertable text, rastercolumn text) -> bigint |
1142 | | |
1143 | | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
1144 | | |
1145 | | {{{ |
1146 | | ST_ApproxCount('tmax_2010', 'rast') |
1147 | | |
1148 | | ST_ApproxCount('precip_2011', 'rast') |
1149 | | }}} |
1150 | | |
1151 | | ---- |
1152 | | |
1153 | | '''ST_Sum(raster, nband) -> double precision'''[[BR]] |
1154 | | |
1155 | | This function calls ST_SummaryStats and only returns the sum from that function. |
1156 | | |
1157 | | 1. ST_Sum(rast raster, nband int, exclude_nodata_value boolean) -> double precision |
1158 | | |
1159 | | returns the sum as an integer |
1160 | | |
1161 | | nband: index of band |
1162 | | |
1163 | | exclude_nodata_value: if FALSE, nodata values in band are included in the stats. if TRUE, nodata values are not included |
1164 | | |
1165 | | {{{ |
1166 | | ST_Sum(rast, 1, FALSE) |
1167 | | }}} |
1168 | | |
1169 | | 2. ST_Sum(rast raster, nband int) -> double precision |
1170 | | |
1171 | | assumes exclude_nodata_value = TRUE |
1172 | | |
1173 | | {{{ |
1174 | | ST_Sum(rast, 2) |
1175 | | }}} |
1176 | | |
1177 | | 3. ST_Sum(rast raster, exclude_nodata_value boolean) -> double precision |
1178 | | |
1179 | | assumes nband = 1 |
1180 | | |
1181 | | {{{ |
1182 | | ST_Sum(rast, TRUE) |
1183 | | }}} |
1184 | | |
1185 | | 4. ST_Sum(rast raster) -> double precision |
1186 | | |
1187 | | assumes nband = 1 and exclude_nodata_value = TRUE |
1188 | | |
1189 | | {{{ |
1190 | | ST_Sum(rast) |
1191 | | }}} |
1192 | | |
1193 | | The set of ST_ApproxSum functions are: |
1194 | | |
1195 | | 1. ST_ApproxSum(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1196 | | |
1197 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
1198 | | |
1199 | | {{{ |
1200 | | ST_ApproxSum(rast, 3, FALSE, 0.1) |
1201 | | |
1202 | | ST_ApproxSum(rast, 1, TRUE, 0.5) |
1203 | | }}} |
1204 | | |
1205 | | 2. ST_ApproxSum(rast raster, nband int, sample_percent double precision) -> double precision |
1206 | | |
1207 | | assumes that nband = 1 |
1208 | | |
1209 | | {{{ |
1210 | | ST_ApproxSum(rast, 2 0.01) |
1211 | | |
1212 | | ST_ApproxSum(rast, 4, 0.025) |
1213 | | }}} |
1214 | | |
1215 | | 3. ST_ApproxSum(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1216 | | |
1217 | | assumes that nband = 1 |
1218 | | |
1219 | | {{{ |
1220 | | ST_ApproxSum(rast, FALSE, 0.01) |
1221 | | |
1222 | | ST_ApproxSum(rast, TRUE, 0.025) |
1223 | | }}} |
1224 | | |
1225 | | 4. ST_ApproxSum(rast raster, sample_percent double precision) -> double precision |
1226 | | |
1227 | | assumes that nband = 1 and exclude_nodata_value = TRUE |
1228 | | |
1229 | | {{{ |
1230 | | ST_ApproxSum(rast, 0.25) |
1231 | | }}} |
1232 | | |
1233 | | 5. ST_ApproxSum(rast raster) -> double precision |
1234 | | |
1235 | | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
1236 | | |
1237 | | {{{ |
1238 | | ST_ApproxSum(rast) |
1239 | | }}} |
1240 | | |
1241 | | The following functions are provided for coverage tables. |
1242 | | |
1243 | | 1. ST_Sum(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> double precision |
1244 | | |
1245 | | rastertable: name of table with raster column |
1246 | | |
1247 | | rastercolumn: name of column of data type raster |
1248 | | |
1249 | | {{{ |
1250 | | ST_Sum('tmax_2010', 'rast', 1, FALSE) |
1251 | | |
1252 | | ST_Sum('precip_2011', 'rast', 1, TRUE) |
1253 | | }}} |
1254 | | |
1255 | | 2. ST_Sum(rastertable text, rastercolumn text, nband int) -> double precision |
1256 | | |
1257 | | exclude_nodata_value = TRUE |
1258 | | |
1259 | | {{{ |
1260 | | ST_Sum('tmax_2010', 'rast', 1) |
1261 | | }}} |
1262 | | |
1263 | | 3. ST_Sum(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> double precision |
1264 | | |
1265 | | nband = 1 |
1266 | | |
1267 | | {{{ |
1268 | | ST_Sum('precip_2011', 'rast', TRUE) |
1269 | | }}} |
1270 | | |
1271 | | 4. ST_Sum(rastertable text, rastercolumn text) -> double precision |
1272 | | |
1273 | | nband = 1 and exclude_nodata_value = TRUE |
1274 | | |
1275 | | {{{ |
1276 | | ST_Sum('tmin_2009', 'rast') |
1277 | | }}} |
1278 | | |
1279 | | Variations for ST_ApproxSum are: |
1280 | | |
1281 | | 1. ST_ApproxSum(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1282 | | |
1283 | | {{{ |
1284 | | ST_ApproxSum('tmax_2010', 'rast', 1, FALSE, 0.5) |
1285 | | |
1286 | | ST_ApproxSum('precip_2011', 'rast', 1, TRUE, 0.2) |
1287 | | }}} |
1288 | | |
1289 | | 2. ST_ApproxSum(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> double precision |
1290 | | |
1291 | | exclude_nodata_value = TRUE |
1292 | | |
1293 | | {{{ |
1294 | | ST_ApproxSum('tmax_2010', 'rast', 1, 0.5) |
1295 | | |
1296 | | ST_ApproxSum('precip_2011', 'rast', 1, 0.2) |
1297 | | }}} |
1298 | | |
1299 | | 3. ST_ApproxSum(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1300 | | |
1301 | | nband = 1 |
1302 | | |
1303 | | {{{ |
1304 | | ST_ApproxSum('tmax_2010', 'rast', FALSE, 0.5) |
1305 | | |
1306 | | ST_ApproxSum('precip_2011', 'rast', TRUE, 0.2) |
1307 | | }}} |
1308 | | |
1309 | | 4. ST_ApproxSum(rastertable text, rastercolumn text, sample_percent double precision) -> double precision |
1310 | | |
1311 | | nband = 1 and exclude_nodata_value = TRUE |
1312 | | |
1313 | | {{{ |
1314 | | ST_ApproxSum('tmax_2010', 'rast', 0.5) |
1315 | | |
1316 | | ST_ApproxSum('precip_2011', 'rast', 0.2) |
1317 | | }}} |
1318 | | |
1319 | | 5. ST_ApproxSum(rastertable text, rastercolumn text) -> double precision |
1320 | | |
1321 | | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
1322 | | |
1323 | | {{{ |
1324 | | ST_ApproxSum('tmax_2010', 'rast') |
1325 | | |
1326 | | ST_ApproxSum('precip_2011', 'rast') |
1327 | | }}} |
1328 | | |
1329 | | ---- |
1330 | | |
1331 | | '''ST_Mean(raster, nband) -> double precision'''[[BR]] |
1332 | | This function calls ST_SummaryStats and only returns the mean from that function. |
1333 | | |
1334 | | 1. ST_Mean(rast raster, nband int, exclude_nodata_value boolean) -> double precision |
1335 | | |
1336 | | returns the mean as a double precision |
1337 | | |
1338 | | nband: index of band |
1339 | | |
1340 | | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
1341 | | |
1342 | | {{{ |
1343 | | ST_Mean(rast, 1, FALSE) |
1344 | | }}} |
1345 | | |
1346 | | 2. ST_Mean(rast raster, nband int) -> double precision |
1347 | | |
1348 | | assumes exclude_nodata_value = TRUE |
1349 | | |
1350 | | {{{ |
1351 | | ST_Mean(rast, 2) |
1352 | | }}} |
1353 | | |
1354 | | 3. ST_Mean(rast raster, exclude_nodata_value boolean) -> double precision |
1355 | | |
1356 | | assumes nband = 1 |
1357 | | |
1358 | | {{{ |
1359 | | ST_Mean(rast, TRUE) |
1360 | | }}} |
1361 | | |
1362 | | 4. ST_Mean(rast raster) -> double precision |
1363 | | |
1364 | | assumes nband = 1 and exclude_nodata_value = TRUE |
1365 | | |
1366 | | {{{ |
1367 | | ST_Mean(rast) |
1368 | | }}} |
1369 | | |
1370 | | The set of ST_ApproxMean functions are: |
1371 | | |
1372 | | 1. ST_ApproxMean(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1373 | | |
1374 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
1375 | | |
1376 | | {{{ |
1377 | | ST_ApproxMean(rast, 3, FALSE, 0.1) |
1378 | | |
1379 | | ST_ApproxMean(rast, 1, TRUE, 0.5) |
1380 | | }}} |
1381 | | |
1382 | | 2. ST_ApproxMean(rast raster, nband int, sample_percent double precision) -> double precision |
1383 | | |
1384 | | assumes that nband = 1 |
1385 | | |
1386 | | {{{ |
1387 | | ST_ApproxMean(rast, 2 0.01) |
1388 | | |
1389 | | ST_ApproxMean(rast, 4, 0.025) |
1390 | | }}} |
1391 | | |
1392 | | 3. ST_ApproxMean(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1393 | | |
1394 | | assumes that nband = 1 |
1395 | | |
1396 | | {{{ |
1397 | | ST_ApproxMean(rast, FALSE, 0.01) |
1398 | | |
1399 | | ST_ApproxMean(rast, TRUE, 0.025) |
1400 | | }}} |
1401 | | |
1402 | | 4. ST_ApproxMean(rast raster, sample_percent double precision) -> double precision |
1403 | | |
1404 | | assumes that nband = 1 and exclude_nodata_value = TRUE |
1405 | | |
1406 | | {{{ |
1407 | | ST_ApproxMean(rast, 0.25) |
1408 | | }}} |
1409 | | |
1410 | | 5. ST_ApproxMean(rast raster) -> double precision |
1411 | | |
1412 | | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
1413 | | |
1414 | | {{{ |
1415 | | ST_ApproxMean(rast) |
1416 | | }}} |
1417 | | |
1418 | | The following functions are provided for coverage tables. |
1419 | | |
1420 | | 1. ST_Mean(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> double precision |
1421 | | |
1422 | | rastertable: name of table with raster column |
1423 | | |
1424 | | rastercolumn: name of column of data type raster |
1425 | | |
1426 | | {{{ |
1427 | | ST_Mean('tmax_2010', 'rast', 1, FALSE) |
1428 | | |
1429 | | ST_Mean('precip_2011', 'rast', 1, TRUE) |
1430 | | }}} |
1431 | | |
1432 | | 2. ST_Mean(rastertable text, rastercolumn text, nband int) -> double precision |
1433 | | |
1434 | | exclude_nodata_value = TRUE |
1435 | | |
1436 | | {{{ |
1437 | | ST_Mean('tmax_2010', 'rast', 1) |
1438 | | }}} |
1439 | | |
1440 | | 3. ST_Mean(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> double precision |
1441 | | |
1442 | | nband = 1 |
1443 | | |
1444 | | {{{ |
1445 | | ST_Mean('precip_2011', 'rast', TRUE) |
1446 | | }}} |
1447 | | |
1448 | | 4. ST_Mean(rastertable text, rastercolumn text) -> double precision |
1449 | | |
1450 | | nband = 1 and exclude_nodata_value = TRUE |
1451 | | |
1452 | | {{{ |
1453 | | ST_Mean('tmin_2009', 'rast') |
1454 | | }}} |
1455 | | |
1456 | | Variations for ST_ApproxMean are: |
1457 | | |
1458 | | 1. ST_ApproxMean(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1459 | | |
1460 | | {{{ |
1461 | | ST_ApproxMean('tmax_2010', 'rast', 1, FALSE, 0.5) |
1462 | | |
1463 | | ST_ApproxMean('precip_2011', 'rast', 1, TRUE, 0.2) |
1464 | | }}} |
1465 | | |
1466 | | 2. ST_ApproxMean(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> double precision |
1467 | | |
1468 | | exclude_nodata_value = TRUE |
1469 | | |
1470 | | {{{ |
1471 | | ST_ApproxMean('tmax_2010', 'rast', 1, 0.5) |
1472 | | |
1473 | | ST_ApproxMean('precip_2011', 'rast', 1, 0.2) |
1474 | | }}} |
1475 | | |
1476 | | 3. ST_ApproxMean(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1477 | | |
1478 | | nband = 1 |
1479 | | |
1480 | | {{{ |
1481 | | ST_ApproxMean('tmax_2010', 'rast', FALSE, 0.5) |
1482 | | |
1483 | | ST_ApproxMean('precip_2011', 'rast', TRUE, 0.2) |
1484 | | }}} |
1485 | | |
1486 | | 4. ST_ApproxMean(rastertable text, rastercolumn text, sample_percent double precision) -> double precision |
1487 | | |
1488 | | nband = 1 and exclude_nodata_value = TRUE |
1489 | | |
1490 | | {{{ |
1491 | | ST_ApproxMean('tmax_2010', 'rast', 0.5) |
1492 | | |
1493 | | ST_ApproxMean('precip_2011', 'rast', 0.2) |
1494 | | }}} |
1495 | | |
1496 | | 5. ST_ApproxMean(rastertable text, rastercolumn text) -> double precision |
1497 | | |
1498 | | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
1499 | | |
1500 | | {{{ |
1501 | | ST_ApproxMean('tmax_2010', 'rast') |
1502 | | |
1503 | | ST_ApproxMean('precip_2011', 'rast') |
1504 | | }}} |
1505 | | |
1506 | | The mean returned in the coverage functions (has rastertable and rastercolumn arguments) is the true mean of the raster tiles. |
1507 | | |
1508 | | ---- |
1509 | | |
1510 | | '''ST_StdDev(raster, nband) -> double precision'''[[BR]] |
1511 | | This function calls ST_SummaryStats and only returns the standard deviation from that function. |
1512 | | |
1513 | | 1. ST_StdDev(rast raster, nband int, exclude_nodata_value boolean) -> double precision |
1514 | | |
1515 | | returns the standard deviation as a double precision |
1516 | | |
1517 | | nband: index of band |
1518 | | |
1519 | | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
1520 | | |
1521 | | {{{ |
1522 | | ST_StdDev(rast, 1, FALSE) |
1523 | | }}} |
1524 | | |
1525 | | 2. ST_StdDev(rast raster, nband int) -> double precision |
1526 | | |
1527 | | assumes exclude_nodata_value = TRUE |
1528 | | |
1529 | | {{{ |
1530 | | ST_StdDev(rast, 2) |
1531 | | }}} |
1532 | | |
1533 | | 3. ST_StdDev(rast raster, exclude_nodata_value boolean) -> double precision |
1534 | | |
1535 | | assumes nband = 1 |
1536 | | |
1537 | | {{{ |
1538 | | ST_StdDev(rast, TRUE) |
1539 | | }}} |
1540 | | |
1541 | | 4. ST_StdDev(rast raster) -> double precision |
1542 | | |
1543 | | assumes nband = 1 and exclude_nodata_value = TRUE |
1544 | | |
1545 | | {{{ |
1546 | | ST_StdDev(rast) |
1547 | | }}} |
1548 | | |
1549 | | The set of ST_ApproxStdDev functions are: |
1550 | | |
1551 | | 1. ST_ApproxStdDev(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1552 | | |
1553 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
1554 | | |
1555 | | {{{ |
1556 | | ST_ApproxStdDev(rast, 3, FALSE, 0.1) |
1557 | | |
1558 | | ST_ApproxStdDev(rast, 1, TRUE, 0.5) |
1559 | | }}} |
1560 | | |
1561 | | 2. ST_ApproxStdDev(rast raster, nband int, sample_percent double precision) -> double precision |
1562 | | |
1563 | | assumes that nband = 1 |
1564 | | |
1565 | | {{{ |
1566 | | ST_ApproxStdDev(rast, 2 0.01) |
1567 | | |
1568 | | ST_ApproxStdDev(rast, 4, 0.025) |
1569 | | }}} |
1570 | | |
1571 | | 3. ST_ApproxStdDev(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1572 | | |
1573 | | assumes that nband = 1 |
1574 | | |
1575 | | {{{ |
1576 | | ST_ApproxStdDev(rast, FALSE, 0.01) |
1577 | | |
1578 | | ST_ApproxStdDev(rast, TRUE, 0.025) |
1579 | | }}} |
1580 | | |
1581 | | 4. ST_ApproxStdDev(rast raster, sample_percent double precision) -> double precision |
1582 | | |
1583 | | assumes that nband = 1 and exclude_nodata_value = TRUE |
1584 | | |
1585 | | {{{ |
1586 | | ST_ApproxStdDev(rast, 0.25) |
1587 | | }}} |
1588 | | |
1589 | | 5. ST_ApproxStdDev(rast raster) -> double precision |
1590 | | |
1591 | | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
1592 | | |
1593 | | {{{ |
1594 | | ST_ApproxStdDev(rast) |
1595 | | }}} |
1596 | | |
1597 | | The following functions are provided for coverage tables. |
1598 | | |
1599 | | 1. ST_StdDev(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> double precision |
1600 | | |
1601 | | rastertable: name of table with raster column |
1602 | | |
1603 | | rastercolumn: name of column of data type raster |
1604 | | |
1605 | | {{{ |
1606 | | ST_StdDev('tmax_2010', 'rast', 1, FALSE) |
1607 | | |
1608 | | ST_StdDev('precip_2011', 'rast', 1, TRUE) |
1609 | | }}} |
1610 | | |
1611 | | 2. ST_StdDev(rastertable text, rastercolumn text, nband int) -> double precision |
1612 | | |
1613 | | exclude_nodata_value = TRUE |
1614 | | |
1615 | | {{{ |
1616 | | ST_StdDev('tmax_2010', 'rast', 1) |
1617 | | }}} |
1618 | | |
1619 | | 3. ST_StdDev(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> double precision |
1620 | | |
1621 | | nband = 1 |
1622 | | |
1623 | | {{{ |
1624 | | ST_StdDev('precip_2011', 'rast', TRUE) |
1625 | | }}} |
1626 | | |
1627 | | 4. ST_StdDev(rastertable text, rastercolumn text) -> double precision |
1628 | | |
1629 | | nband = 1 and exclude_nodata_value = TRUE |
1630 | | |
1631 | | {{{ |
1632 | | ST_StdDev('tmin_2009', 'rast') |
1633 | | }}} |
1634 | | |
1635 | | Variations for ST_ApproxStdDev are: |
1636 | | |
1637 | | 1. ST_ApproxStdDev(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1638 | | |
1639 | | {{{ |
1640 | | ST_ApproxStdDev('tmax_2010', 'rast', 1, FALSE, 0.5) |
1641 | | |
1642 | | ST_ApproxStdDev('precip_2011', 'rast', 1, TRUE, 0.2) |
1643 | | }}} |
1644 | | |
1645 | | 2. ST_ApproxStdDev(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> double precision |
1646 | | |
1647 | | exclude_nodata_value = TRUE |
1648 | | |
1649 | | {{{ |
1650 | | ST_ApproxStdDev('tmax_2010', 'rast', 1, 0.5) |
1651 | | |
1652 | | ST_ApproxStdDev('precip_2011', 'rast', 1, 0.2) |
1653 | | }}} |
1654 | | |
1655 | | 3. ST_ApproxStdDev(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
1656 | | |
1657 | | nband = 1 |
1658 | | |
1659 | | {{{ |
1660 | | ST_ApproxStdDev('tmax_2010', 'rast', FALSE, 0.5) |
1661 | | |
1662 | | ST_ApproxStdDev('precip_2011', 'rast', TRUE, 0.2) |
1663 | | }}} |
1664 | | |
1665 | | 4. ST_ApproxStdDev(rastertable text, rastercolumn text, sample_percent double precision) -> double precision |
1666 | | |
1667 | | nband = 1 and exclude_nodata_value = TRUE |
1668 | | |
1669 | | {{{ |
1670 | | ST_ApproxStdDev('tmax_2010', 'rast', 0.5) |
1671 | | |
1672 | | ST_ApproxStdDev('precip_2011', 'rast', 0.2) |
1673 | | }}} |
1674 | | |
1675 | | 5. ST_ApproxStdDev(rastertable text, rastercolumn text) -> double precision |
1676 | | |
1677 | | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
1678 | | |
1679 | | {{{ |
1680 | | ST_ApproxStdDev('tmax_2010', 'rast') |
1681 | | |
1682 | | ST_ApproxStdDev('precip_2011', 'rast') |
1683 | | }}} |
1684 | | |
1685 | | The standard deviation returned in the coverage functions (has rastertable and rastercolumn arguments) is the standard deviation of all raster tiles. |
1686 | | |
1687 | | ---- |
1688 | | |
1689 | | '''ST_MinMax(raster, nband) -> record'''[[BR]] |
1690 | | This function calls ST_SummaryStats and only returns the min and max values from that function. |
1691 | | |
1692 | | 1. ST_MinMax(rast raster, nband int, exclude_nodata_value boolean) -> record |
1693 | | |
1694 | | returns the record (min double precision, max double precision) |
1695 | | |
1696 | | nband: index of band |
1697 | | |
1698 | | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
1699 | | |
1700 | | {{{ |
1701 | | ST_MinMax(rast, 1, FALSE) |
1702 | | }}} |
1703 | | |
1704 | | 2. ST_MinMax(rast raster, nband int) -> record |
1705 | | |
1706 | | assumes exclude_nodata_value = TRUE |
1707 | | |
1708 | | {{{ |
1709 | | ST_MinMax(rast, 2) |
1710 | | }}} |
1711 | | |
1712 | | 3. ST_MinMax(rast raster, exclude_nodata_value boolean) -> record |
1713 | | |
1714 | | assumes nband = 1 |
1715 | | |
1716 | | {{{ |
1717 | | ST_MinMax(rast, TRUE) |
1718 | | }}} |
1719 | | |
1720 | | 4. ST_MinMax(rast raster) -> record |
1721 | | |
1722 | | assumes nband = 1 and exclude_nodata_value = TRUE |
1723 | | |
1724 | | {{{ |
1725 | | ST_MinMax(rast) |
1726 | | }}} |
1727 | | |
1728 | | The set of ST_ApproxMinMax functions are: |
1729 | | |
1730 | | 1. ST_ApproxMinMax(rast raster, nband int, exclude_nodata_value boolean, sample_percent record) -> record |
1731 | | |
1732 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
1733 | | |
1734 | | {{{ |
1735 | | ST_ApproxMinMax(rast, 3, FALSE, 0.1) |
1736 | | |
1737 | | ST_ApproxMinMax(rast, 1, TRUE, 0.5) |
1738 | | }}} |
1739 | | |
1740 | | 2. ST_ApproxMinMax(rast raster, nband int, sample_percent double precision) -> record |
1741 | | |
1742 | | assumes that nband = 1 |
1743 | | |
1744 | | {{{ |
1745 | | ST_ApproxMinMax(rast, 2 0.01) |
1746 | | |
1747 | | ST_ApproxMinMax(rast, 4, 0.025) |
1748 | | }}} |
1749 | | |
1750 | | 3. ST_ApproxMinMax(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> record |
1751 | | |
1752 | | assumes that nband = 1 |
1753 | | |
1754 | | {{{ |
1755 | | ST_ApproxMinMax(rast, FALSE, 0.01) |
1756 | | |
1757 | | ST_ApproxMinMax(rast, TRUE, 0.025) |
1758 | | }}} |
1759 | | |
1760 | | 4. ST_ApproxMinMax(rast raster, sample_percent double precision) -> record |
1761 | | |
1762 | | assumes that nband = 1 and exclude_nodata_value = TRUE |
1763 | | |
1764 | | {{{ |
1765 | | ST_ApproxMinMax(rast, 0.25) |
1766 | | }}} |
1767 | | |
1768 | | 5. ST_ApproxMinMax(rast raster) -> record |
1769 | | |
1770 | | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
1771 | | |
1772 | | {{{ |
1773 | | ST_ApproxMinMax(rast) |
1774 | | }}} |
1775 | | |
1776 | | The following functions are provided for coverage tables. |
1777 | | |
1778 | | 1. ST_MinMax(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> record |
1779 | | |
1780 | | rastertable: name of table with raster column |
1781 | | |
1782 | | rastercolumn: name of column of data type raster |
1783 | | |
1784 | | {{{ |
1785 | | ST_MinMax('tmax_2010', 'rast', 1, FALSE) |
1786 | | |
1787 | | ST_MinMax('precip_2011', 'rast', 1, TRUE) |
1788 | | }}} |
1789 | | |
1790 | | 2. ST_MinMax(rastertable text, rastercolumn text, nband int) -> record |
1791 | | |
1792 | | exclude_nodata_value = TRUE |
1793 | | |
1794 | | {{{ |
1795 | | ST_MinMax('tmax_2010', 'rast', 1) |
1796 | | }}} |
1797 | | |
1798 | | 3. ST_MinMax(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> record |
1799 | | |
1800 | | nband = 1 |
1801 | | |
1802 | | {{{ |
1803 | | ST_MinMax('precip_2011', 'rast', TRUE) |
1804 | | }}} |
1805 | | |
1806 | | 4. ST_MinMax(rastertable text, rastercolumn text) -> record |
1807 | | |
1808 | | nband = 1 and exclude_nodata_value = TRUE |
1809 | | |
1810 | | {{{ |
1811 | | ST_MinMax('tmin_2009', 'rast') |
1812 | | }}} |
1813 | | |
1814 | | Variations for ST_ApproxMinMax are: |
1815 | | |
1816 | | 1. ST_ApproxMinMax(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> record |
1817 | | |
1818 | | {{{ |
1819 | | ST_ApproxMinMax('tmax_2010', 'rast', 1, FALSE, 0.5) |
1820 | | |
1821 | | ST_ApproxMinMax('precip_2011', 'rast', 1, TRUE, 0.2) |
1822 | | }}} |
1823 | | |
1824 | | 2. ST_ApproxMinMax(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> record |
1825 | | |
1826 | | exclude_nodata_value = TRUE |
1827 | | |
1828 | | {{{ |
1829 | | ST_ApproxMinMax('tmax_2010', 'rast', 1, 0.5) |
1830 | | |
1831 | | ST_ApproxMinMax('precip_2011', 'rast', 1, 0.2) |
1832 | | }}} |
1833 | | |
1834 | | 3. ST_ApproxMinMax(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> record |
1835 | | |
1836 | | nband = 1 |
1837 | | |
1838 | | {{{ |
1839 | | ST_ApproxMinMax('tmax_2010', 'rast', FALSE, 0.5) |
1840 | | |
1841 | | ST_ApproxMinMax('precip_2011', 'rast', TRUE, 0.2) |
1842 | | }}} |
1843 | | |
1844 | | 4. ST_ApproxMinMax(rastertable text, rastercolumn text, sample_percent double precision) -> record |
1845 | | |
1846 | | nband = 1 and exclude_nodata_value = TRUE |
1847 | | |
1848 | | {{{ |
1849 | | ST_ApproxMinMax('tmax_2010', 'rast', 0.5) |
1850 | | |
1851 | | ST_ApproxMinMax('precip_2011', 'rast', 0.2) |
1852 | | }}} |
1853 | | |
1854 | | 5. ST_ApproxMinMax(rastertable text, rastercolumn text) -> record |
1855 | | |
1856 | | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
1857 | | |
1858 | | {{{ |
1859 | | ST_ApproxMinMax('tmax_2010', 'rast') |
1860 | | |
1861 | | ST_ApproxMinMax('precip_2011', 'rast') |
1862 | | }}} |
1863 | | |
1864 | | ---- |
1865 | | |
1866 | | '''ST_Histogram(raster, nband) -> set of records'''[[BR]] |
1867 | | ST_Histogram and ST_ApproxHistogram provide methods to determine a raster's data distribution. |
1868 | | |
1869 | | The return of ST_Histogram and ST_ApproxHistogram is a set of records where each record is (min, max, count, percent). |
1870 | | |
1871 | | ST_Histogram has the following variations. |
1872 | | |
1873 | | 1. ST_Histogram(rast raster, nband int, exclude_nodata_value boolean, bins int, width double precision[], right boolean) -> set of records |
1874 | | |
1875 | | returns set of records of four columns (min, max, count, percent) |
1876 | | |
1877 | | nband: index of band to process on |
1878 | | |
1879 | | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
1880 | | |
1881 | | bins: the number of categories/bins to have in the histogram. If NULL or value less than one, the number of categories will be auto-computed using Sturges' formula if the number of values >= 30 or Square-root choice if number of values < 30. |
1882 | | |
1883 | | http://en.wikipedia.org/wiki/Histogram#Mathematical_definition |
1884 | | |
1885 | | width: an array indicating the width of each category/bin. If the number of bins is greater than the number of widths, the widths are repeated. Example: 9 bins, widths are [a, b, c] will have the output be [a, b, c, a, b, c, a, b, c]. |
1886 | | |
1887 | | right: compute the histogram from the right rather than from the left (default). This changes the criteria for evaluating a value x from [a, b) to (a, b]. |
1888 | | |
1889 | | {{{ |
1890 | | ST_Histogram(rast, 2, FALSE, NULL, NULL, FALSE) |
1891 | | |
1892 | | ST_Histogram(rast, 1, TRUE, 100, NULL, FALSE) |
1893 | | |
1894 | | ST_Histogram(rast, 2, FALSE, NULL, ARRAY[100, 50], FALSE) |
1895 | | |
1896 | | ST_Histogram(rast, 2, FALSE, 9, ARRAY[1000], TRUE) |
1897 | | |
1898 | | ST_Histogram(rast, 2, FALSE, 20, ARRAY[100, 200, 300], TRUE) |
1899 | | }}} |
1900 | | |
1901 | | 2. ST_Histogram(rast raster, nband int, exclude_nodata_value boolean, bins int, right boolean) -> set of records |
1902 | | |
1903 | | parameter "width" is not specified thus resulting in all bins having the same widths |
1904 | | |
1905 | | {{{ |
1906 | | ST_Histogram(rast, 2, FALSE, 5, FALSE) |
1907 | | }}} |
1908 | | |
1909 | | 3. ST_Histogram(rast raster, nband int, exclude_nodata_value boolean, bins int) -> set of records |
1910 | | |
1911 | | the parameter "right" is removed and assumed to be FALSE |
1912 | | |
1913 | | {{{ |
1914 | | ST_Histogram(rast, 2, FALSE, 5) |
1915 | | }}} |
1916 | | |
1917 | | 4. ST_Histogram(rast raster, nband int, exclude_nodata_value boolean) -> set of records |
1918 | | |
1919 | | the parameter "bins" is removed and set to NULL. The function will compute the number of bins to use |
1920 | | |
1921 | | 5. ST_Histogram(rast raster, nband int) -> set of records |
1922 | | |
1923 | | exclude_nodata_value is assumed to be TRUE |
1924 | | |
1925 | | 6. ST_Histogram(rast raster) -> set of records |
1926 | | |
1927 | | assumes that nband is 1. |
1928 | | |
1929 | | 7. ST_Histogram(rast raster, nband int, bins int, width double precision[], right boolean) -> set of records |
1930 | | |
1931 | | exclude_nodata_value is assumed to be TRUE |
1932 | | |
1933 | | 8. ST_Histogram(rast raster, nband int, bins int, right boolean) -> set of records |
1934 | | |
1935 | | all bins will have equal widths |
1936 | | |
1937 | | 9. ST_Histogram(rast raster, nband int, bins int) -> set of records |
1938 | | |
1939 | | right is assumed to be FALSE |
1940 | | |
1941 | | ST_ApproxHistogram should have the following variations. |
1942 | | |
1943 | | 1. ST_ApproxHistogram(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision, bins int, width double precision[], right boolean) -> set of record |
1944 | | |
1945 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider when generating the histogram. |
1946 | | |
1947 | | {{{ |
1948 | | ST_Histogram(rast, 2, FALSE, 0.1, NULL, NULL, FALSE) |
1949 | | |
1950 | | ST_Histogram(rast, 1, TRUE, 1, 100, NULL, FALSE) |
1951 | | |
1952 | | ST_Histogram(rast, 2, FALSE, 0.2, NULL, ARRAY[100, 50], FALSE) |
1953 | | |
1954 | | ST_Histogram(rast, 2, FALSE, 0.25, 9, ARRAY[1000], TRUE) |
1955 | | |
1956 | | ST_Histogram(rast, 2, FALSE, 0.05, 20, ARRAY[100, 200, 300], TRUE) |
1957 | | }}} |
1958 | | |
1959 | | 2. ST_ApproxHistogram(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision, bins int, right boolean) -> set of records |
1960 | | |
1961 | | parameter "width" is not specified thus resulting in all bins having the same widths |
1962 | | |
1963 | | 3. ST_ApproxHistogram(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision, bins int) -> set of records |
1964 | | |
1965 | | the parameter "right" is removed and assumed to be FALSE |
1966 | | |
1967 | | {{{ |
1968 | | ST_ApproxHistogram(rast, 2, FALSE, 5) |
1969 | | }}} |
1970 | | |
1971 | | 4. ST_ApproxHistogram(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> set of records |
1972 | | |
1973 | | the parameter "bins" is removed and set to NULL so that function can compute the number of bins to use |
1974 | | |
1975 | | 5. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision) -> set of records |
1976 | | |
1977 | | exclude_nodata_value is assumed to be TRUE |
1978 | | |
1979 | | 6. ST_ApproxHistogram(rast raster, nband int) -> set of records |
1980 | | |
1981 | | assumes that sample_percent is 0.1 |
1982 | | |
1983 | | 7. ST_ApproxHistogram(rast raster, sample_percent double_precision) -> set of records |
1984 | | |
1985 | | assumes that nband is 1 |
1986 | | |
1987 | | 8. ST_ApproxHistogram(rast raster) -> set of records |
1988 | | |
1989 | | assumes that nband is 1 and sample_percent is 0.1 |
1990 | | |
1991 | | 9. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int, width double precision[], right boolean) -> set of records |
1992 | | |
1993 | | exclude_nodata_value is assumed to be TRUE |
1994 | | |
1995 | | 10. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int, right boolean) -> set of records |
1996 | | |
1997 | | all bins will have equal widths |
1998 | | |
1999 | | 11. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int) -> set of records |
2000 | | |
2001 | | right is assumed to be FALSE |
2002 | | |
2003 | | The following set of function are for coverages. |
2004 | | |
2005 | | 1. ST_Histogram(rastertable text, rastercolumn text, nband int DEFAULT 1, exclude_nodata_value boolean DEFAULT TRUE, bins int default 0, width double precision[] DEFAULT NULL, right boolean DEFAULT FALSE) -> set of records |
2006 | | |
2007 | | rastertable: name of table with raster column |
2008 | | |
2009 | | rastercolumn: name of column of data type raster |
2010 | | |
2011 | | {{{ |
2012 | | ST_Histogram('tmax_2010', 'rast') |
2013 | | |
2014 | | ST_Histogram('precip_2011', 'rast', 1) |
2015 | | |
2016 | | ST_Histogram('precip_2011', 'rast', 1, FALSE) |
2017 | | |
2018 | | ST_Histogram('precip_2011', 'rast', 1, FALSE, 5) |
2019 | | |
2020 | | ST_Histogram('precip_2011', 'rast', 1, FALSE, 10, NULL) |
2021 | | |
2022 | | ST_Histogram('precip_2011', 'rast', 1, FALSE, 10, NULL, TRUE) |
2023 | | }}} |
2024 | | |
2025 | | 2. ST_Histogram(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, bins int, right boolean) -> set of records |
2026 | | |
2027 | | {{{ |
2028 | | ST_Histogram('tmin_2010', 'rast', 2, FALSE, 5, FALSE) |
2029 | | }}} |
2030 | | |
2031 | | 3. ST_Histogram(rastertable text, rastercolumn text, nband int, bins int, width double precision[] DEFAULT NULL, right boolean DEFAULT FALSE) -> set of records |
2032 | | |
2033 | | {{{ |
2034 | | ST_Histogram('ndvi_2010', 'rast', 1, 5) |
2035 | | |
2036 | | ST_Histogram('ndvi_2010', 'rast', 1, 0, ARRAY[0.5]::double precision[]) |
2037 | | |
2038 | | ST_Histogram('ndvi_2010', 'rast', 1, 5, NULL, TRUE) |
2039 | | }}} |
2040 | | |
2041 | | 4. ST_Histogram(rastertable text, rastercolumn text, nband int, bins int, right boolean) -> set of records |
2042 | | |
2043 | | {{{ |
2044 | | ST_Histogram('veg_2009', 'rast', 2, 3, FALSE) |
2045 | | |
2046 | | ST_Histogram('veg_2009', 'rast', 2, 3, TRUE) |
2047 | | }}} |
2048 | | |
2049 | | A set of functions of ST_ApproxHistogram for coverage tables: |
2050 | | |
2051 | | 1. ST_ApproxHistogram(rastertable text, rastercolumn text, nband int DEFAULT 1, exclude_nodata_value boolean DEFAULT TRUE, sample_percent double precision DEFAULT 0.1, bins int DEFAULT 0, width double precision[] DEFAULT NULL, right boolean DEFAULT FALSE) -> set of records |
2052 | | |
2053 | | {{{ |
2054 | | ST_ApproxHistogram('precip_2010', 'rast') |
2055 | | |
2056 | | ST_ApproxHistogram('precip_2010', 'rast', 1) |
2057 | | |
2058 | | ST_ApproxHistogram('precip_2010', 'rast', 2, FALSE) |
2059 | | |
2060 | | ST_ApproxHistogram('precip_2010', 'rast', 1, TRUE, 0.25) |
2061 | | |
2062 | | ST_ApproxHistogram('precip_2010', 'rast', 3, FALSE, 0.2, 10) |
2063 | | |
2064 | | ST_ApproxHistogram('precip_2010', 'rast', 1, TRUE, 0.1, 0, ARRAY[1]::double precision[]) |
2065 | | |
2066 | | ST_ApproxHistogram('precip_2010', 'rast', 1, TRUE, 0.1, 0, ARRAY[1]::double precision[], FALSE) |
2067 | | }}} |
2068 | | |
2069 | | 2. ST_ApproxHistogram(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision, bins int, right boolean) |
2070 | | |
2071 | | 3. ST_ApproxHistogram(rastertable text, rastercolumn text, nband int, sample_percent double precision) |
2072 | | |
2073 | | 4. ST_ApproxHistogram(rastertable text, rastercolumn text, sample_percent double precision) |
2074 | | |
2075 | | 5. ST_ApproxHistogram(rastertable text, rastercolumn text, nband int, sample_percent double precision, bins int, width double precision[] DEFAULT NULL, right boolean DEFAULT FALSE) |
2076 | | |
2077 | | 6. ST_ApproxHistogram(rastertable text, rastercolumn text, nband int, sample_percent double precision, bins int, right boolean) |
2078 | | |
2079 | | ---- |
2080 | | '''ST_Quantile(raster, nband) -> set of records'''[[BR]] |
2081 | | In addition to determining the histogram of a raster, providing the ability to compute quantiles permits a user to reference a value in the context of the sample or population. Thus, a value could be examined to be at the raster's 25%, 50%, 75% percentile. |
2082 | | |
2083 | | http://en.wikipedia.org/wiki/Quantile |
2084 | | |
2085 | | ST_Quantile variations: |
2086 | | |
2087 | | 1. ST_Quantile(rast raster, nband int, exclude_nodata_value boolean, quantiles double precision[]) -> set of records |
2088 | | |
2089 | | each row returned is of (quantile double precision, value double precision) |
2090 | | |
2091 | | nband: index of band to process on |
2092 | | |
2093 | | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
2094 | | |
2095 | | quantiles: array of percentages to compute values for |
2096 | | |
2097 | | {{{ |
2098 | | ST_Quantile(rast, 1, FALSE, ARRAY[0.1, 0.3, 0.7]) |
2099 | | |
2100 | | ST_Quantile(rast, 1, TRUE, ARRAY[0.2]) |
2101 | | |
2102 | | ST_Quantile(rast, 1, FALSE, ARRAY[0, 1]) |
2103 | | }}} |
2104 | | |
2105 | | 2. ST_Quantile(rast raster, nband int, quantiles double precision[]) -> set of records |
2106 | | |
2107 | | "exclude_nodata_value" is assumed to be TRUE |
2108 | | |
2109 | | {{{ |
2110 | | ST_Quantile(rast, 1, ARRAY[0.1, 0.3, 0.7]) |
2111 | | }}} |
2112 | | |
2113 | | 3. ST_Quantile(rast raster, nband int, exclude_nodata_value boolean) -> set of records |
2114 | | |
2115 | | "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] |
2116 | | |
2117 | | 4. ST_Quantile(rast raster, nband int) -> set of records |
2118 | | |
2119 | | "exclude_nodata_value" is assumed to be TRUE and "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] |
2120 | | |
2121 | | 5. ST_Quantile(rast raster, quantiles double precision[]) -> set of records |
2122 | | |
2123 | | "nband" is assumed to be 1 and "exclude_nodata_value" is TRUE |
2124 | | |
2125 | | 6. ST_Quantile(rast raster) -> set of records |
2126 | | |
2127 | | "nband" is assumed to be 1 and "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] |
2128 | | |
2129 | | 7. ST_Quantile(rast raster, nband int, exclude_nodata_value boolean, quantile double precision) -> record |
2130 | | |
2131 | | quantile: the single percentile to compute |
2132 | | |
2133 | | 8. ST_Quantile(rast raster, nband int, quantile double precision) -> record |
2134 | | |
2135 | | "exclude_nodata_value" is assumed to be TRUE |
2136 | | |
2137 | | 9. ST_Quantile(rast raster, exclude_nodata_value boolean, quantile double precision) -> record |
2138 | | |
2139 | | "nband" is assumed to be 1 |
2140 | | |
2141 | | 10. ST_Quantile(rast raster, quantile double precision) -> record |
2142 | | |
2143 | | "nband" is assumed to be 1 and "exclude_nodata_value" is assumed to be TRUE |
2144 | | |
2145 | | ST_ApproxQuantile adds a "sample_percent" indicating the percentage of the raster to sample |
2146 | | |
2147 | | 1. ST_ApproxQuantile(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision, quantiles double precision[]) -> set of records |
2148 | | |
2149 | | nband: index of band to process on |
2150 | | |
2151 | | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
2152 | | |
2153 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider when computing the quantiles |
2154 | | |
2155 | | quantiles: array of percentages to compute values for |
2156 | | |
2157 | | {{{ |
2158 | | ST_ApproxQuantile(rast, 1, FALSE, 0.1, ARRAY[0.1, 0.3, 0.7]) |
2159 | | |
2160 | | ST_ApproxQuantile(rast, 1, TRUE, .2, ARRAY[0.2]) |
2161 | | |
2162 | | ST_ApproxQuantile(rast, 1, FALSE, 0.3, ARRAY[0, 1]) |
2163 | | }}} |
2164 | | |
2165 | | 2. ST_ApproxQuantile(rast raster, nband int, sample_percent double precision, quantiles double precision[]) -> set of records |
2166 | | |
2167 | | "exclude_nodata_value" is assumed to be TRUE |
2168 | | |
2169 | | {{{ |
2170 | | ST_ApproxQuantile(rast, 1, .05, ARRAY[0.1, 0.3, 0.7]) |
2171 | | }}} |
2172 | | |
2173 | | 3. ST_ApproxQuantile(rast raster, nband int, sample_percent double precision) -> set of records |
2174 | | |
2175 | | "exclude_nodata_value" is assumed to be TRUE and "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] |
2176 | | |
2177 | | 4. ST_ApproxQuantile(rast raster, sample_percent double precision, quantiles double precision[]) -> set of records |
2178 | | |
2179 | | "nband" is assumed to be 1 |
2180 | | |
2181 | | 5. ST_ApproxQuantile(rast raster, nband int, sample_percent double precision, quantile double precision) -> record |
2182 | | |
2183 | | quantile: the single percentile to compute |
2184 | | |
2185 | | 6. ST_ApproxQuantile(rast raster, sample_percent double precision, quantile double precision) -> record |
2186 | | |
2187 | | "nband" is assumed to be 2 |
2188 | | |
2189 | | 7. ST_ApproxQuantile(rast raster, sample_percent double precision) -> set of records |
2190 | | |
2191 | | "nband" is assumed to be 1 and "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] |
2192 | | |
2193 | | 8. ST_ApproxQuantile(rast raster, nband int, quantile double precision) -> record |
2194 | | |
2195 | | "sample_percent" assumed to be 0.1 |
2196 | | |
2197 | | 9. ST_ApproxQuantile(rast raster, quantiles double precision[]) -> set of records |
2198 | | |
2199 | | "nband" is assumed to be 1 and "sample_percent" assumed to be 0.1 |
2200 | | |
2201 | | 10. ST_ApproxQuantile(rast raster, quantile double precision) -> record |
2202 | | |
2203 | | "nband" assumed to be 1 and "sample_percent" assumed to be 0.1 |
2204 | | |
2205 | | 11. ST_ApproxQuantile(rast raster, nband int) -> set of records |
2206 | | |
2207 | | "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] and "sample_percent" assumed to be 0.1 |
2208 | | |
2209 | | 12. ST_ApproxQuantile(rast raster) -> set of records |
2210 | | |
2211 | | "nband" is assumed to be 1, "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] and "sample_percent" assumed to be 0.1 |
| 773 | |
| 1474 | |
| 1475 | ---- |
| 1476 | == '''Objective FV.16 - Being able to quickly get raster statistics.''' == |
| 1477 | |
| 1478 | '''Add cached basic raster statistic to the base raster WKB format. |
| 1479 | |
| 1480 | Statistics to be cached should include: |
| 1481 | |
| 1482 | min/max[[BR]] |
| 1483 | mean[[BR]] |
| 1484 | standard deviation[[BR]] |
| 1485 | histogram[[BR]] |
| 1486 | build parameters of stats (sample rate, method used to determine # of bins in histogram?)[[BR]] |
| 1487 | |
| 1488 | How are the statistics to be kept fresh? Automatically using some method to see how much of the raster has changed since the last stats calculation? Or let the user decide? |
| 1489 | |
| 1490 | ---- |
| 1491 | |
| 1492 | '''ST_SummaryStats(raster, nband) -> record'''[[BR]] |
| 1493 | This is the core function that gets the summary statistics (# of values, mean, standard deviation, minimum value, maximum value) of a specified raster's band. It is this function that ST_Mean, ST_StdDev and ST_MinMax calls for their appropriate values. |
| 1494 | |
| 1495 | 1. ST_SummaryStats(rast raster, nband int, exclude_nodata_value boolean) -> record |
| 1496 | |
| 1497 | returns one record of five columns (count, mean, stddev, min, max) |
| 1498 | |
| 1499 | nband: index of band |
| 1500 | |
| 1501 | exclude_nodata_value: if FALSE, nodata values in band are included in the stats. if TRUE, nodata values are not included |
| 1502 | |
| 1503 | {{{ |
| 1504 | ST_SummaryStats(rast, 1, FALSE) |
| 1505 | }}} |
| 1506 | |
| 1507 | 2. ST_SummaryStats(rast raster, nband int) -> record |
| 1508 | |
| 1509 | assumes exclude_nodata_value = TRUE |
| 1510 | |
| 1511 | {{{ |
| 1512 | ST_SummaryStats(rast, 2) |
| 1513 | }}} |
| 1514 | |
| 1515 | 3. ST_SummaryStats(rast raster, exclude_nodata_value boolean) -> record |
| 1516 | |
| 1517 | assumes nband = 1 |
| 1518 | |
| 1519 | {{{ |
| 1520 | ST_SummaryStats(rast, TRUE) |
| 1521 | }}} |
| 1522 | |
| 1523 | 4. ST_SummaryStats(rast raster) -> record |
| 1524 | |
| 1525 | assumes nband = 1 and exclude_nodata_value = TRUE |
| 1526 | |
| 1527 | {{{ |
| 1528 | ST_SummaryStats(rast) |
| 1529 | }}} |
| 1530 | |
| 1531 | Due to the time it may take to do on-the-fly calculation of summary stats for large rasters (say 10000 x 10000), an alternative that sacrifices accuracy for speed is required. The following functions sample a percentage of the raster in a methodical randomized manner. The algorithm used for sampling is... |
| 1532 | |
| 1533 | 1. select the larger dimension of the width and height. compute the number of pixels to sample in each "row" of the larger dimension |
| 1534 | |
| 1535 | 2. pick pixels from each "row" of the larger dimension in an incremental rolling manner where each increment is randomly determined. |
| 1536 | |
| 1537 | The set of ST_ApproxSummaryStats functions are: |
| 1538 | |
| 1539 | 1. ST_ApproxSummaryStats(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> record |
| 1540 | |
| 1541 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
| 1542 | |
| 1543 | {{{ |
| 1544 | ST_ApproxSummaryStats(rast, 3, FALSE, 0.1) |
| 1545 | |
| 1546 | ST_ApproxSummaryStats(rast, 1, TRUE, 0.5) |
| 1547 | }}} |
| 1548 | |
| 1549 | 2. ST_ApproxSummaryStats(rast raster, nband int, sample_percent double precision) -> record |
| 1550 | |
| 1551 | assumes that nband = 1 |
| 1552 | |
| 1553 | {{{ |
| 1554 | ST_ApproxSummaryStats(rast, 2 0.01) |
| 1555 | |
| 1556 | ST_ApproxSummaryStats(rast, 4, 0.025) |
| 1557 | }}} |
| 1558 | |
| 1559 | 3. ST_ApproxSummaryStats(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> record |
| 1560 | |
| 1561 | assumes that nband = 1 |
| 1562 | |
| 1563 | {{{ |
| 1564 | ST_ApproxSummaryStats(rast, FALSE, 0.01) |
| 1565 | |
| 1566 | ST_ApproxSummaryStats(rast, TRUE, 0.025) |
| 1567 | }}} |
| 1568 | |
| 1569 | 4. ST_ApproxSummaryStats(rast raster, sample_percent double precision) -> record |
| 1570 | |
| 1571 | assumes that nband = 1 and exclude_nodata_value = TRUE |
| 1572 | |
| 1573 | {{{ |
| 1574 | ST_ApproxSummaryStats(rast, 0.25) |
| 1575 | }}} |
| 1576 | |
| 1577 | 5. ST_ApproxSummaryStats(rast raster) -> record |
| 1578 | |
| 1579 | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 1580 | |
| 1581 | {{{ |
| 1582 | ST_ApproxSummaryStats(rast) |
| 1583 | }}} |
| 1584 | |
| 1585 | The situation arises where the summary statistics of a coverage table is required. As the coverage may be large (tens of gigabytes of memory or larger), the following functions are provided to permit an incremental computation of the summary statistics. |
| 1586 | |
| 1587 | 1. ST_SummaryStats(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> record |
| 1588 | |
| 1589 | rastertable: name of table with raster column |
| 1590 | |
| 1591 | rastercolumn: name of column of data type raster |
| 1592 | |
| 1593 | {{{ |
| 1594 | ST_SummaryStats('tmax_2010', 'rast', 1, FALSE) |
| 1595 | |
| 1596 | ST_SummaryStats('precip_2011', 'rast', 1, TRUE) |
| 1597 | }}} |
| 1598 | |
| 1599 | 2. ST_SummaryStats(rastertable text, rastercolumn text, nband int) -> record |
| 1600 | |
| 1601 | exclude_nodata_value = TRUE |
| 1602 | |
| 1603 | {{{ |
| 1604 | ST_SummaryStats('tmax_2010', 'rast', 1) |
| 1605 | }}} |
| 1606 | |
| 1607 | 3. ST_SummaryStats(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> record |
| 1608 | |
| 1609 | nband = 1 |
| 1610 | |
| 1611 | {{{ |
| 1612 | ST_SummaryStats('precip_2011', 'rast', TRUE) |
| 1613 | }}} |
| 1614 | |
| 1615 | 4. ST_SummaryStats(rastertable text, rastercolumn text) -> record |
| 1616 | |
| 1617 | nband = 1 and exclude_nodata_value = TRUE |
| 1618 | |
| 1619 | {{{ |
| 1620 | ST_SummaryStats('tmin_2009', 'rast') |
| 1621 | }}} |
| 1622 | |
| 1623 | Variations for ST_ApproxSummaryStats are: |
| 1624 | |
| 1625 | 1. ST_ApproxSummaryStats(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> record |
| 1626 | |
| 1627 | {{{ |
| 1628 | ST_ApproxSummaryStats('tmax_2010', 'rast', 1, FALSE, 0.5) |
| 1629 | |
| 1630 | ST_ApproxSummaryStats('precip_2011', 'rast', 1, TRUE, 0.2) |
| 1631 | }}} |
| 1632 | |
| 1633 | 2. ST_ApproxSummaryStats(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> record |
| 1634 | |
| 1635 | exclude_nodata_value = TRUE |
| 1636 | |
| 1637 | {{{ |
| 1638 | ST_ApproxSummaryStats('tmax_2010', 'rast', 1, 0.5) |
| 1639 | |
| 1640 | ST_ApproxSummaryStats('precip_2011', 'rast', 1, 0.2) |
| 1641 | }}} |
| 1642 | |
| 1643 | 3. ST_ApproxSummaryStats(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> record |
| 1644 | |
| 1645 | nband = 1 |
| 1646 | |
| 1647 | {{{ |
| 1648 | ST_ApproxSummaryStats('tmax_2010', 'rast', FALSE, 0.5) |
| 1649 | |
| 1650 | ST_ApproxSummaryStats('precip_2011', 'rast', TRUE, 0.2) |
| 1651 | }}} |
| 1652 | |
| 1653 | 4. ST_ApproxSummaryStats(rastertable text, rastercolumn text, sample_percent double precision) -> record |
| 1654 | |
| 1655 | nband = 1 and exclude_nodata_value = TRUE |
| 1656 | |
| 1657 | {{{ |
| 1658 | ST_ApproxSummaryStats('tmax_2010', 'rast', 0.5) |
| 1659 | |
| 1660 | ST_ApproxSummaryStats('precip_2011', 'rast', 0.2) |
| 1661 | }}} |
| 1662 | |
| 1663 | 5. ST_ApproxSummaryStats(rastertable text, rastercolumn text) -> record |
| 1664 | |
| 1665 | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 1666 | |
| 1667 | {{{ |
| 1668 | ST_ApproxSummaryStats('tmax_2010', 'rast') |
| 1669 | |
| 1670 | ST_ApproxSummaryStats('precip_2011', 'rast') |
| 1671 | }}} |
| 1672 | |
| 1673 | The mean returned in the coverage functions (has rastertable and rastercolumn arguments) is the true mean of the raster tiles. The standard deviation returned is the standard deviation of all raster tiles. |
| 1674 | |
| 1675 | ---- |
| 1676 | |
| 1677 | '''ST_Count(raster, nband) -> bigint'''[[BR]] |
| 1678 | |
| 1679 | This function calls ST_SummaryStats and only returns the count from that function. |
| 1680 | |
| 1681 | 1. ST_Count(rast raster, nband int, exclude_nodata_value boolean) -> bigint |
| 1682 | |
| 1683 | returns the count as an integer |
| 1684 | |
| 1685 | nband: index of band |
| 1686 | |
| 1687 | exclude_nodata_value: if FALSE, nodata values in band are included in the stats. if TRUE, nodata values are not included |
| 1688 | |
| 1689 | {{{ |
| 1690 | ST_Count(rast, 1, FALSE) |
| 1691 | }}} |
| 1692 | |
| 1693 | 2. ST_Count(rast raster, nband int) -> bigint |
| 1694 | |
| 1695 | assumes exclude_nodata_value = TRUE |
| 1696 | |
| 1697 | {{{ |
| 1698 | ST_Count(rast, 2) |
| 1699 | }}} |
| 1700 | |
| 1701 | 3. ST_Count(rast raster, exclude_nodata_value boolean) -> bigint |
| 1702 | |
| 1703 | assumes nband = 1 |
| 1704 | |
| 1705 | {{{ |
| 1706 | ST_Count(rast, TRUE) |
| 1707 | }}} |
| 1708 | |
| 1709 | 4. ST_Count(rast raster) -> bigint |
| 1710 | |
| 1711 | assumes nband = 1 and exclude_nodata_value = TRUE |
| 1712 | |
| 1713 | {{{ |
| 1714 | ST_Count(rast) |
| 1715 | }}} |
| 1716 | |
| 1717 | The set of ST_ApproxCount functions are: |
| 1718 | |
| 1719 | 1. ST_ApproxCount(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> bigint |
| 1720 | |
| 1721 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
| 1722 | |
| 1723 | {{{ |
| 1724 | ST_ApproxCount(rast, 3, FALSE, 0.1) |
| 1725 | |
| 1726 | ST_ApproxCount(rast, 1, TRUE, 0.5) |
| 1727 | }}} |
| 1728 | |
| 1729 | 2. ST_ApproxCount(rast raster, nband int, sample_percent double precision) -> bigint |
| 1730 | |
| 1731 | assumes that nband = 1 |
| 1732 | |
| 1733 | {{{ |
| 1734 | ST_ApproxCount(rast, 2 0.01) |
| 1735 | |
| 1736 | ST_ApproxCount(rast, 4, 0.025) |
| 1737 | }}} |
| 1738 | |
| 1739 | 3. ST_ApproxCount(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> bigint |
| 1740 | |
| 1741 | assumes that nband = 1 |
| 1742 | |
| 1743 | {{{ |
| 1744 | ST_ApproxCount(rast, FALSE, 0.01) |
| 1745 | |
| 1746 | ST_ApproxCount(rast, TRUE, 0.025) |
| 1747 | }}} |
| 1748 | |
| 1749 | 4. ST_ApproxCount(rast raster, sample_percent double precision) -> bigint |
| 1750 | |
| 1751 | assumes that nband = 1 and exclude_nodata_value = TRUE |
| 1752 | |
| 1753 | {{{ |
| 1754 | ST_ApproxCount(rast, 0.25) |
| 1755 | }}} |
| 1756 | |
| 1757 | 5. ST_ApproxCount(rast raster) -> bigint |
| 1758 | |
| 1759 | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 1760 | |
| 1761 | {{{ |
| 1762 | ST_ApproxCount(rast) |
| 1763 | }}} |
| 1764 | |
| 1765 | The following functions are provided for coverage tables. |
| 1766 | |
| 1767 | 1. ST_Count(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> bigint |
| 1768 | |
| 1769 | rastertable: name of table with raster column |
| 1770 | |
| 1771 | rastercolumn: name of column of data type raster |
| 1772 | |
| 1773 | {{{ |
| 1774 | ST_Count('tmax_2010', 'rast', 1, FALSE) |
| 1775 | |
| 1776 | ST_Count('precip_2011', 'rast', 1, TRUE) |
| 1777 | }}} |
| 1778 | |
| 1779 | 2. ST_Count(rastertable text, rastercolumn text, nband int) -> bigint |
| 1780 | |
| 1781 | exclude_nodata_value = TRUE |
| 1782 | |
| 1783 | {{{ |
| 1784 | ST_Count('tmax_2010', 'rast', 1) |
| 1785 | }}} |
| 1786 | |
| 1787 | 3. ST_Count(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> bigint |
| 1788 | |
| 1789 | nband = 1 |
| 1790 | |
| 1791 | {{{ |
| 1792 | ST_Count('precip_2011', 'rast', TRUE) |
| 1793 | }}} |
| 1794 | |
| 1795 | 4. ST_Count(rastertable text, rastercolumn text) -> bigint |
| 1796 | |
| 1797 | nband = 1 and exclude_nodata_value = TRUE |
| 1798 | |
| 1799 | {{{ |
| 1800 | ST_Count('tmin_2009', 'rast') |
| 1801 | }}} |
| 1802 | |
| 1803 | Variations for ST_ApproxCount are: |
| 1804 | |
| 1805 | 1. ST_ApproxCount(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> bigint |
| 1806 | |
| 1807 | {{{ |
| 1808 | ST_ApproxCount('tmax_2010', 'rast', 1, FALSE, 0.5) |
| 1809 | |
| 1810 | ST_ApproxCount('precip_2011', 'rast', 1, TRUE, 0.2) |
| 1811 | }}} |
| 1812 | |
| 1813 | 2. ST_ApproxCount(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> bigint |
| 1814 | |
| 1815 | exclude_nodata_value = TRUE |
| 1816 | |
| 1817 | {{{ |
| 1818 | ST_ApproxCount('tmax_2010', 'rast', 1, 0.5) |
| 1819 | |
| 1820 | ST_ApproxCount('precip_2011', 'rast', 1, 0.2) |
| 1821 | }}} |
| 1822 | |
| 1823 | 3. ST_ApproxCount(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> bigint |
| 1824 | |
| 1825 | nband = 1 |
| 1826 | |
| 1827 | {{{ |
| 1828 | ST_ApproxCount('tmax_2010', 'rast', FALSE, 0.5) |
| 1829 | |
| 1830 | ST_ApproxCount('precip_2011', 'rast', TRUE, 0.2) |
| 1831 | }}} |
| 1832 | |
| 1833 | 4. ST_ApproxCount(rastertable text, rastercolumn text, sample_percent double precision) -> bigint |
| 1834 | |
| 1835 | nband = 1 and exclude_nodata_value = TRUE |
| 1836 | |
| 1837 | {{{ |
| 1838 | ST_ApproxCount('tmax_2010', 'rast', 0.5) |
| 1839 | |
| 1840 | ST_ApproxCount('precip_2011', 'rast', 0.2) |
| 1841 | }}} |
| 1842 | |
| 1843 | 5. ST_ApproxCount(rastertable text, rastercolumn text) -> bigint |
| 1844 | |
| 1845 | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 1846 | |
| 1847 | {{{ |
| 1848 | ST_ApproxCount('tmax_2010', 'rast') |
| 1849 | |
| 1850 | ST_ApproxCount('precip_2011', 'rast') |
| 1851 | }}} |
| 1852 | |
| 1853 | ---- |
| 1854 | |
| 1855 | '''ST_Sum(raster, nband) -> double precision'''[[BR]] |
| 1856 | |
| 1857 | This function calls ST_SummaryStats and only returns the sum from that function. |
| 1858 | |
| 1859 | 1. ST_Sum(rast raster, nband int, exclude_nodata_value boolean) -> double precision |
| 1860 | |
| 1861 | returns the sum as an integer |
| 1862 | |
| 1863 | nband: index of band |
| 1864 | |
| 1865 | exclude_nodata_value: if FALSE, nodata values in band are included in the stats. if TRUE, nodata values are not included |
| 1866 | |
| 1867 | {{{ |
| 1868 | ST_Sum(rast, 1, FALSE) |
| 1869 | }}} |
| 1870 | |
| 1871 | 2. ST_Sum(rast raster, nband int) -> double precision |
| 1872 | |
| 1873 | assumes exclude_nodata_value = TRUE |
| 1874 | |
| 1875 | {{{ |
| 1876 | ST_Sum(rast, 2) |
| 1877 | }}} |
| 1878 | |
| 1879 | 3. ST_Sum(rast raster, exclude_nodata_value boolean) -> double precision |
| 1880 | |
| 1881 | assumes nband = 1 |
| 1882 | |
| 1883 | {{{ |
| 1884 | ST_Sum(rast, TRUE) |
| 1885 | }}} |
| 1886 | |
| 1887 | 4. ST_Sum(rast raster) -> double precision |
| 1888 | |
| 1889 | assumes nband = 1 and exclude_nodata_value = TRUE |
| 1890 | |
| 1891 | {{{ |
| 1892 | ST_Sum(rast) |
| 1893 | }}} |
| 1894 | |
| 1895 | The set of ST_ApproxSum functions are: |
| 1896 | |
| 1897 | 1. ST_ApproxSum(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 1898 | |
| 1899 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
| 1900 | |
| 1901 | {{{ |
| 1902 | ST_ApproxSum(rast, 3, FALSE, 0.1) |
| 1903 | |
| 1904 | ST_ApproxSum(rast, 1, TRUE, 0.5) |
| 1905 | }}} |
| 1906 | |
| 1907 | 2. ST_ApproxSum(rast raster, nband int, sample_percent double precision) -> double precision |
| 1908 | |
| 1909 | assumes that nband = 1 |
| 1910 | |
| 1911 | {{{ |
| 1912 | ST_ApproxSum(rast, 2 0.01) |
| 1913 | |
| 1914 | ST_ApproxSum(rast, 4, 0.025) |
| 1915 | }}} |
| 1916 | |
| 1917 | 3. ST_ApproxSum(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 1918 | |
| 1919 | assumes that nband = 1 |
| 1920 | |
| 1921 | {{{ |
| 1922 | ST_ApproxSum(rast, FALSE, 0.01) |
| 1923 | |
| 1924 | ST_ApproxSum(rast, TRUE, 0.025) |
| 1925 | }}} |
| 1926 | |
| 1927 | 4. ST_ApproxSum(rast raster, sample_percent double precision) -> double precision |
| 1928 | |
| 1929 | assumes that nband = 1 and exclude_nodata_value = TRUE |
| 1930 | |
| 1931 | {{{ |
| 1932 | ST_ApproxSum(rast, 0.25) |
| 1933 | }}} |
| 1934 | |
| 1935 | 5. ST_ApproxSum(rast raster) -> double precision |
| 1936 | |
| 1937 | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 1938 | |
| 1939 | {{{ |
| 1940 | ST_ApproxSum(rast) |
| 1941 | }}} |
| 1942 | |
| 1943 | The following functions are provided for coverage tables. |
| 1944 | |
| 1945 | 1. ST_Sum(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> double precision |
| 1946 | |
| 1947 | rastertable: name of table with raster column |
| 1948 | |
| 1949 | rastercolumn: name of column of data type raster |
| 1950 | |
| 1951 | {{{ |
| 1952 | ST_Sum('tmax_2010', 'rast', 1, FALSE) |
| 1953 | |
| 1954 | ST_Sum('precip_2011', 'rast', 1, TRUE) |
| 1955 | }}} |
| 1956 | |
| 1957 | 2. ST_Sum(rastertable text, rastercolumn text, nband int) -> double precision |
| 1958 | |
| 1959 | exclude_nodata_value = TRUE |
| 1960 | |
| 1961 | {{{ |
| 1962 | ST_Sum('tmax_2010', 'rast', 1) |
| 1963 | }}} |
| 1964 | |
| 1965 | 3. ST_Sum(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> double precision |
| 1966 | |
| 1967 | nband = 1 |
| 1968 | |
| 1969 | {{{ |
| 1970 | ST_Sum('precip_2011', 'rast', TRUE) |
| 1971 | }}} |
| 1972 | |
| 1973 | 4. ST_Sum(rastertable text, rastercolumn text) -> double precision |
| 1974 | |
| 1975 | nband = 1 and exclude_nodata_value = TRUE |
| 1976 | |
| 1977 | {{{ |
| 1978 | ST_Sum('tmin_2009', 'rast') |
| 1979 | }}} |
| 1980 | |
| 1981 | Variations for ST_ApproxSum are: |
| 1982 | |
| 1983 | 1. ST_ApproxSum(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 1984 | |
| 1985 | {{{ |
| 1986 | ST_ApproxSum('tmax_2010', 'rast', 1, FALSE, 0.5) |
| 1987 | |
| 1988 | ST_ApproxSum('precip_2011', 'rast', 1, TRUE, 0.2) |
| 1989 | }}} |
| 1990 | |
| 1991 | 2. ST_ApproxSum(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> double precision |
| 1992 | |
| 1993 | exclude_nodata_value = TRUE |
| 1994 | |
| 1995 | {{{ |
| 1996 | ST_ApproxSum('tmax_2010', 'rast', 1, 0.5) |
| 1997 | |
| 1998 | ST_ApproxSum('precip_2011', 'rast', 1, 0.2) |
| 1999 | }}} |
| 2000 | |
| 2001 | 3. ST_ApproxSum(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 2002 | |
| 2003 | nband = 1 |
| 2004 | |
| 2005 | {{{ |
| 2006 | ST_ApproxSum('tmax_2010', 'rast', FALSE, 0.5) |
| 2007 | |
| 2008 | ST_ApproxSum('precip_2011', 'rast', TRUE, 0.2) |
| 2009 | }}} |
| 2010 | |
| 2011 | 4. ST_ApproxSum(rastertable text, rastercolumn text, sample_percent double precision) -> double precision |
| 2012 | |
| 2013 | nband = 1 and exclude_nodata_value = TRUE |
| 2014 | |
| 2015 | {{{ |
| 2016 | ST_ApproxSum('tmax_2010', 'rast', 0.5) |
| 2017 | |
| 2018 | ST_ApproxSum('precip_2011', 'rast', 0.2) |
| 2019 | }}} |
| 2020 | |
| 2021 | 5. ST_ApproxSum(rastertable text, rastercolumn text) -> double precision |
| 2022 | |
| 2023 | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 2024 | |
| 2025 | {{{ |
| 2026 | ST_ApproxSum('tmax_2010', 'rast') |
| 2027 | |
| 2028 | ST_ApproxSum('precip_2011', 'rast') |
| 2029 | }}} |
| 2030 | |
| 2031 | ---- |
| 2032 | |
| 2033 | '''ST_Mean(raster, nband) -> double precision'''[[BR]] |
| 2034 | This function calls ST_SummaryStats and only returns the mean from that function. |
| 2035 | |
| 2036 | 1. ST_Mean(rast raster, nband int, exclude_nodata_value boolean) -> double precision |
| 2037 | |
| 2038 | returns the mean as a double precision |
| 2039 | |
| 2040 | nband: index of band |
| 2041 | |
| 2042 | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
| 2043 | |
| 2044 | {{{ |
| 2045 | ST_Mean(rast, 1, FALSE) |
| 2046 | }}} |
| 2047 | |
| 2048 | 2. ST_Mean(rast raster, nband int) -> double precision |
| 2049 | |
| 2050 | assumes exclude_nodata_value = TRUE |
| 2051 | |
| 2052 | {{{ |
| 2053 | ST_Mean(rast, 2) |
| 2054 | }}} |
| 2055 | |
| 2056 | 3. ST_Mean(rast raster, exclude_nodata_value boolean) -> double precision |
| 2057 | |
| 2058 | assumes nband = 1 |
| 2059 | |
| 2060 | {{{ |
| 2061 | ST_Mean(rast, TRUE) |
| 2062 | }}} |
| 2063 | |
| 2064 | 4. ST_Mean(rast raster) -> double precision |
| 2065 | |
| 2066 | assumes nband = 1 and exclude_nodata_value = TRUE |
| 2067 | |
| 2068 | {{{ |
| 2069 | ST_Mean(rast) |
| 2070 | }}} |
| 2071 | |
| 2072 | The set of ST_ApproxMean functions are: |
| 2073 | |
| 2074 | 1. ST_ApproxMean(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 2075 | |
| 2076 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
| 2077 | |
| 2078 | {{{ |
| 2079 | ST_ApproxMean(rast, 3, FALSE, 0.1) |
| 2080 | |
| 2081 | ST_ApproxMean(rast, 1, TRUE, 0.5) |
| 2082 | }}} |
| 2083 | |
| 2084 | 2. ST_ApproxMean(rast raster, nband int, sample_percent double precision) -> double precision |
| 2085 | |
| 2086 | assumes that nband = 1 |
| 2087 | |
| 2088 | {{{ |
| 2089 | ST_ApproxMean(rast, 2 0.01) |
| 2090 | |
| 2091 | ST_ApproxMean(rast, 4, 0.025) |
| 2092 | }}} |
| 2093 | |
| 2094 | 3. ST_ApproxMean(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 2095 | |
| 2096 | assumes that nband = 1 |
| 2097 | |
| 2098 | {{{ |
| 2099 | ST_ApproxMean(rast, FALSE, 0.01) |
| 2100 | |
| 2101 | ST_ApproxMean(rast, TRUE, 0.025) |
| 2102 | }}} |
| 2103 | |
| 2104 | 4. ST_ApproxMean(rast raster, sample_percent double precision) -> double precision |
| 2105 | |
| 2106 | assumes that nband = 1 and exclude_nodata_value = TRUE |
| 2107 | |
| 2108 | {{{ |
| 2109 | ST_ApproxMean(rast, 0.25) |
| 2110 | }}} |
| 2111 | |
| 2112 | 5. ST_ApproxMean(rast raster) -> double precision |
| 2113 | |
| 2114 | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 2115 | |
| 2116 | {{{ |
| 2117 | ST_ApproxMean(rast) |
| 2118 | }}} |
| 2119 | |
| 2120 | The following functions are provided for coverage tables. |
| 2121 | |
| 2122 | 1. ST_Mean(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> double precision |
| 2123 | |
| 2124 | rastertable: name of table with raster column |
| 2125 | |
| 2126 | rastercolumn: name of column of data type raster |
| 2127 | |
| 2128 | {{{ |
| 2129 | ST_Mean('tmax_2010', 'rast', 1, FALSE) |
| 2130 | |
| 2131 | ST_Mean('precip_2011', 'rast', 1, TRUE) |
| 2132 | }}} |
| 2133 | |
| 2134 | 2. ST_Mean(rastertable text, rastercolumn text, nband int) -> double precision |
| 2135 | |
| 2136 | exclude_nodata_value = TRUE |
| 2137 | |
| 2138 | {{{ |
| 2139 | ST_Mean('tmax_2010', 'rast', 1) |
| 2140 | }}} |
| 2141 | |
| 2142 | 3. ST_Mean(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> double precision |
| 2143 | |
| 2144 | nband = 1 |
| 2145 | |
| 2146 | {{{ |
| 2147 | ST_Mean('precip_2011', 'rast', TRUE) |
| 2148 | }}} |
| 2149 | |
| 2150 | 4. ST_Mean(rastertable text, rastercolumn text) -> double precision |
| 2151 | |
| 2152 | nband = 1 and exclude_nodata_value = TRUE |
| 2153 | |
| 2154 | {{{ |
| 2155 | ST_Mean('tmin_2009', 'rast') |
| 2156 | }}} |
| 2157 | |
| 2158 | Variations for ST_ApproxMean are: |
| 2159 | |
| 2160 | 1. ST_ApproxMean(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 2161 | |
| 2162 | {{{ |
| 2163 | ST_ApproxMean('tmax_2010', 'rast', 1, FALSE, 0.5) |
| 2164 | |
| 2165 | ST_ApproxMean('precip_2011', 'rast', 1, TRUE, 0.2) |
| 2166 | }}} |
| 2167 | |
| 2168 | 2. ST_ApproxMean(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> double precision |
| 2169 | |
| 2170 | exclude_nodata_value = TRUE |
| 2171 | |
| 2172 | {{{ |
| 2173 | ST_ApproxMean('tmax_2010', 'rast', 1, 0.5) |
| 2174 | |
| 2175 | ST_ApproxMean('precip_2011', 'rast', 1, 0.2) |
| 2176 | }}} |
| 2177 | |
| 2178 | 3. ST_ApproxMean(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 2179 | |
| 2180 | nband = 1 |
| 2181 | |
| 2182 | {{{ |
| 2183 | ST_ApproxMean('tmax_2010', 'rast', FALSE, 0.5) |
| 2184 | |
| 2185 | ST_ApproxMean('precip_2011', 'rast', TRUE, 0.2) |
| 2186 | }}} |
| 2187 | |
| 2188 | 4. ST_ApproxMean(rastertable text, rastercolumn text, sample_percent double precision) -> double precision |
| 2189 | |
| 2190 | nband = 1 and exclude_nodata_value = TRUE |
| 2191 | |
| 2192 | {{{ |
| 2193 | ST_ApproxMean('tmax_2010', 'rast', 0.5) |
| 2194 | |
| 2195 | ST_ApproxMean('precip_2011', 'rast', 0.2) |
| 2196 | }}} |
| 2197 | |
| 2198 | 5. ST_ApproxMean(rastertable text, rastercolumn text) -> double precision |
| 2199 | |
| 2200 | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 2201 | |
| 2202 | {{{ |
| 2203 | ST_ApproxMean('tmax_2010', 'rast') |
| 2204 | |
| 2205 | ST_ApproxMean('precip_2011', 'rast') |
| 2206 | }}} |
| 2207 | |
| 2208 | The mean returned in the coverage functions (has rastertable and rastercolumn arguments) is the true mean of the raster tiles. |
| 2209 | |
| 2210 | ---- |
| 2211 | |
| 2212 | '''ST_StdDev(raster, nband) -> double precision'''[[BR]] |
| 2213 | This function calls ST_SummaryStats and only returns the standard deviation from that function. |
| 2214 | |
| 2215 | 1. ST_StdDev(rast raster, nband int, exclude_nodata_value boolean) -> double precision |
| 2216 | |
| 2217 | returns the standard deviation as a double precision |
| 2218 | |
| 2219 | nband: index of band |
| 2220 | |
| 2221 | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
| 2222 | |
| 2223 | {{{ |
| 2224 | ST_StdDev(rast, 1, FALSE) |
| 2225 | }}} |
| 2226 | |
| 2227 | 2. ST_StdDev(rast raster, nband int) -> double precision |
| 2228 | |
| 2229 | assumes exclude_nodata_value = TRUE |
| 2230 | |
| 2231 | {{{ |
| 2232 | ST_StdDev(rast, 2) |
| 2233 | }}} |
| 2234 | |
| 2235 | 3. ST_StdDev(rast raster, exclude_nodata_value boolean) -> double precision |
| 2236 | |
| 2237 | assumes nband = 1 |
| 2238 | |
| 2239 | {{{ |
| 2240 | ST_StdDev(rast, TRUE) |
| 2241 | }}} |
| 2242 | |
| 2243 | 4. ST_StdDev(rast raster) -> double precision |
| 2244 | |
| 2245 | assumes nband = 1 and exclude_nodata_value = TRUE |
| 2246 | |
| 2247 | {{{ |
| 2248 | ST_StdDev(rast) |
| 2249 | }}} |
| 2250 | |
| 2251 | The set of ST_ApproxStdDev functions are: |
| 2252 | |
| 2253 | 1. ST_ApproxStdDev(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 2254 | |
| 2255 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
| 2256 | |
| 2257 | {{{ |
| 2258 | ST_ApproxStdDev(rast, 3, FALSE, 0.1) |
| 2259 | |
| 2260 | ST_ApproxStdDev(rast, 1, TRUE, 0.5) |
| 2261 | }}} |
| 2262 | |
| 2263 | 2. ST_ApproxStdDev(rast raster, nband int, sample_percent double precision) -> double precision |
| 2264 | |
| 2265 | assumes that nband = 1 |
| 2266 | |
| 2267 | {{{ |
| 2268 | ST_ApproxStdDev(rast, 2 0.01) |
| 2269 | |
| 2270 | ST_ApproxStdDev(rast, 4, 0.025) |
| 2271 | }}} |
| 2272 | |
| 2273 | 3. ST_ApproxStdDev(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 2274 | |
| 2275 | assumes that nband = 1 |
| 2276 | |
| 2277 | {{{ |
| 2278 | ST_ApproxStdDev(rast, FALSE, 0.01) |
| 2279 | |
| 2280 | ST_ApproxStdDev(rast, TRUE, 0.025) |
| 2281 | }}} |
| 2282 | |
| 2283 | 4. ST_ApproxStdDev(rast raster, sample_percent double precision) -> double precision |
| 2284 | |
| 2285 | assumes that nband = 1 and exclude_nodata_value = TRUE |
| 2286 | |
| 2287 | {{{ |
| 2288 | ST_ApproxStdDev(rast, 0.25) |
| 2289 | }}} |
| 2290 | |
| 2291 | 5. ST_ApproxStdDev(rast raster) -> double precision |
| 2292 | |
| 2293 | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 2294 | |
| 2295 | {{{ |
| 2296 | ST_ApproxStdDev(rast) |
| 2297 | }}} |
| 2298 | |
| 2299 | The following functions are provided for coverage tables. |
| 2300 | |
| 2301 | 1. ST_StdDev(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> double precision |
| 2302 | |
| 2303 | rastertable: name of table with raster column |
| 2304 | |
| 2305 | rastercolumn: name of column of data type raster |
| 2306 | |
| 2307 | {{{ |
| 2308 | ST_StdDev('tmax_2010', 'rast', 1, FALSE) |
| 2309 | |
| 2310 | ST_StdDev('precip_2011', 'rast', 1, TRUE) |
| 2311 | }}} |
| 2312 | |
| 2313 | 2. ST_StdDev(rastertable text, rastercolumn text, nband int) -> double precision |
| 2314 | |
| 2315 | exclude_nodata_value = TRUE |
| 2316 | |
| 2317 | {{{ |
| 2318 | ST_StdDev('tmax_2010', 'rast', 1) |
| 2319 | }}} |
| 2320 | |
| 2321 | 3. ST_StdDev(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> double precision |
| 2322 | |
| 2323 | nband = 1 |
| 2324 | |
| 2325 | {{{ |
| 2326 | ST_StdDev('precip_2011', 'rast', TRUE) |
| 2327 | }}} |
| 2328 | |
| 2329 | 4. ST_StdDev(rastertable text, rastercolumn text) -> double precision |
| 2330 | |
| 2331 | nband = 1 and exclude_nodata_value = TRUE |
| 2332 | |
| 2333 | {{{ |
| 2334 | ST_StdDev('tmin_2009', 'rast') |
| 2335 | }}} |
| 2336 | |
| 2337 | Variations for ST_ApproxStdDev are: |
| 2338 | |
| 2339 | 1. ST_ApproxStdDev(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 2340 | |
| 2341 | {{{ |
| 2342 | ST_ApproxStdDev('tmax_2010', 'rast', 1, FALSE, 0.5) |
| 2343 | |
| 2344 | ST_ApproxStdDev('precip_2011', 'rast', 1, TRUE, 0.2) |
| 2345 | }}} |
| 2346 | |
| 2347 | 2. ST_ApproxStdDev(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> double precision |
| 2348 | |
| 2349 | exclude_nodata_value = TRUE |
| 2350 | |
| 2351 | {{{ |
| 2352 | ST_ApproxStdDev('tmax_2010', 'rast', 1, 0.5) |
| 2353 | |
| 2354 | ST_ApproxStdDev('precip_2011', 'rast', 1, 0.2) |
| 2355 | }}} |
| 2356 | |
| 2357 | 3. ST_ApproxStdDev(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> double precision |
| 2358 | |
| 2359 | nband = 1 |
| 2360 | |
| 2361 | {{{ |
| 2362 | ST_ApproxStdDev('tmax_2010', 'rast', FALSE, 0.5) |
| 2363 | |
| 2364 | ST_ApproxStdDev('precip_2011', 'rast', TRUE, 0.2) |
| 2365 | }}} |
| 2366 | |
| 2367 | 4. ST_ApproxStdDev(rastertable text, rastercolumn text, sample_percent double precision) -> double precision |
| 2368 | |
| 2369 | nband = 1 and exclude_nodata_value = TRUE |
| 2370 | |
| 2371 | {{{ |
| 2372 | ST_ApproxStdDev('tmax_2010', 'rast', 0.5) |
| 2373 | |
| 2374 | ST_ApproxStdDev('precip_2011', 'rast', 0.2) |
| 2375 | }}} |
| 2376 | |
| 2377 | 5. ST_ApproxStdDev(rastertable text, rastercolumn text) -> double precision |
| 2378 | |
| 2379 | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 2380 | |
| 2381 | {{{ |
| 2382 | ST_ApproxStdDev('tmax_2010', 'rast') |
| 2383 | |
| 2384 | ST_ApproxStdDev('precip_2011', 'rast') |
| 2385 | }}} |
| 2386 | |
| 2387 | The standard deviation returned in the coverage functions (has rastertable and rastercolumn arguments) is the standard deviation of all raster tiles. |
| 2388 | |
| 2389 | ---- |
| 2390 | |
| 2391 | '''ST_MinMax(raster, nband) -> record'''[[BR]] |
| 2392 | This function calls ST_SummaryStats and only returns the min and max values from that function. |
| 2393 | |
| 2394 | 1. ST_MinMax(rast raster, nband int, exclude_nodata_value boolean) -> record |
| 2395 | |
| 2396 | returns the record (min double precision, max double precision) |
| 2397 | |
| 2398 | nband: index of band |
| 2399 | |
| 2400 | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
| 2401 | |
| 2402 | {{{ |
| 2403 | ST_MinMax(rast, 1, FALSE) |
| 2404 | }}} |
| 2405 | |
| 2406 | 2. ST_MinMax(rast raster, nband int) -> record |
| 2407 | |
| 2408 | assumes exclude_nodata_value = TRUE |
| 2409 | |
| 2410 | {{{ |
| 2411 | ST_MinMax(rast, 2) |
| 2412 | }}} |
| 2413 | |
| 2414 | 3. ST_MinMax(rast raster, exclude_nodata_value boolean) -> record |
| 2415 | |
| 2416 | assumes nband = 1 |
| 2417 | |
| 2418 | {{{ |
| 2419 | ST_MinMax(rast, TRUE) |
| 2420 | }}} |
| 2421 | |
| 2422 | 4. ST_MinMax(rast raster) -> record |
| 2423 | |
| 2424 | assumes nband = 1 and exclude_nodata_value = TRUE |
| 2425 | |
| 2426 | {{{ |
| 2427 | ST_MinMax(rast) |
| 2428 | }}} |
| 2429 | |
| 2430 | The set of ST_ApproxMinMax functions are: |
| 2431 | |
| 2432 | 1. ST_ApproxMinMax(rast raster, nband int, exclude_nodata_value boolean, sample_percent record) -> record |
| 2433 | |
| 2434 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
| 2435 | |
| 2436 | {{{ |
| 2437 | ST_ApproxMinMax(rast, 3, FALSE, 0.1) |
| 2438 | |
| 2439 | ST_ApproxMinMax(rast, 1, TRUE, 0.5) |
| 2440 | }}} |
| 2441 | |
| 2442 | 2. ST_ApproxMinMax(rast raster, nband int, sample_percent double precision) -> record |
| 2443 | |
| 2444 | assumes that nband = 1 |
| 2445 | |
| 2446 | {{{ |
| 2447 | ST_ApproxMinMax(rast, 2 0.01) |
| 2448 | |
| 2449 | ST_ApproxMinMax(rast, 4, 0.025) |
| 2450 | }}} |
| 2451 | |
| 2452 | 3. ST_ApproxMinMax(rast raster, exclude_nodata_value boolean, sample_percent double precision) -> record |
| 2453 | |
| 2454 | assumes that nband = 1 |
| 2455 | |
| 2456 | {{{ |
| 2457 | ST_ApproxMinMax(rast, FALSE, 0.01) |
| 2458 | |
| 2459 | ST_ApproxMinMax(rast, TRUE, 0.025) |
| 2460 | }}} |
| 2461 | |
| 2462 | 4. ST_ApproxMinMax(rast raster, sample_percent double precision) -> record |
| 2463 | |
| 2464 | assumes that nband = 1 and exclude_nodata_value = TRUE |
| 2465 | |
| 2466 | {{{ |
| 2467 | ST_ApproxMinMax(rast, 0.25) |
| 2468 | }}} |
| 2469 | |
| 2470 | 5. ST_ApproxMinMax(rast raster) -> record |
| 2471 | |
| 2472 | assumes that nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 2473 | |
| 2474 | {{{ |
| 2475 | ST_ApproxMinMax(rast) |
| 2476 | }}} |
| 2477 | |
| 2478 | The following functions are provided for coverage tables. |
| 2479 | |
| 2480 | 1. ST_MinMax(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean) -> record |
| 2481 | |
| 2482 | rastertable: name of table with raster column |
| 2483 | |
| 2484 | rastercolumn: name of column of data type raster |
| 2485 | |
| 2486 | {{{ |
| 2487 | ST_MinMax('tmax_2010', 'rast', 1, FALSE) |
| 2488 | |
| 2489 | ST_MinMax('precip_2011', 'rast', 1, TRUE) |
| 2490 | }}} |
| 2491 | |
| 2492 | 2. ST_MinMax(rastertable text, rastercolumn text, nband int) -> record |
| 2493 | |
| 2494 | exclude_nodata_value = TRUE |
| 2495 | |
| 2496 | {{{ |
| 2497 | ST_MinMax('tmax_2010', 'rast', 1) |
| 2498 | }}} |
| 2499 | |
| 2500 | 3. ST_MinMax(rastertable text, rastercolumn text, exclude_nodata_value boolean) -> record |
| 2501 | |
| 2502 | nband = 1 |
| 2503 | |
| 2504 | {{{ |
| 2505 | ST_MinMax('precip_2011', 'rast', TRUE) |
| 2506 | }}} |
| 2507 | |
| 2508 | 4. ST_MinMax(rastertable text, rastercolumn text) -> record |
| 2509 | |
| 2510 | nband = 1 and exclude_nodata_value = TRUE |
| 2511 | |
| 2512 | {{{ |
| 2513 | ST_MinMax('tmin_2009', 'rast') |
| 2514 | }}} |
| 2515 | |
| 2516 | Variations for ST_ApproxMinMax are: |
| 2517 | |
| 2518 | 1. ST_ApproxMinMax(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision) -> record |
| 2519 | |
| 2520 | {{{ |
| 2521 | ST_ApproxMinMax('tmax_2010', 'rast', 1, FALSE, 0.5) |
| 2522 | |
| 2523 | ST_ApproxMinMax('precip_2011', 'rast', 1, TRUE, 0.2) |
| 2524 | }}} |
| 2525 | |
| 2526 | 2. ST_ApproxMinMax(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> record |
| 2527 | |
| 2528 | exclude_nodata_value = TRUE |
| 2529 | |
| 2530 | {{{ |
| 2531 | ST_ApproxMinMax('tmax_2010', 'rast', 1, 0.5) |
| 2532 | |
| 2533 | ST_ApproxMinMax('precip_2011', 'rast', 1, 0.2) |
| 2534 | }}} |
| 2535 | |
| 2536 | 3. ST_ApproxMinMax(rastertable text, rastercolumn text, exclude_nodata_value boolean, sample_percent double precision) -> record |
| 2537 | |
| 2538 | nband = 1 |
| 2539 | |
| 2540 | {{{ |
| 2541 | ST_ApproxMinMax('tmax_2010', 'rast', FALSE, 0.5) |
| 2542 | |
| 2543 | ST_ApproxMinMax('precip_2011', 'rast', TRUE, 0.2) |
| 2544 | }}} |
| 2545 | |
| 2546 | 4. ST_ApproxMinMax(rastertable text, rastercolumn text, sample_percent double precision) -> record |
| 2547 | |
| 2548 | nband = 1 and exclude_nodata_value = TRUE |
| 2549 | |
| 2550 | {{{ |
| 2551 | ST_ApproxMinMax('tmax_2010', 'rast', 0.5) |
| 2552 | |
| 2553 | ST_ApproxMinMax('precip_2011', 'rast', 0.2) |
| 2554 | }}} |
| 2555 | |
| 2556 | 5. ST_ApproxMinMax(rastertable text, rastercolumn text) -> record |
| 2557 | |
| 2558 | nband = 1, exclude_nodata_value = TRUE and sample_percent = 0.1 |
| 2559 | |
| 2560 | {{{ |
| 2561 | ST_ApproxMinMax('tmax_2010', 'rast') |
| 2562 | |
| 2563 | ST_ApproxMinMax('precip_2011', 'rast') |
| 2564 | }}} |
| 2565 | |
| 2566 | ---- |
| 2567 | |
| 2568 | '''ST_Histogram(raster, nband) -> set of records'''[[BR]] |
| 2569 | ST_Histogram and ST_ApproxHistogram provide methods to determine a raster's data distribution. |
| 2570 | |
| 2571 | The return of ST_Histogram and ST_ApproxHistogram is a set of records where each record is (min, max, count, percent). |
| 2572 | |
| 2573 | ST_Histogram has the following variations. |
| 2574 | |
| 2575 | 1. ST_Histogram(rast raster, nband int, exclude_nodata_value boolean, bins int, width double precision[], right boolean) -> set of records |
| 2576 | |
| 2577 | returns set of records of four columns (min, max, count, percent) |
| 2578 | |
| 2579 | nband: index of band to process on |
| 2580 | |
| 2581 | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
| 2582 | |
| 2583 | bins: the number of categories/bins to have in the histogram. If NULL or value less than one, the number of categories will be auto-computed using Sturges' formula if the number of values >= 30 or Square-root choice if number of values < 30. |
| 2584 | |
| 2585 | http://en.wikipedia.org/wiki/Histogram#Mathematical_definition |
| 2586 | |
| 2587 | width: an array indicating the width of each category/bin. If the number of bins is greater than the number of widths, the widths are repeated. Example: 9 bins, widths are [a, b, c] will have the output be [a, b, c, a, b, c, a, b, c]. |
| 2588 | |
| 2589 | right: compute the histogram from the right rather than from the left (default). This changes the criteria for evaluating a value x from [a, b) to (a, b]. |
| 2590 | |
| 2591 | {{{ |
| 2592 | ST_Histogram(rast, 2, FALSE, NULL, NULL, FALSE) |
| 2593 | |
| 2594 | ST_Histogram(rast, 1, TRUE, 100, NULL, FALSE) |
| 2595 | |
| 2596 | ST_Histogram(rast, 2, FALSE, NULL, ARRAY[100, 50], FALSE) |
| 2597 | |
| 2598 | ST_Histogram(rast, 2, FALSE, 9, ARRAY[1000], TRUE) |
| 2599 | |
| 2600 | ST_Histogram(rast, 2, FALSE, 20, ARRAY[100, 200, 300], TRUE) |
| 2601 | }}} |
| 2602 | |
| 2603 | 2. ST_Histogram(rast raster, nband int, exclude_nodata_value boolean, bins int, right boolean) -> set of records |
| 2604 | |
| 2605 | parameter "width" is not specified thus resulting in all bins having the same widths |
| 2606 | |
| 2607 | {{{ |
| 2608 | ST_Histogram(rast, 2, FALSE, 5, FALSE) |
| 2609 | }}} |
| 2610 | |
| 2611 | 3. ST_Histogram(rast raster, nband int, exclude_nodata_value boolean, bins int) -> set of records |
| 2612 | |
| 2613 | the parameter "right" is removed and assumed to be FALSE |
| 2614 | |
| 2615 | {{{ |
| 2616 | ST_Histogram(rast, 2, FALSE, 5) |
| 2617 | }}} |
| 2618 | |
| 2619 | 4. ST_Histogram(rast raster, nband int, exclude_nodata_value boolean) -> set of records |
| 2620 | |
| 2621 | the parameter "bins" is removed and set to NULL. The function will compute the number of bins to use |
| 2622 | |
| 2623 | 5. ST_Histogram(rast raster, nband int) -> set of records |
| 2624 | |
| 2625 | exclude_nodata_value is assumed to be TRUE |
| 2626 | |
| 2627 | 6. ST_Histogram(rast raster) -> set of records |
| 2628 | |
| 2629 | assumes that nband is 1. |
| 2630 | |
| 2631 | 7. ST_Histogram(rast raster, nband int, bins int, width double precision[], right boolean) -> set of records |
| 2632 | |
| 2633 | exclude_nodata_value is assumed to be TRUE |
| 2634 | |
| 2635 | 8. ST_Histogram(rast raster, nband int, bins int, right boolean) -> set of records |
| 2636 | |
| 2637 | all bins will have equal widths |
| 2638 | |
| 2639 | 9. ST_Histogram(rast raster, nband int, bins int) -> set of records |
| 2640 | |
| 2641 | right is assumed to be FALSE |
| 2642 | |
| 2643 | ST_ApproxHistogram should have the following variations. |
| 2644 | |
| 2645 | 1. ST_ApproxHistogram(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision, bins int, width double precision[], right boolean) -> set of record |
| 2646 | |
| 2647 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider when generating the histogram. |
| 2648 | |
| 2649 | {{{ |
| 2650 | ST_Histogram(rast, 2, FALSE, 0.1, NULL, NULL, FALSE) |
| 2651 | |
| 2652 | ST_Histogram(rast, 1, TRUE, 1, 100, NULL, FALSE) |
| 2653 | |
| 2654 | ST_Histogram(rast, 2, FALSE, 0.2, NULL, ARRAY[100, 50], FALSE) |
| 2655 | |
| 2656 | ST_Histogram(rast, 2, FALSE, 0.25, 9, ARRAY[1000], TRUE) |
| 2657 | |
| 2658 | ST_Histogram(rast, 2, FALSE, 0.05, 20, ARRAY[100, 200, 300], TRUE) |
| 2659 | }}} |
| 2660 | |
| 2661 | 2. ST_ApproxHistogram(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision, bins int, right boolean) -> set of records |
| 2662 | |
| 2663 | parameter "width" is not specified thus resulting in all bins having the same widths |
| 2664 | |
| 2665 | 3. ST_ApproxHistogram(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision, bins int) -> set of records |
| 2666 | |
| 2667 | the parameter "right" is removed and assumed to be FALSE |
| 2668 | |
| 2669 | {{{ |
| 2670 | ST_ApproxHistogram(rast, 2, FALSE, 5) |
| 2671 | }}} |
| 2672 | |
| 2673 | 4. ST_ApproxHistogram(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision) -> set of records |
| 2674 | |
| 2675 | the parameter "bins" is removed and set to NULL so that function can compute the number of bins to use |
| 2676 | |
| 2677 | 5. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision) -> set of records |
| 2678 | |
| 2679 | exclude_nodata_value is assumed to be TRUE |
| 2680 | |
| 2681 | 6. ST_ApproxHistogram(rast raster, nband int) -> set of records |
| 2682 | |
| 2683 | assumes that sample_percent is 0.1 |
| 2684 | |
| 2685 | 7. ST_ApproxHistogram(rast raster, sample_percent double_precision) -> set of records |
| 2686 | |
| 2687 | assumes that nband is 1 |
| 2688 | |
| 2689 | 8. ST_ApproxHistogram(rast raster) -> set of records |
| 2690 | |
| 2691 | assumes that nband is 1 and sample_percent is 0.1 |
| 2692 | |
| 2693 | 9. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int, width double precision[], right boolean) -> set of records |
| 2694 | |
| 2695 | exclude_nodata_value is assumed to be TRUE |
| 2696 | |
| 2697 | 10. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int, right boolean) -> set of records |
| 2698 | |
| 2699 | all bins will have equal widths |
| 2700 | |
| 2701 | 11. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int) -> set of records |
| 2702 | |
| 2703 | right is assumed to be FALSE |
| 2704 | |
| 2705 | The following set of function are for coverages. |
| 2706 | |
| 2707 | 1. ST_Histogram(rastertable text, rastercolumn text, nband int DEFAULT 1, exclude_nodata_value boolean DEFAULT TRUE, bins int default 0, width double precision[] DEFAULT NULL, right boolean DEFAULT FALSE) -> set of records |
| 2708 | |
| 2709 | rastertable: name of table with raster column |
| 2710 | |
| 2711 | rastercolumn: name of column of data type raster |
| 2712 | |
| 2713 | {{{ |
| 2714 | ST_Histogram('tmax_2010', 'rast') |
| 2715 | |
| 2716 | ST_Histogram('precip_2011', 'rast', 1) |
| 2717 | |
| 2718 | ST_Histogram('precip_2011', 'rast', 1, FALSE) |
| 2719 | |
| 2720 | ST_Histogram('precip_2011', 'rast', 1, FALSE, 5) |
| 2721 | |
| 2722 | ST_Histogram('precip_2011', 'rast', 1, FALSE, 10, NULL) |
| 2723 | |
| 2724 | ST_Histogram('precip_2011', 'rast', 1, FALSE, 10, NULL, TRUE) |
| 2725 | }}} |
| 2726 | |
| 2727 | 2. ST_Histogram(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, bins int, right boolean) -> set of records |
| 2728 | |
| 2729 | {{{ |
| 2730 | ST_Histogram('tmin_2010', 'rast', 2, FALSE, 5, FALSE) |
| 2731 | }}} |
| 2732 | |
| 2733 | 3. ST_Histogram(rastertable text, rastercolumn text, nband int, bins int, width double precision[] DEFAULT NULL, right boolean DEFAULT FALSE) -> set of records |
| 2734 | |
| 2735 | {{{ |
| 2736 | ST_Histogram('ndvi_2010', 'rast', 1, 5) |
| 2737 | |
| 2738 | ST_Histogram('ndvi_2010', 'rast', 1, 0, ARRAY[0.5]::double precision[]) |
| 2739 | |
| 2740 | ST_Histogram('ndvi_2010', 'rast', 1, 5, NULL, TRUE) |
| 2741 | }}} |
| 2742 | |
| 2743 | 4. ST_Histogram(rastertable text, rastercolumn text, nband int, bins int, right boolean) -> set of records |
| 2744 | |
| 2745 | {{{ |
| 2746 | ST_Histogram('veg_2009', 'rast', 2, 3, FALSE) |
| 2747 | |
| 2748 | ST_Histogram('veg_2009', 'rast', 2, 3, TRUE) |
| 2749 | }}} |
| 2750 | |
| 2751 | A set of functions of ST_ApproxHistogram for coverage tables: |
| 2752 | |
| 2753 | 1. ST_ApproxHistogram(rastertable text, rastercolumn text, nband int DEFAULT 1, exclude_nodata_value boolean DEFAULT TRUE, sample_percent double precision DEFAULT 0.1, bins int DEFAULT 0, width double precision[] DEFAULT NULL, right boolean DEFAULT FALSE) -> set of records |
| 2754 | |
| 2755 | {{{ |
| 2756 | ST_ApproxHistogram('precip_2010', 'rast') |
| 2757 | |
| 2758 | ST_ApproxHistogram('precip_2010', 'rast', 1) |
| 2759 | |
| 2760 | ST_ApproxHistogram('precip_2010', 'rast', 2, FALSE) |
| 2761 | |
| 2762 | ST_ApproxHistogram('precip_2010', 'rast', 1, TRUE, 0.25) |
| 2763 | |
| 2764 | ST_ApproxHistogram('precip_2010', 'rast', 3, FALSE, 0.2, 10) |
| 2765 | |
| 2766 | ST_ApproxHistogram('precip_2010', 'rast', 1, TRUE, 0.1, 0, ARRAY[1]::double precision[]) |
| 2767 | |
| 2768 | ST_ApproxHistogram('precip_2010', 'rast', 1, TRUE, 0.1, 0, ARRAY[1]::double precision[], FALSE) |
| 2769 | }}} |
| 2770 | |
| 2771 | 2. ST_ApproxHistogram(rastertable text, rastercolumn text, nband int, exclude_nodata_value boolean, sample_percent double precision, bins int, right boolean) |
| 2772 | |
| 2773 | 3. ST_ApproxHistogram(rastertable text, rastercolumn text, nband int, sample_percent double precision) |
| 2774 | |
| 2775 | 4. ST_ApproxHistogram(rastertable text, rastercolumn text, sample_percent double precision) |
| 2776 | |
| 2777 | 5. ST_ApproxHistogram(rastertable text, rastercolumn text, nband int, sample_percent double precision, bins int, width double precision[] DEFAULT NULL, right boolean DEFAULT FALSE) |
| 2778 | |
| 2779 | 6. ST_ApproxHistogram(rastertable text, rastercolumn text, nband int, sample_percent double precision, bins int, right boolean) |
| 2780 | |
| 2781 | ---- |
| 2782 | '''ST_Quantile(raster, nband) -> set of records'''[[BR]] |
| 2783 | In addition to determining the histogram of a raster, providing the ability to compute quantiles permits a user to reference a value in the context of the sample or population. Thus, a value could be examined to be at the raster's 25%, 50%, 75% percentile. |
| 2784 | |
| 2785 | http://en.wikipedia.org/wiki/Quantile |
| 2786 | |
| 2787 | ST_Quantile variations: |
| 2788 | |
| 2789 | 1. ST_Quantile(rast raster, nband int, exclude_nodata_value boolean, quantiles double precision[]) -> set of records |
| 2790 | |
| 2791 | each row returned is of (quantile double precision, value double precision) |
| 2792 | |
| 2793 | nband: index of band to process on |
| 2794 | |
| 2795 | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
| 2796 | |
| 2797 | quantiles: array of percentages to compute values for |
| 2798 | |
| 2799 | {{{ |
| 2800 | ST_Quantile(rast, 1, FALSE, ARRAY[0.1, 0.3, 0.7]) |
| 2801 | |
| 2802 | ST_Quantile(rast, 1, TRUE, ARRAY[0.2]) |
| 2803 | |
| 2804 | ST_Quantile(rast, 1, FALSE, ARRAY[0, 1]) |
| 2805 | }}} |
| 2806 | |
| 2807 | 2. ST_Quantile(rast raster, nband int, quantiles double precision[]) -> set of records |
| 2808 | |
| 2809 | "exclude_nodata_value" is assumed to be TRUE |
| 2810 | |
| 2811 | {{{ |
| 2812 | ST_Quantile(rast, 1, ARRAY[0.1, 0.3, 0.7]) |
| 2813 | }}} |
| 2814 | |
| 2815 | 3. ST_Quantile(rast raster, nband int, exclude_nodata_value boolean) -> set of records |
| 2816 | |
| 2817 | "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] |
| 2818 | |
| 2819 | 4. ST_Quantile(rast raster, nband int) -> set of records |
| 2820 | |
| 2821 | "exclude_nodata_value" is assumed to be TRUE and "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] |
| 2822 | |
| 2823 | 5. ST_Quantile(rast raster, quantiles double precision[]) -> set of records |
| 2824 | |
| 2825 | "nband" is assumed to be 1 and "exclude_nodata_value" is TRUE |
| 2826 | |
| 2827 | 6. ST_Quantile(rast raster) -> set of records |
| 2828 | |
| 2829 | "nband" is assumed to be 1 and "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] |
| 2830 | |
| 2831 | 7. ST_Quantile(rast raster, nband int, exclude_nodata_value boolean, quantile double precision) -> record |
| 2832 | |
| 2833 | quantile: the single percentile to compute |
| 2834 | |
| 2835 | 8. ST_Quantile(rast raster, nband int, quantile double precision) -> record |
| 2836 | |
| 2837 | "exclude_nodata_value" is assumed to be TRUE |
| 2838 | |
| 2839 | 9. ST_Quantile(rast raster, exclude_nodata_value boolean, quantile double precision) -> record |
| 2840 | |
| 2841 | "nband" is assumed to be 1 |
| 2842 | |
| 2843 | 10. ST_Quantile(rast raster, quantile double precision) -> record |
| 2844 | |
| 2845 | "nband" is assumed to be 1 and "exclude_nodata_value" is assumed to be TRUE |
| 2846 | |
| 2847 | ST_ApproxQuantile adds a "sample_percent" indicating the percentage of the raster to sample |
| 2848 | |
| 2849 | 1. ST_ApproxQuantile(rast raster, nband int, exclude_nodata_value boolean, sample_percent double precision, quantiles double precision[]) -> set of records |
| 2850 | |
| 2851 | nband: index of band to process on |
| 2852 | |
| 2853 | exclude_nodata_value: if FALSE, nodata values in band are included. if TRUE, nodata values are not included. |
| 2854 | |
| 2855 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider when computing the quantiles |
| 2856 | |
| 2857 | quantiles: array of percentages to compute values for |
| 2858 | |
| 2859 | {{{ |
| 2860 | ST_ApproxQuantile(rast, 1, FALSE, 0.1, ARRAY[0.1, 0.3, 0.7]) |
| 2861 | |
| 2862 | ST_ApproxQuantile(rast, 1, TRUE, .2, ARRAY[0.2]) |
| 2863 | |
| 2864 | ST_ApproxQuantile(rast, 1, FALSE, 0.3, ARRAY[0, 1]) |
| 2865 | }}} |
| 2866 | |
| 2867 | 2. ST_ApproxQuantile(rast raster, nband int, sample_percent double precision, quantiles double precision[]) -> set of records |
| 2868 | |
| 2869 | "exclude_nodata_value" is assumed to be TRUE |
| 2870 | |
| 2871 | {{{ |
| 2872 | ST_ApproxQuantile(rast, 1, .05, ARRAY[0.1, 0.3, 0.7]) |
| 2873 | }}} |
| 2874 | |
| 2875 | 3. ST_ApproxQuantile(rast raster, nband int, sample_percent double precision) -> set of records |
| 2876 | |
| 2877 | "exclude_nodata_value" is assumed to be TRUE and "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] |
| 2878 | |
| 2879 | 4. ST_ApproxQuantile(rast raster, sample_percent double precision, quantiles double precision[]) -> set of records |
| 2880 | |
| 2881 | "nband" is assumed to be 1 |
| 2882 | |
| 2883 | 5. ST_ApproxQuantile(rast raster, nband int, sample_percent double precision, quantile double precision) -> record |
| 2884 | |
| 2885 | quantile: the single percentile to compute |
| 2886 | |
| 2887 | 6. ST_ApproxQuantile(rast raster, sample_percent double precision, quantile double precision) -> record |
| 2888 | |
| 2889 | "nband" is assumed to be 2 |
| 2890 | |
| 2891 | 7. ST_ApproxQuantile(rast raster, sample_percent double precision) -> set of records |
| 2892 | |
| 2893 | "nband" is assumed to be 1 and "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] |
| 2894 | |
| 2895 | 8. ST_ApproxQuantile(rast raster, nband int, quantile double precision) -> record |
| 2896 | |
| 2897 | "sample_percent" assumed to be 0.1 |
| 2898 | |
| 2899 | 9. ST_ApproxQuantile(rast raster, quantiles double precision[]) -> set of records |
| 2900 | |
| 2901 | "nband" is assumed to be 1 and "sample_percent" assumed to be 0.1 |
| 2902 | |
| 2903 | 10. ST_ApproxQuantile(rast raster, quantile double precision) -> record |
| 2904 | |
| 2905 | "nband" assumed to be 1 and "sample_percent" assumed to be 0.1 |
| 2906 | |
| 2907 | 11. ST_ApproxQuantile(rast raster, nband int) -> set of records |
| 2908 | |
| 2909 | "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] and "sample_percent" assumed to be 0.1 |
| 2910 | |
| 2911 | 12. ST_ApproxQuantile(rast raster) -> set of records |
| 2912 | |
| 2913 | "nband" is assumed to be 1, "quantiles" assumed to be ARRAY[0, 0.25, 0.5, 0.75, 1] and "sample_percent" assumed to be 0.1 |