ซอฟต์แวร์อนุกรมเวลา Miami INsar ใน PYthon (MintPy as /mɪnt paɪ/) เป็นแพ็คเกจโอเพ่นซอร์สสำหรับการวิเคราะห์อนุกรมเวลา Interferometric Synthetic Aperture Radar (InSAR) โดยจะอ่านสแต็กของอินเตอร์เฟอโรแกรม (ลงทะเบียนหลักและยังไม่ได้ห่อ) ในรูปแบบ ISCE, ARIA, FRInGE, HyP3, GMTSAR, SNAP, GAMMA หรือ ROI_PAC และสร้างการกระจัดพื้นผิวพื้นดินสามมิติ (2D ในอวกาศและ 1D ในเวลา) ในแนวของ ทิศทางการมองเห็น ประกอบด้วยการวิเคราะห์อนุกรมเวลาตามปกติ ( smallbaselineApp.py
) และกล่องเครื่องมืออิสระบางส่วน
แพ็คเกจนี้เรียกว่า PySAR ก่อนเวอร์ชัน 1.1.1 สำหรับเวอร์ชัน 1.1.2 ขึ้นไป เราใช้ MintPy แทน
นี่คือรหัสการวิจัยที่มอบให้แก่คุณ "ตามสภาพ" โดยไม่มีการรับประกันความถูกต้อง ใช้ความเสี่ยงของคุณเอง
smallbaselineApp.py
MintPy อ่านสแต็กของอินเทอร์เฟอโรแกรม (อินเทอร์เฟอโรแกรมที่ยังไม่ได้ห่อ การเชื่อมโยงกันและส่วนประกอบที่เชื่อมต่อจาก SNAPHU หากมี) และไฟล์เรขาคณิต (DEM, ตารางการค้นหา, มุมตกกระทบ ฯลฯ) คุณต้องระบุเส้นทางไปยังตำแหน่งของไฟล์และ MintPy จะดูแลส่วนที่เหลือ!
smallbaselineApp.py # ทำงานด้วยเทมเพลตเริ่มต้น 'smallbaselineApp.cfg'smallbaselineApp.py <custom_template> # ทำงานด้วยเทมเพลตเริ่มต้นและกำหนดเองsmallbaselineApp.py -h / --help # helpsmallbaselineApp.py -H # พิมพ์ตัวเลือกเทมเพลตเริ่มต้นsmallbaselineApp.py -g # สร้างเทมเพลตเริ่มต้นหากไม่มีอยู่smallbaselineApp.py -g <custom_template> # สร้าง / อัปเดตเทมเพลตเริ่มต้นตามเทมเพลตที่กำหนดเอง # เรียกใช้ด้วย --start/stop/dostep optionssmallbaselineApp.py GalapagosSenDT128.txt --dostep velocity # รันขั้นตอน 'ความเร็ว' onlysmallbaselineApp.py GalapagosSenDT128.txt --end load_data # สิ้นสุดการรันหลังจากขั้นตอน 'load_data'
ภายใน SmallbaselineApp.py จะอ่านอินเทอร์เฟอโรแกรมที่ยังไม่ได้ห่อ อ้างอิงทั้งหมดไปยังพิกเซลที่เชื่อมโยงกันเดียวกัน (จุดอ้างอิง) คำนวณการปิดเฟสและประมาณค่าข้อผิดพลาดในการแกะ (หากถูกถาม) จะแปลงเครือข่ายของอินเทอร์เฟอโรแกรมให้กลายเป็นเวลา -series คำนวณการเชื่อมโยงกันชั่วคราวเพื่อประเมินคุณภาพของการผกผัน แก้ไขการเบี่ยงเบนของออสซิลเลเตอร์ในพื้นที่ (สำหรับ Envisat เท่านั้น) แก้ไขการแบ่งชั้น ความล่าช้าในชั้นบรรยากาศ (โดยใช้แบบจำลองบรรยากาศโดยรวมหรือวิธีอัตราส่วนเฟส-ระดับความสูง) ลบเฟสทางลาด (หากได้รับการร้องขอ) แก้ไขข้อผิดพลาด DEM... และประเมินความเร็วในที่สุด
พารามิเตอร์คอนฟิกูเรชันสำหรับแต่ละขั้นตอนเริ่มต้นด้วยค่าเริ่มต้นในไฟล์ข้อความที่ปรับแต่งได้ smallbaselineApp.cfg
wget https://zenodo.org/record/3952953/files/FernandinaSenDT128.tar.xz tar -xvJf FernandinaSenDT128.tar.xzcd FernandinaSenDT128/mintpy smallbaselineApp.py ${MINTPY_HOME}/docs/templates/FernandinaSenDT128.txt
ผลลัพธ์จะถูกลงจุดในโฟลเดอร์ . /pic หากต้องการสำรวจข้อมูลเพิ่มเติมและการแสดงภาพ ให้ลองใช้สคริปต์ต่อไปนี้:
info.py # ตรวจสอบโครงสร้างไฟล์ HDF5 และ metadataview.py # แผนที่ 2D viewtsview.py # อนุกรมเวลาของจุด 1D (โต้ตอบ)plot_coherence_matrix.py # เมทริกซ์การเชื่อมโยงกันของพล็อตสำหรับหนึ่งพิกเซล (โต้ตอบ)plot_network.py # การกำหนดค่าเครือข่ายพล็อตของชุดข้อมูลplot_transection .py # พล็อตโปรไฟล์ 1D ตามแนวเมทริกซ์ 2D (แบบโต้ตอบ) save_kmz.py # สร้าง Google Earth ไฟล์ KMZ เป็นจุดหรือภาพแรสเตอร์ ave_kmz_timeseries.py # สร้างไฟล์ Google Earth KMZ เป็นจุดสำหรับอนุกรมเวลา (โต้ตอบ)
MintPy เป็นกล่องเครื่องมือที่มีสคริปต์ยูทิลิตี้แต่ละตัว เพียงเรียกใช้สคริปต์ด้วย -h / --help
เพื่อดูการใช้งาน คุณสามารถสร้างสูตรการประมวลผลของคุณเองได้! นี่คือตัวอย่างในการเปรียบเทียบความเร็วที่ประเมินจากอนุกรมเวลาการกระจัดกับการแก้ไขความล่าช้าในชั้นบรรยากาศที่แตกต่างกัน
mintpy
MintPy ได้รับการมอดูเลตใน Python พร้อมด้วยคลาสและฟังก์ชันยูทิลิตี้ และมีการแสดงความคิดเห็นอย่างดีในระดับโค้ด ผู้ใช้ที่คุ้นเคยกับ Python สามารถสร้างฟังก์ชันและโมดูลของตัวเองได้ที่ด้านบนของ mintpy.objects
และ mintpy.utils
อย่างไรก็ตาม เรายังไม่มีเว็บไซต์เอกสาร API ที่สมบูรณ์ (บางทีคุณอาจมีส่วนร่วมได้!) ด้านล่างนี้คือตัวอย่างการอ่านเมทริกซ์ 3 มิติของอนุกรมเวลาการกระจัดจากไฟล์ HDF5
จาก mintpy.utils นำเข้า readfilets_data, meta = readfile.read('timeseries_ERA5_ramp_demErr.h5')
อัลกอริทึมที่ใช้ในซอฟต์แวร์มีการอธิบายไว้ในรายละเอียดที่ Yunjun และคณะ (2019)
เริ่มต้นอย่างรวดเร็วด้วยชุดข้อมูลตัวอย่าง
ตัวอย่างไดเร็กทอรีข้อมูล
ตัวอย่างไฟล์เทมเพลต
บทช่วยสอนใน Jupyter Notebook
การอภิปรายเรื่องการพัฒนาส่วนใหญ่เกิดขึ้นบน GitHub อย่าลังเลที่จะเปิดปัญหาหรือแสดงความคิดเห็นเกี่ยวกับปัญหาที่เปิดอยู่หรือดึงคำขอ
เข้าร่วมฟอรั่มผู้ใช้ของเราในกลุ่ม Google หรือใช้การสนทนา GitHub เพื่อถามคำถามหรือแสดงความคิดเห็น
ข้อจำกัดความรับผิดชอบกลุ่มอาการแอบอ้าง: เราต้องการความช่วยเหลือจากคุณ ไม่จริงๆ
อาจมีเสียงเล็กๆ ในหัวของคุณที่บอกคุณว่าคุณยังไม่พร้อมที่จะเป็นผู้มีส่วนร่วมแบบโอเพ่นซอร์ส ทักษะของคุณยังไม่ดีพอที่จะมีส่วนร่วม คุณสามารถเสนออะไรได้บ้าง?
เรารับรองกับคุณว่าเสียงเล็กๆ ในหัวของคุณนั้นผิด หากคุณสามารถเขียนโค้ดได้เลย คุณสามารถสนับสนุนโค้ดให้กับโอเพ่นซอร์สได้ การมีส่วนร่วมในโครงการโอเพ่นซอร์สเป็นวิธีที่ยอดเยี่ยมในการพัฒนาทักษะการเขียนโค้ด การเขียนโค้ดที่สมบูรณ์แบบไม่ใช่การวัดนักพัฒนาที่ดี (ซึ่งจะตัดสิทธิ์พวกเราทุกคน!); มันพยายามสร้างบางสิ่ง ทำผิดพลาด และเรียนรู้จากความผิดพลาดเหล่านั้น นั่นคือวิธีที่เราทุกคนพัฒนา และเรายินดีที่จะช่วยให้ผู้อื่นเรียนรู้
การเป็นผู้สนับสนุนโอเพ่นซอร์สไม่ได้หมายถึงการเขียนโค้ดเท่านั้น คุณสามารถช่วยเหลือได้โดยการเขียนหรือพิสูจน์อักษรเอกสาร แนะนำหรือดำเนินการทดสอบ หรือแม้แต่ให้ข้อเสนอแนะเกี่ยวกับโครงการ (และใช่ ซึ่งรวมถึงการให้ข้อเสนอแนะเกี่ยวกับกระบวนการสนับสนุน) การมีส่วนร่วมเหล่านี้บางส่วนอาจมีคุณค่ามากที่สุดสำหรับโครงการโดยรวม เนื่องจากคุณมาที่โครงการด้วยสายตาที่สดใส ดังนั้นคุณจึงสามารถเห็นข้อผิดพลาดและสมมติฐานที่ผู้ร่วมให้ข้อมูลที่มีประสบการณ์ได้ไตร่ตรองไว้
สำหรับข้อมูลเพิ่มเติม โปรดอ่านคู่มือการมีส่วนร่วมของเรา
ข้อจำกัดความรับผิดชอบนี้ดัดแปลงมาจากโครงการ MetPy
Yunjun, Z., Fattahi, H. และ Amelung, F. (2019), การวิเคราะห์อนุกรมเวลา InSAR พื้นฐานขนาดเล็ก: การแกะการแก้ไขข้อผิดพลาดและการลดสัญญาณรบกวน, คอมพิวเตอร์และธรณีศาสตร์ , 133 , 104331. [ doi | อาร์ซิฟ | ข้อมูล | สมุดบันทึก ]
นอกเหนือจากที่กล่าวมาข้างต้น เราขอแนะนำให้คุณอ้างอิงสิ่งพิมพ์ต้นฉบับที่อธิบายอัลกอริทึมที่ใช้ในการวิเคราะห์เฉพาะของคุณ สิ่งเหล่านี้จะถูกบันทึกไว้โดยย่อในไฟล์เทมเพลตเริ่มต้นและแสดงอยู่ในไฟล์อ้างอิง