ogr2ogr TPS metode spline menciptakan kesalahan progresif


8

Saya mencoba untuk menyesuaikan sebuah shapefile menggunakan transformasi ogr2ogr spline dengan perintah cmd seperti:

C:\OSGeo4W64\bin\ogr2ogr.exe -f "ESRI Shapefile" C:\path\output.shp -tps --optfile C:\path\gcp.txt C:\path\input.shp

Saya memiliki lebih dari 1000 titik kontrol (jadi mereka berada di file terpisah ). Dan saya punya masalah aneh dengan ketepatan metode ini. Saya sudah melihat dalam pertanyaan ini bahwa metode ogr2org spline tidak benar-benar tepat. Tetapi dengan jumlah GCP saya dan tingkat dataset saya, saya melihat bahwa presisi menurun secara dramatis dari utara ke selatan. Seperti ini: kesalahan spline

Di utara metode ini hampir pasti (kesalahan 0,001 m), maka ia dengan halus kehilangan presisi dan di selatan itu menciptakan kesalahan sekitar 60 m.

Saya menghitung RMSE untuk setiap GCP dan memplotnya dengan koordinat dan nomor ID dari titik kontrol (saya menciptakan sebagian besar GCP mulai dari utara). Dan saya punya:

y kesalahan x kesalahan kesalahan id

Saya mencoba untuk menemukan dan membaca kode sumber gdal (saya menemukan gdal_tps , thinplatespline dan ogr2ogr_lib modul) tapi saya tidak tahu bahwa bahasa (C ++?) Dan tidak mengerti bagaimana metode karya. Urutan polynomial 1, 2 dan 3 dari ogr2ogr bekerja dengan baik (mereka bukan metode yang tepat tetapi kesalahannya tidak berkembang).

Jadi, mengapa presisi spline secara logaritmik menurun tergantung pada koordinat Y? (Untuk koordinat X saya melihat lompatan dengan presisi setiap 16000 m). Bagaimana ini mungkin? Bagaimana metode penyesuaian ini bekerja? Bagaimana saya bisa menyelesaikan masalah ini? (Saya memiliki Windows 7, 64 bit)


2
Pengembang GDAL telah melakukan analisis pendahuluan di lists.osgeo.org/pipermail/gdal-dev/2017-June/046816.html . Mungkin Anda harus bergabung dengan diskusi itu.
user30184

Apakah Anda dapat membagikan GCP? Akan meninjau hasil, memeriksa koefisien, dll. Berpikir ini dapat dijelaskan, dan ketidakstabilan diminimalkan. Terima kasih!
david

Jawaban:


4

Jawaban pengembang GDAL Even Rouault benar-benar membantu saya memberikan arah yang benar.

Mengetahui bahwa ini adalah kasus ketidakstabilan numerik, dan mengetahui (dari pengalaman CFD saya) bahwa ketidakstabilan dapat disebabkan oleh nilai yang sangat kecil dalam data, saya menganalisis titik kontrol saya. Saya membangun TIN, menghitung jarak antara GCP dan menemukan bahwa 2 titik secara tidak sengaja ditempatkan sangat dekat satu sama lain (hampir bertepatan, jarak 3 m di antara mereka). Ketika saya menghapus salah satunya, spline bekerja dengan sempurna.

Pasangan titik ini berada di paling utara sehingga ketidakstabilan dimulai dari utara ke selatan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.