osm 데이터를 postgresql로 임포트하는 방법은 여러가지가 있겠지만, pgOSM Flex를 이용하면 간단게 고품질 OpenStreetMap 데이터셋을 postgresql(postGIS)로 임포트 가능합니다.
아래는 docker를 이용해 우리나라 데이터를 import 하는 스트립트 예제입니다.
mkdir ~/pgosm-data
export POSTGRES_USER=postgres
export POSTGRES_PASSWORD=mysecretpassword
# Ensure you have the latest Docker image
docker pull rustprooflabs/pgosm-flex
docker run --name pgosm -d --rm \
-v ~/pgosm-data:/app/output \
-v /etc/localtime:/etc/localtime:ro \
-e POSTGRES_USER=$POSTGRES_USER \
-e POSTGRES_PASSWORD=$POSTGRES_PASSWORD \
-p 5433:5432 -d rustprooflabs/pgosm-flex
docker exec -it \
pgosm python3 docker/pgosm_flex.py \
--ram=8 \
--region=north-america/us \
--subregion=district-of-columbia
스크립트 의미는 다음과 같습니다.
로컬 디렉토리 생성: ~/pgosm-data라는 디렉토리를 만들어 데이터를 저장합니다.
mkdir ~/pgosm-data
환경 변수 설정:PostgreSQL 사용자 이름과 비밀번호를 환경 변수로 설정합니다.
export POSTGRES_USER=postgres
export POSTGRES_PASSWORD=mysecretpassword
Docker 이미지 업데이트:rustprooflabs/pgosm-flex라는 Docker 이미지를 최신 버전으로 가져옵니다.
docker pull rustprooflabs/pgosm-flex
Docker 컨테이너 실행:
--name pgosm: 컨테이너 이름을 pgosm으로 지정합니다.
-d: 백그라운드에서 실행합니다.
--rm: 컨테이너 종료 시 자동 삭제합니다.
-v ~/pgosm-data:/app/output: 호스트의 ~/pgosm-data 디렉토리를 컨테이너의 /app/output에 마운트합니다.
-v /etc/localtime:/etc/localtime:ro: 호스트의 시간대를 컨테이너에 읽기 전용으로 마운트합니다.
-e POSTGRES_USER와 -e POSTGRES_PASSWORD: PostgreSQL 사용자와 비밀번호를 환경 변수로 전달합니다.
-p 5433:5432: 호스트의 포트 5433을 컨테이너의 포트 5432에 연결합니다.
rustprooflabs/pgosm-flex: 사용할 Docker 이미지입니다.
docker run --name pgosm -d --rm \
-v ~/pgosm-data:/app/output \
-v /etc/localtime:/etc/localtime:ro \
-e POSTGRES_USER=$POSTGRES_USER \
-e POSTGRES_PASSWORD=$POSTGRES_PASSWORD \
-p 5433:5432 -d rustprooflabs/pgosm-flex
pgosm_flex.py 실행:
docker exec -it pgosm: 실행 중인 pgosm 컨테이너에서 명령어를 실행합니다.
python3 docker/pgosm_flex.py: pgosm_flex.py 스크립트를 실행합니다.
--ram=8: 8GB의 RAM을 사용하도록 설정합니다.
--region=asia와 --subregion=south-korea: 아시아 지역의 대한민국 데이터만 처리합니다.
docker exec -it \
pgosm python3 docker/pgosm_flex.py \
--ram=8 \
--region=asia \
--subregion=south-korea
'공간정보' 카테고리의 다른 글
GIS 분야에서 모델 컨텍스트 프로토콜(MCP)을 통한 AI 강화 소개 (0) | 2025.04.04 |
---|---|
메타버스의 새로운 관문 (0) | 2025.03.27 |
gocesiumtiler: LAS 파일을 Cesium.js 3D 타일로 변환하는 강력한 도구 (0) | 2024.12.10 |
Martin: 강력한 벡터 타일 서버와 도구 모음 (1) | 2024.12.09 |
Vector Tiles on OSMF Hardware 논의 (0) | 2024.12.05 |