on
모델링 - 여러가지 작물생육 모델 돌려보기 -2부
모델링 - 지난 글
목차
기상 데이터
https://www.data.go.kr/data/15059093/openapi.do로 부터 기상자료 API를 받아올 수 있다. 이번 모델링을 위해 2007 ~ 2020년도 시도별 기상자료를 받아 전처리 후 모델의 입력자료로 활용하였다.
- 위 사이트에서 다운 받은 기상자료의 경우 일사량 데이터가 누락된 지역이 다수 발견되었다. 이는 일조시간을 이용하여 일사량을 예측하는 penman monteith 방법을 사용하여 보간하였다.
APSIM
APSIM 입력 자료
- APSIM의 입력자료는 다음과 같이 실험 사이트 위경도, 실험 기간, 기상 정보 등을 입력하며, 확장자명은 met 또는 txt로 저장해야한다.
APSIM 입력자료
- csv 형식을 통해 레이아웃을 만들 경우 스페이스바로 공백을 주어 하나의 셀 안에 정리해야 오류가 발생하지 않는다.
csv로 정리한 입력자료
- APSIM GUI 내 met 카테고리로 이동한 뒤 위에서 정리한 입력자료를 선택하고, 다음과 같은 화면이 출력되면 올바르게 적용된 것이다.
입력자료 작성 참고: https://www.apsim.info/documentation/model-documentation/infrastructure-and-management-documentation/met/
APSIM 파라미터
- APSIM은 soil Water, Soil Organic Matter, Crop Management 등 토양 및 재배 관리 파라미터를 조정할 수 있으며, 작물 고유의 파라미터 또한 커스텀이 가능함.
Soil Water
SoilOrganicMatter
Crop Management
토양 파라미터 참고: https://www.apsim.info/documentation/model-documentation/soil-modules-documentation/
APSIM 실행 파일
-
apsim 확장자 파일은 APSIM 모델 실행을 위해 필요한 정보를 모아놓은 파일이다. 즉, 이 파일에 작성된 파일 경로, 해당 지역, 기간, 파라미터 등의 내용을 기반으로 모델이 실행되는 것이다.
-
확장자는 xml (Extensible Markup Language)로 저장되며, 카테고리 별로 블록이 나누어져있어 가독성이 좋으며, 코딩을 통해 쉽게 편집할 수 있다는 장점이 있다.
APSIM 실행 파일 (.apsim)
APSIM 출력 파일
-
APSIM 모델이 정상적으로 실행되면 summary, output두개의 결과 파일이 생성된다.
-
summary 파일은 모델이 실행되는 중간 과정을 로깅하여 사용자에게 전달하는 역할이라 생각하면 된다. 모델이 시뮬레이션된 중간 결과값들이 작성되며, 중간에 오류가 발생할 경우 output 파일이 생성되지 않고 summary 파일만 생성되며, summary 파일에는 발생한 오류에 대한 내용이 기재된다.
-
output 파일은 모델이 실행되어 도출된 최종 결과값을 전달하는 역할이라 생각하면 된다. 내용은 Date (dd/mm/yyyy) , biomass (kg/ha), yield (kg/ha), grain_protein (%), grain_size (g), esw (mm) 가 기재된다.
output 파일
- GUI의 경우 입력자료 및 파라미터를 그래프로 출력해주기 때문에 변경사항을 시각적으로 확인이 가능하고, 쉽게 입력할 수 있는 장점이 있다. 하지만 한번에 여러 사이트를 시뮬레이션하는 것은 불가능하다.
APSIM 파이썬
-
APSIM은 실행 파일 및 런처가 있는 경로를 지정하면 파이썬상에서 구동이 가능하다. 또한 기존의 GUI의 경우 한 번 모델을 돌릴 때마다 입력자료 및 파라미터 수정이 필요했으나, 파이썬으로 구동할 때에는 한 번의 실행으로 여러 번 모델을 돌릴 수 있기 때문에 편할 뿐만 아니라, 여러장의 그래프를 쉽게 얻을 수 있기 때문에 효과적이다.
-
더 정확한 파라미터 탐색을 위한 그리드 서치 (Grid Search)와 같은 파라미터 튜닝에도 효과적이다.
파이썬 소스코드: https://github.com/EthanSeok/APSIM_wheat
파이썬을 이용한 APSIM 밀 생산량 예측
준비
파이썬을 이용해 모델을 실행하기에 앞서 초기에 세팅해 주어야 하는 부분을 짚고 넘어가겠다.
-
강조 표시 된 부분은 기상 파일 (.met) 경로을 설정하는 부분이다. 모델의 입력 자료로서 부재시 모델이 작동하지 않기 때문에 반드시 올바르게 적용이 되는지 확인 해야 할 필요가 있다. 확장자는 .met, .txt 모두 정상적으로 구동되는 것을 확인하였다.
- 위에서 제시한 소스 코드의 경우 폴더안에 있는 파일의 이름을 모두 읽어 자동으로 입력되도록 코딩하였다.
기상 파일 경로
- 강조 표시된 부분은 모델에서 시뮬레이션 하고자 하는 기간이다. 포맷은 반드시 dd/mm/yy 형식으로 입력해야 한다.
시뮬레이션 기간
- 강조 표시된 부분은 작물의 파종 날짜 및 조건이다. 모델에서 해당 부분에 지정한 날짜에 파종을 지시하고, 다작기의 경우 실질적으로 해당 일자 부터 시뮬레이션 된다. Must Sow의 경우 파종에 적합한 기상 조건이 될 경우에만 파종을 할 것인지 무시하고 무조건 파종할 것인지에 대한 조건이다. no일 경우 시뮬레이션이 되지 않는 경우가 발생하기 때문에 yes로 변경하였다.
- 강조 표시된 부분은 토양 수분의 계절 요소를 적용하는 부분이다. APSIM은 호주에서 제작한 모델이기 때문에 디폴트로 설정된 값이 우리와 반대이다. (호주는 우리와 계절이 반대이기 때문.) 따라서 한국에 맞게 변경하였다.
위 부분을 수정하면 모델이 돌아가는 데에는 문제가 없을 것이다. 하지만 다른 파라미터를 일절 수정하지 않았기 때문에 정확히 시뮬레이션 되지는 않을 것이다.
파라미터 탐색
-
한국 토양 파라미터에 관련된 레퍼런스를 찾기가 쉽지 않았기 때문에 단순 파라미터 탐색 기법 중 하나인 ‘그리트 서치’를 이용하여 토양 수분 파라미터를 탐색하였다.
-
아래는 모델의 디폴트 파라미터를 이용하여 최초로 모델을 실행한 결과와 단순 파라미터 탐색을 통해서 가장 나은 결과를 비교한 것이다.
디폴트
ll15s = [0.12], duls = [0.35], sats = [0.53]
정리
-
기상자료 구득 및 APSIM의 구성 부터 실행 방법 까지 알아보았다.
-
기상자료의 경우 일사량 데이터가 누락된 지역이 다수 발견되었다. 이는 일조시간을 이용하여 일사량을 예측하는 penman monteith 방법을 사용하여 보간하였다.
-
APSIM은 GUI 및 파이썬 두 가지 버전으로 실행이 가능했고, GUI의 경우 입력자료 및 파라미터를 그래프로 출력해주기 때문에 변경사항을 시각적으로 확인이 가능하고, 쉽게 입력할 수 있는 장점이 있지만, 한번에 여러 사이트를 시뮬레이션하는 것은 불가능했다. 반면에 파이썬의 경우는 가능했으며, 한 번 실행할 때마다 파라미터를 손수 입력할 필요없이 범위를 지정한 만큼 자동으로 돌리기 때문에 큰 힘을 들이지 않고 고반복 작업이 가능했다.
-
파라미터는 디폴트 파라미터와 탐색을 통해 찾은 최적 파라미터 값의 결과를 비교한 결과 큰 차이는 없었다.
-
토양 양분 및 텍슻쳐 파라미터의 경우 파라미터를 변경해 보았으나 눈에 띄는 결과가 있지는 않았다. 잘못 입력을 하였거나, 적합하지 않은 수치를 입력했을 가능성이 있기 때문에 추후 다시 고민해 봐야할 문제인것 같다.
-
작물 특성이나, 관개, 비료 공급과 관련한 파라미터는 수정하지 않았다. 다음 파라미터의 민감도가 상대적으로 높을 수 있기 때문에 추후 고려해 볼 필요가 있다.