Skip to content

Latest commit

ย 

History

History
1779 lines (1128 loc) ยท 61.4 KB

File metadata and controls

1779 lines (1128 loc) ยท 61.4 KB

์‚ฐ๋ถˆ ์ „์ด ํ™•๋ฅ  ์˜ˆ์ธก ์‹œ์Šคํ…œ

์‚ฐ๋ถˆ ์ „์ด ํ™•๋ฅ  ์˜ˆ์ธก ์‹œ์Šคํ…œ์€ ํ•œ๋ฐ˜๋„ ์˜์—ญ์„ ์‚ฌ์ „์— 1km ์ œ๊ณฑ ๋ฒ”์œ„ ๋‚ด 33๋งŒ๊ฐœ๋กœ ๊ฒฉ์žํ™”ํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ขŒํ‘œ ๊ธฐ๋ฐ˜ ์‚ฐ๋ถˆ ๋ฐœ์ƒ ์ง€์ ์˜ ๊ธฐ์ƒ,ํ™˜๊ฒฝ ์ •๋ณด๋ฅผ ํ† ๋Œ€๋กœ ์ „์ด ํ™•๋ฅ ์„ ์˜ˆ์ธกํ•ด ์‹œ๊ฐํ™”ํ•˜์—ฌ ์ œ๊ณตํ•œ๋‹ค.

์•„๋ž˜๋Š” ์ด 21๊ฐœ ์ง€ํ‘œ์— ๋Œ€ํ•œ ๊ธฐ์ƒ, ํ™˜๊ฒฝ ์ •๋ณด์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ „์ฒ˜๋ฆฌ ๊ณผ์ • ๋ฐ ๊ตฌํ˜„ ์ฝ”๋“œ์™€ ๋ชจ๋ธ ํ•™์Šต ๊ณผ์ •์„ ์ž์„ธํžˆ ๋‹ค๋ฃฌ๋‹ค.


ํ•œ๋ฐ˜๋„ ๊ฒฉ์žํ™”

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ๋Œ€ํ•œ๋ฏผ๊ตญ ์ „์—ญ(์œ„๋„ 33.0ยฐ ~ 38.5ยฐ, ๊ฒฝ๋„ 124.5ยฐ ~ 130.5ยฐ)์„ ๊ธฐ์ค€์œผ๋กœ 0.01๋„ ๊ฐ„๊ฒฉ์˜ ๊ฒฉ์ž ์…€๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ ๊ฒฉ์ž์— ๋Œ€ํ•ด ์œ„๋„ยท๊ฒฝ๋„ ๋ฒ”์œ„ ๋ฐ ์ค‘์‹ฌ์ ์„ ๊ณ„์‚ฐํ•˜์—ฌ CSV ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฉ์ž ํŒŒ์ผ์€ NDVI, FFMC, DMC, ๊ธฐ์ƒ ๋ฐ์ดํ„ฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ณต๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฉ์ž ๋‹จ์œ„๋กœ ์ •๋ ฌํ•  ๋•Œ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.


๐Ÿงพ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ

korea_grids_0.01deg.csv

  • ์ด ์•ฝ 330,000๊ฐœ์˜ ๊ฒฉ์ž ์…€ ํฌํ•จ
  • ์—ด ์„ค๋ช…:
์ปฌ๋Ÿผ๋ช… ์„ค๋ช…
grid_id ๊ฒฉ์ž ๊ณ ์œ  ID (0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋ฒˆํ˜ธ)
lat_min ๊ฒฉ์ž์˜ ์ตœ์†Œ ์œ„๋„
lat_max ๊ฒฉ์ž์˜ ์ตœ๋Œ€ ์œ„๋„
lon_min ๊ฒฉ์ž์˜ ์ตœ์†Œ ๊ฒฝ๋„
lon_max ๊ฒฉ์ž์˜ ์ตœ๋Œ€ ๊ฒฝ๋„
center_lat ๊ฒฉ์ž ์ค‘์‹ฌ ์œ„๋„
center_lon ๊ฒฉ์ž ์ค‘์‹ฌ ๊ฒฝ๋„

โš™ ์‹คํ–‰ ๋ฐฉ์‹

python generate_korea_grids.py

๋˜๋Š” Jupyter Notebook์—์„œ ์…€ ๋‹จ์œ„๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


๐Ÿง  ์ฒ˜๋ฆฌ ๋กœ์ง ์š”์•ฝ

  1. ๋Œ€ํ•œ๋ฏผ๊ตญ ๋ฒ”์œ„ ์„ค์ •:
    • ์œ„๋„: 33.0ยฐ ~ 38.5ยฐ
    • ๊ฒฝ๋„: 124.5ยฐ ~ 130.5ยฐ
  2. ํ•ด์ƒ๋„ ์„ค์ •:
    • res = 0.01 (์•ฝ 1.1km ํ•ด์ƒ๋„)
  3. 2์ค‘ ๋ฃจํ”„๋ฅผ ํ†ตํ•ด ์œ„๋„ยท๊ฒฝ๋„ ๋ธ”๋ก ์ƒ์„ฑ:
    • ๊ฐ ์…€์˜ ์œ„/๊ฒฝ๋„ ๋ฒ”์œ„ ๊ณ„์‚ฐ
    • ์ค‘์‹ฌ์  ๊ณ„์‚ฐ
    • ๊ณ ์œ  ID ๋ถ€์—ฌ
  4. ๋ชจ๋“  ๊ฒฉ์ž ์ •๋ณด๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅ ํ›„ pandas DataFrame์œผ๋กœ ๋ณ€ํ™˜
  5. ์ตœ์ข… CSV๋กœ ์ €์žฅ

๐Ÿ›  ํ•„์š” ํŒจํ‚ค์ง€

  • pandas

์„ค์น˜:

pip install pandas

SPEI ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

SPEI ๋ฐ์ดํ„ฐ๋ฅผ ์•„๋ž˜ ํ”Œ๋žซํผ์—์„œ ์ˆ˜์ง‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Global SPEI database

๐Ÿ“ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ 1km ๊ฒฉ์ž ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋ฐ˜๋„ ์ง€์—ญ ๋ถ„์„์ด๊ณ , ๋ชฉ์ ์ด ๋‹จ๊ธฐ/์ค‘๊ธฐ ๊ฐ€๋ญ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋˜๋Š” ์œ„ํ—˜ ์˜ˆ์ธก์ด๊ธฐ์— SPEI-06 ๋กœ ๊ฒฐ์ •ํ•˜์˜€๊ณ  .nc ํ˜•ํƒœ์˜ ํŒŒ์ผ์„ ๋กœ์ปฌ์— ๋‹ค์šด๋กœ๋“œํ•˜์˜€์Šต๋‹ˆ๋‹ค. image (47)


SPEI_data.m - SPEI ์ตœ๊ทผ 6๊ฐœ์›” ํ‰๊ท  ๊ณ„์‚ฐ

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” SPEI 6๊ฐœ์›” ์ง€์ˆ˜(SPEI06) ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋ฐ˜๋„ ์ „์—ญ ๊ฒฉ์ž์— ๋Œ€ํ•ด ์ตœ๊ทผ 6๊ฐœ์›” ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ CSV๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์‚ฐ ์ค‘๊ฐ„์— ๋Š๊ฒจ๋„ ์ฒดํฌํฌ์ธํŠธ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ด์–ด์„œ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_grids_0.01deg.csv ํ•œ๋ฐ˜๋„ ๊ฒฉ์ž ์ •๋ณด (grid_id, ์œ„ยท๊ฒฝ๋„ ๋ฒ”์œ„ ํฌํ•จ)
spei06.nc SPEI NetCDF ํŒŒ์ผ (๋ณ€์ˆ˜: lon, lat, time, spei)

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ๊ฒฉ์ž ๋ฐ NetCDF ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ๊ธฐ์ค€์ด ๋˜๋Š” ํ•œ๋ฐ˜๋„ ๊ฒฉ์ž(grid_id, lat_min, lat_max, lon_min, lon_max)๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • SPEI06 NetCDF ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ์œ„๋„, ๊ฒฝ๋„, ์‹œ๊ฐ„, SPEI ๊ฐ’์„ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค.

2. ์ตœ๊ทผ 6๊ฐœ์›” ์ธ๋ฑ์Šค ์„ ํƒ

  • ์ „์ฒด ์‹œ๊ฐ„ ์ค‘์—์„œ ๊ฐ€์žฅ ์ตœ๊ทผ 6๊ฐœ ์‹œ์ ์˜ ์ธ๋ฑ์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ์ด 6๊ฐœ ์‹œ์ ์˜ ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

3. ์ฒดํฌํฌ์ธํŠธ ํ™•์ธ ๋ฐ ์ด์–ด์„œ ์‹คํ–‰

  • checkpoint.mat ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ, ์ด์ „ ๊ณ„์‚ฐ ์ค‘๋‹จ ์œ„์น˜(start_idx)๋ถ€ํ„ฐ ์ด์–ด์„œ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  • ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

4. ๊ฒฉ์ž๋ณ„ ํ‰๊ท  SPEI ๊ณ„์‚ฐ

  • ๊ฐ ๊ฒฉ์ž ์ค‘์‹ฌ ์ขŒํ‘œ์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด NetCDF ์ขŒํ‘œ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ์•„ SPEI ๊ฐ’์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ๊ทผ 6๊ฐœ์›”์˜ ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ์ธก๊ฐ’(>1e30)์€ NaN์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

5. ์ฃผ๊ธฐ์  ์ค‘๊ฐ„ ์ €์žฅ

  • 5,000๊ฐœ ๊ฒฉ์ž๋งˆ๋‹ค ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ checkpoint.mat์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ•์ œ ์ข…๋ฃŒ๋‚˜ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์ด์–ด์„œ ์žฌ์‹œ์ž‘ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

6. ์ตœ์ข… ๊ฒฐ๊ณผ ์ €์žฅ

  • ๋ชจ๋“  ๊ฒฉ์ž์— ๋Œ€ํ•œ ํ‰๊ท ๊ฐ’ ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ korea_spei06_recent_avg_all.csv๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

7. ์ฒดํฌํฌ์ธํŠธ ํŒŒ์ผ ์‚ญ์ œ

  • ๋ชจ๋“  ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋˜๋ฉด checkpoint.mat๋Š” ์‚ญ์ œ๋˜์–ด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_spei06_recent_avg_all.csv ๊ฐ ๊ฒฉ์ž๋ณ„ ์ตœ๊ทผ 6๊ฐœ์›” SPEI ํ‰๊ท ๊ฐ’ (grid_id, spei_recent_avg)
checkpoint.mat ์ค‘๊ฐ„ ๊ณ„์‚ฐ ์ƒํƒœ ์ €์žฅ ํŒŒ์ผ (์ž๋™ ์ƒ์„ฑ ๋ฐ ์ตœ์ข… ์‚ญ์ œ๋จ)

SPEI_data_2.m - ๊ฒฉ์ž-SPEI ๋ณ‘ํ•ฉ

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ํ•œ๋ฐ˜๋„ ์ „์—ญ์˜ ๊ฒฉ์ž ์ •๋ณด์™€ ์ตœ๊ทผ 6๊ฐœ์›”๊ฐ„ SPEI ํ‰๊ท ๊ฐ’์„ grid_id ๊ธฐ์ค€์œผ๋กœ ๋ณ‘ํ•ฉํ•˜์—ฌ ํ†ตํ•ฉ๋œ CSV ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ณ‘ํ•ฉ ๋ฐฉ์‹์€ Left Join์— ํ•ด๋‹นํ•˜๋ฉฐ, ๊ฒฉ์ž ์ •๋ณด๋Š” ๋ชจ๋‘ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_grids_0.01deg.csv ํ•œ๋ฐ˜๋„ ๊ธฐ์ค€ ๊ฒฉ์ž ์ •๋ณด (grid_id, ์œ„ยท๊ฒฝ๋„ ๊ฒฝ๊ณ„ ํฌํ•จ)
korea_spei06_recent_avg_all.csv ๊ฐ ๊ฒฉ์ž๋ณ„ ์ตœ๊ทผ 6๊ฐœ์›” SPEI ํ‰๊ท ๊ฐ’ (grid_id, spei_recent_avg)

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ๊ธฐ์ค€ ๊ฒฉ์ž ์ •๋ณด์™€, ํ•ด๋‹น ๊ฒฉ์ž์— ๋Œ€ํ•œ ์ตœ๊ทผ 6๊ฐœ์›” SPEI ํ‰๊ท ๊ฐ’์„ ๊ฐ๊ฐ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

2. grid_id ๊ธฐ์ค€ ๋ณ‘ํ•ฉ

  • ๋‘ ํ…Œ์ด๋ธ”์„ grid_id๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ‘ํ•ฉ ๋ฐฉ์‹์€ Left Join์œผ๋กœ, ๊ธฐ์ค€ ๊ฒฉ์ž์— ํฌํ•จ๋œ ๋ชจ๋“  grid_id๋Š” ์œ ์ง€๋˜๋ฉฐ, ํ•ด๋‹นํ•˜๋Š” SPEI ๊ฐ’์ด ์žˆ์„ ๊ฒฝ์šฐ์—๋งŒ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค.
  • ๊ฒฉ์ž๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๋ฉฐ, SPEI ๊ฐ’์ด ์—†๋Š” ๊ฒฝ์šฐ๋Š” NaN์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

3. ๊ฒฐ๊ณผ ํ™•์ธ ๋ฐ ์ €์žฅ

  • ๋ณ‘ํ•ฉ์ด ์™„๋ฃŒ๋˜๋ฉด ์ƒ์œ„ 6๊ฐœ ํ–‰(head)์„ ์ถœ๋ ฅํ•˜์—ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” korea_grids_with_spei.csv ํŒŒ์ผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_grids_with_spei.csv ๊ฒฉ์ž ์ •๋ณด์— ์ตœ๊ทผ 6๊ฐœ์›” ํ‰๊ท  SPEI ๊ฐ’์ด ๋ณ‘ํ•ฉ๋œ ์ตœ์ข… ๊ฒฐ๊ณผ ํŒŒ์ผ

๐Ÿ“ ์ถœ๋ ฅ ํŒŒ์ผ ๊ตฌ์กฐ (korea_grids_with_spei.csv)

grid_id lat_min lat_max lon_min lon_max center_lat center_lon spei_recent_avg
0 ... ... ... ... โ€ฆ โ€ฆ NaN
1 ... ... ... ... โ€ฆ โ€ฆ -0.231
... ... ... ... ... โ€ฆ โ€ฆ ...

SPEI_data_3.m - SPEI ํ‰๊ท ๊ฐ’ ์ง€๋„ ์‹œ๊ฐํ™”

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” korea_grids_with_spei.csv ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ์ตœ๊ทผ 6๊ฐœ์›”๊ฐ„์˜ SPEI ํ‰๊ท ๊ฐ’์„ ํ•œ๋ฐ˜๋„ ์ง€๋„ ์œ„์— ์ƒ‰์ƒ ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐํ™”๋Š” geoscatter๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ ๊ฒฉ์ž์˜ ์ค‘์‹ฌ ์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ƒ‰์ƒ ์ ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_grids_with_spei.csv ๊ฒฉ์ž๋ณ„ ์œ„ยท๊ฒฝ๋„ ๊ฒฝ๊ณ„ ๋ฐ ์ตœ๊ทผ 6๊ฐœ์›” SPEI ํ‰๊ท ๊ฐ’ ํฌํ•จ ํŒŒ์ผ

โœ… ์‹œ๊ฐํ™” ๊ทธ๋ž˜ํ”„

image (48)

์ง€ํ˜• ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

์ง€ํ˜• ๋ถ„์„๋„ (์ง€ํ˜• ๊ฒฝ์‚ฌ๋„)ย ย ๋ฐ์ดํ„ฐ๋ฅผ ์•„๋ž˜ ํ”Œ๋žซํผ์—์„œ ์ˆ˜์ง‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋น…๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ- ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰

๐Ÿ“ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํ˜•์‹ ์ค‘ GEOTIFF Slope_All.tif๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โ†’ ์•„๋ž˜๋Š” ์ง€ํ˜• ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์‹œ๊ฐํ™”ํ•œ ์‚ฌ์ง„ image (45)

๋จผ์ € ํŒŒ์ด์ฌ์œผ๋กœ ๋Œ€์šฉ๋Ÿ‰ GeoTIFFSlope_All.tif๋ฐ์ดํ„ฐ ํŒŒ์ผ์—์„œ ํ•œ ์ค„์”ฉ ์œ„๋„/๊ฒฝ๋„ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ ์—†์ด lat_grid์™€ lon_grid๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด๋Š” ํ•œ๋ฐ˜๋„ ์˜์—ญ์˜ 33๋งŒ๊ฐœ์˜ ๋Œ€์šฉ๋Ÿ‰ ๊ฒฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๊ณผ์ •์„ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ ์œ„๋„, ๊ฒฝ๋„ ๊ฒฉ์ž ์ •๋ณด์— ๋Œ€ํ•˜์—ฌ "lat_grid.npy", "lon_grid.npy" ์ด๋ฆ„์œผ๋กœ ์ €์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค.


slope_data_2.m - Slope Extraction by Grid

๐Ÿ‘ฉ๐Ÿผ

