Membuat peta aliran radial yang menunjukkan garis lengkung jarak pendek (20km) menggunakan ArcGIS untuk Desktop?


10

Esri telah memberikan instruksi tentang cara membuat peta aliran radial tapi saya pikir garis melengkung hanya akan diproduksi dalam jarak yang jauh, seperti setengah bola dunia.

Untuk jarak pendek (20 km), garis geodetik mungkin akan tetap terlihat cukup lurus. Untuk terus menggunakan proses ini untuk peta aliran radial jarak pendek, maka, saya pikir kita bisa mengedit pengaturan datum sehingga bumi lebih kecil, maka Anda akan mendapatkan garis lengkung yang bagus untuk jarak yang kecil. Adakah yang tahu bagaimana melakukan ini?

Atau, apakah ada alat lain di ArcGIS Desktop 10.0 yang digunakan untuk membuat garis melengkung? Saya memiliki 90 poin yang harus saya hubungkan hingga 54 poin, akan lebih baik untuk mengotomatiskannya daripada harus menggambar garis secara manual.


2
Pertanyaan Anda diajukan di gis.stackexchange.com/questions/5204/… dalam konteks non-ArcGIS. Anda mungkin menemukan jawaban yang menarik.
whuber

1
Saya punya ide yang berbeda dengan whuber's, tetapi dia mungkin lebih baik memberikan tujuan Anda. Saya hanya berpikir seseorang dapat menambahkan jumlah sembarang tikungan ke dalam busur, mirip dengan apa yang dilakukan dalam diagram busur . Seseorang kemudian dapat mengubah arah puncak tergantung pada arah aliran. Intinya alur kerja akan sama untuk lingkaran besar, pisahkan string garis menjadi banyak segmen lurus yang lebih kecil. Tikungan sewenang-wenang dapat mengakomodasi proyeksi lokal apa pun.
Andy W

@AndyW, saran Anda kedengarannya lebih berguna bagi saya (meskipun tidak ada pelanggaran untuk whuber, yang membuat saran bagus untuk lebih banyak pengguna capaple). Saya tidak dapat memahami atau menerapkan saran Whuber. Saya mencari solusi sederhana 'out of the box', lebih disukai ekstensi ArcGIS. Saya melihat diagram busur, ada beberapa contoh luar biasa di sana. Saya tidak melihat solusi di sana untuk peta statis sederhana yang menunjukkan hubungan banyak ke banyak (tetapi biasanya satu ke banyak) antara, dalam kasus saya, situs penggusuran dan situs relokasi.
ndthl

Jawaban:


5

Berikut ini adalah ilustrasi dari alur kerja yang saya sebutkan di komentar di atas, dan meskipun saya tidak tahu ada rutinitas pra-kaleng sederhana untuk melakukan ini, saya telah melampirkan spreadsheet excel bahwa orang dapat mengimpor satu set koordinat tujuan-asal dan lembar kemudian membuat satu set atau koordinat garis melingkar (spreadsheet di sini ). Ini memiliki formula yang diatur sehingga cukup mudah untuk mengimpor koordinat OD baru dan memperluas formula untuk mengisi hasil, tetapi saya akan pergi melalui logika proses secara lebih eksplisit, dan yang lain dapat memberikan saran bagaimana menulis skrip sepenuhnya dalam ArcMap (atau apa pun).

Secara singkat, saya pikir ini masuk akal untuk memvisualisasikan data OD terutama karena alasan yang sama garis lingkaran besar yang populer, mereka memberikan perbedaan visual yang lebih antara garis. Pendekatan yang saya sarankan juga memiliki satu keunggulan dibandingkan garis lingkaran besar, yaitu bahwa arah aliran dikodekan dalam setengah lingkaran. Dalam jawaban lain di situs ini saya memberikan pandangan yang lebih umum tentang teknik visualisasi untuk pemetaan aliran, dan banyak dari teknik yang sama dapat diterapkan selain membuat busur seperti ini.

Jadi, untuk merinci bagaimana seseorang menggambar garis seperti saya saran, pada dasarnya saya hanya memiliki 3 langkah untuk proses, 1) menemukan orientasi aliran, 2) menemukan titik tengah dan jarak aliran, 3) memperlakukan titik tengah sebagai pusat lingkaran, dan kemudian gambar busur (setengah lingkaran dari asal ke tujuan). Agar lebih jelas, saya mulai dengan sepasang koordinat asal yang diproyeksikan (x1,y1)dan koordinat tujuan (x2,y2).

