如何使用python将二进制栅格多边形化?

时间:2017-06-26 14:57:05

标签: python vector raster

我有一个ndvi栅格,我用脚本python二进制化(我把我的阈值设置为0.35),我希望对此栅格进行多边形化,以便将ndvi转换为多边形,然后将它们存储在数据库中。 我找到并使用了这段代码:

import rasterio
import rasterio.env
from rasterio.features import shapes
import fiona
mask = None
with rasterio.Env():
    with rasterio.open('binarized_ndvi.tif') as src:
        image = src.read()

    results = (
    {'properties': {'raster_val': v}, 'geometry': s}
    for i, (s, v)
    in enumerate(
    shapes(image, mask=mask, transform=src.transform)))

    with fiona.open(
    'ndvi_shapefile.shp', 'w',
    driver='Shapefile',
    crs=src.crs,
    schema={'properties': [('raster_val', 'int')],
    'geometry': 'Polygon'}) as dst:
        dst.writerecords(results)

但我得到的只是一个shapefile,只有一个多边形,其形状与我的光栅相同,就好像只考虑光栅的第一个元素一样......

我无法向你发送我的光栅,它太大了,但如果有人可以帮助我,我可以通过电子邮件发送我的数据。

非常感谢!

0 个答案:

没有答案