XGE 3차 릴리즈 – 밀도계산

XGE에 이번에 추가한 밀도계산 기능을 ArcGIS와 비교해 보았습니다. 아래는 ArcGIS의 Simple 방식의 밀도 분석입니다. 주제는 “교육”입니다. 학교의 분포이겠지요.

참고로 XGE는 국내 최고의 비지니스 GIS 솔루션 기술을 가진 GIS 전문 회사((주)오픈메이트)가 보유한 GIS 엔진의 차기 버전입니다. XGE는 현재 개발단계인지라.. Code Name이고, 추후 멋드러진 이름을 갖게 되겠지요~ ^^

아래는 동일한 데이터.. 즉, 위에 대한 XGE의 결과입니다.

밀도 계산중 심플 방식은 속도는 매우 빠르지만, 그 결과는 그리 Nice~ 하지 않습니다. 아래는 실제 밀도 계산에서 가장 많이 쓰이는 Kernel 방식이며 ArcGIS에서 얻은 결과입니다. 심플 방식에 비해 결과가 Nice~ 하지요..

아래는 위와 동일한 데이터와 밀도 계산을 위한 변수(셀해상도, 계산반경)에 대한 XGE의 결과입니다. 배경이 검정인 이유는 검색반경에 영향을 받지 않아 Null Value인 셀입니다. ArcGIS의 경우 이 Null Value인 셀에 대해서는 가장 낮은 값으로 할당한 색상으로 표현하고 있습니다.

아래는 서울 지역에 대한 은행분포를 나타낸 Kernel 방식의 밀도 계산이며 모두 XGE로 얻은 결과입니다. 감상(?) 해보시길 바랍니다. ^^ ArcGIS에서처럼 Null Value인 셀에 대해서도 최하위 단계의 색상으로 표현하고 있습니다.

25m 해상도, 1000m 검색반경
10m 해상도, 2000m 검색반경
25m 해상도, 3000m 검색반경
25m 해상도, 5000m 검색반경

보시면 은행이 중구에 가장 많이 밀집되어있고 그 다음에 강남구 쪽에 많이 밀집되어 있다는 것을 알 수 있습니다. 밀도 분석은 2차원에서 그 분포에 대한 가중치를 구해 다양한 분석에 활용될 수 있는 조건 계산법입니다.

밀도계산 in ArcGIS

밀도계산의 방식은 Simple 방식과 Kernel 방식이 있습니다. 이 두방식에 대해 ArcGIS에서 처리된 결과 이미지는 아래와 같습니다. 첫번째는 Kernel 방식이고 두번째가 Simple 방식입니다. Simple 방식은 Kernel 방식에 비해 처리 속도가 매우 빠르지만 그 결과는 Kernel에 비해  떨어집니다. 물론 분석 대상이 되는 Point나 Polyline의 개수가 증가할 수록 그 결과의 차이는 줄어들것으로 생각됩니다. XGE에서 밀도계산 기능을 확장단위로 개발하기에 앞서 비교 기준이 되는 결과를 ArcMap에서 살펴봅니다.

밀도 개산의 가장 많은 활용처는 포인트나 폴리라인에 대해 어느 부분에 밀집되어져 있느냐를 시각적으로 효과적으로 파악할 수 있다는 점입니다. 또한 이러한 밀도 개산에 의해 생성된 Grid 데이터를 여러개를 동시에 중첩하여 여러개의 인자들에 대한 복합적인 분석에 매우 효과적으로 활용됩니다. XGE에서는 ArcGIS의 밀도 분석은 물론이고 시각적으로 어느 부분이 가장 밀집도가 높으냐라는 판단이 아니라, 정확히 이 부분이 가장 밀집도가 높다라는 “제시”까지 제공할 예정입니다. “제시”는 기본이 되는 밀도개산 기능이 잘 완료가 되면 쉽게 구현할것으로 판단됩니다.

Density(밀도) Analysis

밀도맵에 대해 고민을 본격적으로 해보고 있는데, 먼저 내가 알고 있는 밀도맵이라는 개념은 틀린 것임을 알았다. 밀도맵이 아닌 밀도분석에 의한 결과라고 해야 옳겠다. 밀도맵은 아래처럼 지도의 영역을 통계수치값에 따라 다른 색상으로 구분해 놓은 맵을 말한다.


밀도 분석에 대해 관심을 가지게 된 이유는 이 밀도 분석을 구현해보고자 함이다. 그러기 위해서는 정확히 밀도 분석이라는 것이 무엇인가 부터 정확히 파악해야 어떤식으로 구현을 할지 알 수 있을 것이기 때문이다.

