From f93b5367c49176c0ff5b97faf8efaa1d0c51863c Mon Sep 17 00:00:00 2001 From: Daniel Mannarino Date: Sat, 30 Nov 2024 21:23:56 -0500 Subject: [PATCH] Sanitize geojsons for NaN values --- batch/python/tiles_geojson.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/batch/python/tiles_geojson.py b/batch/python/tiles_geojson.py index 3c5caa75..9959a238 100644 --- a/batch/python/tiles_geojson.py +++ b/batch/python/tiles_geojson.py @@ -1,7 +1,8 @@ import json +import math import subprocess from concurrent.futures import ProcessPoolExecutor, as_completed -from typing import List, Dict, Any +from typing import List, Dict, Any, Optional from geojson import Feature, FeatureCollection from shapely.geometry import Polygon from shapely.ops import unary_union @@ -30,7 +31,13 @@ def extract_metadata_from_gdalinfo(gdalinfo_json: Dict[str, Any]) -> Dict[str, A bands = [ { "data_type": band.get("type", None), - "no_data": band.get("noDataValue", None), + "no_data": ( + "nan" if ( + band.get("noDataValue", None) is not None + and math.isnan(band.get("noDataValue")) + ) + else band.get("noDataValue", None) + ), "nbits": band.get("metadata", {}).get("IMAGE_STRUCTURE", {}).get("NBITS", None), "blockxsize": band.get("block", [None])[0], "blockysize": band.get("block", [None])[1],