我有一个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,只有一个多边形,其形状与我的光栅相同,就好像只考虑光栅的第一个元素一样......
我无法向你发送我的光栅,它太大了,但如果有人可以帮助我,我可以通过电子邮件发送我的数据。
非常感谢!