์•ž์„œ ํŒŒ์ด์ฌ์œผ๋กœ ์ˆ˜์ง‘ํ•œ ๊ฐ ์œ„๋„, ๊ฒฝ๋„ ๊ฒฉ์ž ์ •๋ณด "lat_grid.npy", "lon_grid.npy" ํŒŒ์ผ์„ MATLAB์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด .mat ํŒŒ์ผ๋กœ ํ•ฉ์ณ ์ €์žฅํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€ slope ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ ๊ฒฉ์ž๋งˆ๋‹ค ํ‰๊ท  ๊ฒฝ์‚ฌ๋„(mean slope)๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ์ง€ํ˜• ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด์–‘ ์˜์—ญ์ด NoData๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ํŒŒ์•…ํ•ด ์œก์ง€์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฉ์ž๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์•ž์„œ ์ˆ˜์ง‘ํ–ˆ๋˜ SPEI ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ ์ž ํ•˜์˜€๊ณ  ํ•ด๋‹น ํŠน์„ฑ์€ ์ด์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • SPEI ๋ฐ์ดํ„ฐ(korea_spei06_recent_avg_all.csv)๋Š” ์œก์ง€ ๊ฒฉ์ž๋งŒ ์œ ํšจ๊ฐ’, ๋ฐ”๋‹ค๋Š” NaN
  • ๋”ฐ๋ผ์„œ slope_by_grid ๊ณ„์‚ฐ ์‹œ:
    • ํ•ด๋‹น ๊ฒฉ์ž์˜ SPEI๊ฐ€ NaN์ด๋ฉด โ†’ ๊ฒฝ์‚ฌ๋„๋„ NaN ์ฒ˜๋ฆฌ ํ›„ skip

๋”ฐ๋ผ์„œ ์ด ์ฝ”๋“œ๋Š” ํ•œ๋ฐ˜๋„ 1km ๊ฒฉ์ž ๊ธฐ๋ฐ˜์˜ ํ‰๊ท  ์ง€ํ˜• ๊ฒฝ์‚ฌ๋„(mean_slope)๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๊ฐ ๊ฒฉ์ž๋ณ„๋กœ ์ €์žฅํ•˜๋Š” MATLAB ์Šคํฌ๋ฆฝํŠธ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์œก์ง€ ๊ฒฉ์ž๋งŒ ๋Œ€์ƒ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์žฅ์‹œ๊ฐ„ ์—ฐ์‚ฐ์— ๋Œ€๋น„ํ•ด ์ฒดํฌํฌ์ธํŠธ ๊ธฐ๋Šฅ๊ณผ ์ฃผ๊ธฐ์  ์ €์žฅ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ

์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
latlon_grids.mat ์ „์ฒด ์ง€์—ญ์˜ ์œ„๋„(lat) / ๊ฒฝ๋„(lon) ๋งคํŠธ๋ฆญ์Šค
Slope_All.tif ์ „์ฒด ๊ฒฝ์‚ฌ๋„ ์ง€ํ˜• ๋ฐ์ดํ„ฐ (GeoTIFF ํ˜•์‹)
korea_grids_0.01deg.csv ํ•œ๋ฐ˜๋„ ๊ฒฉ์ž ์ •๋ณด (์œ„/๊ฒฝ๋„ ๊ฒฝ๊ณ„ ํฌํ•จ)
korea_spei06_recent_avg_all.csv SPEI ๊ธฐ๋ฐ˜ ์œก์ง€ ์—ฌ๋ถ€ ํŒ๋‹จ์šฉ ๋ฐ์ดํ„ฐ (spei_recent_avg ์‚ฌ์šฉ)

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ์œ„๋„/๊ฒฝ๋„ ๊ทธ๋ฆฌ๋“œ ๋ฐ GeoTIFF ํ˜•์‹์˜ ๊ฒฝ์‚ฌ๋„ ๋ฐ์ดํ„ฐ(Z)๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • ์ „์ฒด ๊ฒฉ์ž ์ •๋ณด์™€ ์œก์ง€ ๋งˆ์Šคํฌ๋กœ ์‚ฌ์šฉํ•  SPEI ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

2. ์œก์ง€ ๊ฒฉ์ž ํ•„ํ„ฐ๋ง

  • spei_recent_avg ๊ฐ’์ด NaN์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋ฅผ ์œก์ง€๋กœ ๊ฐ„์ฃผํ•˜์—ฌ is_land ๋ฒกํ„ฐ ์ƒ์„ฑ
  • ์ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ grid_id๋ฅผ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์œก์ง€ ๊ฒฉ์ž๋งŒ ์„ ๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

3. ์„ค์ •๊ฐ’ ์ •์˜

  • saveStep: ์ฃผ๊ธฐ์ ์œผ๋กœ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ๊ฐ„๊ฒฉ (๊ธฐ๋ณธ 5,000๊ฐœ ๋‹จ์œ„)
  • checkpoint.mat: ์ค‘๊ฐ„ ์ƒํƒœ ์ €์žฅ ํŒŒ์ผ (์ด์ „ ์ค‘๋‹จ ์ง€์ ๋ถ€ํ„ฐ ์ด์–ด์„œ ์‹คํ–‰ ๊ฐ€๋Šฅ)
  • ๊ฒฐ๊ณผ ์ €์žฅ์šฉ meanSlope ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”

4. ์ฒดํฌํฌ์ธํŠธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ (์žฌ์‹คํ–‰ ์ง€์›)

  • ์ด์ „์— ์ค‘๋‹จ๋œ ๊ณ„์‚ฐ์ด ์žˆ๋‹ค๋ฉด checkpoint.mat์—์„œ ์ƒํƒœ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์ด์–ด์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์—†์œผ๋ฉด ์ƒˆ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

5. ํ‰๊ท  ๊ฒฝ์‚ฌ๋„ ๊ณ„์‚ฐ (Main Loop)

  • ๊ฐ ์œก์ง€ ๊ฒฉ์ž์— ๋Œ€ํ•ด:
    • ๊ฒฉ์ž์˜ ์œ„/๊ฒฝ๋„ ๋ฒ”์œ„ ๋‚ด์— ํฌํ•จ๋˜๋Š” ๊ฒฝ์‚ฌ๋„ ๊ฐ’์„ ์ถ”์ถœ
    • NaN์„ ์ œ์™ธํ•œ ๊ฐ’๋“ค์˜ ํ‰๊ท ์„ meanSlope[i]์— ์ €์žฅ
  • 100๊ฐœ ๋‹จ์œ„๋กœ ์ง„ํ–‰๋ฅ ์„ ์ถœ๋ ฅํ•˜๊ณ , saveStep ๋‹จ์œ„๋กœ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ CSV ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • checkpoint.mat๋„ ํ•จ๊ป˜ ์ €์žฅํ•˜์—ฌ ์ค‘๋‹จ ์‹œ ์ด์–ด์„œ ์‹คํ–‰ ๊ฐ€๋Šฅ

6. ์ตœ์ข… ๊ฒฐ๊ณผ ์ €์žฅ ๋ฐ ๋งˆ๋ฌด๋ฆฌ

  • ์ „์ฒด ๊ฒฐ๊ณผ๋ฅผ slope_by_grid.csv๋กœ ์ €์žฅ
  • ์ค‘๊ฐ„ ์ƒํƒœ ํŒŒ์ผ checkpoint.mat๋Š” ์ตœ์ข… ์™„๋ฃŒ ํ›„ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’พ ์ถœ๋ ฅ ๊ฒฐ๊ณผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
slope_by_grid.csv ์ „์ฒด ์œก์ง€ ๊ฒฉ์ž์— ๋Œ€ํ•œ ํ‰๊ท  ๊ฒฝ์‚ฌ๋„ ๊ฒฐ๊ณผ
slope_partial_XXXX.csv ์ค‘๊ฐ„ ์ €์žฅ๋œ ๊ฒฝ์‚ฌ๋„ ๊ฒฐ๊ณผ (XXXX๋Š” index ์ˆ˜)
checkpoint.mat ๊ณ„์‚ฐ ์ค‘๋‹จ ์‹œ ์žฌ์‹คํ–‰์„ ์œ„ํ•œ ์ฒดํฌํฌ์ธํŠธ (์ตœ์ข… ์ €์žฅ ํ›„ ์‚ญ์ œ๋จ)

โœ… ์ตœ์ข… ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

grid_id lat_min lat_max lon_min lon_max mean_slope
1 33.00 33.01 126.00 126.01 4.21
... ... ... ... ... ...

slope_data_3.m - Grid-Slope Merge Script

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ํ•œ๋ฐ˜๋„ 0.01ยฐ ๊ฐ„๊ฒฉ์˜ ๊ฒฉ์ž ์ •๋ณด(korea_grids_0.01deg.csv)์— ๊ฐ ๊ฒฉ์ž์˜ ํ‰๊ท  ๊ฒฝ์‚ฌ๋„(mean_slope)๋ฅผ ๋ณ‘ํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ํŒŒ์ผ(korea_grids_with_slope.csv)๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_grids_0.01deg.csv ์ „์ฒด ๊ธฐ์ค€ ๊ฒฉ์ž ์ •๋ณด (์œ„๋„, ๊ฒฝ๋„ ๊ฒฝ๊ณ„ ํฌํ•จ)
slope_by_grid.csv ๊ฒฉ์ž๋ณ„ ํ‰๊ท  ๊ฒฝ์‚ฌ๋„ (grid_id, mean_slope)

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ๋‘ ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ๊ธฐ์ค€์ด ๋˜๋Š” ๊ฒฉ์ž ์ •๋ณด์™€, ํ•ด๋‹น ๊ฒฉ์ž์— ๋Œ€ํ•œ ํ‰๊ท  ๊ฒฝ์‚ฌ๋„ ๊ฐ’์„ ์ €์žฅํ•œ ๋‘ ๊ฐœ์˜ CSV ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

2. grid_id๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ณ‘ํ•ฉ

  • ๋‘ ํŒŒ์ผ์„ grid_id ๊ธฐ์ค€์œผ๋กœ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ๊ธฐ์ค€ ๊ฒฉ์ž ์ •๋ณด๋Š” ์œ ์ง€๋˜๋ฉฐ, ๊ฒฝ์‚ฌ๋„ ๊ฐ’์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ’์ด ๋ณ‘ํ•ฉ๋˜์–ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • ๊ฒฝ์‚ฌ๋„ ์ •๋ณด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฉ์ž์˜ ๊ฒฝ์šฐ, mean_slope ๊ฐ’์€ NaN์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

3. ๋ณ‘ํ•ฉ ๊ฒฐ๊ณผ ์ €์žฅ

  • ๋ณ‘ํ•ฉ๋œ ๊ฒฐ๊ณผ๋Š” korea_grids_with_slope.csv ํŒŒ์ผ๋กœ ์ €์žฅ๋˜๋ฉฐ, ๊ฐ ๊ฒฉ์ž์˜ ์œ„ยท๊ฒฝ๋„ ๊ฒฝ๊ณ„์™€ ํ‰๊ท  ๊ฒฝ์‚ฌ๋„ ๊ฐ’์ด ํ•จ๊ป˜ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_grids_with_slope.csv ๊ธฐ์ค€ ๊ฒฉ์ž ์ •๋ณด์— ํ‰๊ท  ๊ฒฝ์‚ฌ๋„๊ฐ€ ๋ณ‘ํ•ฉ๋œ ์ตœ์ข… ๊ฒฐ๊ณผ ํŒŒ์ผ

slope_data_4.m - ํ‰๊ท  ๊ฒฝ์‚ฌ๋„ ์‹œ๊ฐํ™” ์Šคํฌ๋ฆฝํŠธ

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” korea_grids_with_slope.csv ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋ฐ˜๋„ ์œก์ง€ ๊ฒฉ์ž๋ณ„ ํ‰๊ท  ์ง€ํ˜• ๊ฒฝ์‚ฌ๋„๋ฅผ ์ƒ‰์ƒ ๋‹จ๊ณ„๋ณ„๋กœ ์‹œ๊ฐํ™”ํ•˜๋Š” MATLAB ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.


๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_grids_with_slope.csv ๊ธฐ์ค€ ๊ฒฉ์ž ์ •๋ณด + ํ‰๊ท  ๊ฒฝ์‚ฌ๋„(mean_slope)๊ฐ€ ํฌํ•จ๋œ ๋ณ‘ํ•ฉ ํŒŒ์ผ

โœ… ์‹œ๊ฐํ™” ๊ทธ๋ž˜ํ”„

image (46)

SMAP ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

SMAP ๋ฐ์ดํ„ฐ๋Š” ์•„๋ž˜ ํ”Œ๋žซํผ์—์„œ ์ˆ˜์ง‘ํ–ˆ์Šต๋‹ˆ๋‹ค. Earthdata Login

๐Ÿ“ ํ•ด๋‹น ํ”Œ๋žซํผ์—์„œ ์ „์ฒด SMAP .h5 ํŒŒ์ผ์„ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ํ•ด๋‹น ํŒŒ์ผ์—์„œ ํ•œ๋ฐ˜๋„ ์˜์—ญ๋งŒ MATLAB์—์„œ ๋ถ€๋ถ„ ์ถ”์ถœํ•˜์˜€์Šต๋‹ˆ๋‹ค.

NASA์˜ SMAP L3 SPL3SMP ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์œก์ง€(land surface)์˜ ํ† ์–‘ ์ˆ˜๋ถ„๋งŒ ํฌํ•จํ•˜๊ณ  ํ•ด์–‘(๋ฐ”๋‹ค) ์˜์—ญ์€ NaN (๊ฒฐ์ธก๊ฐ’) ์œผ๋กœ ํ‘œ์‹œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€ํ˜• ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๊ณผ์ •์—์„œ ์ง„ํ–‰ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ spei ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ(๋ฐ์ดํ„ฐ๊ฐ€ ์œก์ง€์—์„œ๋งŒ ์ ์šฉ)์„ ํ™œ์šฉํ•ด ์œก์ง€ ๊ฒฉ์ž๋งŒ ์ˆ˜์ง‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ SMAP ๋ฐ์ดํ„ฐ ์ผ๋ถ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ‘ฉ๐Ÿผ

์›์ธ

  1. ์œ„์„ฑ ์ˆ˜์‹  ํ’ˆ์งˆ ๋ฌธ์ œ
    • ๊ฐ•์ˆ˜, ๋ˆˆ, ๊ตฌ๋ฆ„, RFI, ์ง€ํ˜• ๋“ฑ์œผ๋กœ ํ’ˆ์งˆ ์ €ํ•˜ ์‹œ NaN ๋ฐœ์ƒ
    • retrieval_qual_flag๊ฐ€ ๋‚˜์  ๊ฒฝ์šฐ NaN
    • ํ•ด์•ˆ ๊ทผ์ฒ˜ ํ”ฝ์…€๋„ ํ’ˆ์งˆ ๋ถˆ์•ˆ์ •
  2. SMAP ํ”ฝ์…€ ์ค‘์‹ฌ๊ณผ ๊ฒฉ์ž ์ค‘์‹ฌ ๊ฑฐ๋ฆฌ ๋ฌธ์ œ
    • SMAP ํ•ด์ƒ๋„๋Š” ์•ฝ 36km
    • 1km ๊ฒฉ์ž ์ค‘ ์ผ๋ถ€๋Š” ๊ฐ€๊นŒ์šด SMAP ํ”ฝ์…€์ด ์—†์–ด ๋งคํ•‘ ์‹คํŒจ

โœ… ์ตœ์ข… ์ฒ˜๋ฆฌ ๋ฐฉ์‹

  • SPEI ๊ฐ’ ๊ธฐ์ค€์œผ๋กœ ๋ฐ”๋‹ค/์œก์ง€ ๊ฒฉ์ž ๊ตฌ๋ถ„
  • ์œก์ง€ ๊ฒฉ์ž๋งŒ SMAP ์ˆ˜๋ถ„๊ฐ’ ์ˆ˜์ง‘
  • NaN์ธ ์œก์ง€ ๊ฒฉ์ž๋Š” ๋ณด๊ฐ„(interpolation) ์ ์šฉ

SMAP_data_4.m - SMAP ํ† ์–‘ ์ˆ˜๋ถ„ ๊ฒฉ์ž ๋งคํ•‘ ๋ฐ ๋ณด๊ฐ„

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” **SMAP ๋ฐ์ดํ„ฐ(HDF5 ํฌ๋งท)**๋ฅผ ํ•œ๋ฐ˜๋„ 0.01๋„ ๊ฒฉ์ž์— ๋งคํ•‘ํ•˜์—ฌ, ์œก์ง€ ๊ฒฉ์ž์— ์ˆ˜๋ถ„๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ , ๊ฒฐ์ธก๊ฐ’์— ๋Œ€ํ•ด ์ตœ๊ทผ์ ‘ ๋ณด๊ฐ„์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ์ตœ์ข… ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_grids_0.01deg.csv ์ „์ฒด ํ•œ๋ฐ˜๋„ ๊ฒฉ์ž ์ •๋ณด (grid_id, ์œ„ยท๊ฒฝ๋„ ๊ฒฝ๊ณ„ ํฌํ•จ)
korea_spei06_recent_avg_all.csv ์œก์ง€ ์—ฌ๋ถ€ ํŒ๋‹จ์„ ์œ„ํ•œ SPEI ํ‰๊ท ๊ฐ’ (NaN ์—ฌ๋ถ€๋กœ ์œก์ง€ ํŒ๋‹จ)
SMAP_L3_SM_P_20250630_R19240_001.h5 SMAP ํ† ์–‘ ์ˆ˜๋ถ„ ๋ฐ์ดํ„ฐ (.h5 ํ˜•์‹)

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ์ „์ฒด ๊ฒฉ์ž ์ •๋ณด(grid_id, lat_min, lat_max, lon_min, lon_max)์™€ ์œก์ง€ ์—ฌ๋ถ€ ํŒ๋‹จ์šฉ SPEI ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • ์œก์ง€ ๊ฒฉ์ž๋งŒ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด SPEI ๊ฐ’์ด NaN์ด ์•„๋‹Œ ๊ฒฉ์ž๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.
  • SMAP HDF5 ํŒŒ์ผ์—์„œ ์œ„๋„, ๊ฒฝ๋„, ์ˆ˜๋ถ„๊ฐ’ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

