我正在尝试创建一个用于卫星图像的土地掩码,它将与土地质量相交的栅格中的像素设置为 0。
在尝试了 gdal、skimage、pyplot 等之后,我发现 rasterio 食谱中给出的方法既快速又简单。但是,它将多边形外部的像素设置为 0,而我正在尝试与此相反。
如果可能,请继续使用 rasterio - 您不必计算地理空间坐标的像素位置或处理超出栅格范围的剪裁特征变为负数。它也很快,这对于我正在使用的原始图像的文件大小很重要。
我的代码如下:
import fiona
import rasterio
from rasterio.tools.mask import mask
with fiona.open("/Users/Cate/UK_Mainland.shp", "r") as shapefile:
geoms = [feature["geometry"] for feature in shapefile]
with rasterio.open("jan_clip.tif") as src:
out_image, out_transform = mask(src, geoms, crop=True)
out_meta = src.meta.copy()
out_meta.update({"driver": "GTiff",
"height": out_image.shape[1],
"width": out_image.shape[2],
"transform": out_transform})
with rasterio.open("masked2.tif", "w", **out_meta) as dest:
dest.write(out_image)
如何掩盖与多边形相交的区域而不是那些不相交的区域?