การแสดงภาพและแถบรูปภาพ

เมื่อพร้อมที่จะเริ่มเขียน JavaScript ของ Earth Engine แล้ว ให้เริ่มโดยการคัดลอกโค้ดต่อไปนี้ลงในเครื่องมือแก้ไขโค้ด

โปรแกรมแก้ไขโค้ด (JavaScript)

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

คลิกปุ่มเรียกใช้ที่ด้านบนของเครื่องมือแก้ไขโค้ด แล้วสังเกตว่ารูปภาพสีเทา จางๆ จะปรากฏบนแผนที่ ไม่ต้องกังวล คุณจะทำให้ดูดีขึ้นได้ในเร็วๆ นี้ หาก ไม่คุ้นเคยกับไวยากรณ์ของส่วนใดส่วนหนึ่งในตัวอย่างนี้ โปรดดูบทแนะนำ JavaScript สำหรับ Earth Engine

Image Constructor

สิ่งใหม่แรกในตัวอย่างนี้คือตัวสร้างรูปภาพ ee.Image() อาร์กิวเมนต์ที่ระบุให้กับตัวสร้างคือรหัสสตริงของรูปภาพในแคตตาล็อกข้อมูล Earth Engine (ดูแท็บ Docs ทางด้านซ้าย ของเครื่องมือแก้ไขโค้ดเพื่อดูรายการอาร์กิวเมนต์ทั้งหมดที่อาจใช้กับตัวสร้างรูปภาพ แท็บเอกสารแสดงข้อมูลล่าสุดเกี่ยวกับสิ่งที่ Earth Engine ทำได้)

หากต้องการค้นหารหัสรูปภาพ ให้ค้นหาในแคตตาล็อกข้อมูลของ Earth Engine โดยใช้เครื่องมือค้นหา ที่ด้านบนของโปรแกรมแก้ไขโค้ด เช่น พิมพ์ "ความสูง" ลงในช่องค้นหา แล้วสังเกตว่าระบบจะแสดงรายการแรสเตอร์ คลิกรายการ "ข้อมูลระดับความสูงแบบดิจิทัล SRTM เวอร์ชัน 4" เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับชุดข้อมูลนั้น ฟิลด์รหัสรูปภาพจะอยู่ทางด้านขวาของคำอธิบายชุดข้อมูล โปรดสังเกตว่ารหัสรูปภาพใน ตัวอย่างคัดลอกมาจากรหัสรูปภาพที่แสดงในคำอธิบายชุดข้อมูล

อีกวิธีหนึ่งแทนการคัดลอกและวางรหัสรูปภาพคือการใช้ปุ่มนำเข้า ในคำอธิบายชุดข้อมูลหรือลิงก์นำเข้าทางด้านขวา ของผลการค้นหา หากคลิกลิงก์หรือปุ่มนำเข้า ระบบจะสร้างตัวแปรโดยอัตโนมัติในส่วนพิเศษชื่อ "การนำเข้า" ที่ด้านบนของสคริปต์ คุณเปลี่ยนชื่อตัวแปรได้โดยคลิกชื่อตัวแปรในส่วน การนำเข้า

การกำหนดค่าแผนที่

ส่วนใหม่ที่ 2 ของตัวอย่างนี้คือการเรียกใช้ Map.setCenter() เมธอดนี้ ในออบเจ็กต์ Map ซึ่งแสดงถึงการแสดงแผนที่ในตัวแก้ไขโค้ด จะจัดกึ่งกลางแผนที่ที่ลองจิจูด ละติจูด (ในหน่วยองศาทศนิยม) และ ระดับการซูมที่กำหนด โดยที่ 1 คือการซูมออกเพื่อให้แผนที่แสดงพื้นผิวโลกทั้งหมด ตัวเลขที่ใหญ่กว่า จะซูมเข้าจากตรงนั้น ดูเมธอดทั้งหมดในออบเจ็กต์ Map โดย ตรวจสอบส่วนแผนที่ในแท็บเอกสาร ทางด้านซ้ายของโปรแกรมแก้ไขโค้ด

การเพิ่มเลเยอร์ลงในแผนที่

