ArcGIS API for JavaScript를 활용한 Voxel Layer 시각화 하기

ArcGIS 2.9가 새롭게 발표되면서 Voxel Layer를 ArcGIS Online과 Enterprise Portal 10.9.1을 활용하여 웹에서 공유할 수 있게 되었습니다. Voxel Layer는 대기질, 지하 지질 모델, 수온 등을 시각화하여 주변 공간 정보와 비교하기에 적합합니다.

Voxel 레이어를 웹에 발행하면 Voxel scene layer package(SLPKs) 가 생성되고 JavaScript 응용 프로그램용 커스텀 ArcGIS API를 활용하여 시각화된 3D 데이터를 공유할 수 있습니다. 아직까지는 베타 버전이기 때문에 웹에서는 시각화만 가능합니다.

기존에 ArcGIS Pro에서 드론으로 측정한 대기질 정보를 Voxel Layer로 나타낸 방법에 대해서는 아래의 한국지비에스 블로그 포스팅을 통해 확인할 수 있습니다.

이 글에서는 Voxel Layer를 웹에 발행하여 활용하는 방법을 자세히 알아보도록 하겠습니다.

ArcGIS Pro에서 생성한 미세먼지 측정 보간 Voxel Layer를 웹에서 공유하기 위해 AGOL에 발행하면 다음과 같은 API 가 생성됩니다.

AGOL에 발행된 Voxel Layer API

이 피처레이어를 ArcGIS API for JavaScript로 시각화하기 위해서 VoxelLayer 모듈을 스크립트에 로드(load)하고 url을 받아주는 변수를 생성합니다.

‘VoxelLayer’ 모듈 Script에 load

공간정보를 시각화 할 때는 좌표계(spatial reference)가 매우 중요한 요소로 Web Scene에 Voxel Layer를 발행할 때 이 샘플은 WKID 4326으로 발행되었습니다. 정확한 좌표계로 레이어를 발행한 후 property도 스크립트에 지정해주어야 Web Scene에 나타납니다.

Voxel Layer 변수를 WebScene의 layers에 추가
Voxel Layer는 Sceneview의 viewingMode property를 “local”로 지정해 주어야 한다.

지금까지 ArcGIS API for JavaScript를 통해 ArcGIS의 새로운 공간정보 표출 방식을 웹상으로 공유하고 시각화하여 효과적으로 공간 정보를 나타낼 수 있는 방법을 알아보았습니다.

아래 지도를 클릭하면 드론으로 측정된 대기질 정보를 ArcGIS Pro에서 보간법으로 분석한 상층부의 대기질을 3D로 확인할 수 있습니다. Esri에서는 지속적으로 Voxel Layer에서 상세 정보를 팝업을 통해 확인하는 등의 기능을 추가할 예정에 있습니다. 해당 기술을 통해 공간정보를 3D로 분석하여 해수면 상승, 지구 온난화 등에 효과적으로 대비할 수 있기를 기대합니다.

위 이미지를 클릭하면 해당 지도로 이동합니다.

 

ArcGIS Data Interoperability 익스텐션

Data Interoperability 란?

ArcGIS Data Interoperability 익스텐션은 사용자가 여러 소스와 형식의 데이터를 쉽게 읽고, 조작하고, 병합할 수 있는 다용도 솔루션입니다. Data Interoperability 익스텐션은 Safe Software의 FME Workbench를 사용하며 ArcGIS를 통해 활용합니다.

Data Interoperability는 여러 소스(아래 그림에서 소스 A과 B로 표시됨)의 데이터를 읽고, Transformer(변환모듈)를 사용하여 요구 사항에 맞게 데이터를 변경하거나 재구성한 후 출력 위치(C)에 기록함으로써 데이터 변환 및 통합을 수행합니다:

왜 Data Interoperability를 사용하나요?

  • Data Interoperability는 Oracle Database, JSON 파일 또는 API과 CAD와 같은 다양한 데이터 형식을 활용
  • 아래 사진과 같은 그래픽 모델을 쉽게 읽을 수 있음
  • 유지관리에 용이
  • 자체 문서화
  • 데이터 변환 및 통합의 효율성
  • 활발한 사용자 커뮤니티 그룹

