【发布时间】:2020-05-27 07:30:09
【问题描述】:
我目前正在使用来自 GEE (USGS/GFSAD1000_V0) 的数据集,目的是将其转置到我在所有这些之前已经确定的一组多边形上。我现在正在尝试计算某个多边形内不同值(0-9)的像素百分比并将其打印出来。
import ee
import numpy as np
ee.Initialize()
polygon_version = '(SOURCE)'
land_polygons = ee.FeatureCollection(f'users/(SOURCE)/{polygon_version}_poly_land')
def Landcover_Crops_nr(polygons):
dataset = ee.Image("USGS/GFSAD1000_V0").clip(polygons)
type_crop = dataset.select("landcover")
arr = np.array(type_crop)
rawres = type_crop.getInfo()["features"]
res = {
x["properties"]["id"]: {
"id": x["properties"]["id"],
"area": float(x["properties"]["area"]),
"center_lat": x["properties"]["center_lat"],
"crop_area": x["properties"]["sum"],
}
for x in rawres
}
return res
values, frequencies= np.unique(arr, return_counts=True)
sum = np.sum(frequencies)
percentages = [x/sum*100 for x in frequencies]
dfgen = Landcover_Crops_nr(land_polygons)
dfgen.to_csv(f'{polygon_version}_Crops.csv', index=False)
print (dfgen)
我以前尝试过,但正如您所见,它只会关注 9 值,而像这样手动执行对于全球数据集来说不是一个选项
【问题讨论】:
-
您的数据集是二维值数组 (0-9) 吗?
-
是的,数据集是一个 0 到 9 之间值的二维数组
标签: python dataset polygon percentage google-earth-engine