บรรทัดสุดท้ายในตัวอย่างระบุว่า ให้ใช้วิธี Mapobject's addLayer() เพื่อเพิ่มรูปภาพลงในแผนที่ที่แสดงในตัวแก้ไขโค้ด

ยินดีด้วย คุณได้สร้างสคริปต์ Earth Engine แรกแล้ว ในส่วนถัดไป คุณจะได้ดูวิธีทำให้รูปภาพนั้นดูดีขึ้นเล็กน้อย

นอกเรื่อง: รูปภาพใน Earth Engine

รูปภาพใน Earth Engine (ดูรายละเอียดเพิ่มเติมได้ที่หน้านี้) ประกอบด้วย แถบอย่างน้อย 1 แถบ แต่ละแถบในรูปภาพจะมีชื่อ ค่าพิกเซล ความละเอียดของพิกเซล และการฉายภาพของตัวเอง ดังที่คุณจะเห็นในไม่ช้า รูปภาพ SRTM มีแถบเดียวคือ "ความสูง"

เมื่อคุณเพิ่มรูปภาพลงในแผนที่โดยใช้ Map.addLayer() Earth Engine จะต้อง พิจารณาวิธีแมปค่าในแถบรูปภาพกับสีบนจอแสดงผล หากเพิ่มรูปภาพแบบแถบเดียวลงในแผนที่ Earth Engine จะแสดงแถบเป็นเฉดสีเทาโดยค่าเริ่มต้น โดยกำหนดค่าต่ำสุดเป็นสีดำ และค่าสูงสุดเป็นสีขาว หากคุณไม่ได้ระบุค่าต่ำสุดและสูงสุดที่ควรจะเป็น Earth Engine จะใช้ค่าเริ่มต้น เช่น รูปภาพที่คุณเพิ่งเพิ่มลงในแผนที่จะแสดงเป็น รูปภาพระดับสีเทาที่ขยายให้ครอบคลุมช่วงข้อมูลทั้งหมด หรือจำนวนเต็ม 16 บิตที่มีการลงนาม [-32768, 32767] (โดยค่าเริ่มต้น ระบบจะขยายแถบ float เป็น [0, 1] และขยายแถบ byte เป็น [0, 255])

คุณดูประเภทข้อมูลของรูปภาพได้โดยการพิมพ์รูปภาพและตรวจสอบออบเจ็กต์รูปภาพ ในแท็บคอนโซล เช่น วางโค้ดต่อไปนี้หลังโค้ดก่อนหน้า

โปรแกรมแก้ไขโค้ด (JavaScript)

print('SRTM image', image);

เมื่อคลิกเรียกใช้ โปรดสังเกตว่าออบเจ็กต์จะปรากฏในคอนโซล หากต้องการตรวจสอบพร็อพเพอร์ตี้ของออบเจ็กต์ ให้ขยายโดยคลิกไอคอนซิป () ทางด้านซ้ายของออบเจ็กต์หรือพร็อพเพอร์ตี้ ขยายออบเจ็กต์รูปภาพ พร็อพเพอร์ตี้ "bands" แถบ "elevation" ที่ดัชนี "0" และพร็อพเพอร์ตี้ "data_type" ของแถบ "elevation" เพื่อดูว่าเป็น ประเภทข้อมูล signed int16

การปรับแต่งการแสดงภาพเลเยอร์

หากต้องการเปลี่ยนวิธีขยายข้อมูล คุณสามารถระบุพารามิเตอร์อื่นให้กับ การเรียกใช้ Map.addLayer() ได้ โดยเฉพาะพารามิเตอร์ที่ 2 visParams จะช่วยให้คุณระบุค่าต่ำสุดและสูงสุดที่จะแสดงได้ หากต้องการ ดูค่าที่จะใช้ ให้เปิดใช้งาน แท็บเครื่องมือตรวจสอบ แล้วคลิกไปรอบๆ แผนที่เพื่อดูช่วงค่าพิกเซล หรือใช้เครื่องมือจัดการเลเยอร์เพื่อยืดข้อมูลแบบอินเทอร์แอกทีฟ จากนั้นสังเกตค่าต่ำสุดและสูงสุดที่สอดคล้องกับการยืดเปอร์เซ็นไทล์หรือส่วนเบี่ยงเบนมาตรฐาน สมมติว่าจากการทดลองดังกล่าว คุณพบว่าควรขยายข้อมูลเป็น [0, 3000] หากต้องการแสดงรูปภาพโดยใช้ช่วงนี้ ให้ใช้