Data Interoperability는 어떻게 사용하나요?

Data Interoperability는 다양한 방법으로 사용될 수 있으며 특히 공간 정보 작업을 편리하게 수행할 수 있습니다. 이 익스텐션을 활용할 수 있는 방법의 예시는 다음과 같습니다:

  • 데이터 변환 및 프로세스 자동화
  • ETL(Extraction, Transformation, Loading) 프로세스
  • 관리자 혹은 사용자에게 알림 메일 송부
  • 데이터 분석 및 분류

프로세스의 예시

1. 3D 빌딩 생성 프로세스

아래의 예시는 시각화를 위해 2D 건물 외곽선을 3D로 변환하는 프로세스입니다. 입력하는 소스는 ① 건물 ID, 높이 등 기본정보를 포함하는 CAD/DWG 파일, ②건물 ID와 건물 높이를 포함하는 CSV 파일을 활용합니다. 이 프로세스를 요약하면 데이터를 읽고 건물 ID를 키 값으로 하여 ①과 ②를 병합한 후, 데이터를 3D로 변환하고 ESRI의 ArcGIS Pro 소프트웨어에서 표출할 수 있도록 출력합니다.

3D 빌딩 생성 프로세스 예시

소스 데이터는 속성 테이블, 그래픽 및 개별 피쳐 정보를 시각화할 수 있는 Reader Transformers를 사용하여 읽습니다.

① 소스 데이터를 읽고 병합합니다.
데이터 값과 지오메트리는 Data Interoperability  익스텐션에서 시각화할 수 있습니다
Extruder Transformer를 사용하여 데이터를 3D로 변환합니다
ArcGIS Pro를 사용하여 원하는 형식으로 출력합니다

2. 날씨와 대기질 이메일 알람 설정

Data Interoperability 익스텐션은 API 데이터를 빠르고 효율적으로 읽고 다양한 방법으로 출력할 수 있습니다. 다른 데이터 변환 예시는 JSON API에서 날씨 및 대기질 데이터를 읽고 활용하는 것입니다. 오픈소스로 제공되는 JSON 데이터를 표 형식으로 전환하여 일기예보 및 대기질과 일치하는 온라인 이미지와 결합한 후 HTML로 변환합니다. 그리고 사용자에게 매일 아침 해당 정보를 이메일로 보내도록 자동화할 수 있습니다. 이는 관리자에게 시스템 오류를 전달하는 방법으로 응용되거나 집중호우 알림 같은 재난 알림 등에도 활용될 수 있습니다.  

날씨와 대기질 이메일 알람 프로세스 예시
해당 프로세스의 이메일 알람 결과 예시

3. 추가활용예시

  • 포인트, 선 및 폴리곤 생성:
    • Data Interoperability는 VertexCreator Transformer를 사용하여 Lat/Lon 또는 X/Y 값으로부터 포인트 데이터를 구축할 수 있습니다 (측정 지점, POI등).
    • 보유하고 있는 데이터가 시작 및 끝 노드인 경우, LineBuilder Transformer를 사용하여 선으로 변환할 수 있습니다 (경로 생성, 도로 등).
    • 모양을 구성하는 선이 있는 경우, AreaBuilder Transformer를 사용하여 폴리곤으로 변환하여 활용할 수 있습니다.
  • SQL:
    • 프로세스 시작 전에 WHERE 절을 사용하여 분석에 필요한 데이터만을 필터링하여 최적화 할 수 있습니다.
    • 프로세스가 끝나고 데이터를 출력하기 전이나 후에 쿼리를 실행합니다.
    • 프로세스 중에 SQL 쿼리를 실행하여 여러 테이블을 조인하거나 일부 공간 쿼리를 실행하거나 신규 테이블을 생성합니다.
  • 스크립팅(Scripting) 기능:
    • SQL 활용과 함께 Data Interoperability는 워크벤치 내에서 python과 R이 모두 실행 가능합니다.
    • 이는 사용자가 보간법 등의 통계 분석을 실행할 수 있음을 의미합니다.
  • 데이터 마이그레이션(Data Migration):
    • Data Migration에 매우 유용하게 사용됩니다. 여러 데이터 소스 형식에서 읽거나 하나의 형식으로 읽어서 엔터프라이즈 데이터베이스나 클라우드로 옮길 수 있습니다.
  • HTTP 호출 또는 XML 파싱(Parsing)
  • JSON 파싱(Parsing): 익스텐션의 JSONFeature Reader를 사용하면 JSON을 ArcGIS에서 활용할 수 있는 피처테이블(Feature table)형태로 변환할 수 있습니다. 중복된 목록이 있을 경우 ListExploder Transformer를 사용하여 필드를 정리할 수 있습니다.

