我有一个CSV文件里面有三列分别是行号、列号、和值和一个有投影的栅格图像。使用GDAL包利用python语言将此CSV文件转换为栅格图像并添加投影
时间: 2024-02-07 20:03:56 浏览: 133
php读取csv文件中的每一列
好的,我明白了。首先,你需要安装GDAL包。可以使用以下命令进行安装:
```
pip install gdal
```
然后,你可以使用以下代码将CSV文件转换为栅格图像并添加投影:
```python
from osgeo import gdal, osr
import csv
# 读取CSV文件
with open('data.csv', 'r') as f:
reader = csv.reader(f)
data = [row for row in reader]
# 创建栅格图像
cols = int(data[-1][1]) + 1
rows = int(data[-1][0]) + 1
driver = gdal.GetDriverByName('GTiff')
dataset = driver.Create('output.tif', cols, rows, 1, gdal.GDT_Float32)
# 设置投影
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)
dataset.SetProjection(srs.ExportToWkt())
# 将数据写入栅格图像
band = dataset.GetRasterBand(1)
band.SetNoDataValue(-9999)
for row in data:
col = int(row[1])
row = int(row[0])
val = float(row[2])
band.WriteArray([[val]], col, row)
# 关闭栅格图像
dataset.FlushCache()
band = None
dataset = None
```
其中,`data.csv` 是你的CSV文件名,`output.tif` 是输出的栅格图像名,`4326` 是EPSG代码,表示WGS84坐标系。你可以根据你的实际需求来修改这些参数。
希望这个回答能够帮到你!
阅读全文