🏞️ GIS & RS/📚 GIS (지리정보시스템)

[GIS] 우버의 H3 grid와 파이썬 패키지

김 홍시 2023. 2. 10.
반응형

 

 

 

 

 

 

 

https://youtu.be/ay2uwtRO3QE

 

1. H3란 무엇인가

  • 정의:
    Uber가 개발한 Hexagonal Hierarchical Spatial Index 시스템.
    지구 표면을 6각형 그리드(hexagon grid) 로 나누어 계층적으로 관리하는 오픈소스 공간 인덱스 라이브러리.
  • 개발 배경:
    • Uber는 차량 위치, 수요 예측 등을 위해 지구 표면을 정교하고 일관되게 분할하는 방법이 필요했다.
    • 기존 사각형 격자(grid)는 왜곡이 크고, 정밀한 공간분석에 한계가 있었다.
    • 이를 해결하기 위해 H3를 개발.

2. 왜 6각형인가?

  • 육각형의 장점
    • 주변 이웃(cell neighbors)이 모두 동일한 거리와 방향에 가까움.
    • 구(Sphere) 표면에 배치할 때 왜곡이 사각형보다 적음.
    • 모자이크 구조가 자연스러워 이동성과 연결성을 나타내기에 적합.

3. H3의 구조

  • 기본 원리
    • 지구를 구형으로 보고, 이를 20개의 정오각형으로 구성한 이십면체(icosahedron) 로 근사화.
    • 각 면을 반복적으로 육각형으로 세분화.
    • 각 육각형에 고유 ID(인덱스) 부여 → 데이터베이스에서 공간 데이터 관리 용이.
  • 해상도(resolution)
    • 레벨이 높아질수록 세분화(Resolution 0 ~ 15까지).
    • Resolution 0: 매우 큰 육각형
    • Resolution 15: 수 미터 단위의 매우 작은 육각형

4. H3의 특징

  • 공간 계층구조 지원:
    부모 → 자식 → 손자 등으로 관계 추적 가능.
  • Fast neighbor lookup:
    주변 셀 탐색이 빠르고 효율적.
  • 정확한 공간 조합:
    폴리곤을 효율적으로 셀들의 집합으로 표현 가능.
  • 오픈소스:
    누구나 사용 가능, 다양한 언어(Python, C, JavaScript 등) 지원.

5. H3 활용 사례

  • Uber:
    • 승차 수요 예측
    • 차량 배차 최적화
    • 이동 패턴 분석
  • 기타:
    • 도시 데이터 시각화 (예: 인구밀도 맵)
    • 이동성 데이터 분석 (ex: Citymapper, mobility reports)
    • 커버리지 분석 (ex: 통신망 커버리지)

6. 요약

"H3는 지구를 6각형 기반으로 계층적으로 인덱싱하여, 대규모 공간 데이터를 효율적으로 저장·탐색·분석할 수 있게 한 Uber의 오픈소스 기술."

 

 

 

 

 

 

H3는 우버가 개발한 육각형 지리공간 인덱스 시스템이다. 지구 표면을 다양한 해상도의 육각형 그리드로 공간 분할할 수 있어 지리적 데이터를 효율적으로 표현하고 빠른 근접 검색을 수행할 수 있는 공간 채우기 곡선을 제공한다. 이것은 주소나 GPS 좌표 세트와 같은 객체의 지리적 위치를 식별하고 거리 계산, 공간 집계 및 인덱싱과 같은 공간 연산을 수행하는 데 필요한 매핑 및 지오코딩과 같은 작업에 유용하다. H3는 오픈소스 소프트웨어로 GIS, 지리, 물류, 교통 등 우버를 넘어 다양한 애플리케이션에서 사용할 수 있다.

 

aggregation

도시의 자동차 위치와 같은 위치 데이터 분석은 위치를 버켓팅하여 수행할 수 있습니다. ( Sahr et al., 2003 ) 정규 그리드를 사용하면 부드러운 그라데이션과 셀 간의 차이를 측정할 수 있습니다.

해당 그리드 시스템의 셀 모양은 중요한 고려 사항입니다. 단순화를 위해 삼각형, 사각형 또는 육각형과 같이 규칙적으로 타일링되는 다각형이어야 합니다. 이 중 삼각형과 사각형은 서로 다른 거리를 가진 이웃을 가지고 있습니다. 삼각형의 거리는 세 가지이고 사각형의 거리는 두 가지입니다. 육각형의 경우 모든 이웃은 등거리에 있습니다.

이 속성을 사용하면 움직임을 더 간단하게 분석할 수 있습니다. 육각형은 이웃에 가까운 원의 고리를 확장하는 속성이 있습니다.


육각형의 모든 6개 이웃(링 1)

육각형은 또한 공간을 최적으로 채웁니다. 평균적으로 다각형은 정사각형 타일보다 오차가 적은 육각형 타일로 채워질 수 있습니다.

 

기계 학습

H3는 공간 데이터에 기계 학습을 적용하는 데 매우 적합합니다. 컨볼루션 과 같은 컴퓨터 비전의 기술을 H3에서 정의한 픽셀 그리드에 적용할 수 있습니다.

H3는 컨볼루션 수행에 사용할 이웃( )을 찾는 kRing기능과 인덱스를 다른 컴퓨터 비전 알고리즘이 실행될 수 있는 2차원 IJ 좌표 공간으로 변환하는 기능을 가지고 있습니다.

 

 

 

 

 

H3을 파이썬에서도 사용할 수 있다. (아래 참고)

https://pypi.org/project/h3/

 

h3

Hierarchical hexagonal geospatial indexing system

pypi.org

 

h3 깃허브

https://github.com/uber/h3

 

GitHub - uber/h3: Hexagonal hierarchical geospatial indexing system

Hexagonal hierarchical geospatial indexing system. Contribute to uber/h3 development by creating an account on GitHub.

github.com

 

h3 홈페이지

https://h3geo.org/

 

H3 | H3

Hexagonal hierarchical geospatial indexing system

h3geo.org

 

h3 안내서

https://h3geo.org/docs/

 

Introduction | H3

H3 is a geospatial indexing system that partitions the world into hexagonal cells. H3 is open source under the Apache 2 license.

h3geo.org

 

 

 

 

 

반응형

댓글