GeoLibre 1.0 release notes / what's new

GeoLibre 1.0은 공간 데이터를 시각화, 탐색 및 분석하기 위해 설계된 클라우드 네이티브 지리 정보 시스템(GIS) 플랫폼의 안정적인 프로토타입입니다. 데스크톱과 웹 환경 모두에서 실행되는 통합 워크스페이스를 제공하며, 현대적인 웹 스택을 활용하여 빠른 로컬 및 클라우드 네이티브 데이터 워크플로우를 지원합니다.

Core Technology Stack

GeoLibre는 응답성과 교차 플랫폼 호환성을 보장하기 위해 고성능 웹 기술의 조합을 사용하여 구축되었습니다:

  • UI Frameworks: Tauri, React, and TypeScript.
  • Mapping Engine: MapLibre GL JS and deck.gl.
  • Data Processing: DuckDB-WASM Spatial for in-browser SQL analysis and Turf.js for vector processing.
  • Sidecar Engines: Optional Python sidecars utilizing rasterio and GeoPandas for advanced raster and vector processing.

Key Features and Capabilities

Data Integration and Formats

GeoLibre 1.0은 로컬 파일 및 원격 서비스를 포함한 광범위한 데이터 소스를 지원합니다. 다음을 처리합니다:

  • Cloud-Native Formats: GeoParquet, FlatGeobuf, PMTiles, Zarr, COG (Cloud Optimized GeoTIFF), and GeoTIFF.
  • Web Services: XYZ, WMS, WFS, WMTS, ArcGIS, and STAC services.
  • Database Connections: DuckDB and PostgreSQL.
  • 3D Data: LiDAR, Gaussian splats, and 3D Tiles.
  • Standard Formats: MBTiles and SHP.zip.

Analysis and Processing Tools

GeoLibre는 브라우저 기반 및 사이드카 기반 분석 도구를 모두 제공합니다:

  • SQL Workspace: 사용자는 로드된 레이어 및 원격 URL에 대해 브라우저에서 직접 DuckDB Spatial SQL을 실행할 수 있으며, URL은 일치하는 리더로 자동 래핑됩니다.
  • Vector Tools: 일반적인 기하학적 연산(buffer, centroids, convex hull, dissolve, bounding box, simplify, clip, intersection, difference, and union)은 Turf.js에 의해 구동되며, 더 높은 성능을 위해 선택적인 GeoPandas 사이드카를 사용할 수 있습니다.
  • Raster Tools: hillshade, slope, aspect, reproject, resample, and contouring과 같은 연산은 rasterio Python 사이드카를 통해 실행됩니다.
  • Conversion: 전용 메뉴를 통해 데이터를 GeoParquet, FlatGeobuf, PMTiles, and COG와 같은 클라우드 네이티브 형식으로 변환할 수 있습니다.
  • Whitebox Toolbox: 선택적인 Python 사이드카를 통해 배치 지오프로세싱을 사용할 수 있습니다.

Extensibility and Ecosystem

  • Plugin Marketplace: GeoLibre는 외부 플러그인을 설치, 업데이트 및 제거할 수 있는 내장된 마켓플레이스를 포함합니다. 내장된 플러그인은 MapLibre components, Overture Maps, LiDAR, GeoAgent, and GeoEditor를 포함합니다.
  • Python and Jupyter Integration: geolibre Python 패키지는 앱을 Jupyter notebooks에 임베딩할 수 있게 합니다. 이는 UI 편집과 Python API (예: add_geojson, add_tile_layer, add_cog) 간의 양방향 동기화를 생성합니다.

Deployment and Sharing

GeoLibre는 플랫폼과 상호작용하는 두 가지 주요 방법을 제공합니다:

  • Desktop App: Tauri-based 애플리케이션은 로컬 MBTiles, 로컬 래스터 데이터 읽기, 그리고 .geolibre.json 프로젝트 파일을 저장/열기 위한 전체 파일 시스템 액세스를 제공합니다.
  • Browser Demo: GitHub Pages에 배포된 정적 사이트로, 전체적으로 클라이언트 측에서 실행됩니다. 설계상 비공개이며, 분석 도구구나 서버 계정이 필요하지 않습니다. 사용자는 url 쿼리 매개변수를 사용하여 공개 .geolibre.json URL을 통해 프로젝트를 공유할 수 있습니다.

Community Feedback and Performance

커뮤니티는 이 프로젝트를를 ArcGIS Online 또는 QGIS의 가벼운 대안안으로 환영하고 있지만, 일부 사용자는 대규모 데이터셋에 대한 성능 이슈를 보고했습니다. 한 사용자는 작은 파일(예: 30MB GeoPackage)은 작동하지만, 1GB를 초과하는 파일은 브라우저를 멈추게 하거나 충돌시키게 된다고 언급했습니다.

"The web version was giving me IO errors for any file I tried to load in. The desktop version worked a little better... Trying to load some bigger files >1gb kind of just sat on 'Importing data...' for a while, then the screen went blank and I lost all my layers."

다른 사용자는 MapLibre와 DuckDB의 조합이 공공 데이터셋에 대해 매우 높은 성능을을 보여준다고 언급하며 스택의 효율성을 칭찬했습니다.

Sources