2. SMAP ํ•œ๋ฐ˜๋„ ์˜์—ญ ํ•„ํ„ฐ๋ง

  • ์œ„๋„ 3339๋„, ๊ฒฝ๋„ 124132๋„ ๋ฒ”์œ„๋กœ ํ•œ๋ฐ˜๋„ ์˜์—ญ๋งŒ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ์„ ํƒ๋œ ์˜์—ญ์˜ ์œ„ยท๊ฒฝ๋„ ๋ฐ ์ˆ˜๋ถ„๊ฐ’(soil_moisture)์„ ๋ณ„๋„๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

3. SMAP ์ˆ˜๋ถ„๊ฐ’ ๊ฒฉ์ž ๋งคํ•‘

  • ๊ฐ ์œก์ง€ ๊ฒฉ์ž ์ค‘์‹ฌ ์ขŒํ‘œ์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด SMAP ํฌ์ธํŠธ๋ฅผ ์ฐพ์•„ ์ˆ˜๋ถ„๊ฐ’์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋•Œ ์œ ํด๋ฆฌ๋“œ ๊ฑฐ๋ฆฌ ์ œ๊ณฑ์„ ๊ธฐ์ค€์œผ๋กœ ์ตœ๊ทผ์ ‘ ์ ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

4. ์ตœ๊ทผ์ ‘ ๋ณด๊ฐ„๊ธฐ ์ƒ์„ฑ

  • ์ˆ˜๋ถ„๊ฐ’์ด ์—†๋Š” ์œก์ง€ ๊ฒฉ์ž์— ๋Œ€ํ•ด์„œ๋Š” scatteredInterpolant ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ๊ทผ์ ‘ ๋ณด๊ฐ„๋ฒ•์œผ๋กœ ๋Œ€์ฒด๊ฐ’์„ ์ƒ์„ฑํ•  ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณด๊ฐ„ ๋Œ€์ƒ์€ ์œก์ง€ ๊ฒฉ์ž ์ค‘์‹ฌ ์ขŒํ‘œ ๊ธฐ์ค€์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

5. ์ „์ฒด ๊ฒฉ์ž์— ์ตœ์ข… ์ˆ˜๋ถ„๊ฐ’ ์ƒ์„ฑ

  • ์ „์ฒด ๊ฒฉ์ž(์œก์ง€ + ๋ฐ”๋‹ค)์— ๋Œ€ํ•ด:
    • ์œก์ง€์ธ ๊ฒฝ์šฐ: ์ˆ˜๋ถ„๊ฐ’์ด ์žˆ์œผ๋ฉด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ, ์—†์œผ๋ฉด ๋ณด๊ฐ„๊ฐ’ ์‚ฌ์šฉ
    • ๋ฐ”๋‹ค์ธ ๊ฒฝ์šฐ: NaN ์œ ์ง€

6. ๊ฒฐ๊ณผ ์ €์žฅ

  • ์ตœ์ข… ์ˆ˜๋ถ„๊ฐ’(smap_20250630_filled)์„ grids ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ํ•œ ๋’ค, smap_20250630_all_grids_with_interpolated_land.csv๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
smap_20250630_all_grids_with_interpolated_land.csv ์ „์ฒด ๊ฒฉ์ž์— ๋Œ€ํ•ด ๋ณด๊ฐ„ ํฌํ•จ ์ตœ์ข… SMAP ์ˆ˜๋ถ„๊ฐ’ ์ถ”๊ฐ€๋œ ๊ฒฐ๊ณผ ํŒŒ์ผ (smap_20250630_filled)

SMAP_data_5.m - SMAP ํ† ์–‘ ์ˆ˜๋ถ„ ์‹œ๊ฐํ™”

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” smap_20250630_all_grids_with_interpolated_land.csv ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ, ์œก์ง€ ๊ฒฉ์ž์˜ ์ˆ˜๋ถ„๊ฐ’์„ ํ•œ๋ฐ˜๋„ ์ง€๋„ ์œ„์— ์ƒ‰์ƒ ์  ํ˜•ํƒœ๋กœ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๊ฐ„ ํฌํ•จ ์ˆ˜๋ถ„๊ฐ’(smap_20250630_filled)์„ ๋ฐ”ํƒ•์œผ๋กœ, ์ง€๋ฆฌ์  ๊ณต๊ฐ„ ํ•ด์„์„ ์œ„ํ•œ ์‹œ๊ฐ์  ์ž๋ฃŒ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
smap_20250630_all_grids_with_interpolated_land.csv ์ „์ฒด ๊ฒฉ์ž์— ๋Œ€ํ•ด ๋ณด๊ฐ„ ํฌํ•จ SMAP ์ˆ˜๋ถ„๊ฐ’์ด ํฌํ•จ๋œ ๊ฒฐ๊ณผ ํŒŒ์ผ (center_lat, center_lon, smap_20250630_filled)

โœ… ์‹œ๊ฐํ™” ๊ทธ๋ž˜ํ”„

image (49)

๊ธฐ์ƒ ๋ฐ์ดํ„ฐ

๊ธฐ์ƒ ๋ฐ์ดํ„ฐ๋Š” ์•„๋ž˜ ํ”Œ๋žซํผ์—์„œ ์ˆ˜์ง‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ERA5 hourly data on single levels from 1940 to present

๐Ÿ“ ์œ„์˜ ๋งํฌ์—์„œ2025๋…„ 6์›” 26์ผ ํ•˜๋ฃจ์น˜์˜ ์‹œ๊ฐ„๋Œ€๋ณ„(0:00 ~ 24:00) ๊ธฐ์ƒ ์ง€ํ‘œ 5๊ฐœ๋ฅผ NetCDF ๋ฐ์ดํ„ฐ ํŒŒ์ผ๋กœ ์ˆ˜๋™ ๋‹ค์šด๋กœ๋“œํ•˜์˜€์Šต๋‹ˆ๋‹ค.


weather_data_3.py - ERA5 ๊ธฐ๋ฐ˜ ๊ธฐ์ƒ ๋ณ€์ˆ˜ ๊ฒฉ์ž ์ถ”์ถœ

(2025๋…„ 6์›” 30์ผ ๊ธฐ์ค€)

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ECMWF ERA5 ์žฌ๋ถ„์„ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ, **ํ•œ๋ฐ˜๋„ 0.01๋„ ๊ฒฉ์ž ์ค‘์‹ฌ ์ขŒํ‘œ ๊ธฐ์ค€์œผ๋กœ ์ฃผ์š” ๊ธฐ์ƒ ์š”์†Œ(๊ธฐ์˜จ, ์Šต๋„, ๋ฐ”๋žŒ, ๊ฐ•์ˆ˜๋Ÿ‰)**๋ฅผ ์ถ”์ถœํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ฒฉ์ž๋งˆ๋‹ค ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ERA5 ์ง€์ ์˜ ๊ฐ’์„ ์„ ํƒํ•˜๋ฉฐ, ํ•˜๋ฃจ์น˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ‰๊ท  ๋˜๋Š” ๋ˆ„์  ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_grids_0.01deg.csv ๊ฒฉ์ž ์ค‘์‹ฌ ์ขŒํ‘œ ๋ฐ grid_id ํฌํ•จํ•œ ๊ธฐ์ค€ ๊ฒฉ์ž ์ •๋ณด
data_stream-oper_stepType-instant.nc ERA5 ์ˆœ๊ฐ„๊ฐ’ ๋ฐ์ดํ„ฐ (๊ธฐ์˜จ, ์ด์Šฌ์ , ๋ฐ”๋žŒ ๋“ฑ)
data_stream-oper_stepType-accum.nc ERA5 ๋ˆ„์ ๊ฐ’ ๋ฐ์ดํ„ฐ (๊ฐ•์ˆ˜๋Ÿ‰)

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ๊ฒฉ์ž ์ •๋ณด ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ๊ธฐ์ค€ ๊ฒฉ์ž CSV์—์„œ ๊ฐ ์…€์˜ ์ค‘์‹ฌ ์œ„๋„(center_lat) ๋ฐ ๊ฒฝ๋„(center_lon)์™€ grid_id๋ฅผ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค.

2. ERA5 NetCDF ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • instant.nc ํŒŒ์ผ์—์„œ ๊ธฐ์˜จ(t2m), ์ด์Šฌ์ (d2m), 10m ๋ฐ”๋žŒ(u10, v10)์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • accum.nc ํŒŒ์ผ์—์„œ ๋ˆ„์  ๊ฐ•์ˆ˜๋Ÿ‰(tp)์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • ๋‹จ์œ„ ๋ณ€ํ™˜:
    • ๊ธฐ์˜จ: K โ†’ ยฐC
    • ๊ฐ•์ˆ˜๋Ÿ‰: m โ†’ mm

3. ํŒŒ์ƒ ๋ณ€์ˆ˜ ๊ณ„์‚ฐ

  • ํ’์†(wind_speed)๊ณผ ํ’ํ–ฅ(wind_deg)์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ์˜จ๊ณผ ์ด์Šฌ์  ์˜จ๋„๋ฅผ ํ™œ์šฉํ•ด ์ƒ๋Œ€์Šต๋„(rh)๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค (Tetens ๊ณต์‹ ๊ธฐ๋ฐ˜).

4. ์‹œ๊ฐ„ ํ‰๊ท  ๋ฐ ๋ˆ„์ 

  • ํ•˜๋ฃจ์น˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ„ ์ถ•(valid_time) ๊ธฐ์ค€์œผ๋กœ ํ‰๊ท (mean) ๋˜๋Š” ํ•ฉ๊ณ„(sum)๋กœ ์ง‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ: ๊ธฐ์˜จ, ํ’์†, ์Šต๋„ โ†’ ํ‰๊ท ๊ฐ’
    • ๊ฐ•์ˆ˜๋Ÿ‰ โ†’ ๋ˆ„์ ๊ฐ’

5. ์ตœ๊ทผ์ ‘ ์ขŒํ‘œ ์ถ”์ถœ

  • ๊ฐ ๊ฒฉ์ž ์ค‘์‹ฌ ์ขŒํ‘œ์— ๋Œ€ํ•ด ERA5 ๋ฐ์ดํ„ฐ์˜ ์ตœ๊ทผ์ ‘ ๊ฒฉ์ž๊ฐ’์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ€์ˆ˜๋ณ„๋กœ extract_nearest() ํ•จ์ˆ˜๋กœ ์ตœ๊ทผ์ ‘ latitude, longitude์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

6. ๊ฒฐ๊ณผ ์ €์žฅ

  • ๊ฐ ๊ฒฉ์ž์— ๋Œ€ํ•ด ์ถ”์ถœ๋œ ๊ธฐ์ƒ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • weather_by_grid_20250630.csv ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
weather_by_grid_20250630.csv ๊ฐ grid_id์— ๋Œ€ํ•ด ์ถ”์ถœ๋œ 5๊ฐœ ๊ธฐ์ƒ ๋ณ€์ˆ˜ ํฌํ•จ (temp_C, humidity, wind_speed, wind_deg, precip_mm)

weather_data_3.m - ERA5 ๊ธฐ์ƒ ๋ณ€์ˆ˜ ์‹œ๊ฐํ™”

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” weather_by_grid_20250624.csv์˜ ERA5 ๊ธฐ๋ฐ˜ ๊ธฐ์ƒ ์š”์†Œ๋ฅผ ํ•œ๋ฐ˜๋„ ์œก์ง€ ๊ฒฉ์ž ์ค‘์‹ฌ ์ขŒํ‘œ์— ๋งคํ•‘ํ•˜์—ฌ ์ง€๋„ ์œ„์— ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค. 5๊ฐ€์ง€ ๋ณ€์ˆ˜(๊ธฐ์˜จ, ์ƒ๋Œ€์Šต๋„, ํ’์†, ํ’ํ–ฅ, ๊ฐ•์ˆ˜๋Ÿ‰)์— ๋Œ€ํ•ด **์ƒ‰์ƒ ์  ์‹œ๊ฐํ™”(scatter map)**๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
korea_grids_0.01deg.csv ๊ฒฉ์ž ์ค‘์‹ฌ ์ขŒํ‘œ ๋ฐ grid_id ํฌํ•จ ๊ธฐ์ค€ ๊ฒฉ์ž ์ •๋ณด
weather_by_grid_20250624.csv ๊ฐ ๊ฒฉ์ž์˜ ERA5 ๊ธฐ๋ฐ˜ ๊ธฐ์ƒ ๋ณ€์ˆ˜ (๊ธฐ์˜จ, ์Šต๋„, ๋ฐ”๋žŒ, ๊ฐ•์ˆ˜๋Ÿ‰ ๋“ฑ)

โœ… ์‹œ๊ฐํ™” ๊ทธ๋ž˜ํ”„

1๏ธโƒฃ ๊ธฐ์˜จ image (50) 2๏ธโƒฃ ์Šต๋„ image (51) 3๏ธโƒฃ ํ’์† image (52) 4๏ธโƒฃ ํ’ํ–ฅ image (53) 5๏ธโƒฃ ๊ฐ•์ˆ˜๋Ÿ‰ image (54)


NDVI ๋ฐ์ดํ„ฐ

๋ณธ ์Šคํฌ๋ฆฝํŠธ๋Š” 250m ํ•ด์ƒ๋„์˜ NDVI GeoTIFF ์ด๋ฏธ์ง€(NDVI_LATEST_250m_fixed.tif)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, korea_grids_0.01deg.csv ํŒŒ์ผ์— ์ •์˜๋œ ๊ฐ ๊ฒฉ์ž ์˜์—ญ ๋‚ด์˜ ์œ ํšจ NDVI ํ”ฝ์…€๊ฐ’ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.


๐Ÿงพ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ

1. ๊ฒฉ์ž ์ •์˜ ํŒŒ์ผ (korea_grids_0.01deg.csv)

  • ๊ฐ ํ–‰์€ ํ•˜๋‚˜์˜ ๊ฒฉ์ž ์ •๋ณด๋ฅผ ํฌํ•จ
  • ํ•„์ˆ˜ ์—ด:
    • grid_id, lat_min, lat_max, lon_min, lon_max

2. NDVI GeoTIFF ์ด๋ฏธ์ง€ (NDVI_LATEST_250m_fixed.tif)

  • 250m ํ•ด์ƒ๋„์˜ NDVI ์ด๋ฏธ์ง€
  • NDVI ๊ฐ’์€ ์ผ๋ฐ˜์ ์œผ๋กœ -1.0 ~ 1.0 ๋ฒ”์œ„์ด๋‚˜, ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” 0๋ณด๋‹ค ํฐ ๊ฐ’๋งŒ ์œ ํšจ๋กœ ๊ฐ„์ฃผ

โš™ ์‹คํ–‰ ๋ฐฉ์‹

python ndvi_grid_avg.py

(์œ„ ์ฝ”๋“œ๋ฅผ .py ํŒŒ์ผ๋กœ ์ €์žฅํ•œ ๊ฒฝ์šฐ)


๐Ÿ” ์ฃผ์š” ์ฒ˜๋ฆฌ ๊ณผ์ •

  1. pandas๋ฅผ ์ด์šฉํ•ด ๊ฒฉ์ž ์ •๋ณด CSV๋ฅผ ์ฝ์–ด์˜ด
  2. rasterio๋ฅผ ํ†ตํ•ด NDVI GeoTIFF ์ด๋ฏธ์ง€ ์—ด๊ธฐ
  3. ๊ฐ ๊ฒฉ์ž ์…€์— ๋Œ€ํ•ด:
    • ๊ฒฉ์ž ์˜์—ญ์˜ ์œ„๋„/๊ฒฝ๋„ ์ขŒํ‘œ๋ฅผ ํ”ฝ์…€ ์ธ๋ฑ์Šค๋กœ ๋ณ€ํ™˜
    • ํ•ด๋‹น ์˜์—ญ์—์„œ NDVI ๊ฐ’์„ ์ถ”์ถœ
    • NDVI ๊ฐ’ ์ค‘ 0๋ณด๋‹ค ํฐ ๊ฐ’๋งŒ ์œ ํšจ๊ฐ’์œผ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ ํ‰๊ท  ๊ณ„์‚ฐ
  4. ๊ฒฐ๊ณผ๋ฅผ NDVI_processed_average.csv ํŒŒ์ผ๋กœ ์ €์žฅ

๐Ÿ’พ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ

