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 익스텐션을 활용하여 다양한 종류의 데이터를 공간 정보 위에 나타내고, 시각화 된 데이터를 분석과 의사결정에 활용해보세요.