مقدمه ای بر JavaScript for Earth Engine

این آموزش فقط به اندازه کافی جاوا اسکریپت را پوشش می دهد تا بتوانید نوشتن اسکریپت های Earth Engine را شروع کنید. برای آموزش های کامل تر جاوا اسکریپت، این منابع توسعه دهنده موزیلا را ببینید. برای مقدمه ای بر برنامه نویسی، با مثال هایی در جاوا اسکریپت، به Eloquent JavaScript مراجعه کنید. برای پیشنهادات در مورد سبک کدنویسی جاوا اسکریپت، به راهنمای سبک جاوا اسکریپت Google مراجعه کنید. در این آموزش، شما قصد دارید جاوا اسکریپت را در ویرایشگر کد موتور زمین بنویسید. قبل از شروع، از راهنمای Code Editor برای آشنایی با محیط Code Editor استفاده کنید.

سلام دنیا!

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

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

print('Hello World!');

روی Run کلیک کنید و "Hello world!" در تب Console چاپ می شود. خط بالا یک عبارت جاوا اسکریپت است. در جاوا اسکریپت، دستورات به نقطه ویرگول ختم می شوند. برنامه های 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);

اعداد

توجه داشته باشید که متغیرها با کلمه کلیدی 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);

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