Mengidentifikasi TANAH DEPAN menggunakan ArcGIS ModelBuilder

8

Saya bekerja di balai kota. Saya perlu mengidentifikasi bagian depan tanah. Di sini, di negara saya, kami menyebutnya "TESTADA" atau "FRENTE DE LOTE". Saya tidak menemukan istilah yang tepat dalam bahasa Inggris.

DEPAN TANAH adalah garis di dekat pintu masuk ke tanah. Artinya, adalah masuknya sebuah rumah. Di sinilah gerbang masuk, dengan nomor port. Untuk mencontohkan gambar berikut di bawah ini.

Peta sebelumnya: sebelum

Peta nanti dengan garis depan medan - Seperti seharusnya: setelah

BANYAK hanya memiliki satu DEPAN TANAH. Di sudut-sudut itu jalan utama. Ada gedung-gedung tua yang akan tetap seperti itu karena ini bersejarah. Saat ini kami melakukan garis-garis FRONT LAND ini secara manual. Kami ingin mengotomatiskan bagiannya. Itu bisa menggunakan ModelBuilder.

Pendeknya:

  • Dalam: LAPISAN TANAH, LAPISAN LAPISAN, LAPISAN BANGUNAN.
  • Output: LAPISAN DENGAN FRONTS OF LAND LINES.

Contoh lain dari lot depan: Istilah FRONT OF LAND mengacu pada bagian depan properti. Input dari rumah adalah bagian depannya. masukkan deskripsi gambar di sini

ChristianAbreu
sumber
Saya menduga Anda ingin memulai dengan alat 'poligon ke garis' untuk memecah poligon Anda menjadi segmen yang dapat dipilih.
Craig
Lihat juga bagaimana saya menentukan apakah sebuah jalan dimiliki secara pribadi atau tidak? , untuk memisahkan jalan dari gang.
Peter Krauss

Jawaban:

2

Itu akan memerlukan beberapa kode, jadi saya akan menunjukkan beberapa pedoman sehingga Anda dapat mulai dengan sesuatu dan kemudian mengajukan lebih banyak pertanyaan. FRONT OF LAND seperti yang ditunjukkan dapat diidentifikasi dengan dua metode, keduanya menggunakan hubungan spasial:

Metode 1) Ini adalah satu-satunya sisi poligon yang tidak menyentuh poligon lain. Temukan poligon yang menyentuh, pisahkan poligon TANAH, periksa sisi-sisinya yang menyentuh poligon yang tidak menyentuh apa pun.

atau

Metode 2) Ini adalah sisi poligon yang paling dekat dengan jalan. Temukan jalan terdekat dengan poligon TANAH, pecahkan poligon, temukan sisi yang terdekat dengan jalan.

Ini dapat dilakukan dengan Postgis atau Shapely jika memilih untuk mengikuti jalur open source. Pokoknya saya akan merekomendasikan untuk melihat manual Shapely untuk mendapatkan gagasan tentang hubungan spasial yang dapat diuji, sebagian besar sama pada perangkat lunak apa pun.

Pablo
sumber
2
apa yang Anda sarankan untuk banyak sudut?
Craig
Untuk mendeteksi sudut yang saya sarankan untuk menggunakan metode 1, ia akan memilih seluruh sudut (depan dan samping) dengan yang Anda bisa pilih segmen terpanjang. (seperti yang ditunjukkan dalam gambar, sudut tanah memiliki bagian depan pada segmen terpanjang - edit: ada dua pengecualian di tengah atas).
Pablo
2
dilihat dari foto, itu tidak selalu terjadi. Saya akan menyarankan metode ketiga di mana segmen depan berada di sepanjang sisi parsel di mana alamat berasal. Tentu saja ini hanya bermanfaat jika lot memiliki alamat, dan banyak lot kosong tidak.
Craig
+1 Itu ide yang bagus! Mungkin campuran metode 2 + alamat ... Saya sarankan Anda untuk menuliskannya pada jawaban.
Pablo
1

Menyempurnakan @ Pablo jawaban yang baik, dengan definisi (di bawah) dan menambahkan daftar periksa untuk setiap metode, membatasi penggunaannya. Definisi:

Block layer adalah tabel SQL dengan poligon yang mewakili batas-batas blok kota , yang atau tanpa trotoar , tetapi melestarikan pribadi (lihat depan-1 ) atau lorong-lorong yang tidak dapat ditutup (lihat depan-2 ) ke dalam blok.

