ArcGIS Desktop kullanarak poligonu belirli boyutlara bölmek?


26

Bir şekil dosyasında birkaç tane düzensiz şekilli çokgen var. Her poligonu üç alana bölebildiğim ve bu alanların büyüklüğünün ne kadar olduğunu belirtmek istiyorum (önceki toplam alana toplanırlar). Alt çokgen şeklinin ne olduğu önemli değildir, çünkü görselleştirme amaçlıdır.

Bunu nasıl yapabilirim? Kullanabileceğim standart bir algoritma var mı?


Düşündüğüm bir yaklaşım, poligonu oluşturan tüm noktaları elde etmekti. Sonra, düz bir çizgi kullanarak iki rastgele birleştiririm, poligonu böler, sonra alanın tatmin edici bir tolerans içinde olup olmadığını kontrol ederim. Çok küçük olsaydı, noktayı bir yönde değiştirirdim; çok büyük olsaydı ters yönde bir noktaya geçerdim.

Yanıtlar:


34

Bu sorunun birçok geçerli çözümü var. Bunlardan biri açıklamanıza benzer şekilde çalışır, ancak çokgenleri "rastgele" konumlara dilimlemek yerine, hesaplama miktarını en aza indirecek şekilde tasarlayabilirsiniz.

İşte temel algoritma. Bu giriş herhangi bir düzlemde tarama yönü oluşur, bir çokgen p sıfır olmayan bir alanın, bir hedef alanı , bir sıfır ve çokgenin alanı ve negatif olmayan bir eşik arasında t (alan birimi olarak). Amacı, P'yi , süpürme yönüne dik bir çizgiyle, çizginin sağında ve diğeri çizginin solunda olmak üzere iki parçaya bölmektir; öyle ki, sağ bölge ile hedef alan a arasındaki fark , daha büyük t .

L , süpürme yönüne dik herhangi bir yönlendirilmiş çizgi olsun . Tanımlama f (L) P alanının L sağ eksi bulunan olduğu bir . Bu şartlarda görev, f'nin sıfırını bulmaktır . Çünkü f türevlenebilir olması pek mümkün değildir, ama her iki sürekli kullanımıdır bir ikiye bölme yöntemi, sekant yöntemi veya - benim favori- -Brent yöntemi . Hepsi basit ve yakınsama garantisi. Bağımsız değişken için yakınsama toleransı için t kullanın .

Bu kadar. Bunu kodlamanın ne olacağını düşünelim. Kök bulma rutindir - bunun için genel bir kod öbeğini kullanabilirsiniz - böylece GIS çalışması f kodlamasıyla sonuçlanır . Bunu yapmak gerektirir

1.  Splitting the polygon by a line.
2.  Computing the area of the piece(s) to the right of the line.

Her iki işlem de hemen hemen her vektöre dayalı GIS'de gerçekleştirilir. Değilse, çizgiyi, çizginin sağındaki yarım düzlemi temsil eden çok büyük bir dikdörtgen ile değiştirebilirsiniz. 1. adım olur

1'. Clip the polygon to the rectangle.

Bu gerçekten basit bir işlem.

Kök bulmaya başlamak için, f nin sıfırının garanti edileceği bir aralık bulmanız gerekir . Bu kolaydır: çokgenin zarfını ("sınırlayıcı kutu") çizgi süpürme yönüne yansıtın. Projeksiyon istediğiniz aralıktır.

Bu sorunun uzun bir tarihi var. Bu algoritmayı uzun zaman önce ArcView 3.x için uyguladım ve eski ESRI kullanıcı forumlarında defalarca tanımladım. Google

huber split çokgen sitesi: forums.esri.com

tartışmalar için, kodlara bağlantılar, donanımlar ve varyasyonlar (çokgenleri mümkün olduğu kadar küçük boyutlardaki parçalara bölmek gibi) ve tarama verileri için algoritmalar.

Amerika kıtasındaki devletlerin her birinin üçte biri gölgeli olarak (eşit alan projeksiyonunda) nasıl göründüğü işte budur. Belli ki süpürme yönü dikeydi.

alt metin


6

ET Spatial'ın "GeoTools" adlı hazır bir aracı var. "ET Çeşitli" adında bir araç var. Bu araçta, çokgenleri bölmek için iki yol vardır. Yüzdeye ve Bölgeye Göre (birkaç birim örn. M2, hektar vb.). Bu araç dört taraftan herhangi birinden çokgenler ayırır, yani resimlerin gösterdiği gibi NESW. "Yukarıdan aşağıya" yani Kuzeyden Güney'e yöntem kullandım.

Bölünmüş


0

ArcGIS Pro 2.3'te Subdivide Polygon adlı yeni bir araç var .

Bir parça veya verilen parça alanı verilen bir çokgenin bölünmesine / bölünmesine izin verir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.