跳到主要內容

Tipping Bucket Model (3): Parameters

延續上一講的雙域視角(巨孔隙/微孔隙),這一講的參數會分成兩組來看:定義「桶子形狀」的靜態參數(LL、DUL、SAT、bulk density),跟決定「桶子怎麼漏水」的動態參數(SWCON、𝐾𝑠𝑎𝑡)。 3.1 靜態參數:桶子的三條水位線 (1) LL(Lower Limit,凋萎點下限) 這是植物完全無法吸取的水分下限,操作型定義通常對應到 −1.5 MPa(15 bar)的基質勢。在微孔隙/巨孔隙框架下,LL 描述的完全是微孔隙域——這個含水量下,水被吸附在極細孔隙的表面,基質勢極負,只存在於微孔隙的毛細跟吸附作用力範圍內,巨孔隙在這個含水量早就空了。 DSSAT 通常用 LL(而不是永久凋萎點 wilting point)這個名稱,是因為它其實是「特定作物根系可達到的下限」,理論上依作物種類、根系穿透力略有差異,但實務上常直接借用土壤的物理凋萎點。 (2) DUL(Drained Upper Limit,排水上限) 這是整套 bucket 理論裡最關鍵的一條線——它同時也是上一講講的「巨孔隙排水」的觸發點:𝑆𝑊> 𝐷𝑈𝐿 SW>DUL 才會啟動𝐷𝑅𝐴𝐼𝑁𝐿 方程。 物理意義上,DUL 是「重力排水已經(近似)結束、只剩微孔隙毛細力撐著水」的那個含水量,通常對應基質勢在 −10 到 −33 kPa 之間(視質地而定,砂土接近 −10 kPa,黏土接近 −33 kPa)。用雙域語言講:DUL 就是巨孔隙域清空、微孔隙域仍飽滿的那條分界線。這也是為什麼 DUL 不是一個絕對的物理常數,而是跟排水時間、量測方式高度相關的操作型定義——現場量測通常是「飽和後排水1–2天」的含水量,這個「1–2天」本身就是承認巨孔隙排水需要一點時間,但排水速率遠快於微孔隙。 (3) SAT(Saturation,飽和含水量) 這是巨孔隙+微孔隙全部孔隙都灌滿水時的含水量,約等於總孔隙度 𝜙 。注意上一講 Emerman 論文提到的關鍵假設——「巨孔隙域跟微孔隙域必須有相同的飽和含水量才能讓雙域模型的擬合站得住腳」。這句話反過來提醒你:SAT 這個看似簡單的參數,其實隱含了「兩個域共享同一個總孔隙空間」的假設,在真實土壤中不一定成立(比如強烈結構化的黏土,巨孔隙可能只佔總孔隙度很小一部分)。 (4) Bulk...

GLYCIM模式待討論事項

 


1.      株高 :印象中這邊是原始碼有點問題

2.      模擬的莢數 >> 實際莢數:

3.      模擬的分支數 >> 實際分支數:

rosetta 程式需要有visual studio才能開啟(還要有C++套件),有可能是當初building的時候有問題



1. 株高
GLYCIM程式中,與株高相關的參數為PARM(21)與PARM(22),模式假設株高是Vstage的指數關係,也就是
株高 = Parm(21)*VSTAGE^PARM(22)
為了表示增加速率,我們把上式進行微分可獲得
d株高/dvstage = Parm(21)*Parm(22)*Vstage^(Parm(22)-1)
程式碼在2750行
 !YA      PDMH=(PARM(21)+(PARM(22)*(VSTAGE+PDV/2.0)**1.37))*PDV*SLOW*HTFATR
         IF (VSTAGE.GT.0.0) THEN
            F1=PARM(21)*PARM(22)*(VSTAGE)**(PARM(22)-1.)
         ELSE
            F1=0.0
         END IF
         IF (VSTAGE+PDV.GT.0.0) THEN
            F2=PARM(21)*PARM(22)*(VSTAGE+PDV)**(PARM(22)-1.)
         ELSE
            F2=0.0
         END IF
         PDMH=0.5*(F1+F2)*PDV 
