Menemukan fitur paket poligon dengan bagian depan di beberapa jalan menggunakan ArcGIS Desktop?

8

Departemen Pekerjaan Umum ingin mengetahui berapa banyak properti di kota yang memiliki trotoar di bagian depan dan belakang. Untuk mendapatkan ini, saya sedang mencari metode untuk menemukan parsel dengan bagian depan di lebih dari satu jalan. Saya bekerja di ArcInfo 9.3.1 (file geodatabase). Saya mencari solusi yang tidak memerlukan skrip atau mengunduh alat lain. Garis tengah jalan dan poligon paket tersedia; tidak ada lapisan trotoar.

Menggunakan beberapa ide dari forum ini , saya telah mengembangkan dan menguji suatu proses. Beberapa hasil membingungkan (lot sudut mungkin atau mungkin tidak termasuk dalam hasil akhir-saya pikir DPW tidak ingin lot sudut disertakan) dan saya khawatir tentang meningkatkannya hingga 42.000 paket penuh (saya menguji 1.223 paket) ). Apakah ada langkah-langkah untuk ditambahkan ke metode ini untuk meningkatkan hasil? Apakah ada cara lain untuk mencapai hal yang sama yang bisa lebih otomatis melalui pembuat model?

  • Jalankan Feature to Line tool pada kelas fitur poligon paket (dua garis dibuat untuk batas yang dibagi oleh poligon dan garis mempertahankan id paket)
  • Bangun topologi geodatabase dengan kelas fitur garis parcel yang baru dibuat ini menggunakan aturan "tidak boleh tumpang tindih" lalu validasi topologi (garis interior akan salah)
  • Di ArcMap, tambahkan topologi dan kelas fitur dan buka inspektur kesalahan lalu cari kesalahan> pilih semua kesalahan> klik kanan> pilih fitur> hapus (untuk menghapus garis interior)
  • Jalankan Frekuensi pada fitur yang tersisa di kelas fitur garis paket dengan id paket sebagai bidang frekuensi - pilih catatan dalam tabel di mana Frekuensi> 1 dan ekspor ke tabel baru
  • Gabung Frekuensi> 1 tabel untuk mengemas poligon berdasarkan id paket, hanya menyimpan catatan yang cocok - ekspor hasil gabung
cwb
sumber
Apakah Anda memiliki / atau akses ke Ekstensi COGO? webhelp.esri.com/arcgisdesktop/9.3/…
Mapperz
Saya bisa menambahkan toolbar COGO di ArcMap. Saya tidak pernah menggunakannya. COGO tidak terdaftar di alat> ekstensi.
cwb

Jawaban:

8
  1. Jika jaringan jalan Anda dibagi berdasarkan segmen, larutkan buffer berdasarkan nama jalan atau atribut umum sehingga setiap segmen jalan tidak dihitung sebagai dua jalan terpisah di langkah berikutnya.

  2. Buffer garis tengah jalan Anda dengan jumlah standar - lebih dari setengah lebar ROW pada umumnya, tetapi tidak terlalu besar sehingga akan tumpang tindih dengan paket yang tidak berada di depannya. Anda mungkin ingin memilih buffer yang berbeda untuk kelas jalan yang berbeda. Saat Anda buffer, jangan gabungkan poligon.

  3. Spasial bergabung dengan paket ke buffer jalan, memilih "satu ke banyak". Kolom "count" pada hasil harus memungkinkan Anda untuk mengidentifikasi semua paket dengan dua bagian depan.

Sekarang Anda memiliki meja dengan baris untuk setiap tumpang tindih antara paket dan jalan. Anda dapat dengan mudah merangkum ini untuk menemukan semua paket tumpang tindih dua atau lebih jalan menggunakan GIS atau database. Tetapi menghilangkan lot sudut akan lebih sulit. Inilah satu metode luas:

  1. Menyiapkan topologi untuk lapisan penyangga dengan aturan "tidak boleh berpotongan".

  2. Ekspor semua kesalahan ke kelas fitur persimpangan baru.

  3. Spasial bergabung dengan persimpangan ke lapisan penyangga, memilih "satu ke banyak".

Pada titik ini Anda memiliki dua tabel: satu dengan semua bagian depan dan satu dengan semua persimpangan antara jalan. Ini tidak akan mudah, tetapi Anda dapat menulis kueri SQL yang memilih menemukan semua paket yang memiliki dua bagian depan di mana bagian depan tersebut tidak berpotongan. Hasilnya akan menjadi himpunan semua paket yang memiliki beberapa bagian depan yang tidak berpotongan.

Salah satu keuntungan dari metode ini adalah bahwa ia menghindari memilih parsel dengan tepi yang tidak di jalan, seperti di mana parsel berdekatan dengan gang, fitur air, jalur kereta api ROW, dll. Kerugiannya adalah bahwa buffering tidak akan sempurna, dan Anda masih harus memeriksanya secara visual untuk mencari kesalahan.

Saya tidak yakin bagaimana cara menulis SQL - mungkin orang lain bisa ikut campur.

Edit Pemikiran tentang SQL:

