Jenis segmen / tepi garis apa yang membutuhkan akurasi tinggi dalam representasi permukaan-of-the-ellipsoid yang sebenarnya?

8

Saya telah merenung (dan melakukan pengkodean prototipe) untuk basis kode geografis 'bebas proyeksi' dengan titik dasar, garis & poligon primitif Anda.

Alih-alih berurusan dengan semua pengorbanan yang datang bersama dengan memproyeksikan ke pesawat, saya menulis algoritma yang bekerja langsung pada permukaan ellipsoid.

Salah satu komplikasi potensial adalah bahwa ada berbagai jenis "jalur" di luar sana:

  • (busur) lingkaran besar: jarak terpendek di sepanjang permukaan (konstan-nol-ketinggian) antara dua titik; harus sesuai persis dengan jalur pandang.
  • rhumb lines: sambungkan kedua titik dengan lintasan arah konstan - misalnya, beberapa batas negara mengikuti garis lintang (yang bukan lingkaran besar).
  • kurva: busur melingkar (jalur jarak konstan dari titik pusat yang diberikan); Bezier (tidak yakin tentang interpretasi ulang yang benar dalam konteks permukaan melengkung), dll.

Dari berbagai jenis jalur (termasuk jalur yang saya lewatkan), manakah yang cukup penting sehingga memiliki representasi 'tepat', vs mewakili dalam batas kesalahan dengan segmen pendek dari jalur yang lebih sederhana (mis. Segmen busur geodesik pendek)?

Suntingan klarifikasi: dengan 'tepat' di atas, maksud saya parametrik. Dengan kata lain: dapat dihitung dengan akurasi yang diinginkan, tanpa langkah densifikasi saat impor.

Sunting , jauh kemudian, untuk menambahkan kutipan yang saya temui yang sangat dekat dengan pemikiran saya sendiri tentang penggunaan vektor satuan 3D sebagai primitif geografis: Representasi Posisi Horizontal Non-singular ( alt link ). Bagian terbaik? Saya tidak harus menulis semuanya sendiri!

Dan S.
sumber
Representasi yang benar-benar tepat dari objek-objek ini pada ellipsoid (yang bukan merupakan bola) nyaris mustahil. Geodesik bukan lagi bagian dari lingkaran besar pada umumnya; garis-garis rhumb akan menjijikkan tidak peduli apa pun; busur melingkar geodesik akan sangat berantakan. Apakah benar-benar ada gunanya melakukan ini yang bernilai beberapa perintah besarnya perhitungan tambahan untuk setiap operasi?
whuber
Tidak ada yang tepat dengan penafsiran kata itu - bagaimana dengan "parametrik" alih-alih sebagai pilihan kata yang lebih baik? (Juga, sebagai catatan: jika saya membatasi diri saya pada spheroids daripada ellipsoids umum, representasi parametrik agak kurang berantakan.) Namun, memang benar bahwa banyak dari hal-hal itu tetap sangat berantakan / sulit --- maka pertanyaan saya! Saya tidak tertarik pada sistem yang merusak kualitas data yang ada, tapi saya tidak merasa perlu untuk mewakili kurva yang tidak ada yang menggunakan keduanya.
Dan S.
Saya telah bekerja dengan segmen garis lingkaran besar pada spheroid yang direpresentasikan sebagai kutub rotasi (titik lat / panjang) dengan sudut awal, dan sudut ujung. Saya menemukan kesulitan untuk memvisualisasikan matematika yang digunakan untuk memanipulasi mereka (angka empat). sciencedirect.com/...
Kirk Kuykendall
@Kirk: Representasi yang lebih mudah digunakan dengan pendapat (pendapat di sini!) Adalah menggunakan koordinat 3D ortografis dan mewakili titik awal / akhir sebagai vektor - Anda masih menggunakan angka empat (untuk mewakili rotasi dalam 3D) tetapi mereka ' jauh lebih mudah untuk dipikirkan.
Dan S.
@Dan - tetapi dengan 3d coords, Anda harus memadat untuk mempertahankan ketinggian yang konstan, bukan?
Kirk Kuykendall

Jawaban:

6

Pertanyaannya menyangkut jenis kurva apa yang layak mendapatkan representasi yang tersirat secara implisit daripada perkiraan yang didiskritisasi. Inti masalahnya adalah ini: untuk menjadi sukses, kelas kurva yang Anda dukung dengan cara ini harus ditutup di bawah kelas operasi pembuatan kurva dan poligon yang didukung dalam GIS.

