วิธีนำเข้าไฟล์ gpx จำนวนมากไปยัง QGIS และรวมเป็นไฟล์เดียวได้อย่างไร


11

ฉันกำลังมองหาเพื่อสร้าง 'แผนที่ความร้อน' ของตัวเองในการขี่จักรยานทั้งหมดที่ฉันบันทึกไว้โดยใช้แอพ Strava ใน QGIS

ฉันมีไฟล์ gpx มากกว่า 450 ไฟล์และต้องการรวมเลเยอร์จุดติดตามลงในไฟล์รูปร่างเดียวเพื่อให้ฉันสามารถเข้าร่วมกับเลเยอร์รูปหลายเหลี่ยมและเป็นสัญลักษณ์โดยjoin_countตามที่เห็นในตัวอย่างนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ไฟล์ gpx ของฉันบางไฟล์มี 'การขี่' ในชื่อไฟล์และการเรียกใช้อื่น ๆ 'ฉันต้องการกรองไฟล์ที่เหลือเพียงไฟล์ที่มี' การขี่ '

ฉันจะประสบความสำเร็จในการใช้ QGIS ได้อย่างมีประสิทธิภาพได้อย่างไร

คำตอบ:


13

ใช้เครื่องมือบรรทัดคำสั่ง ogr2ogr ซึ่งแจกจ่ายด้วย QGIS ใน Windows เปิด OSGeo4W Shell จากกลุ่มโปรแกรม QGIS และป้อน

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

คำสั่งที่เทียบเท่าใน Unix bash shell จะเป็น

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 จะสร้างหนึ่งไฟล์รูปร่างเดียวจากไฟล์ gpx ทั้งหมดที่มี "ride" อยู่ มีบันทึกบางส่วนเกี่ยวกับการขับแบบ GPX OGR อยู่ที่http://www.gdal.org/drv_gpx.html


3

ฉันรู้ว่ามันสายไปแล้ว แต่มันอาจช่วยคนอื่นได้ในวันหนึ่ง มีปลั๊กอิน QGIS ชื่อ Batch GPS Importer ซึ่งฉันอธิบายเพิ่มเติมในคำตอบนี้

เวอร์ชันล่าสุดสามารถกรองไฟล์โดยใช้คำนำหน้าและข้อความต่อท้าย Batch ผู้นำเข้า GPS

ฉันหวังว่ามันจะช่วย


2

คุณสามารถนำเข้าไฟล์ GPX หลายไฟล์ในเวลาเดียวกันแม้ว่าคุณจะได้รับแจ้งให้แต่ละไฟล์สำหรับชั้นข้อมูลที่คุณต้องการ ด้วยร่องรอยมากกว่า 400 เรื่องที่ไม่น่าสนุก

คุณอาจต้องการที่จะดูที่ogr2ogr นี่คือ Swiss-Army-Knife ของการแปลงไฟล์ภูมิศาสตร์มันจะแปลง geoformat เกือบทั้งหมดให้เป็น geoformat (เวกเตอร์ / แรสเตอร์) อื่น ๆ ที่เข้ากันได้

การโทร ogr2ogr ดูเหมือนว่า

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

คุณสามารถเรียกมันโดยใช้โปรแกรม (เช่นจากสคริปต์ python, .bat หรือ bash script) เพื่อวนซ้ำในแต่ละ ride * .gpx และแปลงเป็นรูปแบบไฟล์

ต้องบอกว่าฉันไม่สามารถทำให้มันทำงานได้กับ gpx สุ่ม ๆ ตัวที่ฉันดาวน์โหลดจาก OpenStreetMap (ogrinfo ไม่ชอบพวกมันเช่นกันแม้ว่า QGIS จะโหลดพวกมัน) แต่ฉันสามารถเปิดไฟล์ GPX จากแหล่งอื่นได้

ลองวิ่ง

ogrinfo example.gpx tracks

และดูว่าคุณได้รับผลประโยชน์ใด ๆ หากคุณได้รับรายชื่อไดรเวอร์แสดงว่าล้มเหลว

ระยะทางของคุณอาจแตกต่างกันไปมันคุ้มค่าที่จะไป

โปรดทราบว่าแต่ละไฟล์รูปร่างจะลงท้ายด้วยไดเรกทอรีของตัวเองดังนั้นหากคุณไม่ต้องการเขียนโค้ดที่ยุ่งยากคุณสามารถลองใช้ CSV แทน .. ดูโพสต์บล็อกนี้

ในการผสานคุณสามารถ (ใช้รหัส) คัดลอกรูปร่างไฟล์ทั้งหมดลงในไดเรกทอรีเดียวจากนั้นใช้Vector> เครื่องมือการจัดการข้อมูล> ผสานรูปร่างไฟล์เข้าด้วยกัน

หากคุณกำลังรักสไตล์ hexbin ที่คุณแสดงให้เห็นคุณอาจต้องการที่จะมองไปที่ปลั๊กอิน MMQgis สิ่งนี้ช่วยให้กริดหกเหลี่ยมถูกสร้างขึ้นซึ่งคุณสามารถใช้เพื่อทำการวิเคราะห์ 'คะแนนในรูปหลายเหลี่ยม'


4
ใน Windows ฉันเปิด OSGeo4W เชลล์จาก QGIS 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 สำหรับผู้ใช้งาน Linux มันทำงานได้อย่างมีเสน่ห์ ...#!/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.