ซอฟต์แวร์อนุกรมเวลา 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 # run with default template 'smallbaselineApp.cfg'
smallbaselineApp.py < custom_template > # run with default and custom templates
smallbaselineApp.py -h / --help # help
smallbaselineApp.py -H # print default template options
smallbaselineApp.py -g # generate default template if it does not exist
smallbaselineApp.py -g < custom_template > # generate/update default template based on custom template
# Run with --start/stop/dostep options
smallbaselineApp.py GalapagosSenDT128.txt --dostep velocity # run step 'velocity' only
smallbaselineApp.py GalapagosSenDT128.txt --end load_data # end run after step 'load_data'
ภายใน SmallbaselineApp.py จะอ่านอินเทอร์เฟอโรแกรมที่ยังไม่ได้ห่อ อ้างอิงทั้งหมดไปยังพิกเซลที่เชื่อมโยงกันเดียวกัน (จุดอ้างอิง) คำนวณการปิดเฟสและประมาณค่าข้อผิดพลาดในการแกะ (หากถูกถาม) จะแปลงเครือข่ายของอินเทอร์เฟอโรแกรมให้กลายเป็นเวลา -series คำนวณการเชื่อมโยงกันชั่วคราวเพื่อประเมินคุณภาพของการผกผัน แก้ไขการเบี่ยงเบนของออสซิลเลเตอร์ในพื้นที่ (สำหรับ Envisat เท่านั้น) แก้ไขการแบ่งชั้น ความล่าช้าในชั้นบรรยากาศ (โดยใช้แบบจำลองบรรยากาศโดยรวมหรือวิธีอัตราส่วนเฟส-ระดับความสูง) ลบเฟสทางลาด (หากได้รับการร้องขอ) แก้ไขข้อผิดพลาด DEM... และประเมินความเร็วในที่สุด
พารามิเตอร์คอนฟิกูเรชันสำหรับแต่ละขั้นตอนเริ่มต้นด้วยค่าเริ่มต้นในไฟล์ข้อความที่ปรับแต่งได้ smallbaselineApp.cfg
wget https://zenodo.org/record/3952953/files/FernandinaSenDT128.tar.xz
tar -xvJf FernandinaSenDT128.tar.xz
cd FernandinaSenDT128/mintpy
smallbaselineApp.py ${MINTPY_HOME} /docs/templates/FernandinaSenDT128.txt
ผลลัพธ์จะถูกลงจุดในโฟลเดอร์ . /pic หากต้องการสำรวจข้อมูลเพิ่มเติมและการแสดงภาพ ให้ลองใช้สคริปต์ต่อไปนี้:
info.py # check HDF5 file structure and metadata
view.py # 2D map view
tsview.py # 1D point time-series (interactive)
plot_coherence_matrix.py # plot coherence matrix for one pixel (interactive)
plot_network.py # plot network configuration of the dataset
plot_transection.py # plot 1D profile along a line of a 2D matrix (interactive)
save_kmz.py # generate Google Earth KMZ file in points or raster image
save_kmz_timeseries.py # generate Google Earth KMZ file in points for time-series (interactive)
MintPy เป็นกล่องเครื่องมือที่มีสคริปต์ยูทิลิตี้แต่ละตัว เพียงเรียกใช้สคริปต์ด้วย -h / --help
เพื่อดูการใช้งาน คุณสามารถสร้างสูตรการประมวลผลของคุณเองได้! นี่คือตัวอย่างในการเปรียบเทียบความเร็วที่ประเมินจากอนุกรมเวลาการกระจัดกับการแก้ไขความล่าช้าในชั้นบรรยากาศที่แตกต่างกัน
mintpy
MintPy ได้รับการมอดูเลตใน Python พร้อมด้วยคลาสและฟังก์ชันยูทิลิตี้ และมีการแสดงความคิดเห็นอย่างดีในระดับโค้ด ผู้ใช้ที่คุ้นเคยกับ Python สามารถสร้างฟังก์ชันและโมดูลของตัวเองได้ที่ด้านบนของ mintpy.objects
และ mintpy.utils
อย่างไรก็ตาม เรายังไม่มีเว็บไซต์เอกสาร API ที่สมบูรณ์ (บางทีคุณอาจมีส่วนร่วมได้!) ด้านล่างนี้คือตัวอย่างการอ่านเมทริกซ์ 3 มิติของอนุกรมเวลาการกระจัดจากไฟล์ HDF5
from mintpy . utils import readfile
ts_data , meta = readfile . read ( 'timeseries_ERA5_ramp_demErr.h5' )
อัลกอริทึมที่ใช้ในซอฟต์แวร์มีการอธิบายไว้ในรายละเอียดที่ Yunjun และคณะ (2019)
ข้อจำกัดความรับผิดชอบกลุ่มอาการแอบอ้าง: เราต้องการความช่วยเหลือจากคุณ ไม่จริงๆ
อาจมีเสียงเล็กๆ ในหัวของคุณที่บอกคุณว่าคุณยังไม่พร้อมที่จะเป็นผู้มีส่วนร่วมแบบโอเพ่นซอร์ส ทักษะของคุณยังไม่ดีพอที่จะมีส่วนร่วม คุณสามารถเสนออะไรได้บ้าง?
เรารับรองกับคุณว่าเสียงเล็กๆ ในหัวของคุณนั้นผิด หากคุณสามารถเขียนโค้ดได้เลย คุณสามารถสนับสนุนโค้ดให้กับโอเพ่นซอร์สได้ การมีส่วนร่วมในโครงการโอเพ่นซอร์สเป็นวิธีที่ยอดเยี่ยมในการพัฒนาทักษะการเขียนโค้ด การเขียนโค้ดที่สมบูรณ์แบบไม่ใช่การวัดนักพัฒนาที่ดี (ซึ่งจะตัดสิทธิ์เราทุกคน!); มันพยายามสร้างบางสิ่ง ทำผิดพลาด และเรียนรู้จากความผิดพลาดเหล่านั้น นั่นคือวิธีที่เราทุกคนพัฒนา และเรายินดีที่จะช่วยให้ผู้อื่นเรียนรู้
การเป็นผู้สนับสนุนโอเพ่นซอร์สไม่ได้หมายถึงการเขียนโค้ดเท่านั้น คุณสามารถช่วยเหลือได้โดยการเขียนหรือพิสูจน์อักษรเอกสาร แนะนำหรือดำเนินการทดสอบ หรือแม้แต่ให้ข้อเสนอแนะเกี่ยวกับโครงการ (และใช่ ซึ่งรวมถึงการให้ข้อเสนอแนะเกี่ยวกับกระบวนการสนับสนุน) การมีส่วนร่วมเหล่านี้บางส่วนอาจมีคุณค่ามากที่สุดสำหรับโครงการโดยรวม เนื่องจากคุณมาที่โครงการด้วยสายตาที่สดใส ดังนั้นคุณจึงสามารถเห็นข้อผิดพลาดและสมมติฐานที่ผู้ร่วมให้ข้อมูลที่มีประสบการณ์ได้ไตร่ตรองไว้
สำหรับข้อมูลเพิ่มเติม โปรดอ่านคู่มือการมีส่วนร่วมของเรา
ข้อจำกัดความรับผิดชอบนี้ดัดแปลงมาจากโครงการ MetPy
Yunjun, Z., Fattahi, H. และ Amelung, F. (2019), การวิเคราะห์อนุกรมเวลา InSAR พื้นฐานขนาดเล็ก: การแกะการแก้ไขข้อผิดพลาดและการลดสัญญาณรบกวน, คอมพิวเตอร์และธรณีศาสตร์ , 133 , 104331. [ doi | อาร์ซิฟ | ข้อมูล | สมุดบันทึก ]
นอกเหนือจากที่กล่าวมาข้างต้น เราขอแนะนำให้คุณอ้างอิงสิ่งพิมพ์ต้นฉบับที่อธิบายอัลกอริทึมที่ใช้ในการวิเคราะห์เฉพาะของคุณ โดยจะมีการระบุไว้สั้นๆ ในไฟล์เทมเพลตเริ่มต้นและแสดงอยู่ในไฟล์อ้างอิง