Operasi-operasi ini meliputi:

  • Buffering. Dalam proses ini, Anda perlu membuat kurva yang sejajar dengan fitur. ("Paralel" berarti dalam arti menjaga jarak tetap.) Ini termasuk lingkaran dan bagian-bagiannya (untuk titik-titik penyangga), paralel paralel (yang merupakan kurva yang berjarak sama dengan geodesik pada spheroid, dan dapat direduksi menjadi titik-titik terisolasi dalam kasus khusus) , dan lingkaran konsentris. Pada bola (tetapi tidak, pada umumnya, pada ellipsoid) paralelnya adalah lingkaran itu sendiri.

  • Poligon pengaruh (Poli Thiessen; Poligon Voronoi; Sel Dirichlet). Untuk membangun poligon Thiessen untuk kumpulan fitur titik, kita perlu menemukan garis pembagi dua, yang geodesik (lurus); tetapi untuk koleksi jenis fitur lainnya, seperti titik dan segmen, batas poligon Thiessen mencakup bagian parabola (di dalam pesawat). Mungkin Anda tidak ingin mendukung ini ...

  • Set-teoritik overlay (persimpangan, penyatuan, perbedaan, komplemen). Operasi ini tidak membuat jenis kurva baru.

  • Terjemahan dan rotasi paralel . Ini biasanya tidak mungkin dilakukan tepat pada ellipsoid (karena itu bukan ruang yang homogen ), tetapi langsung pada bola. Di bidang, operasi ini tidak menciptakan jenis kurva baru.

Kelas kurva yang benar-benar bermasalah yang Anda usulkan terdiri dari garis rhumb umum (loxodromes). Garis lintang adalah garis rhumb tetapi (setidaknya pada sphere) mereka juga lingkaran, sehingga tidak ada masalah tambahan. Tapi garis rhumb umum adalah binatang yang rumit: jika mereka bukan meridian atau paralel, mereka berputar ke satu kutub atau yang lainnya. Buffer dan terjemahan paralel dari baris rhumb akan menjadi tipe kurva yang benar-benar baru. Anda harus menyatakan hasil ini sebagai segmen garis dan lingkaran yang terputus, yang akan mengalahkan tujuan Anda (dan cukup sulit untuk dihitung). Karena itu saya sarankan untuk tidak mencoba mendukung garis rhumb dengan tepat.

Singkatnya, sepertinya Anda bisa berhasil dalam program Anda jika (a) Anda bekerja pada model bola bumi daripada model ellipsoidal ("spheroidal") yang lebih umum dan (b) Anda membatasi konstruksi tertentu seperti poligon Thiessen (dan sumbu medial, yang terkait erat) dengan pengumpulan poin.

whuber
sumber
Saya sangat suka cara berpikir ini. Beberapa pemikiran acak dalam komentar berikut ...
Dan S.
Nit: Buffering adalah jarak tetap, bukan paralel (kecuali untuk saluran tak terbatas).
Dan S.
Di pesawat, area yang dipengaruhi fitur sisi lurus memiliki garis lurus dan kurva kerucut di perbatasannya - tetapi saya ragu bahwa itu tertutup. Saya sebenarnya tidak tahu kurva apa yang membentuk batas pengaruh untuk fitur lengkung (bagian kerucut) itu sendiri; mungkin beberapa pemikiran / penelitian mendalam akan mengungkapkan bahwa mereka juga bagian kerucut, tapi saya skeptis. Ditutup secara umum di bawah operasi ini tampaknya sangat tidak mungkin.
Dan S.
Set-theoretic operations: Sistem GIS Planar biasanya tidak ditutup di bawah set komplemen karena ia menciptakan poligon berukuran tak terbatas; bola / sphereoid / ellipsoid dapat berbuat lebih baik. Perhatikan bahwa kadang-kadang titik persimpangan tidak dapat (atau yang sulit) untuk mewakili banyak tikungan kurva, meskipun, bahkan di pesawat.
Dan S.
Terjemahan / rotasi: Transformasi affine dimungkinkan di pesawat, meskipun ada transformasi non-affine lain yang mungkin benar-benar lebih masuk akal dengan membuatnya secara spesifik non-affine. Misalnya: "pindahkan setiap titik ke utara sejauh 150 meter" sering kali adalah apa yang dimaksud dengan terjemahan sederhana dalam banyak proyeksi, tetapi tentu saja distorsi proyeksi berarti bahwa niat sedikit dirusak ...
Dan S.
4

Dan,

