1 Introduction
PEST(Parameter Estimation)是一個廣泛適用的模型參數優化程序,需要給定初始參數,調用正模型,對比模型結果與觀測值,在參數的給定范圍內調整參數,達到收斂條件后,得到優化后的參數值。
運用PEST工具,不僅可以直接調用獨立程序,也可以在地下水的主流商業軟件中操作,現在已經嵌套於例如GMS, Visual Modflow等商業軟件中,並且可以找到相應的step by step手冊。
2 需要提供的文件
為了正確運行PEST,四種類型文件必須提供:
(1) 模型批處理文件
后綴為.bat
(2) 模型輸入模板文件
包括需要校正的參數的輸入模型
保存為.tpl文件,.tpl表示PEST模板文件
(3) 模型輸出讀取指令文件
由PEST使用,將其輸出與觀測結果進行比較
(4) PEST控制文件
該文件以pcf(PEST CONTROL FILE)開頭,包含七個區域,每個區域以星號 空格 區域名稱為開頭
第一個區域為:控制數據(* control data)
line3 該區域有兩個控制變量 (no)restart(if or not generate some output files that are used for restarting) 和 estimation(開啟PEST的參數估計功能,而不是正則化或預測)
line4 五個變量。C1(第一列Column 1)是參數數量,C2是觀測數據數量,C3是參數groups數量,C4是先驗信息數量(如果有的話),C5是觀測groups數量
line5 七個變量 C1是輸入模板文件及其相應的模型輸入文件對的數目,C2中的變量是模型輸出讀取指令文件對數和相應的模型輸出文件;因此,這兩個變量之和應等於“模型輸入/輸出”區域中的行數。其他變量可以不用管。
該區域的其余變量除了line9中的C1也可以不用管
line9 所有變量都是一個停止參數估計的准則,第一個變量是允許PEST運行的最大迭代次數,通常30次迭代對任何PEST運行都是足夠的。
第二個區域為:參數集合(* parameter groups)
C1是參數名稱,C
C1是集合名稱,C2是選擇如何增加參數的值,可以根據參數的當前值增加一個絕對值或相對值或者"rel_to_max"
如果C2是“relative”:C3是增量的分數;
如果C2是“absolute”:則C3中的增量是固定的;
如果C2是“rel_to_max”:這任何組參數的增量都被計算為絕對值最高的組內參數的分數,該分數仍然是C3中的變量。
C4是根據該組中參數的平均大小設置的,C5通常設置為“0.001”。
第三個區域為:參數數據(* parameter data)
C1是參數名稱,C4是初始值,C5是下界,C6是上界;
如果你想要PEST找到某參數的最優值,你需要在C2中輸入“none”or"log",否則輸入“fixed”or"tied",一般用"none" or "fixed"。
C3一般填上“factor”,除非初值上下界其一為0或者上下邊界值有負號,這時可以填上“relative”
C8一般都是1.0,C9為0,C10為1,不用擔心它的意義。
C7表示該參數位於的參數集合。
第四個區域為:觀測值集合(* observation groups)
C1為觀測值集合名稱
第五個區域為:觀測值數據(* observation data)
C1為觀測值數據名稱,C2是觀測值,C3是觀測值權重,C4是所屬觀測值集合
第六個區域為:模型命令行(* model command line)
只包含批處理文件
第七個區域為:模型的輸入/輸出(* model input/output)
C1-C2為輸入模板文件,C3-C4為模型輸入文件
或者C1-C2為模型輸出讀取指令文件,C3-C4是相應模型輸出文件
例如上圖,line50為模型輸出文件對,其余為輸入文件對。