矢量和栅格是两种不同的地图数据表达方式,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