دیداری‌سازی تصاویر و باندهای تصویر

اکنون که آماده شروع نوشتن جاوا اسکریپت Earth Engine هستید، با کپی کردن کد زیر در «ویرایشگر کد» شروع کنید:

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

// Instantiate an image with the Image constructor.
var image = ee.Image('CGIAR/SRTM90_V4');

// Zoom to a location.
Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon.

// Display the image on the map.
Map.addLayer(image);

روی دکمه اجرا در بالای «ویرایشگر کد» کلیک کنید و ببینید که تصویری بسیار خاکستری روی نقشه ظاهر می‌شود. نگران نباشید، به‌زودی آن را بهتر خواهید کرد. اگر نحو هر بخشی از این مثال ناآشنا است، حتماً آموزش جاوا اسکریپت برای Earth Engine را مرور کنید.

سازنده تصویر

اولین چیز جدید در این مثال سازنده تصویر ee.Image() است. آرگومان ارائه‌شده به سازنده، شناسه رشته‌ای تصویر در کاتالوگ داده Earth Engine است. (برای دیدن فهرست کامل آرگومان‌های ممکن برای سازنده تصویر، به برگه اسناد در سمت چپ «ویرایشگر کد» مراجعه کنید. برگه اسناد نشان‌دهنده به‌روزترین اطلاعات درباره کارهایی است که Earth Engine می‌تواند انجام دهد.)

برای پیدا کردن شناسه تصویر، بااستفاده از ابزار جستجو در بالای «ویرایشگر کد»، در کاتالوگ داده Earth Engine جستجو کنید. برای مثال، «elevation» (ارتفاع) را در فیلد جستجو تایپ کنید و توجه داشته باشید که فهرستی از شطرنجی‌ها برگردانده می‌شود. روی ورودی «SRTM Digital Elevation Data Version 4» کلیک کنید تا اطلاعات بیشتری درباره آن مجموعه داده ببینید. در سمت چپ شرح مجموعه داده، فیلد شناسه تصویر قرار دارد. توجه داشته باشید که شناسه تصویر در مثال از شناسه تصویر نشان‌داده‌شده در شرح مجموعه داده کپی شده است.

جایگزین کپی و جای‌گذاری کردن شناسه‌های تصویر، استفاده از دکمه وارد کردن در شرح مجموعه داده یا پیوند وارد کردن در سمت راست نتایج جستجو است. اگر روی پیوند یا دکمه وارد کردن کلیک کنید، متغیری به‌طور خودکار در بخش ویژه‌ای به‌نام «واردشده‌ها» در بالای نوشتار شما ایجاد می‌شود. می‌توانید با کلیک کردن روی نام متغیر در بخش وارد کردن، نام آن را تغییر دهید.

درحال پیکربندی نقشه

بخش جدید دوم این مثال، فراخوانی Map.setCenter() است. این روش در شیء Map، که نمایش Map را در «ویرایشگر کد» نشان می‌دهد، نقشه را در طول و عرض جغرافیایی داده‌شده (به درجه اعشاری) و سطح بزرگ‌نمایی موردنظر قرار می‌دهد که در آن ۱ کوچک‌نمایی شده است تا نقشه کل سطح زمین را نشان دهد. اعداد بزرگ‌تر از آنجا زوم‌پیش می‌کنند. با بررسی بخش «نقشه» در برگه اسناد در سمت راست «ویرایشگر کد»، همه روش‌های موجود در شیء Map را کاوش کنید.

افزودن لایه به نقشه

خط آخر در مثال می‌گوید: از روش addLayer() شیء Map برای افزودن تصویر به نمایش نقشه در «ویرایشگر کد» استفاده کنید.

تبریک! اولین دستورات Earth Engine خود را ایجاد کردید. در بخش بعدی، یاد می‌گیرید که چگونه آن تصویر را کمی بهتر کنید.

Digression: Images in Earth Engine

تصاویر در Earth Engine (برای جزئیات بیشتر، این صفحه را ببینید) از یک یا چند باند تشکیل شده‌اند. هر باند در تصویر نام، مقادیر پیکسل، وضوح پیکسل، و طرح‌افکنی خودش را دارد. همان‌طور که به‌زودی متوجه خواهید شد، تصویر SRTM یک باند دارد: «ارتفاع».

وقتی بااستفاده از Map.addLayer() تصویری را به نقشه اضافه می‌کنید، Earth Engine باید تعیین کند که چگونه مقادیر موجود در باند(های) تصویر را به رنگ‌های روی نمایشگر نگاشت کند. اگر تصویر تک‌باندی به نقشه اضافه شود، Earth Engine به‌طور پیش‌فرض باند را در مقیاس خاکستری نمایش می‌دهد، که در آن حداقل مقدار به سیاه و حداکثر مقدار به سفید اختصاص داده می‌شود. اگر حداقل و حداکثر را مشخص نکنید، Earth Engine از مقادیر پیش‌فرض استفاده خواهد کرد. برای مثال، تصویری که به‌تازگی به نقشه اضافه کرده‌اید به‌صورت تصویر خاکستری نمایش داده می‌شود که تا محدوده کامل داده‌ها یا عدد صحیح ۱۶ بیتی علامت‌دار [-۳۲۷۶۸، ۳۲۷۶۷] کشیده شده است. (به‌طور پیش‌فرض، باندهای float به [0, 1] و باندهای byte به [0, 255] کشیده می‌شوند).