這裡的計算方法很值得學習,它分別計算 Vstage (這一個時間點)和 Vstage + dv (下一個時間點所對應的株高增長速度,再計算平均植以取得較準確的生長速率值。
值得注意的是,在第4270行的時候開始累計株高,這邊使用Maturity group和 R stage作為條件
! CALCULATE CHANGES IN MAINSTEM AND BRANCH LENGTHS AND DRY WEIGHTS.
         IF((MG.GT.4.AND.RSTAGE.LT.2.0).OR.                            &
            (MG.EQ.4.AND.RSTAGE.LE.2.0)) THEN
            ADMH = PDMH*PERIOD
         ELSE
            ADMH = 0.0
         ENDIF

         IF (RSTAGE.LE.PARM(16)) THEN
            ADMW = PDMW*SGTR*PERIOD*(1.0 + (1.5*SCRATO))
            MSTEMH = MSTEMH + ADMH
            MSTEMW = MSTEMW + ADMW
            STEMWT = STEMWT + ADMW
         END IF
我們可以觀察到的是:
1. 每一個的株高增加速率為ADMH,程式先把PDMH * PERIOD 計算為ADMH,而PERIOD在這裡是1。
2. 上面這段程式碼只有在R stage 小於2的時候才執行,也就是說,模式假設 R stage 在2之前才會計算株高的增加速率。
3. 株高的累積是在下一個流程控制執行,模式假設在PARM(16)之前,主幹高度(MSTEMH)、主幹重量(MSTEMW)都會增加。其中,Parm(16)的描述是營養生長停止的R時期(R stage to stop vegetative growth)

有趣的問題來了:R2真的會停止株高變化嗎?如果不是的話,我們前面的 RSTAGE .LT. 2.0 改為 RSTAGE .LT. PARM(16),讓兩邊的定義一致

8/3/2021 高雄場的資料顯示,R4之後植株還在繼續長高,因此,下一步就會重新測試改變以上參數之後的變化。另外,PARM(16)可以試著用6.0。






我們可以觀察到的是:
1. 每一個的株高增加速率為ADMH,程式先把PDMH * PERIOD 計算為ADMH,而PERIOD在這裡是1。
2. 上面這段程式碼只有在R stage 小於2的時候才執行,也就是說,模式假設 R stage 在2之前才會計算株高的增加速率。
3. 株高的累積是在下一個流程控制執行,模式假設在PARM(16)之前,主幹高度(MSTEMH)、主幹重量(MSTEMW)都會增加。其中,Parm(16)的描述是營養生長停止的R時期(R stage to stop vegetative growth)

有趣的問題來了:R2真的會停止株高變化嗎?如果不是的話,我們前面的 RSTAGE .LT. 2.0 改為 RSTAGE .LT. PARM(16),讓兩邊的定義一致

2. 莢數
(1) 栽種密度正確
根據輸入檔,row space 是17.71 (inch),相當於行距 44.98 (cm)。1 feet (30.48) 有 4.68株,換算起來株距是 30.48/4.68 = 6.51 (cm)。
計算每平方公尺的密度為 (100/44.98)*(100/6.51) = 34.15。也就是說模式輸入檔的栽種密度是 34.15 (plant/m2)。
高雄場的資料顯示栽種密度為每公頃30萬至34.8萬株之間,換算每平方公尺為 30 - 34.8 株,和模式設定值相近。

留言

  1. 8/4/2021 株高的部分已經修改完畢

    回覆刪除
  2. 修改的討論在這邊

    https://docs.google.com/document/d/1pEsK-4Fai1nexVkI6SMcOltrHu5vWUD8/edit?usp=sharing&ouid=116278873958206756284&rtpof=true&sd=true

    回覆刪除

張貼留言