跳到主要內容

發表文章

目前顯示的是有「DSSAT」標籤的文章

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...

Tipping Bucket Model (2): The Bucket

第二講:從 Richards Equation 到 Tipping Bucket —— DSSAT 為什麼不用解 Richards Equation? 今天我們要回答一個問題:既然土壤中的水是真正流動的,為什麼 DSSAT 可以只用一個 bucket 就模擬得很好? 2.1 真正的土壤水流長什麼樣? 想像下雨後,水不是一瞬間跑到 1 m 深。而是: Rain ↓↓↓↓↓↓ ███████ 表土 ↓↓ ███████ ↓ ███████ 每一滴水都受到很多力量控制,例如:重力 (gravity)、毛細作用 (capillary force)、土壤孔隙大小、土壤含水量、水力傳導度 (hydraulic conductivity),所以真正的水流,是連續變化的。 2.2 Richards Equation 1931 年,Lorenzo A. Richards提出了描述非飽和土壤水流的偏微分方程,現在稱為 Richards equation,它的概念是:某一深度的含水量變化 = 上下水流差,數學形式可寫成: $\frac{\partial \theta}{\partial t} = \frac{\partial}{\partial z} \left[ K(\theta) \left( \frac{\partial h}{\partial z} + 1 \right) \right]$ 先不要被公式嚇到,它只有四個重要角色: θ:土壤含水量 h:基質勢(matric potential) K:水力傳導度 z:深度 2.3 每一項到底代表什麼? 左邊: $\frac{\partial \theta}{\partial t}$ 意思就是:每一秒鐘,土壤含水量改變多少。 右邊第一項:K(θ) 代表水現在有多容易流 乾土 □□□□□□□□□ 水很難流。 濕土 ■■■■■■■■■ 水很好流。 因此 K 不是常數,而是K=f(θ),這也是整個問題困難的來源。 右邊第二項:$\frac{\partial h}{\partial z} $ 代表水勢梯度。水永遠往高水勢流向低水勢,而不是永遠向下。水甚至可以往上移動。 最後:+1 就是Gravity,代表:地球重力。 2.4 為什麼 Richar...

Tipping Bucket Model (1): Water Balance 架構

第一講:Water Balance 架構 1.1 DSSAT 水分模擬的核心思想 DSSAT(Decision Support System for Agrotechnology Transfer)不是用完整物理水流方程描述土壤水分,而是採用:soil-layer based, cascading reservoir model(分層串聯水庫模型),也就是常說的Tipping Bucket Model。 基本假設: 土壤剖面被切割成數個水平土層(soil layers)。 每層是一個獨立水庫。 水進入某層後:儲存在該層、超過容量後向下流動、被根吸收、被蒸發消耗 因此 DSSAT 的土壤水分不是求解水勢,而是追蹤: Water storage in each layer 1.2 DSSAT 水分模組的位置 DSSAT CSM(Cropping System Model)的架構: Weather | ↓ ┌───────────────────┐ │ Daily Weather Data│ └───────────────────┘ | ↓ ┌───────────────────┐ │ Soil Water Module │ └───────────────────┘ | ┌──────────────┼──────────────┐ ↓ ↓ ↓ Infiltration Evaporation Drainage | ↓ Soil Water Profile | ↓ Root Water Uptake | ↓ Crop Growth 也就是: 氣象 → 水分平衡 → 植物生長 1.3 DSSAT 每日水分平衡方程 每天土壤水分更新: $ S...

CERES-RICE 品種參數