NDVI_processed_average.csv

  • ๊ธฐ์กด ๊ฒฉ์ž ์ •์˜ ์ •๋ณด์— NDVI ํ‰๊ท  ์—ด์ด ์ถ”๊ฐ€๋จ

  • ์˜ˆ์‹œ:

    grid_id,lat_min,lat_max,lon_min,lon_max,NDVI
    10001,36.94,36.95,128.44,128.45,0.4821
    10002,36.95,36.96,128.44,128.45,0.3712
    ...
    

๐Ÿ›  ํ•„์š” ํŒจํ‚ค์ง€

  • pandas
  • numpy
  • rasterio

์„ค์น˜ ๋ฐฉ๋ฒ•:

pip install pandas numpy rasterio

โœ… ์‹œ๊ฐํ™” ๊ทธ๋ž˜ํ”„

image

์—ฐ๋ฃŒ ์ˆ˜๋ถ„ ์ง€์ˆ˜ ๋ฐ์ดํ„ฐ

๋ณธ ์Šคํฌ๋ฆฝํŠธ๋Š” GEOS-5 ๊ธฐ๋ฐ˜ NetCDF ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ **์—ฐ๋ฃŒ ์ˆ˜๋ถ„ ์ง€์ˆ˜(FFMC, DMC, DC)**๋ฅผ ์ถ”์ถœํ•˜์—ฌ, korea_grids_0.01deg.csv ๋‚ด์˜ ๊ฐ ๊ฒฉ์ž ์ค‘์‹ฌ ์ขŒํ‘œ์— ๋Œ€ํ•ด ์ตœ๊ทผ์ ‘ ์œ„๊ฒฝ๋„ ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€ํ‘œ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ CSV ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐ ๋ชฉ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿงพ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ

  1. ๊ฒฉ์ž ์ •์˜ CSV ํŒŒ์ผ (korea_grids_0.01deg.csv)
    • ๊ฐ ํ–‰์€ ํ•˜๋‚˜์˜ ๊ฒฉ์ž ์…€์„ ์˜๋ฏธ
    • ํ•„์ˆ˜ ์—ด: grid_id, center_lat, center_lon, lat_min, lat_max, lon_min, lon_max
  2. ์—ฐ๋ฃŒ ์ˆ˜๋ถ„ NetCDF ํŒŒ์ผ (FWI.GEOS-5.Daily.Default.YYYYMMDD00.YYYYMMDD.nc)
    • ๊ธฐ์ƒ์ฒญ ์ œ๊ณต GEOS-5 ๊ธฐ๋ฐ˜ FWI ์ œํ’ˆ
    • ๋ณ€์ˆ˜:
      • GEOS-5_FFMC: Fine Fuel Moisture Code
      • GEOS-5_DMC: Duff Moisture Code
      • GEOS-5_DC: Drought Code
    • ์ขŒํ‘œ ๋ณ€์ˆ˜:
      • lat: ์œ„๋„ ๋ฐฐ์—ด
      • lon: ๊ฒฝ๋„ ๋ฐฐ์—ด

โš™ ์‹คํ–‰ ๋ฐฉ์‹

python fuel_moisture_extraction.py

๐Ÿ” ์ฃผ์š” ์ฒ˜๋ฆฌ ๊ณผ์ •

  1. CSV ๋ฐ NetCDF ํŒŒ์ผ ๋กœ๋“œ
    • pandas์™€ xarray๋ฅผ ์‚ฌ์šฉํ•ด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  2. ๊ฐ ๊ฒฉ์ž์˜ ์ค‘์‹ฌ ์œ„๊ฒฝ๋„์— ๋Œ€ํ•ด ์ตœ๊ทผ์ ‘ GEOS-5 ๊ฒฉ์ž ์ธ๋ฑ์Šค ์ฐพ๊ธฐ
    • np.argmin(np.abs(...)) ๋ฐฉ์‹์œผ๋กœ ๊ฒฉ์ž ์ขŒํ‘œ์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด NetCDF ํฌ์ธํŠธ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  3. ํ•ด๋‹น ์ง€์ ์˜ FFMC, DMC, DC ๊ฐ’์„ ์ถ”์ถœ
    • NaN ์—ฌ๋ถ€ ํ™•์ธ ํ›„ ๋ฐ˜์˜ฌ๋ฆผ
  4. ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ fuel_moisture_nearest.csv๋กœ ์ €์žฅ
    • ๊ฐ ํ–‰์€ ๊ฒฉ์ž๋ณ„ ๊ฒฐ๊ณผ (FFMC, DMC, DC)

๐Ÿ’พ ์ถœ๋ ฅ ๊ฒฐ๊ณผ

fuel_moisture_nearest.csv

  • ์—ด ๊ตฌ์„ฑ:

    • grid_id, min_lat, max_lat, min_lon, max_lon, FFMC, DMC, DC
  • ๊ฐ’ ์˜ˆ์‹œ:

    grid_id,min_lat,max_lat,min_lon,max_lon,FFMC,DMC,DC
    10001,36.94,36.95,128.44,128.45,89.21,52.76,342.10
    

๐Ÿ›  ํ•„์š” ํŒจํ‚ค์ง€

  • pandas
  • numpy
  • xarray
  • netCDF4 (๊ฐ„์ ‘์ ์œผ๋กœ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ)

์„ค์น˜:

pip install pandas numpy xarray netCDF4

โœ… ์‹œ๊ฐํ™” ๊ทธ๋ž˜ํ”„

image

๊ฒฉ์ž ๊ธฐ๋ฐ˜ FARSITE ์ „์ด ํ™•๋ฅ  ๊ณ„์‚ฐ ์Šคํฌ๋ฆฝํŠธ (Farsite_cal.m)

๋ณธ ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ ๊ฒฉ์ž ์…€์„ ์ค‘์‹ฌ์œผ๋กœ 8๋ฐฉํ–ฅ(NW, N, NE, W, E, SW, S, SE)์— ๋Œ€ํ•ด ํ’ํ–ฅ๊ณผ ๊ฒฝ์‚ฌ ๋ฐฉํ–ฅ์„ ๊ณ ๋ คํ•œ ์ „์ด ํ™•๋ฅ ์„ ๊ณ„์‚ฐํ•˜์—ฌ .csv ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” FARSITE ํ™•์‚ฐ ๋ชจ๋ธ์„ ๊ฐ„์†Œํ™”ํ•œ ํ™•๋ฅ  ๊ธฐ๋ฐ˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ž…๋ ฅ๊ฐ’ ์ƒ์„ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


๐Ÿงพ ์ž…๋ ฅ ํŒŒ์ผ

๐Ÿ“ input_data_land_only.csv

๊ฒฉ์ž ์ค‘์‹ฌ์ ๊ณผ ์—ฐ๋ฃŒ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•œ ์ž…๋ ฅ ํ…Œ์ด๋ธ”

์ปฌ๋Ÿผ๋ช… ์„ค๋ช…
grid_id ๊ฒฉ์ž ID
center_lat, center_lon ๊ฒฉ์ž ์ค‘์‹ฌ ์œ„/๊ฒฝ๋„
avg_fuelload_pertree_kg ํ‰๊ท  ๋‚˜๋ฌด๋‹น ์—ฐ๋ฃŒ๋Ÿ‰ (ROS ๊ณ„์‚ฐ์šฉ)
wind_deg ํ’ํ–ฅ (๋„, 0~360ยฐ)

โ€ป slope_dir์€ ์ฝ”๋“œ ๋‚ด์—์„œ ์ „์—ญ ์„ค์ •๋จ (135๋„๋กœ ๊ณ ์ •)


โš™ ์‹คํ–‰ ํ๋ฆ„

1๏ธโƒฃ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • readtable๋กœ ์œก์ง€ ๊ฒฉ์ž ๋ฐ์ดํ„ฐ(input_data_land_only.csv) ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

2๏ธโƒฃ ๊ฒฉ์ž ์ „์ด ๋ฐฉํ–ฅ ์„ค์ •

  • ์ด 8๊ฐœ ๋ฐฉํ–ฅ: NW, N, NE, W, E, SW, S, SE
  • ๊ฐ ๋ฐฉํ–ฅ์˜ ๋ฒกํ„ฐ(dx, dy) ๋ฐ ๋ฐฉ์œ„๊ฐ(theta_ij) ๊ณ„์‚ฐ

3๏ธโƒฃ ์ „์ด ํ™•๋ฅ  ๊ณ„์‚ฐ

๊ฐ ๋ฐฉํ–ฅ์— ๋Œ€ํ•ด ๋‹ค์Œ์„ ๊ณ„์‚ฐ:

P(d) = exp(-d_ij^2 / sigma^2) * (1 + G) * ros;
G = ฮฑ * cos(ฮธ_ij - wind_dir) + ฮฒ * cos(ฮธ_ij - slope_dir)

  • d_ij: ๊ฑฐ๋ฆฌ (์œ ํด๋ฆฌ๋“œ ๊ฑฐ๋ฆฌ, 1 ๋˜๋Š” โˆš2)
  • ros: Rate of Spread (์—ฐ๋ฃŒ๋Ÿ‰ ๊ธฐ๋ฐ˜, ์˜ˆ์‹œ ๊ณ„์‚ฐ์‹ ์‚ฌ์šฉ)
  • G: ๋ฐ”๋žŒ ๋ฐ ๊ฒฝ์‚ฌ ๋ฐฉํ–ฅ์˜ ์˜ํ–ฅ
  • alpha, beta: ์˜ํ–ฅ ๊ฐ€์ค‘์น˜ (๊ธฐ๋ณธ 0.5)
  • ์ตœ์ข… P๋Š” ์ •๊ทœํ™”ํ•˜์—ฌ 8๋ฐฉํ–ฅ ํ™•๋ฅ  ํ•ฉ์ด 1์ด ๋˜๋„๋ก ํ•จ

4๏ธโƒฃ ๊ฒฐ๊ณผ ์ €์žฅ

  • ์ถœ๋ ฅ ํŒŒ์ผ: farsite_transfer_probs.csv
  • ์—ด ๊ตฌ์„ฑ: grid_id, center_lat, center_lon, P_NW, ..., P_SE

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

farsite_transfer_probs.csv

์ปฌ๋Ÿผ๋ช… ์„ค๋ช…
grid_id ๊ฒฉ์ž ID
center_lat ์ค‘์‹ฌ ์œ„๋„
center_lon ์ค‘์‹ฌ ๊ฒฝ๋„
P_NW ~ P_SE 8๋ฐฉํ–ฅ ์ „์ด ํ™•๋ฅ  (ํ•ฉ๊ณ„: 1.0)

๐Ÿ›  ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •

๋ณ€์ˆ˜ ์„ค๋ช… ๊ธฐ๋ณธ๊ฐ’
sigma ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜ ํ™•์‚ฐ ๊ฐ์†Œ ์ธ์ž 1.0
alpha ํ’ํ–ฅ ์˜ํ–ฅ ๊ฐ€์ค‘์น˜ 0.5
beta ๊ฒฝ์‚ฌ ๋ฐฉํ–ฅ ์˜ํ–ฅ ๊ฐ€์ค‘์น˜ 0.5
slope_dir ๊ณ ์ • ๊ฒฝ์‚ฌ ๋ฐฉํ–ฅ (๋„ ๋‹จ์œ„) 135

FARSITE ์ „์ด ํ™•๋ฅ  ๋ณด์ • ๋ฐ ์ •๊ทœํ™”

๋ณธ ์Šคํฌ๋ฆฝํŠธ๋Š” FARSITE ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐ๋œ 8๋ฐฉํ–ฅ ํ™•์‚ฐ ํ™•๋ฅ (P_NW ~ P_SE)์„ ๋Œ€์ƒ์œผ๋กœ, ๋ฐฉํ–ฅ๋ณ„ ํ‰๊ท ๊ฐ’์— ๊ธฐ๋ฐ˜ํ•œ ์ž๋™ ๊ฐ€์ค‘์น˜ ๋ณด์ •์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ •๊ทœํ™”๋œ ํ™•์‚ฐ ํ™•๋ฅ ์„ ์žฌ๊ณ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ํŠน์ • ๋ฐฉํ–ฅ์œผ๋กœ์˜ ์ „์ด ํ™•๋ฅ ์ด ๊ณผ๋„ํ•˜๊ฑฐ๋‚˜ ๋ถˆ๊ท ํ˜•ํ•  ๊ฒฝ์šฐ, ์ „์ฒด ๋ถ„ํฌ๋ฅผ ํ†ต๊ณ„์ ์œผ๋กœ ์žฌ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์กฐ์  ํ›„์ฒ˜๋ฆฌ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.


๐Ÿงพ ์ž…๋ ฅ ํŒŒ์ผ

๐Ÿ“ input_data_farsite_Nan.csv

  • ๊ฒฉ์ž๋ณ„ ์›์‹œ FARSITE ํ™•์‚ฐ ํ™•๋ฅ ์„ ํฌํ•จํ•˜๋Š” CSV
  • ํ•„์ˆ˜ ์—ด:
    • grid_id, center_lat, center_lon
    • P_NW, P_N, P_NE, P_W, P_E, P_SW, P_S, P_SE

โš™ ์ฒ˜๋ฆฌ ํ๋ฆ„

1. ๋ฐฉํ–ฅ๋ณ„ ํ‰๊ท  ํ™•์‚ฐ ํ™•๋ฅ  ๊ณ„์‚ฐ

mean_probs(d) = mean(P_d, 'omitnan');

  • NaN ๊ฐ’์„ ์ œ์™ธํ•˜๊ณ  ์ „์ฒด ๋ฐฉํ–ฅ ํ‰๊ท ์„ ๊ณ„์‚ฐ

2. ์—ญ๋น„์œจ ๊ธฐ๋ฐ˜ ๊ฐ€์ค‘์น˜ ๊ณ„์‚ฐ

inv_weights = 1 ./ mean_probs;

  • ํ‰๊ท  ํ™•๋ฅ ์ด ์ž‘์„์ˆ˜๋ก ๊ฐ€์ค‘์น˜๋ฅผ ๋” ํฌ๊ฒŒ ๋ถ€์—ฌ (๋œ ํ™•์‚ฐ๋˜๋Š” ๋ฐฉํ–ฅ ๋ณด์ • ๋ชฉ์ )

3. ์ •๊ทœํ™”

inv_weights = inv_weights / max(inv_weights);

  • ๊ฐ€์žฅ ํฐ ๊ฐ€์ค‘์น˜๋ฅผ 1๋กœ ๋งž์ถค (์ƒ๋Œ€์  ์Šค์ผ€์ผ ์œ ์ง€)

4. ํ™•์‚ฐ ํ™•๋ฅ  ๋ณด์ • ๋ฐ ์ •๊ทœํ™”

  • ๊ฐ ์…€์— ๋Œ€ํ•ด 8๋ฐฉํ–ฅ ํ™•์‚ฐ ํ™•๋ฅ ์— inv_weights๋ฅผ ๊ณฑํ•˜๊ณ  NaN ์ œ์™ธ ํ›„ ์ •๊ทœํ™”

5. ๊ฒฐ๊ณผ ์ €์žฅ

writetable(corrected, 'corrected_farsite_probs.csv');

  • ์ •๊ทœํ™”๋œ ํ™•๋ฅ  ํ…Œ์ด๋ธ”์„ ์ €์žฅ

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
corrected_farsite_probs.csv ๋ณด์ •๋œ 8๋ฐฉํ–ฅ ํ™•์‚ฐ ํ™•๋ฅ  ํ…Œ์ด๋ธ” (ํ•ฉ๊ณ„ = 1)

์ถœ๋ ฅ ์—ด:

  • grid_id, center_lat, center_lon, P_NW, ..., P_SE

๐Ÿ“ข ์ž๋™ ๊ณ„์‚ฐ๋œ ๊ฐ€์ค‘์น˜ ์ถœ๋ ฅ ์˜ˆ์‹œ

๐Ÿ“Œ ์ž๋™ ๊ณ„์‚ฐ๋œ ๋ฐฉํ–ฅ๋ณ„ ๊ฐ€์ค‘์น˜:
  P_NW: 1.000
  P_N : 0.912
  P_NE: 0.865
  ...

  • ์ด ๊ฐ’์€ ์ดํ›„ ํ™•์‚ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์—์„œ ๋ฐฉํ–ฅ ํŽธํ–ฅ ์กฐ์ • ๊ทผ๊ฑฐ๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅ

๐Ÿ›  ํ•„์š” ํ™˜๊ฒฝ

  • MATLAB (R2019b ์ด์ƒ ๊ถŒ์žฅ)
  • input_data_farsite_Nan.csv๊ฐ€ ์‚ฌ์ „์— ๊ณ„์‚ฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ

๋ฐ์ดํ„ฐ ๋ถ„ํ•  test/ train

๋ณธ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ „์ฒด ๊ฒฉ์ž ์ž…๋ ฅ ๋ฐ์ดํ„ฐ(Mapped_Land_Grid_Data.csv)์—์„œ, grid_id ๊ธฐ์ค€์œผ๋กœ ํ•™์Šต/ํ…Œ์ŠคํŠธ ์„ธํŠธ๋ฅผ ๋‚˜๋ˆ„์–ด FARSITE ๊ธฐ๋ฐ˜ ๋ชจ๋ธ ํ•™์Šต์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