강력한 ArcGIS Data Interoperability 익스텐션을 활용하여 다양한 종류의 데이터를 공간 정보 위에 나타내고, 시각화 된 데이터를 분석과 의사결정에 활용해보세요.

 

KBS 재난방송센터 재난현황판 2021년 개선 (Experience Builder/대시보드)

한국지비에스(GBS Korea)는 2020년 KBS 재난미디어센터에 ArcGIS를 도입 및 콘텐츠를 구축하고 실시간으로 재난 정보를 전달하며 시청자들에게 GIS에 대해 더 알리는 계기가 되었습니다. 2021년에 한국지비에스(GBS Korea)에서는 2020년도 1차 사업에 이어 GIS 콘텐츠의 고도화를 진행하였습니다.

2021년 재난현황판 고도화를 위해 ArcGIS Enterprise의 어떤 기능들이 활용되었는지 살펴보도록 하겠습니다. 현황판은 클라이언트 요청을 구현하기 위하여 일부 위젯을 개발하여 사용하기도 하였지만 유지관리의 용이성을 위하여 기존 Experience Builder 앱(이하: ExB)와 Dashboard에 내장된 위젯을 주로 사용하였습니다.

2020년 도입된 재난현황판 태풍 대시보드 화면
2020년 도입된 재난현황판의 미세먼지 대시보드 화면

Experience Builder (ExB)

ArcGIS Enterprise 10.8.1의 ExB은 캐시 속도가 빠르고 여러 가지 위젯을 손쉽게 연결해줄 수 있는 장점이 있지만 비교적 최근에 출시되어 내부에 포함된 위젯이 아직은 제한적입니다. 그러나 ExB의 빠른 화면 전환과 여러 페이지를 조합할 수 있는 기능 때문에 여러 대시보드 앱을 만들고 하나의 ExB에 embed 하여 현황판을 표시하였습니다. ArcGIS Enterprise 10.9부터는 ExB에 여러 기능이 추가가 되어 대시보드 없이 구현이 더욱 용이해질 것으로 기대됩니다.

하나의 ExB에 여러 대시보드를 담기 위해서는 섹션(Section) 위젯을 이용하여 뷰(View) 혹은 페이지(Page)를 여러 개 추가하는 방법이 있습니다. 2021년 현황판 고도화를 진행하면서 KBS에서는 페이지를 추가하여 화면을 구성하였는데 뷰와 페이지의 장단점에 대해 간략히 살펴보겠습니다.

  • : 페이지 전체가 아닌 해당 페이지 안의 섹션만 새로고침을 하기 때문에 더 빠른 앱 성능을 제공합니다. 또한 뷰 탐색 위젯을 하나만 사용하기 때문에 ExB의 디자인 변경이 필요할 때 수정해야 할 항목이 섹션과 뷰 탐색 위젯 두 개여서 수정이 용이합니다. 하지만 ArcGIS Portal이 아닌 외부 URL로 해당 ExB에 접근이 필요할 경우 각 뷰마다 로그인 정보가 요청됩니다.
  • 페이지: 여러 페이지를 추가하여 페이지 간 이동할 시 뷰보다는 초기 로딩에 1~3초 정도 소요되지만 초기 로딩 이후에는 신속한 화면 전환이 이루어 집니다. 페이지는 ExB 랜딩페이지 로그인을 하면 추가 로그인 요청이 없다는 점에서 UX가 편리합니다. 2021년 사업 고도화 진행 시 내부 여러 부서에서 접근이 용이하도록 로그인 편의성 개선에 중점을 두었기에 페이지로 현황판을 구성하였습니다.