Lapisan Lot adalah tabel SQL dengan poligon yang mewakili batas tanah banyak .

Lapisan jalan adalah tabel SQL dengan garis-garis yang mewakili jalan ... Atau, di "tanah sungai" juga sungai (dan kereta api bisa menjadi "depan"?).

Front-1 : metode @ Pablo adalah tentang konsep umum front , di mana beberapa lot memiliki lebih dari "satu depan tentang satu jalan", karena berada di sudut (memiliki dua atau lebih segmen depan tentang semua jalan di sekitarnya).

Front-2 : "front" adalah tentang jalan yang ditunjukkan dalam alamat resmi (atau alamat korespondensi) dari lot. Mereka, semua lot (bahkan di sudut) hanya memiliki satu segmen jalan depan. PS: jika sistem alamat Anda dan lapisan blok menerima banyak " condominuim horisontal " dan kondominium-addressnya, "jalan pribadi" harus menunjukkan jalan biasa .

Ilustrasi pertanyaan @ ChristianAbreu menunjukkan konsep Front-2 (!) , Bukan yang umum.

Catatan teknis: Anda bisa pasang Python dengan PostGIS atau dengan alat lain yang sesuai dengan OGC (untuk spasial SQL) untuk mengekspresikan secara formal daftar periksa.


Periksa daftar untuk metode # 1 - sisi poligon yang tidak menyentuh poligon lain

Metode ini memiliki pendekatan topologi, hanya berlaku untuk blok di mana semua area lot membentuk area blok mereka. Jadi, untuk menggunakan metode ini, Anda perlu lapisan blok .

Mengekspresikan secara formal: periksa apakah blkarea~=sum_lotareauntuk setiap blok,

SELECT ST_Area(geom) INTO blkarea FROM  block WHERE gid=each1; 
SELECT SUM(ST_Area(geom)) INTO sum_lotarea FROM lot WHERE gid_block=each1;

Atau, jika goemetries tidak tepat, atau jika blok menggunakan trotoar, gunakan w paling sedikit untuk ST_Buffer(block.geom,-w)memastikan ST_Within(lot.geom lot,ST_Buffer(block.geom,-w))semua lot.

CATATAN: periksa juga

  • jika semua lot berada di dalam blok, ST_Within(lot.geom,block.geom)untuk semua lot dan blok terkait.

  • jika, untuk semua lot yang tidak terputus-putus, tidak ada area yang tumpang tindih. not(ST_Overlaps(a,b))atau area persimpangan ini tidak memiliki arti (yaitu 2*ST_Area(ST_Intersection(a,b))/(ST_Area(a)+ST_Area(b))<0.01).

Periksa daftar untuk metode # 2 - sisi poligon terdekat dengan jalan

Metode ini memiliki pendekatan geometris, berdasarkan jarak euclidean minimal .

Periksa apakah layer jalan hanya memiliki "jalan umum" , karena Anda harus memisahkan "jalan umum" (yang dapat mengungkapkan alamat resmi suatu tanah) dari "lorong" (dapat berupa bagian dalam dari tanah tersebut atau "blok kondominium") ").

Kemudian, periksa secara visual, apakah semua "blok visual" dikelilingi oleh jalan-jalan. Jika layer jalan Anda tidak lengkap, metode ini tidak valid untuk blok itu.

Kesimpulan: aturan untuk memilih metode

Untuk definisi Depan-1 :

A) Ketika Anda memiliki data jalan yang baik, gunakan metode # 2 ;

B) Ketika Anda memiliki layer blok dan layer lot konsisten, gunakan metode # 1

C) Ketika Anda tidak memiliki data yang baik, coba pisahkan data spasial Anda menjadi beberapa bagian di mana Anda dapat menggunakan satu atau beberapa metode lain. PS: bahkan tanpa lapisan blok Anda dapat membangun bergabung dengan banyak tetangga, atau dengan jawaban yang bagus dari pertanyaan ini .

Untuk definisi Front-2 : Anda memerlukan data jalan yang baik, karena definisi Front-2 memerlukan nama jalan (dari alamat lot). Gunakan metode # 2 dan lepaskan segmen depan yang tidak memiliki nama jalan yang sama dari alamat lot.

Peter Krauss
sumber