P1:基本營養生長期 (P1) 從出土到對光週期變化變得不敏感之前的這段時間。這段期間,水稻的生長主要受溫度影響。它的時間長度以「生長積溫」(GDD, 攝氏度-天) 表示,基溫為 9°C。 ! P1 Time period (expressed as growing degree days [GDD] in oC-d above a ! base temperature of 9oC) from seedling emergence during which the ! rice plant is not responsive to changes in photoperiod. This period ! is also referred to as the basic vegetative phase of the plant. ! Range: 150-800 oC-d. 數值範圍: 150-800 °C-d。 校準: 具有彈性,可以與實際觀察到的幼穗分化和開花日期進行比較來調整。 P2O 中文翻譯: 臨界光週期 (P2O) 說明: 這是指水稻發育達到最快速度所需的最長日照時間(以小時為單位)。如果日照時間超過這個臨界值,發育速度會減慢,導致生長延遲。 數值範圍: 11-13 小時,預設值為 12 小時。 校準: 除非有相關數據,否則不建議低於 11 小時。 P2R 中文翻譯: 光週期敏感係數 (P2R) 說明: 當日照時間每增加一小時超過臨界光週期 (P2O) 時,水稻發育(特別是幼穗分化)所延遲的時間,以生長積溫 (GDD) 表示。 數值範圍: 5-300 °C-d。 校準: 現代水稻品種的數值通常在較低範圍內。 P5 中文翻譯: 灌漿期 (P5) 說明: 這是從灌漿開始(開花後約 3 至 4 天)到生理成熟的這段時間,同樣以生長積溫 (GDD) 表示,基溫為 9°C。 數值範圍: 150-850 °C-d。 校準: 在正確校準了 P1、P2O 和 P2R 以符合開花日期後,再根據實際成熟日期來校準 P5。 G1 中文翻譯: 潛在小穗數係數 (G1) 說明: 這是根據開花期時主莖(不包括葉片和葉鞘,但包括穗部)的乾重,估算出的每克乾重所含的潛...

DSSAT - 實驗檔

DSSAT的實驗記錄檔在相對應的資料夾當中,分為兩種檔案,結尾為A(例如FLSC8101.MZA)和結尾為T(例如FLSC8101.MZT),結尾為A的檔案收穫時期的資料,結尾為T為時序資料 以下為 FLSC8101.MZA 的範例 *EXP. DATA (A): FLSC8101MZ N X IRRIG., S.C. (CERES MAIZE BK) ! File last edited on day 08/29/2003 at 9:33:41 AM ! ! Grain yield (HWAM) expressed as dry weight @TRNO HWAM HWUM H#AM H#UM LAIX CWAM BWAH ADAT MDAT GN%M CNAM SNAM GNAM 1 9760 0.276 2968. 418. 4.2 23800 10954 156 210 1.62 248.0 90.0 158.0 2 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 -99 以下為 FLSC8101.MZT 的範例 *EXP. DATA (A): FLSC8101MZ N X IRRIG., S.C. (CERES MAIZE BK) ! File created by WDB on 10/17/03 using data from FLSC8101.MZA ! @TRNO DATE GWAD GWGD G#AD LAID CWAD GN%D CNAD SNAD GNAD 1 81157 -99 -99 -99 4.2 -99 -99 -99 -99 -99 1 81205 9760 276. 2968. -99 23800 1.62 248.0 90.0 158.0 2 81205 -99 -99 -99 -99 -99 -99 -99 -99 -99 GWAD Grain w...

CURV function

DSSAT程式裡面常使用CURV function 計算,這個公式位於UTILS.for 當中,以下我們對curve function 進行研析。 這個函式使用CURV當作回傳值,包含不同的curve type (CTYPE) 以及轉折點,分別為XB, X1, X2, XM, X 預設的CURV 為1,因此如果選擇CTYPE是non時,就會得到1。 FUNCTION CURV(CTYPE,XB,X1,X2,XM,X) IMPLICIT NONE CHARACTER*3 CTYPE REAL CURV,XB,X1,X2,XM,X CURV = 1.0 IF (CTYPE .EQ. 'NON' .OR. CTYPE .EQ. 'non') RETURN LIN - 梯形公式 首先是線性反應方程式(LIN),它是個梯形公式,在X1, X2 之間是1,XB和X1之間以及X2和XM之間是線性變化。 我們選擇XB = 8, X1 = 25, X2 = 34, XM = 44,得到結果如下: C-------------------------------------------------------------------- IF(CTYPE .EQ. 'LIN' .OR. CTYPE .EQ. 'lin') THEN CURV = 0. IF(X .GT. XB .AND. X .LT. X1)CURV = (X-XB)/(X1-XB) IF(X .GE. X1 .AND. X .LE. X2)CURV = 1. IF(X .GT. X2 .AND. X .LT. XM)CURV = 1.0 - (X-X2)/(XM-X2) CURV = MAX(CURV,0.0) CURV = MIN(CURV,1.0) ENDIF C--------------------------------------------------------------------...

DSSAT - 模式輸出檔