Jadi 1) temukan orientasi aliran. Yang pertama menggunakan rumus ATAN((y2 - y1)/(x2 - x1))dan kemudian tergantung pada arah memberikan orientasi tergantung pada apakah arah itu ke timur atau ke barat. Contoh pseudocode di bawah ini (saya menetapkan poin OD yang keduanya pada koordinat yang sama dengan orientasi nol). Di sini varaible or_raddimaksudkan sebagai singkatan untuk "orientasi dalam radian" dan pimengacu pada nilai pi.

#tan_or = ATAN((y2 - y1)/(x2 - x1)).
Do If x2 = x1 and y1 <= y2. 
    compute or_rad = 0.
Else if x2 = x1 and y1 > y2.
    compute or_rad = pi.
Else if x1 > x2.
    compute or_rad = 270/180*pi - #tan_or.
Else if x1 < x2.
    compute or_rad = 90/180*pi - #tan_or.
End If.

2) Temukan titik tengah dan jarak aliran. Ini sangat sederhana, untuk hanya satu set pasangan berpasangan, titik tengah dalam (x, y) akan berupa koordinat (x1+x2/2,y1+y2/2). Jadi mari kita tentukan mid_x = (x1 + x2)/2dan mid_y = (y1 + y2)/2untuk bagian selanjutnya. Jarak menggunakan teorema pythagoreum sederhana distance = SQRT((x1 - x2)^2 + (y1 - y2)^2).

3) Kemudian diberi informasi itu, gambar lingkaran yang diberikan atas jumlah derajat dan jari-jari yang telah ditentukan sebelumnya (yang merupakan setengah jarak antara dua titik). Sebagai contoh, katakanlah kita mulai dengan satu set pasangan koordinat OD di (1,3):(3,2). Orientasi dalam derajat akan ~ 116 (dan dalam radian ~ 2), titik tengah x, y akan berada (2,2.5)dan jarak antara dua titik adalah sekitar 2.2.

Jadi katakanlah kita ingin menggambar setengah lingkaran sekitar 180 derajat. Dalam pseduo-code (menggunakan variabel yang sudah saya tentukan) iterasi akan terlihat seperti;

for i in (0 to 180 degrees) 
    rad_i = i/180*pi. /*converts i from degrees to radians
    step_or = pi - rad_i /*for clarity, this makes the circle go from origin to destination
    radius = distance/2
    Arc_X = mid_x + sin(or_rad - step_or)*radius.
    Arc_Y = mid_y + cos(or_rad - step_or)*radius.

Dimasukkan di bawah ini adalah diagram dari koordinat asli yang saya tentukan di atas. Mulai dari nol dan berakhir di 180 memastikan keberadaan dan titik akhir berada di lokasi yang sama. Menyesuaikan loop untuk memiliki lebih banyak langkah (busur lebih rinci) atau lebih sedikit (busur kurang rinci) harus cukup jelas.

masukkan deskripsi gambar di sini

Untuk diketahui, utas lain di situs membahas pembuatan garis dari data titik (lihat tag ). Saya punya contoh di spreadsheet xls terlampir, dan saya menggunakan alat arcmap ET Geo-wizards untuk mengkonversi koordinat spreadsheet ke garis shapefile. Busur dalam contoh data dalam spreadsheet terlampir kemudian terlihat seperti ini;

masukkan deskripsi gambar di sini

Satu pembaruan sederhana namun berpotensi bermanfaat untuk pengaturan saat ini adalah memperbarui rumus untuk memungkinkan jumlah eksentrisitas dalam busur yang ditentukan sebelumnya, meskipun saya belum yakin bagaimana melakukannya dalam beberapa upaya saya sejauh ini. Saya menantikan saran dan umpan balik dari komunitas di sini atas saran saya.


1
ini tanggapan yang sangat fantastis! walaupun saya tidak mengerti bagaimana cara membuat kode, saya pikir saya memiliki sesuatu yang baik untuk dilanjutkan yang dapat saya diskusikan dengan seorang teman. Saya mengetahui alat et geowizards untuk menggabungkan dua poin dengan garis lurus - saya hanya tertarik pada garis lengkung untuk keperluan kartografi.
ndthl
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.