Anda mungkin tertarik pada beberapa pekerjaan yang telah saya lakukan di geodesics. Ini dijelaskan dalam pracetak ini . Secara khusus, perhatikan:

  • Masalah geodesik langsung dan terbalik dapat diselesaikan dengan presisi alat berat. Ini berarti sekitar 15 nm untuk presisi ganda. Saya bisa beralih ke ganda panjang, menambahkan istilah tambahan dalam seri, dan mendapatkan akurasi pukul 6 sore. Perhatikan khususnya, bahwa solusi untuk masalah terbalik selalu konvergen (tidak seperti metode Vincenty). Kecepatannya sebanding dengan metode Vincenty (solusi langsung agak lebih cepat, solusi terbalik agak lambat).

  • Saya menghitung pengurangan panjang dan skala geodesi. Kuantitas ini memberikan sifat diferensial geodesik, dan memungkinkan berbagai masalah geodesik (persimpangan, garis tengah, dll.) Dipecahkan dengan cepat dan akurat menggunakan metode Newton. Lengkungan batas wilayah penyangga dapat dinyatakan dalam jumlah ini. Lihat catatan ini yang saya kirim ke milis proj.4.

  • Saya mendefinisikan proyeksi gnonik ellipsoidal di mana geodesik sangat lurus. Hal ini memungkinkan masalah pada permukaan ellipsoid untuk dipetakan ke masalah dalam geometri bidang. Misalnya, persimpangan dua geodesik dapat ditemukan dengan tepat dengan memperkirakan titik persimpangan, melakukan proyeksi gnomonik tentang titik itu, memperkirakan ulang persimpangan dan iterasi.

  • Saya memberikan ekspresi untuk area poligon geodesik. Tidak perlu lagi membagi panjang untuk mendapatkan hasil yang akurat.

  • GeographicLib (on sourceforge) mengimplementasikan algoritma.

  • Akhirnya, saya berkomentar bahwa untuk banyak tujuan, geodesik lebih disukai daripada jenis kurva lainnya (khususnya elips besar atau garis rhumb) karena mereka mematuhi ketimpangan segitiga. Ini memiliki beberapa konsekuensi:

    • Geodesics dan lingkaran geodesic berpotongan di sudut kanan.
    • Garis XXX terpendek antara titik P dan kurva arbitrer C memotong C pada sudut kanan hanya jika XXX = geodesik.
    • Geodesics adalah cara alami untuk mempartisi data menggunakan quadtree karena batas dapat ditempatkan pada kisaran jarak antara titik arbitrer dan semua titik dalam quadnode.
cffk
sumber
Terima kasih telah membagikan gagasan ini; itu adalah kertas yang sangat bagus berisi beberapa karya hebat. Selamat datang di situs kami! Beberapa komentar dan pertanyaan mengikuti. (1) Dalam arti apa "geodesik dan lingkaran geodesik berpotongan di sudut kanan"? Anda harus memiliki batasan dalam pikiran karena ini umumnya tidak benar. (2) Jarak 3D Euclidean yang dimaksud @Dan juga akan memenuhi ketimpangan segitiga.
whuber
(1) Pertimbangkan semua geodesik yang berasal dari titik A; ini mendefinisikan satu keluarga kurva. Pertimbangkan selanjutnya semua lingkaran geodesik yang berpusat di A; ini mendefinisikan keluarga kurva kedua. Karena ketimpangan segitiga, kedua keluarga ini ortogonal. Ini memberikan salah satu sifat dasar dari proyeksi persamaan azimut. (2) Ya, Anda benar, tentu saja. Jika Anda benar-benar ke dunia geometri permukaan, Anda mundur pada gagasan properti yang bergantung pada bagaimana permukaan tertanam dalam ruang 3d. (Lihat Gauss '"Teorema Luar Biasa".)
cffk
Sebenarnya (1) lebih umum: dalam manifold Riemannian manapun, geodesik dari titik P di luar kurva halus c ke titik di c yang meminimalkan jarak antara P dan c harus ortogonal ke c . Pernyataan Anda tentang "lingkaran geodesik" segera menyusul (asalkan P adalah pusat: itulah batasan yang sebelumnya tidak dinyatakan). Saya setuju dengan sentimen yang dinyatakan setelah (2), tetapi kita harus ingat bahwa tujuannya di sini adalah untuk melakukan perhitungan efisien yang akurat, daripada menyelidiki sifat intrinsik permukaan. Penyematan yang dipilih dengan baik mungkin memfasilitasi itu.
whuber
Terima kasih yang terlambat atas balasan ini. :) Saya terlalu bawah air untuk melakukan lebih dari skim saat ini, tetapi tampaknya menjadi harta karun yang cukup fantastis. Catatan singkat tentang persimpangan geodesik sejak Anda memanggilnya - sebagian besar untuk Anda tinjau sebagai cek pada intuisi saya yang kurang percaya: persimpangan yang tepat dari geodesik bola dapat ditemukan dengan mudah dengan memotong bidang-bidang lingkaran besar yang sesuai, dan hasilnya membawa ke ellipsoid dengan menggunakan bola bantu - atau apakah saya melewatkan sesuatu di sana?
Dan S.
@Dan saya menulis jawaban untuk pertanyaan Anda. Tapi sepertinya panjangnya komentar. Jadi lihat jawaban selanjutnya sebagai gantinya.
cffk
2

