우리의 공중 야생 동물 조사에서 우리는 일반적으로 수십 개의 GPX 파일을 생성하고 일반적으로 GIS 응용 프로그램에 표시하기 위해 대부분 파일을 shapefile로 변환합니다. GPX 파일은 모든 (또는 거의 모든) GPS 데이터를 한 곳에 보관하는 훌륭한 방법입니다. 트랙 로그, 웨이 포인트 및 경로 정보를 편리한 형식으로 저장하는 XML 파일입니다. 그들은 Garmin의 오래된 트랙까지 여러 트랙을 저장합니다.
이 모든 트랙 데이터를 동일한 측량의 관측 데이터가있는 다른 테이블과 병행하여 공간 데이터베이스에 저장하고 싶습니다.
ogr2ogr을 사용하여 트랙을 공간 데이터베이스로 변환 할 수 있습니다.
ogr2ogr -append -f "SQLite" -dsco SPATIALITE=yes # add to table with Spatialite filetype
-dsco INIT_WITH_EPSG=yes -t_srs epsg:4326 # using WGS84
SURVEYDATA.sqlite GPXFILE.gpx tracks -nln tracktable; # adding tracks to 'tracktable'
그러나 이렇게하면 저장된 각 트랙을 한 줄로 가져 와서 각 트랙 포인트의 시간 / 위치 정보가 손실됩니다!
누구든지 그 정보를 보존 할 트랙 로그 데이터베이스를 만드는 영리한 방법을 알고 있습니까?
편집 :
트랙 로그는 단순한 선이 아니라 각각 고도 및 시간 속성이있는 순차 점의 모음입니다. 각 포인트는 트랙 세그먼트에 속하며,이 트랙 세그먼트는 주어진 트랙에 속하며 각 트랙 세그먼트 내의 포인트는 중단없이 취해져 링크 된 것으로 간주 될 수 있습니다. 예를 들면 다음과 같습니다.
<trk><name>ACTIVE LOG</name>
<trkseg>
<trkpt lat="-13.471403" lon="31.382982"><ele>467.818725585938</ele><time>2009-09-09T03:53:38Z</time></trkpt>
<trkpt lat="-13.471403" lon="31.382982"><ele>468.780029296875</ele><time>2009-09-09T03:53:50Z</time></trkpt>
<trkpt lat="-13.471403" lon="31.382982"><ele>465.896118164063</ele><time>2009-09-09T03:54:43Z</time></trkpt>
</trkseg>
따라서 트랙 로그를 저장하려면이 포인트 모음을 관련 데이터와 함께 저장해야합니다.
한 가지 해결책은 트랙 이름, 선분, 고도 및 시간에 대한 추가 열이있는 트랙을 포인트로로드하는 것입니다. 그래도 ogr이 트랙을 포인트로 변환하지는 않을 것이라고 생각합니다.
해결책
덕분에 지적하는 사람들 @scruss하는 gpx2spatialite 내가 함께 (OS X 10.9)를 설치 sudo easy_install gpx2spatialite
. 이 도구 세트는 'drawinglife'프로젝트를 위해 설계되었으므로 대부분의 사람들에게는 필요하지 않은 '도시'정보가 있습니다. 메인 gpx2spatialite 페이지는별로 설명하지 않지만 drawinglife 위키 가 더 좋습니다. 여전히 중복 제거와 같은 문서화되지 않은 기능이 많이 있습니다!
트랙 세그먼트, 트랙, 트랙 포인트 및 웨이 포인트를 보유 할 GPX 파일 용 공간 데이터베이스를 만듭니다. 또한 다양한 트랙에 레이블을 지정하도록 설계된 '사용자'가 설정되었습니다 (sqlite는 사용자 액세스 시스템이 아니지만 그리기 생활을위한 것이기 때문에 이상하게 보입니다).
gpx2spatialite create_db MyGPXArchive.db
모든 하위 폴더를 포함하여 GPX 파일의 전체 폴더를로드하고 다음과 같이 중복 항목을 확인하고 제거하십시오.
gpx2spatialite -s -d MyGPXArchive.db -u SL25 Selous2013/
옵션 :
-s
= 트랙 포인트가 도시 데이터베이스에 있는지 확인하지 않음 (많은 속도 향상)-d MyGPXArchive.db
= 사용할 데이터베이스;-u SL25
= 사용자 SL25를 추가합니다 (수집 된 트랙 세트에 사용 된 레이블 만).Selous2013
= 관심있는 트랙이있는 폴더 (하위 폴더 포함).
버그 :
타임 스탬프 정보를 버리는 이전 Garmin에 트랙을 저장 한 경우 가져 오기가 중단됩니다 (GPSU와 같은 유틸리티를 사용하여 저장된 트랙을 제거). gpsbabel이 있으면 먼저 다음과 같이 파일을 필터링하십시오.
gpsbabel -w -r -t -i gpx -f [INPUT.gpx] -x 트랙, 시작 = 20000101 -o gpx -F [OUTPUT.gpx]