Google Earth Engine Python API 提取的 MODIS NDVI 值错误

Google Earth Engine Python API wrong MODIS NDVI value extracted

我刚刚开始使用 GEE Python API。我想从 MODIS 产品的单个像素中提取 NDVI 值。当我 运行 这个:

import ee
ee.Authenticate()
ee.Initialize()

t_start = ee.Date("2000-01-01")
t_end = ee.Date("2020-05-25")

AOI = ee.FeatureCollection("users/manuelpopp/xining")

MODIS = ee.ImageCollection("MODIS/006/MOD13Q1") \
    .filterDate(t_start, t_end).filterBounds(AOI)

MODIS_ndvi = MODIS.select("NDVI")

scenes = [scene.get("id") for scene in MODIS_ndvi.getInfo().get("features")]
scene = scenes[0]
img = ee.Image(scene)
p = ee.Geometry.Point(101.768548, 36.685077)
ndvit = img.reduceRegion(ee.Reducer.first(), p).get("NDVI").getInfo()

它将 ndvit 设置为 865。但是,NDVI 的值不应大于 1。

我这里做错了什么?我想这个值有一个简单的解释吗?

official file specification 指出真实值(“参数”)是通过以下等式获得的:

parameter=(file data - add_offset)/scale_factor

其中 file data 是文件中的值,add_offsetscale_factor 定义为例如


DataField_1     1 km 16 days NDVI       INT16           Dimension_1
                                                        Dimension_2

        DataField_1 HDF Attributes:
        Attribute       Data Type       Number of Values        Value or Max. String Length

        long_name       STRING          17      1 km 16 days NDVI
        units           STRING          4       NDVI
        valid_range     INT16           2       -2000, 10000
        _FillValue      INT16           1       -3000
        scale_factor    FLOAT64         1       10000
        scale_factor_err FLOAT64        1       0.0
        add_offset      FLOAT64         1       0.0
        add_offset_err  FLOAT64         1       0.0
        calibrated_nt   INT32           1       5

scale_factor值也在this table中(add_offset很少用)

完成这些值转换是为了将 space 保存在磁盘上(将数据保存为 16 位整数而不是 32 位或 64 位浮点数)。