กำลังคำนวณขอบเขตภาพ / รอยเท้าของภาพถ่ายดาวเทียมโดยใช้เครื่องมือโอเพนซอร์สหรือไม่?


10

ฉันจำเป็นต้องสร้างรูปหลายเหลี่ยมของภาพแรสเตอร์เลเยอร์เดียวหลายรูปไม่ใช่กล่องขอบเขต / ขอบ แต่พื้นที่ที่ไม่มีค่า Nodata ดังแสดงที่นี่: การสร้างรูปร่างไฟล์แสดงรอยเท้าของ Rasters? .

ในการตอบคำถามข้างต้นปลั๊กอิน Image Boundaryได้ถูกกล่าวถึง แต่ฉันไม่พบมันใน QGIS 1.8.0 Lisboa ที่ทำงานบน Ubuntu

เครื่องมือยังคงมีอยู่หรือไม่?

ถ้าไม่มีมีวิธีการทำเช่นนี้โดยใช้เครื่องมือ opensource ไม่ว่าจะเป็น gdal, R, QGIS, GRASS หรือคล้ายกันไม่ใช่กับ ArcMap?


ที่เกี่ยวข้อง: gis.stackexchange.com/questions/9074/…
สหาย Che

คำตอบ:


4

คุณสามารถเพิ่มที่เก็บเก่าที่มีปลั๊กอินในที่เก็บอย่างเป็นทางการ

http://pyqgis.org/repo/contributed

ปลั๊กอินขอบเขตภาพมีตัวเลือกสำหรับการคำนวณพิกเซลที่ถูกต้อง แต่ภาพต้องเป็นฉากเต็มรูปแบบวิธี CBERS หรือ Landsat ที่กระบวนการนี้คำนวณมุมทั้งสี่แรก ภาพจำเป็นต้องมีค่าตัวเลขด้วยค่าศูนย์สำหรับพื้นที่ที่ไม่มีภาพ (สแกนโดยเซ็นเซอร์รับสัญญาณดาวเทียม)

ผู้แต่ง Image Boundary


สวัสดี @lmotta ขอขอบคุณสำหรับลิงก์ที่เก็บ ภาพที่ฉันกำลังดำเนินการในขณะนี้คือภาพ SAR ทั้งหมดโดยมีค่า NA (หรือ -3.4e + 38 ตามเครื่องมือค่าใน QGIS) ถ้าใครสามารถเพิ่มค่า nodata ด้วยตนเองในเครื่องมือแทนที่จะให้ ZERO เป็นตัวเลือกเดียวมันจะยอดเยี่ยมมิฉะนั้นฉันอาจเรียกใช้สคริปต์ใน R ก่อนเพื่อให้ค่า NA ของฉันเป็นศูนย์ค่าใหม่ มันเป็นเครื่องมือที่ยอดเยี่ยม แต่ขอบคุณ!
spib

มีพื้นที่เก็บข้อมูลใหม่สำหรับขอบเขตของรูปภาพหรือไม่ ลิงค์ที่คุณให้ไว้คือ 404 อาจจะเป็นต่อไปนี้: github.com/lmotta/imagefootprintprint_plugin
Aaron

มีที่ไหนที่เราสามารถหาเอกสารสำหรับขอบเขตของภาพได้หรือไม่?
Loonuh

12

ในที่สุดฉันก็พบวิธีที่จะทำสิ่งนี้:

ขั้นตอนที่ 1: gdalwarp -dstnodata 0 -dstalpha -of GTiff foo1 foo2

สิ่งนี้ทำสองสิ่งสำคัญ: กำหนดปลายทางไม่มีข้อมูล (นอกขอบเขต) เป็น 0 และสร้างแถบอัลฟา

ขั้นตอนที่ 2: gdal_polygonize.py foo2 -b 2 -f "ESRI Shapefile" foo3

ขั้นตอนที่สองใช้แถบอัลฟา (แบนด์ 2) สร้างในขั้นตอนที่ 1 และสร้างไฟล์รูปร่างจากวงดนตรีนั้น

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


สุดยอดโซลูชันนี้ไม่ใช้ปลั๊กอินหรือซอฟต์แวร์ใด ๆ การสร้างรอยเท้าแรสเตอร์ที่มีความอ่อนไหวต่อ NoData เป็นหนึ่งในภารกิจของ GIS ที่ไม่ตรงไปตรงมาเท่าที่ควร
Charlie Parr

เมื่อฉันใช้วิธีนี้ฉันจะลงเอยด้วย shapefile เต็มไปด้วยรูปหลายเหลี่ยมซึ่งฉันคิดว่าเป็นตัวแทนของสีที่ต่างกันจัดกลุ่มเข้าด้วยกัน ฉันจะหลีกเลี่ยงปัญหานี้และจบลงด้วยโพลีกอนเพียงไม่กี่ตัวที่แสดงถึงข้อมูลใช่หรือไม่?
Loonuh

5

ฉันใช้gdal_translateตามที่แนะนำโดยโครงการ GDAL

gdal_translate -b mask -of vrt -a_nodata 0 test.tif test.vrt
# Note the  -a_nodata 0 doesn't seem to work when the mask is input, so do another pass
gdal_translate -b 1 -of vrt -a_nodata 0 test.vrt test2.vrt
gdal_polygonize.py -q  -8 test2.vrt -b 1 -f "ESRI Shapefile" testdata.shp

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


1
กับรุ่นลำต้น GDAL ตอนนี้มันเป็นไปได้ที่จะใช้ gdal_polygonize โดยตรงกับแหล่งที่มาของภาพosgeo-org.1560.x6.nabble.com/... การล้างข้อมูลบางอย่างจำเป็นสำหรับการลบรูปหลายเหลี่ยมที่ไม่มีข้อมูล
user30184

4

Image Boundary pluginไม่ทำงานสำหรับฉันดังนั้นฉันจึงใช้วิธีการเดียวกันกับ GDAL อย่างไรก็ตามมันใช้งานได้สำหรับฉันหลังจากเปลี่ยนขั้นตอนแรกเป็น:

ขั้นตอนที่ 1 : gdalwarp -srcnodata 0 -dstalpha -of GTiff foo1 foo2

ฉันกำลังทำงานกับวง Landsat8 (ที่ไม่มีข้อมูล = 0) และเมื่อใช้-dstnodataฟังก์ชั่นที่ฉันได้รับ:

band1กับไม่มีข้อมูล = 'ไม่มีข้อมูล'
band2 (อัลฟาวงดนตรี) = '255' สำหรับทั้งฉาก / ขอบเขต

ในขณะที่-srcnodataฟังก์ชั่นฉันได้รับ:

band1กับไม่มีข้อมูล = 'ไม่มีข้อมูล'
band2 (alpha วงดนตรี) ไม่มีข้อมูล = 'ไม่มีข้อมูลและข้อมูลที่ถูกต้อง = '255' ซึ่งก็จะช่วยให้สารสกัดจากรูปหลายเหลี่ยมสำหรับข้อมูลที่ถูกต้องเท่านั้น

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


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