산불피해보정

‍이시현·2024년 1월 17일
0

Remote Sensing

목록 보기
10/10

제목 없음

산불 피해 강도의 정의

산불이 다 진화되고 난 뒤 산불이 나기 전과 후를 비교하여 산불로 인해 얼마나 피해를 입었는지를 측정하는 것은 산불 전후의 피해 특성 및 양상 그리고 피해 복구 계획을 수립할 때 중요한 정보가 된다.
산불 피해 강도는 미국 USDA의 산불피해강도 평가지수(CBI)를 활용하여 표현하고 있다. [0,3]까지의 실수 범위로 표현된다.
이런 CBI지수는 피해 지역 안에서 몇 개의 포인트를 설정한 뒤 그 지점에 직접 사람이 방문하여 토양의 색깔이나 나무의 그을림 등 여러가지 요소를 판단하여 값을 측정한다. 이러한 방법은 비용과 시간, 노동력이 많이 소요되므로 인공위성을 사용하여 이를 측정할 수 있다면 매우 유용할 것이다.

https://velog.velcdn.com/images/lsh9034/post/62b36a0a-a5a7-4ab6-98b2-28f3f8012305/image.png

위 사진의 노란색 기둥 영역 쪽이 Near Infrared(NIR) 영역이고 파랑색 기둥 사이가 Shortwave Infrared(SWIR)영역이다. 사진을 보면 일반적으로 보면 화재 유형에 대해 NIR 영역의 감소가 일어나지만 다른 영역대에선 또 다른 패턴의 반응이 나타나는 것을 볼 수 있다.

NDVI=NIRRedNIR+RedNDVI = \frac{NIR-Red}{NIR+Red}

dNDVI=PrefireNDVIPostfireNDVIdNDVI = PrefireNDVI - PostfireNDVI
위의 공식은 위성영상을 이용해 간접적으로 피해강도를 측정할 때 사용하는 평가지표이다. NDVI(Normalized difference vegetation index)라고한다. 이름이 의미하는 바와 같이 산불만을 위해 나온 지표는 아니고 식생지수를 나타낼 때 사용하는 것 같다. NDVI는 [0,1] 사이의 범위(맞나? 아닐수도)를 가지고 있고 높을수록 식물이 건강한 것이다. dNDVI는 두 시간대의 식생지수의 차이를 나타내는 것이다. 산불 전 값에서 산불 후 값을 빼기 때문에 값이 작을수록 현재 식생지수가 과거보다 좋은 것이다.

위의 지표로 산불 피해강도를 측정하면 단점이 있는데 바로 여름이나 낙엽이지는 가을처럼 식물들의 식생지수가 급격하게 변화하는 시즌엔 산불로 인해 산림이 변화한 것인지 해당 시기로 인한 자연적 변화인지 판단하기 어려울 수 있다는 것이다. 보통 산불을 측정할 땐 공간해상도가 높은 대신 시간해상도가 낮은 극궤도 위성을 사용한다. 이를 설명하기 위해 우선 위성에 대해서 알아야한다.
위성은 크게 정지궤도 위성과 극궤도 위성이 있다.

  • 정지궤도 위성
    지구의 자전속도와 똑같이 지구를 돌아서 똑같은 영역을 계속해서 관찰하는 위성
  • 극궤도 위성
    지구의 양 극을 지나쳐 도는 방식으로 지구 전체를 관찰하는 위성

사진처럼 위성은 양극을 지나치지만 지구가 자전하고 있어서 결국 지구 전체를 관찰할 수 있게 되는 것이다.

https://velog.velcdn.com/images/lsh9034/post/6fb4d510-056d-4ca4-9caf-3575904b9ee8/image.png

정지궤도 위성과 극궤도 위성의 큰 차이점은 공간해상도와 시간해상도에 있다. 공간해상도는 위성이 얼마나 해당 지역을 자세하게 볼 수 있느냐를 말하는 것이다. 예를 들어 1x1m 해상도와 4x4m 해상도를 비교해보면 위성이 찍는 한 셀이 표현할 수 있는 크기가 위의 영역과 같다는 것이다. 따라서 작을수록 좋다. 시간해상도는 동일한 지역을 위성이 다시 관찰하는데 걸리는 시간을 말한다.

정지궤도 위성은 극궤도 위성에 비해 상대적으로 공간해상도가 낮고 시간해상도가 높다. 더 자세히 설명하자면 정지궤도 위성은 어차피 공전 속도가 지구 자전속도와 똑같기 때문에 동일한 위치에 머무르고 있으므로 시간해상도를 매우 높일 수 있다. (2분~5분 정도라고 한다.) 하지만 공간해상도가 낮은데 이 이유는 극궤도 위성에 비해 지구에서 물리적으로 멀리 떨어져있기 때문이라고 한다.(maybe 수 km) (아마 극궤도 위성은 정지궤도 위성보다 훨씬 빨리 공전하기 때문인 것 같다.)
이에 반해 극궤도 위성은 지구에 물리적으로 가깝기 때문에 높은 공간해상도를 가지지만 똑같은 지역을 다시 보기 위해선 매우 오래 걸린다. (Sentinel-2 위성은 5일, Landsat-8은 16일?)