ArcGIS 대시보드 (HTML/Arcade)

2021년 프로젝트 디자인 팀과 협업을 통해 각 재난별로 통일된 디자인을 반영하였습니다. 그러나 ArcGIS Enterprise 10.8.1의 ExB나 기본 대시보드 하나만으로는 표현하기 어려운 요소들이 있었습니다. 한국지비에스는 대시보드 텍스트 에디터에서 제공하는 기본 HTML을 이용하여 디자인 가이드를 반영하여 대시보드를 구축하였습니다. 아래는 2021년 ArcGIS Online(AGOL)에서 제공하는 Arcade도 추가 활용하여 디자인 표현을 반영한 대시보드이며 ArcGIS Enterprise에서도 HTML을 사용하여 유사하게 구현할 수 있습니다.

2021년 ArcGIS Online에 구현된 태풍 대시보드
2021년 ArcGIS Online에 구현된 미세먼지 대시보드

위의 태풍과 미세먼지 대시보드에 동일하게 적용된 HTML은

  • 각 위젯의 제목 부분 HTML 적용(폰트, 색상 통일)
  • 디자인 가이드 반영을 위한 범례 텍스트 HTML 지정

으로 전체 디자인과 레이아웃의 통일성을 위해 세부적으로 HTML을 사용하였습니다.

현재 태풍 예상 경로 리스트 위젯 모음

특히 태풍 대시보드의 태풍 경로 리스트 위젯에서 현재 태풍의 위치를 강조하기 위하여 해당 위젯에서 제공하는 텍스트 편집 툴을 다용하여 다음과 같이 적용하였습니다.

  • <div style = position: absolute > </div> : div 태그의 내용 위치 고정
    • 빨간 상자와 내용을 각각 두개의 div 태그에 나누고 style에 position:absolute로 하여 해당 정보를 강조합니다.
  • <p style= text-indent:-1.7em padding-left:1.7em > </p>: 해당 p 태그의 내용이 두줄 이상으로 표시 될 경우 두 번째 줄 시작점을 들여 씀
    • 내용 텍스트의 각 줄을 p 태그로 감싸주고 style에 text-indent와 padding-left를 작성하면 텍스트 블럭의 좌측정렬을 자동화할 수 있습니다.
  • <img src={url} /> : url의 이미지를 텍스트란에 표시
    • 아이콘 등을 표시하기 위해 작성되었으며, 이미지 path url을 지정하면 해당 이미지가 텍스트 박스에 표기 됩니다.
최근 발생 태풍 위젯

KBS 재난현황판의 경우 실시간으로 데이터를 변환하여 재난정보를 표출하기 때문에 고정된 값을 표출하지 않습니다. 그래서 보기 쉽고 정돈된 리스트로 나타내기 위하여 다음과 같은 HTML을 사용하였습니다.

  • <div style= display: grid > </div>: div 태그 내부의 태그를 테이블 형식으로 표출
    • div 태그의 style에 display: grid 를 작성하면 테이블 형식으로 표현이 되며 grid-template-columns 프로퍼티를 이용하여 테이블 열의 개수와 넓이를 조정할 수 있습니다.
  • <p> </p> : display: grid를 생성할 때 빈 <p> 태그를 생성하여 빈칸 표시. 각 태그마다 기본 설정과 다른 색상과 폰트 지정 가능
    • 빈 <p>태그를 작성하여 텍스트 간의 정렬을 맞추고 날짜 텍스트의 <p> 태그에 폰트 크기와 색상을 지정하여 텍스트별 위계를 나타낼 수 있습니다.
미세먼지 지점별 PM2.5 농도 리스트 위젯

Enterprise 10.8.1에서는 Arcade 기능이 제공되지 않아 농도별 텍스트의 색상을 강조 하는 대신 농도에 따른 심볼과 색상을 보여주는 것으로 대체하였지만 AGOL에 적용된 미세먼지 대시보드의 “지점별 PM2.5 농도” 위젯은 Arcade를 사용하여 조금 더 직관적인 표현을 추가하였습니다.

