我正在尝试使用rasterio将xyz数据转换为栅格网格
我已将高程数据加载到numpy数组中,z值的精度为2个小数,并且该数组的dtype为float64。
在加载xyz数据并将高程数据放入网格之后,数组zi在数组中具有以下属性和示例值:
[in] zi.shape
[out] (3796, 3557)
[in] zi.dtype
[out] dtype('float64')
[in] zi[1000,1000]
[out] -5.27
我正在尝试使用rasterio和AAIGrid驱动程序将网格化数据写入ESRI Ascii文件。
import rasterio
from rasterio.transform import from_origin
from fiona.crs import from_epsg
transform = from_origin(xmin, ymax, 0.5, 0.5)
new_dataset = rasterio.open('test1.asc', 'w', driver='AAIGrid',
height = zi.shape[0], width = zi.shape[1],
count=1, dtype=str(zi.dtype)
crs=from_epsg(32750),
transform=transform,
nodata = -9999)
new_dataset.write(zi, 1)
new_dataset.close()
z网格已成功写入ESRI Ascii文件,现在值的“精度”为19位小数。这样会使文件不必要地变大,并减慢使用网格文件的程序的速度。
Header ESRI Ascii文件和前两个值:
ncols 3557
nrows 3796
xllcorner 765005.500000000000
yllcorner 9430016.000000000000
cellsize 0.500000000000
NODATA_value -9999
-0.029999999329447746277 -0.029999999329447746277
我尝试将数据类型更改为float32,并将参数“ precision = 2”添加到rasterio.open。他们是我可以减少小数位数的一种方法吗?