مقدمه‌ای بر جاوا اسکریپت برای Earth Engine

این آموزش گام‌به‌گام فقط به اندازه کافی JavaScript را پوشش می‌دهد تا بتوانید نوشتن اسکریپت‌های Earth Engine را شروع کنید. برای آموزش‌های کامل‌تر جاوا اسکریپت، این منابع توسعه‌دهنده Mozilla را ببینید. برای آشنایی با برنامه‌نویسی، با نمونه‌هایی در جاوا اسکریپت، Eloquent JavaScript را ببینید. برای پیشنهادهایی درباره سبک کدنویسی جاوا اسکریپت، به راهنمای سبک جاوا اسکریپت Google مراجعه کنید. در این آموزش، قرار است در ویرایشگر کد Earth Engine جاوا اسکریپت بنویسید. قبل‌از شروع، از راهنمای «ویرایشگر کد» برای آشنایی با محیط «ویرایشگر کد» استفاده کنید.

سلام به مردم دنیا!

وقت آن است که اولین جاوا اسکریپت خود را برای Earth Engine بنویسید! در مرورگر Chrome، به code.earthengine.google.com بروید و موارد زیر را در ویرایشگر کد کپی کنید:

ویرایشگر کد (جاوا اسکریپت)

print('Hello World!');

روی اجرا کلیک کنید و ببینید که «سلام دنیا!» در برگه کنسول چاپ شده است. خط بالا یک عبارت جاوا اسکریپت است. در جاوا اسکریپت، عبارت‌ها با نقطه ویرگول تمام می‌شوند. برنامه‌های Earth Engine از مجموعه‌ای از عبارت‌ها مانند این عبارت تشکیل شده‌اند. می‌توانید با نظر دادن درباره کد، از اجرای آن بدون حذف کردنش جلوگیری کنید. یکی از روش‌های تبدیل کد به توضیح، قرار دادن دو خط مورب // قبل‌از کدی است که نمی‌خواهید اجرا شود. برای مثال:

ویرایشگر کد (جاوا اسکریپت)

// print('Hello World!');

بهتر است نظرات زیادی در کدتان قرار دهید تا آنچه را که می‌خواهید انجام دهید شرح دهید. همچنین بهتر است کد نظر داده‌شده را که دیگر کاری انجام نمی‌دهد حذف کنید. هر دو این روال‌ها خوانایی کد را بهبود می‌بخشند.

انواع داده‌های جاوا اسکریپت پایه

رشته‌ها

استفاده از متغیرها برای ذخیره اشیا و انواع داده‌های اولیه به خوانایی کد کمک می‌کند. برای مثال، متغیری که شیء رشته‌ای را ذخیره می‌کند با گیومه تکی ' یا گیومه دوتایی " تعریف می‌شود (اما آن‌ها را باهم ترکیب نکنید)، گیومه تکی ترجیح داده می‌شود. رشته جدیدی بسازید و آن را در متغیری به‌نام greetString ذخیره کنید:

ویرایشگر کد (جاوا اسکریپت)

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

Numbers

توجه داشته باشید که متغیرها با کلمه کلیدی var تعریف می‌شوند. متغیرها همچنین می‌توانند اعداد را ذخیره کنند:

ویرایشگر کد (جاوا اسکریپت)

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

در این مثال، توجه کنید که وقتی به print() دو آرگومان داده می‌شود که با کاما از هم جدا شده‌اند، هر آرگومان در خط متفاوتی چاپ می‌شود.

فهرست‌ها

فهرست‌ها را با کروشه [] تعریف کنید. فهرستی از اعداد، برای مثال:

ویرایشگر کد (جاوا اسکریپت)

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

فهرست‌ها همچنین می‌توانند رشته‌ها یا اشیاء دیگر را ذخیره کنند. برای مثال:

ویرایشگر کد (جاوا اسکریپت)

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

اشیاء

اشیاء در جاوا اسکریپت واژه‌نامه‌های جفت‌های key: value هستند. بااستفاده از آکولاد {}، شیء (یا واژه‌نامه) بسازید، برای مثال:

ویرایشگر کد (جاوا اسکریپت)

// 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);

توجه داشته باشید که می‌توانید با ارائه کلید، مقداری را از واژه‌نامه دریافت کنید. این مثال نشان می‌دهد که چگونه این کار را برای اشیاء جاوا اسکریپت انجام دهید. بعداً یاد خواهید گرفت که چگونه این کار را برای فرهنگ‌های لغتی که در سرور Earth Engine هستند انجام دهید.

توابع

توابع روش دیگری برای بهبود خوانایی و قابلیت استفاده مجدد کد با گروه‌بندی مجموعه‌های عملیات هستند. تابعی را با کلمه کلیدی function تعریف کنید. نام تابع با حرف شروع می‌شود و یک جفت پرانتز در انتها دارد. توابع اغلب پارامترهایی دارند که به تابع می‌گویند چه کاری انجام دهد. این پارامترها داخل پرانتز () قرار می‌گیرند. مجموعه عبارت‌هایی که تابع را تشکیل می‌دهند داخل آکولاد قرار می‌گیرند. کلیدواژه return نشان می‌دهد که خروجی تابع چیست. چندین روش برای اعلام تابع وجود دارد، اما در اینجا از چیزی شبیه به این استفاده می‌کنیم:

ویرایشگر کد (جاوا اسکریپت)

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

بیایید خطوط را یکی‌یکی بررسی کنیم. خط اول تابع جدیدی ایجاد می‌کند و آن را به متغیر myFunction اختصاص می‌دهد. این متغیر می‌توانست هر نامی داشته باشد. این کد نحوه فراخوانی تابع را در آینده تعریف می‌کند. عبارت‌های داخل پرانتز بعداز نام تابع (یعنی parameter1،‏ parameter2،‏ parameter3) نام پارامترها هستند و می‌توانستند هر نام دیگری هم داشته باشند، هرچند بهتر است نام‌های منحصربه‌فردی به آن‌ها داده شود که با کد خارج از تابع متفاوت باشد. هر نامی که برای آن‌ها انتخاب کنید، این‌ها نام‌هایی هستند که تابع برای ارجاع به مقادیری که هنگام فراخوانی به تابع ارسال می‌شوند استفاده خواهد کرد. مقدار پارامتر پس‌از ارسال به تابع، شناسه نامیده می‌شود. اگرچه توابع می‌توانند از متغیرهای اعلام‌شده در خارج از تابع (متغیرهای سراسری) استفاده کنند، اما آرگومان‌های تابع در خارج از تابع قابل‌مشاهده نیستند. توابع می‌توانند هر تعداد پارامتر که نیاز دارید داشته باشند، حتی صفر. در اینجا نمونه ساده‌ای از تابعی که فقط متغیر مستقل خود را برمی‌گرداند آورده شده است:

ویرایشگر کد (جاوا اسکریپت)

// 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 آورده شده است:

ویرایشگر کد (جاوا اسکریپت)

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

در بخش بعدی، درباره اشیاء و روش‌های Earth Engine بیشتر بدانید.