GeoTIFF ที่สร้างใน GDAL ไม่มีช่วงต่ำสุด / สูงสุดเมื่อโหลดใน Arc / QGIS


11

ฉันสร้างแรสเตอร์จุดลอยตัวใน GDAL ด้วยไดรเวอร์ GeoTIFF เมื่อฉันโหลดรูปภาพที่เป็นผลลัพธ์ลงใน QGIS หรือ Arc สัญลักษณ์เริ่มต้นจะวางที่ -3.40282e38 และสูงสุดเป็น 3.40282e38 ดังนั้นแรสเตอร์จะมีลักษณะสีเทา มีวิธีที่ฉันสามารถเขียนช่วงจริงลงใน GeoTIFF โดยตรงหรือไม่เมื่อโหลดเข้าไปในโปรแกรม GIS มันจะทำการขยายฮิสโตแกรมโดยอัตโนมัติหรือไม่? ฉันพยายามสร้างฮิสโตแกรมเริ่มต้นเช่นนี้:

rasterMin, rasterMax = raster.GetRasterBand(1).ComputeRasterMinMax()
raster.GetRasterBand(1).SetDefaultHistogram(rasterMin, rasterMax, 255)

แต่ฉันได้รับข้อผิดพลาดที่ดูเหมือนว่าเป็นปัญหาที่มีผลผูกพัน:

  File "/usr/lib/python2.6/dist-packages/osgeo/gdal.py", line 846, in SetDefaultHistogram
    return _gdal.Band_SetDefaultHistogram(self, *args)
TypeError: not a sequence

ข้อเสนอแนะใด ๆ เกี่ยวกับสิ่งที่ฉันสามารถทำได้หรือถ้าฉันทำผิดพลาด?

คำตอบ:


8

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

ไม่ว่าจะด้วยวิธีใดหลังจากที่คุณได้รับค่า min และ max ของคุณแล้วคุณควรโทรหาSetStatistics()band และตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่า dataset Noneเมื่อคุณทำเสร็จแล้วเพื่อให้แน่ใจว่าทุกอย่างถูกเขียนลงดิสก์

นอกจากนี้บางสิ่งที่อยู่ในใจฉันกำลังบอกฉันว่าใช้dataset.GetRasterBand(1).<some band function>งานไม่ได้เพราะวิธีที่ GDAL Python จัดการกับการอ้างอิงวง ฉันจำรายละเอียดไม่ได้ แต่มีบางอย่างในรายชื่อผู้รับจดหมายของ GDALDev เมื่อไม่นานมานี้ ดังนั้นจึงเป็นที่ดีที่สุดในการสร้างตัวแปรวงอย่างชัดเจน: โทรแล้วband = dataset.GetRasterBand(1)band.SetStatistics(min, max, mean, stddev)


ขอบคุณนี่เป็นกลอุบายและขอบคุณสำหรับบริบท โดยวิธีการฉันสามารถซ้อนอ้างอิงวงโดยไม่มีตัวแปรชั่วคราวโดยไม่มีปัญหา
Rich

โปรดทราบว่าband.ComputeStatistics(0)ยังเก็บสถิติ มันเป็นเรื่องง่าย 1 บรรทัด
Mike T

1

ฉันไม่ทราบวิธีที่จะใช้ GDAL แต่คุณสามารถใช้ python เพื่อเรียกเครื่องมือ 'คำนวณสถิติ' ใน Arc


2
สวัสดีไซรัสยินดีต้อนรับสู่ GIS.se :) ในขณะที่คำตอบที่ถูกต้องของคุณไม่น่าเป็นไปได้ที่จะดึงดูดการลงคะแนนด้วยเหตุผลสองประการ เครื่องมือคำนวณสถิติ arcpy วางสถิติในไฟล์. aus ภายนอกและโปสเตอร์ขอให้ "ลงใน geotiff โดยตรง" ประการที่สองถึงแม้ว่า Arcgis จะกล่าวถึงในชื่อเรื่องเนื้อหาของคำถามและแท็กก็ระบุว่าโปสเตอร์มีความสนใจในโซลูชั่น gdal / qgis มากกว่า ในกรณีใด ๆ ขอบคุณสำหรับการมีส่วนร่วมและโปรดติดตาม มันเป็นช่วงเวลาของการเรียนรู้ที่จะเริ่มต้น แต่ฉันคิดว่าคุณจะพบเมื่อเวลาผ่านไปซึ่งความพยายามนั้นจะชำระคืน
แมตต์วิลคี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.