如何使用上一个光栅的投影保存新光栅

2024-09-30 18:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试用Python制作一个算法,输入一个地理参考光栅(已知坐标系),将其所有负值转换为零,然后使用初始图像的地理参考保存一个新图像

import skimage.io
import pandas as pd
import numpy as np

pathhr = 'C:\\Users\\dataset\\S30W051.tif'
HR = skimage.io.imread(pathhr)
df1 = pd.DataFrame(HR)
HR_changed = df1[df1 < 0] = 0

#save function
savedata = df1.to_numpy()
skimage.io.imsave('C:\\Users\\dataset\\S30W051_TEST.tif', savedata)

但是,当我在脚本末尾保存光栅时,会得到一个非地理参考TIFF光栅

如何保持与初始光栅相同的坐标系(而不将输出光栅转换为本地坐标)

我请求帮助解决这个问题。谢谢


Tags: io图像importnumpyas光栅hr地理
1条回答
网友
1楼 · 发布于 2024-09-30 18:22:26

可以使用rasterio打开和保存tiff文件,并将初始光栅的元数据复制到新光栅

import rasterio as rio

# Load the original image
with rio.open(pathhr, 'r') as r:
    HR = r.read()
    meta = r.meta

# Do any transformation you like (on the numpy array)
HR_changed = HR[HR < 0] = 0

# Save the changed raster
with rio.open('C:\\Users\\dataset\\S30W051_TEST.tif', 'w', **meta) as dst:
    dst.write(HR_change)

相关问题 更多 >