미세먼지 리스트 위젯의 HTML은 태풍 리스트 위젯과 유사하게
– 두 개의 <div> 태그 와
– style= display: grid 를 사용하여 수시로 변하는 정보 텍스트를 표현하였습니다.
Arcade로 색상을 지정할 때 주의할 점은 바로 라인 항목 템플릿에서 변경되길 원하는 텍스트 색상은 기본 색상으로 지정해주어야 하는 점입니다. HTML 혹은 색상 설정으로 색상을 덮어씌울 경우 Arcade에서 지정된 색보다 우선하게 됩니다.

HTML과 Arcade를 이용하면 ArcGIS의 기본 ExB와 대시보드 앱의 디자인을 더 효율적이고 이해하기 쉽게 표현이 가능해집니다. Arcade는 ArcGIS 플랫폼에서 사용하기 위해 만들어진 언어로 간단한 수학적 계산, 텍스트 조작 등을 할 수 있기 때문에 위에 예시로 나타낸 방법 외에도 다양한 결과를 나타낼 수 있습니다. 또한 많은 종류의 데이터를 지도 위에 효과적으로 시각화 하고 사용자의 요구에 맞게 수정 및 표현할 수 있습니다. 상황에 따라 유연하게 활용되는 Arcade와 HTML을 활용하여 ArcGIS Experience Builder와 Dashboard의 사용을 확장해보세요!

 

드론으로 측정한 3D 대기질 정보를 Voxel 레이어로 보간 및 시각화

Voxel 레이어(3D 볼륨 레이어)는 다차원 공간 및 시간 정보를 3D로 표현하기 위한 환상적인 방법을 제공합니다. Voxel 레이어 기능을 사용하면 데이터 3D로 시각화하고 데이터 필터링 및 시계열 정보를 확인할 수 있습니다. 이 기술은 기후 데이터, 지하 정보, 그리고 사업을 시작하기 가장 적합한 장소를 결정하기 위한 공간 분석과 시간 기반 분석을 시각화하는데 유용합니다.

다음의 예시는 드론이 수집한 다양한 높이에서 pm10(미세먼지)과 pm2.5(초미세먼지) 대기질 수치를 시각화하는 것입니다. 한국지비에스는 한국과학기술정보연구원(KISTI)으로부터 다양한 고도에서의 공기 질에 대한 항공 드론 데이터를 제공받았습니다. 샘플 데이터는 2020년 6월 인천에서 7일 동안 수집되었습니다. 목적은 고도 기록과 대기질 기록 사이의 관계를 찾는 것으로 이 분석과정에서는 표면 및 voxel 시각화 도구를 생성하기 위한 값을 예측하는 데 도움이 되는 3D 보간 방법인 ESRI의 Empirical Bayesian Kriging 3D 도구를 사용했습니다.


아래 Figure 1은 대기질 센서를 갖추고 있는 드론이 하루 동안 자료를 수집한 지점들을 보여줍니다. 고도에 따라 초미세먼지
(pm2.5) 수치를 수집하고 파란색(낮은 값)과 빨간색(높은 값)으로 비교하도록 시각화되었습니다. Figure 2는 pm2.5 값과 고도 사이의 관계를 보여줍니다.

Figure 1: 드론이 캡처한 X, Y, Z 포인트를 보여주는 이미지입니다.
Figure 2: pm2.5와 고도 사이의 관계를 보여주는 산점도입니다.

위의 비디오는 1주일간의 시간 경과에 따른 대기질 변화를 3D로 보여줍니다. 점 데이터로부터 보간된 표면을 만들어 연구 영역의 서로 다른 높이에서 예측 pm2.5 수준을 표시할 수 있습니다. 아래 Figure 3은 높이에 따른 보간된 pm2.5 값을 보여줍니다. 고도가 높아짐에 따라 pm2.5 농도가 증가하는 것으로 보이고 있습니다.

