Como dissolver polígonos sobrepostos?

10

Eu tenho uma consulta sobre a dissolução de recursos de polígono no ArcGIS 9.3. Eu só tenho a licença básica e um conhecimento extremamente básico do VB.

Eu tenho um grande shapefile com cerca de 4500 polígonos e quero saber se há alguma maneira de dissolver os que se sobrepõem? Basicamente, quero transformar essa camada em um shapefile que contenha áreas separadas, portanto, onde um polígono estiver sozinho, ele permanecerá, mas onde vários polígonos se sobrepõem, eles se dissolvem em 1, com cada área separada com seu próprio conjunto de atributos. O shapefile muda com bastante frequência e, até agora, eu tenho analisado todas elas e dissolvido manualmente as áreas sobrepostas usando a ferramenta de edição, mas tenho certeza de que há uma maneira muito mais rápida de fazer isso!

Alguma idéia de como isso pode ser alcançado?


Eu experimentei usar a ferramenta dissolver e ingressar na tabela de atributos exportados e isso funciona perfeitamente! Eu pensei que a ferramenta dissolver só funcionava em atributos e não em localização espacial, então é extremamente útil saber. Além disso, o código ModelBuilder é

PolyGeo
fonte
Ótimas respostas. Brad Nesom, como você obtém o valor da tabela de atributos originais no shapefile dissolvido?
Gunnar
Eu preciso do que você fez, mas quando executo a ferramenta de dissolução, ela apenas mescla tudo o que ele apresenta na minha forma, para que não esteja funcionando. Como você fez isso funcionar?
Federico Gómez

Respostas:

13

Talvez esteja faltando alguma coisa, mas a ferramenta Dissolve básica (em algum lugar da caixa de ferramentas de gerenciamento de dados) não fará isso por você? Não há necessidade de mexer em nenhum código, como na resposta do artwork21. Basta abrir a ferramenta dissolver, selecionar sua classe de recurso, não selecionar nenhum campo para dissolver e desmarcar a opção 'Criar poygons de várias partes', caso contrário, todos os seus polígonos se tornarão um grande poli de várias partes.

Não tenho o Arc na minha frente agora, mas se estou lendo sua pergunta corretamente, já o fiz antes de usar este método. A única preocupação aqui são os atributos na tabela. Você conhece os dados e, portanto, terá que escolher como combinar cada campo na parte Campos da estatística da ferramenta.

Se esse processo for feito com muita frequência ou você desejar, automaticamente, faça-o com o construtor de modelos e exporte-o para um script, mas essa ferramenta levará 10 segundos para ser preenchida.

MWrenn
fonte
14

@ Tom Parker - MWrenn está correto.
Você tem a opção de selecionar um atributo para dissolver (isso fará com que um atributo seja dissolvido) ou nenhum atributo (isso fará uma dissolução espacial).

escolha as estatísticas e quaisquer atributos que você deseja transportar. (isso não vai funcionar como você deseja).

opções

Antes de fazer a dissolução. crie um novo campo e calcule o FID nele.
Em seguida, exporte um dbf de seus atributos e você poderá (juntá-los de volta aos polígonos posteriormente).

Se você precisar de ajuda, informe-me e publicarei mais capturas de tela ou encontrarei alguma ajuda no centro de recursos do arcgis.com.

Se você observar na captura de tela a seguir, o nome é o mesmo em todos os polígonos (9.3.1 parece não se dissolver corretamente do arcmap). Experimente do arccatalog.

depois dissolver

Talvez alguém tenha um método melhor.

A única outra maneira em que consigo pensar é selecionar por localização (polígonos que se cruzam).
Exporte-os para um arquivo separado e dissolva-os.
Depois que você dissolver cada arquivo, poderá usar as camadas de mesclagem gratuitas (nos et-geo-wizards)

Brad Nesom
fonte
4

Você pode criar um modelo no Model Builder e exportar o script, depois copiar e colar esse script em um UIButtonControl no ArcMap vba. Veja o exemplo de script abaixo.

Private Sub Dissolve_Click()

' Create the Geoprocessor object
set gp = CreateObject("esriGeoprocessing.GPDispatch.1")

' Load required toolboxes...
gp.AddToolbox "C:/Progra~1/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx"

' Local variables...

Dim test_shp as string

test_shp = "C:\Temp\test.shp"
Output_Feature_Class = "C:\Temp\test_Dissolve.shp"

' Process: Dissolve...
gp.Dissolve_management test_shp, Output_Feature_Class, "", "", 
  "MULTI_PART", "DISSOLVE_LINES"

End Sub
artwork21
fonte