Earth Engine 专用 JavaScript 简介

本教程仅介绍 JavaScript 的基础知识,帮助您开始编写 Earth Engine 脚本。如需查看更全面的 JavaScript 教程,请参阅这些 Mozilla 开发者资源。如需了解编程基础知识(包含 JavaScript 示例),请参阅 Eloquent JavaScript。如需了解 JavaScript 编码风格方面的建议,请参阅 Google JavaScript 风格指南。在本教程中,您将在 Earth Engine 代码编辑器中编写 JavaScript。在开始之前,请先参阅代码编辑器指南,熟悉代码编辑器环境。

Hello World!

现在,您可以开始编写您的第一个 Earth Engine JavaScript 了!在 Chrome 浏览器中,前往 code.earthengine.google.com,然后将以下内容复制到代码编辑器中:

代码编辑器 (JavaScript)

print('Hello World!');

点击运行,观察到“Hello world!”已输出到“控制台”标签页。上面这行代码是一条 JavaScript 语句。在 JavaScript 中,语句以英文分号结尾。Earth Engine 程序由一组类似这样的语句组成。您可以通过注释代码来阻止其运行,而无需将其删除。注释掉代码的一种方法是在不想运行的代码前面加上两个正斜杠 //。例如:

代码编辑器 (JavaScript)

// print('Hello World!');

在代码中添加大量注释来描述您要执行的操作,这是一种很好的做法。删除不再执行任何操作的注释代码也是一种很好的做法。 这两种做法都可以提高代码的可读性。

基本 JavaScript 数据类型

字符串

使用变量存储对象和基元有助于提高代码的可读性。例如,存储字符串对象的变量由单引号 ' 或双引号 " 定义(但不要混用),首选单引号。创建一个新字符串,并将其存储在名为 greetString 的变量中:

代码编辑器 (JavaScript)

// Use single (or double) quotes to make a string.
var greetString = 'Ahoy there!';
// Use parentheses to pass arguments to functions.
print(greetString);

Numbers

请注意,变量使用关键字 var 进行定义。变量也可以存储数字:

代码编辑器 (JavaScript)

// Store a number in a variable.
var number = 42;
print('The answer is:', number);

在此示例中,请注意,当 print() 获得两个以英文逗号分隔的参数时,每个参数都会输出到不同的行。

列表

使用方括号 [] 定义列表。数字列表,例如:

代码编辑器 (JavaScript)

// Use square brackets [] to make a list.
var listOfNumbers = [0, 1, 1, 2, 3, 5];
print('List of numbers:', listOfNumbers);

列表还可以存储字符串或其他对象。例如:

代码编辑器 (JavaScript)

// Make a list of strings.
var listOfStrings = ['a', 'b', 'c', 'd'];
print('List of strings:', listOfStrings);

对象

JavaScript 中的对象是 key: value 对的字典。使用大括号 {} 创建对象(或字典),例如:

代码编辑器 (JavaScript)

// Use curly brackets {} to make a dictionary of key:value pairs.
var object = {
  foo: 'bar',
  baz: 13,
  stuff: ['this', 'that', 'the other thing']
};
print('Dictionary:', object);
// Access dictionary items using square brackets.
print('Print foo:', object['foo']);
// Access dictionary items using dot notation.
print('Print stuff:', object.stuff);

请注意,您可以通过提供键来从字典中获取值。以下示例展示了如何对 JavaScript 对象执行此操作。稍后,您将学习如何对 Earth Engine 服务器上的字典执行此操作。

函数

函数是另一种通过将一组操作分组来提高代码可读性和可重用性的方法。使用 function 关键字定义函数。函数名称以字母开头,末尾有一对圆括号。函数通常会接受参数,这些参数会告知函数要执行的操作。这些参数位于圆括号 () 内。构成函数的一组语句位于大括号内。return 关键字表示函数的输出。声明函数的方法有多种,但在这里,我们将使用如下所示的方法:

代码编辑器 (JavaScript)

var myFunction = function(parameter1, parameter2, parameter3) {
  statement;
  statement;
  statement;
  return statement;
};

我们来逐行分析一下。第一行创建一个新函数,并将其分配给变量 myFunction。此变量可以命名为任何名称。它定义了后续如何调用该函数。函数名称后括号内的术语(即 parameter1、parameter2、parameter3)是参数名称,也可以任意命名,但最好为它们指定与函数外部代码不同的唯一名称。无论您如何命名,这些名称都是函数在调用时用于引用传入函数的值的名称。参数传入函数后的值称为实参。虽然函数可以使用在函数外部声明的变量(全局变量),但函数参数在函数外部不可见。函数可以接受任意数量的参数,甚至可以不接受任何参数。下面是一个仅返回其参数的函数的简单示例:

代码编辑器 (JavaScript)

// The reflect function takes a single parameter: element.
var reflect = function(element) {
  // Return the argument.
  return element;
};
print('A good day to you!', reflect('Back at you!'));

这是一个用户定义的函数示例。此外,还有许多内置的 Earth Engine 函数。探索代码编辑器的“文档”标签页,了解这些内置函数。以下是一个非常简单的 Earth Engine 函数示例:

代码编辑器 (JavaScript)

var aString = ee.Algorithms.String(42);

在下一部分中,您将详细了解 Earth Engine 对象和方法。