โปรแกรมแก้ไขโค้ด (JavaScript)

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

โปรดทราบว่าพารามิเตอร์ visParams เป็นออบเจ็กต์ที่มีพร็อพเพอร์ตี้ที่ระบุ min และ max (ดูข้อมูลเพิ่มเติมเกี่ยวกับออบเจ็กต์ JavaScript ได้จากบทแนะนำ JavaScript หรือข้อมูลอ้างอิงภายนอกนี้) โปรดทราบว่าพารามิเตอร์ที่ 3 สำหรับ Map.addLayer() คือชื่อของเลเยอร์ที่แสดงในเครื่องมือจัดการเลเยอร์ ผลลัพธ์ควรมีลักษณะคล้ายกับรูปที่ 1 วางเมาส์เหนือช่องเลเยอร์ทางด้านขวาเพื่อดูผลลัพธ์ของการเปลี่ยนชื่อเลเยอร์นั้น

Tutorial_api_01_elevation.png
รูปที่ 1 รูปภาพระดับความสูงเป็นระดับสีเทา โดยขยายเป็น [0, 3000]

หากต้องการแสดงแถบเดียวโดยใช้ชุดสี ให้เพิ่มพร็อพเพอร์ตี้ palette ลงในออบเจ็กต์ visParams

โปรแกรมแก้ไขโค้ด (JavaScript)

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

ผลลัพธ์ควรมีลักษณะคล้ายกับรูปที่ 2

Tutorial_api_02_palette.png
รูปที่ 2 รูปภาพระดับความสูงเป็นแถบสีจากสีน้ำเงินเป็นสีแดง ซึ่งขยายเป็น [0, 3000]

นอกเรื่อง: จานสี

ชุดสีช่วยให้คุณตั้งค่ารูปแบบสีสำหรับรูปภาพแถบเดียวได้ จานสีคือรายการสตริงสีที่คั่นด้วยคอมมา ซึ่งมีการประมาณค่าเชิงเส้นระหว่างค่าสูงสุดและ ค่าต่ำสุดในพารามิเตอร์การแสดงข้อมูล (หรือค่าเริ่มต้นตามประเภทแถบ ตามที่อธิบายไว้ก่อนหน้านี้) เช่น พิกเซลที่น้อยกว่าหรือเท่ากับค่าต่ำสุดจะ แสดงด้วยสีแรกในรายการ ส่วนพิกเซลที่มากกว่าหรือเท่ากับค่าสูงสุดจะ แสดงด้วยสีสุดท้ายในรายการ สีกลางจะ ขยายเชิงเส้นไปยังค่าพิกเซลกลาง

สีจะกำหนดโดยใช้รูปแบบค่าสี CSS มาตรฐานเว็บ (ดูข้อมูลอ้างอิงภายนอกนี้เพื่อดูข้อมูลเพิ่มเติม) คุณระบุสีได้โดยใช้ชื่อหรือสตริงเลขฐานสิบหกที่ระบุการผสมสีแดง เขียว และน้ำเงิน ค่าต่ำสุดในตำแหน่งใดตำแหน่งหนึ่งใน 3 ตำแหน่งคือ 00 (แสดงถึงเลขฐานสิบ 0) ส่วนค่าสูงสุดคือ FF (แสดงถึงเลขฐานสิบ 255) สตริง "000000" แสดงถึงสีดำ "FFFFFF" คือสีขาว "FF0000" คือสีแดง "00FF00" คือสีเขียว และ "0000FF" คือสีน้ำเงิน ดูรายละเอียดเพิ่มเติมได้ที่ส่วนจานสี คุณยังยืดหยุ่นได้อีกโดยใช้ตัวอธิบายเลเยอร์ที่มีสไตล์ตามที่อธิบายไว้ใน ส่วนนี้

ในบทแนะนำนี้ คุณจะได้เรียนรู้วิธีแสดงภาพหลายแถบในภายหลัง แต่ก่อนอื่น ไปที่หน้าถัดไปเพื่อดูข้อมูลเกี่ยวกับการคำนวณด้วยรูปภาพ