Google Earth Engine绘制LST时间序列提示无属性可制图报错求助
GEE LST时间序列报错解决方案
报错Error generating chart: No properties to chart.的核心原因是参与统计的影像集合在指定AOI范围内没有可提取的有效统计值,按以下步骤修正即可:
- 若你导入的
AOI是FeatureCollection类型,直接传入图表函数会导致区域识别异常,需要调用.geometry()方法传入实际几何对象 - 原始MOD11A2产品存在大量填充值,未做掩膜时可能出现AOI范围内全为无效值的情况
- 未过滤完全不覆盖AOI、或AOI范围内无有效像元的空值影像,会导致统计结果为空
- 你当前先对全集合所有波段做单位转换再筛选LST波段的逻辑,会引入不必要的计算,也可能引发波段属性异常
修正后可运行代码
Map.centerObject(AOI); Map.addLayer(AOI); var LST = ee.ImageCollection("MODIS/006/MOD11A2") .filterBounds(AOI) .filterDate('2021-02-20','2021-06-01') // 先筛选需要的波段再做运算,减少无效计算 .select("LST_Day_1km","LST_Night_1km") .map(function(img){ // 单位转换:开尔文转摄氏度 var converted = img.multiply(0.02).subtract(273.15); // 掩膜异常值:正常地表温度范围在-40℃~70℃,超出范围判定为无效值 var masked = converted.updateMask(converted.gte(-40).and(converted.lte(70))); // 复制时间属性 return masked.copyProperties(img,['system:time_start','system:time_end']); }) // 过滤掉AOI范围内无有效LST像元的影像 .map(function(img) { var validCount = img.reduceRegion({ reducer: ee.Reducer.count(), geometry: AOI.geometry(), scale: 1000, maxPixels: 1e13 }).getNumber('LST_Day_1km'); return img.set('valid_pixel_count', validCount); }) .filter(ee.Filter.gt('valid_pixel_count', 0)); print('预处理后LST集合', LST); var chart = ui.Chart.image.series( // 传入AOI.geometry()而非直接传AOI,适配FeatureCollection类型的AOI LST, AOI.geometry(), ee.Reducer.median(), 1000, 'system:time_start' ) .setChartType('ScatterChart') .setOptions({ title : 'LST-Parcel No: 2406724', vAxis : {title : 'LST(℃)'}, hAxis : {title : 'Date'}, lineWidth : 2, pointSize : 3, series : { 0 : {color : 'red'}, // 白天LST颜色,可按需修改 1 : {color : 'blue'} // 夜间LST颜色,补充原代码缺失的第二序列配置 }}); print(chart);
内容的提问来源于stack exchange,提问作者Gandom
相关产品推荐
相关产品推荐

