writeRaster(disater_r_mask, filename= "./实验/白银区_drought.tif", format="GTiff", overwrite=TRUE) # need english path and filename
错误如下:
.local(.Object,...)出错:数据集复制失败
当我将路径和文件名更改为英语时,结果是可以的。 但是,我想使用中文路径和文件名。 如何解决?
答案 0 :(得分:1)
这是一个可重复的例子:
switch(year.length()){
case 2:
System.out.println(sand + year);
break;
case 4:
System.out.println(year);
break;
default:
System.out.println(year+" is an invalid year.");
break;
}
" TIF"是通过GDAL写的。现在使用另一种(本机)文件格式,它不起作用
library(raster)
r <- raster(ncol=10, nrow=10, vals=1:100)
x <- writeRaster(r, "实验白银区.tif")
#Error in .local(.Object, ...) : Unable to create dataset
但这可以用
解决y <- writeRaster(r, "实验白银区.grd")
Error in file(fnamevals, "wb") : cannot open the connection
In addition: Warning message:
In file(fnamevals, "wb") :
cannot open file 'c:/temp/<U+5B9E><U+9A8C><U+767D><U+94F6><U+533A>.gri': Invalid argument
这样
Sys.setlocale(category = "LC_ALL", locale="Chinese")
或NetCDF
y <- writeRaster(r, "实验白银区.grd")
y
#class : RasterLayer
#dimensions : 10, 10, 100 (nrow, ncol, ncell)
#resolution : 36, 18 (x, y)
#extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
#data source : c:/temp/实验白银区.grd
#names : layer
#values : 1, 100 (min, max)
要编写GeoTIFF(或其他格式的GDAL),您需要设置z <- writeRaster(r, "实验白银区.nc", overwrite=TRUE)
#z
#class : RasterLayer
#dimensions : 10, 10, 100 (nrow, ncol, ncell)
#resolution : 36, 18 (x, y)
#extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
#coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
#data source : c:\temp\实验白银区.nc
并在编写时添加选项Sys.setlocale
。
"GDAL_FILENAME_IS_UTF8=YES"