밀도 분석은 어떤 지점의 현상에 대한 측정된 수량(예를들어 인구수)을 지도 전체에 걸쳐 측정된 수량을 재분배를 해주는 것이다. 재분배는 지도를 일정한 간격의 Grid의 Cell의 값으로써 이루어진다. 아래의 그림이 포인트에 대한 밀도분석의 결과를 나타낸 화면이다.


이런 밀도 분석의 목적에 대해서 알아보자. 밀도 분석에 의한 결과를 Density Surface, 즉 밀도폴리곤이라고 하면… 밀도폴리곤은 측정값을 속성으로 하는 포인트나 라인 피쳐가 어디에 집중되었는가를 보여준다. 예를들어서 하나의 포인트가 어떤 마을을 의미하고 그 포인트 속성으로 마을의 전체 주민수를 나타낸다고 해보자. 여기서 우리는 이 주민수 포인트 데이터로부터 지도 전체에 걸친 주민의 분포수를 알고자 하는 것이다. 이 주민의 분포수를 얻는 방법이 바로 밀도 계산인데, 지도 전체에 걸친 인구의 예측 분포를 보여주는 밀도 폴리곤을 생성할 수 있는 것이 바로 밀도 분석, 밀도 계산이다.

여기서 중요한 것은 밀도 폴리곤은 벡터가 아닌 라스터라는 점이다. 밀도 분석에 의해 라스터를 구성하는 각 Cell에 측정된 값들이 계산되어져 입력되는데, 모든 Cell의 값들을 합한값과 입력 데이터로써의 벡터 데이터의 측정값들의 합은 같다.

밀도 분석을 위해 필요한 입력값은 무엇일까? 앞의 설명으로부터 유추가 가능한데.. 한번 정리를 해보면 아래와 같다.

  • 측정값이 들어가 있는 포인트나 폴리라인 벡터 데이터(여기서는 포인트에 관심을 둠)
  • 측값값이 저장된 속성 데이터에 대한 필드명
  • 밀도 분석 방법(Kernel과 Simple 방법이 있음)
  • 검색 반경
  • 셀의 크기

위의 지식을 기반으로 밀도 분석을 구현해 그 결과를 제시해 보겠다.

먼저 입력 데이터는 아래와 같다. 직관적으로 결과를 보이기 위해 하나의 포인트는 1의 값을 갖는다고 했다.

대략 9500개의 포인트를 사용했다. 화면의 가운데 부분에 5000개의 포인트를 밀집 시켰고 이를 중심으로 2000개의 포인트와 2500개의 포인트를 밀집시켰다. 직접 구현한 밀도 분석은 아래와 같다. 처음 이미지는 Simple 방법이고 두번째는 Kernel 방법이다.



Kernel 방법이 훨씬 정확한 결과를 제시하고 있다는 것을 알 수 있다. 아직은 속도나 퀄러티(밀도의 단계가 10단계로 표출되어야하나 그 이하로 표출(위의 경우 9단계)되는 문제가 발생하는 문제가 있다.

기회가 닿는다면 밀도분석에 대한 Simple 방법과 Kernel 방법에 대한 구현 로직에 대해 설명해 보도록 하겠다.

GIS Korea 2007에서 GeoGraph 발표

6월 13일부터 15일까지 양재동의 AT센터에서 GIS Korea 2007이 열렸습니다. 회사 연구소에서 GIS Korean 2007에서 발표했던 제품중 새로운 제품 두개가 있는데, 그 중에 하나가 바로 제가 담당한 GeoGraph입니다. 웹에서 작동하는 방식으로 시연을 했고 회사 부사장님의 강력한 추진력으로 시연 당일 아침에 터치스크린 장치에서 시연해 시연 효과를 높였습니다. 아래는 대회에서 일반 대중에게 처음으로 공개되어져 시연된 GeoGraph를 이용해 만든 데모의 스크린샷입니다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

아래는 웹 페이지에서 구현된 GeoGraph를 이용한 프리젠테이션 GIS 솔루션의 첫 페이지입니다.

사용자 삽입 이미지

좀더 선명한 이미지를 보길 원한다면 해당 이미지를 클릭하시면 확대됩니다. 간단이 설명하면, 통계정보나 분석된 결과 데이터를 지도위에 다양한 차트나 표, 이미지 등과 같이 사용자가 좀더 효과적으로 정보를 이해시킬 수 있는 프리젠테이션 GIS 솔루션입니다.

사용자 삽입 이미지

끝으로 위의 사진은 GIS Korea 2007의 신기술 발표회에서 GeoGraph를 내용으로 발표했던 제 모습입니다. ^^V