산불 피해 측정에선 이미 산불이 다 진화된 이후이기 때문에 시간해상도가 높은 정지궤도 위성보단 보다 정밀한 측정을 위해 공간해상도가 높은 극궤도 위성을 사용한다. 다만 극궤도 위성이 시간해상도가 낮기 때문에 산불이 진화된 이후로부터 시간이 많이 지난 뒤에 위성이 사진을 찍으면 식생지수가 변화무쌍한 시즌엔 산불과 시즌으로 인한 변화를 구분하기 어렵다는 것이 NDVI의 단점이 되는 것이다.

NBR=NIRSWIRNIR+SWIRNBR=\frac{NIR-SWIR}{NIR+SWIR}

dNBR=PrefireNBRPostfireNBRdNBR=PrefireNBR-PostfireNBR
위 지표는 산불피해를 측정하는데 좀 더 특화된 지표이다. Normalized Burn Ratio(NBR)이라고 부른다. (아마 NDVI의 단점을 보완한듯?)

https://velog.velcdn.com/images/lsh9034/post/34ec1f17-3616-4d36-9496-4bebb7008460/image.png

dNBR 값의 문제점은 결국 이 값도 전후의 상대적 차이를 나타내는 값이기 때문에 A case가 실제로 더 많은 피해를 입었음에도 C case에서 더 많은 피해를 입은 것으로 측정이 되어버리는 문제가 있고 강한 산불의 경우 dNBR값이 포화되는 문제가 있다고 한다. (CBI값 대비 dNBR값의 증가율을 말하는 것?)그래서 수정된 지수인 RdNBR이 제시되었다고 한다.
RdNBR=PreFireNBRPostFireNBRSquareRoot(ABS(PreFireNBR/1000))RdNBR=\frac{PreFireNBR-PostFireNBR}{SquareRoot(ABS(PreFireNBR/1000))}

R 값의 의미와 공식
https://m.blog.naver.com/tlrror9496/222055889079

이러한 값들을 딥러닝 모델의 입력으로 주고 CBI를 label로 삼아 학습하여 CBI 값 도출과정을 빠르게 하고 있는 시도들이 있다.

Wild Fire Jupyter Notebook 정리

Landsat 8 위성을 사용하여 수집된 데이터와 CBI값들을 이용해 모델을 학습하고 울진 화재에 적용해보기

# The RGB composite image looks similar to a picture taken with smartphone camera
# True color composite; Red, Green, Blue bands
RGB_pre = np.dstack((b4_pre, b3_pre, b2_pre))
RGB_post = np.dstack((b4_post, b3_post, b2_post))

fig = plt.figure(figsize = (10,8), dpi =125)
axs = fig.subplots(1,2)
axs = axs.flatten()
im1 = axs[0].imshow(RGB_pre*10);axs[0].set_title('Prefire RGB composite', fontsize = 12);
im2 = axs[1].imshow(RGB_post*10);axs[1].set_title('Postfire RGB composite', fontsize = 12);

2,3,4번 band가 blue, green, red를 나타내고 있다. (왜 이미지로 보여주려고 할 때 *10을 한걸까?)

RGB_pre = np.dstack((b5_pre, b4_pre, b3_pre))
RGB_post = np.dstack((b5_post, b4_post, b3_post))

fig = plt.figure(figsize = (10,8), dpi =125)
axs = fig.subplots(1,2)
axs = axs.flatten()
im1 = axs[0].imshow(RGB_pre*2);axs[0].set_title('Prefire RGB composite', fontsize = 12);
im2 = axs[1].imshow(RGB_post*2);axs[1].set_title('Postfire RGB composite', fontsize = 12);

blue 영역대의 band를 빼고 NIR영역대의 파장을 넣었다.(왜 *2가 있는걸까?)

코드의 전체적인 흐름은 아래와 같다.

  1. 산불 전후로 CBI 값이 있는 지점에서 해당 이미지의 RGB에 해당하는 band 값을 이용하여 Random Forest와 Decision Tree모델을 학습하기 (scikit learn을 사용하였다.)
  2. 산불전후의 RGB band 값의 차이를 데이터로 사용하여 학습하기
  3. 산불 전후로 모든 band의 대해 차이를 구하고 NDVI, NBR, dNDBI, dNBR(1,2가 있는데 뭐지?)를 사용하여 학습하기

1->3 순으로 피어슨 상관계수가 증가하고 MSE가 감소하고 있다. 피어슨 상관계수는 공분산과 의미는 비슷하지만 공분산을 이용한 다른 값이다. 의미만 살펴보면 [-1, 1] 범위를 가지고 0은 상관없고 1은 양의 상관, -1은 음의 상관을 가진다.

profile
알고리즘과 머신러닝에 관심이 있는 평범한 공대생입니다!

0개의 댓글

관련 채용 정보