Python:数组转TIFF的代码

一般我们参考前人的模型,比如预测使用的神经网络,一般输出结果为数组或者列表形式,但对于我们GIS和遥感专业的人来说,后面需要对其可视化,即空间数据的制图,这时就需要将输出结果转换为TIFF格式。话不多说,直接上代码:

import array
import numpy as np
import gdal
import osr
import pandas as pd
from test import predict_value #predict_value为想要转为TIFF的数组
#predict_value也可以直接加载进去,如下
predict_value=pd.read_csv("需要转换的数组文件路径")

# 创建一个GeoTIFF文件
filename = 'output.tif'
driver = gdal.GetDriverByName('GTiff')

# 设置GeoTIFF文件的维度和数据类型
cols = predict_value.shape[1]
rows = predict_value.shape[0]
bands = 1
datatype = gdal.GDT_Float32  # 或者其他数据类型,如gdal.GDT_Byte等

# 创建数据集
dataset=driver.Create(filename, cols, rows, 1, datatype)

# 设置地理坐标系统和投影
# 例如,使用WGS 84坐标系(EPSG:4326)
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)
dataset.SetProjection(srs.ExportToWkt())


x_min, y_max = 110.0, 30.0  # 左上角坐标(经度,纬度)
pixel_width, pixel_height = 0.01, -0.01  # 分辨率(度/像素),注意负号表示Y轴向下
geo_transform = (x_min, pixel_width, 0, y_max, 0, pixel_height)
dataset.SetGeoTransform(geo_transform)

# 写入数据
band = dataset.GetRasterBand(1)
band.WriteArray(predict_value)

# 设置NoData值(如果需要的话)
# band.SetNoDataValue(some_value)

# 清理并保存文件
band.FlushCache()
dataset = None  # 确保数据写入文件并关闭数据集

print(f'GeoTIFF file {filename} has been created.')
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值