Python 을 이용한 음영 기복 플롯 생성

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 Python Matplotlib 을 사용하여 음영 기복도 (shaded relief plot) 를 만드는 방법을 배웁니다. 음영 기복도는 고도 변화를 음영으로 표현하여 지형 데이터를 시각화하는 데 유용합니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접속하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

라이브러리 임포트

필요한 라이브러리를 임포트하는 것으로 시작합니다.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import cbook
from matplotlib.colors import LightSource

데이터 로드

다음으로, 이 튜토리얼에 사용할 샘플 데이터를 로드합니다. 고도 데이터를 포함하는 jacksboro_fault_dem.npz 파일을 사용합니다.

dem = cbook.get_sample_data('jacksboro_fault_dem.npz')
elev = dem['elevation']

음영 기복 플롯 생성

이제 LightSource 클래스를 사용하여 음영 기복 플롯을 생성합니다. 컬러맵 데이터가 있는 서브플롯 하나와 조명 강도가 있는 다른 서브플롯, 총 두 개의 서브플롯을 생성합니다.

## Illuminate the scene from the northwest
ls = LightSource(azdeg=315, altdeg=45)

fig, axs = plt.subplots(ncols=2, nrows=2)
for ax in axs.flat:
    ax.set(xticks=[], yticks=[])

axs[0, 0].imshow(z, cmap=cmap)
axs[0, 0].set(xlabel='Colormapped Data')

axs[0, 1].imshow(ls.hillshade(z, vert_exag=ve), cmap='gray')
axs[0, 1].set(xlabel='Illumination Intensity')

blend_mode를 "hsv"로 설정한 서브플롯 하나와 "overlay"로 설정한 다른 서브플롯, 총 두 개의 서브플롯을 더 생성합니다.

rgb = ls.shade(z, cmap=cmap, vert_exag=ve, blend_mode='hsv')
axs[1, 0].imshow(rgb)
axs[1, 0].set(xlabel='Blend Mode: "hsv" (default)')

rgb = ls.shade(z, cmap=cmap, vert_exag=ve, blend_mode='overlay')
axs[1, 1].imshow(rgb)
axs[1, 1].set(xlabel='Blend Mode: "overlay"')

플롯 표시

마지막으로, plt.show()를 사용하여 플롯을 표시합니다.

plt.show()

요약

이 랩에서는 Python Matplotlib 을 사용하여 음영 기복 플롯을 생성하는 방법을 배웠습니다. 샘플 데이터를 로드하고 LightSource 클래스를 사용하여 다양한 음영 기법을 적용한 네 개의 서브플롯을 생성했습니다. 그런 다음 plt.show()를 사용하여 플롯을 표시했습니다.