Saya memiliki satu set titik sebagai shapefile dan saya ingin menemukan (koordinat) dari titik baru yang akan memiliki jarak terpanjang yang mungkin dari masing-masing titik yang ada. Apakah itu mungkin? Jika ya, apakah ada kode sampel VB? Terima kasih Demetris
arcgis-10.0
arcobjects
vba
vb.net
Demetris
sumber
sumber
Jawaban:
Rekomendasi Kirk Kuykendall untuk membangun diagram Voronoi bulat (poligon Thiessen) adalah yang baik, tetapi mungkin memiliki beberapa kendala teknis untuk dikerjakan. Sementara itu, sebagai alternatif, seseorang dapat menerapkan solusi raster standar seperti yang dijelaskan di utas lainnya . Gunakan jarak bola sebagai ganti jarak Euclidean.
Berikut adalah contoh menggunakan lima poin, di sini diberikan sebagai (lat, lon):
Peta jarak bola ini mencakup bola dunia dari -180 hingga 180 derajat bujur secara horizontal dan -90 hingga 90 derajat lintang secara vertikal. Poin ditunjukkan dengan titik-titik merah besar. Jarak meningkat dengan kecerahan. Punggungan yang jelas harus menjadi bagian dari lingkaran besar. Titik hitam kecil dekat (-15,3268, -2,04352) menandai titik jarak maksimum 11.227 km. (Jarak dihitung dalam datum ellipsoidal ITRF00.)
Resolusi dari grid ini adalah satu derajat. Untuk mendapatkan solusi yang lebih tepat, seseorang dapat memperbesar titik tersebut (dan ke maksimum lokal lainnya dengan nilai yang cukup dekat dengan maksimum global) dan mengulangi perhitungan pada kisi yang lebih kecil tetapi dengan resolusi lebih tinggi.
sumber
Saya belum pernah mencoba ini tetapi sepertinya ini akan berhasil:
Buat diagram voronoi 3D bola. Poligon yang dihasilkan ini akan dipusatkan secara kasar pada titik (benih) asli yang ada.
Loop melalui setiap simpul yang dihasilkan untuk menemukan yang paling jauh dari titik terdekat yang ada. Titik ini harus menjadi titik paling jauh di dunia.
sumber
Anda bisa menggunakan Fungsi Jarak Berbobot Biaya untuk mengidentifikasi seberapa jauh setiap sel dalam raster Anda dari semua titik lainnya.
sumber
Sejauh yang saya tahu, analisis " Pole of Inaccessability " ini harus dilakukan secara iteratif.
Pendekatan raster berulang akan sesuai selama Anda melihat area kecil dengan distorsi minimal dari proyeksi. Untuk setiap sel, hitung jarak ke semua titik, lalu ambil jarak minimum. Sel dengan nilai tertinggi adalah kutub. Anda juga dapat menggunakan Euclidean Distance di Spatial Analyst untuk mencapai ini.
Pendekatan vektor berulang lebih rumit. Garcia-Castellanos et al 2007 menggambarkan metode berulang berdasarkan bumi bulat. Tampaknya mereka telah membuat kode C mereka tersedia secara online . Saya bisa membayangkan cara melakukan ini di Arc dengan buffer, tapi itu masih akan berulang dan lambat.
sumber
Anda bisa menggunakan Point Distance (Analisis) Alat ini membuat tabel dengan jarak antara dua set titik. jika radius pencarian default digunakan, jarak dari semua titik input ke semua titik dekat dihitung. Tabel output bisa sangat besar. Misalnya, jika fitur input dan dekat masing-masing memiliki 1.000 poin, maka tabel output dapat berisi satu juta catatan.
sumber
Titik terjauh ke set poin Anda akan menjadi kebalikan dari titik paling dalam set Anda. Misalnya, jika titik paling dalam di set Anda memiliki koordinat 49 derajat Utara dan -144 derajat Timur, maka titik timbal balik dan terjauh akan memiliki koordinat 49 derajat Selatan dan 36 derajat Barat. Ini tidak sepenuhnya benar karena Bumi tidak bulat sempurna, melainkan geoidal; oleh karena itu, kebenaran poin hasil Anda sangat bergantung pada proyeksi dan sistem geografis apa (ortografis, ortorektifikasi ...) yang Anda gunakan. Akan sangat membantu untuk menemukan timbal balik untuk seluruh set (mentransfer antipode untuk satu set) dan kemudian menjalankan analisis permukaan dalam medan yang dicakup oleh set poin antipode, karena medan mungkin sangat. Saya berasumsi pertanyaan Anda bukan tentang poin pada benda luar angkasa, seperti planet lain, atau bulan. Maaf, Saya tidak punya kode VB untuk Anda. 🙄
sumber