می‌توانید نوع داده تصویر را با چاپ کردن آن و بررسی شیء تصویر در برگه کنسول پیدا کنید. برای مثال، کد زیر را بعداز کد قبلی جای‌گذاری کنید:

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

print('SRTM image', image);

وقتی روی «اجرا» کلیک می‌کنید، توجه داشته باشید که شیئی در کنسول ظاهر می‌شود. برای بررسی ویژگی‌های شیء، با کلیک کردن روی دکمه بازشونده () در سمت راست شیء یا ویژگی، آن را ازهم باز کنید. شیء تصویر، ویژگی «bands»، باند «elevation» در نمایه «0»، و ویژگی «data_type» باند «elevation» را ازهم باز کنید تا متوجه شوید که نوع داده signed int16 است.

درحال سفارشی‌سازی کردن تصویرسازی لایه

برای تغییر نحوه کشیده شدن داده‌ها، می‌توانید پارامتر دیگری را به فراخوانی Map.addLayer() ارائه دهید. به‌طور خاص، پارامتر دوم، visParams، به شما امکان می‌دهد حداقل و حداکثر مقادیر را برای نمایش مشخص کنید. برای کشف مقادیری که باید استفاده کنید، برگه بازرس را فعال کنید و روی نقشه کلیک کنید تا ایده‌ای از محدوده مقادیر پیکسل به‌دست آورید. یا از مدیر لایه برای گسترش تعاملی داده‌ها استفاده کنید، سپس حداقل و حداکثر مربوط به صدک‌ها یا گسترش‌های انحراف معیار را مشاهده کنید. فرض کنید ازطریق چنین آزمایشی، تعیین می‌کنید که داده‌ها باید به [۰، ۳۰۰۰] گسترش یابند. برای نمایش تصویر بااستفاده از این محدوده، از این مورد استفاده کنید:

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

Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');

توجه داشته باشید که پارامتر visParams یک شیء است، با ویژگی‌هایی که min و max را مشخص می‌کنند. (درباره اشیاء جاوا اسکریپت از آموزش جاوا اسکریپت یا این مرجع خارجی بیشتر بدانید). توجه داشته باشید که پارامتر سوم برای Map.addLayer() نام لایه‌ای است که در مدیر لایه نمایش داده می‌شود. نتیجه باید چیزی شبیه به شکل ۱ باشد. موشواره را روی چارگوش لایه‌ها در سمت چپ نگه دارید تا تأثیر تغییر نام آن لایه را ببینید.

Tutorial_api_01_elevation.png
شکل ۱. تصویر ارتفاع به‌صورت طیف خاکستری، کشیده‌شده به [۰، ۳۰۰۰].

برای نمایش یک باند بااستفاده از پالت رنگ، ویژگی palette را به شیء visParams اضافه کنید:

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

Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']},
    'custom palette');

نتیجه باید چیزی شبیه به شکل ۲ باشد.

Tutorial_api_02_palette.png
شکل ۲. تصویر ارتفاع به‌عنوان شیب رنگ از آبی به قرمز، کشیده‌شده به [0, 3000].

انحراف: پالت‌ها

پالت‌ها به شما امکان می‌دهند طرح رنگ را برای تصاویر تک‌باندی تنظیم کنید. پالت فهرستی از رشته‌های رنگی است که با ویرگول از هم جدا شده‌اند و به‌صورت خطی بین مقادیر حداکثر و حداقل در پارامترهای تجسم (یا پیش‌فرض‌ها براساس نوع باند، همان‌طور که قبلاً توضیح داده شد) درون‌یابی می‌شوند. برای مثال، پیکسل‌های کمتر یا مساوی با حداقل با اولین رنگ در فهرست نمایش داده می‌شوند؛ پیکسل‌های بیشتر یا مساوی با حداکثر با آخرین رنگ در فهرست نمایش داده می‌شوند. رنگ‌های واسطه به‌صورت خطی به مقادیر پیکسل واسطه کشیده می‌شوند.

رنگ‌ها بااستفاده از طرح مقدار رنگ CSS استاندارد وب تعریف می‌شوند (برای اطلاعات بیشتر، این مرجع خارجی را ببینید). رنگ‌ها را می‌توان با نام یا به‌عنوان رشته‌های شانزده‌شانزدهی که نشان‌دهنده ترکیب قرمز، سبز، و آبی است مشخص کرد. پایین‌ترین مقدار در هریک از این سه جایگاه 00 است (که نشان‌دهنده عدد اعشاری 0 است)، درحالی‌که بالاترین مقدار FF است (که نشان‌دهنده عدد اعشاری 255 است). رشته «000000» نشان‌دهنده رنگ سیاه، «FFFFFF» سفید، «FF0000» قرمز، «00FF00» سبز، و «0000FF» آبی است. برای جزئیات بیشتر، بخش پالت‌های رنگ را ببینید. بااستفاده از «توصیف‌کننده‌های لایه سبک‌دار» که در این بخش شرح داده شده است، می‌توان کشیدگی‌های دیگری را نیز اعمال کرد.

در ادامه این آموزش، نحوه نمایش تصاویر چندباندی را یاد خواهید گرفت. اما ابتدا، به صفحه بعدی بروید تا با انجام محاسبات با تصاویر آشنا شوید.