102 | | |
103 | | ---- |
104 | | |
105 | | '''ST_SummaryStats(raster, nband) -> record'''[[BR]] |
106 | | 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. |
107 | | |
108 | | 1. ST_SummaryStats(rast raster, nband int, hasnodata boolean) -> record |
109 | | |
110 | | returns one record of five columns (count, mean, stddev, min, max) |
111 | | |
112 | | nband: index of band |
113 | | |
114 | | hasnodata: if FALSE, any pixel who's value is nodata is ignored |
115 | | |
116 | | {{{ |
117 | | ST_SummaryStats(rast, 1, FALSE) |
118 | | }}} |
119 | | |
120 | | 2. ST_SummaryStats(rast raster, nband int) -> record |
121 | | |
122 | | assumes hasnodata = FALSE |
123 | | |
124 | | {{{ |
125 | | ST_SummaryStats(rast, 2) |
126 | | }}} |
127 | | |
128 | | 3. ST_SummaryStats(rast raster, hasnodata boolean) -> record |
129 | | |
130 | | assumes nband = 1 |
131 | | |
132 | | {{{ |
133 | | ST_SummaryStats(rast, TRUE) |
134 | | }}} |
135 | | |
136 | | 4. ST_SummaryStats(rast raster) -> record |
137 | | |
138 | | assumes nband = 1 and hasnodata = FALSE |
139 | | |
140 | | {{{ |
141 | | ST_SummaryStats(rast) |
142 | | }}} |
143 | | |
144 | | 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... |
145 | | |
146 | | 1. select the larger dimension of the width and height. compute the number of pixels to sample in each "row" of the larger dimension |
147 | | |
148 | | 2. pick pixels from each "row" of the larger dimension in an incremental rolling manner where each increment is randomly determined. |
149 | | |
150 | | The set of ST_ApproxSummaryStats functions are: |
151 | | |
152 | | 1. ST_ApproxSummaryStats(rast raster, nband int, hasnodata boolean, sample_percent double precision) -> record |
153 | | |
154 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
155 | | |
156 | | {{{ |
157 | | ST_ApproxSummaryStats(rast, 3, FALSE, 0.1) |
158 | | |
159 | | ST_ApproxSummaryStats(rast, 1, TRUE, 0.5) |
160 | | }}} |
161 | | |
162 | | 2. ST_ApproxSummaryStats(rast raster, nband int, sample_percent double precision) -> record |
163 | | |
164 | | assumes that nband = 1 |
165 | | |
166 | | {{{ |
167 | | ST_ApproxSummaryStats(rast, 2 0.01) |
168 | | |
169 | | ST_ApproxSummaryStats(rast, 4, 0.025) |
170 | | }}} |
171 | | |
172 | | 3. ST_ApproxSummaryStats(rast raster, hasnodata boolean, sample_percent double precision) -> record |
173 | | |
174 | | assumes that nband = 1 |
175 | | |
176 | | {{{ |
177 | | ST_ApproxSummaryStats(rast, FALSE, 0.01) |
178 | | |
179 | | ST_ApproxSummaryStats(rast, TRUE, 0.025) |
180 | | }}} |
181 | | |
182 | | 4. ST_ApproxSummaryStats(rast raster, sample_percent double precision) -> record |
183 | | |
184 | | assumes that nband = 1 and hasnodata = FALSE |
185 | | |
186 | | {{{ |
187 | | ST_ApproxSummaryStats(rast, 0.25) |
188 | | }}} |
189 | | |
190 | | 5. ST_ApproxSummaryStats(rast raster) -> record |
191 | | |
192 | | assumes that nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
193 | | |
194 | | {{{ |
195 | | ST_ApproxSummaryStats(rast) |
196 | | }}} |
197 | | |
198 | | 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. |
199 | | |
200 | | 1. ST_SummaryStats(rastertable text, rastercolumn text, nband int, hasnodata boolean) -> record |
201 | | |
202 | | rastertable: name of table with raster column |
203 | | |
204 | | rastercolumn: name of column of data type raster |
205 | | |
206 | | {{{ |
207 | | ST_SummaryStats('tmax_2010', 'rast', 1, FALSE) |
208 | | |
209 | | ST_SummaryStats('precip_2011', 'rast', 1, TRUE) |
210 | | }}} |
211 | | |
212 | | 2. ST_SummaryStats(rastertable text, rastercolumn text, nband int) -> record |
213 | | |
214 | | hasnodata = FALSE |
215 | | |
216 | | {{{ |
217 | | ST_SummaryStats('tmax_2010', 'rast', 1) |
218 | | }}} |
219 | | |
220 | | 3. ST_SummaryStats(rastertable text, rastercolumn text, hasnodata boolean) -> record |
221 | | |
222 | | nband = 1 |
223 | | |
224 | | {{{ |
225 | | ST_SummaryStats('precip_2011', 'rast', TRUE) |
226 | | }}} |
227 | | |
228 | | 4. ST_SummaryStats(rastertable text, rastercolumn text) -> record |
229 | | |
230 | | nband = 1 and hasnodata = FALSE |
231 | | |
232 | | {{{ |
233 | | ST_SummaryStats('tmin_2009', 'rast') |
234 | | }}} |
235 | | |
236 | | Variations for ST_ApproxSummaryStats are: |
237 | | |
238 | | 1. ST_ApproxSummaryStats(rastertable text, rastercolumn text, nband int, hasnodata boolean, sample_percent double precision) -> record |
239 | | |
240 | | {{{ |
241 | | ST_ApproxSummaryStats('tmax_2010', 'rast', 1, FALSE, 0.5) |
242 | | |
243 | | ST_ApproxSummaryStats('precip_2011', 'rast', 1, TRUE, 0.2) |
244 | | }}} |
245 | | |
246 | | 2. ST_ApproxSummaryStats(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> record |
247 | | |
248 | | hasnodata = FALSE |
249 | | |
250 | | {{{ |
251 | | ST_ApproxSummaryStats('tmax_2010', 'rast', 1, 0.5) |
252 | | |
253 | | ST_ApproxSummaryStats('precip_2011', 'rast', 1, 0.2) |
254 | | }}} |
255 | | |
256 | | 3. ST_ApproxSummaryStats(rastertable text, rastercolumn text, hasnodata boolean, sample_percent double precision) -> record |
257 | | |
258 | | nband = 1 |
259 | | |
260 | | {{{ |
261 | | ST_ApproxSummaryStats('tmax_2010', 'rast', FALSE, 0.5) |
262 | | |
263 | | ST_ApproxSummaryStats('precip_2011', 'rast', TRUE, 0.2) |
264 | | }}} |
265 | | |
266 | | 4. ST_ApproxSummaryStats(rastertable text, rastercolumn text, sample_percent double precision) -> record |
267 | | |
268 | | nband = 1 and hasnodata = FALSE |
269 | | |
270 | | {{{ |
271 | | ST_ApproxSummaryStats('tmax_2010', 'rast', 0.5) |
272 | | |
273 | | ST_ApproxSummaryStats('precip_2011', 'rast', 0.2) |
274 | | }}} |
275 | | |
276 | | 5. ST_ApproxSummaryStats(rastertable text, rastercolumn text) -> record |
277 | | |
278 | | nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
279 | | |
280 | | {{{ |
281 | | ST_ApproxSummaryStats('tmax_2010', 'rast') |
282 | | |
283 | | ST_ApproxSummaryStats('precip_2011', 'rast') |
284 | | }}} |
285 | | |
286 | | The mean returned in the coverage functions (has rastertable and rastercolumn arguments) is a weighted mean of the means of each raster tile. The standard deviation returned is the cumulative standard deviation of all raster tiles. |
287 | | |
288 | | ---- |
289 | | |
290 | | '''ST_Mean(raster, nband) -> double precision'''[[BR]] |
291 | | This function calls ST_SummaryStats and only returns the mean from that function. |
292 | | |
293 | | 1. ST_Mean(rast raster, nband int, hasnodata boolean) -> double precision |
294 | | |
295 | | returns the mean as a double precision |
296 | | |
297 | | nband: index of band |
298 | | |
299 | | hasnodata: if FALSE, any pixel who's value is nodata is ignored |
300 | | |
301 | | {{{ |
302 | | ST_Mean(rast, 1, FALSE) |
303 | | }}} |
304 | | |
305 | | 2. ST_Mean(rast raster, nband int) -> double precision |
306 | | |
307 | | assumes hasnodata = FALSE |
308 | | |
309 | | {{{ |
310 | | ST_Mean(rast, 2) |
311 | | }}} |
312 | | |
313 | | 3. ST_Mean(rast raster, hasnodata boolean) -> double precision |
314 | | |
315 | | assumes nband = 1 |
316 | | |
317 | | {{{ |
318 | | ST_Mean(rast, TRUE) |
319 | | }}} |
320 | | |
321 | | 4. ST_Mean(rast raster) -> double precision |
322 | | |
323 | | assumes nband = 1 and hasnodata = FALSE |
324 | | |
325 | | {{{ |
326 | | ST_Mean(rast) |
327 | | }}} |
328 | | |
329 | | The set of ST_ApproxMean functions are: |
330 | | |
331 | | 1. ST_ApproxMean(rast raster, nband int, hasnodata boolean, sample_percent double precision) -> double precision |
332 | | |
333 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
334 | | |
335 | | {{{ |
336 | | ST_ApproxMean(rast, 3, FALSE, 0.1) |
337 | | |
338 | | ST_ApproxMean(rast, 1, TRUE, 0.5) |
339 | | }}} |
340 | | |
341 | | 2. ST_ApproxMean(rast raster, nband int, sample_percent double precision) -> double precision |
342 | | |
343 | | assumes that nband = 1 |
344 | | |
345 | | {{{ |
346 | | ST_ApproxMean(rast, 2 0.01) |
347 | | |
348 | | ST_ApproxMean(rast, 4, 0.025) |
349 | | }}} |
350 | | |
351 | | 3. ST_ApproxMean(rast raster, hasnodata boolean, sample_percent double precision) -> double precision |
352 | | |
353 | | assumes that nband = 1 |
354 | | |
355 | | {{{ |
356 | | ST_ApproxMean(rast, FALSE, 0.01) |
357 | | |
358 | | ST_ApproxMean(rast, TRUE, 0.025) |
359 | | }}} |
360 | | |
361 | | 4. ST_ApproxMean(rast raster, sample_percent double precision) -> double precision |
362 | | |
363 | | assumes that nband = 1 and hasnodata = FALSE |
364 | | |
365 | | {{{ |
366 | | ST_ApproxMean(rast, 0.25) |
367 | | }}} |
368 | | |
369 | | 5. ST_ApproxMean(rast raster) -> double precision |
370 | | |
371 | | assumes that nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
372 | | |
373 | | {{{ |
374 | | ST_ApproxMean(rast) |
375 | | }}} |
376 | | |
377 | | The following functions are provided for coverage tables. |
378 | | |
379 | | 1. ST_Mean(rastertable text, rastercolumn text, nband int, hasnodata boolean) -> double precision |
380 | | |
381 | | rastertable: name of table with raster column |
382 | | |
383 | | rastercolumn: name of column of data type raster |
384 | | |
385 | | {{{ |
386 | | ST_Mean('tmax_2010', 'rast', 1, FALSE) |
387 | | |
388 | | ST_Mean('precip_2011', 'rast', 1, TRUE) |
389 | | }}} |
390 | | |
391 | | 2. ST_Mean(rastertable text, rastercolumn text, nband int) -> double precision |
392 | | |
393 | | hasnodata = FALSE |
394 | | |
395 | | {{{ |
396 | | ST_Mean('tmax_2010', 'rast', 1) |
397 | | }}} |
398 | | |
399 | | 3. ST_Mean(rastertable text, rastercolumn text, hasnodata boolean) -> double precision |
400 | | |
401 | | nband = 1 |
402 | | |
403 | | {{{ |
404 | | ST_Mean('precip_2011', 'rast', TRUE) |
405 | | }}} |
406 | | |
407 | | 4. ST_Mean(rastertable text, rastercolumn text) -> double precision |
408 | | |
409 | | nband = 1 and hasnodata = FALSE |
410 | | |
411 | | {{{ |
412 | | ST_Mean('tmin_2009', 'rast') |
413 | | }}} |
414 | | |
415 | | Variations for ST_ApproxMean are: |
416 | | |
417 | | 1. ST_ApproxMean(rastertable text, rastercolumn text, nband int, hasnodata boolean, sample_percent double precision) -> double precision |
418 | | |
419 | | {{{ |
420 | | ST_ApproxMean('tmax_2010', 'rast', 1, FALSE, 0.5) |
421 | | |
422 | | ST_ApproxMean('precip_2011', 'rast', 1, TRUE, 0.2) |
423 | | }}} |
424 | | |
425 | | 2. ST_ApproxMean(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> double precision |
426 | | |
427 | | hasnodata = FALSE |
428 | | |
429 | | {{{ |
430 | | ST_ApproxMean('tmax_2010', 'rast', 1, 0.5) |
431 | | |
432 | | ST_ApproxMean('precip_2011', 'rast', 1, 0.2) |
433 | | }}} |
434 | | |
435 | | 3. ST_ApproxMean(rastertable text, rastercolumn text, hasnodata boolean, sample_percent double precision) -> double precision |
436 | | |
437 | | nband = 1 |
438 | | |
439 | | {{{ |
440 | | ST_ApproxMean('tmax_2010', 'rast', FALSE, 0.5) |
441 | | |
442 | | ST_ApproxMean('precip_2011', 'rast', TRUE, 0.2) |
443 | | }}} |
444 | | |
445 | | 4. ST_ApproxMean(rastertable text, rastercolumn text, sample_percent double precision) -> double precision |
446 | | |
447 | | nband = 1 and hasnodata = FALSE |
448 | | |
449 | | {{{ |
450 | | ST_ApproxMean('tmax_2010', 'rast', 0.5) |
451 | | |
452 | | ST_ApproxMean('precip_2011', 'rast', 0.2) |
453 | | }}} |
454 | | |
455 | | 5. ST_ApproxMean(rastertable text, rastercolumn text) -> double precision |
456 | | |
457 | | nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
458 | | |
459 | | {{{ |
460 | | ST_ApproxMean('tmax_2010', 'rast') |
461 | | |
462 | | ST_ApproxMean('precip_2011', 'rast') |
463 | | }}} |
464 | | |
465 | | The mean returned in the coverage functions (has rastertable and rastercolumn arguments) is a weighted mean of the means of each raster tile. |
466 | | |
467 | | ---- |
468 | | |
469 | | '''ST_StdDev(raster, nband) -> double precision'''[[BR]] |
470 | | This function calls ST_SummaryStats and only returns the standard deviation from that function. |
471 | | |
472 | | 1. ST_StdDev(rast raster, nband int, hasnodata boolean) -> double precision |
473 | | |
474 | | returns the standard deviation as a double precision |
475 | | |
476 | | nband: index of band |
477 | | |
478 | | hasnodata: if FALSE, any pixel who's value is nodata is ignored |
479 | | |
480 | | {{{ |
481 | | ST_StdDev(rast, 1, FALSE) |
482 | | }}} |
483 | | |
484 | | 2. ST_StdDev(rast raster, nband int) -> double precision |
485 | | |
486 | | assumes hasnodata = FALSE |
487 | | |
488 | | {{{ |
489 | | ST_StdDev(rast, 2) |
490 | | }}} |
491 | | |
492 | | 3. ST_StdDev(rast raster, hasnodata boolean) -> double precision |
493 | | |
494 | | assumes nband = 1 |
495 | | |
496 | | {{{ |
497 | | ST_StdDev(rast, TRUE) |
498 | | }}} |
499 | | |
500 | | 4. ST_StdDev(rast raster) -> double precision |
501 | | |
502 | | assumes nband = 1 and hasnodata = FALSE |
503 | | |
504 | | {{{ |
505 | | ST_StdDev(rast) |
506 | | }}} |
507 | | |
508 | | The set of ST_ApproxStdDev functions are: |
509 | | |
510 | | 1. ST_ApproxStdDev(rast raster, nband int, hasnodata boolean, sample_percent double precision) -> double precision |
511 | | |
512 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
513 | | |
514 | | {{{ |
515 | | ST_ApproxStdDev(rast, 3, FALSE, 0.1) |
516 | | |
517 | | ST_ApproxStdDev(rast, 1, TRUE, 0.5) |
518 | | }}} |
519 | | |
520 | | 2. ST_ApproxStdDev(rast raster, nband int, sample_percent double precision) -> double precision |
521 | | |
522 | | assumes that nband = 1 |
523 | | |
524 | | {{{ |
525 | | ST_ApproxStdDev(rast, 2 0.01) |
526 | | |
527 | | ST_ApproxStdDev(rast, 4, 0.025) |
528 | | }}} |
529 | | |
530 | | 3. ST_ApproxStdDev(rast raster, hasnodata boolean, sample_percent double precision) -> double precision |
531 | | |
532 | | assumes that nband = 1 |
533 | | |
534 | | {{{ |
535 | | ST_ApproxStdDev(rast, FALSE, 0.01) |
536 | | |
537 | | ST_ApproxStdDev(rast, TRUE, 0.025) |
538 | | }}} |
539 | | |
540 | | 4. ST_ApproxStdDev(rast raster, sample_percent double precision) -> double precision |
541 | | |
542 | | assumes that nband = 1 and hasnodata = FALSE |
543 | | |
544 | | {{{ |
545 | | ST_ApproxStdDev(rast, 0.25) |
546 | | }}} |
547 | | |
548 | | 5. ST_ApproxStdDev(rast raster) -> double precision |
549 | | |
550 | | assumes that nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
551 | | |
552 | | {{{ |
553 | | ST_ApproxStdDev(rast) |
554 | | }}} |
555 | | |
556 | | The following functions are provided for coverage tables. |
557 | | |
558 | | 1. ST_StdDev(rastertable text, rastercolumn text, nband int, hasnodata boolean) -> double precision |
559 | | |
560 | | rastertable: name of table with raster column |
561 | | |
562 | | rastercolumn: name of column of data type raster |
563 | | |
564 | | {{{ |
565 | | ST_StdDev('tmax_2010', 'rast', 1, FALSE) |
566 | | |
567 | | ST_StdDev('precip_2011', 'rast', 1, TRUE) |
568 | | }}} |
569 | | |
570 | | 2. ST_StdDev(rastertable text, rastercolumn text, nband int) -> double precision |
571 | | |
572 | | hasnodata = FALSE |
573 | | |
574 | | {{{ |
575 | | ST_StdDev('tmax_2010', 'rast', 1) |
576 | | }}} |
577 | | |
578 | | 3. ST_StdDev(rastertable text, rastercolumn text, hasnodata boolean) -> double precision |
579 | | |
580 | | nband = 1 |
581 | | |
582 | | {{{ |
583 | | ST_StdDev('precip_2011', 'rast', TRUE) |
584 | | }}} |
585 | | |
586 | | 4. ST_StdDev(rastertable text, rastercolumn text) -> double precision |
587 | | |
588 | | nband = 1 and hasnodata = FALSE |
589 | | |
590 | | {{{ |
591 | | ST_StdDev('tmin_2009', 'rast') |
592 | | }}} |
593 | | |
594 | | Variations for ST_ApproxStdDev are: |
595 | | |
596 | | 1. ST_ApproxStdDev(rastertable text, rastercolumn text, nband int, hasnodata boolean, sample_percent double precision) -> double precision |
597 | | |
598 | | {{{ |
599 | | ST_ApproxStdDev('tmax_2010', 'rast', 1, FALSE, 0.5) |
600 | | |
601 | | ST_ApproxStdDev('precip_2011', 'rast', 1, TRUE, 0.2) |
602 | | }}} |
603 | | |
604 | | 2. ST_ApproxStdDev(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> double precision |
605 | | |
606 | | hasnodata = FALSE |
607 | | |
608 | | {{{ |
609 | | ST_ApproxStdDev('tmax_2010', 'rast', 1, 0.5) |
610 | | |
611 | | ST_ApproxStdDev('precip_2011', 'rast', 1, 0.2) |
612 | | }}} |
613 | | |
614 | | 3. ST_ApproxStdDev(rastertable text, rastercolumn text, hasnodata boolean, sample_percent double precision) -> double precision |
615 | | |
616 | | nband = 1 |
617 | | |
618 | | {{{ |
619 | | ST_ApproxStdDev('tmax_2010', 'rast', FALSE, 0.5) |
620 | | |
621 | | ST_ApproxStdDev('precip_2011', 'rast', TRUE, 0.2) |
622 | | }}} |
623 | | |
624 | | 4. ST_ApproxStdDev(rastertable text, rastercolumn text, sample_percent double precision) -> double precision |
625 | | |
626 | | nband = 1 and hasnodata = FALSE |
627 | | |
628 | | {{{ |
629 | | ST_ApproxStdDev('tmax_2010', 'rast', 0.5) |
630 | | |
631 | | ST_ApproxStdDev('precip_2011', 'rast', 0.2) |
632 | | }}} |
633 | | |
634 | | 5. ST_ApproxStdDev(rastertable text, rastercolumn text) -> double precision |
635 | | |
636 | | nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
637 | | |
638 | | {{{ |
639 | | ST_ApproxStdDev('tmax_2010', 'rast') |
640 | | |
641 | | ST_ApproxStdDev('precip_2011', 'rast') |
642 | | }}} |
643 | | |
644 | | The standard deviation returned in the coverage functions (has rastertable and rastercolumn arguments) is the cumulative standard deviation of all raster tiles. |
645 | | |
646 | | ---- |
647 | | |
648 | | '''ST_MinMax(raster, nband) -> record'''[[BR]] |
649 | | This function calls ST_SummaryStats and only returns the min and max values from that function. |
650 | | |
651 | | 1. ST_MinMax(rast raster, nband int, hasnodata boolean) -> record |
652 | | |
653 | | returns the record (min double precision, max double precision) |
654 | | |
655 | | nband: index of band |
656 | | |
657 | | hasnodata: if FALSE, any pixel who's value is nodata is ignored |
658 | | |
659 | | {{{ |
660 | | ST_MinMax(rast, 1, FALSE) |
661 | | }}} |
662 | | |
663 | | 2. ST_MinMax(rast raster, nband int) -> record |
664 | | |
665 | | assumes hasnodata = FALSE |
666 | | |
667 | | {{{ |
668 | | ST_MinMax(rast, 2) |
669 | | }}} |
670 | | |
671 | | 3. ST_MinMax(rast raster, hasnodata boolean) -> record |
672 | | |
673 | | assumes nband = 1 |
674 | | |
675 | | {{{ |
676 | | ST_MinMax(rast, TRUE) |
677 | | }}} |
678 | | |
679 | | 4. ST_MinMax(rast raster) -> record |
680 | | |
681 | | assumes nband = 1 and hasnodata = FALSE |
682 | | |
683 | | {{{ |
684 | | ST_MinMax(rast) |
685 | | }}} |
686 | | |
687 | | The set of ST_ApproxMinMax functions are: |
688 | | |
689 | | 1. ST_ApproxMinMax(rast raster, nband int, hasnodata boolean, sample_percent record) -> record |
690 | | |
691 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
692 | | |
693 | | {{{ |
694 | | ST_ApproxMinMax(rast, 3, FALSE, 0.1) |
695 | | |
696 | | ST_ApproxMinMax(rast, 1, TRUE, 0.5) |
697 | | }}} |
698 | | |
699 | | 2. ST_ApproxMinMax(rast raster, nband int, sample_percent double precision) -> record |
700 | | |
701 | | assumes that nband = 1 |
702 | | |
703 | | {{{ |
704 | | ST_ApproxMinMax(rast, 2 0.01) |
705 | | |
706 | | ST_ApproxMinMax(rast, 4, 0.025) |
707 | | }}} |
708 | | |
709 | | 3. ST_ApproxMinMax(rast raster, hasnodata boolean, sample_percent double precision) -> record |
710 | | |
711 | | assumes that nband = 1 |
712 | | |
713 | | {{{ |
714 | | ST_ApproxMinMax(rast, FALSE, 0.01) |
715 | | |
716 | | ST_ApproxMinMax(rast, TRUE, 0.025) |
717 | | }}} |
718 | | |
719 | | 4. ST_ApproxMinMax(rast raster, sample_percent double precision) -> record |
720 | | |
721 | | assumes that nband = 1 and hasnodata = FALSE |
722 | | |
723 | | {{{ |
724 | | ST_ApproxMinMax(rast, 0.25) |
725 | | }}} |
726 | | |
727 | | 5. ST_ApproxMinMax(rast raster) -> record |
728 | | |
729 | | assumes that nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
730 | | |
731 | | {{{ |
732 | | ST_ApproxMinMax(rast) |
733 | | }}} |
734 | | |
735 | | The following functions are provided for coverage tables. |
736 | | |
737 | | 1. ST_MinMax(rastertable text, rastercolumn text, nband int, hasnodata boolean) -> record |
738 | | |
739 | | rastertable: name of table with raster column |
740 | | |
741 | | rastercolumn: name of column of data type raster |
742 | | |
743 | | {{{ |
744 | | ST_MinMax('tmax_2010', 'rast', 1, FALSE) |
745 | | |
746 | | ST_MinMax('precip_2011', 'rast', 1, TRUE) |
747 | | }}} |
748 | | |
749 | | 2. ST_MinMax(rastertable text, rastercolumn text, nband int) -> record |
750 | | |
751 | | hasnodata = FALSE |
752 | | |
753 | | {{{ |
754 | | ST_MinMax('tmax_2010', 'rast', 1) |
755 | | }}} |
756 | | |
757 | | 3. ST_MinMax(rastertable text, rastercolumn text, hasnodata boolean) -> record |
758 | | |
759 | | nband = 1 |
760 | | |
761 | | {{{ |
762 | | ST_MinMax('precip_2011', 'rast', TRUE) |
763 | | }}} |
764 | | |
765 | | 4. ST_MinMax(rastertable text, rastercolumn text) -> record |
766 | | |
767 | | nband = 1 and hasnodata = FALSE |
768 | | |
769 | | {{{ |
770 | | ST_MinMax('tmin_2009', 'rast') |
771 | | }}} |
772 | | |
773 | | Variations for ST_ApproxMinMax are: |
774 | | |
775 | | 1. ST_ApproxMinMax(rastertable text, rastercolumn text, nband int, hasnodata boolean, sample_percent double precision) -> record |
776 | | |
777 | | {{{ |
778 | | ST_ApproxMinMax('tmax_2010', 'rast', 1, FALSE, 0.5) |
779 | | |
780 | | ST_ApproxMinMax('precip_2011', 'rast', 1, TRUE, 0.2) |
781 | | }}} |
782 | | |
783 | | 2. ST_ApproxMinMax(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> record |
784 | | |
785 | | hasnodata = FALSE |
786 | | |
787 | | {{{ |
788 | | ST_ApproxMinMax('tmax_2010', 'rast', 1, 0.5) |
789 | | |
790 | | ST_ApproxMinMax('precip_2011', 'rast', 1, 0.2) |
791 | | }}} |
792 | | |
793 | | 3. ST_ApproxMinMax(rastertable text, rastercolumn text, hasnodata boolean, sample_percent double precision) -> record |
794 | | |
795 | | nband = 1 |
796 | | |
797 | | {{{ |
798 | | ST_ApproxMinMax('tmax_2010', 'rast', FALSE, 0.5) |
799 | | |
800 | | ST_ApproxMinMax('precip_2011', 'rast', TRUE, 0.2) |
801 | | }}} |
802 | | |
803 | | 4. ST_ApproxMinMax(rastertable text, rastercolumn text, sample_percent double precision) -> record |
804 | | |
805 | | nband = 1 and hasnodata = FALSE |
806 | | |
807 | | {{{ |
808 | | ST_ApproxMinMax('tmax_2010', 'rast', 0.5) |
809 | | |
810 | | ST_ApproxMinMax('precip_2011', 'rast', 0.2) |
811 | | }}} |
812 | | |
813 | | 5. ST_ApproxMinMax(rastertable text, rastercolumn text) -> record |
814 | | |
815 | | nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
816 | | |
817 | | {{{ |
818 | | ST_ApproxMinMax('tmax_2010', 'rast') |
819 | | |
820 | | ST_ApproxMinMax('precip_2011', 'rast') |
821 | | }}} |
822 | | |
823 | | ---- |
824 | | |
825 | | '''ST_Histogram(raster, nband) -> set of records'''[[BR]] |
826 | | ST_Histogram and ST_ApproxHistogram provide methods to determine a raster's data distribution. |
827 | | |
828 | | The return of ST_Histogram and ST_ApproxHistogram is a set of records where each record is (min, max, count, proportion). |
829 | | |
830 | | ST_Histogram has the following variations. |
831 | | |
832 | | 1. ST_Histogram(rast raster, nband int, hasnodata boolean, bins int, width double precision[], right boolean) -> set of records |
833 | | |
834 | | returns set of records of four columns (min, max, count, proportion) |
835 | | |
836 | | nband: index of band to process on |
837 | | |
838 | | hasnodata: if FALSE, any pixel who's value is nodata is ignored. |
839 | | |
840 | | 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. |
841 | | |
842 | | http://en.wikipedia.org/wiki/Histogram#Mathematical_definition |
843 | | |
844 | | 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]. |
845 | | |
846 | | 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]. |
847 | | |
848 | | {{{ |
849 | | ST_Histogram(rast, 2, FALSE, NULL, NULL, FALSE) |
850 | | |
851 | | ST_Histogram(rast, 1, TRUE, 100, NULL, FALSE) |
852 | | |
853 | | ST_Histogram(rast, 2, FALSE, NULL, ARRAY[100, 50], FALSE) |
854 | | |
855 | | ST_Histogram(rast, 2, FALSE, 9, ARRAY[1000], TRUE) |
856 | | |
857 | | ST_Histogram(rast, 2, FALSE, 20, ARRAY[100, 200, 300], TRUE) |
858 | | }}} |
859 | | |
860 | | 2. ST_Histogram(rast raster, nband int, hasnodata boolean, bins int, right boolean) -> set of records |
861 | | |
862 | | parameter "width" is not specified thus resulting in all bins having the same widths |
863 | | |
864 | | {{{ |
865 | | ST_Histogram(rast, 2, FALSE, 5, FALSE) |
866 | | }}} |
867 | | |
868 | | 3. ST_Histogram(rast raster, nband int, hasnodata boolean, bins int) -> set of records |
869 | | |
870 | | the parameter "right" is removed and assumed to be FALSE |
871 | | |
872 | | {{{ |
873 | | ST_Histogram(rast, 2, FALSE, 5) |
874 | | }}} |
875 | | |
876 | | 4. ST_Histogram(rast raster, nband int, hasnodata boolean) -> set of records |
877 | | |
878 | | the parameter "bins" is removed and set to NULL. The function will compute the number of bins to use |
879 | | |
880 | | 5. ST_Histogram(rast raster, nband int) -> set of records |
881 | | |
882 | | parameter "hasnodata" is removed and assumed to be FALSE |
883 | | |
884 | | 6. ST_Histogram(rast raster) -> set of records |
885 | | |
886 | | assumes that nband is 1. |
887 | | |
888 | | 7. ST_Histogram(rast raster, nband int, bins int, width double precision[], right boolean) -> set of records |
889 | | |
890 | | hasnodata is assumed to be FALSE |
891 | | |
892 | | 8. ST_Histogram(rast raster, nband int, bins int, right boolean) -> set of records |
893 | | |
894 | | all bins will have equal widths |
895 | | |
896 | | 9. ST_Histogram(rast raster, nband int, bins int) -> set of records |
897 | | |
898 | | right is assumed to be FALSE |
899 | | |
900 | | ST_ApproxHistogram should have the following variations. |
901 | | |
902 | | 1. ST_ApproxHistogram(rast raster, nband int, hasnodata boolean, sample_percent double precision, bins int, width double precision[], right boolean) -> set of record |
903 | | |
904 | | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider when generating the histogram. |
905 | | |
906 | | {{{ |
907 | | ST_Histogram(rast, 2, FALSE, 0.1, NULL, NULL, FALSE) |
908 | | |
909 | | ST_Histogram(rast, 1, TRUE, 1, 100, NULL, FALSE) |
910 | | |
911 | | ST_Histogram(rast, 2, FALSE, 0.2, NULL, ARRAY[100, 50], FALSE) |
912 | | |
913 | | ST_Histogram(rast, 2, FALSE, 0.25, 9, ARRAY[1000], TRUE) |
914 | | |
915 | | ST_Histogram(rast, 2, FALSE, 0.05, 20, ARRAY[100, 200, 300], TRUE) |
916 | | }}} |
917 | | |
918 | | 2. ST_ApproxHistogram(rast raster, nband int, hasnodata boolean, sample_percent double precision, bins int, right boolean) -> set of records |
919 | | |
920 | | parameter "width" is not specified thus resulting in all bins having the same widths |
921 | | |
922 | | 3. ST_ApproxHistogram(rast raster, nband int, hasnodata boolean, sample_percent double precision, bins int) -> set of records |
923 | | |
924 | | the parameter "right" is removed and assumed to be FALSE |
925 | | |
926 | | {{{ |
927 | | ST_ApproxHistogram(rast, 2, FALSE, 5) |
928 | | }}} |
929 | | |
930 | | 4. ST_ApproxHistogram(rast raster, nband int, hasnodata boolean, sample_percent double precision) -> set of records |
931 | | |
932 | | the parameter "bins" is removed and set to NULL so that function can compute the number of bins to use |
933 | | |
934 | | 5. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision) -> set of records |
935 | | |
936 | | parameter "hasnodata" is removed and assumed to be FALSE |
937 | | |
938 | | 6. ST_ApproxHistogram(rast raster, nband int) -> set of records |
939 | | |
940 | | assumes that sample_percent is 0.1 |
941 | | |
942 | | 7. ST_ApproxHistogram(rast raster, sample_percent double_precision) -> set of records |
943 | | |
944 | | assumes that nband is 1 |
945 | | |
946 | | 8. ST_ApproxHistogram(rast raster) -> set of records |
947 | | |
948 | | assumes that nband is 1 and sample_percent is 0.1 |
949 | | |
950 | | 9. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int, width double precision[], right boolean) -> set of records |
951 | | |
952 | | hasnodata is assumed to be FALSE |
953 | | |
954 | | 10. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int, right boolean) -> set of records |
955 | | |
956 | | all bins will have equal widths |
957 | | |
958 | | 11. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int) -> set of records |
959 | | |
960 | | right is assumed to be FALSE |
| 1024 | |
| 1025 | '''ST_SummaryStats(raster, nband) -> record'''[[BR]] |
| 1026 | 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. |
| 1027 | |
| 1028 | 1. ST_SummaryStats(rast raster, nband int, hasnodata boolean) -> record |
| 1029 | |
| 1030 | returns one record of five columns (count, mean, stddev, min, max) |
| 1031 | |
| 1032 | nband: index of band |
| 1033 | |
| 1034 | hasnodata: if FALSE, any pixel who's value is nodata is ignored |
| 1035 | |
| 1036 | {{{ |
| 1037 | ST_SummaryStats(rast, 1, FALSE) |
| 1038 | }}} |
| 1039 | |
| 1040 | 2. ST_SummaryStats(rast raster, nband int) -> record |
| 1041 | |
| 1042 | assumes hasnodata = FALSE |
| 1043 | |
| 1044 | {{{ |
| 1045 | ST_SummaryStats(rast, 2) |
| 1046 | }}} |
| 1047 | |
| 1048 | 3. ST_SummaryStats(rast raster, hasnodata boolean) -> record |
| 1049 | |
| 1050 | assumes nband = 1 |
| 1051 | |
| 1052 | {{{ |
| 1053 | ST_SummaryStats(rast, TRUE) |
| 1054 | }}} |
| 1055 | |
| 1056 | 4. ST_SummaryStats(rast raster) -> record |
| 1057 | |
| 1058 | assumes nband = 1 and hasnodata = FALSE |
| 1059 | |
| 1060 | {{{ |
| 1061 | ST_SummaryStats(rast) |
| 1062 | }}} |
| 1063 | |
| 1064 | 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... |
| 1065 | |
| 1066 | 1. select the larger dimension of the width and height. compute the number of pixels to sample in each "row" of the larger dimension |
| 1067 | |
| 1068 | 2. pick pixels from each "row" of the larger dimension in an incremental rolling manner where each increment is randomly determined. |
| 1069 | |
| 1070 | The set of ST_ApproxSummaryStats functions are: |
| 1071 | |
| 1072 | 1. ST_ApproxSummaryStats(rast raster, nband int, hasnodata boolean, sample_percent double precision) -> record |
| 1073 | |
| 1074 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
| 1075 | |
| 1076 | {{{ |
| 1077 | ST_ApproxSummaryStats(rast, 3, FALSE, 0.1) |
| 1078 | |
| 1079 | ST_ApproxSummaryStats(rast, 1, TRUE, 0.5) |
| 1080 | }}} |
| 1081 | |
| 1082 | 2. ST_ApproxSummaryStats(rast raster, nband int, sample_percent double precision) -> record |
| 1083 | |
| 1084 | assumes that nband = 1 |
| 1085 | |
| 1086 | {{{ |
| 1087 | ST_ApproxSummaryStats(rast, 2 0.01) |
| 1088 | |
| 1089 | ST_ApproxSummaryStats(rast, 4, 0.025) |
| 1090 | }}} |
| 1091 | |
| 1092 | 3. ST_ApproxSummaryStats(rast raster, hasnodata boolean, sample_percent double precision) -> record |
| 1093 | |
| 1094 | assumes that nband = 1 |
| 1095 | |
| 1096 | {{{ |
| 1097 | ST_ApproxSummaryStats(rast, FALSE, 0.01) |
| 1098 | |
| 1099 | ST_ApproxSummaryStats(rast, TRUE, 0.025) |
| 1100 | }}} |
| 1101 | |
| 1102 | 4. ST_ApproxSummaryStats(rast raster, sample_percent double precision) -> record |
| 1103 | |
| 1104 | assumes that nband = 1 and hasnodata = FALSE |
| 1105 | |
| 1106 | {{{ |
| 1107 | ST_ApproxSummaryStats(rast, 0.25) |
| 1108 | }}} |
| 1109 | |
| 1110 | 5. ST_ApproxSummaryStats(rast raster) -> record |
| 1111 | |
| 1112 | assumes that nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
| 1113 | |
| 1114 | {{{ |
| 1115 | ST_ApproxSummaryStats(rast) |
| 1116 | }}} |
| 1117 | |
| 1118 | 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. |
| 1119 | |
| 1120 | 1. ST_SummaryStats(rastertable text, rastercolumn text, nband int, hasnodata boolean) -> record |
| 1121 | |
| 1122 | rastertable: name of table with raster column |
| 1123 | |
| 1124 | rastercolumn: name of column of data type raster |
| 1125 | |
| 1126 | {{{ |
| 1127 | ST_SummaryStats('tmax_2010', 'rast', 1, FALSE) |
| 1128 | |
| 1129 | ST_SummaryStats('precip_2011', 'rast', 1, TRUE) |
| 1130 | }}} |
| 1131 | |
| 1132 | 2. ST_SummaryStats(rastertable text, rastercolumn text, nband int) -> record |
| 1133 | |
| 1134 | hasnodata = FALSE |
| 1135 | |
| 1136 | {{{ |
| 1137 | ST_SummaryStats('tmax_2010', 'rast', 1) |
| 1138 | }}} |
| 1139 | |
| 1140 | 3. ST_SummaryStats(rastertable text, rastercolumn text, hasnodata boolean) -> record |
| 1141 | |
| 1142 | nband = 1 |
| 1143 | |
| 1144 | {{{ |
| 1145 | ST_SummaryStats('precip_2011', 'rast', TRUE) |
| 1146 | }}} |
| 1147 | |
| 1148 | 4. ST_SummaryStats(rastertable text, rastercolumn text) -> record |
| 1149 | |
| 1150 | nband = 1 and hasnodata = FALSE |
| 1151 | |
| 1152 | {{{ |
| 1153 | ST_SummaryStats('tmin_2009', 'rast') |
| 1154 | }}} |
| 1155 | |
| 1156 | Variations for ST_ApproxSummaryStats are: |
| 1157 | |
| 1158 | 1. ST_ApproxSummaryStats(rastertable text, rastercolumn text, nband int, hasnodata boolean, sample_percent double precision) -> record |
| 1159 | |
| 1160 | {{{ |
| 1161 | ST_ApproxSummaryStats('tmax_2010', 'rast', 1, FALSE, 0.5) |
| 1162 | |
| 1163 | ST_ApproxSummaryStats('precip_2011', 'rast', 1, TRUE, 0.2) |
| 1164 | }}} |
| 1165 | |
| 1166 | 2. ST_ApproxSummaryStats(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> record |
| 1167 | |
| 1168 | hasnodata = FALSE |
| 1169 | |
| 1170 | {{{ |
| 1171 | ST_ApproxSummaryStats('tmax_2010', 'rast', 1, 0.5) |
| 1172 | |
| 1173 | ST_ApproxSummaryStats('precip_2011', 'rast', 1, 0.2) |
| 1174 | }}} |
| 1175 | |
| 1176 | 3. ST_ApproxSummaryStats(rastertable text, rastercolumn text, hasnodata boolean, sample_percent double precision) -> record |
| 1177 | |
| 1178 | nband = 1 |
| 1179 | |
| 1180 | {{{ |
| 1181 | ST_ApproxSummaryStats('tmax_2010', 'rast', FALSE, 0.5) |
| 1182 | |
| 1183 | ST_ApproxSummaryStats('precip_2011', 'rast', TRUE, 0.2) |
| 1184 | }}} |
| 1185 | |
| 1186 | 4. ST_ApproxSummaryStats(rastertable text, rastercolumn text, sample_percent double precision) -> record |
| 1187 | |
| 1188 | nband = 1 and hasnodata = FALSE |
| 1189 | |
| 1190 | {{{ |
| 1191 | ST_ApproxSummaryStats('tmax_2010', 'rast', 0.5) |
| 1192 | |
| 1193 | ST_ApproxSummaryStats('precip_2011', 'rast', 0.2) |
| 1194 | }}} |
| 1195 | |
| 1196 | 5. ST_ApproxSummaryStats(rastertable text, rastercolumn text) -> record |
| 1197 | |
| 1198 | nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
| 1199 | |
| 1200 | {{{ |
| 1201 | ST_ApproxSummaryStats('tmax_2010', 'rast') |
| 1202 | |
| 1203 | ST_ApproxSummaryStats('precip_2011', 'rast') |
| 1204 | }}} |
| 1205 | |
| 1206 | The mean returned in the coverage functions (has rastertable and rastercolumn arguments) is a weighted mean of the means of each raster tile. The standard deviation returned is the cumulative standard deviation of all raster tiles. |
| 1207 | |
| 1208 | ---- |
| 1209 | |
| 1210 | '''ST_Mean(raster, nband) -> double precision'''[[BR]] |
| 1211 | This function calls ST_SummaryStats and only returns the mean from that function. |
| 1212 | |
| 1213 | 1. ST_Mean(rast raster, nband int, hasnodata boolean) -> double precision |
| 1214 | |
| 1215 | returns the mean as a double precision |
| 1216 | |
| 1217 | nband: index of band |
| 1218 | |
| 1219 | hasnodata: if FALSE, any pixel who's value is nodata is ignored |
| 1220 | |
| 1221 | {{{ |
| 1222 | ST_Mean(rast, 1, FALSE) |
| 1223 | }}} |
| 1224 | |
| 1225 | 2. ST_Mean(rast raster, nband int) -> double precision |
| 1226 | |
| 1227 | assumes hasnodata = FALSE |
| 1228 | |
| 1229 | {{{ |
| 1230 | ST_Mean(rast, 2) |
| 1231 | }}} |
| 1232 | |
| 1233 | 3. ST_Mean(rast raster, hasnodata boolean) -> double precision |
| 1234 | |
| 1235 | assumes nband = 1 |
| 1236 | |
| 1237 | {{{ |
| 1238 | ST_Mean(rast, TRUE) |
| 1239 | }}} |
| 1240 | |
| 1241 | 4. ST_Mean(rast raster) -> double precision |
| 1242 | |
| 1243 | assumes nband = 1 and hasnodata = FALSE |
| 1244 | |
| 1245 | {{{ |
| 1246 | ST_Mean(rast) |
| 1247 | }}} |
| 1248 | |
| 1249 | The set of ST_ApproxMean functions are: |
| 1250 | |
| 1251 | 1. ST_ApproxMean(rast raster, nband int, hasnodata boolean, sample_percent double precision) -> double precision |
| 1252 | |
| 1253 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
| 1254 | |
| 1255 | {{{ |
| 1256 | ST_ApproxMean(rast, 3, FALSE, 0.1) |
| 1257 | |
| 1258 | ST_ApproxMean(rast, 1, TRUE, 0.5) |
| 1259 | }}} |
| 1260 | |
| 1261 | 2. ST_ApproxMean(rast raster, nband int, sample_percent double precision) -> double precision |
| 1262 | |
| 1263 | assumes that nband = 1 |
| 1264 | |
| 1265 | {{{ |
| 1266 | ST_ApproxMean(rast, 2 0.01) |
| 1267 | |
| 1268 | ST_ApproxMean(rast, 4, 0.025) |
| 1269 | }}} |
| 1270 | |
| 1271 | 3. ST_ApproxMean(rast raster, hasnodata boolean, sample_percent double precision) -> double precision |
| 1272 | |
| 1273 | assumes that nband = 1 |
| 1274 | |
| 1275 | {{{ |
| 1276 | ST_ApproxMean(rast, FALSE, 0.01) |
| 1277 | |
| 1278 | ST_ApproxMean(rast, TRUE, 0.025) |
| 1279 | }}} |
| 1280 | |
| 1281 | 4. ST_ApproxMean(rast raster, sample_percent double precision) -> double precision |
| 1282 | |
| 1283 | assumes that nband = 1 and hasnodata = FALSE |
| 1284 | |
| 1285 | {{{ |
| 1286 | ST_ApproxMean(rast, 0.25) |
| 1287 | }}} |
| 1288 | |
| 1289 | 5. ST_ApproxMean(rast raster) -> double precision |
| 1290 | |
| 1291 | assumes that nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
| 1292 | |
| 1293 | {{{ |
| 1294 | ST_ApproxMean(rast) |
| 1295 | }}} |
| 1296 | |
| 1297 | The following functions are provided for coverage tables. |
| 1298 | |
| 1299 | 1. ST_Mean(rastertable text, rastercolumn text, nband int, hasnodata boolean) -> double precision |
| 1300 | |
| 1301 | rastertable: name of table with raster column |
| 1302 | |
| 1303 | rastercolumn: name of column of data type raster |
| 1304 | |
| 1305 | {{{ |
| 1306 | ST_Mean('tmax_2010', 'rast', 1, FALSE) |
| 1307 | |
| 1308 | ST_Mean('precip_2011', 'rast', 1, TRUE) |
| 1309 | }}} |
| 1310 | |
| 1311 | 2. ST_Mean(rastertable text, rastercolumn text, nband int) -> double precision |
| 1312 | |
| 1313 | hasnodata = FALSE |
| 1314 | |
| 1315 | {{{ |
| 1316 | ST_Mean('tmax_2010', 'rast', 1) |
| 1317 | }}} |
| 1318 | |
| 1319 | 3. ST_Mean(rastertable text, rastercolumn text, hasnodata boolean) -> double precision |
| 1320 | |
| 1321 | nband = 1 |
| 1322 | |
| 1323 | {{{ |
| 1324 | ST_Mean('precip_2011', 'rast', TRUE) |
| 1325 | }}} |
| 1326 | |
| 1327 | 4. ST_Mean(rastertable text, rastercolumn text) -> double precision |
| 1328 | |
| 1329 | nband = 1 and hasnodata = FALSE |
| 1330 | |
| 1331 | {{{ |
| 1332 | ST_Mean('tmin_2009', 'rast') |
| 1333 | }}} |
| 1334 | |
| 1335 | Variations for ST_ApproxMean are: |
| 1336 | |
| 1337 | 1. ST_ApproxMean(rastertable text, rastercolumn text, nband int, hasnodata boolean, sample_percent double precision) -> double precision |
| 1338 | |
| 1339 | {{{ |
| 1340 | ST_ApproxMean('tmax_2010', 'rast', 1, FALSE, 0.5) |
| 1341 | |
| 1342 | ST_ApproxMean('precip_2011', 'rast', 1, TRUE, 0.2) |
| 1343 | }}} |
| 1344 | |
| 1345 | 2. ST_ApproxMean(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> double precision |
| 1346 | |
| 1347 | hasnodata = FALSE |
| 1348 | |
| 1349 | {{{ |
| 1350 | ST_ApproxMean('tmax_2010', 'rast', 1, 0.5) |
| 1351 | |
| 1352 | ST_ApproxMean('precip_2011', 'rast', 1, 0.2) |
| 1353 | }}} |
| 1354 | |
| 1355 | 3. ST_ApproxMean(rastertable text, rastercolumn text, hasnodata boolean, sample_percent double precision) -> double precision |
| 1356 | |
| 1357 | nband = 1 |
| 1358 | |
| 1359 | {{{ |
| 1360 | ST_ApproxMean('tmax_2010', 'rast', FALSE, 0.5) |
| 1361 | |
| 1362 | ST_ApproxMean('precip_2011', 'rast', TRUE, 0.2) |
| 1363 | }}} |
| 1364 | |
| 1365 | 4. ST_ApproxMean(rastertable text, rastercolumn text, sample_percent double precision) -> double precision |
| 1366 | |
| 1367 | nband = 1 and hasnodata = FALSE |
| 1368 | |
| 1369 | {{{ |
| 1370 | ST_ApproxMean('tmax_2010', 'rast', 0.5) |
| 1371 | |
| 1372 | ST_ApproxMean('precip_2011', 'rast', 0.2) |
| 1373 | }}} |
| 1374 | |
| 1375 | 5. ST_ApproxMean(rastertable text, rastercolumn text) -> double precision |
| 1376 | |
| 1377 | nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
| 1378 | |
| 1379 | {{{ |
| 1380 | ST_ApproxMean('tmax_2010', 'rast') |
| 1381 | |
| 1382 | ST_ApproxMean('precip_2011', 'rast') |
| 1383 | }}} |
| 1384 | |
| 1385 | The mean returned in the coverage functions (has rastertable and rastercolumn arguments) is a weighted mean of the means of each raster tile. |
| 1386 | |
| 1387 | ---- |
| 1388 | |
| 1389 | '''ST_StdDev(raster, nband) -> double precision'''[[BR]] |
| 1390 | This function calls ST_SummaryStats and only returns the standard deviation from that function. |
| 1391 | |
| 1392 | 1. ST_StdDev(rast raster, nband int, hasnodata boolean) -> double precision |
| 1393 | |
| 1394 | returns the standard deviation as a double precision |
| 1395 | |
| 1396 | nband: index of band |
| 1397 | |
| 1398 | hasnodata: if FALSE, any pixel who's value is nodata is ignored |
| 1399 | |
| 1400 | {{{ |
| 1401 | ST_StdDev(rast, 1, FALSE) |
| 1402 | }}} |
| 1403 | |
| 1404 | 2. ST_StdDev(rast raster, nband int) -> double precision |
| 1405 | |
| 1406 | assumes hasnodata = FALSE |
| 1407 | |
| 1408 | {{{ |
| 1409 | ST_StdDev(rast, 2) |
| 1410 | }}} |
| 1411 | |
| 1412 | 3. ST_StdDev(rast raster, hasnodata boolean) -> double precision |
| 1413 | |
| 1414 | assumes nband = 1 |
| 1415 | |
| 1416 | {{{ |
| 1417 | ST_StdDev(rast, TRUE) |
| 1418 | }}} |
| 1419 | |
| 1420 | 4. ST_StdDev(rast raster) -> double precision |
| 1421 | |
| 1422 | assumes nband = 1 and hasnodata = FALSE |
| 1423 | |
| 1424 | {{{ |
| 1425 | ST_StdDev(rast) |
| 1426 | }}} |
| 1427 | |
| 1428 | The set of ST_ApproxStdDev functions are: |
| 1429 | |
| 1430 | 1. ST_ApproxStdDev(rast raster, nband int, hasnodata boolean, sample_percent double precision) -> double precision |
| 1431 | |
| 1432 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
| 1433 | |
| 1434 | {{{ |
| 1435 | ST_ApproxStdDev(rast, 3, FALSE, 0.1) |
| 1436 | |
| 1437 | ST_ApproxStdDev(rast, 1, TRUE, 0.5) |
| 1438 | }}} |
| 1439 | |
| 1440 | 2. ST_ApproxStdDev(rast raster, nband int, sample_percent double precision) -> double precision |
| 1441 | |
| 1442 | assumes that nband = 1 |
| 1443 | |
| 1444 | {{{ |
| 1445 | ST_ApproxStdDev(rast, 2 0.01) |
| 1446 | |
| 1447 | ST_ApproxStdDev(rast, 4, 0.025) |
| 1448 | }}} |
| 1449 | |
| 1450 | 3. ST_ApproxStdDev(rast raster, hasnodata boolean, sample_percent double precision) -> double precision |
| 1451 | |
| 1452 | assumes that nband = 1 |
| 1453 | |
| 1454 | {{{ |
| 1455 | ST_ApproxStdDev(rast, FALSE, 0.01) |
| 1456 | |
| 1457 | ST_ApproxStdDev(rast, TRUE, 0.025) |
| 1458 | }}} |
| 1459 | |
| 1460 | 4. ST_ApproxStdDev(rast raster, sample_percent double precision) -> double precision |
| 1461 | |
| 1462 | assumes that nband = 1 and hasnodata = FALSE |
| 1463 | |
| 1464 | {{{ |
| 1465 | ST_ApproxStdDev(rast, 0.25) |
| 1466 | }}} |
| 1467 | |
| 1468 | 5. ST_ApproxStdDev(rast raster) -> double precision |
| 1469 | |
| 1470 | assumes that nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
| 1471 | |
| 1472 | {{{ |
| 1473 | ST_ApproxStdDev(rast) |
| 1474 | }}} |
| 1475 | |
| 1476 | The following functions are provided for coverage tables. |
| 1477 | |
| 1478 | 1. ST_StdDev(rastertable text, rastercolumn text, nband int, hasnodata boolean) -> double precision |
| 1479 | |
| 1480 | rastertable: name of table with raster column |
| 1481 | |
| 1482 | rastercolumn: name of column of data type raster |
| 1483 | |
| 1484 | {{{ |
| 1485 | ST_StdDev('tmax_2010', 'rast', 1, FALSE) |
| 1486 | |
| 1487 | ST_StdDev('precip_2011', 'rast', 1, TRUE) |
| 1488 | }}} |
| 1489 | |
| 1490 | 2. ST_StdDev(rastertable text, rastercolumn text, nband int) -> double precision |
| 1491 | |
| 1492 | hasnodata = FALSE |
| 1493 | |
| 1494 | {{{ |
| 1495 | ST_StdDev('tmax_2010', 'rast', 1) |
| 1496 | }}} |
| 1497 | |
| 1498 | 3. ST_StdDev(rastertable text, rastercolumn text, hasnodata boolean) -> double precision |
| 1499 | |
| 1500 | nband = 1 |
| 1501 | |
| 1502 | {{{ |
| 1503 | ST_StdDev('precip_2011', 'rast', TRUE) |
| 1504 | }}} |
| 1505 | |
| 1506 | 4. ST_StdDev(rastertable text, rastercolumn text) -> double precision |
| 1507 | |
| 1508 | nband = 1 and hasnodata = FALSE |
| 1509 | |
| 1510 | {{{ |
| 1511 | ST_StdDev('tmin_2009', 'rast') |
| 1512 | }}} |
| 1513 | |
| 1514 | Variations for ST_ApproxStdDev are: |
| 1515 | |
| 1516 | 1. ST_ApproxStdDev(rastertable text, rastercolumn text, nband int, hasnodata boolean, sample_percent double precision) -> double precision |
| 1517 | |
| 1518 | {{{ |
| 1519 | ST_ApproxStdDev('tmax_2010', 'rast', 1, FALSE, 0.5) |
| 1520 | |
| 1521 | ST_ApproxStdDev('precip_2011', 'rast', 1, TRUE, 0.2) |
| 1522 | }}} |
| 1523 | |
| 1524 | 2. ST_ApproxStdDev(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> double precision |
| 1525 | |
| 1526 | hasnodata = FALSE |
| 1527 | |
| 1528 | {{{ |
| 1529 | ST_ApproxStdDev('tmax_2010', 'rast', 1, 0.5) |
| 1530 | |
| 1531 | ST_ApproxStdDev('precip_2011', 'rast', 1, 0.2) |
| 1532 | }}} |
| 1533 | |
| 1534 | 3. ST_ApproxStdDev(rastertable text, rastercolumn text, hasnodata boolean, sample_percent double precision) -> double precision |
| 1535 | |
| 1536 | nband = 1 |
| 1537 | |
| 1538 | {{{ |
| 1539 | ST_ApproxStdDev('tmax_2010', 'rast', FALSE, 0.5) |
| 1540 | |
| 1541 | ST_ApproxStdDev('precip_2011', 'rast', TRUE, 0.2) |
| 1542 | }}} |
| 1543 | |
| 1544 | 4. ST_ApproxStdDev(rastertable text, rastercolumn text, sample_percent double precision) -> double precision |
| 1545 | |
| 1546 | nband = 1 and hasnodata = FALSE |
| 1547 | |
| 1548 | {{{ |
| 1549 | ST_ApproxStdDev('tmax_2010', 'rast', 0.5) |
| 1550 | |
| 1551 | ST_ApproxStdDev('precip_2011', 'rast', 0.2) |
| 1552 | }}} |
| 1553 | |
| 1554 | 5. ST_ApproxStdDev(rastertable text, rastercolumn text) -> double precision |
| 1555 | |
| 1556 | nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
| 1557 | |
| 1558 | {{{ |
| 1559 | ST_ApproxStdDev('tmax_2010', 'rast') |
| 1560 | |
| 1561 | ST_ApproxStdDev('precip_2011', 'rast') |
| 1562 | }}} |
| 1563 | |
| 1564 | The standard deviation returned in the coverage functions (has rastertable and rastercolumn arguments) is the cumulative standard deviation of all raster tiles. |
| 1565 | |
| 1566 | ---- |
| 1567 | |
| 1568 | '''ST_MinMax(raster, nband) -> record'''[[BR]] |
| 1569 | This function calls ST_SummaryStats and only returns the min and max values from that function. |
| 1570 | |
| 1571 | 1. ST_MinMax(rast raster, nband int, hasnodata boolean) -> record |
| 1572 | |
| 1573 | returns the record (min double precision, max double precision) |
| 1574 | |
| 1575 | nband: index of band |
| 1576 | |
| 1577 | hasnodata: if FALSE, any pixel who's value is nodata is ignored |
| 1578 | |
| 1579 | {{{ |
| 1580 | ST_MinMax(rast, 1, FALSE) |
| 1581 | }}} |
| 1582 | |
| 1583 | 2. ST_MinMax(rast raster, nband int) -> record |
| 1584 | |
| 1585 | assumes hasnodata = FALSE |
| 1586 | |
| 1587 | {{{ |
| 1588 | ST_MinMax(rast, 2) |
| 1589 | }}} |
| 1590 | |
| 1591 | 3. ST_MinMax(rast raster, hasnodata boolean) -> record |
| 1592 | |
| 1593 | assumes nband = 1 |
| 1594 | |
| 1595 | {{{ |
| 1596 | ST_MinMax(rast, TRUE) |
| 1597 | }}} |
| 1598 | |
| 1599 | 4. ST_MinMax(rast raster) -> record |
| 1600 | |
| 1601 | assumes nband = 1 and hasnodata = FALSE |
| 1602 | |
| 1603 | {{{ |
| 1604 | ST_MinMax(rast) |
| 1605 | }}} |
| 1606 | |
| 1607 | The set of ST_ApproxMinMax functions are: |
| 1608 | |
| 1609 | 1. ST_ApproxMinMax(rast raster, nband int, hasnodata boolean, sample_percent record) -> record |
| 1610 | |
| 1611 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider |
| 1612 | |
| 1613 | {{{ |
| 1614 | ST_ApproxMinMax(rast, 3, FALSE, 0.1) |
| 1615 | |
| 1616 | ST_ApproxMinMax(rast, 1, TRUE, 0.5) |
| 1617 | }}} |
| 1618 | |
| 1619 | 2. ST_ApproxMinMax(rast raster, nband int, sample_percent double precision) -> record |
| 1620 | |
| 1621 | assumes that nband = 1 |
| 1622 | |
| 1623 | {{{ |
| 1624 | ST_ApproxMinMax(rast, 2 0.01) |
| 1625 | |
| 1626 | ST_ApproxMinMax(rast, 4, 0.025) |
| 1627 | }}} |
| 1628 | |
| 1629 | 3. ST_ApproxMinMax(rast raster, hasnodata boolean, sample_percent double precision) -> record |
| 1630 | |
| 1631 | assumes that nband = 1 |
| 1632 | |
| 1633 | {{{ |
| 1634 | ST_ApproxMinMax(rast, FALSE, 0.01) |
| 1635 | |
| 1636 | ST_ApproxMinMax(rast, TRUE, 0.025) |
| 1637 | }}} |
| 1638 | |
| 1639 | 4. ST_ApproxMinMax(rast raster, sample_percent double precision) -> record |
| 1640 | |
| 1641 | assumes that nband = 1 and hasnodata = FALSE |
| 1642 | |
| 1643 | {{{ |
| 1644 | ST_ApproxMinMax(rast, 0.25) |
| 1645 | }}} |
| 1646 | |
| 1647 | 5. ST_ApproxMinMax(rast raster) -> record |
| 1648 | |
| 1649 | assumes that nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
| 1650 | |
| 1651 | {{{ |
| 1652 | ST_ApproxMinMax(rast) |
| 1653 | }}} |
| 1654 | |
| 1655 | The following functions are provided for coverage tables. |
| 1656 | |
| 1657 | 1. ST_MinMax(rastertable text, rastercolumn text, nband int, hasnodata boolean) -> record |
| 1658 | |
| 1659 | rastertable: name of table with raster column |
| 1660 | |
| 1661 | rastercolumn: name of column of data type raster |
| 1662 | |
| 1663 | {{{ |
| 1664 | ST_MinMax('tmax_2010', 'rast', 1, FALSE) |
| 1665 | |
| 1666 | ST_MinMax('precip_2011', 'rast', 1, TRUE) |
| 1667 | }}} |
| 1668 | |
| 1669 | 2. ST_MinMax(rastertable text, rastercolumn text, nband int) -> record |
| 1670 | |
| 1671 | hasnodata = FALSE |
| 1672 | |
| 1673 | {{{ |
| 1674 | ST_MinMax('tmax_2010', 'rast', 1) |
| 1675 | }}} |
| 1676 | |
| 1677 | 3. ST_MinMax(rastertable text, rastercolumn text, hasnodata boolean) -> record |
| 1678 | |
| 1679 | nband = 1 |
| 1680 | |
| 1681 | {{{ |
| 1682 | ST_MinMax('precip_2011', 'rast', TRUE) |
| 1683 | }}} |
| 1684 | |
| 1685 | 4. ST_MinMax(rastertable text, rastercolumn text) -> record |
| 1686 | |
| 1687 | nband = 1 and hasnodata = FALSE |
| 1688 | |
| 1689 | {{{ |
| 1690 | ST_MinMax('tmin_2009', 'rast') |
| 1691 | }}} |
| 1692 | |
| 1693 | Variations for ST_ApproxMinMax are: |
| 1694 | |
| 1695 | 1. ST_ApproxMinMax(rastertable text, rastercolumn text, nband int, hasnodata boolean, sample_percent double precision) -> record |
| 1696 | |
| 1697 | {{{ |
| 1698 | ST_ApproxMinMax('tmax_2010', 'rast', 1, FALSE, 0.5) |
| 1699 | |
| 1700 | ST_ApproxMinMax('precip_2011', 'rast', 1, TRUE, 0.2) |
| 1701 | }}} |
| 1702 | |
| 1703 | 2. ST_ApproxMinMax(rastertable text, rastercolumn text, nband int, sample_percent double precision) -> record |
| 1704 | |
| 1705 | hasnodata = FALSE |
| 1706 | |
| 1707 | {{{ |
| 1708 | ST_ApproxMinMax('tmax_2010', 'rast', 1, 0.5) |
| 1709 | |
| 1710 | ST_ApproxMinMax('precip_2011', 'rast', 1, 0.2) |
| 1711 | }}} |
| 1712 | |
| 1713 | 3. ST_ApproxMinMax(rastertable text, rastercolumn text, hasnodata boolean, sample_percent double precision) -> record |
| 1714 | |
| 1715 | nband = 1 |
| 1716 | |
| 1717 | {{{ |
| 1718 | ST_ApproxMinMax('tmax_2010', 'rast', FALSE, 0.5) |
| 1719 | |
| 1720 | ST_ApproxMinMax('precip_2011', 'rast', TRUE, 0.2) |
| 1721 | }}} |
| 1722 | |
| 1723 | 4. ST_ApproxMinMax(rastertable text, rastercolumn text, sample_percent double precision) -> record |
| 1724 | |
| 1725 | nband = 1 and hasnodata = FALSE |
| 1726 | |
| 1727 | {{{ |
| 1728 | ST_ApproxMinMax('tmax_2010', 'rast', 0.5) |
| 1729 | |
| 1730 | ST_ApproxMinMax('precip_2011', 'rast', 0.2) |
| 1731 | }}} |
| 1732 | |
| 1733 | 5. ST_ApproxMinMax(rastertable text, rastercolumn text) -> record |
| 1734 | |
| 1735 | nband = 1, hasnodata = FALSE and sample_percent = 0.1 |
| 1736 | |
| 1737 | {{{ |
| 1738 | ST_ApproxMinMax('tmax_2010', 'rast') |
| 1739 | |
| 1740 | ST_ApproxMinMax('precip_2011', 'rast') |
| 1741 | }}} |
| 1742 | |
| 1743 | ---- |
| 1744 | |
| 1745 | '''ST_Histogram(raster, nband) -> set of records'''[[BR]] |
| 1746 | ST_Histogram and ST_ApproxHistogram provide methods to determine a raster's data distribution. |
| 1747 | |
| 1748 | The return of ST_Histogram and ST_ApproxHistogram is a set of records where each record is (min, max, count, proportion). |
| 1749 | |
| 1750 | ST_Histogram has the following variations. |
| 1751 | |
| 1752 | 1. ST_Histogram(rast raster, nband int, hasnodata boolean, bins int, width double precision[], right boolean) -> set of records |
| 1753 | |
| 1754 | returns set of records of four columns (min, max, count, proportion) |
| 1755 | |
| 1756 | nband: index of band to process on |
| 1757 | |
| 1758 | hasnodata: if FALSE, any pixel who's value is nodata is ignored. |
| 1759 | |
| 1760 | 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. |
| 1761 | |
| 1762 | http://en.wikipedia.org/wiki/Histogram#Mathematical_definition |
| 1763 | |
| 1764 | 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]. |
| 1765 | |
| 1766 | 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]. |
| 1767 | |
| 1768 | {{{ |
| 1769 | ST_Histogram(rast, 2, FALSE, NULL, NULL, FALSE) |
| 1770 | |
| 1771 | ST_Histogram(rast, 1, TRUE, 100, NULL, FALSE) |
| 1772 | |
| 1773 | ST_Histogram(rast, 2, FALSE, NULL, ARRAY[100, 50], FALSE) |
| 1774 | |
| 1775 | ST_Histogram(rast, 2, FALSE, 9, ARRAY[1000], TRUE) |
| 1776 | |
| 1777 | ST_Histogram(rast, 2, FALSE, 20, ARRAY[100, 200, 300], TRUE) |
| 1778 | }}} |
| 1779 | |
| 1780 | 2. ST_Histogram(rast raster, nband int, hasnodata boolean, bins int, right boolean) -> set of records |
| 1781 | |
| 1782 | parameter "width" is not specified thus resulting in all bins having the same widths |
| 1783 | |
| 1784 | {{{ |
| 1785 | ST_Histogram(rast, 2, FALSE, 5, FALSE) |
| 1786 | }}} |
| 1787 | |
| 1788 | 3. ST_Histogram(rast raster, nband int, hasnodata boolean, bins int) -> set of records |
| 1789 | |
| 1790 | the parameter "right" is removed and assumed to be FALSE |
| 1791 | |
| 1792 | {{{ |
| 1793 | ST_Histogram(rast, 2, FALSE, 5) |
| 1794 | }}} |
| 1795 | |
| 1796 | 4. ST_Histogram(rast raster, nband int, hasnodata boolean) -> set of records |
| 1797 | |
| 1798 | the parameter "bins" is removed and set to NULL. The function will compute the number of bins to use |
| 1799 | |
| 1800 | 5. ST_Histogram(rast raster, nband int) -> set of records |
| 1801 | |
| 1802 | parameter "hasnodata" is removed and assumed to be FALSE |
| 1803 | |
| 1804 | 6. ST_Histogram(rast raster) -> set of records |
| 1805 | |
| 1806 | assumes that nband is 1. |
| 1807 | |
| 1808 | 7. ST_Histogram(rast raster, nband int, bins int, width double precision[], right boolean) -> set of records |
| 1809 | |
| 1810 | hasnodata is assumed to be FALSE |
| 1811 | |
| 1812 | 8. ST_Histogram(rast raster, nband int, bins int, right boolean) -> set of records |
| 1813 | |
| 1814 | all bins will have equal widths |
| 1815 | |
| 1816 | 9. ST_Histogram(rast raster, nband int, bins int) -> set of records |
| 1817 | |
| 1818 | right is assumed to be FALSE |
| 1819 | |
| 1820 | ST_ApproxHistogram should have the following variations. |
| 1821 | |
| 1822 | 1. ST_ApproxHistogram(rast raster, nband int, hasnodata boolean, sample_percent double precision, bins int, width double precision[], right boolean) -> set of record |
| 1823 | |
| 1824 | sample_percent: a value between 0 and 1 indicating the percentage of the raster band's pixels to consider when generating the histogram. |
| 1825 | |
| 1826 | {{{ |
| 1827 | ST_Histogram(rast, 2, FALSE, 0.1, NULL, NULL, FALSE) |
| 1828 | |
| 1829 | ST_Histogram(rast, 1, TRUE, 1, 100, NULL, FALSE) |
| 1830 | |
| 1831 | ST_Histogram(rast, 2, FALSE, 0.2, NULL, ARRAY[100, 50], FALSE) |
| 1832 | |
| 1833 | ST_Histogram(rast, 2, FALSE, 0.25, 9, ARRAY[1000], TRUE) |
| 1834 | |
| 1835 | ST_Histogram(rast, 2, FALSE, 0.05, 20, ARRAY[100, 200, 300], TRUE) |
| 1836 | }}} |
| 1837 | |
| 1838 | 2. ST_ApproxHistogram(rast raster, nband int, hasnodata boolean, sample_percent double precision, bins int, right boolean) -> set of records |
| 1839 | |
| 1840 | parameter "width" is not specified thus resulting in all bins having the same widths |
| 1841 | |
| 1842 | 3. ST_ApproxHistogram(rast raster, nband int, hasnodata boolean, sample_percent double precision, bins int) -> set of records |
| 1843 | |
| 1844 | the parameter "right" is removed and assumed to be FALSE |
| 1845 | |
| 1846 | {{{ |
| 1847 | ST_ApproxHistogram(rast, 2, FALSE, 5) |
| 1848 | }}} |
| 1849 | |
| 1850 | 4. ST_ApproxHistogram(rast raster, nband int, hasnodata boolean, sample_percent double precision) -> set of records |
| 1851 | |
| 1852 | the parameter "bins" is removed and set to NULL so that function can compute the number of bins to use |
| 1853 | |
| 1854 | 5. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision) -> set of records |
| 1855 | |
| 1856 | parameter "hasnodata" is removed and assumed to be FALSE |
| 1857 | |
| 1858 | 6. ST_ApproxHistogram(rast raster, nband int) -> set of records |
| 1859 | |
| 1860 | assumes that sample_percent is 0.1 |
| 1861 | |
| 1862 | 7. ST_ApproxHistogram(rast raster, sample_percent double_precision) -> set of records |
| 1863 | |
| 1864 | assumes that nband is 1 |
| 1865 | |
| 1866 | 8. ST_ApproxHistogram(rast raster) -> set of records |
| 1867 | |
| 1868 | assumes that nband is 1 and sample_percent is 0.1 |
| 1869 | |
| 1870 | 9. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int, width double precision[], right boolean) -> set of records |
| 1871 | |
| 1872 | hasnodata is assumed to be FALSE |
| 1873 | |
| 1874 | 10. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int, right boolean) -> set of records |
| 1875 | |
| 1876 | all bins will have equal widths |
| 1877 | |
| 1878 | 11. ST_ApproxHistogram(rast raster, nband int, sample_percent double precision, bins int) -> set of records |
| 1879 | |
| 1880 | right is assumed to be FALSE |
| 1881 | |
| 1882 | ---- |