DSSAT 的輸出檔格式包括ASCII text 和 CSV (逗號分隔取值) 兩種格式,預設的輸出檔格式為text,如果需要使用其他程式如 R 或 Excel 分析時,則稍嫌不方便。 如果要更改輸出檔,從 "Crop management data" 點取"Simulation option",再點選"output",在Format的地方選擇 "Comma separated values (CSV)"。 這邊有個bug:如果使用CERES-MAIZE進行模擬,可以順利的產出CSV檔,但是若CSM-IXIM則無法產出CSV檔。 轉檔小工具 如果CERES-MAIZE進行模擬,植物的模擬結果檔是 PlantGro.OUT,如果選擇 IXIM 進行模擬時,植物的模擬結果檔為 OPG附檔名,如TW482001.OPG。 https://github.com/Chuchung0604/DSSAT-tool/blob/main/readPlant.py 輸出檔代號 在C:\DSSAT47\DATA.CDE 這個檔案當中,可以查閱到輸出檔代號的註解,以下針對CERES-MAIZE的輸出檔代號進行整理 L#SD:每一莖上的葉數 GSTD:生育期,分別為0-5的整數 LAID:葉面積指數 LWAD:葉乾重,單位 kg/ha SWAD:莖乾重,單位 kg/ha GWAD:籽粒乾重(Grain weight),單位 kg/ha RWAD:根乾重,單位 kg/ha VWAD:地上部營養生長部位乾重 Vegetative weight (莖+葉),單位kg/ha CWAD:可能是地上部乾重 Tops weight,單位kg/ha G#AD:籽粒數,單位 1/每株,(例:735) GWGD:單粒重 Unit grain weight,單位 mg/grain HIAD:收穫指數 (籽粒重/地上部乾重) PWAD:穗乾重 pod weight,單位 kg/ha P#AD :單位面積的穗數,單位 穗數/m2 WSPD:光合作用水分逆境指數,無單位,0-1,0表示無逆境,1表示逆境最大 SWGD: expansion/partioning/development 的水分逆境指數,0-1 NSTD:氮逆境指數,0-1

DSSAT 作物參數 - 以玉米為例

上一篇提到DSSAT模型裡面包含品種 (Cultivar, CUL)、生態型 (Ecotype, ECO) 與物種 (Species, SPE) 等3個階層的作物參數,我們就可以體會到作物模式對於不同的外表徵狀變異性有其認知,我們可以觀察到大概是以下的架構 物種 (Species) | 生態型 (Ecotype) | 品種 (Cultivar) 越下層的特性就越容易改變。也就是說,不同的品種會有個別的品種參數,但可能會有不同的生態種參數,可能只有一個物種參數。 接下來我們要以玉米為例,從品種依序往上介紹,我們會談到 CERES-MAIZE 與 CSM-IXIM兩個玉米模型的參數。 品種參數 (Cultivar) 這邊我們先觀察MZCER047.CUL與MAIXM047.CUL兩個檔案,來了解品種參數的項目 CERES-MAIZE 的品種參數如下: @VAR# VRNAME......... EXPNO ECO# P1 P2 P5 G2 G3 PHINT ! 1 2 3 4 5 6 PC0001 2500-2600 GDD . IB0001 160.0 0.750 780.0 750.0 8.50 49.00 CSM-IXIM的品種參數如下: @VAR# VRNAME......... EXPNO ECO# P1 P2 P5 G2 G3 PHINT AX ALL ! 1 2 3 4 5 6 7 8 IB0035 McCurdy 84aa . IB0001 260.0 0.300 955.0 700.0 8.50 43.00 770. 930. 從上面可以看到,CSM-IXIM比CERES-MAIZE多了AX與ALL兩個最大葉的參數,其他的參數相同,以下我們就來一一介紹參數的定義 P1 :萌芽至幼齡期結束的累積溫度值 ,選用幼齡期結束是因...

DSSAT - 建立新品種參數

