Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.

简介: Google Earth Engine(GEE)——当加载图表的时候出现错误No features contain non-null values of “system:time_start“.

 

错误:

Error generating chart: The image collection is empty.


No features contain non-null values of "system:time_start".


The image collection is empty.

原始代码:

var geometry = /* color: #d63000 */ee.Geometry.Polygon(
        [[[-81.14573791618602, 25.335453210591712],
          [-80.90953186149852, 25.32924702619973],
          [-81.03312805290477, 25.5190118912932],
          [-81.1992962657954, 25.50537864099872]]]),
    Mang = ee.FeatureCollection("users/selenachav5/mangrove_vector");
var WSC1050 = /* color: #98ff00 */ee.Geometry.Point([-81.11963534, 25.42344856]);
var mask = Mang
var mangroveImg = ee.Image(0).paint(mask, 1);
Map.addLayer(mangroveImg, {min:0, max:1}, 'mangroveImg')
function maskNonMangrove(i){
  return i.updateMask(mangroveImg).copyProperties(i);
}
var col = ee.ImageCollection('MODIS/061/MOD13Q1')
                  .map(function(im) {return im.select(['NDVI']).multiply(0.0001)})
                  .filter(ee.Filter.date('2013-01-01', '2023-05-01'))
                  .map(maskNonMangrove) 
                  ;
var ndvi = col.select('NDVI');
var ndviVis = {
  min: 0.0,
  max: 8000.0,
  palette: [
    'FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901',
    '66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01',
    '012E01', '011D01', '011301'
  ],
};
Map.setCenter(6.746, 46.529, 2);
Map.addLayer(ndvi, ndviVis, 'NDVI');
var ndviChart = ui.Chart.image.series(ndvi, WSC1050, ee.Reducer.mean(), 250);
  ndviChart.setOptions({
    title: 'MODIS NDVI',
    vAxis: {title: 'NDVI', maxValue: 9000},
    hAxis: {title: 'date', format: 'MM-yy', gridlines: {count: 7}},
  });
  
print(ndviChart)

解析:

出现这个的主要原因是,我们在对影像集合进行映射计算的出现了掩盖掉时间属性的东西,所以我们需要在进行映射函数之后要进行属性的追加,也就是及逆行属性的copy,从而保留这个时间属性,因为在默认状态下chart中是需要进行时间属性的来作为横轴进行加载的,所以这里我们必须要保留原有的影像时间信息。

关键代码:

.copyProperties(i,['system:time_start'])

图表函数:

ui.Chart.image.series(imageCollection, region, reducer, scale, xProperty)

Generates a Chart from an ImageCollection. Plots derived values of each band in a region across images. Usually a time series.

  • X-axis: Image, labeled by xProperty value.
  • Y-axis: Band value.
  • Series: Band names.

Returns a chart.

Arguments:

imageCollection (ImageCollection):

An ImageCollection with data to be included in the chart.

region (Feature|FeatureCollection|Geometry):

The region to reduce.

reducer (Reducer, optional):

Reducer that generates the values for the y-axis. Must return a single value. Defaults to ee.Reducer.mean().

scale (Number, optional):

Scale to use with the reducer in meters.

xProperty (String, optional):

Property to be used as the label for each image on the x-axis. Defaults to 'system:time_start'.

Returns: ui.Chart

修改后的代码:

var WSC1050 = /* color: #98ff00 */ee.Geometry.Point([-81.11963534, 25.42344856]);
var mask = Mang
var mangroveImg = ee.Image(0).paint(mask, 1);
Map.addLayer(mangroveImg, {min:0, max:1}, 'mangroveImg')
function maskNonMangrove(i){
  return i.updateMask(mangroveImg).copyProperties(i,['system:time_start']);
}
var col = ee.ImageCollection('MODIS/061/MOD13Q1')
                  .map(function(i) {return i.select(['NDVI']).multiply(0.0001).copyProperties(i,['system:time_start'])})
                  .filter(ee.Filter.date('2013-01-01', '2023-05-01'))
                  .map(maskNonMangrove) 
                  ;
var ndvi = col.select('NDVI');
var ndviVis = {
  min: 0.0,
  max: 8000.0,
  palette: [
    'FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901',
    '66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01',
    '012E01', '011D01', '011301'
  ],
};
Map.setCenter(6.746, 46.529, 2);
Map.addLayer(ndvi, ndviVis, 'NDVI');
var ndviChart = ui.Chart.image.series(ndvi, WSC1050, ee.Reducer.mean(), 250);
  ndviChart.setOptions({
    title: 'MODIS NDVI',
    vAxis: {title: 'NDVI', maxValue: 1},
    hAxis: {title: 'date', format: 'MM-yy', gridlines: {count: 7}},
  });
  
print(ndviChart)

 

相关文章
|
9月前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
2857 1
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
9月前
|
机器学习/深度学习 算法 数据可视化
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
基于Google Earth Engine云平台构建的多源遥感数据森林地上生物量AGB估算模型含生物量模型应用APP
281 0
|
9月前
|
存储 编解码 数据可视化
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
【2月更文挑战第14天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,按照给定的地表分类数据,对每一种不同的地物类型,分别加以全球范围内随机抽样点自动批量选取的方法~
747 1
Google Earth Engine获取随机抽样点并均匀分布在栅格的不同数值区中
|
9月前
|
机器学习/深度学习 SQL 关系型数据库
【MySQL进阶之路丨第十一篇】一文带你精通MySQL NULL值处理、正则表达式
【MySQL进阶之路丨第十一篇】一文带你精通MySQL NULL值处理、正则表达式
100 0
|
9月前
|
SQL 关系型数据库 MySQL
总结 vue3 的一些知识点:MySQL NULL 值处理
总结 vue3 的一些知识点:MySQL NULL 值处理
|
9月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之从MySQL同步数据到Doris时,历史数据时间字段显示为null,而增量数据部分的时间类型字段正常显示的原因是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
9月前
|
SQL 关系型数据库 MySQL
python在mysql中插入或者更新null空值
这段代码是Python操作MySQL数据库的示例。它执行SQL查询从表`a_kuakao_school`中选取`id`,`university_id`和`grade`,当`university_id`大于0时按升序排列。然后遍历结果,根据`row[4]`的值决定`grade`是否为`NULL`。若不为空,`grade`被格式化为字符串;否则,设为`NULL`。接着构造UPDATE语句更新`university`表中对应`id`的`grade`值,并提交事务。重要的是,字符串`NULL`不应加引号,否则更新会失败。
197 2
|
6月前
|
SQL 关系型数据库 MySQL
在 MySQL 中使用 IS NULL
【8月更文挑战第12天】
711 0
在 MySQL 中使用 IS NULL
|
6月前
|
SQL 关系型数据库 MySQL
mysql不等于<>取特定值反向条件的时候字段有null值或空值读取不到数据
对于数据库开发的专业人士来说,理解NULL的特性并知道如何正确地在查询中处理它们是非常重要的。以上所介绍的技巧和实例可以帮助你更精准地执行数据库查询,并确保数据的完整性和准确性。在编写代码和设计数据库结构时,牢记这些细节将有助于你避免许多常见的错误,提高数据库应用的质量与性能。
172 0
|
7月前
|
SQL 存储 索引
MySQL设计规约问题之为什么应该把字段定义为NOT NULL并且提供默认值
MySQL设计规约问题之为什么应该把字段定义为NOT NULL并且提供默认值

热门文章

最新文章