환경과 관련된 계측 데이터에는 풍속, 풍향, 온도, 미세먼지, 오존농도 등이 있습니다. 이러한 계측 데이터는 일정한 시간 주기로 측정되고 측정된 값은 관련된 시스템의 서버에 저장되어, 이를 필요로 하는 곳에서 활용할 수 있도록 다양한 방식으로 제공되는데요. 제공되는 방식은 파일 기반으로 다운로드 받을 수 있거나 OpenAPI 형태로 효과적으로 서비스 받을 수 있습니다.
계측 데이터는 공간 상에 특정한 위치에 계측기를 설치하여 측정되는데요. 측정되지 못하는 지점에 대한 계측값은 이미 계측된 다른 가까운 지점들을 이용하여 보간(Interpolation)됩니다. 공간에 대한 보간 알고리즘은 Spline, Kernel Density, IDW, Kriging 등이 있고 각 보간 알고리즘마다 하나의 좋은 주제로써 추후 시간을 내어 연구해 볼만합니다.
이 글은 이러한 환경과 관련된 계측 데이터를 보간하고, 보간된 결과를 웹에서 누구나 쉽게 조회할 수 있도록 지도로 서비스할 수 있는 TMS 형태로 가공하여 OpenLayer나 Leaflet와 같은 가장 많이 사용하는 오픈소스 기반의 클라이언트 지도 엔진에서 활용하는 것에 대한 내용을 정리해 보았는데요. 각 처리 과정에서 활용한 툴은 자체적으로 개발된 엔진을 이용하여 보다 빠르게 처리할 수 있었습니다.
최종적으로 웹 기반의 지도로 서비스될 계측 데이터는 ‘온도’로 하였습니다. 전세계의 온도 데이터는 다양한 경로를 통해 다운로드받을 수 있습니다. 아래의 그림은 전세계의 위경도에 대해 1도마다 측정된 온도 데이터를 보다 쉽게 보간할 수 있도록 SHP 파일 형태로 변환하는 내용입니다.
온도에 대한 계측 지점에 대한 온도값 속성으로 단위가 켈빈인 K 값을 담고 있습니다.
이제 이 계측값에 대한 SHP 파일을 보간을 통해 모든 지점에 대한 계측값을 계산할 수 있는데요. 아래의 그림은 보간 방법 중 IDW 알고리즘을 사용한 것으로, 그 결과에 대해 의미있는 색상을 적용해 표현한 것입니다.
보간된 데이터는 그리드(Grid) 형태입니다. 이를 TMS 형태의 격자로 가공하기 위해 아래의 화면과 같이 Mr.Tiler-Xr이라는 타일맵 가공툴을 이용해 가공합니다.
이렇게 가공된 TMS 형식의 타일맵에 약간의 투명도를 주어 OpenLayers를 이용해 OpenStreetMap을 배경지도 상에 정확히 중첩되는지 확인한 화면은 아래와 같습니다.
추후 이러한 일련된 과정을 자동화하여 주기적으로 들어오는 계측값을 자동으로 TMS 형식의 타일맵으로 가공해 서버측에 저장해 두는 기능을 고려하고 있습니다.