ConvLSTM 기반 산불 확산 예측 모델 개발
Version 1.0.0 (145 MB) by
우진
ConvLSTM 기반 산불 확산 예측 모델을 개발했습니다. 이 모델은 과거의 기온, 강수량, 풍속, 식생 등 22가지(산불 포함 23) 환경 데이터를 입력받아 산불 정보를 재구성하고, 미래 산불 위험도를 예측합니다.
데이터 전처리는 파이썬으로, 모델 구현 및 테스트는 매트랩으로 진행되었습니다.
원본 데이터셋 링크
https://zenodo.org/records/8006177
파이썬 전처리 코드는 preprocess 폴더 안에 있습니다
공통적으로 numpy, h5py, tqdm concurrent.futures, scipy 등의 라이브러리를 이용했습니다.
tiff_to_h5.py는 데이터를 처음 받으면 있는 tiff파일을 전처리 속도 향상의 목적으로 h5파일로 변환하는 기능을 수행합니다
preprocess_reconstruction.py는 프로젝트에서 22개의 기상, 위성 정보 등을 변수 X에, 화재 정보를 Y에 넣고 시공간 크롭(프로젝트 기준 64x64의 10일 시공간열)하며, 1%, 99%의 값을 기준으로 정규화하여 각각의 독립적인 학습 h5파일을 제작합니다.
이 중 일부의 파일들을 samples 폴더 안에 첨부했습니다 전체 파일은 위의 원본 데이터셋 링크에서 다운로드 후 tiff_to_h5.py를 실행하시면 됩니다(92GB)
preprocess_predict1day.py도 위의 파이썬 코드와 유사하지만 X에는 1일~10일의 기상, 위성 및 화재정보를 넣고, Y에는 2일~11일의 화재 정보를 넣어 11일의 화재 정보를 예측할 수 있는 모델의 데이터셋을 제작합니다.
channel_percentiles.json은 위 두파일에서 사용하는 json 파일으로서 각 채널의 데이터를 분석해 1%, 99%에 해당하는 low, high 값을 저장했습니다.
augment_data.py는 전처리된 파일들을 증강시켜주는 기능을 수행합니다. 각 파일의 데이터들을 2차원 공간에서 90도씩 회전시키거나 뒤집는 방식으로 최대 8배의 데이터셋 증강을 이룰 수 있고 파일을 몇개 더 만들어낼 것 인지 years_to_k 변수에서 지정할 수 있습니다.
visualize_h5.py는 전처리된 파일들 중 무작위로 한 파일을 불러와 연속된 기간동안 화재 정보를 gif의 형식으로 보여줍니다 시각적으로 데이터를 확인할 수 있습니다.
매트랩 사용자 정의 ConvLSTM 층 및 모델 코드는 preprocess 폴더 안에 있습니다
ConvLSTM2DLayer.m은 사용자 정의 ConvLSTM 층입니다. 딥러닝 모델에서 Seq2Seq 모델을 구현하기 위해 제작하였으며 initializeGlorot.m을 비롯한 4개의 initialize 파일들 역시 ConvLSTM2DLayer.m과 같이 경로에 추가되어야 정상적으로 작동합니다
L2WeightedRegressionLayer.m은 산불이 발생한 위치에 추가적인 가중치를 둘 수 있는 RegressionLayer로, 현재는 default로 가중치가 특별히 존재하지 않습니다.
trainValidate.m은 Seq2Seq 모델을 구현하고, 데이터셋을 온라인(데이터셋의 크기가 크기 때문에 분할하여 로드) 으로 불러와 학습하는 모델 훈련 코드로, reconstruction의 경우와 predict1day의 경우 모두 거의 비슷한 모델을 사용했으며, 이 코드에서 파라미터나 층의 개수 등을 쉽게 조정하여 사용할 수 있습니다.
makeGIF.m은 이렇게 구현된 Seq2Seq 모델을 불러들어, 테스트 데이터셋의 예측과 실제값을 시각화합니다. 또한, 이 데이터셋에서의 RMSE를 계산하고, 이와 함께 시각화한 애니메이션을 GIF의 형식으로 저장합니다.
Cite As
우진 (2025). ConvLSTM 기반 산불 확산 예측 모델 개발 (https://www.mathworks.com/matlabcentral/fileexchange/181684-convlstm), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Created with
R2025a
Compatible with any release
Platform Compatibility
Windows macOS LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Seq2Seq Model
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.0.0 |
