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

เมื่อคุณพร้อมที่จะเริ่มเขียน 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

เครื่องมือสร้างรูปภาพ

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

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

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

กำลังกำหนดค่าแผนที่

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

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

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

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

การเปลี่ยนหัวข้อ: รูปภาพใน Earth Engine

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

เมื่อคุณเพิ่มรูปภาพลงในแผนที่โดยใช้ 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 ช่วยให้คุณระบุค่าต่ำสุดและสูงสุดที่จะแสดงได้ หากต้องการดูค่าที่ควรใช้ ให้เปิดใช้งานแท็บ Inspector แล้วคลิกไปรอบๆ แผนที่เพื่อดูช่วงค่าพิกเซล หรือจะใช้เครื่องมือจัดการเลเยอร์เพื่อยืดข้อมูลแบบอินเทอร์แอกทีฟ แล้วสังเกตค่าต่ำสุดและสูงสุดที่สอดคล้องกับเปอร์เซ็นไทล์หรือการยืดค่าเบี่ยงเบนมาตรฐานก็ได้ สมมติว่าจากการทดสอบดังกล่าว คุณพิจารณาว่าควรขยายข้อมูลเป็น [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]

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

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