使用rasterio更改栅格的crs可以通过以下步骤实现:
import rasterio
from rasterio.warp import calculate_default_transform, reproject, Resampling
from rasterio.crs import CRS
with rasterio.open('input.tif') as src:
# 获取原始栅格的元数据信息
metadata = src.meta.copy()
# 获取原始栅格的投影信息
crs = src.crs
# 读取原始栅格的数据
data = src.read(1)
dst_crs = CRS.from_epsg(4326) # 例如,将目标投影设置为WGS84坐标系
transform, width, height = calculate_default_transform(crs, dst_crs, src.width, src.height, *src.bounds)
dst_metadata = metadata.copy()
dst_metadata.update({
'crs': dst_crs,
'transform': transform,
'width': width,
'height': height
})
with rasterio.open('output.tif', 'w', **dst_metadata) as dst:
# 将原始栅格数据重新投影到目标投影
reproject(
source=data,
destination=rasterio.band(dst, 1),
src_transform=src.transform,
src_crs=src.crs,
dst_transform=transform,
dst_crs=dst_crs,
resampling=Resampling.nearest
)
在上述代码中,我们使用了rasterio库来处理栅格数据。首先,我们打开原始栅格文件,并获取其元数据和投影信息。然后,我们定义目标投影信息,例如将其设置为WGS84坐标系。接下来,我们计算转换后的栅格的分辨率和范围。最后,我们创建一个新的栅格文件,并将原始栅格数据重新投影到目标投影。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云