Я работаю с rasterio
и пытаюсь mask
a geotiff
, если на изображении пять фигур. Бывает, что одни и те же фигуры не перекрывают растр. Например, у меня есть цикл
import rasterio
from rasterio.mask import mask
import geopandas as gpd
def getFeatures(gdf):
"""Function to parse features from GeoDataFrame in such a manner that rasterio wants them"""
import json
return [json.loads(gdf.to_json())['features'][0]['geometry']]
poly_df = gpd.read_file('myShape.shp')
data = rasterio.open('myFile.tiff') ## geotiff
for i in poly_df.index:
geo = gpd.GeoDataFrame({'geometry': poly_df['geometry'][i]}, index=[0])
coords = getFeatures(geo)
out_img, out_transform = mask(data, coords, crop=True)
например, для фигуры, когда i = 14
я получил следующую ошибку:
ValueError: Input shapes do not overlap raster.
Как это проверить, если фигура coords
перекрывает растр data
перед выполнением маски?