From 4148b3b9be60d787d7062515fb0063840e0162a5 Mon Sep 17 00:00:00 2001 From: Chad Burt Date: Thu, 10 Oct 2024 19:55:44 -0700 Subject: [PATCH] Fix exception when attempting to calculate ckmeans for more buckets than there are unique values --- .../src/rasterInfoForBands.ts | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/packages/spatial-uploads-handler/src/rasterInfoForBands.ts b/packages/spatial-uploads-handler/src/rasterInfoForBands.ts index d050e56c..dc12f2ee 100644 --- a/packages/spatial-uploads-handler/src/rasterInfoForBands.ts +++ b/packages/spatial-uploads-handler/src/rasterInfoForBands.ts @@ -249,19 +249,21 @@ export async function rasterInfoForBands( n, quantileBuckets(sampledPixelValues, n, b.minimum, b.maximum, true, true) ); - addBuckets( - b.stats.naturalBreaks, - n, - naturalBreaksBuckets( - sampledPixelValues, + if (sampledPixelValues.length > n) { + addBuckets( + b.stats.naturalBreaks, n, - b.stats.histogram.length, - b.minimum, - b.maximum, - 10000, - true - ) - ); + naturalBreaksBuckets( + sampledPixelValues, + n, + b.stats.histogram.length, + b.minimum, + b.maximum, + 10000, + true + ) + ); + } // Seems to be a quirk in the library where it returns -9999 for stdev when it can't be calculated if (b.stats.stdev !== -9999) { addBuckets(