วิธีติดฉลากเซลล์แรสเตอร์ใน QGIS?


10

ฉันพยายามแสดงไฟล์แรสเตอร์ความละเอียดขนาดเล็กในเครื่องมือ QGIS Print Manager ฉันต้องการแสดงป้ายกำกับขนาดเล็กที่มีค่าแต่ละเซลล์ (ตำแหน่ง - ประมาณกึ่งกลางของแต่ละเซลล์)

ฉันจะทำมันได้อย่างไร มีปลั๊กอินใดบ้างที่สามารถช่วยให้ฉันทำงานนี้ได้สำเร็จ

ความคิดของฉันคือการใช้ gdal2xyz โหลดไฟล์ดังกล่าวโดยใช้ปลั๊กอิน CSV แล้วบันทึกเป็นไฟล์เวกเตอร์ น่าเสียดายที่มันใช้งานได้ดีมากเพราะฉันมีไฟล์แรสเตอร์มากมาย

อีกแนวคิดหนึ่งคือการใช้ gdal2xyz.py แล้ว ogr2ogr เพื่อบันทึกเป็นไฟล์เวกเตอร์

มีวิธีการชุดกระบวนการนี้หรือไม่ มีโปรแกรมโอเพนซอร์ซใดที่ฉันสามารถทำได้ง่ายกว่านี้อีกไหม?


คุณหมายถึงอะไรเช่นนี้ ? มีคำขอคุณสมบัติสำหรับฟังก์ชันนี้อยู่แล้ว
โทมัส

คำตอบ:


7

ดูเหมือนจะไม่มีปลั๊กอินสำหรับหรือฟังก์ชันการทำงานใน QGIS ในการติดฉลากเซลล์

การใช้ไฟล์เวกเตอร์ที่แปลงแล้วเพื่อติดป้ายศูนย์กลางของเซลล์น่าจะเป็นทางออกที่ดีที่สุดของคุณ แพคเกจสถิติโอเพนซอร์ส R มีเครื่องมือเชิงพื้นที่จำนวนมากและสามารถแบตช์หรือประมวลผลไฟล์แรสเตอร์อย่างรวดเร็วเพื่อสร้างรูปร่างไฟล์ (เวกเตอร์ / คะแนน)

library(maptools)
library(raster)

# Load the raster from a file
r <- raster("/workspace/TEMP/raster.asc")

# Convert to spatial points
p <- as(r, "SpatialPointsDataFrame")

# Save as a shapefile
writeSpatialShape(p, "/workspace/TEMP/raster_points")

Shapefile จะมีคอลัมน์ที่มีค่าแรสเตอร์สำหรับแต่ละจุด คะแนนนั้นสามารถโหลดลงใน QGIS ได้ด้วยขนาด 0 และติดป้ายอย่างเหมาะสม มันจะปรากฏในใจกลางของเซลล์

หากต้องการดูตัวอย่างไฟล์ TIF ทั้งหมดในไดเรกทอรี:

for (file in dir("/workspace/TEMP/", pattern="*.tif")) { # list all .tif files
  r <- raster(file)
  p <- as(r, "SpatialPointsDataFrame")
  writeSpatialShape(p, substr(file, start = 1, stop = nchar(file) -4)) # substr() removes extension.
}

4

ในกรณีที่ R ไม่พร้อมใช้งาน (หรือต้องการทำภายในสภาพแวดล้อม QGIS) ขณะนี้มีเครื่องมือ SAGA ในกล่องเครื่องมือประมวลผลค่า Raster ไปยังจุดเพื่อแยกค่าเซลล์

เราสามารถShapesเลเยอร์เลเยอร์เอาท์พุทและซ้อนทับด้วยแรสเตอร์ดั้งเดิม

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.