개요

구현된 Earth 사이트 링크

Node.js 와 D3.js 기반으로 구현된 Earth 모듈(nullschool) 에 GFS(Global Forecast System)으로 부터 6시간 간격으로 업데이트되는 전세계 기상예보 데이터를 이용하여 지도(구) 기반으로 표출하는 시스템입니다.

현재는 지상데이터(Surface)를 이용하여 지도 상에 위치에 따른 풍향, 풍속을 나타내며, 흐름을 표출합니다. 미국 기상청으로부터 주기적으로 기상정보를 수집한 후 서비스를 위한 변환을 자동화하는 작업을 진행 중입니다. 향후 게시되는 링크를 통해 다양한 기상정보의 조회 서비스를 제공할 예정입니다.

NullSchool 활용을 위한 설정 등은 하단에 기술된 단락을 참조하십시오. 

 

 

NullSchool 설치 및 셋팅

리눅스 서버에 node.js 와 npm 을 설치한 후에, github 로 부터 "earth" 를 복사하고 관련된 라이브러리 등을 설치합니다. 설치 및 환경 셋팅을 위한 명령어는 다음과 같습니다. 

git clone https://github.com/cambecc/earth cd earth npm install

※ 참조 사이트: https://github.com/cambecc/earth 

earth 모듈 설치가 성공적으로 완료되면, <earth 설치 디렉토리> 로 이동하여 다음과 같은 명령어를 실행하여 웹서버를 실행합니다.

node dev-server.js 8080 

웹서버가 실행되면, 다음과 같은 주소로 접속하여 서비스를 확인할 수 있습니다.

http://localhost:8080

서버는 정적 S3 버킷 호스팅을위한 스탠드 인 역할을 하기 때문에 거의 서버 측 로직을 포함하지 않으며,  "earth/public" 디렉토리에 있는 모든 파일들이 주로 사용됩니다. 주요 소스코드는 "public/index.html" 및 "public/libs/earth/*.js" 를 참조하십시오. 데이터 파일은 "public/data" 디렉토리에 있으며, "data/weather/current" 로 실시간으로 변환되어 전송된 날씨 레이어가 표출됩니니다. 

 

기상 데이터 생성 방법

기상 데이터는 미국 기상청 (National Weather Service)에서 운영하는 GFS (Global Forecast System)에 의해 생성된 데이터를 이용합니다. 예보는 매일 4 번 생성되며 NOMADS (http://nomads.ncep.noaa.gov/)에서 다운로드 할 수 있습니다. 파일은 GRIB2 형식이며 300 개가 넘는 레코드가 있으며, 특정 등온선에서 풍력 데이터를 시각화하기 위해 이러한 기록 중 일부만 필요합니다. 다음과 같은 명령어는 1000 hPa 바람 벡터를 다운로드하고 grib2json 유틸리티를 사용하여 JSON 형식으로 변환합니다. 
YYYYMMDD=<a date, for example: 20190115>
curl "http://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_1p00.pl?file=gfs.t00z.pgrb2.1p00.f000&lev_10_m_above_ground=on&var_UGRD=on&var_VGRD=on&leftlon=0&rightlon=360&toplat=90&bottomlat=-90&dir=%2Fgfs.${YYYYMMDD}00" -o gfs.t00z.pgrb2.1p00.f000

 

grib2json -d -n -o current-wind-surface-level-gfs-1.0.json gfs.t00z.pgrb2.1p00.f000

 

cp current-wind-surface-level-gfs-1.0.json <earth-git-repository>/public/data/weather/current

 ※ grib2json 모듈 참조 사이트: https://github.com/cambecc/grib2json

 

구현된 Earth 사이트 링크

 

+ Recent posts