作物參數概述 DSSAT的作物參數都在Genotype 檔案夾當中,每個模型有個別的資料檔,如果有不同的品種就可在資料檔中使用筆記本進行修改,須留意DSSAT模式對於資料的位置相當嚴格,推測程式先把每行讀成字串,再依據位置進行解析。 每個模型都有3個檔案,以CERES-MAIZE為例,MZCER047有3個附檔名: 品種參數 (CUL):副檔名來自品種 (Cultivar) 縮寫,是主要的參數調整資料夾,包含P1、P2、P5、G2、G3、PHINT等參數,新的品種應該有其獨特的參數; 生態型參數 (ECO):副檔名來自生態型 (Ecotype) 的縮寫, 包含與發育相關的溫度參數,如基礎溫度、最適溫度,以及生長相關的參數,如輻射利用效率 (RUE)。 物種參數 (SPE):副檔名來自物種 (species) 縮寫,包含光合作用溫度參數、二氧化碳參數、逆境參數、萌芽與出土速率參數、氮與磷濃度參數、根生長參數等; 其中1個檔案中可以有多個品種參數與生態種參數,僅有1個物種參數,詳細的內容可以參閱另一篇文章。 調整品種參數方法 改變品種參數的方法其實很簡單,只需要在cul的附檔名加上新的品種,並輸入相關的參數就可以了,步驟如下: 1. 打開 C:\DSSAT47\Genotype 2. 選擇MZCER047.CUL MZCER047就是CERES-MAIZE version 4.7的縮寫 3. 手動編輯 依序輸入品種代號(VAR)、品種名稱(VRNAME)、生態種代號(ECO#)、以及品種參數。需要特別留意資料的對齊。

DSSAT 跑模式

建議土壤資料和氣象資料建立後,再利用Crop Management Data的按鍵建立實驗資料檔 1. 點擊 "Crop Management Data",選擇File -> New 2.選擇 Experimental,依序填入試驗機關代碼(Institute code)、區域代碼(site code)、年度(Year)、實驗數量(Experimental number) Institute只能是兩碼的英文字(尚未確定數字是否可行) 完成後按Next 3. Environment  4. 初始狀態 5. Cultivar 這邊選擇栽種的作物 6. Planting 7. Irrigation 8. Fertilizer 9. Tillage 10. Soil Analysis 11. Simulation Options 12. Refresh 之後就可以關掉視窗 13. 回到主畫面 14. 按Run 選擇Run model

DSSAT - 建立氣象檔

使用Weatherman這個工具,讀取每日的WTH檔建立氣象站的CLI檔 DSSAT 氣象資料的介紹請看  DSSAT - weather 1. 產出WTH檔 2. 將WTH檔放到weatherman 的import資料夾 路徑為:C:/DSSAT47/Tools/Weatherman/import/ 3. 開啟DSSAT主程式,點擊Weather Data 4. 選擇「import existing DSSAT weather files and create a new station" 5. 在程式當中就會發現TWTA資料夾下面存放所有的資料檔 點擊OK 6. 把"prompt for station name" 取消掉,點選OK 7. 程式會開始跑一陣子,把資料讀進去,並計算每個月的平均值還有weather generator的參數 8. 結束後會出現氣象站的資料畫面 這就表示我們已經成功建立檔案了 9. 點擊圓餅圖的方塊可以檢視氣象資料 可以看到最大降雨量超過100 mm/day 9. 點選 File → Save Station 儲存氣象站資訊 10. 選擇yearly

DSSAT - weather

資料夾結構 氣象資料位於"Weather"的資料夾底下,路徑應該為C:\DSSAT47\Weather 這裡面可以觀察到有"Climate"資料夾以及.WTH的氣象檔,前者是以資料夾的形式儲存每個區域氣象站的基本資訊,而.WTH則是每一年一個檔案。 Climate 資料檔 以自建的TWTA.CLI為例,檔案內容可以分為數段 1. 測站基本資料 *CLIMATE : TAICHUNG, TAIWAN @ INSI LAT LONG ELEV TAV AMP SRAY TMXY TMNY RAIY TARI 34.250 -85.960 573 15.1 12.9 16.0 21.5 8.6 1349 @START DURN ANGA ANGB REFHT WNDHT SOURCE 1980 14 0.25 0.50 -99.0 -99.0 Calculated_from_daily_data @ GSST GSDU 1 365 TAV是全年度平均溫度 SRAY是全年日射量平均值(MJ m-2 day-1) TMXY是全年日高溫平均值 TMNY是全年日低溫平均值 RAIY是年降雨量累積值(mm) DURN是Duration of summarization period for climate files ANGA是Angstrom 'a' coefficient, yearly, ANGB是Angstrom 'b' coefficient, yearly,   REFHT是氣象量測的高度 (m) WNDHT是風速的量測高度 (m) 2.每月平均值 *MONTHLY AVERAGES @MONTH SAMN XAMN NAMN RTOT RNUM SHMN AMTH BMTH 1 9.2 11.1 -2.0 122.1 11.9 -99.0 0.250 0.500 2 11.3 14.1 -0.1 137.7 10.5 -99.0 0.250 0.500 3 14.5 16.9 4.0 143.5 10.5...

DSSAT - soil

 以下的資料是從soil.soil的表頭,可以觀察到的是,DSSAT把所有的土壤資料都放在同一個資料夾裡面,如果往後要做批次模擬的話,就要在這個檔案裏面增加內容。 目前測試的結果是,我們只要輸入質地、有機質含量資料,DSSAT會自動計算水利參數。 表頭有講到總體密度、lower limit (LL)- 近似萎凋點, drainage upper limit (DUL)- 近似田間容水量、SAT-飽和水分含量的估計方法所使用的paper,另外有一個質地和物理性質的對照表,頗實用的。 *SOILS: General DSSAT Soil Input File! DSSAT v4.7; 09/01/2017 ! ! Standard Soil Profiles ! ! The following generic information was developed by A.J. Gijsman: ! ! - BD was estimated as BD = 100 / (SOM% / 0.224 + (100 - SOM%) / mineral BD) ! (Adams, 1973; Rawls and Brakensiek, 1985). ! - LL and DUL are according to Saxton et al., 1986. ! - SAT was taken as a fraction of porosity (Dalgliesh and Foale, 1998): ! 0.93 for soil classes S, SL and LS; 0.95 for soil classes L, SIL, SI, ! SCL and SC; and 0.97 for soil classes C, CL, SIC and SICL. ! For this, porosity was estimated as: POR = 1 - BD / APD (in which APD ! is the adjusted particle density, i.e. corrected for SOM; Baumer and Rice, 1988). ! - The ranges of LL and DUL values were c...

DSSAT使用筆記

DSSAT (Decision Support System for Agrotechnoloy Transfer) 可以說是最廣為使用的作物生長模式,包含CERES、CROPGRO等不同架構的模式,目前程式已經更新到V4.7.5,包含了32種作物的架構。程式前由佛羅里達大學進行管理,持續進行模式與使用者介面的更新。另外在Github上面也有DSSAT foundation,申請加入後可以瀏覽程式的原始碼,是持續更新又保持開源的系統。 上網註冊取得授權之後即可下載安裝程式,主程式會位於C槽底下DSSAT47的資料夾,主程式在運作的時候抓取不同的資料夾,以玉米為例程式會讀取:(1)MAIZE資料夾下.MZA , .MZT, .MZX資料檔、(2)Soil資料夾下的.SOL、(3)Weather資料夾下的.WTH、(4) 作物參數檔 實驗資料夾 - Maize 1. MZX MZX實驗檔是DSSAT程式第一個讀取的檔案,這個檔案當中的*FIELDS,就會有標示氣象資料ID與土壤資料ID,主要讀取的檔案, 這個資料檔為試驗處理主要為試驗處理的資料,包含試驗 處理 (TREATMENTS)、 品種 (CULTIVARS)、 耕地 (FIELDS)、 土壤分析 (SOIL ANALYSIS)、 初始狀態 (INITIAL CONDITIONS):作物萌芽後的葉面積、養分濃度、 種植細節 (PLANTING DETAILS):種植密度、種植日期、 灌溉與水分管理 (IRRIGATION AND WATER MANAGEMENT):灌溉時間、灌溉量、 肥料 (FERTILIZERS):指的是化學肥料氮肥的施用量,包含施肥日期(FDATE)、施肥深度(FDEP)、 殘體與有機肥料 (RESIDUE AND ORGANIC FERTILIZERS)、模擬控制(SIMULATION CONTROLS)、 自動管理 (AUTOMATIC MANAGEMENT) *FIELDS @L ID_FIELD WSTA.... FLSA FLOB FLDT FLDD FLDS FLST SLTX SLDP ID_SOIL FLNAME 1 TWTB2020 TWTA 0 -99 DR001 10 -99 0 L 1...