This is an automated email from the ASF dual-hosted git repository.

jiayu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sedona.git


The following commit(s) were added to refs/heads/master by this push:
     new e37781936 [SEDONA-509] Add Single Statistic version of RS_SummaryStats 
(#1266)
e37781936 is described below

commit e3778193698e02cf6bf5a605035b6c6f1758d0f6
Author: Pranav Toggi <[email protected]>
AuthorDate: Mon Mar 11 02:34:15 2024 -0400

    [SEDONA-509] Add Single Statistic version of RS_SummaryStats (#1266)
    
    * Implement single output RS_SummaryStats
    
    * Update docs
    
    * Fix comments
    
    * Separate out single stat functionality as RS_SummaryStat
    
    * Update doc
    
    * Rename: RS_SummaryStats -> RS_SummaryStatsAll; RS_SummaryStat -> 
RS_SummaryStats
---
 .../sedona/common/raster/RasterBandAccessors.java  | 40 +++++++++--
 .../common/raster/RasterBandAccessorsTest.java     | 77 ++++++++++++++++++----
 .../common/raster/RasterBandEditorsTest.java       | 31 ++++++++-
 docs/api/sql/Raster-operators.md                   | 51 ++++++++++++--
 .../scala/org/apache/sedona/sql/UDF/Catalog.scala  |  1 +
 .../expressions/raster/RasterBandAccessors.scala   | 12 +++-
 .../org/apache/sedona/sql/rasteralgebraTest.scala  | 29 +++++++-
 7 files changed, 210 insertions(+), 31 deletions(-)

diff --git 
a/common/src/main/java/org/apache/sedona/common/raster/RasterBandAccessors.java 
b/common/src/main/java/org/apache/sedona/common/raster/RasterBandAccessors.java
index 880ca803e..7022a503c 100644
--- 
a/common/src/main/java/org/apache/sedona/common/raster/RasterBandAccessors.java
+++ 
b/common/src/main/java/org/apache/sedona/common/raster/RasterBandAccessors.java
@@ -301,7 +301,35 @@ public class RasterBandAccessors {
         return statObjects;
     }
 
-    public static double[] getSummaryStats(GridCoverage2D rasterGeom, int 
band, boolean excludeNoDataValue) {
+    public static double getSummaryStats(GridCoverage2D rasterGeom, String 
statType, int band, boolean excludeNoDataValue) {
+        double[] stats = 
getSummaryStatsAll(rasterGeom,band,excludeNoDataValue);
+
+        if ("count".equalsIgnoreCase(statType)) {
+            return stats[0];
+        } else if ("sum".equalsIgnoreCase(statType)) {
+            return stats[1];
+        } else if ("mean".equalsIgnoreCase(statType)) {
+            return stats[2];
+        } else if ("stddev".equalsIgnoreCase(statType)) {
+            return stats[3];
+        } else if ("min".equalsIgnoreCase(statType)) {
+            return stats[4];
+        } else if ("max".equalsIgnoreCase(statType)) {
+            return stats[5];
+        } else {
+            throw new IllegalArgumentException("Invalid 'statType': '" + 
statType + "'. Expected one of: 'count', 'sum', 'mean', 'stddev', 'min', 
'max'.");
+        }
+    }
+
+    public static double getSummaryStats(GridCoverage2D rasterGeom, String 
statType, int band) {
+        return getSummaryStats(rasterGeom, statType, band, true);
+    }
+
+    public static double getSummaryStats(GridCoverage2D rasterGeom, String 
statType) {
+        return getSummaryStats(rasterGeom, statType, 1, true);
+    }
+
+    public static double[] getSummaryStatsAll(GridCoverage2D rasterGeom, int 
band, boolean excludeNoDataValue) {
         RasterUtils.ensureBand(rasterGeom, band);
         Raster raster = RasterUtils.getRaster(rasterGeom.getRenderedImage());
         int height = RasterAccessors.getHeight(rasterGeom), width = 
RasterAccessors.getWidth(rasterGeom);
@@ -312,7 +340,7 @@ public class RasterBandAccessors {
         if (excludeNoDataValue) {
             pixelData = new ArrayList<>();
             Double noDataValue = 
RasterBandAccessors.getBandNoDataValue(rasterGeom, band);
-            for (double pixel: pixels) {
+            for (double pixel : pixels) {
                 if (noDataValue == null || pixel != noDataValue) {
                     pixelData.add(pixel);
                 }
@@ -340,12 +368,12 @@ public class RasterBandAccessors {
         return new double[]{count, sum, mean, stddev, min, max};
     }
 
-    public static double[] getSummaryStats(GridCoverage2D raster, int band) {
-        return getSummaryStats(raster, band, true);
+    public static double[] getSummaryStatsAll(GridCoverage2D raster, int band) 
{
+        return getSummaryStatsAll(raster, band, true);
     }
 
-    public static double[] getSummaryStats(GridCoverage2D raster) {
-        return getSummaryStats(raster, 1, true);
+    public static double[] getSummaryStatsAll(GridCoverage2D raster) {
+        return getSummaryStatsAll(raster, 1, true);
     }
 
 //  Adding the function signature when InferredExpression supports function 
with same arity but different argument types
diff --git 
a/common/src/test/java/org/apache/sedona/common/raster/RasterBandAccessorsTest.java
 
b/common/src/test/java/org/apache/sedona/common/raster/RasterBandAccessorsTest.java
index 17fedd854..306aed86f 100644
--- 
a/common/src/test/java/org/apache/sedona/common/raster/RasterBandAccessorsTest.java
+++ 
b/common/src/test/java/org/apache/sedona/common/raster/RasterBandAccessorsTest.java
@@ -20,8 +20,6 @@
 package org.apache.sedona.common.raster;
 
 import org.apache.sedona.common.Constructors;
-import org.apache.sedona.common.Functions;
-import org.apache.sedona.common.FunctionsGeoTools;
 import org.geotools.coverage.grid.GridCoverage2D;
 import org.junit.Test;
 import org.locationtech.jts.geom.Geometry;
@@ -207,47 +205,102 @@ public class RasterBandAccessorsTest extends 
RasterTestBase {
     }
 
     @Test
-    public void testSummaryStatsWithAllNoData() throws FactoryException {
+    public void testSummaryStatsAllWithAllNoData() throws FactoryException {
         GridCoverage2D emptyRaster = RasterConstructors.makeEmptyRaster(1, 5, 
5, 0, 0, 1, -1, 0, 0, 0);
         double[] values = new double[] 
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
         emptyRaster = MapAlgebra.addBandFromArray(emptyRaster, values, 1, 0d);
-        double[] actual = RasterBandAccessors.getSummaryStats(emptyRaster);
+        double[] actual = RasterBandAccessors.getSummaryStatsAll(emptyRaster);
         double[] expected = {0.0, 0.0, Double.NaN, Double.NaN, Double.NaN, 
Double.NaN};
         assertArrayEquals(expected, actual, FP_TOLERANCE);
     }
 
     @Test
-    public void testSummaryStatsWithEmptyRaster() throws FactoryException {
+    public void testSummaryStats() throws FactoryException, IOException {
         GridCoverage2D emptyRaster = RasterConstructors.makeEmptyRaster(2, 5, 
5, 0, 0, 1, -1, 0, 0, 0);
         double[] values1 = new double[] 
{1,2,0,0,0,0,7,8,0,10,11,0,0,0,0,16,17,0,19,20,21,0,23,24,25};
         double[] values2 = new double[] 
{0,0,28,29,0,0,0,33,34,35,36,37,38,0,0,0,0,43,44,45,46,47,48,49,50};
         emptyRaster = MapAlgebra.addBandFromArray(emptyRaster, values1, 1, 0d);
         emptyRaster = MapAlgebra.addBandFromArray(emptyRaster, values2, 2, 0d);
-        double[] actual = RasterBandAccessors.getSummaryStats(emptyRaster, 1, 
false);
+
+        GridCoverage2D raster = rasterFromGeoTiff(resourceFolder + 
"raster/raster_with_no_data/test5.tiff");
+
+        double actual = RasterBandAccessors.getSummaryStats(emptyRaster, 
"count", 2, true);
+        double expected = 16.0;
+        assertEquals(expected, actual, FP_TOLERANCE);
+
+        actual = RasterBandAccessors.getSummaryStats(emptyRaster, "sum", 2, 
true);
+        expected = 642.0;
+        assertEquals(expected, actual, FP_TOLERANCE);
+
+        actual = RasterBandAccessors.getSummaryStats(emptyRaster, "mean", 2, 
true);
+        expected = 40.125;
+        assertEquals(expected, actual, FP_TOLERANCE);
+
+        actual = RasterBandAccessors.getSummaryStats(emptyRaster, "stddev", 2, 
true);
+        expected = 6.9988838395847095;
+        assertEquals(expected, actual, FP_TOLERANCE);
+
+        actual = RasterBandAccessors.getSummaryStats(emptyRaster, "min", 2, 
true);
+        expected = 28.0;
+        assertEquals(expected, actual, FP_TOLERANCE);
+
+        actual = RasterBandAccessors.getSummaryStats(emptyRaster, "max", 2, 
true);
+        expected = 50.0;
+        assertEquals(expected, actual, FP_TOLERANCE);
+
+        actual = RasterBandAccessors.getSummaryStats(raster, "count", 1, 
false);
+        expected = 1036800.0;
+        assertEquals(expected, actual, FP_TOLERANCE);
+
+        actual = RasterBandAccessors.getSummaryStats(raster, "sum", 1, false);
+        expected = 2.06233487E8;
+        assertEquals(expected, actual, FP_TOLERANCE);
+
+        actual = RasterBandAccessors.getSummaryStats(raster, "mean", 1, false);
+        expected = 198.91347125792052;
+        assertEquals(expected, actual, FP_TOLERANCE);
+
+        actual = RasterBandAccessors.getSummaryStats(raster, "stddev", 1, 
false);
+        expected = 95.09054096111336;
+        assertEquals(expected, actual, FP_TOLERANCE);
+
+        actual = RasterBandAccessors.getSummaryStats(raster, "min", 1, false);
+        expected = 0.0;
+        assertEquals(expected, actual, FP_TOLERANCE);
+    }
+
+    @Test
+    public void testSummaryStatsAllWithEmptyRaster() throws FactoryException {
+        GridCoverage2D emptyRaster = RasterConstructors.makeEmptyRaster(2, 5, 
5, 0, 0, 1, -1, 0, 0, 0);
+        double[] values1 = new double[] 
{1,2,0,0,0,0,7,8,0,10,11,0,0,0,0,16,17,0,19,20,21,0,23,24,25};
+        double[] values2 = new double[] 
{0,0,28,29,0,0,0,33,34,35,36,37,38,0,0,0,0,43,44,45,46,47,48,49,50};
+        emptyRaster = MapAlgebra.addBandFromArray(emptyRaster, values1, 1, 0d);
+        emptyRaster = MapAlgebra.addBandFromArray(emptyRaster, values2, 2, 0d);
+        double[] actual = RasterBandAccessors.getSummaryStatsAll(emptyRaster, 
1, false);
         double[] expected = {25.0, 204.0, 8.1600, 9.2765, 0.0, 25.0};
         assertArrayEquals(expected, actual, FP_TOLERANCE);
 
-        actual = RasterBandAccessors.getSummaryStats(emptyRaster, 2);
+        actual = RasterBandAccessors.getSummaryStatsAll(emptyRaster, 2);
         expected = new double[]{16.0, 642.0, 40.125, 6.9988838395847095, 28.0, 
50.0};
         assertArrayEquals(expected, actual, FP_TOLERANCE);
 
-        actual = RasterBandAccessors.getSummaryStats(emptyRaster);
+        actual = RasterBandAccessors.getSummaryStatsAll(emptyRaster);
         expected = new double[] {14.0, 204.0, 14.5714, 7.7617, 1.0, 25.0};
         assertArrayEquals(expected, actual, FP_TOLERANCE);
     }
 
     @Test
-    public void testSummaryStatsWithRaster() throws IOException {
+    public void testSummaryStatsAllWithRaster() throws IOException {
         GridCoverage2D raster = rasterFromGeoTiff(resourceFolder + 
"raster/raster_with_no_data/test5.tiff");
-        double[] actual = RasterBandAccessors.getSummaryStats(raster, 1, 
false);
+        double[] actual = RasterBandAccessors.getSummaryStatsAll(raster, 1, 
false);
         double[] expected = {1036800.0, 2.06233487E8, 198.9134, 95.0905, 0.0, 
255.0};
         assertArrayEquals(expected, actual, FP_TOLERANCE);
 
-        actual = RasterBandAccessors.getSummaryStats(raster, 1);
+        actual = RasterBandAccessors.getSummaryStatsAll(raster, 1);
         expected = new double[]{928192.0, 2.06233487E8, 222.1883, 70.2055, 
1.0, 255.0};
         assertArrayEquals(expected, actual, FP_TOLERANCE);
 
-        actual = RasterBandAccessors.getSummaryStats(raster);
+        actual = RasterBandAccessors.getSummaryStatsAll(raster);
         assertArrayEquals(expected, actual, FP_TOLERANCE);
     }
 
diff --git 
a/common/src/test/java/org/apache/sedona/common/raster/RasterBandEditorsTest.java
 
b/common/src/test/java/org/apache/sedona/common/raster/RasterBandEditorsTest.java
index 9754d5b5e..78af992c0 100644
--- 
a/common/src/test/java/org/apache/sedona/common/raster/RasterBandEditorsTest.java
+++ 
b/common/src/test/java/org/apache/sedona/common/raster/RasterBandEditorsTest.java
@@ -64,15 +64,40 @@ public class RasterBandEditorsTest extends RasterTestBase{
         assertEquals(expected, actual);
     }
 
+    @Test
+    public void testGetSummaryStats() throws IOException {
+        GridCoverage2D raster = rasterFromGeoTiff(resourceFolder + 
"raster/raster_with_no_data/test5.tiff");
+        raster = RasterBandEditors.setBandNoDataValue(raster, 1, 10.0, true);
+
+        // Test single output
+        double resultSummary = RasterBandAccessors.getSummaryStats(raster, 
"count", 1, false);
+        assertEquals(1036800, (int) resultSummary);
+
+        resultSummary = RasterBandAccessors.getSummaryStats(raster, "sum", 1, 
false);
+        assertEquals(207319567, (int) resultSummary);
+
+        resultSummary = RasterBandAccessors.getSummaryStats(raster, "mean", 1, 
false);
+        assertEquals(199, (int) resultSummary);
+
+        resultSummary = RasterBandAccessors.getSummaryStats(raster, "stddev", 
1, false);
+        assertEquals(92, (int) resultSummary);
+
+        resultSummary = RasterBandAccessors.getSummaryStats(raster, "min", 1, 
false);
+        assertEquals(1, (int) resultSummary);
+
+        resultSummary = RasterBandAccessors.getSummaryStats(raster, "max", 1, 
false);
+        assertEquals(255, (int) resultSummary);
+    }
+
     @Test
     public void testSetBandNoDataValueWithReplaceOptionRaster() throws 
IOException {
         GridCoverage2D raster = rasterFromGeoTiff(resourceFolder + 
"raster/raster_with_no_data/test5.tiff");
-        double[] originalSummary = RasterBandAccessors.getSummaryStats(raster, 
1, false);
+        double[] originalSummary = 
RasterBandAccessors.getSummaryStatsAll(raster, 1, false);
         int sumOG = (int) originalSummary[1];
 
         assertEquals(206233487, sumOG);
         GridCoverage2D resultRaster = 
RasterBandEditors.setBandNoDataValue(raster, 1, 10.0, true);
-        double[] resultSummary = 
RasterBandAccessors.getSummaryStats(resultRaster, 1, false);
+        double[] resultSummary = 
RasterBandAccessors.getSummaryStatsAll(resultRaster, 1, false);
         int sumActual = (int) resultSummary[1];
 
         // 108608 is the total no-data values in the raster
@@ -82,7 +107,7 @@ public class RasterBandEditorsTest extends RasterTestBase{
 
         // Not replacing previous no-data value
         resultRaster = RasterBandEditors.setBandNoDataValue(raster, 1, 10.0);
-        resultSummary = RasterBandAccessors.getSummaryStats(resultRaster, 1, 
false);
+        resultSummary = RasterBandAccessors.getSummaryStatsAll(resultRaster, 
1, false);
         sumActual = (int) resultSummary[1];
         assertEquals(sumOG, sumActual);
     }
diff --git a/docs/api/sql/Raster-operators.md b/docs/api/sql/Raster-operators.md
index a3b75dbd8..9d58c8930 100644
--- a/docs/api/sql/Raster-operators.md
+++ b/docs/api/sql/Raster-operators.md
@@ -1035,6 +1035,45 @@ Output:
 
 ### RS_SummaryStats
 
+Introduction: Returns summary statistic for a particular band based on the 
`statType` parameter. The function defaults to band index of `1` when `band` is 
not specified and excludes noDataValue if `excludeNoDataValue` is not specified.
+
+`statType` parameter takes the following strings:
+
+- `count`: Total count of all pixels in the specified band
+- `sum`: Sum of all pixel values in the specified band
+- `mean`: Mean value of all pixel values in the specified band
+- `stddev`: Standard deviation of all pixels in the specified band
+- `min`: Minimum pixel value in the specified band
+- `max`: Maximum pixel value in the specified band
+
+!!!Note
+    If excludeNoDataValue is set `true` then it will only count pixels with 
value not equal to the nodata value of the raster.
+    Set excludeNoDataValue to `false` to get count of all pixels in raster.
+
+Formats:
+
+`RS_SummaryStats(raster: Raster, statType: String, band: Integer = 1, 
excludeNoDataValue: Boolean = true)`
+
+`RS_SummaryStats(raster: Raster, statType: String, band: Integer = 1)`
+
+`RS_SummaryStats(raster: Raster, statType: String)`
+
+Since: `v1.6.0`
+
+SQL Example
+
+```sql
+SELECT RS_SummaryStats(RS_MakeEmptyRaster(2, 5, 5, 0, 0, 1, -1, 0, 0, 0), 
"stddev", 1, false)
+```
+
+Output:
+
+```
+9.4678403028357
+```
+
+### RS_SummaryStatsAll
+
 Introduction: Returns summary stats consisting of count, sum, mean, stddev, 
min, max for a given band in raster. If band is not specified then it defaults 
to `1`.
 
 !!!Note
@@ -1044,18 +1083,20 @@ Introduction: Returns summary stats consisting of 
count, sum, mean, stddev, min,
 !!!Note
     If the mentioned band index doesn't exist, this will throw an 
`IllegalArgumentException`.
 
-`RS_SummaryStats(raster: Raster, band: Integer = 1, excludeNoDataValue: 
Boolean = true)`
+Formats:
+
+`RS_SummaryStatsAll(raster: Raster, band: Integer = 1, excludeNoDataValue: 
Boolean = true)`
 
-`RS_SummaryStats(raster: Raster, band: Integer = 1)`
+`RS_SummaryStatsAll(raster: Raster, band: Integer = 1)`
 
-`RS_SummaryStats(raster: Raster)`
+`RS_SummaryStatsAll(raster: Raster)`
 
 Since: `v1.5.0`
 
 SQL Example
 
 ```sql
-SELECT RS_SummaryStats(RS_MakeEmptyRaster(2, 5, 5, 0, 0, 1, -1, 0, 0, 0), 1, 
false)
+SELECT RS_SummaryStatsAll(RS_MakeEmptyRaster(2, 5, 5, 0, 0, 1, -1, 0, 0, 0), 
1, false)
 ```
 
 Output:
@@ -1067,7 +1108,7 @@ Output:
 SQL Example
 
 ```sql
-SELECT RS_SummaryStats(RS_MakeEmptyRaster(2, 5, 5, 0, 0, 1, -1, 0, 0, 0), 1)
+SELECT RS_SummaryStatsAll(RS_MakeEmptyRaster(2, 5, 5, 0, 0, 1, -1, 0, 0, 0), 1)
 ```
 
 Output:
diff --git 
a/spark/common/src/main/scala/org/apache/sedona/sql/UDF/Catalog.scala 
b/spark/common/src/main/scala/org/apache/sedona/sql/UDF/Catalog.scala
index db9fe9d09..c49bc3ebd 100644
--- a/spark/common/src/main/scala/org/apache/sedona/sql/UDF/Catalog.scala
+++ b/spark/common/src/main/scala/org/apache/sedona/sql/UDF/Catalog.scala
@@ -249,6 +249,7 @@ object Catalog {
     function[RS_Clip](),
     function[RS_Band](),
     function[RS_AddBand](),
+    function[RS_SummaryStatsAll](),
     function[RS_SummaryStats](),
     function[RS_BandIsNoData](),
     function[RS_ConvexHull](),
diff --git 
a/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/expressions/raster/RasterBandAccessors.scala
 
b/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/expressions/raster/RasterBandAccessors.scala
index 11b415240..12c1a0adb 100644
--- 
a/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/expressions/raster/RasterBandAccessors.scala
+++ 
b/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/expressions/raster/RasterBandAccessors.scala
@@ -64,8 +64,16 @@ case class RS_ZonalStatsAll(inputExpressions: 
Seq[Expression]) extends InferredE
 }
 
 case class RS_SummaryStats(inputExpressions: Seq[Expression]) extends 
InferredExpression(
-  inferrableFunction1(RasterBandAccessors.getSummaryStats), 
inferrableFunction2(RasterBandAccessors.getSummaryStats),
-  inferrableFunction3(RasterBandAccessors.getSummaryStats)) {
+  inferrableFunction2(RasterBandAccessors.getSummaryStats), 
inferrableFunction3(RasterBandAccessors.getSummaryStats),
+  inferrableFunction4(RasterBandAccessors.getSummaryStats)) {
+  protected def withNewChildrenInternal(newChildren: IndexedSeq[Expression]) = 
{
+    copy(inputExpressions = newChildren)
+  }
+}
+
+case class RS_SummaryStatsAll(inputExpressions: Seq[Expression]) extends 
InferredExpression(
+  inferrableFunction1(RasterBandAccessors.getSummaryStatsAll), 
inferrableFunction2(RasterBandAccessors.getSummaryStatsAll),
+  inferrableFunction3(RasterBandAccessors.getSummaryStatsAll)) {
   protected def withNewChildrenInternal(newChildren: IndexedSeq[Expression]) = 
{
     copy(inputExpressions = newChildren)
   }
diff --git 
a/spark/common/src/test/scala/org/apache/sedona/sql/rasteralgebraTest.scala 
b/spark/common/src/test/scala/org/apache/sedona/sql/rasteralgebraTest.scala
index 6d7a9cf51..2ac6245d7 100644
--- a/spark/common/src/test/scala/org/apache/sedona/sql/rasteralgebraTest.scala
+++ b/spark/common/src/test/scala/org/apache/sedona/sql/rasteralgebraTest.scala
@@ -1040,7 +1040,30 @@ class rasteralgebraTest extends TestBaseScala with 
BeforeAndAfter with GivenWhen
     it("Passed RS_SummaryStats with raster") {
       var df = sparkSession.read.format("binaryFile").load(resourceFolder + 
"raster/raster_with_no_data/test5.tiff")
       df = df.selectExpr("RS_FromGeoTiff(content) as raster")
-      var actual = df.selectExpr("RS_SummaryStats(raster, 1, 
false)").first().getSeq(0)
+
+      var actual = df.selectExpr("RS_SummaryStats(raster, 
'count')").first().getDouble(0)
+      assertEquals(928192.0, actual, 0.1d)
+
+      actual = df.selectExpr("RS_SummaryStats(raster, 'sum', 
1)").first().getDouble(0)
+      assertEquals(2.06233487E8, actual, 0.1d)
+
+      actual = df.selectExpr("RS_SummaryStats(raster, 'mean', 1, 
false)").first().getDouble(0)
+      assertEquals(198.91347125771605, actual, 0.1d)
+
+      actual = df.selectExpr("RS_SummaryStats(raster, 'stddev', 1, 
false)").first().getDouble(0)
+      assertEquals(95.09054096106192, actual, 0.1d)
+
+      actual = df.selectExpr("RS_SummaryStats(raster, 'min', 1, 
false)").first().getDouble(0)
+      assertEquals(0.0, actual, 0.1d)
+
+      actual = df.selectExpr("RS_SummaryStats(raster, 'max', 1, 
false)").first().getDouble(0)
+      assertEquals(255.0, actual, 0.1d)
+    }
+
+    it("Passed RS_SummaryStatsAll with raster") {
+      var df = sparkSession.read.format("binaryFile").load(resourceFolder + 
"raster/raster_with_no_data/test5.tiff")
+      df = df.selectExpr("RS_FromGeoTiff(content) as raster")
+      var actual = df.selectExpr("RS_SummaryStatsAll(raster, 1, 
false)").first().getSeq(0)
       assertEquals(1036800.0, actual.head, 0.1d)
       assertEquals(2.06233487E8, actual(1), 0.1d)
       assertEquals(198.91347125771605, actual(2), 1e-6d)
@@ -1048,7 +1071,7 @@ class rasteralgebraTest extends TestBaseScala with 
BeforeAndAfter with GivenWhen
       assertEquals(0.0, actual(4), 0.1d)
       assertEquals(255.0, actual(5), 0.1d)
 
-      actual = df.selectExpr("RS_SummaryStats(raster, 1)").first().getSeq(0)
+      actual = df.selectExpr("RS_SummaryStatsAll(raster, 1)").first().getSeq(0)
       assertEquals(928192.0, actual.head, 0.1d)
       assertEquals(2.06233487E8, actual(1), 0.1d)
       assertEquals(222.18839097945252, actual(2), 1e-6d)
@@ -1056,7 +1079,7 @@ class rasteralgebraTest extends TestBaseScala with 
BeforeAndAfter with GivenWhen
       assertEquals(1.0, actual(4), 0.1d)
       assertEquals(255.0, actual(5), 0.1d)
 
-      actual = df.selectExpr("RS_SummaryStats(raster)").first().getSeq(0)
+      actual = df.selectExpr("RS_SummaryStatsAll(raster)").first().getSeq(0)
       assertEquals(928192.0, actual.head, 0.1d)
       assertEquals(2.06233487E8, actual(1), 0.1d)
       assertEquals(222.18839097945252, actual(2), 1e-6d)

Reply via email to