Uber hndexes 및 PostgreSQL을 사용한 래스터 분석

王林
풀어 주다: 2024-08-12 22:31:33
원래의
602명이 탐색했습니다.

안녕하세요, 이번 블로그에서는 h3 인덱스를 사용하여 래스터 분석을 쉽게 수행하는 방법에 대해 설명하겠습니다.

목적

학습을 위해 ESRI 토지피복에 의해 결정된 거주 지역에 건물이 몇 개 있는지 계산해 보겠습니다. 벡터와 래스터 모두에 대한 국가 수준의 데이터를 목표로 삼겠습니다.

먼저 데이터를 찾아보자

래스터 데이터 다운로드

Esri Land Cover에서 정착지역을 다운로드했습니다.

  • https://livingatlas.arcgis.com/landcover/

약 362MB 크기의 2023년을 다운로드하세요

Raster Analysis Using Uber hndexes and PostgreSQL

네팔의 OSM 건물 다운로드

출처 : http://download.geofabrik.de/asia/nepal.html

으아악

데이터 전처리

실제 h3 셀 계산 전에 데이터에 일부 전처리를 적용해 보겠습니다
이 단계에서는 gdal 명령줄 프로그램을 사용합니다. 컴퓨터에 gdal을 설치하세요

클라우드에 최적화된 Geotiff로 변환

코그에 대해 모르신다면 여기에서 확인하세요: https://www.cogeo.org/

  • gdal_translate를 사용할 수 있는지 확인하세요
으아악

사용 중인 gdal 버전을 인쇄해야 합니다

  • 래스터를 4326으로 재투영

래스터의 소스 srs가 다를 수 있으므로 그에 맞게 변경하세요

으아악
  • 이제 tif를 클라우드에 최적화된 geotif로 변환할 수 있습니다.
으아악

재투영된 TIFF를 geotiff로 변환하는 데 약 1분이 걸렸습니다

postgresql 테이블에 osm 데이터 삽입

우리는 osm2pgsql을 사용하여 osm 데이터를 테이블에 삽입하고 있습니다

으아악

osm2pgsql은 전체적으로 274초(4분 34초)가 걸렸습니다.

ogr2ogr을 사용하는 경우 geojson 파일도 사용할 수 있습니다

으아악

ogro2gr은 드라이버에 대한 광범위한 지원을 제공하므로 입력 내용에 대해 매우 유연합니다. 출력은 Postgresql 테이블입니다

h3 인덱스 계산

포스트그레SQL

설치

으아악

DB에 확장 프로그램 만들기

으아악

이제 건물 테이블을 만들어 보겠습니다

으아악

테이블에 데이터 삽입

으아악

로그 및 타이밍 :

으아악

이제 centroid를 사용하여 해당 건물의 h3 지수를 계산해 보겠습니다. 여기 8은 제가 작업 중인 h3 해상도입니다. 여기에서 해결 방법에 대해 자세히 알아보세요

으아악

래스터 작업

설치

으아악

재투영된 톱니바퀴가 static/
에 있는지 확인하세요.

으아악

래스터에서 h3 셀을 생성하려면 저장소에 제공된 스크립트를 실행하세요. 모드 방식으로 리샘플링 중입니다. 이는 보유한 데이터 유형에 따라 다릅니다. 범주형 데이터의 경우 모드가 더 적합합니다. 여기에서 리샘플링 방법에 대해 자세히 알아보세요

으아악

로그 :

으아악

분석

다각형에서 get_h3_indexes 함수를 만들어 보겠습니다

으아악

우리 관심 지역에서 건축 지역으로 식별된 모든 건물을 가져오세요

으아악

쿼리 계획 :

Raster Analysis Using Uber hndexes and PostgreSQL

건물의 h3_ix 열에 인덱스를 추가하면 더욱 향상될 수 있습니다

으아악

촬영 횟수: 제가 사는 지역에는 ESRI로 분류된 건축 등급 건물이 24416개 있었습니다

확인

출력이 true인지 확인하겠습니다. 건물을 geojson으로 가져오겠습니다

으아악

h3셀도 얻자

으아악

Raster Analysis Using Uber hndexes and PostgreSQL

h3 해상도를 높이면 정확도가 높아질 수 있으며 입력 및 리샘플링 기술에 따라 달라집니다

대청소

필요하지 않은 테이블은 삭제하세요

으아악

선택 사항 - 벡터 타일

타일을 시각화하려면 pg_tileserv를 사용하여 벡터 타일을 빠르게 만들 수 있습니다

  • pg_tileserv 다운로드 위에 제공된 링크에서 다운로드하거나 docker
  • 를 사용하세요.
  • 자격 증명 내보내기
으아악
  • 테이블 선택 권한을 부여하세요
으아악
  • 시각화를 위해 h3 인덱스에 지오메트리를 생성합니다(st_asmvt에서 수동으로 타일을 작성하는 경우 쿼리에서 직접 수행할 수 있습니다).
으아악
  • h3 형상에 인덱스를 생성하여 효과적으로 시각화
으아악
  • 달려
으아악

Raster Analysis Using Uber hndexes and PostgreSQL

  • 이제 타일 값이나 원하는 방식(예: maplibre)을 기반으로 MVT 타일을 시각화할 수 있습니다! 처리된 결과를 시각화하거나 다른 데이터세트와 결합할 수도 있습니다. 이것은 QGIS의 cell_value를 기반으로 h3 인덱스에 대해 수행한 시각화입니다.Raster Analysis Using Uber hndexes and PostgreSQL

소스 레포 : https://github.com/kshitijrajsharma/raster-analytic-using-h3

참고자료 :

  • https://blog.rustprooflabs.com/2022/04/postgis-h3-intro
  • https://jsonsingh.com/blog/uber-h3/
  • https://h3ronpy.readthedocs.io/en/latest/

위 내용은 Uber hndexes 및 PostgreSQL을 사용한 래스터 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!