Ini adalah jawaban untuk pertanyaan @ Dan tentang penggunaan bola bantu untuk menyelesaikan masalah persimpangan.

Tidak, bola bantu tidak memungkinkan Anda menyelesaikan persimpangan secara langsung. Masalahnya adalah bahwa pemetaan dari ellipsoid ke bola tergantung pada geodesik (misalnya, azimuth di ekuator). Dengan demikian bola bantu baik untuk memecahkan geodesik tunggal tetapi tidak untuk memecahkan masalah yang melibatkan lebih dari satu geodesi.

Cara saya yang disarankan untuk melakukan persimpangan geodesik dan intersepsi (jalur terpendek antara titik dan geodesik) adalah dengan menggunakan proyeksi gnomonik. Geodesics pada peta sphere menjadi garis lurus dalam proyeksi gnomonic dan, asalkan masalah Anda terbatas pada belahan bumi, proyeksi gnomonic mengubah masalah ini menjadi 2d.

Tidak ada proyeksi yang menjaga kelurusan geodesik untuk ellipsoid (karena kelengkungannya tidak konstan). Namun, GeographicLib menyediakan generalisasi dari proyeksi gnomonik di mana geodesik sangat lurus. Ini mengarah ke algoritma konvergensi cepat untuk interseksi dan intersepsi geodesi (sekali lagi asalkan semua titik baik-baik saja di dalam belahan bumi). Lihat jawaban saya (dengan kode!) Ke gpesquero di

https://sourceforge.net/projects/geographiclib/forums/forum/1026621/topic/4085561

Akhirnya, saya ingin menunjukkan bahwa saya baru saja mengubah rutin geodesik GeographicLib ke Javascript, sehingga Anda dapat bermain-main dengan mereka di Google Maps. Lihat

http://geographiclib.sourceforge.net/scripts/geod-google.html

http://geographiclib.sourceforge.net/scripts/geod-calc.html

(Saya belum mengonversi proyeksi gnomonic ke Javascript. Itu akan cukup mudah. ​​Saya juga akan mengonversi proyeksi azimuth equidistant pada saat yang sama, karena itu cara yang mudah untuk menyelesaikan kelas masalah geodesi lain yang melibatkan "garis median" .)

ADDENDUM (2014-08-19)

Dimungkinkan juga untuk menyelesaikan saat pendekatan terdekat untuk dua kapal yang bepergian dengan kecepatan konstan di sepanjang geodesik. Karena kita mengetahui sifat diferensial geodesik, dimungkinkan untuk menggunakan metode Newton untuk mendapatkan solusi yang akurat dalam beberapa iterasi. Kode untuk mengimplementasikan ini diposting di

https://sourceforge.net/p/geographiclib/discussion/1026620/thread/33ce09e0

cffk
sumber
Saya cukup yakin saya keluar jalur, tetapi tidak yakin di mana; Saya akan senang jika Anda bisa membantu men-debug alasan saya. (Komentar berikutnya.) Jika tidak: terima kasih banyak untuk kode bermanfaat + komentar + tautan; ini sangat berguna.
Dan S.
Ini dia, sesingkat yang saya bisa. Alasan saya dinyatakan dalam Cartesian 3D, bukan koordinat sudut: (a) Pada sebuah bola, semua titik dalam lingkaran besar adalah coplanar. (B) Transformasi ke bidang tambahan adalah linier dan tidak dapat dibalik. (Berpikir keliru?) (C) Semua titik dalam transformasi geodesik elips menjadi titik di sepanjang lingkaran besar di aux. bola. (D) Semua titik pada geodesik elips juga coplanar, karena (b). Akhirnya, (e): Karena coplanaritas, dua titik persimpangan geodesik kandidat pada ellipsoid dapat ditemukan dengan persimpangan pesawat.
Dan S.
1
@Dan, Geodesik ellipsoidal tidak terletak di pesawat. (Jika ya, itu harus menjadi kurva bidang; namun kita tahu bahwa, secara umum, pada setiap sirkuit bola bumi geodesik kurang dari jumlah O (f).) Kesalahan dalam penalaran Anda adalah (b ) - koneksi antara aux. bola dan ellipsoid tidak linier. Transformasi lintang setara dengan peregangan dalam arah z dan juga linier. Namun garis bujur terkait oleh integral elips dan ini mencegah adanya hubungan linear sederhana.
cffk