Akan cukup sederhana untuk menyelesaikan paket dengan dua bagian depan seperti di bawah ini. Maka Anda mungkin perlu melihat secara manual bidang dengan lebih dari dua bagian depan, tetapi mudah-mudahan akan ada beberapa, dan sebagian besar akan menjadi banyak sudut.

Ini mungkin bekerja untuk memilih hanya paket non-sudut dengan dua bagian depan:

select ParcelID from parcels
where parcelID not in (
    ((select Parcels1.parcelID, intersections.intersectionID from
     intersections left join
        (Select first(RoadID) as Road1, last(RoadID) as Road2, count(*) as frontages, ParcelID
        from Parcels
        where count(*) = 2
        group by ParcelID) as Parcels1
    on intersections.RoadID = Parcels1.Road1) as int1
inner join
    (select Parcels2.parcelID, intersections.intersectionID from
    intersections left join
        (Select first(RoadID) as Road1, last(RoadID) as Road2, count(*) as frontages, ParcelID
        from Parcels
        where count(*) = 2
        group by ParcelID) as Parcels2
    on intersections.RoadID = Parcels2.Road2) as int2
on int1.intersectionID on int2.intersectionID))
Patrick
sumber
1
+1 Solusi yang sangat kreatif: penggunaan buffering yang bagus. Penyatuan paket dan penyangga jalan akan melakukan trik juga.
whuber
Saya suka bahwa metode buffer menghindari memilih paket pada lorong atau ROW non-jalan. Namun, lebih banyak bantuan dengan persimpangan akan sangat bagus. Topologi menunjukkan persimpangan sebagai kesalahan, tetapi bagaimana kesalahan diekspor? Memilih fitur yang menyebabkan kesalahan mengembalikan buffer bukan persimpangan. Apakah ada cara untuk menentukan persimpangan tanpa menggunakan kode atau mengunduh alat baru?
cwb
Oh, maaf - saya lupa bahwa saya menggunakan skrip ketika sebelumnya saya mengekspor kesalahan topologi. Hanya untuk referensi, alat untuk melakukan itu ada di sini .
Patrick
1
@ whuber's saran memberi saya ide untuk menyelesaikan ini tanpa menggunakan pernyataan SQL yang panjang. Persimpangan buffer dan parsel, termasuk semua atribut. Kelas fitur yang dihasilkan harus memiliki atribut yang Anda butuhkan untuk menentukan poligon yang mewakili persimpangan. Setelah Anda memiliki set persimpangan, Anda dapat menghapus paket yang memotong mereka dari set semua paket.
Patrick
Jika Anda menggunakan metode ini, lakukan penggabungan spasi pada langkah 3 sebagai "satu ke satu". Ini akan memberi Anda hitungan jumlah frontages untuk setiap paket, memungkinkan Anda untuk memilih hanya paket dengan setidaknya dua frontages.
Patrick
3

Saya dapat memberikan hasil ke Pekerjaan Umum sehingga staf dapat memeriksanya sesuai dengan kriteria mereka. Ini adalah garis besar dari prosedur terakhir saya.

  1. Pisahkan garis tengah jalan dengan kelas jalan menjadi kelas fitur baru (US & State Highway, Jalan Kota Utama / Jalan Kota, Drive Pribadi / Jalan Mobil, abaikan Interstate, Ramp, Path, Cemetery)

  2. Buat buffer di sekitar setiap kelas fitur jalan: Tipe akhir FLAT, Larutkan tipe LIST pada bidang id nama jalan, ukuran buffer tergantung pada kelas jalan

  3. Gabungkan kelas fitur buffer

  4. Berpotongan kelas fitur buffer yang digabung dengan poligon paket

  5. Jalankan alat Frekuensi pada kelas fitur Intersect dengan bidang frekuensi = bidang id paket

  6. Ekspor pilihan dari tabel Frekuensi berdasarkan bidang frekuensi (abaikan frekuensi = 1, pilih frekuensi = 2, frekuensi = 3, frekuensi = 4, frekuensi = 5+)

  7. Gabung setiap tabel frekuensi untuk mengemas poligon pada bidang id paket - hanya mencocokkan catatan & mengekspor fitur kelas yang bergabung

  8. Tinjau setiap kelas fitur yang diekspor - perhatikan area di mana buffer tidak mencakup bidang seperti cul-de-sacs

frekuensi 5+ mencakup banyak sudut dengan bagian belakang belakang tambahan atau bentuk aneh, banyak besar (lapangan golf) atau banyak sudut dengan artefak penyangga, banyak sudut yang mencakup dua sudut, parsel dengan jalan yang melewati

frekuensi 4 akan banyak sudut

frekuensi 3 termasuk parsel berbatasan dengan banyak sudut, parsel multi-bagian besar dibagi dengan jalan, artefak dari penyangga lintas jalan, parsel dengan 3 jalan masuk

frekuensi 2 termasuk bidang dengan bagian depan pada dua jalan, tetapi perhatikan untuk bidang sudut di mana batas bidang sudut terlalu jauh dari penyangga untuk berpotongan, jalan di dalam bidang, 2 pintu masuk ke bidang di jalan yang sama, jalan berganti nama di depan parsel, antar negara bagian parsel

cwb
sumber