일조시간
은 태양의 직사광이 지표면에 비친 시간을 의미하며 농업, 에너지, 관광 등 다양한 분야에서 중요한 기상 요소입니다. 그러나 기상청 데이터에서 일조시간을 제공하지 않아 활용에 한계가 있습니다. 특히, 일조시간은 지형적 특성과 구름량에 따라 공간적 변동성이 크지만, 기상 관측소 간 간격이 넓어 정확한 분포를 파악하기 어렵습니다. 이에 본 연구에서는 하늘 상태 정보와 지형의 음영기복도를 결합하여 보다 정밀한 일조시간
을 추정하고 이를 토대로 일조시간 보간도
를 구축하고자 합니다.
용어 설명
- 일조시간 : 태양의 직사광이 지표면에 비친 시간
- 음영기복도 : 지형의 표고에 따른 음영효과를 시각적으로 표현함으로써 2차원 표면의 높낮이를 3차원으로 보이도록 만든 영상 또는 지도
1. 활용 데이터
일조시간 추정을 위해 사용한 데이터는 아래 표와 같습니다.
데이터 종류 | 설명 |
---|---|
DEM 데이터 | 수치표고모델(Digital Elevation Model)의 약어이며, 수치지면자료를 이용해 제작한 지표 모형 |
상주시 행정구역 경계 데이터 | 상주시의 행정구역 경계를 공간 좌표 정보로 제공하는 지리정보 Shapefile 형식 데이터 |
상주시 30m 단위 격자 데이터 | 상주시 전역을 30m X 30m 크기의 격자로 나누어 공간 분석에 활용할 수 있도록 구성된 지리정보 데이터 |
기상청 단기예보 데이터 | 기상청에서 제공하는 5km 단위 격자 기반의 단기 예보 데이터로, 기온, 강수량, 풍속, 하늘상태 등 기상정보를 포함 |
2. 구축 프로세스
5km × 5km 격자의 기상청 단기예보 데이터에서 제공하는 하늘 상태 정보를 활용하여 고해상도 일조시간 보간도를 구축하는 프로세스를 제안합니다. 먼저 하늘 상태에 대한 보간처리를 수행하고, 시간대별 태양의 방위각과 고도를 계산합니다. 이렇게 산출된 태양 위치 정보를 바탕으로 음영기복도를 활용하여 매 시간 일조시간을 산출하며, 동시에 운량계수를 보정하여 구름의 영향을 반영합니다. 최종적으로 일/출몰 시간대별 전처리를 거쳐 30m × 30m 해상도의 누적 일조시간 보간도를 구축합니다.

2.1. 하늘상태 데이터 공간보간 처리
기상청 단기예보 데이터는 일조시간 데이터가 존재하지 않으므로, 하늘상태 데이터를 활용하여 일조시간을 보간합니다. 하늘 상태에 따른 운량 효과를 구역별로 적용하기 위해, 운량 보정계수를 DEM 해상도에 맞춰 공간 보간 처리 후 시간대별 운량 보정이 적용된 DEM 데이터를 구축합니다 (김승호 & 윤진일, 2016).

2.2. 시간대별 태양 방위각 및 고도 산출
한국 천문연구원 출몰시각 정보 API를 활용하여 해당 일자의 일출몰 시각을 산출합니다. 그리고 Python pysolar
패키지를 이용하여 해당 날짜의 일출몰 시각 사이의 시간대별 태양 방위각 및 고도를 산출합니다.
from pysolar.solar import get_altitude, get_azimuth
from datetime import datetime
import pytz
# 위치와 시간 지정
latitude = 37.5665 # 위도 (예: 서울)
longitude = 126.9780 # 경도 (예: 서울)
utc = pytz.utc # UTC 시간대
time = utc.localize(datetime(2025, 1, 1, 12, 0, 0)) # 시간 (UTC 기준, 시간대 추가)
# 태양의 고도와 방위각 계산
altitude = get_altitude(latitude, longitude, time)
azimuth = get_azimuth(latitude, longitude, time)
2.3. 시간대별 일조시간 산출
DEM
데이터는 2차원 배열의 형태로 각 픽셀이 해당 위치의 고도값을 가지고 있으며, 해당 값을 활용하여 경사도(Slope) 및 향(Aspect) 계산 후 음영기복도를 생성합니다. 음영기복도는 0~255
범위의 값을 가지며, 255
에 가까울 수록 휘도가 높음을 의미합니다. 음영기복도 계산 수식은 아래와 같습니다.

변수 | 설명 |
---|---|
zenith | 태양 천정각 (90° - 고도각) |
az_rad | 태양 방위각 (라디안) |
slope | 경사도 (라디안) |
aspect | 향 (라디안) |
음영기복도 값을 독립변수(0~255
), 일조시간을 종속변수(0~60분
)로 설정하여 일조시간을 도출합니다.

아래는 특정 시간대의 상주시 음영기복도입니다. 밝을수록(255에 가까운 흰색) 일조 시간이 길고, 어두울수록 짧음을 나타냅니다. 이는 태양의 고도와 방위각, 그리고 지형의 영향을 받습니다.

2.4. 하늘상태 보정
하늘상태 보정계수를 적용하여 최종적으로 일조시간을 산출합니다.
- 산출된 일조시간 : 45분
- 하늘 상태 : 구름 조금
- 최종 일조시간 = 45분 x 0.683(하늘 보정계수) = 30.7분
2.5 시간대별 처리 및 누적
일출/일몰 시간이 정각이 아닐 경우, 비일조시간을 제외하여 보정 후 일조시간을 산출합니다.
✔ 일몰시각이 18:20 인 경우
- 산출된 18시의 일조시간 : 45분
- 하늘 상태 : 구름 조금
- 전체 60분 중 20분만 일조 가능하므로, 45분 X (20/60) = 15분
2.6. 최종 일조시간 산출
최종적으로 시간대별 일조시간을 누적하여 일 단위 일조시간 보간도를 구축합니다. 산출된 값은 30m 단위 격자와 매칭하여 최종 일조시간 보간도를 구축합니다.
3. 결과 및 비교
위 과정을 통해 산출된 일조시간의 신뢰성을 평가하기 위해 강한 대비를 보이는 맑은 날과 구름낀 날의 보간도를 비교하고, 맑은날 일조시간이 더 높은 상태로 유지되는 것을 확인할 수 있습니다.
맑은날 | 구름낀 날 |
---|---|
![]() |
![]() |
4. 결론 및 제언
본 연구에서 구축한 일조시간 보간도는 조기경보 시스템의 보간도와 유사한 분포를 보였으며, 실질적인 활용 가능성을 확인하였습니다. 하늘상태와 음영기복도를 결합한 방법론은 상주시 처럼 특히 산악지형이 많은 한국의 지형 특성에 적합한 것으로 판단됩니다. 하지만 기상청 제공 일조시간 관측 지점이 부족하여 정확성 검증에는 한계가 존재하며, 다양한 기상 조건에서의 추가 테스트를 통해 모델의 신뢰성을 향상시킬 필요가 있습니다.
참고 문헌
김승호, 윤진일, 2016: 하늘상태와 음영기복도에 근거한 복잡지형의 일조시간 분포 상세화. 한국농림기상학회지 18(4), 233-241.