Python: как проверить, перекрывают ли фигуры растр? - PullRequest
0 голосов
/ 20 июня 2019

Я работаю с 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 перед выполнением маски?

...