谷歌地球引擎Python API错误提取MODIS NDVI值

2024-06-06 20:29:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始使用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

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


Tags: imggetdatescenemodisstarteeend
1条回答
网友
1楼 · 发布于 2024-06-06 20:29:24

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很少使用)

进行这些值转换是为了节省磁盘空间(允许将数据保存为16位整数,而不是32或64位浮点)

相关问题 更多 >