Earth Engine-এর জন্য JavaScript-এর ভূমিকা

এই টিউটোরিয়ালে Earth Engine স্ক্রিপ্ট লেখা শুরু করার জন্য প্রয়োজনীয় JavaScript সম্পর্কে আলোচনা করা হয়েছে। JavaScript টিউটোরিয়াল সম্পর্কে আরও জানতে, Mozilla ডেভেলপারদের জন্য এইসব রিসোর্স দেখুন। জাভাস্ক্রিপ্টের উদাহরণ সহ প্রোগ্রামিংয়ের ভূমিকা জানতে, Eloquent JavaScript দেখুন। জাভাস্ক্রিপ্ট কোডিং স্টাইল সম্পর্কে সাজেশন পেতে, Google জাভাস্ক্রিপ্ট স্টাইল গাইড দেখুন। এই টিউটোরিয়ালে, আপনি Earth Engine কোড এডিটর-এ JavaScript লিখবেন। শুরু করার আগে, Code Editor-এর পরিবেশের সাথে পরিচিত হতে Code Editor-এর নির্দেশিকা ব্যবহার করুন।

হ্যালো ওয়ার্ল্ড!

Earth Engine-এর জন্য আপনার প্রথম JavaScript লেখার সময় এসে গেছে! আপনার Chrome ব্রাউজারে, code.earthengine.google.com লিঙ্কে যান এবং কোড এডিটর-এ নিম্নলিখিত কোড কপি করুন:

কোড এডিটর (জাভাস্ক্রিপ্ট)

print('Hello World!');

রান করুন বিকল্পে ক্লিক করুন এবং দেখুন যে 'Hello world!' Console ট্যাবে প্রিন্ট করা হয়েছে। উপরের লাইনটি হল একটি জাভাস্ক্রিপ্ট স্টেটমেন্ট। JavaScript-এ, স্টেটমেন্ট সেমিকোলন দিয়ে শেষ হয়। 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);

মনে রাখবেন, আপনি 'কী' প্রদান করে ডিকশনারি থেকে ভ্যালু পেতে পারেন। এই উদাহরণ আপনাকে দেখায় যে JavaScript অবজেক্টের জন্য কীভাবে এটি করতে হয়। 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 অবজেক্ট ও পদ্ধতি সম্পর্কে আরও জানুন।