๐Ÿงพ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
Mapped_Land_Grid_Data.csv ์ „์ฒด ์ž…๋ ฅ ํ”ผ์ฒ˜ ๋ฐ์ดํ„ฐ์…‹ (์ง€ํ˜•, ๊ธฐ์ƒ, NDVI ๋“ฑ ํฌํ•จ)
cfis_train_label.csv ํ•™์Šต์— ์‚ฌ์šฉ๋  ๊ฒฉ์ž์˜ grid_id ๋ชฉ๋ก
cfis_test_label.csv ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉ๋  ๊ฒฉ์ž์˜ grid_id ๋ชฉ๋ก

โš™ ์‹คํ–‰ ํ๋ฆ„

๐Ÿ”น 1. ์ „์ฒด ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ์ž…๋ ฅ ํ”ผ์ฒ˜ ๋ฐ์ดํ„ฐ ์ „์ฒด (Mapped_Land_Grid_Data.csv) ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

๐Ÿ”น 2. ํ•™์Šต/ํ…Œ์ŠคํŠธ grid_id ๋ชฉ๋ก ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • CFIS ๋ผ๋ฒจ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ํ•™์Šต/ํ…Œ์ŠคํŠธ์šฉ grid_id ์ถ”์ถœ

๐Ÿ”น 3. ์ˆœ์„œ ์œ ์ง€ํ•˜๋ฉฐ ์ธ๋ฑ์‹ฑ

  • ismember๋ฅผ ์ด์šฉํ•ด grid_id ๊ธฐ์ค€์œผ๋กœ ํ–‰ ๋ฒˆํ˜ธ(index)๋ฅผ ์ถ”์ถœ
  • cfis_*_label.csv์— ์žˆ๋Š” ์ˆœ์„œ ๊ทธ๋Œ€๋กœ ์ •๋ ฌ๋จ

๐Ÿ”น 4. ์œ ํšจํ•˜์ง€ ์•Š์€ ID ์ œ๊ฑฐ

  • ํ•ด๋‹น grid_id๊ฐ€ input_data์— ์—†์„ ๊ฒฝ์šฐ ์ œ์™ธ

๐Ÿ”น 5. ์ถ”์ถœ ํ›„ ์ €์žฅ

  • farsite_train_label.csv ๋ฐ farsite_test_label.csv๋กœ ๊ฐ๊ฐ ์ €์žฅ

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
farsite_train_label.csv ํ•™์Šต์— ์‚ฌ์šฉํ•  ์ž…๋ ฅ ํ”ผ์ฒ˜ ๋ฐ์ดํ„ฐ
farsite_test_label.csv ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉํ•  ์ž…๋ ฅ ํ”ผ์ฒ˜ ๋ฐ์ดํ„ฐ

๊ฐ ํŒŒ์ผ์€ Mapped_Land_Grid_Data.csv์™€ ๋™์ผํ•œ ์—ด ๊ตฌ์กฐ๋ฅผ ๊ฐ–๊ณ , ํ•„ํ„ฐ๋ง๋œ ๊ฒฉ์ž ์ •๋ณด๋งŒ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

CFIS ๊ธฐ๋ฐ˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ •๋‹ต ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘

MATLAB์—์„œ ์ด 33๋งŒ ๊ฐœ ๊ฒฉ์ž์— ๋Œ€ํ•ด CFIS ๊ธฐ๋ฐ˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ 100ํšŒ ์ˆ˜ํ–‰ํ•ด ๊ฐ ์…€์˜ ๋ฐœํ™”ํ™•๋ฅ  Pignite ๋ฐ ํ™•์‚ฐํ™•๋ฅ  Pspread๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ค‘๊ฐ„ ์ž๋™ ์ €์žฅ๊ณผ ์ฒดํฌํฌ์ธํŠธ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โœ… ์ „์ฒด ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฐœ์š” ๊ตฌ์กฐ

๋‹จ๊ณ„ ์„ค๋ช…
โ‘  ์ž…๋ ฅ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๊ฒฉ์ž๋ณ„ ๊ธฐ์ƒยท์ง€ํ˜•ยท์‹์ƒ ๋“ฑ ์ง€ํ‘œ (input_data_set.csv)
โ‘ก ๋ฐœํ™”ํ™•๋ฅ  ๊ณ„์‚ฐ ๊ฐ ์…€์˜ Pignite ๊ณ„์‚ฐ
โ‘ข ์‹œ๋ฎฌ๋ ˆ์ด์…˜ NํšŒ ๋ฐ˜๋ณต ๊ฐ ๊ฒฉ์ž๋งˆ๋‹ค CFIS ๋ชจ๋ธ ๊ธฐ๋ฐ˜ ํ™•์‚ฐ ์ง„ํ–‰
โ‘ฃ ๊ฒฐ๊ณผ ๋ˆ„์  ์…€๋ณ„ ๋ฒˆ์ง ํšŸ์ˆ˜ ๋ˆ„์  (spread_count)
โ‘ค ํ™•์‚ฐํ™•๋ฅ  ๊ณ„์‚ฐ Pspread=๋ฒˆ์ง„ํšŸ์ˆ˜/ N
โ‘ฅ ์ž๋™ ์ €์žฅ 1๋งŒ ๊ฐœ ๋‹จ์œ„ ์ €์žฅ, checkpoint ๊ธฐ๋Šฅ ํฌํ•จ

โœ… ๋ฐœํ™”ํ™•๋ฅ , ํ™•์‚ฐ ํ™•๋ฅ  ๊ณ„์‚ฐ ๊ณต์‹

CFIS์—์„œ ๋ฐœํ™”ํ™•๋ฅ (Pโ‚โ‚™แตขโ‚œโ‚‘) ์™€ ํ™•์‚ฐํ™•๋ฅ (Pโ‚›โ‚šแตฃโ‚‘โ‚๐’น) ์€ ํ™•์ •๋œ ๊ณ ์ • ๊ณต์‹์ด ์—†์Šต๋‹ˆ๋‹ค.

โš™
  1. ๋ฐœํ™” ํ™•๋ฅ  Pignite : ๋‹จ์ˆœํ™”๋œ sigmoid ํšŒ๊ท€์‹
image (55)
๋ณ€์ˆ˜ ์˜๋ฏธ
NDVI ์‹์ƒ๋Ÿ‰ (๋งŽ์„์ˆ˜๋ก ๋ฐœํ™”โ†‘)
SPEI ๊ฐ€๋ญ„ ์ •๋„ (๊ฑด์กฐํ• ์ˆ˜๋ก ๋ฐœํ™”โ†‘)
T ๊ธฐ์˜จ (๋†’์„์ˆ˜๋ก ๋ฐœํ™”โ†‘)
SMAP ํ† ์–‘ ์ˆ˜๋ถ„ (๋งŽ์„์ˆ˜๋ก ๋ฐœํ™”โ†“)
H ์ƒ๋Œ€ ์Šต๋„
P ๊ฐ•์ˆ˜๋Ÿ‰
  1. ํ™•์‚ฐ ํ™•๋ฅ  Pspread : ๋ฐฉํ–ฅ์„ฑ ์—†์ด ๊ฐ„๋‹จํžˆ ๊ฐ€์ค‘ํ•ฉ ํ˜•ํƒœ
image (56)
๋ณ€์ˆ˜ ์˜๋ฏธ ์ •๊ทœํ™” ๊ธฐ์ค€
ํ’์† ์…€์˜ ํ’์† (m/s) Vmax=10 (์˜ˆ์‹œ)
๊ฒฝ์‚ฌ๋„ ์…€์˜ ๊ฒฝ์‚ฌ (%) Smax=45 (์˜ˆ์‹œ)
F ์—ฐ๋ฃŒ ์ธ์ž (0~1 ๋ฒ”์œ„๋กœ ์ •๊ทœํ™”๋œ ๊ฐ’) ์ง์ ‘ ์ •๊ทœํ™” ํ•„์š”
ฮฑ\alpha ์Šค์ผ€์ผ ์กฐ์ • ์ƒ์ˆ˜ (ex. 0.8~1.2) ์ „์ฒด ํ™•์‚ฐ ๊ฐ•๋„ ์กฐ์ ˆ

โ†’ ์ด์— ์‹ค์ œ ๋…ผ๋ฌธ๊ณผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์—ฐ๊ตฌ์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ๋Œ€ํ‘œ์ ์ธ ๊ณต์‹ ํ˜•ํƒœ์„ ์ฑ„ํƒํ•ด ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.


โœ… ์ตœ์ข… ์ €์žฅ๋˜๋Š” Pspread์™€ Pignite ์˜๋ฏธ

๐Ÿ”น Pignite (๋ฐœํ™” ํ™•๋ฅ ) โ†’ ์‹ค์ œ ๋ชจ๋ธ ํ•™์Šต์—๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ

  • ์‹œ๋ฎฌ๋ ˆ์ด์…˜๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ณ„์‚ฐ๋œ ์ •์ ์ธ ๊ฐ’
  • ์ฆ‰, ์ž…๋ ฅ ์ง€ํ‘œ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ„์‚ฐ๋œ ๊ฐ ๊ฒฉ์ž์˜ ๋ฐœํ™” ํ™•๋ฅ 
  • N_SIM = 300 ๋ฐ˜๋ณต๊ณผ๋Š” ๋ฌด๊ด€ํ•˜๊ฒŒ ํ•œ ๋ฒˆ๋งŒ ๊ณ„์‚ฐ๋˜์–ด ์ €์žฅ

๐Ÿ”น Pspread (ํ™•์‚ฐ ํ™•๋ฅ )

  • ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ 300๋ฒˆ ๋ฐ˜๋ณตํ•œ ํ›„, ์‹ค์ œ๋กœ ํ•ด๋‹น ์…€์ด ๋ช‡ ๋ฒˆ ๋ฒˆ์กŒ๋Š”์ง€์— ๋Œ€ํ•œ ๋น„์œจ

โœ… ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ตฌ์„ฑ ์ฝ”๋“œ (MATLAB)

๐Ÿ—’๏ธ

ํŒŒ์ผ ๊ตฌ์„ฑ (3๊ฐœ)

  1. cfis_simulation.m

    โ†’ ์ €์žฅ๋œ ์ด์›ƒ ์ •๋ณด ๋ถˆ๋Ÿฌ์™€ CFIS ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์‹คํ–‰

  2. getNeighbors.m

    โ†’์ค‘์‹ฌ ์œ„๊ฒฝ๋„ ๊ธฐ๋ฐ˜ 2km ์ด๋‚ด ์ด์›ƒ ์ถ”์ถœ ํ•จ์ˆ˜

  3. generate_neighbors_cache.m

    โ†’ ์œก์ง€ ๊ฒฉ์ž์— ๋Œ€ํ•ด ์ด์›ƒ ๊ณ„์‚ฐ โ†’ ์ค‘๊ฐ„ ์ €์žฅ ํฌํ•จ

  4. NDVI_land_only.csv, input_data_set.csv

    โ†’ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ

๐Ÿ› 

์‚ฌ์šฉ ์ˆœ์„œ

  1. generate_neighbors_cache.m ์‹คํ–‰ โ†’ neighbors_cache_land.mat ์ƒ์„ฑ๋จ
  2. cfis_land_simulation_per_cell_3.m ์‹คํ–‰ โ†’ cfis_land_result_percell_6.csv ์ถœ๋ ฅ๋จ

generate_neighbors_cache.m - ์œก์ง€ ๊ฒฉ์ž ์ด์›ƒ ๊ณ„์‚ฐ ๋ฐ ์บ์‹ฑ

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ํ•œ๋ฐ˜๋„ ์œก์ง€ ๊ฒฉ์ž์— ๋Œ€ํ•ด ์ธ์ ‘ ๊ฒฉ์ž(์ด์›ƒ)๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ์ค‘๊ฐ„ ์ €์žฅ ๋ฐ ์ฒดํฌํฌ์ธํŠธ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋Œ€๊ทœ๋ชจ ์ฒ˜๋ฆฌ์—์„œ๋„ ์•ˆ์ •์ ์œผ๋กœ ์žฌ์‹œ์ž‘์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ง„ํ–‰๋ฅ  ๋ฐ”๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ๋Œ€๊ทœ๋ชจ ์‹คํ–‰ ์‹œ ์ฒ˜๋ฆฌ ์ƒํ™ฉ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
NDVI_land_only.csv ์œก์ง€๋กœ ํŒ๋‹จ๋œ ๊ฒฉ์ž ID ๋ชฉ๋ก (grid_id)
input_data_set.csv ์ „์ฒด ๊ฒฉ์ž ์ •๋ณด (grid_id, center_lat, center_lon) ํฌํ•จ

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ์œก์ง€ ๊ฒฉ์ž ํ•„ํ„ฐ๋ง

  • NDVI_land_only.csv ํŒŒ์ผ์—์„œ ์œก์ง€ ๊ฒฉ์ž ID๋งŒ ์ถ”์ถœ
  • input_data_set.csv์—์„œ grid_id ๊ธฐ์ค€์œผ๋กœ ์œก์ง€ ๊ฒฉ์ž๋งŒ ํ•„ํ„ฐ๋ง

2. ์ค‘๊ฐ„ ์บ์‹œ(์ฒดํฌํฌ์ธํŠธ) ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ์ด์ „ ์‹คํ–‰ ์‹œ ์ €์žฅ๋œ neighbors_10000.mat, neighbors_20000.mat ๋“ฑ ์ค‘๊ฐ„ ๋ธ”๋ก ํŒŒ์ผ์ด ์กด์žฌํ•  ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ธ”๋ก์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์ด์–ด์„œ ๊ณ„์‚ฐ์„ ์žฌ๊ฐœํ•จ

3. ์ด์›ƒ ๊ณ„์‚ฐ ์‹œ์ž‘

  • ๊ฐ ๊ฒฉ์ž์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜ getNeighbors(i, lat, lon)์„ ํ˜ธ์ถœํ•˜์—ฌ ์ด์›ƒ ๊ฒฉ์ž ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑ

    (์ผ๋ฐ˜์ ์œผ๋กœ ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜ ๋˜๋Š” ์ธ์ ‘ ์œ„๊ฒฝ๋„ ๊ธฐ๋ฐ˜ ๊ณ„์‚ฐ)

4. ์ง„ํ–‰๋ฅ  ๋ฐ” ํ‘œ์‹œ

  • 40์นธ์˜ ASCII ์ง„ํ–‰ ๋ฐ”๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ˜„์žฌ ์ง„ํ–‰๋ฅ (%)๊ณผ ๊ณ„์‚ฐ ์ค‘์ธ ๊ฒฉ์ž ๊ฐœ์ˆ˜๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถœ๋ ฅ

5. ์ฃผ๊ธฐ์  ์ €์žฅ

  • BLOCK_SIZE = 10000 ๋‹จ์œ„๋กœ ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค neighbors_XXXX.mat ํ˜•์‹์œผ๋กœ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ ์ €์žฅ
  • ์ €์žฅ๋œ ํŒŒ์ผ์—๋Š” block_neighbors ๋ฆฌ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋˜๋ฉฐ, ๋‹ค์Œ ์‹คํ–‰ ์‹œ ์ฒดํฌํฌ์ธํŠธ๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅ

6. ์ „์ฒด ๊ฒฐ๊ณผ ์ €์žฅ

  • ์ „์ฒด ๊ณ„์‚ฐ ์™„๋ฃŒ ํ›„, ์ „์ฒด ์ด์›ƒ ์ •๋ณด(neighbors)๋ฅผ neighbors_cache_land.mat์— ์ตœ์ข… ์ €์žฅ

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
neighbors_10000.mat, neighbors_20000.mat, ... ๊ฐ ๋ธ”๋ก ๋‹จ์œ„๋กœ ๊ณ„์‚ฐ๋œ ์ด์›ƒ ์ •๋ณด ์ค‘๊ฐ„ ์ €์žฅ ํŒŒ์ผ
neighbors_cache_land.mat ์ „์ฒด ์œก์ง€ ๊ฒฉ์ž์— ๋Œ€ํ•œ ์ด์›ƒ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์ตœ์ข… ์บ์‹œ ํŒŒ์ผ

getNeighbors.m

(Haversine ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜ ์ด์›ƒ ๊ฒฉ์ž ํƒ์ƒ‰)

getNeighbors ํ•จ์ˆ˜๋Š” ํŠน์ • ๊ฒฉ์ž(idx)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ˜๊ฒฝ 2km ์ด๋‚ด์— ์žˆ๋Š” ์ด์›ƒ ๊ฒฉ์ž์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ตฌ ๊ณก๋ฅ ์„ ๊ณ ๋ คํ•œ Haversine ๊ณต์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์œ„๊ฒฝ๋„ ๊ธฐ๋ฐ˜ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ฅ ์ž…๋ ฅ ์ธ์ž

์ธ์ž๋ช… ์„ค๋ช…
idx ๊ธฐ์ค€์ด ๋˜๋Š” ๊ฒฉ์ž์˜ ์ธ๋ฑ์Šค (1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ •์ˆ˜)
center_lat ๋ชจ๋“  ๊ฒฉ์ž์˜ ์ค‘์‹ฌ ์œ„๋„ ๋ฐฐ์—ด (๋ฒกํ„ฐ)
center_lon ๋ชจ๋“  ๊ฒฉ์ž์˜ ์ค‘์‹ฌ ๊ฒฝ๋„ ๋ฐฐ์—ด (๋ฒกํ„ฐ)

