GEE(Google Earth Engine)——JavaScript 入门(1)

如果有基础请参考GEE官方文档:https://developers.google.com/earth-engine/guides/getstarted

如何使用这些文档 

Earth Engine 文档专为熟悉地理空间数据分析的人员设计。文档主要按数据类型构建。例如,在左侧导航包含了重要的数据类型,例如链接到部分或网页Image, ImageCollection, Feature, FeatureCollection, Geometry, Reducer, ChartJoin和 Array。本指南仅对这些类型进行了足够的描述,以帮助您入门。还有 机器学习、专业或传感器特定算法(例如 Landsat 算法)、 面向公众的应用程序数据(资产)管理的部分 以及关于地球引擎内部运作的重要细节。在深入研究任何一个之前,从这里开始!

代码编辑器 

代码编辑器是用于开发地球引擎应用程序的交互式环境(图 1)。中心面板提供了一个 JavaScript 代码编辑器。编辑器上方是保存当前脚本、运行脚本和清除地图的按钮。在获取链接按钮生成在地址栏的脚本唯一的URL。底部面板中的地图包含脚本添加的图层。顶部是数据集和地点的搜索框。左侧面板包含代码示例、您保存的脚本、可搜索的 API 参考和私有数据的资产管理器。右侧面板有一个用于查询地图的检查器、一个输出控制台和一个用于长期运行任务的管理器。帮助按钮 help 右上角包含指向本指南和其他获取帮助资源的链接。从代码编辑器指南获取帮助指南中了解更多信息。

 图  code.earthengine.google.com 上的 Earth Engine 代码编辑器

在代码编辑器中打开和运行代码

以下步骤演示了如何打开 Earth Engine 并执行显示图像的自定义脚本。为获得最佳效果,您可能需要安装最新版本的 Chrome,即 Google 的网络浏览器,可 在此处获得

  1. 在此处打开地球引擎代码编辑器: code.earthengine.google.com。如果您还没有,则需要通过使用注册的 Google 帐户登录来启用访问。
  2. 导航到位于代码编辑器最左侧的脚本选项卡。在那里,您将找到访问、显示和分析 Earth Engine 数据的示例脚本集合。
  3. 在“图像集合”下,选择“过滤合成”示例。您会在中控台上看到一个脚本。按运行按钮执行脚本。Filtered Composite 示例选择与科罗拉多州和犹他州相交或在其边界内的 Landsat 7 图像。然后显示所选图像的真彩色合成。样品给你介绍常用的方法,如filter()clip()和 Map.addLayer()

地球引擎数据结构

两个最根本的地理数据在地球引擎结构 Image和 Feature分别对应于光栅和矢量数据类型,。图像由波段和属性字典组成。特征由一个Geometry和一个属性字典组成。一堆图像(例如图像时间序列)由ImageCollection. 功能集合由FeatureCollection. 在地球引擎其它基本数据结构包括Dictionary, ListArrayDate, NumberString(了解更多关于基本数据类型 本教程。要记住,这些都是很重要的服务器端对象的操作方式与客户端 JavaScript 对象的操作方式不同)。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是使用Google Earth Engine获取逐日NDVI的代码示例: ```javascript // 设置ROI var roi = ee.Geometry.Rectangle([xmin, ymin, xmax, ymax]); // 设置起始和结束日期 var startDate = ee.Date('2019-01-01'); var endDate = ee.Date('2019-12-31'); // 加载MODIS数据 var modis = ee.ImageCollection('MODIS/006/MOD13A1') .filterBounds(roi) .filterDate(startDate, endDate) .select('NDVI'); // 定义函数计算每个图像的年份和日数 var addDate = function(image) { var doy = image.date().getRelative('day', 'year'); return image.addBands(doy).addBands(image.date().get('year')); }; // 对图像集应用函数 var modisWithDate = modis.map(addDate); // 定义函数计算每个年份和日数的平均NDVI值 var reduceDaily = function(imageCollection, year, doy) { var filtered = imageCollection.filter(ee.Filter.calendarRange(year, year, 'year')) .filter(ee.Filter.calendarRange(doy, doy, 'day_of_year')); return filtered.mean().set('year', year).set('doy', doy); }; // 创建一个二维数组,其中第一维表示年份,第二维表示一年中的日数 var years = ee.List.sequence(startDate.get('year'), endDate.get('year')); var days = ee.List.sequence(1, 365); // 对所有年份和日数应用reduceDaily函数 var dailyNDVI = ee.ImageCollection.fromImages(years.map(function(y){ return days.map(function(d){ return reduceDaily(modisWithDate, y, d); }); }).flatten()); // 打印输出结果 print(dailyNDVI); ``` 在上述代码中,首先定义了一个感兴趣区域(ROI),然后加载了2000年至今的MODIS NDVI数据,并对其进行了筛选。接着定义了两个函数,一个函数用于向每个图像添加年份和日数作为带宽,另一个函数用于计算每个年份和日数的平均NDVI值。最后,将所有年份和日数应用到reduceDaily函数中,生成逐日的NDVI值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值