Saya memiliki 50+ file GPX yang ingin saya "muat batch" ke dalam database PostGIS. Semua data track_points akan dimuat ke dalam tabel "track_points" (dengan bidang GPS khas seperti lat, panjang, elevasi, waktu, dll) dan data trek akan dimuat ke dalam tabel geometri garis "trek" yang mirip dan dirancang dengan tepat.
Saya lebih suka mengotomatiskan proses ini sehingga ketika saya mendapatkan 50+ berikutnya, saya tidak perlu memasukkan data ke dalam database. Saya pribadi lebih suka menggunakan Python untuk skrip proses semacam ini, tetapi saran dipersilahkan.
Proses pemikiran umum saya adalah:
- Dapatkan daftar file GPX untuk diproses (cukup mudah melalui alat Python standar)
- Ulangi setiap file GPX dan ekstrak / konversikan data yang diperlukan ke format PostGIS
- Masukkan data GPS ke PostGIS menggunakan pustaka psycopg Python
Saya pikir saya dapat mengelola langkah 1 & 3, tetapi saya bertanya-tanya apakah ada metode / pustaka yang relatif sederhana yang akan mengubah data (trek dan track_points) ke dalam format PostGIS, atau hanya bentuk tabel yang dapat saya masukkan ke dalam tabel yang sudah dibuat .
Saya sudah membaca " Apakah ada perpustakaan analisis trek GPS yang baik? ", " Bagaimana membangun basis data geografis log GPS? ", Dan " Bagaimana cara mengekstrak data .gpx dengan python ", dan telah melihat ke dalam GDAL / OGR dan binding FWTools Python, tetapi tidak ingin menemukan kembali roda adalah seseorang sudah memiliki metode yang baik untuk ini.
CopyLayer
. Saya telah menambahkan nama dari file GPX sebagai awalan, sehingga tabel harus seunik nama file input. Opsi "append" dari ogr2ogr adalah pilihan yang sulit yang saya tidak yakin bagaimana melakukannya saat ini.Setelah penelitian tambahan, saya menulis skrip Python gpx2postgis.py saya sendiri yang mengotomatiskan proses menambahkan fitur GPX ke tabel yang ada. Script menggunakan bagian dari pekerjaan yang disediakan oleh @ Mike T di atas, dan lainnya. Saya telah menambahkannya ke GitHub jika Anda ingin mengunduh atau berkontribusi. Ini membuat skema tabel baru (sesuai kebutuhan) berdasarkan sublayers GPX input, dan menambahkan fitur ke tabel tersebut.
Meskipun bukan solusi Python, saya menemukan pertanyaan serupa tentang StackOverflow yang membuat saya sadar bahwa saya bisa mengulang semua file GPX saya dan memanggil baris perintah ogr2ogr untuk memprosesnya menggunakan tipe fitur GPX .
sumber