on
모델링 - APSIM 7.10 UI 사용법 정리
모델링 - 지난 글
목차
참고 링크:
작물 모형의 종류
APSIM Python
APSIM Python
APSIM이 무엇인지는 지난 글을 통해서 수차례 설명했기 때문에 본 글에서는 패스 하겠다. 궁금하다면 지난 글을 참고하고 그래도 모르겠다면 다른 레퍼런스들을 참고하면 좋을 듯 하다.
기상 데이터
작물 모형 (crop model) 을 구동하는 데에 있어 기상 환경 자료는 필수 불가결한 입력자료이다. 현재 까지 개발된 작물 모형은 G(Gene) x E(Environment) x M(Management) 의 메커니즘을 따른다. (스마트팜학과 학생이라면 정밀농업 수업에서 배우게 될 개념)
여기서 E에 해당하는 것이 바로 기상 자료이기 때문에 기상 자료가 없다면 작물 모형 구동이 불가능할 뿐더러 구동이 된다 하더라도 좋은 결과는 기대하기 어려울 것이다.
따라서 본 탭에서는 APSIM 이라는 작물 모형을 구동 하기 위해 필요한 기상 자료를 기상청 API를 통해서 수집하고 적합한 포멧으로 변환하는 방법을 소개하고자 한다.
https://github.com/EthanSeok/APSIM_Python 본 링크에서 APSIM_calibration
폴더에 기상자료 수집 및 전처리 과정을 파이썬을 이용하여 자동화 할 수 있도록 정리해 놓았다.
해당 폴더를 다운받고, preprocess
폴더 내에 있는 preprocess_weather.py
파일을 실행 시키면 기상 자료를 APSIM 포멧에 맞도록 수집 및 전저리가 가능할 것이다. (KOSIS 생산량 자료가 있는 지역만 다운로드 가능하도록 되어있음. 자세한 구동방법은 README 참고)
정상적으로 실행 시 output
폴더가 생성되며, 그 구조는 다음과 같다.
├─output
│ ├─cache_weather
│ ├─kosis
│ ├─kosis_wheat
│ ├─weather_met
│ ├─weather_txt
│ └─weather_xlsx
여기서 우리가 APSIM을 구동하는데에 있어 필요한 파일은 weather_met
폴더 내에 있는 파일이다. 기상 자료 포멧은 는 다음과 같다.
APSIM UI
APSIM GUI를 구동하면 다음과 같은 화면을 볼 수 있다.
최상단 및 하단에 있는 메뉴 박스에는 APSIM에서 사용가능한 다양한 기능들이 아이콘 형태로 표시되어 있다. 작물 모형을 구동하는 과정을 진행하면서 하나하나 살펴보도록 하겠다.
New Simulation 생성
왼쪽 최상단에 위치한 New Simulation 버튼은 클릭하면 다음과 같은 폴더가 출력된다.
여기서 각종 시뮬레이션 옵션의 Base 세팅을 볼 수 있다. 여러 작목에 대한 기상, 물, 잡초 등의 시나리오를 시뮬레이션 할 수있다. 하지만 본 글에서는 국내 밀(Wheat)의 연속 작기에 대한 시뮬레이션
을 다루어 볼 것이므로 Continuous Wheat.apsim
을 클릭하여 생성해 주자.
생성시 다음과 같은 화면이 출력된다.
좌측 바에 다양한 메뉴가 생성되었으며, 추가하거나 제거하여 실험에 적합한 환경을 설정하는 Calibration
작업을 수행할 수 있다. (이것 또한 정밀농업에서 다루는 개념이니 작물 모형을 공부하고 싶다면 반드시 정밀농업을 수강하세요)
met
왼쪽 메뉴바에서 met
을 클릭하면 다음과 같은 화면이 출력된다.
APSIM에서 기본으로 제공하는 디폴트 기상환경이며, 우리는 국내 환경에 대한 기상자료를 적용해 볼 것이다. 기상 자료는 위에서 잘 만들었으니 경로만 잘 설정해 주면 될 것이다.
Browse
버튼을 클릭하여 위에서 생성한 output - weather_met
폴더에서 Andong_weather.met
을 지정해 보도록 하자.
혹시나 아래와 같은 에러가 발생했다면, 이는 테이블에 nan 값이 존재하여 발생한 에러이므로, nan이 존재하는 행을 지우고 다시 불러오면 해결될 것이다.
올바르게 불러왔다면 다음과 같에 에러 없이 테이블이 바뀐 것을 확인할 수 있을 것이다.
기상 자료를 불러오면 APSIM UI 내에서 자동으로 그래프를 그려준다. ex) 연도별 강수량, 월별 강수량, 기온, 광량
clock
왼쪽 메뉴바에 있는 clock
은 시뮬레이션을 진행할 시간을 설정하는 탭이다. 시뮬레이션 하고자 하는 시간을 yyyy-mm-dd 포멧으로 입력한다.
추가로 APSIM config 파일에는 다음과 같이 업데이트 된다.
summaryfile
summaryfile
은 시뮬레이션 구동시 시뮬레이션 과정을 로깅하는 .sum 파일을 UI상에 출력해주는 기능이라 생각하면 된다.
paddock
토양 옵션 - 추가 업데이트 예정
soil - Initial water
soil - water
soil - SoilOrganicMatter
soil - Analysis
soil - Initial nitrogen
SurfaceOrganicMatter
유기물 옵션
Description | value |
---|---|
Organic Matter pool name | wheat |
Organic Matter type | wheat |
Initial surface residue (kg/ha) | 0 |
C:N ratio of initial residue | 0 |
Fraction of residue standing | 0 |
wheat
작물의 상세 품종에 관한 설정 옵션
작물 마다 상세 품종에 대한 변수를 추가로 설정할 수 있다. 밀의 경우 조경, 새금강, 금강 등이 있으며, 본 글에서는 새금강 품종을 적용 시켜 볼 것이다. 새금강에 대한 APSIM 품종 자료는 이곳에서 확인할 수 있다.
”‘
Manager folder - Crop Management
sowing criteria
Description | value |
---|---|
Enter sowing window START date (dd-mmm) | 10-Oct |
Enter cultivar change date (na if not in use) | na |
Enter sowing window END date (dd-mmm) | 22-Oct |
Must sow | yes |
Enter amount of cumulative rainfall (mm) | 25 |
Enter number of days to accumulate rainfall (days) | 7 |
Enter amount of soil water (mm) | 100 |
sowing Parameters
Description | value |
---|---|
Enter cultivar : | Saegeumgang |
Enter 2nd Cultivar (na if not using a second cultivar) | na |
Enter sowing density (plants/m2) | 100 |
Enter sowing depth (mm) | 30 |
Enter row spacing (mm) | 250 |
Extra Parameters
Description | value |
---|---|
Enter Fertile Tiller Number (na for auto) : | na |
Skip row : | solid |
Name of tillage implement (na if not in use): | na |
Manager folder - Fertilise at sowing
하단 Management
를 클릭하면, 아래 화면과 같이 Toolbox 메뉴바가 출력된다.
Management - Manager (common task) 폴더에 다음과 같이 다양한 Management 옵션을 확인할 수 있으며. 원하는 옵션을 Manager foler
로 드래그 앤 인풋하여 추가한다.
When should fertiliser be applied
Description | value |
---|---|
On which module should the event come from : | wheat |
On which event should fertiliser be applied : | sowing |
Fertiliser application details
Description | value |
---|---|
Module used to apply the fertiliser : | fertiliser |
Amount of starter fertiliser at sowing (kg/ha) : | 100 |
Sowing fertiliser type : | urea_N |
Manager folder - Sow on a fixed date
Description | value |
---|---|
Enter sowing date (dd-mmm) : | wheat |
Enter sowing density (plants/m2) : | 280 |
Enter sowing depth (mm) : | 50 |
Enter cultivar : | saegeumgang |
Enter crop growth class : | plant |
Enter row spacing (mm) : | 200 |
Manager folder - Harvesting rule
Description | value |
---|---|
Enter name of crop to harvest when ripe : | wheat |
Manager folder - Fertilise on fixed date
When should fertiliser be applied
Description | value |
---|---|
Enter fertiliser date (dd-mmm) : | 24-Mar |
Don’t add fertiliser if N in top 2 layers exceeds (kg/ha) : | 1000 |
Fertiliser application details
Description | value |
---|---|
Module used to apply the fertiliser : | fertiliser |
Amount of fertiliser to apply (kg/ha) : | 100 |
Fertiliser type : | urea_N |
outputfile
outputfile - Variables
outputfile
은 모델 결과를 출력하기 위한 설정 탭이다. Variables
에서 출력할 결과 목록을 추가할 수 있다.
Output file columns | Variables to drag onto grid: |
---|---|
dd/mm/yyyy as Date | clock |
biomass | wheat |
yield | wheat |
grain_protein | wheat |
grain_size | wheat |
esw | soil |
lai | wheat |
fertiliser | fertiliser |
outputfile - Variables
Output file columns | Frequency list - drag to the grid |
---|---|
end_day | clock |
end_day
는 시뮬레이션 결과 도출을 시뮬레이션이 끝나는 날 까지 매일 결과를 기록한다.
Run
모든 설정을 완료했다면 오른쪽 상단에 있는 run
을 클릭하여 모형을 구동할 수 있다.
구동 결과
다음과 같이 모델이 정상적으로 구동되었다면, outputfile
탭에 정상적으로 출력될 것이다. 만약 값이 없거나 올바르게 출력되지 않는다면, summaryfile
을
체크해 보도록 하자. error 메세지가 있을 테니..
Graph
다음은 모형 결과를 토대로 그래프를 그리는 방법에 대하여 소개하겠다.
아래 하단 graph
를 클릭하면 다음과 같이 그래프 생성 툴박스가 출력된다.
XY를 simulations
폴더에 추가하고, Plot
을 클릭하면, 그래프 옵션을 선택할 수 있다.
Graph - Plot
중앙 두개의 박스를 클릭하면 분홍색으로 바뀌며, 이때 아래 테이블의 컬럼을 클릭하면 해당 값에 해당하는 그래프를 그릴 수 있다.
아래 그림은 작기에 따른 LAI 그래프이다.