2021-05-12 14:32:11
使用GAMIT進行批次處理基線解算
1.檔案準備
1.1控制檔案
執行 sh_setup 或者sh_links.tables 命令來把所有標準資料表檔案連結到工程目錄./tables 資料夾中。
然後手動從GAMIT安裝目錄的tables資料夾拷貝以下檔案到tables資料夾,並根據你的需要進行設定。
process.defaults: 通過該檔案指定你的計算環境、內部和外部的資料、軌道檔案、開始時間、取樣間隔和結果歸檔說明。
sites.defaults: 指定使用的本地區域站和IGS站,如何處理測站資料。如需要從IGS資料中心獲取RINEX檔案,應該在 sites.defaults 中用 ftprnx指定下載的測站。sh_gamit將會呼叫 sh_get_rinex 從CDDIS、SOPAC、UNAVCO下載所有指定的可獲得的資料到/rinex 目錄。
station.info: 確定這個檔案是新(來自SOPAC)的,並且包含了你解算時需要的所有IGS站。
apr檔案:sh_gamit需要工程目錄tables檔案下的2個先驗坐標檔案:lfile.(解算後更新坐標)和*.apr (固定坐標)。假如測站的先驗坐標在前先處理得到的 L-檔案(或 apr檔案)中未找到,sh_gamit 預設會呼叫 sh_rx2apr 指令碼來計算偽距解。
sestbl. 和 sittbl. : 編輯這兩個檔案,設定恰當的引數值,完成你的分析。
autcln.cmd: 該檔案通常不需要編輯,除非在處理時遇到了異常資料,或需要設定電離層資訊的輸出。
1.2觀測檔案
在工程目錄下建個/rinex資料夾,然後把原生的資料都拷貝到其中;也可以在process.defaults檔案中指定目錄結構,自動搜尋本地和遠端的原始檔案、RINEX檔案。GAMIT需要的其它目錄、檔案都會由指令碼直接建立。
2.開始處理
完成上面的操作之後,你已經在解算專案的資料夾下建立了兩個資料夾:rinex和tables,並且已經把觀測資料和表檔案分別放入其中了。
現在就可以進行批次處理解算了,cd命令回到解算專案資料夾,執行批次處理命令:
sh_gamit-expt $expt -d $year $days >&! sh_gamit.log
其中$expt代表任務名,$year和$days是年與年積日列表。年積日列表也可以用-s<開始天><結束天>指定,表示處理連續的天,或者用 -r <天>,表示處理當前日期之前的一系列天。
當 sh_gamit 指令碼執行時,它會把每一步輸出到螢幕,可以採用“> &! sh_gamit.log”方式重定向輸出到檔案中。可以結合 GAMIT.fatal 檔案和 sh_gamit的原始碼來找到執行失敗的關鍵和原因。
3.備註
自動批次處理時可用的實用程式中用的包括:sh_make_rinex、sh_get_nav、sh_get_rinex、
sh_get_orbits、sh_update_eop、sh_link_rinex、sh_make_sky_gifs。這些程式執行的幫助資訊可以直接輸入不帶引數的程式名獲得。
如果不用 sh_rx2apr,可以在process.defaults 中設定 use_rxc=Y,應用 RINEX 標頭檔案中的坐標。這個選項只有你確定標頭檔案中的測站坐標值總是存在並準確時才能使用。
假如ftp不能從IGS(通常是 SOPAC 或 CDDIS)獲得需要的全球 RINEX 檔案或軌道檔案,sh_gamit解算也會失敗,GAMIT.fatal 資訊通常會告訴你缺少了什麼檔案。
在解算失敗後,當需要重新解算失敗的天時,要注意避免重複的失敗。簡便的方法是完全刪掉天目錄並刪除 /tables 目錄中L-檔案和 station.info 檔案中的錯誤記錄。
如果提示下載精密星曆或者廣播星曆出錯,通常應該是因為你沒有安裝ftp程式。
相關文章