๐Ÿ“ค ์ถœ๋ ฅ ๊ฐ’

์ด๋ฆ„ ์„ค๋ช…
neighbors ๊ธฐ์ค€ ๊ฒฉ์ž idx๋กœ๋ถ€ํ„ฐ 2.0km ์ด๋‚ด์— ์กด์žฌํ•˜๋Š” ์ด์›ƒ ๊ฒฉ์ž์˜ ์ธ๋ฑ์Šค ๋ฐฐ์—ด (์ž๊ธฐ ์ž์‹  ์ œ์™ธ)

๊ณ„์‚ฐ ๋ฐฉ์‹

  • Haversine ๊ณต์‹์„ ์‚ฌ์šฉํ•ด ๊ฒฉ์ž ๊ฐ„ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ (๋‹จ์œ„: km)
  • ๊ธฐ์ค€ ๊ฒฉ์ž์™€ ๋ชจ๋“  ๋‹ค๋ฅธ ๊ฒฉ์ž ๊ฐ„์˜ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ
  • ๊ฑฐ๋ฆฌ d โ‰ค 2.0km์ธ ๊ฒฉ์ž์˜ ์ธ๋ฑ์Šค๋ฅผ neighbors ๋ฐฐ์—ด์— ์ถ”๊ฐ€

๐ŸŒ Haversine ๊ณต์‹ ์š”์•ฝ

d = 2R * asin( sqrt( sinยฒ(ฮ”ฯ†/2) + cos(ฯ†โ‚)ยทcos(ฯ†โ‚‚)ยทsinยฒ(ฮ”ฮป/2) ) )
๊ธฐํ˜ธ ์„ค๋ช…
R ์ง€๊ตฌ ๋ฐ˜์ง€๋ฆ„ (6371 km)
ฯ† ์œ„๋„ (๋ผ๋””์•ˆ)
ฮป ๊ฒฝ๋„ (๋ผ๋””์•ˆ)
ฮ”ฯ† ์œ„๋„ ์ฐจ
ฮ”ฮป ๊ฒฝ๋„ ์ฐจ

cfis_simulation.m - CFIS ์‚ฐ๋ถˆ ํ™•์‚ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

(์ด์›ƒ ์บ์‹œ + ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ + ์ค‘๊ฐ„ ์ €์žฅ ํฌํ•จ)

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” CFIS(Cellular Fire Ignition and Spread) ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ํ•œ๋ฐ˜๋„ ์œก์ง€ ๊ฒฉ์ž์— ๋Œ€ํ•ด ์‚ฐ๋ถˆ ๋ฐœ์ƒ ๋ฐ ํ™•์‚ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ NํšŒ ๋ฐ˜๋ณตํ•˜๊ณ , ๊ฒฉ์ž๋ณ„ ํ™•์‚ฐ ํ™•๋ฅ (Pspread)์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
input_data_set.csv ๊ฒฉ์ž๋ณ„ ๊ธฐ์ƒยทํ™˜๊ฒฝ ์ž…๋ ฅ ๋ณ€์ˆ˜ ํฌํ•จ
NDVI_land_only.csv ์œก์ง€๋กœ ํŒ๋‹จ๋œ ๊ฒฉ์ž์˜ ID ๋ชฉ๋ก (grid_id)
neighbors_cache_land.mat ๊ฐ ์œก์ง€ ๊ฒฉ์ž๋ณ„ ์ด์›ƒ ์ธ๋ฑ์Šค ๋ฆฌ์ŠคํŠธ ์บ์‹œ ํŒŒ์ผ

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ์ „์ฒด ๊ฒฉ์ž ์ค‘ ์œก์ง€ ๊ฒฉ์ž๋งŒ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋Œ€์ƒ ์„ค์ •
  • ์œก์ง€ ๊ฒฉ์ž์˜ ์ˆ˜(nGrids)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ˜๋ณต

2. ๋ฐœํ™” ํ™•๋ฅ (Pignite) ๊ณ„์‚ฐ

  • ๋‹ค์–‘ํ•œ ๊ธฐ์ƒยท์ง€ํ˜• ๋ณ€์ˆ˜ ๊ธฐ๋ฐ˜ ๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€ ํ˜•ํƒœ๋กœ ๊ณ„์‚ฐ
  • ์‚ฌ์šฉ ๋ณ€์ˆ˜: NDVI, spei_recent_avg, temp_C, smap_20250630_filled, humidity, precip_mm

3. ํ™•์‚ฐ ํ™•๋ฅ (Pspread) ๊ณ„์‚ฐ

  • ๋‹จ์ˆœ ๊ฐ€์ค‘ ํ‰๊ท ์œผ๋กœ ๊ณ„์‚ฐ

    Pspread = ฮฑ ร— (0.4 ร— ํ’์†์ •๊ทœํ™” + 0.4 ร— ๊ฒฝ์‚ฌ์ •๊ทœํ™” + 0.2 ร— ์—ฐ๋ฃŒ๋Ÿ‰์ •๊ทœํ™”)

4. ์ด์›ƒ ์บ์‹œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • neighbors_cache_land.mat์—์„œ ๊ฐ ๊ฒฉ์ž๋ณ„ ์ธ์ ‘ ๊ฒฉ์ž ๋ฆฌ์ŠคํŠธ(neighbors{i}) ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

5. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ˜๋ณต (NํšŒ)

  • ๊ฒฉ์ž๋ณ„ ๋ฐœํ™” ์—ฌ๋ถ€ ๋ฌด์ž‘์œ„ ๊ฒฐ์ •
  • ๋ถˆ์ด ๋‚œ ๊ฒฉ์ž์—์„œ ์ด์›ƒ ๊ฒฉ์ž์— Pspread(i) ํ™•๋ฅ ๋กœ ์ „์ด
  • burned ๋ฐฐ์—ด์— ํ™•์‚ฐ ์—ฌ๋ถ€ ์ €์žฅ โ†’ ๋ˆ„์  ํšŸ์ˆ˜ spread_count์— ๊ธฐ๋ก

6. ์ง„ํ–‰๋ฅ  ํ‘œ์‹œ ๋ฐ ์ค‘๊ฐ„ ์ €์žฅ

  • ๋งค ์‹œ๋ฎฌ๋ ˆ์ด์…˜๋งˆ๋‹ค ASCII ์ง„ํ–‰๋ฅ  ๋ฐ” ๋ฐ ํ‰๊ท  ํ™•์‚ฐ๋ฅ  ์ถœ๋ ฅ
  • sim % 10 == 0์ผ ๋•Œ ์ฒดํฌํฌ์ธํŠธ ์ €์žฅ(cfis_land_checkpoint.mat) ๋ฐ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ CSV ์ €์žฅ(cfis_land_XXXX.csv)

7. ์ตœ์ข… ๊ฒฐ๊ณผ ์ €์žฅ

  • ์ „์ฒด ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ข…๋ฃŒ ํ›„ cfis_land_result.csv์— ์ €์žฅ
  • ์ €์žฅ ํ•ญ๋ชฉ:
    • grid_id
    • Pignite: ๋ฐœํ™” ํ™•๋ฅ 
    • BurnedCount: ๋ถˆ์ด ๋ถ™์€ ํšŸ์ˆ˜
    • SimTotal: ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ด ํšŸ์ˆ˜
    • Pspread: BurnedCount / SimTotal (ํ™•์‚ฐ ํ™•๋ฅ )

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
cfis_land_result.csv ์ „์ฒด ์œก์ง€ ๊ฒฉ์ž์˜ ๋ฐœํ™” ๋ฐ ํ™•์‚ฐ ํ™•๋ฅ  ๊ฒฐ๊ณผ
cfis_land_XXXX.csv N์‹œ๋ฎฌ๋ ˆ์ด์…˜๋งˆ๋‹ค ์ €์žฅ๋˜๋Š” ์ค‘๊ฐ„ ๊ฒฐ๊ณผ (10ํšŒ ๋‹จ์œ„)
cfis_land_checkpoint.mat ์ค‘๊ฐ„ ์ €์žฅ ์ฒดํฌํฌ์ธํŠธ ํŒŒ์ผ (๊ฐ•์ œ ์ข…๋ฃŒ ๋Œ€๋น„)

์ •๋‹ต ๋ฐ์ดํ„ฐ ๋ถ„ํ•  ๊ณผ์ •

final_data_1.m - CFIS ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒฐ๊ณผ + ์œ„์น˜ ์ •๋ณด ๋ณ‘ํ•ฉ

(์œ„๊ฒฝ๋„ ์ •๋ณด ํฌํ•จ ์ตœ์ข… ๊ฒฐ๊ณผ ์ƒ์„ฑ)

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” CFIS ์‚ฐ๋ถˆ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒฐ๊ณผ(cfis_land_result_percell_6.csv)์— ๊ฐ ๊ฒฉ์ž์˜ ์œ„๊ฒฝ๋„ ์ •๋ณด๋ฅผ ๋ณ‘ํ•ฉํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ ๊ณต๊ฐ„ ๊ธฐ๋ฐ˜ ๋ถ„์„์— ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฐ๊ณผ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
only_land_grid.csv ์œก์ง€๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๊ฒฉ์ž์˜ grid_id ๋ชฉ๋ก
cfis_land_result_percell_6.csv CFIS ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒฐ๊ณผ (๊ฒฉ์ž๋ณ„ ๋ฐœํ™”/ํ™•์‚ฐ ํ™•๋ฅ  ๋“ฑ ํฌํ•จ)
input_data_set.csv ๊ฒฉ์ž๋ณ„ ์ง€๋ฆฌ์ •๋ณด ๋ฐ ์ „์ฒด ์ž…๋ ฅ ์ง€ํ‘œ ํฌํ•จ ์›๋ณธ ํŒŒ์ผ

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ์„ธ ๊ฐœ์˜ ์ฃผ์š” ๋ฐ์ดํ„ฐ ํŒŒ์ผ(land, cfis, input)์„ readtable๋กœ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

2. ์œก์ง€ ๊ฒฉ์ž ํ•„ํ„ฐ๋ง

  • CFIS ๊ฒฐ๊ณผ์—์„œ ์œก์ง€๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๊ฒฉ์ž(grid_id)๋งŒ ํ•„ํ„ฐ๋งํ•˜์—ฌ cfis_land ์ƒ์„ฑ

3. ์œ„์น˜ ์ •๋ณด ์ถ”์ถœ

  • input_data_set.csv์—์„œ ๋‹ค์Œ ์œ„์น˜ ๊ด€๋ จ ์—ด๋งŒ ์ถ”์ถœ:
    • lat_min, lat_max, lon_min, lon_max, center_lat, center_lon

4. ๋ณ‘ํ•ฉ ์ˆ˜ํ–‰

  • grid_id๋ฅผ ๊ธฐ์ค€์œผ๋กœ cfis_land์™€ ์œ„์น˜ ์ •๋ณด(input_coords)๋ฅผ ๋ณ‘ํ•ฉ
  • ๋ณ‘ํ•ฉ ๋ฐฉ์‹์€ Left Join(Type = 'left')์œผ๋กœ, CFIS ๊ฒฐ๊ณผ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜ ์ •๋ณด ๋งคํ•‘

5. ์—ด ์ˆœ์„œ ์ •๋ฆฌ

  • ์ตœ์ข… ๊ฒฐ๊ณผ ํŒŒ์ผ์—์„œ grid_id ๋ฐ”๋กœ ๋‹ค์Œ์— ์œ„์น˜ ์ •๋ณด 6๊ฐœ ์—ด์„ ๋ฐฐ์น˜
  • ๋‚˜๋จธ์ง€ ์—ด์€ ๊ธฐ์กด ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ ๋’ค์— ์œ„์น˜์‹œํ‚ด

6. ๊ฒฐ๊ณผ ์ €์žฅ

  • ๋ณ‘ํ•ฉ ๋ฐ ์—ด ์ •๋ ฌ์ด ์™„๋ฃŒ๋œ ์ตœ์ข… ํ…Œ์ด๋ธ”์„ cfis_land_result_percell_6_with_coords.csv๋กœ ์ €์žฅ

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
cfis_land_result_percell_6_with_coords.csv CFIS ๊ฒฐ๊ณผ + ๊ฒฉ์ž ์œ„์น˜ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์ตœ์ข… ๋ถ„์„์šฉ ํŒŒ์ผ

final_data_2.m - CFIS ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ์ดํ„ฐ ๋ถ„ํ• 

(ํ•™์Šต/ํ…Œ์ŠคํŠธ์šฉ 7:3 ๋น„์œจ๋กœ CSV ์ €์žฅ)

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” CFIS ๊ธฐ๋ฐ˜ ์‚ฐ๋ถˆ ํ™•์‚ฐ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ(cfis_land_result_percell_6_with_coords.csv)๋ฅผ ๋จธ์‹ ๋Ÿฌ๋‹ ํ•™์Šต์„ ์œ„ํ•œ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ „์ฒ˜๋ฆฌ ๋ฐ ๋ถ„ํ• ํ•˜๋Š” ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
cfis_land_result_percell_6_with_coords.csv ๊ฐ ๊ฒฉ์ž์˜ CFIS ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒฐ๊ณผ + ์œ„์น˜ ์ •๋ณด ํฌํ•จ๋œ ์ตœ์ข… ๋ฐ์ดํ„ฐ

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ์ „์ฒด CFIS ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ readtable๋กœ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

2. NaN ์ฒ˜๋ฆฌ

  • Pignite ์—ด์—์„œ NaN ๊ฐ’์€ ๋ฐœํ™” ๊ฐ€๋Šฅ์„ฑ ์—†์Œ์œผ๋กœ ๊ฐ„์ฃผํ•˜์—ฌ 0์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
  • Pspread ์—ด์— ์กด์žฌํ•˜๋Š” NaN์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜์—ฌ ์ด์ƒ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

3. ๋ฌด์ž‘์œ„ ์„ž๊ธฐ (Shuffle)

  • ๋ฐ์ดํ„ฐ ๋ถ„ํ• ์˜ ํŽธํ–ฅ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด seed ๊ณ ์ • ํ›„ ๋žœ๋ค ์…”ํ”Œ๋ง์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค (rng(42)).

4. 7:3 ๋น„์œจ๋กœ ๋ฐ์ดํ„ฐ ๋ถ„ํ• 

  • ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ 70% ํ•™์Šต์šฉ, 30% ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ์ธ๋ฑ์Šค ๊ธฐ๋ฐ˜ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค.

5. ๊ฒฐ๊ณผ ์ €์žฅ

  • ํ•™์Šต ๋ฐ์ดํ„ฐ๋Š” cfis_train_label.csv๋กœ, ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋Š” cfis_test_label.csv๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ €์žฅ๋œ ๋‘ ํŒŒ์ผ์€ ์ดํ›„ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ ํ•™์Šต/๊ฒ€์ฆ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
cfis_train_label.csv ์ „์ฒด์˜ 70%๋กœ ๊ตฌ์„ฑ๋œ ํ•™์Šต์šฉ ๋ฐ์ดํ„ฐ
cfis_test_label.csv ์ „์ฒด์˜ 30%๋กœ ๊ตฌ์„ฑ๋œ ํ…Œ์ŠคํŠธ์šฉ ๋ฐ์ดํ„ฐ

Random_forest ๋ชจ๋ธ ๊ธฐ๋ฐ˜ ํ•™์Šต ๊ณผ์ •

๐ŸŽฏ ๋ชฉํ‘œ:

  • ์ž…๋ ฅ: 7๊ฐ€์ง€ ์ง€ํ‘œ + FARSITE ๋ฐฉํ–ฅ์„ฑ ๋ฐ์ดํ„ฐ(8๋ฐฉํ–ฅ) = ์ด 21๊ฐœ ํ”ผ์ฒ˜

  • ์ถœ๋ ฅ: pSpread (์—ฐ์†๊ฐ’, ํšŒ๊ท€ ๋ฌธ์ œ)

  • ํŒŒ์ผ: farsite_train_label.csv, cfis_train_label.csv

    ํŒŒ์ผ๋ช… ๋‚ด์šฉ
    farsite_train_label.csv ๐Ÿ‘‰ ์ž…๋ ฅ ํ”ผ์ฒ˜ 21๊ฐœ ํฌํ•จ (8๊ฐœ FARSITE ๋ฐฉํ–ฅ + 13๊ฐœ ์ง€ํ‘œ ์ถ”์ •)
    cfis_train_label.csv ๐Ÿ‘‰ ์ •๋‹ต ๊ฐ’ (pSpread) ํฌํ•จ
  • ์ง„ํ–‰๋ฅ  ์ถœ๋ ฅ

  • ๋ชจ๋ธ ์ €์žฅ

  • ํŠธ๋ฆฌ ๊ฐฏ์ˆ˜๋Š” ์ผ๋‹จ 300๊ฐœ๋กœ ์ง„ํ–‰ํ•˜๊ณ  ์„ฑ๋Šฅ์„ ํ™•์ธํ•ด๊ฐ€๋ฉฐ ์กฐ์ ˆํ•˜์˜€์Šต๋‹ˆ๋‹ค.


model_train_Randomforest.m - Random Forest ๊ธฐ๋ฐ˜ Pspread ์˜ˆ์ธก ๋ชจ๋ธ ํ•™์Šต

