晋江文学城
下一章   目录  设置

1、初识 第1部分 ...

  •   第1部分:代码编辑器入门

      代码编辑器是 Earth Engine JavaScript API 的集成开发环境。它提供了一种简单的方法来键入、调试、运行和管理代码。

      代码编辑器允许你输入 JavaScript 代码并执行它。第一次学习一门新语言并习惯新的编程环境时,通常会编写一个程序来显示“Hello World”一词,展示如何向程序提供输入以及如何执行它。它还显示程序显示输出的位置。在 JavaScript 中执行此操作非常简单。将以下代码复制到中心面板中。

      print(\'Hello World\');
      上面的代码行使用 JavaScript打印函数将文本“Hello World”打印到屏幕上。输入代码后,单击“运行按钮。输出将显示在控制台选项卡下的右上角面板上

      刚刚编写了第一个 Earth Engine 脚本,并且可能想要保存它。单击“保存”按钮

      第一次使用代码编辑器,系统将提示你创建主文件夹。这是云中的一个文件夹,将保存你的所有代码。可以选择自己喜欢的名称,但请记住,该名称无法更改,并且将永远与您的帐户关联。名称的一个不错选择是你的 Google 帐户用户名

      创建主文件夹后,系统将提示输入新的存储库。存储库可以帮助组织和共享代码。你的帐户可以有多个存储库,每个存储库中可以有多个脚本。首先,你可以创建一个名为“default”的存储库。最后,你将能够将脚本保存在新创建的存储库中。输入名称“hello_world”并单击“确定”。

      脚本保存后,它将出现在脚本管理器面板中。这些脚本保存在云端,当你打开代码编辑器时,你始终可以使用这些脚本。

      现在你应该熟悉如何在代码编辑器中创建、运行和保存脚本。你已准备好开始学习 JavaScript 的基础知识。

      第 2节 JavaScript 基础知识
      为了能够构建用于分析的脚本,需要使用 JavaScript。本节介绍 JavaScript 语法和基本数据结构。在接下来的部分中,将看到更多 JavaScript 代码,它们以不同的字体和阴影背景标注。遇到代码时,将其粘贴到代码编辑器中并运行脚本。

      2.1变量
      在编程语言中,变量用于存储数据值。在 JavaScript 中,变量是使用var 关键字后跟变量名称来定义的。下面的代码将文本“San Francisco”分配给名为city的变量。请注意,代码中的文本字符串应该用引号引起来。你可以自由使用\'(单引号)或\"(双引号),并且它们必须在每个字符串的开头和结尾匹配。在你的程序中,建议保持一致在整个过程中使用单引号或双引号给定的脚本。脚本的每个语句通常应以分号结尾,但 Earth Engine 的代码编辑器并不要求它。

      var city=\'San Francisco\';
      如果打印变量city ,您将获得存储在控制台中打印的变量 (San Francisco) 中的值。
      print(city);

      当你分配文本值时,变量会自动分配类型string。还可以将数字分配给变量并创建number类型的变量。以下代码创建一个名为“population”的新变量,并指定一个数字作为其值。
      var population=873965;
      print(population);

      2.2列表
      能够在单个变量中存储多个值很有帮助。JavaScript 提供了一种称为列表的数据结构,可以保存多个值。我们可以使用方括号[]创建一个新列表,并添加用逗号分隔的多个值。

      var cities=[\'San Francisco\', \'Los Angeles\', \'New York\', \'Atlanta\'];
      print(cities);

      如果你查看控制台中的输出,你将看到“List”旁边有一个扩展箭头。单击箭头将展开列表并显示其内容。除了列表中的四个项目之外,每个值旁边还有一个数字。这是每个项目的索引,它允许你使用指示列表中位置的数值来引用列表中的每个项目。

      2.3对象
      列表允许你在单个容器变量中存储多个值。虽然有用,但不适合存储结构化数据。能够用名称而不是位置来引用每个项目是很有帮助的。JavaScript 中的对象允许你存储键值对,其中每个值都可以通过其键引用。你可以使用花括号{}创建字典。下面的代码创建一个名为cityData的对象,其中包含有关旧金山的一些信息。

      请注意此处有关 JavaScript 语法的一些重要事项。首先,我们可以使用多行来定义对象。只有当我们输入分号(;)时,命令才被认为是完整的。这有助于格式化代码以使其更具可读性。另请注意变量名称cityData的选择。该变量包含两个单词。第一个单词小写,第二个单词的第一个字母大写。这种将多个单词连接成一个变量名的命名方案称为“驼峰式命名法”。虽然不强制使用此方案命名变量,但它被认为是值得遵循的良好实践。Earth Engine API 中的函数和参数遵循此约定。

      var cityData={
      \'city\': \'San Francisco\',
      \'coordinates\':[-122.4194,37.7749],
      \'population\':873965
      };
      print(cityData);
      //其中coordinates是个列表,键值对之间用:连接。

      该对象将在控制台中打印。可以看到,每个项目都有一个标签,而不是数字索引。这称为键,可用于检索项目的值。

      2.4功能
      使用 Earth Engine 时,你需要定义自己的函数。函数接受用户输入,使用它们来执行一些计算,然后发回输出。函数允许你将一组操作组合在一起,并使用不同的参数重复相同的操作,而不必每次都重写它们。函数是使用function 关键字定义的。下面的代码定义了一个名为greet的函数,它接受一个名为name的输入,并返回一个带有Hello 前缀的问候语。我们可以使用不同的输入调用该函数,并且它会使用相同的代码生成不同的输出。

      函数里面可以包括函数,此时print函数里面是greet的函数

      var greet=function(name){
      return \'Hello \' + name;
      };
      print(greet(\'World\'));
      print(greet(\'Readers\'));
      var greet=function(name){
      return \'Hello \' + name;
      };
      print(greet(\'World\'));
      print(greet(\'Readers\'));

      2.5注释
      在编写代码时,添加一些文本来解释代码或为自己留下注释是很有用的。始终在解释每个步骤的代码中添加注释是一种良好的编程习惯。在 JavaScript 中,您可以在任何行前面加上两个正斜杠//使其成为注释。注释中的文本将被解释器忽略并且不会被执行。

      // This is a comment!
      代码编辑器还提供了一个快捷键(Windows 上为Ctrl + /,Mac 上为Cmd + /)来一次注释或取消注释多行。可以选择多行并按组合键将它们全部注释。再按一次可反转操作。这在调试代码以阻止脚本的某些部分执行时很有用。

      第 3节 Earth Engine API 基础知识
      Earth Engine API 非常庞大,提供了对象和方法来执行从简单数学到高级图像处理算法的所有操作。在代码编辑器中,可以切换到“文档”(docs)选项卡以查看按对象类型分组的 API 函数。API 函数具有前缀ee (代表 Earth Engine)。

      让我们学习如何使用 API。假设你想要将两个数字相加,由变量a 和b表示,如下所示。创建一个新脚本并输入以下内容:
      var a = 1;
      var b = 2;

      学习了如何在变量中存储数字,但没有学习如何进行任何计算。这是因为使用 Earth Engine 时,不会使用 JavaScript 运算符进行加法。假设你不会编写“var c=a + b”来将两个数字相加。相反,Earth Engine API 为您提供了执行此操作的函数,并且尽可能使用 API 函数非常重要,但使用这些函数(正如我们将在下面描述的那样)将帮助你避免超时并创建高效的代码。

      查看“文档”选项卡,你会发现一组可以在ee 上调用的方法。展开它以查看可用于处理数字的各种函数。你会看到ee.Number 函数,根据值创建 Earth Engine 数字对象。在函数列表中,有一个add 函数,用于将两个数字相加。这就是你用来添加a 和b 的方法。

      为了添加a 和b ,我们首先创建一个ee 变量a 和ee中的数字对象。然后我们可以使用add (b)调用将b 的值添加到其中。以下代码显示了语法并打印结果,当然,结果是值3。

      var result=ee.Number(a).add(b);
      print(result);

      在学习 Earth Engine 中编程时,你不需要深入学习 JavaScript 或 Python,相反,它们是访问 Earth Engine API 的方法。无论是从 JavaScript 还是从 Python 调用,该 API 都是相同的。

      这是另一个例子来说明这一点。假设你正在执行一项任务,要求您创建一个从1980年到2020年(间隔五年)的年份列表。面临此任务,第一步是切换到“文档”选项卡并打开ee 列表模块。浏览这些函数,看看是否有任何可以提供帮助的函数。你会注意到一个函数ee中列表序列。单击它将显示该函数的文档。

      函数ee.List.sequence 能够生成从给定起始值到结束值的数字序列。它还具有一个可选参数步骤来指示每个数字之间的增量。我们可以创建一个ee。通过使用以下值调用此预定义函数,表示从1980年到2020年的数字列表,以5为单位: start=1980、 end=2020和 step= 5。
      var yearList=ee.List.sequence(1980,2020,5);
      print(yearList);

      控制台中打印的输出将显示变量yearList 确实包含具有正确间隔的年份列表。
      输出结果为[1980,1985,1990,1995,2000,2005,2010,2015,2020]

  • 昵称:
  • 评分: 2分|鲜花一捧 1分|一朵小花 0分|交流灌水 0分|别字捉虫 -1分|一块小砖 -2分|砖头一堆
  • 内容:
  •             注:1.评论时输入br/即可换行分段。
  •                 2.发布负分评论消耗的月石并不会给作者。
  •             查看评论规则>>