如何解决Google Earth Engine Python API 错误的 MODIS NDVI 值提取
我刚刚开始使用 GEE Python API。我想从 MOdis 产品的单个像素中提取 NDVI 值。当我运行这个:
delete from myfile
An error occurred during the execution of the command.
ValidationException: Where clause does not contain a mandatory equality on all key attributes
它会将 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()
设置为 865。但是,NDVI 不应是大于 1 的值。
解决方法
official file specification 表示真实值(“参数”)是通过以下等式获得的:
parameter=(file data - add_offset)/scale_factor
其中 file data
是文件中的值,add_offset
和 scale_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 位浮点数)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。