Python 如何使用GDAL将数据保存到PNG

Python 如何使用GDAL将数据保存到PNG,python,png,gdal,Python,Png,Gdal,我正在尝试将数据保存到PNG。文件已创建(尺寸正确,但数据未写入) 最小示例代码: 从osgeo导入gdal 将numpy作为np导入 #数据: filename='/tmp/test.png' nx=512 ny=512 n_波段=3 数据类型=gdal.GDT_字节 #创建目的地: dst_driver_tmp=gdal.GetDriverByName('MEM') dst_tmp=dst_driver_tmp.Create(“”,xsize=nx,ysize=ny,bands=n_band

我正在尝试将数据保存到PNG。文件已创建(尺寸正确,但数据未写入)

最小示例代码:

从osgeo导入gdal
将numpy作为np导入
#数据:
filename='/tmp/test.png'
nx=512
ny=512
n_波段=3
数据类型=gdal.GDT_字节
#创建目的地:
dst_driver_tmp=gdal.GetDriverByName('MEM')
dst_tmp=dst_driver_tmp.Create(“”,xsize=nx,ysize=ny,bands=n_bands,eType=datatype)
dst_driver=gdal.GetDriverByName('PNG')
dst_ds=dst_driver.CreateCopy(文件名,dst_tmp,strict=0)
如果不是dst,则:
引发异常(“CreateCopy失败”)
#写入数据:
对于范围内的i(n_波段):
data=np.array([[i*0.5]])
band=dst_ds.GetRasterBand(i+1).WriteArray(数据)
dst_ds.FlushCache()
dst_ds=无
运行此代码会产生错误:

ERROR 6: /tmp/test.png, band 1: WriteBlock() not supported for this dataset.
ERROR 6: /tmp/test.png, band 2: WriteBlock() not supported for this dataset.
ERROR 6: /tmp/test.png, band 3: WriteBlock() not supported for this dataset.
该文件已创建,是有效的PNG文件,但图像为黑色

我尝试过使用不同的值、维度、带数更改
词组
。没有区别。如果有关系:

$gdalinfo--版本
GDAL 2.2.2,2017/09/15发布
$gdalinfo——格式| grep PNG
PNG-光栅-(rwv):便携式网络图形

知道如何使用GDAL将值写入PNG吗?

结果我误解了
CreateCopy
的作用。数据需要写入
dst_tmp
,然后在最后调用
CreateCopy
,在一个步骤中创建PNG文件。希望它能帮助某些人