(21๊ฐœ ์ž…๋ ฅ ์ง€ํ‘œ ๊ธฐ๋ฐ˜, 300 ํŠธ๋ฆฌ ๊ตฌ์„ฑ)

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” CFIS ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒฐ๊ณผ๋ฅผ ์ •๋‹ต(label)์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ , FARSITE ๊ธฐ๋ฐ˜์˜ 21๊ฐœ ํ™˜๊ฒฝยท๊ธฐ์ƒ ์ง€ํ‘œ๋ฅผ ์ž…๋ ฅ ํ”ผ์ฒ˜๋กœ ํ™œ์šฉํ•˜์—ฌ Random Forest ํšŒ๊ท€ ๋ชจ๋ธ์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ํ•™์Šต์ด ์™„๋ฃŒ๋˜๋ฉด ๋ชจ๋ธ๊ณผ grid_id ๋งคํ•‘ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
farsite_train_label.csv ๊ฒฉ์ž๋ณ„ 21๊ฐœ ์ž…๋ ฅ ์ง€ํ‘œ ํฌํ•จ ํ•™์Šต์šฉ ํ”ผ์ฒ˜ ๋ฐ์ดํ„ฐ
cfis_train_label.csv CFIS ๊ธฐ๋ฐ˜ ํ™•์‚ฐ ํ™•๋ฅ (Pspread)์ด ํฌํ•จ๋œ ์ •๋‹ต ๋ฐ์ดํ„ฐ

๐Ÿ”น 1. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ์ž…๋ ฅ ํ”ผ์ฒ˜(X_raw)์™€ ์ •๋‹ต ๋ฒกํ„ฐ(Y)๋ฅผ ๊ฐ๊ฐ์˜ CSV ํŒŒ์ผ์—์„œ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • cfis_train_label.csv์— Pspread ์—ด์ด ์กด์žฌํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๊ณ  ์—†์œผ๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

๐Ÿ”น 2. ์ž…๋ ฅ ํ”ผ์ฒ˜ ๊ตฌ์„ฑ

  • ์˜ˆ์ธก ๋Œ€์ƒ์ธ grid_id, lat_min, lat_max, center_lat ๋“ฑ ๊ณต๊ฐ„ ์ขŒํ‘œ ๊ด€๋ จ ์—ด์€ ์ œ๊ฑฐ
  • ์ตœ์ข…์ ์œผ๋กœ 21๊ฐœ ์ง€ํ‘œ๋งŒ ์ถ”์ถœํ•˜์—ฌ X๋กœ ์ €์žฅ
  • ํ–ฅํ›„ ๊ฒฐ๊ณผ ๋งคํ•‘์„ ์œ„ํ•ด grid_id๋Š” ๋ณ„๋„ ์ €์žฅ

๐Ÿ”น 3. ๋ชจ๋ธ ํ•™์Šต ์„ค์ •

  • Random Forest ํšŒ๊ท€ ๋ชจ๋ธ(TreeBagger) ์‚ฌ์šฉ
  • ํŠธ๋ฆฌ ์ˆ˜๋Š” ๊ธฐ๋ณธ 300๊ฐœ(nTrees = 300)
  • OOB(Out-Of-Bag) ์˜ˆ์ธก๊ณผ ๋ณ€์ˆ˜ ์ค‘์š”๋„ ์ธก์ • ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”
  • ๋ณ‘๋ ฌ ์—ฐ์‚ฐ์€ ๋น„ํ™œ์„ฑํ™”(UseParallel = false)

๐Ÿ”น 4. ๋ชจ๋ธ ํ•™์Šต ์ˆ˜ํ–‰

  • TreeBagger๋ฅผ ํ†ตํ•ด ํšŒ๊ท€ ๋ชจ๋ธ ํ•™์Šต
  • ์ง„ํ–‰ ์ค‘ 10๊ฐœ ๋‹จ์œ„๋กœ ํ•™์Šต ์ƒํ™ฉ์„ ์ถœ๋ ฅ
  • ํ•™์Šต ์‹œ๊ฐ„ ์ธก์ •์„ ์œ„ํ•ด tic/toc ์‚ฌ์šฉ

๐Ÿ”น 5. ๋ชจ๋ธ ์ €์žฅ

  • ํ•™์Šต ์™„๋ฃŒ ํ›„ ํƒ€์ž„์Šคํƒฌํ”„ ๊ธฐ๋ฐ˜์˜ ๊ณ ์œ  ์ด๋ฆ„์œผ๋กœ .mat ํŒŒ์ผ๋กœ ์ €์žฅ
  • ๋ชจ๋ธ(Mdl)๊ณผ ํ•จ๊ป˜ grid_ids๋„ ์ €์žฅํ•˜์—ฌ ์ถ”ํ›„ ๊ฒฐ๊ณผ ๋งคํ•‘์— ํ™œ์šฉ ๊ฐ€๋Šฅ

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์˜ˆ์‹œ ์„ค๋ช…
random_forest_pspread_model_300trees_YYYYMMDD_HHMMSS.mat ํ•™์Šต๋œ ๋ชจ๋ธ๊ณผ grid_id ์ •๋ณด๊ฐ€ ์ €์žฅ๋œ ๊ฒฐ๊ณผ ํŒŒ์ผ

moder_test_1.m - CFIS Pspread ์˜ˆ์ธก ๋ชจ๋ธ ์„ฑ๋Šฅ ํ‰๊ฐ€ ๋ฐ ์‹œ๊ฐํ™”

(Random Forest ๊ธฐ๋ฐ˜ ๋ชจ๋ธ ๊ฒฐ๊ณผ ํ™•์ธ ๋ฐ ์ค‘์š” ๋ณ€์ˆ˜ ๋ถ„์„)

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ํ•™์Šต๋œ Random Forest ํšŒ๊ท€ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์™€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์˜ˆ์ธกํ•œ ํ›„, ์˜ˆ์ธก ๊ฒฐ๊ณผ๋ฅผ ์ง€๋„์— ์‹œ๊ฐํ™”ํ•˜๊ณ , RMSE/MAE ๋“ฑ์˜ ์ •๋Ÿ‰์  ์ง€ํ‘œ, ๊ทธ๋ฆฌ๊ณ  ๋ณ€์ˆ˜ ์ค‘์š”๋„(Feature Importance) ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
random_forest_pspread_model_*.mat ํ•™์Šต ์™„๋ฃŒ๋œ Random Forest ๋ชจ๋ธ (Mdl)๊ณผ grid_id ์ €์žฅ๋œ .mat ํŒŒ์ผ
farsite_test_label.csv ํ…Œ์ŠคํŠธ์šฉ ์ž…๋ ฅ ํ”ผ์ฒ˜ (21๊ฐœ ์ง€ํ‘œ + ์œ„์น˜ ์ •๋ณด ํฌํ•จ)
cfis_test_label.csv ํ…Œ์ŠคํŠธ์šฉ ์ •๋‹ต ํ™•์‚ฐ ํ™•๋ฅ (Pspread) ๋ฒกํ„ฐ

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ๋ชจ๋ธ ๋ฐ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • .mat ํŒŒ์ผ๋กœ ์ €์žฅ๋œ ๋ชจ๋ธ(Mdl)์„ ๋กœ๋“œ
  • ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์˜ grid_id, ์ค‘์‹ฌ ์œ„๊ฒฝ๋„(center_lat, center_lon) ์ €์žฅ
  • ํ•™์Šต ์ œ์™ธ ๋Œ€์ƒ(grid_id, ์œ„์น˜ ์ •๋ณด ๋“ฑ)์„ ์ œ๊ฑฐํ•˜๊ณ  21๊ฐœ ์ž…๋ ฅ ํ”ผ์ฒ˜๋งŒ ์ถ”์ถœ

2. ์˜ˆ์ธก ๋ฐ ์„ฑ๋Šฅ ํ‰๊ฐ€

  • predict() ํ•จ์ˆ˜๋กœ ์˜ˆ์ธก ์ˆ˜ํ–‰ โ†’ Y_pred
  • ์ •๋‹ต(Y_true)๊ณผ ๋น„๊ตํ•˜์—ฌ ์„ฑ๋Šฅ ์ง€ํ‘œ ๊ณ„์‚ฐ:
    • RMSE (Root Mean Squared Error)
    • MAE (Mean Absolute Error)

๐Ÿ“๋ชจ๋ธ ์„ฑ๋Šฅ ํ‰๊ฐ€ ๊ฒฐ๊ณผ

[RESULT] RMSE: 0.0947
[RESULT] MAE : 0.0225

โ–ถ๏ธ ์ด ์ˆ˜์น˜๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๋ฐ”

์ง€ํ‘œ ๊ฐ’ ํ•ด์„
RMSE 0.0947 ํ‰๊ท ์ ์œผ๋กœ ์•ฝ ยฑ0.095 ์ •๋„ ์˜ˆ์ธก ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒ
MAE 0.0225 ํ‰๊ท  ์ ˆ๋Œ€ ์˜ค์ฐจ๋Š” ์•ฝ 2.25% ์ˆ˜์ค€์˜ ์˜ค์ฐจ๋ฅผ ๊ฐ€์ง
  • pSpread ๊ฐ’์ด [0, 1] ๋ฒ”์œ„์˜ ํ™•๋ฅ  ๊ฐ’์ด๋ผ๋Š” ๊ฑธ ๊ฐ์•ˆํ•˜๋ฉด, ์˜ค์ฐจ 0.0225๋Š” 2% ์ˆ˜์ค€์˜ ์˜ˆ์ธก ์˜ค์ฐจ
  • RMSE 0.095๋Š” ๋ชจ๋ธ์ด ๊ฝค ์•ˆ์ •์ ์œผ๋กœ ์˜ˆ์ธกํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

๐Ÿ”น ์ง€๋„ ์œ„ ์‹œ๊ฐํ™” (์˜ˆ์ธก vs ์ •๋‹ต)

๐Ÿ“Š ๋ชจ๋ธ ์˜ˆ์ธก ๊ฒฐ๊ณผ๊ฐ’ ์‹œ๊ฐํ™” image (57)

๐Ÿ“Š ์ •๋‹ต ๊ฒฐ๊ณผ๊ฐ’ ์‹œ๊ฐํ™” image (58)

๐Ÿ”น OOB Error ๊ทธ๋ž˜ํ”„ ์ถœ๋ ฅ

์˜ค์ฐจ๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ค„๊ณ  ์ˆ˜๋ ดํ•˜๋ฉด ๋ชจ๋ธ์ด ์ž˜ ํ•™์Šต๋œ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

image (59)

โ–ถ๏ธ OOB Error ๊ทธ๋ž˜ํ”„ ํ•ด์„

๐Ÿ” ๊ทธ๋ž˜ํ”„ ํŠน์ง•

  • ์ดˆ๋ฐ˜ 0~50๊ฐœ ํŠธ๋ฆฌ ์‚ฌ์ด์— ๊ธ‰๊ฒฉํ•œ ๊ฐ์†Œ

    โ†’ ๋ชจ๋ธ์ด ๋น ๋ฅด๊ฒŒ ํ•™์Šตํ•˜๋ฉด์„œ ์˜ˆ์ธก๋ ฅ์„ ํ‚ค์šฐ๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

  • ์ดํ›„ 100๊ฐœ ํŠธ๋ฆฌ ์ดํ›„์—๋Š” ๊ฑฐ์˜ ํ‰ํ‰ํ•˜๊ฒŒ ์ˆ˜๋ ด

    โ†’ ์„ฑ๋Šฅ์ด ์•ˆ์ •ํ™”๋˜๊ณ  ๋” ๋งŽ์€ ํŠธ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด๋„ ์„ฑ๋Šฅ ํ–ฅ์ƒ์ด ๋ฏธ๋ฏธํ•ฉ๋‹ˆ๋‹ค.


โœ… ๊ฒฐ๋ก 

ํŠธ๋ฆฌ ์ˆ˜ 300๊ฐœ๋Š” ์ถฉ๋ถ„ํžˆ ์•ˆ์ •์ ์ธ ์ƒํƒœ์ด๊ณ  ํŠธ๋ฆฌ ์ˆ˜๋ฅผ ๋” ๋Š˜๋ ค๋„ ์˜ค์ฐจ ๊ฐ์†Œ ํšจ๊ณผ๋Š” ๊ฑฐ์˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— 300๊ฐœ๋Š” ์ ์ ˆํ•œ ์„ค์ • ๊ฐฏ์ˆ˜์˜€์Šต๋‹ˆ๋‹ค.


๐Ÿ‘ฉ๐Ÿผ

ํ•™์Šต์‹œํ‚จ Random Forest ๊ธฐ๋ฐ˜ Pspread ์˜ˆ์ธก ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์ด ์œ„์˜ ํ‰๊ฐ€์ฒ˜๋Ÿผ ์•ˆ์ •์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•™์Šต ๋ชจ๋ธ์„ ํ†ตํ•œ ๊ฒฉ์ž๋ณ„ ์‚ฐ๋ถˆ ์ „์ด ์˜ˆ์ธก ๊ฒฐ๊ณผ ์ถœ๋ ฅ ์ฝ”๋“œ๋ฅผ ์ตœ์ข…์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

model_result.m - Pspread ์˜ˆ์ธก ๊ฒฐ๊ณผ ์ƒ์„ฑ

(์œ„๊ฒฝ๋„ ํฌํ•จ ์˜ˆ์ธก CSV ์ƒ์„ฑ์šฉ)

์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ํ•™์Šต๋œ Random Forest ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์™€ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์‚ฐ๋ถˆ ํ™•์‚ฐ ํ™•๋ฅ (Pspread)์„ ์˜ˆ์ธกํ•˜๊ณ , ๊ฐ ๊ฒฉ์ž์˜ ์œ„์น˜ ์ •๋ณด์™€ ํ•จ๊ป˜ ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑ ๋ฐ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ž…๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์„ค๋ช…
farsite_test_label.csv ํ…Œ์ŠคํŠธ์šฉ ์ž…๋ ฅ ํ”ผ์ฒ˜ ๋ฐ ๊ฒฉ์ž ์œ„์น˜ ์ •๋ณด ํฌํ•จ
cfis_test_label.csv (์„ ํƒ) ์‹ค์ œ Pspread ๊ฐ’ (์„ฑ๋Šฅ ํ‰๊ฐ€์šฉ ๋น„๊ต ๊ฐ€๋Šฅ)
random_forest_pspread_model_*.mat ํ•™์Šต๋œ Random Forest ๋ชจ๋ธ(Mdl)๊ณผ grid_id ํฌํ•จ๋œ .mat ํŒŒ์ผ

โš™๏ธ ์‹คํ–‰ ํ๋ฆ„

1. ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ๊ฒฉ์ž์˜ grid_id, ์œ„๊ฒฝ๋„(lat_min, lat_max, lon_min, lon_max, center_lat, center_lon) ์ •๋ณด๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ๋ฐ์ดํ„ฐ ๋กœ๋“œ
  • ์˜ˆ์ธก์— ์‚ฌ์šฉํ•  21๊ฐœ ์ž…๋ ฅ ํ”ผ์ฒ˜๋งŒ ์ถ”์ถœํ•˜์—ฌ X_test๋กœ ๊ตฌ์„ฑ

2. ๋ชจ๋ธ ๋กœ๋“œ

  • ์ €์žฅ๋œ .mat ํŒŒ์ผ์—์„œ ํ•™์Šต๋œ ๋ชจ๋ธ(Mdl)์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค

    (์ด๋ฏธ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋‹ค๋ฉด ์ƒ๋žต ๊ฐ€๋Šฅ)

3. ์˜ˆ์ธก ์ˆ˜ํ–‰

  • predict(Mdl, X_test)๋กœ pSpread_pred ์˜ˆ์ธก ์ˆ˜ํ–‰

4. ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ” ๊ตฌ์„ฑ

  • ๋‹ค์Œ ํ•ญ๋ชฉ์„ ํฌํ•จํ•œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑ:
    • grid_id, lat_min, lat_max, lon_min, lon_max
    • center_lat, center_lon
    • pSpread_pred (์˜ˆ์ธก ํ™•์‚ฐ ํ™•๋ฅ )

5. ๊ฒฐ๊ณผ ์ €์žฅ

  • ํƒ€์ž„์Šคํƒฌํ”„(yyyymmdd_HHMMSS)๋ฅผ ํฌํ•จํ•œ ํŒŒ์ผ๋ช…์œผ๋กœ CSV ์ €์žฅ

    ์˜ˆ: predicted_pspread_with_coords_20250729_152010.csv

โœ… ์š”์•ฝ: ์˜ˆ์ธก ๊ฒฐ๊ณผ ์˜ˆ์‹œ ํ…Œ์ด๋ธ”

grid_id lat_min lat_max lon_min lon_max center_lat center_lon pSpread_pred
12345 37.1 37.2 127.3 127.4 37.15 127.35 0.783
... ... ... ... ... ... ... โ€ฆ

GradientBoostingRegressor ๋ชจ๋ธ ๊ธฐ๋ฐ˜ ํ•™์Šต ๊ณผ์ •

model_train.m -GradientBoostingRegressor ๊ธฐ๋ฐ˜ Pspread ์˜ˆ์ธก ๋ชจ๋ธ ํ•™์Šต

