Lagi

Membuat polyline tegak lurus antara titik yang ada dan polyline menggunakan arcpy


Inilah situasi saya - Saya sedang mengerjakan sebuah proyek yang membutuhkan 20.000+ garis konektor pendek dibuat, masing-masing ditarik dari titik ke lokasi bentak pada polyline terdekat sehingga garis konektor yang dihasilkan tegak lurus terhadap polyline.

Jika dilakukan dengan arcpy, ini memerlukan skrip yang dapat a.) menemukan polyline terdekat, b.) menghitung tempat pada polyline yang memungkinkan untuk membuat garis tegak lurus, c.) membuat koordinat sementara di lokasi itu, dan d .) membuat garis konektor.

Apakah ada yang mencoba sesuatu seperti ini? Perintah spesifik apa yang mungkin diperlukan? Terima kasih sebelumnya atas bantuan Anda.

-Michael


Lihatlah skrip yang ditautkan di bawah ini. Mungkin itu akan berhasil untuk Anda, atau mungkin Anda dapat memodifikasinya agar sesuai dengan kebutuhan Anda:


Maaf, sibuk kerja dan belum bisa posting sampai sekarang. Di bawah ini adalah skrip yang saya gulung dari saran.

Ini mengejutkan saya di belakang bahwa ini juga dapat dicapai dengan snap tepi alih-alih perintah dekat - sepertinya arcGIS pada dasarnya melakukan perintah dekat pada snap.

-Michael

impor arcpy, coba: inPoints = arcpy.GetParameterAsText(0) nearLines = arcpy.GetParameterAsText(1) outFC = arcpy.GetParameterAsText(2) scratchWorkspace = arcpy.GetParameterAsText(3) # Dapatkan ruang kerja awal. #scratchWorkSace = env.scratchWorkspace # Dapatkan referensi spasial dari input spasialRef = arcpy.Describe(inPoints).spatialReference # Tentukan jalur kelas fitur keluaran sementara dan beri nama tempFC = os.path.join(scratchWorkspace, "temp") # Salin masukan fitur titik ke kelas fitur sementara arcpy.CopyFeatures_management(inPoints, tempFC) # Tambahkan koordinat XY untuk fitur titik arcpy.AddXY_management(tempFC) # Lakukan Analisis Dekat arcpy.Near_analysis(tempFC, nearLines, "", "LOCATION", "NO_ANGLE" ) # Buat jalur konektor FC menggunakan XY To Line arcpy.XYToLine_management("tempFC", "outFC", "POINT_X", "POINT_Y", "NEAR_X", "NEAR_Y", "GEODESIC", "", "spatialRef") kecuali Pengecualian, e: # Jika terjadi kesalahan, cetak nomor baris dan pesan kesalahan impor traceback, sys tb = sys.exc_info()[2] print "Line %i" % tb.tb_lineno print e.message

Anda juga dapat mencoba perintah Near. Ini akan menambahkan koordinat XY terdekat pada Garis FC ke tabel Titik FC. Sebagian besar waktu ini tegak lurus. Jalankan Tambahkan koordinat XY untuk mengisi koordinat Titik xy. Anda dapat dengan mudah membuat garis yang menghubungkan dua lokasi dengan "XY to Line", baru di ArcGIS 10. Tidak perlu terlalu banyak untuk menguji ini.


Jika tidak ada garis tegak lurus yang dapat ditarik dalam dua titik akhir dari segmen polyline maka titik terdekat adalah titik akhir yang lebih dekat. Jadi, pernyataan ini tidak selalu benar:

"Jika garis dari titik ke titik "terdekat" sepanjang polyline tidak tegak lurus dengan polyline, maka titik "terdekat" itu salah!"


Tonton videonya: Cara Mudah Menggabungkan Polygon dengan Polyline atau Garis dan Menggabungkan Garis dengan Garis (September 2021).