원문 캡처 · a5geo.org
원문 캡처 · a5geo.org

지리 정보를 오각형 셀로 표현하는 격자 시스템 A5가 v1.0을 출시했다. 셀 묶음의 집합 연산과 공간 계층 기능을 추가했고, 앞으로 격자 배치와 셀 ID를 고정하기로 했다. 다만 새 공간 채움 곡선을 도입하면서 기존 셀 ID가 바뀌어 업그레이드가 필요한 사용자는 마이그레이션 안내를 확인해야 한다.

A5는 지구상의 위치·선·다각형 영역을 하나 이상의 오각형 셀로 나타내며, 각 셀은 64비트 정수로 표현된다. 제작자는 이를 이산 전역 격자 시스템(DGGS)의 한 종류로 설명한다. v1.0에서는 셀 집합인 커버링을 대상으로 합집합, 교집합, 차집합, 포함·중첩 검사, 셀 수와 면적 계산 기능을 제공한다. 압축된 데이터를 풀지 않고도 이 연산을 수행해 수십억 개 셀을 처리할 수 있다고 밝혔다. 커버링 처리 예시에서는 데이터베이스 질의 결과를 합친 뒤 다각형이나 구형 영역과 교차시키고, 그 결과로 점을 필터링하는 흐름을 소개한다.

A5의 계층은 공간적으로 정확히 겹치는 방식이 아니라 논리적으로 정의된다. 오각형을 더 작은 오각형으로 정확히 분할할 수 없기 때문이다. 새 cellToSubcells 함수는 셀의 중심점을 기준으로 올바른 커버링을 만들며, 기존 cellToChildren API보다 느리다. 반대 방향의 cellToSupercell도 추가됐다.

제작자에 따르면 모든 해상도에서 셀은 같은 면적이며, v1.0에서는 모든 셀이 같은 오각형 위상을 갖는다. 이는 12개의 오각형 셀이 포함돼 동일 면적 보장을 깨뜨리는 육각형 DGGS와 대비된다고 설명했다.

성능 개선의 기반은 셀의 인덱스 순서를 정하는 새로운 테오헤드럴 공간 채움 곡선이다. 이 곡선은 자기 자신과 교차하지 않으며 셀을 대략적인 공간 계층에 따라 묶는다. 제작자는 이 특성이 다각형 내부 셀을 찾을 때 비용이 큰 플러드 필을 피하는 데 쓰인다고 설명했다.

벤치마크는 영국·프랑스·브라질·미국·호주의 경계를 채우는 호출을 각 해상도에서 측정했다. Apple M1 Pro에서 네이티브 라이브러리를 사용했고, A5 1.0.0·0.10.1은 Rust, H3 4.5.0은 C 라이브러리와 h3-py의 NumPy API, S2는 C++ 라이브러리와 s2geometry 0.14.0 Python 바인딩으로 시험했다. 반복 실행에서는 가장 빠른 시간을 기록했고, 2초가 넘는 호출은 한 번만 실행했다. 한 번의 호출이 1분을 넘으면 중단했으며 A5는 6초 기준을 적용했다. 제작자는 이전 A5와 현재 H3는 셀 수가 100만 개를 넘으면 다각형 채우기가 실용적으로 느려지는 반면, S2와 새 A5는 10억 개까지 처리할 수 있다고 밝혔다. 구체적인 측정값은 원문에 제시되지 않았다.

A5 생태계에는 DuckDB, R, QGIS 구현과 TypeScript·Rust·Python 라이브러리가 있다. 화재 감지 자료를 시각화하는 FIRMS Explorer는 2000년 이후 전 세계에서 수집된 6억3100만 건을 A5로 집계한다. 관련 도구로는 Geoparquet.io, Portolan, deck.gl의 A5Layer 등이 소개됐다. A5 변경 사항과 기술 문서에서 자세한 내용을 볼 수 있다.