天天看點

Google Earth Engine谷歌地球引擎JavaScript代碼基礎規則與語句1 JavaScript代碼基礎規則2 JavaScript代碼基礎函數與語句

  本文主要對GEE中的JavaScript代碼基礎規則與語句、函數等加以介紹。本文是谷歌地球引擎(Google Earth Engine,GEE)系列教學文章的第九篇,更多GEE文章請參考專欄:GEE學習與應用(https://blog.csdn.net/zhebushibiaoshifu/category_11081040.html)。

  在前面的八篇GEE推文中,我們對GEE的基本與主要操作加以了詳細介紹與應用實踐;通過前八篇文章,我們初步了解了GEE的簡單規則與應用。有了初步的了解,我們便可以開始更為深入的學習;是以,從本篇推文開始,我們就将對GEE的代碼細節與實際應用加以進一步的、更為廣泛且細緻的介紹與實踐。那麼,本文先從前面幾篇推文沒有提及的JavaScript語言代碼基礎規則與語句、函數等入手,進行細緻梳理。

1 JavaScript代碼基礎規則

  本部分介紹JavaScript代碼的基礎規則。其中,以下每一條為一個規則。

  • 每一行代碼都需要以分号

    ;

    結尾:
var my_age=18;
           

複制

  • 利用關鍵詞

    var

    創造新變量:
var my_age=18;
           

複制

  • 利用括号

    ()

    傳遞函數的參數:
print("My name is GIS");
           

複制

  • 文本等

    String

    格式資料以單引号

    ''

    或雙引号

    ""

    作為起止符号:
var string_data="My name is GIS";
           

複制

  • List

    格式資料以方括号

    []

    作為起止符号:
var list_data=["my","name","is","GEE"];
           

複制

  • List

    格式資料初始下标為 。
  • 方括号

    []

    可以用來通過

    key

    值擷取字典的

    value

    值:
print(dict_data["Name"]);
           

複制

  • 點符号

    .

    亦可以用來通過

    key

    值擷取字典的

    value

    值:
print(dict_data.Name);
           

複制

  • 字典格式資料通過大括号

    {}

    進行定義:
var dict_data={"Name":"GIS","Age":"18","Home":"Henan"};
           

複制

  • 兩個正斜杠

    //

    可以作為注釋的開始:
var my_name="GIS";//Define my name.
           

複制

  • 多行内容注釋可以用

    /```作為開始,用```/

    作為結束:
var my_name="GIS";
/*
Here
is
a
multi-line
comments
*/
           

複制

2 JavaScript代碼基礎函數與語句

  本部分介紹JavaScript代碼的基礎函數與語句。其中,以下每一段為一個方面的函數或語句。

  在Google Earth Engine谷歌地球引擎栅格代數與NDVI計算中,我們運用了

.subtract()

函數表示波段之間進行相減的操作;而若參與運算的參數均為常數(即參數不含圖像),我們還可以直接通過數學符号進行運算:

print(3-2);
           

複制

Google Earth Engine谷歌地球引擎JavaScript代碼基礎規則與語句1 JavaScript代碼基礎規則2 JavaScript代碼基礎函數與語句

  我們可以在

print()

函數中,增加用單引号或雙引号表示的字元串格式的内容,進而對即将列印的内容加以描述:

print("Subtracting two from three equals:",3-2);
           

複制

Google Earth Engine谷歌地球引擎JavaScript代碼基礎規則與語句1 JavaScript代碼基礎規則2 JavaScript代碼基礎函數與語句

  對于一些常用的操作步驟,我們可以将其封裝至一個函數中,進而提升代碼運作效率。例如以下兩個函數,我們分别首先對其加以定義,随後通過

print()

函數加以調用:

var hello=function(string){
  return "Hello "+string+"!";
};

print(hello("GISer"));

var my_add=function(a){
  return a+7;
};

var b=100;
print(b+" plus 7 is:"+my_add(b));
           

複制

Google Earth Engine谷歌地球引擎JavaScript代碼基礎規則與語句1 JavaScript代碼基礎規則2 JavaScript代碼基礎函數與語句

  在Google Earth Engine谷歌地球引擎資料導入與篩選顯示中,我們通過搜尋的方式導入了GEE内置的遙感影像資料與各類矢量資料;而在實際應用中,我們往往通過代碼調用的方式導入需要的資料。例如,通過如下代碼導入Landsat 5 Collection 1 Tier 1的大氣表觀反射率TOA Reflectance産品;其中,

Path

Row

号分别為

123

032

(覆寫北京市),成像時間為2010年06月05日。

var landsat_5=ee.Image("LANDSAT/LT05/C01/T1_TOA/LT05_123032_20100605");
           

複制

  導入資料完畢後,我們可以通過

Map.setCenter()

函數,将互動式地圖的顯示位置自動定位到指定的位置。其中,前兩個參數為指定點的經度與緯度,地圖将以這個點為中心進行定位;第三個參數為地圖的縮放比例系數,其數值越大表示縮放的精度越高——一般的,縮放比例系數為

1

時即為全球視野,為

5

時即為大洲視野,為

10

時即為城市視野,為

15

時即為街道視野,為

20

時則為建築物視野。例如,将縮放比例系數固定為

17

,執行如下代碼,就可以看到新街口外大街與西側的北京師範大學。

Map.setCenter(116.36863, 39.961029,17);
//Map.addLayer(landsat_5,{},"LANDSAT5");
           

複制

Google Earth Engine谷歌地球引擎JavaScript代碼基礎規則與語句1 JavaScript代碼基礎規則2 JavaScript代碼基礎函數與語句

歡迎關注公衆号:瘋狂學習GIS