矢量和栅格是两种不同的地图数据表达方式,Python提供了许多强大的工具来处理矢量和栅格数据。下面介绍Python中如何将矢量数据裁剪为栅格数据。
import geopandas as gpd
import rasterio
from rasterio.mask import mask
# 读取要素图层和栅格图像文件
shp = gpd.read_file('path/to/shapefile.shp')
raster = rasterio.open('path/to/raster.tif')
# 裁剪矢量数据
clipped = gpd.clip(shp, raster.bounds)
# 读取裁剪后的矢量数据的几何信息
geoms = clipped.geometry.values
# 使用几何信息裁剪栅格数据
out_image, out_transform = mask(raster, geoms, crop=True)
# 设置输出文件
profile = raster.profile
profile.update({'height': out_image.shape[1], 'width': out_image.shape[2], 'transform': out_transform})
# 保存裁剪后的栅格数据
with rasterio.open('path/to/output.tif', 'w', **profile) as dst:
dst.write(out_image)代码中使用了geopandas和rasterio两个库。首先读取了要素图层和栅格图像文件,使用gpd.clip()函数将矢量数据裁剪为栅格数据。然后获取裁剪后的矢量数据的几何信息,使用rasterio.mask.mask()函数裁剪栅格数据,并保存裁剪后的栅格数据。
以上就是Python中使用矢量裁剪栅格的方法,希望对你有所帮助。
本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。
0
