เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การแปลงระหว่าง CRS/การฉายภาพ

การแปลงจาก CRS หรือการฉายภาพหนึ่งไปยังอีกรูปแบบหนึ่งทำได้ผ่านเมธอด spTransform() ในแพ็กเกจ rgdal โดย spTransform() รองรับออบเจกต์ sp ทุกประเภท รวมถึง SpatialPolygonsDataFrame แต่ไม่สามารถใช้กับออบเจกต์ raster ได้ เนื่องจากการแปลง raster มีความซับซ้อนกว่า กล่าวคือ กริดสี่เหลี่ยมที่ถูกแปลงแล้วอาจไม่เป็นสี่เหลี่ยมอีกต่อไป หากสนใจเรื่องการแปลง raster สามารถดูได้ที่ ?raster::projectRaster

ขั้นตอนการแปลงนั้นไม่ซับซ้อน อาร์กิวเมนต์แรกของ spTransform() คือ x ซึ่งเป็นออบเจกต์เชิงพื้นที่ที่ต้องการแปลง และอาร์กิวเมนต์ที่สองคือ CRS ซึ่งระบุ CRS ที่ต้องการ สามารถระบุ CRS ด้วย PROJ4 string ที่สร้างขึ้นเองได้ แต่วิธีที่ง่ายกว่าคือนำมาจากออบเจกต์ที่มีอยู่แล้ว เช่น ใช้ฟังก์ชัน proj4string()

มาปรับให้ชุดข้อมูล polygon ทั้งสองอยู่ใน CRS เดียวกันกันเถอะ

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การสร้างภาพข้อมูลภูมิสารสนเทศใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • แปลง neighborhoods ให้มี CRS เดียวกับ nyc_tracts โดยใช้ spTransform() โดยตั้งค่าอาร์กิวเมนต์ CRS เป็น proj4string(nyc_tracts)
  • ตรวจสอบผลการแปลงโดยดูค่า head() ของ coordinates(neighborhoods)
  • ตรวจสอบว่าชุดข้อมูลสอดคล้องกันแล้วด้วยการพล็อต neighborhoods จากนั้นพล็อต nyc_tracts พร้อมกับ add = TRUE และ col = "red" และสุดท้ายพล็อต water พร้อมกับ add = TRUE และ col = "blue"

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

library(sp)
library(raster)

# Use spTransform on neighborhoods: neighborhoods



# head() on coordinates() of neighborhoods


# Plot neighborhoods, nyc_tracts and water


แก้ไขและรันโค้ด