瀏覽代碼

r.external: read nan as nan (#338)

Fixes #329. atof() on windows can not read "nan" and returns 0 (zero) instead. Using Rast_set_d_null_value() in this case to set nan directly.
Markus Metz 5 年之前
父節點
當前提交
87c52954e2
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      lib/raster/gdal.c

+ 4 - 1
lib/raster/gdal.c

@@ -286,8 +286,11 @@ struct GDAL_link *Rast_get_gdal_link(const char *name, const char *mapset)
     p = G_find_key_value("null", key_val);
     p = G_find_key_value("null", key_val);
     if (!p)
     if (!p)
 	return NULL;
 	return NULL;
-    if (strcmp(p, "none") == 0)
+    /* atof on windows can not read "nan" and returns 0 instead */
+    if (strcmp(p, "none") == 0 ||
+        G_strcasecmp(p, "nan") == 0 || G_strcasecmp(p, "-nan") == 0) {
 	Rast_set_d_null_value(&null_val, 1);
 	Rast_set_d_null_value(&null_val, 1);
+    }
     else
     else
 	null_val = atof(p);
 	null_val = atof(p);