다음으로 Voxel 레이어(netCDF 파일)를 생성하여 데이터를 완전한 3D 볼륨으로 시각화할 수 있습니다. NetCDF/Voxel 레이어는 래스터, 피쳐 레이어 또는 테이블에서 생성될 수 있으며 다차원 공간 데이터 또는 시간 데이터를 저장할 수 있습니다. ESRI의 ArcGIS Pro에는 수직 및 수평 슬라이스, 등각 표면, 각도 또는 횡단면을 만드는 기능을 통해 각 표면을 시각화하는 데 도움이 되는 유용한 도구를 제공하고 있습니다. 아래 Figure 4는 3D 볼륨 레이어의 전체 3D 볼륨(왼쪽)과 기울어진 섹션(오른쪽)을 보여줍니다.

Figure 4: Voxel레이어(왼쪽)와 Voxel레이어의 기울어진 섹션을 표시합니다.

위의 비디오는 Voxel 레이어가 3D 볼륨 데이터를 시각화하는 데 유용하고 물리적으로 경험할 수 없는 조건을 더 잘 이해하는 데 도움이 되는 ArcGIS Pro의 슬라이스 생성 기능을 보여줍니다. Voxel레이어에 시간 요소가 포함된 경우 추가 분석 및 시간 슬라이스를 만들고 시각화할 수 있습니다.

 

인천 부평구 창업편리지도 구축 완료

한국지비에스는 지난 3월 인천 부평구 토지정보과와 함께 공간정보를 활용한 ‘창업편리지도’를 전국 최초로 구축하였습니다. 이는 부평구 소상공인 창업자들이 필요한 정보를 지도 형태로 서비스하고 예비창업자가 이를 활용할 수 있도록 구성되었습니다.

영세 사업자들의 창업수요는 늘어나는 추세인 반면 정보를 얻기 쉽지 않다는 점을 개선하기 위하여 접근하기 쉽고 직관적으로 볼 수 있는 대시보드를 활용하였습니다.

대시보드는 지도상에서 사용자가 원하는 지역으로 이동하였을 때 주변의 분포 현황을 즉각적으로 반영하여 보여줄 수 있습니다. 지도상에 편의점 창업 제한 거리와 담배권 영역을 표시하여 편의점 창업을 희망하는 시민들이 간단하게 창업을 원하는 지역을 검토할 수 있도록 나타내고, 각 편의점 브랜드별 분포 현황도 확인할 수 있습니다.

대시보드에 Survey123 기능을 추가하여 제공되는 서비스에 대한 사용자들의 피드백을 지자체에서 실시간으로 확인하여 추가 콘텐츠 제작에 활용할 수 있도록 하였습니다.

편의점 창업편리지도 대시보드

지역별로 국내 상위 100개 프랜차이즈 업종의 분포 현황을 검토해 볼 수 있는 대시보드도 함께 구성하였습니다. 프랜차이즈 대시보드는 사용자가 원하는 지역으로 확대, 축소를 통해 창업을 희망하는 지역의 주요 분포 업종을 검토하고 창업하고자 하는 업종 및 프랜차이즈를 선택하는 데 참고 할 수 있습니다.

프랜차이즈 창업편리지도 대시보드

또한, ArcGIS Enterprise 에서 제공하고 있는 Sites 기능을 활용하여 각 대시보드와 함께 행정 절차 등 창업 정보를 함께 제공하는 홈페이지를 구성하였습니다. 사이츠(Sites)는 복잡한 HTML코딩없이 홈페이지를 구성할 수 있어 유지관리와 콘텐츠 추가에도 편리합니다. 부평구 창업편리지도 사이트는 부평구청 홈페이지 분야별정보의 ‘경제’ 탭에서 확인하시거나 아래 버튼을 눌러 이동하실 수 있습니다.

ArcGIS Enterprise는 위와 같이 확장성, 신뢰성, 유지관리의 용이성을 기반으로 GIS서버와 작업을 구성할 수 있으며 이를 통해 직관적으로 시각화되는 지도는 여러 분야에서 정보를 제공하는데 활용될 수 있을 것으로 기대됩니다.