gpx 파일을 QGIS로 대량 가져오고 단일 shapefile로 병합하는 방법은 무엇입니까?


11

QGIS의 Strava 앱을 사용하여 기록한 모든 자전거 타기의 자체 '히트 맵'을 만들려고합니다.

450 개가 넘는 개별 gpx 파일이 있고 트랙 포인트 레이어를 하나의 단일 모양 파일로 병합하여 다각형 레이어에 결합 하고이 예제에서 볼 수 있듯이 join_count 로 심볼을 지정할 수 있습니다.

여기에 이미지 설명을 입력하십시오

내 gpx 파일 중 일부는 파일 이름에 'ride'를 포함하고 다른 일부는 'run'을 포함하고 'ride'가있는 파일 만 남기고 파일을 필터링하고 싶습니다.

QGIS를 사용하여이를 효율적으로 달성하려면 어떻게해야합니까?

답변:


13

QGIS와 함께 배포되는 ogr2ogr 명령 줄 도구를 사용하십시오. Windows의 경우 QGIS 프로그램 그룹에서 OSGeo4W Shell을 열고 다음을 입력하십시오.

for %p in (path_to_gpx_files\*ride*.gpx) do ogr2ogr path_for_output\gpx.shp -append %p track_points -fieldTypeToString DateTime

유닉스 bash 쉘에서 동등한 명령은

for file in path_to_gpx_files/*ride*.gpx; do ogr2ogr path_for_output/gpx.shp -append "${file}" track_points -fieldTypeToString DateTime; done

출력 파일 (gpx.shp)이 전에 존재하지 않는지 확인한 다음 ogr2ogr은 "ride"가있는 모든 gpx 파일에서 하나의 단일 shapefile을 생성합니다. ogr gpx 드라이버에 대한 참고 사항은 http://www.gdal.org/drv_gpx.html에 있습니다.


3

나는 이것이 늦다는 것을 알고 있지만 언젠가 다른 사람들을 도울 수 있습니다. Batch GPS Importer라는 QGIS 플러그인이 있는데이 답변 에서 더 자세히 설명했습니다 .

최신 버전은 접두사 및 접미사 텍스트를 사용하여 파일을 필터링 할 수 있습니다. 배치 GPS 수입

도움이 되길 바랍니다.


2

한 번에 여러 GPX 파일을 가져올 수 있지만 원하는 데이터 계층에 대한 모든 파일을 묻는 메시지가 표시됩니다. 400 가지가 넘는 흔적이 있으면 재미 없을 것입니다.

ogr2ogr 을보고 싶을 수도 있습니다 . 이것은 지리 파일 변환의 스위스-아미 나이프이며, 거의 모든 지오 포맷을 다른 호환 가능한 (벡터 / 래스터) 지오 포맷으로 변환합니다.

ogr2ogr 호출은 다음과 같습니다

ogr2ogr -f "ESRI Shapefile" example.shp example.gpx

프로그래밍 방식으로 (예 : 파이썬 스크립트, .bat 파일 또는 bash 스크립트) 호출하여 각 타기 * .gpx를 반복하고 모양 파일로 변환 할 수 있습니다.

말했지만 OpenStreetMap에서 다운로드 한 임의의 gpx 추적에서 작동하지 못했습니다 (QGIS 가로 드했지만 ogrinfo는 좋아하지 않았습니다). 그러나 다른 소스에서 GPX 파일을 열 수있었습니다.

달리기

ogrinfo example.gpx tracks

유용한 결과가 나오는지 확인하십시오. 드라이버 목록이 표시되면 실패한 것입니다.

마일리지가 다를 수 있습니다.

각 shapefile은 자체 디렉토리로 끝나므로 번거로운 코드 작성을 원하지 않으면 대신 CSV를 사용해보십시오 . 이 블로그 게시물을 참조하십시오 .

병합하려면 코드를 사용하여 모든 모양 파일을 단일 디렉토리에 복사 한 다음 벡터> 데이터 관리 도구> 모양 파일을 하나로 병합하십시오.

당신이 묘사 한 hexbin 스타일을 좋아한다면, MMQgis 플러그인 을보고 싶을 것이다. 이를 통해 6 각형 그리드를 만들 수 있으며이를 사용하여 '다각형의 점'분석을 수행 할 수 있습니다.


4
Windows에서는 QGIS Program Group에서 OSGeo4W Shell을 열고 시도했습니다 for %p in (C:\Data\*.gpx) do ogr2ogr gpx.shp -append %p track_points -fieldTypeToString DateTime. gpx.shp는 이전에 존재하지 않아야하며, ogr2ogr은 단일 쉐이프 파일을 생성합니다.
Redoute

1
이 답변을 @Redoute로 작성해야합니다!
Alex Leith

@Redoute 예 정답으로 작성할 수 있습니까? 감사합니다
MFBawls

1
리눅스 사용자를위한 @Redoute의 훌륭한 제안 번역, 그것은 매력처럼 작동합니다.#!/bin/bash for i in $( ls ./*.gpx ); do ogr2ogr gpx.shp -append $i track_points -fieldTypeToString DateTime done
Steven Kay
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.