๋ณธ MATLAB ์Šคํฌ๋ฆฝํŠธ๋Š” train_label.csv ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, Gradient Boosting Regression (LSBoost) ๋ชจ๋ธ์„ ํ•™์Šตํ•˜์—ฌ ์‚ฐ๋ถˆ ํ™•์‚ฐ ํ™•๋ฅ (Pspread)์„ ์˜ˆ์ธกํ•˜๋Š” ํšŒ๊ท€ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต๋œ ๋ชจ๋ธ์€ .mat ํŒŒ์ผ๋กœ ์ €์žฅ๋˜์–ด, ํ›„์† ์˜ˆ์ธก ๋˜๋Š” ํ‰๊ฐ€์— ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.


๐Ÿงพ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ

๐Ÿ“ train_label.csv

๊ฒฉ์ž ๋‹จ์œ„์˜ ์‚ฐ๋ถˆ ์˜ˆ์ธก ํ•™์Šต ๋ฐ์ดํ„ฐ๋กœ, ๋‹ค์Œ ์—ด(columns)์„ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

์ปฌ๋Ÿผ๋ช… ์„ค๋ช…
avg_fuelload_pertree_kg ํ‰๊ท  ๋‚˜๋ฌด๋‹น ์—ฐ๋ฃŒ๋Ÿ‰ (kg)
FFMC, DMC, DC ์—ฐ๋ฃŒ ์ˆ˜๋ถ„ ์ง€์ˆ˜ (Fine/Duff/Drought)
NDVI ์‹์ƒ ์ง€์ˆ˜
smap_20250630_filled ํ† ์–‘ ์ˆ˜๋ถ„ ๋ณด๊ฐ„๊ฐ’
temp_C, humidity ๊ธฐ์˜จ ๋ฐ ์Šต๋„
wind_speed, wind_deg ํ’์† ๋ฐ ํ’ํ–ฅ
precip_mm ๊ฐ•์ˆ˜๋Ÿ‰
mean_slope ํ‰๊ท  ๊ฒฝ์‚ฌ๋„
spei_recent_avg ์ตœ๊ทผ ๊ฐ€๋ญ„ ์ง€์ˆ˜ (SPEI)
P_NW ~ P_SE 8๋ฐฉํ–ฅ ํ™•์‚ฐ ํ™•๋ฅ  (FARSITE ๊ธฐ๋ฐ˜)
Pspread ํƒ€๊ฒŸ๊ฐ’, ์…€๋ณ„ ํ™•์‚ฐ ํ™•๋ฅ  (0~1)

โš™ ์‹คํ–‰ ํ๋ฆ„

๐Ÿ”น 1. ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

  • FARSITE ํ™•์‚ฐ ํ™•๋ฅ  8๋ฐฉํ–ฅ(P_NW~P_SE)์˜ ํ‰๊ท ๊ฐ’์„ farsite_prob์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ์ž…๋ ฅ ํ”ผ์ฒ˜์— ์ถ”๊ฐ€
farsite_cols = {'P_NW','P_N','P_NE','P_W','P_E','P_SW','P_S','P_SE'};
train.farsite_prob = mean(train{:, farsite_cols}, 2);

๐Ÿ”น 2. ์ž…๋ ฅ(X), ์ถœ๋ ฅ(y) ์ •์˜

  • X: 14๊ฐœ ํ”ผ์ฒ˜
  • y: Pspread

๐Ÿ”น 3. ๋ชจ๋ธ ์ •์˜ ๋ฐ ํ•™์Šต

tree = templateTree('MaxNumSplits', 10);
model = fitrensemble(X, y, ...
    'Method', 'LSBoost', ...
    'NumLearningCycles', 300, ...
    'LearnRate', 0.1, ...
    'Learners', tree);
  • Boosting ๋ฐฉ์‹: LSBoost (Least Squares)
  • ํŠธ๋ฆฌ ์ˆ˜: 300
  • ํ•™์Šต๋ฅ : 0.1
  • ํŠธ๋ฆฌ ์ตœ๋Œ€ ๋ถ„ํ•  ์ˆ˜: 10

๐Ÿ”น 4. ๋ชจ๋ธ ์ €์žฅ

  • ํ•™์Šต ์™„๋ฃŒ๋œ ๋ชจ๋ธ์€ gradient_boosting_pspread_model_300trees_yyyymmdd_HHMMSS.mat ํ˜•์‹์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์˜ˆ์‹œ ์„ค๋ช…
gradient_boosting_pspread_model_300trees_20250729_142205.mat ํ•™์Šต๋œ RegressionEnsemble ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋œ MATLAB .mat ํŒŒ์ผ
save(model_filename, 'model');

๐Ÿ›  ํ•„์š” ํ™˜๊ฒฝ

  • MATLAB R2021a ์ด์ƒ ๊ถŒ์žฅ
  • Statistics and Machine Learning Toolbox ํ•„์ˆ˜

`model_predict.m -GradientBoostingRegressor ๊ธฐ๋ฐ˜ ๋ชจ๋ธ ์˜ˆ์ธก

๋ณธ ์Šคํฌ๋ฆฝํŠธ๋Š” ์‚ฌ์ „ ํ•™์Šต๋œ Gradient Boosting ๋ชจ๋ธ์„ ํ™œ์šฉํ•ด, test_label.csv์— ํฌํ•จ๋œ ๊ฒฉ์ž๋ณ„ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด **์‚ฐ๋ถˆ ํ™•์‚ฐ ํ™•๋ฅ (pSpread)**์„ ์˜ˆ์ธกํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ CSV๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.


๐Ÿงพ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ

๐Ÿ“ test_label.csv

ํ…Œ์ŠคํŠธ ๋Œ€์ƒ ๊ฒฉ์ž ์…€๋“ค์˜ ๋ฐ์ดํ„ฐ๋กœ, ๋‹ค์Œ ์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

์ปฌ๋Ÿผ๋ช… ์„ค๋ช…
grid_id ๊ฒฉ์ž ๊ณ ์œ  ID
lat_min, lat_max ๊ฒฉ์ž ์œ„๋„ ๋ฒ”์œ„
lon_min, lon_max ๊ฒฉ์ž ๊ฒฝ๋„ ๋ฒ”์œ„
center_lat, center_lon ๊ฒฉ์ž ์ค‘์‹ฌ์  ์œ„/๊ฒฝ๋„
avg_fuelload_pertree_kg ํ‰๊ท  ๋‚˜๋ฌด๋‹น ์—ฐ๋ฃŒ๋Ÿ‰ (kg)
FFMC, DMC, DC ์—ฐ๋ฃŒ ์ˆ˜๋ถ„ ์ง€์ˆ˜
NDVI ์‹์ƒ ์ง€์ˆ˜
smap_20250630_filled ๋ณด๊ฐ„๋œ ํ† ์–‘ ์ˆ˜๋ถ„
temp_C, humidity ๊ธฐ์˜จ, ์Šต๋„
wind_speed, wind_deg ํ’์†, ํ’ํ–ฅ
precip_mm ๊ฐ•์ˆ˜๋Ÿ‰
mean_slope ํ‰๊ท  ๊ฒฝ์‚ฌ๋„
spei_recent_avg ์ตœ๊ทผ ๊ฐ€๋ญ„ ์ง€์ˆ˜
P_NW ~ P_SE FARSITE ํ™•์‚ฐ ํ™•๋ฅ  8๋ฐฉํ–ฅ

โš™ ์‹คํ–‰ ํ๋ฆ„

๐Ÿ”น 1. ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ ๋ฐ ์ „์ฒ˜๋ฆฌ

  • FARSITE์˜ 8๋ฐฉํ–ฅ ํ™•์‚ฐ ํ™•๋ฅ  ํ‰๊ท ์„ farsite_prob์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ์ž…๋ ฅ ํ”ผ์ฒ˜์— ์ถ”๊ฐ€

๐Ÿ”น 2. ์ž…๋ ฅ ํ”ผ์ฒ˜ ๊ตฌ์„ฑ

  • ํ•™์Šต ์‹œ์™€ ๋™์ผํ•œ 14๊ฐœ ํ”ผ์ฒ˜ ์ถ”์ถœ:

    X = test{:, {
        'avg_fuelload_pertree_kg', ...
        'FFMC', 'DMC', 'DC', ...
        'NDVI', 'smap_20250630_filled', ...
        'temp_C', 'humidity', ...
        'wind_speed', 'wind_deg', ...
        'precip_mm', 'mean_slope', 'spei_recent_avg', ...
        'farsite_prob'
    }};

๐Ÿ”น 3. ์‚ฌ์ „ ํ•™์Šต๋œ ๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • .mat ํŒŒ์ผ์—์„œ model ๊ฐ์ฒด๋ฅผ ๋ถˆ๋Ÿฌ์˜ด
  • ์˜ˆ์‹œ ํŒŒ์ผ๋ช…: gradient_boosting_pspread_model_300trees_20250706_131211.mat

๐Ÿ”น 4. ์˜ˆ์ธก ์ˆ˜ํ–‰

  • predict(model, X)๋ฅผ ํ†ตํ•ด ๊ฐ ๊ฒฉ์ž์— ๋Œ€ํ•œ pSpread ํ™•์‚ฐ ํ™•๋ฅ  ์˜ˆ์ธก

๐Ÿ”น 5. ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ” ๊ตฌ์„ฑ

  • ๊ฒฉ์ž ๊ธฐ๋ณธ ์ •๋ณด + ์˜ˆ์ธก ํ™•์‚ฐ ํ™•๋ฅ (pSpread_pred)์„ ํฌํ•จํ•œ ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

๐Ÿ”น 6. ๊ฒฐ๊ณผ ์ €์žฅ

  • ํŒŒ์ผ๋ช… ์˜ˆ์‹œ: gbr_predicted_pspread_20250729_150201.csv

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์˜ˆ์‹œ ์„ค๋ช…
gbr_predicted_pspread_20250729_150201.csv ๊ฒฉ์ž๋ณ„ ์˜ˆ์ธก ํ™•์‚ฐ ํ™•๋ฅ  ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ”

์ถœ๋ ฅ ์—ด ๊ตฌ์„ฑ:

  • grid_id, lat_min, lat_max, lon_min, lon_max, center_lat, center_lon, pSpread_pred

๐Ÿ›  ํ•„์š” ํ™˜๊ฒฝ

  • MATLAB R2021a ์ด์ƒ
  • Statistics and Machine Learning Toolbox
  • ํ•™์Šต๋œ .mat ๋ชจ๋ธ ํŒŒ์ผ (์˜ˆ: gradient_boosting_pspread_mode

**`model_evaluate.m -GradientBoostingRegressor ๊ธฐ๋ฐ˜ ๋ชจ๋ธ ์„ฑ๋Šฅ ํ‰๊ฐ€ **

๋ณธ ์Šคํฌ๋ฆฝํŠธ๋Š” ํ•™์Šต๋œ Gradient Boosting ๋ชจ๋ธ์˜ ์˜ˆ์ธก ์ •ํ™•๋„๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ , ์‹œ๊ฐํ™” ๋ฐ ์ค‘์š”๋„ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํ‰๊ฐ€ ์ง€ํ‘œ๋กœ๋Š” RMSE ๋ฐ MAE๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์˜ˆ์ธก ๊ฒฐ๊ณผ์™€ CFIS ๊ธฐ๋ฐ˜ ์ •๋‹ต์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.


๐Ÿงพ ์ž…๋ ฅ ํŒŒ์ผ

1. ์˜ˆ์ธก ๊ฒฐ๊ณผ CSV (evaluation_result_*.csv)

  • ์˜ˆ์ธก ์ˆ˜ํ–‰ ํ›„ ์ €์žฅ๋œ ๊ฒฐ๊ณผ
  • ํ•„์ˆ˜ ์—ด:
    • grid_id, center_lat, center_lon, pSpread_pred

2. ์ •๋‹ต ๋ฐ์ดํ„ฐ CSV (cfis_test_label.csv)

  • CFIS ๊ธฐ๋ฐ˜ Ground Truth ํ™•์‚ฐ ํ™•๋ฅ 
  • ํ•„์ˆ˜ ์—ด: Pspread

3. ํ•™์Šต๋œ ๋ชจ๋ธ (gradient_boosting_pspread_model_*.mat)

  • fitrensemble์œผ๋กœ ํ•™์Šต๋œ RegressionEnsemble ๊ฐ์ฒด ํฌํ•จ

โš™ ์‹คํ–‰ ํ๋ฆ„

๐Ÿ”น 1. ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

  • ์˜ˆ์ธก ๊ฒฐ๊ณผ(pSpread_pred)์™€ ์‹ค์ œ ์ •๋‹ต(Pspread)์„ ๋ณ‘ํ•ฉ

๐Ÿ”น 2. ์„ฑ๋Šฅ ์ง€ํ‘œ ๊ณ„์‚ฐ

  • RMSE (Root Mean Squared Error)
  • MAE (Mean Absolute Error)

๐Ÿ”น 3. ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ” ๊ตฌ์„ฑ ๋ฐ ์ €์žฅ

  • ์—ด ์ถ”๊ฐ€: Pspread_true, abs_error
  • ๊ฒฐ๊ณผ ์ €์žฅ: evaluation_result_yyyymmdd_HHMMSS.csv

๐Ÿ”น 4. ์‹œ๊ฐํ™” (์ง€๋„ ๊ธฐ๋ฐ˜)

  • ์˜ˆ์ธก ํ™•์‚ฐ ํ™•๋ฅ  ์ง€๋„
  • ์‹ค์ œ ํ™•์‚ฐ ํ™•๋ฅ  ์ง€๋„
  • ์ ˆ๋Œ€ ์˜ค์ฐจ ์ง€๋„

๐Ÿ”น 5. ํ”ผ์ฒ˜ ์ค‘์š”๋„ ๋ถ„์„

  • predictorImportance(model) ์‚ฌ์šฉ
  • ์ƒ์œ„ 3๊ฐœ ์ค‘์š” ํ”ผ์ฒ˜ ์ถœ๋ ฅ ๋ฐ ๋ฐ” ์ฐจํŠธ ์‹œ๊ฐํ™”

๐Ÿ”น 6. ํ•™์Šต ํŠธ๋ฆฌ ์ˆ˜์— ๋”ฐ๋ฅธ Resubstitution Loss ์‹œ๊ฐํ™”

  • resubLoss(model, 'Learners', 1:t)๋กœ ํ•™์Šต ๊ณก์„  ์ƒ์„ฑ

๐Ÿ’พ ์ถœ๋ ฅ ํŒŒ์ผ

ํŒŒ์ผ๋ช… ์˜ˆ์‹œ ์„ค๋ช…
evaluation_result_20250729_151001.csv ์˜ˆ์ธก๊ฐ’, ์ •๋‹ต๊ฐ’, ์˜ค์ฐจ๊ฐ€ ํฌํ•จ๋œ ํ‰๊ฐ€ ๊ฒฐ๊ณผ CSV

๐Ÿ“Š ์ฃผ์š” ์‹œ๊ฐํ™” ์ถœ๋ ฅ

์‹œ๊ฐํ™” ์ด๋ฆ„ ์„ค๋ช…
๐Ÿ”ฅ ์˜ˆ์ธก ํ™•์‚ฐ ํ™•๋ฅ  ์ง€๋„ pSpread_pred ์‹œ๊ฐํ™” (jet ์ปฌ๋Ÿฌ๋งต, caxis [0 1])
๐Ÿ“ ์‹ค์ œ ํ™•์‚ฐ ํ™•๋ฅ  ์ง€๋„ Pspread_true ์‹œ๊ฐํ™”
๐Ÿงญ ์˜ˆ์ธก ์˜ค์ฐจ ์ง€๋„ abs_error ์‹œ๊ฐํ™” (parula ์ปฌ๋Ÿฌ๋งต)
๐Ÿ“Š ํ”ผ์ฒ˜ ์ค‘์š”๋„ ๋ฐ” ์ฐจํŠธ Gradient Boosting ๊ธฐ์ค€ ๋ณ€์ˆ˜ ์˜ํ–ฅ๋„
๐Ÿ“‰ ํŠธ๋ฆฌ ์ˆ˜์— ๋”ฐ๋ฅธ ํ•™์Šต ์˜ค์ฐจ ๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ ์ˆ˜์— ๋”ฐ๋ฅธ loss ๋ณ€ํ™” ์‹œ๊ฐํ™”

๐Ÿ›  ํ•„์š” ํ™˜๊ฒฝ

  • MATLAB R2021a ์ด์ƒ
  • Statistics and Machine Learning Toolbox
  • ์‚ฌ์ „ ํ•™์Šต๋œ .mat ๋ชจ๋ธ ํŒŒ์ผ ํ•„์š”

๐Ÿ“๋ชจ๋ธ ์„ฑ๋Šฅ ํ‰๊ฐ€ ๊ฒฐ๊ณผ

๐Ÿ“Š ๋ชจ๋ธ ์˜ˆ์ธก ๊ฒฐ๊ณผ๊ฐ’ ์‹œ๊ฐํ™” image

๐Ÿ“Š ์ •๋‹ต ๊ฒฐ๊ณผ๊ฐ’ ์‹œ๊ฐํ™” image

๐Ÿ“Š Resubstitution Loss ๊ทธ๋ž˜ํ”„

์Šคํฌ๋ฆฐ์ƒท 2025-07-27 145511