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

jsorel pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git

commit d3b056299bd2872e4e4baaf117e0c2d5e96a8a74
Author: jsorel <[email protected]>
AuthorDate: Fri Aug 8 15:55:56 2025 +0200

    Fix unsupported infinite and nan values in coveragejson
---
 .../sis/storage/coveragejson/CoverageJsonStoreProvider.java       | 5 +++--
 .../org/apache/sis/storage/coveragejson/CoverageResource.java     | 8 +++++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git 
a/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageJsonStoreProvider.java
 
b/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageJsonStoreProvider.java
index 723c9e6e8a..e4ab613434 100644
--- 
a/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageJsonStoreProvider.java
+++ 
b/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageJsonStoreProvider.java
@@ -26,6 +26,7 @@ import org.apache.sis.storage.DataStoreProvider;
 import org.apache.sis.storage.GridCoverageResource;
 import org.apache.sis.storage.ProbeResult;
 import org.apache.sis.storage.StorageConnector;
+import org.apache.sis.storage.WritableAggregate;
 import org.apache.sis.storage.base.Capability;
 import org.apache.sis.storage.base.StoreMetadata;
 import org.apache.sis.storage.base.URIDataStoreProvider;
@@ -44,8 +45,8 @@ import org.apache.sis.util.Version;
  */
 @StoreMetadata(formatName    = CoverageJsonStoreProvider.NAME,
                fileSuffixes  = {"covjson"},
-               capabilities  = Capability.READ,
-               resourceTypes = {Aggregate.class, GridCoverageResource.class})
+               capabilities  = {Capability.READ, Capability.CREATE, 
Capability.WRITE},
+               resourceTypes = {WritableAggregate.class, 
GridCoverageResource.class})
 public class CoverageJsonStoreProvider extends DataStoreProvider {
 
     public static final String NAME = "CoverageJSON";
diff --git 
a/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageResource.java
 
b/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageResource.java
index 0af27f6fab..c7fa60c943 100644
--- 
a/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageResource.java
+++ 
b/incubator/src/org.apache.sis.storage.coveragejson/main/org/apache/sis/storage/coveragejson/CoverageResource.java
@@ -669,7 +669,13 @@ final class CoverageResource extends 
AbstractGridCoverageResource {
         while (ite.next()) {
             ite.getPixel(pixel);
             for (int i = 0; i < nbSample; i++) {
-                arrays[i].values.add(pixel[i]);
+                double v = pixel[i];
+                if (!Double.isFinite(v)) {
+                    //json do not want infinite or NaN
+                    arrays[i].values.add(null);
+                } else {
+                    arrays[i].values.add(v);
+                }
             }
         }
 

Reply via email to