如何解决如何用更大的缓冲区切割我们的光栅?
我想从具有更大缓冲区的光栅文件中切出屋顶。
我可以切出屋顶,但我更喜欢用更大的缓冲区切出屋顶。
代码:
import Rasterio
import Rasterio.mask
import geopandas as gpd
# Read roofs
gdf = gpd.read_file('/home/gis/warstwadotestow.shp') # Your roofs
roof = gdf.iloc[4]
# Open input raster and write masked (clipped) output raster
with Rasterio.open('/home/gis/73642_915777_N-33-72-B-b-2-1.tif') as src:
out_image,out_transform = Rasterio.mask.mask(src,[roof['geometry']],crop=True)
out_Meta = src.Meta
out_Meta.update(
{
"driver": "GTiff","height": out_image.shape[1],"width": out_image.shape[2],"transform": out_transform,}
)
with Rasterio.open('/home/gis/output_raster2.tif',"w",**out_Meta) as dest:
dest.write(out_image)
我会得到:
如何切出更大的缓冲区?
解决方法
您可以缓冲几何体。 这是假设您的 shapefile(以及几何图形)位于投影坐标系中,以获得以米为单位的最准确缓冲区。
#Buffer of 20m
out_image,out_transform = rasterio.mask.mask(src,[roof['geometry'].buffer(20)],crop=True)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。