在Python中确定地理点是否位于给定多边形内,而不使用数据文件?

在Python中确定地理点是否位于给定多边形内,而不使用数据文件?,python,geospatial,rasterio,Python,Geospatial,Rasterio,我目前以以下方式使用rasterio,以确定my_point是否包含由Geometrics定义的多边形(显然是,本例中给出了特定的数字(EPSG:27700坐标)): 然而,由于我只关心点是在内部还是外部,而不关心源数据中的实际像素值,因此我必须使用数据文件来实现这一点似乎是不对的。换句话说,我关心的是out\u image.mask,而不是out\u image数据。在Python中有没有更好的方法来实现这一目标,而不必使用源数据文件,最好使用相同或更少的代码行 geometries = [{

我目前以以下方式使用rasterio,以确定
my_point
是否包含由
Geometrics
定义的多边形(显然是,本例中给出了特定的数字(EPSG:27700坐标)):

然而,由于我只关心点是在内部还是外部,而不关心源数据中的实际像素值,因此我必须使用数据文件来实现这一点似乎是不对的。换句话说,我关心的是
out\u image.mask
,而不是
out\u image
数据。在Python中有没有更好的方法来实现这一目标,而不必使用源数据文件,最好使用相同或更少的代码行

geometries = [{'type': 'Polygon', 'coordinates': [[[290000, 92000], [291000, 92000], [291000, 93000], [290000, 93000], [290000, 93000]]]}]
my_point = (290500, 92500)

with rasterio.open("myfile.tif") as src:
    out_image, out_transform = mask(src, geometries, crop=True, all_touched=False, filled=False)
    out_meta = src.meta.copy()

    out_meta.update({"driver": "GTiff",
                     "height": out_image.shape[1],
                     "width": out_image.shape[2],
                     "transform": out_transform})
    with MemoryFile() as memfile:
        with memfile.open(**out_meta) as dataset:
            dataset.write(out_image)
        memfile.seek(0)
        buffer = memfile.read()
    with rasterio.open(BytesIO(buffer)) as subset:
        row, col = subset.index(my_point[0], my_point[1])
    if not out_image.mask[0, row, col]:
        print("inside polygon")
    else:
        print("outside polygon")