1. 初识Google Earth Engine(GEE)
第一次接触GEE时,我完全被它的云端处理能力震撼到了。想象一下,你不需要在本地安装任何软件,打开浏览器就能调用PB级别的遥感数据,还能直接在上面跑分析——这简直就是遥感分析师的梦想工具。
GEE本质上是一个基于云端的遥感数据处理平台,它把Google强大的服务器资源开放给我们使用。这意味着:
- 你不再需要下载几十GB的卫星影像到本地
- 复杂的计算任务可以秒级完成
- 所有数据都保持最新状态
我刚开始用的时候,最不习惯的就是它的编程模式。和传统Python遥感处理不同,GEE采用的是"客户端-服务器"架构。我们写的代码实际上是在浏览器里编辑,然后发送到Google服务器执行。这种模式带来一个关键特性:所有数据处理操作都必须使用GEE封装好的API。
举个例子,如果你想创建一个数字,不能直接用JavaScript的let num = 1,而要用ee.Number(1)。这种设计一开始可能会让你觉得别扭,但理解之后就会发现它的精妙之处——所有操作都在云端统一管理,效率极高。
2. GEE的核心数据类型
在GEE中游刃有余的关键,是要理解它特有的数据类型系统。这些类型都以ee.开头,构成了GEE数据处理的基础构件。
2.1 基础数据类型
让我们通过实际代码来感受这些类型的使用:
// 字符串类型
var serverString = ee.String('Hello GEE');
print('服务器字符串:', serverString);
// 数字类型
var pi = ee.Number(3.14159).multiply(2);
print('圆周率的两倍:', pi);
// 列表类型
var cityList = ee.List(['北京','上海','广州','深圳']);
print('城市列表:', cityList);
print('第二个城市:', cityList.get(1)); // 注意要用get()方法获取元素
// 字典类型
var constants = ee.Dictionary({
pi: 3.14159,
e: 2.71828,
goldenRatio: 1.61803
});
print('常数字典:', constants);
print('黄金分割值:', constants.get('goldenRatio'));
这些类型看起来和JavaScript原生类型很像,但本质完全不同。它们都是服务器端对象,所有操作都要通过GEE API完成。新手常犯的错误就是混用这两种类型,比如试图用JavaScript的+来拼接ee.String,这会导致报错。
2.2 日期类型处理
遥感分析离不开时间维度,GEE的ee.Date类型提供了强大的时间处理能力:
// 创建日期对象
var startDate = ee.Date('2020-01-01');
var endDate = startDate.advance(3, 'month'); // 3个月后
print('开始日期:', startDate);
print('结束日期:', endDate);
print('时间差(天):', endDate.difference(startDate, 'day'));
// 获取日期组成部分
print('年份:', startDate.get('year'));
print('月份:


1万+

被折叠的 条评论
为什么被折叠?



