Agrupando polígonos contíguos que tocam os cantos usando o ArcGIS Desktop?


12

Usando o ArcGIS 10, tenho uma classe de recurso que converti de um Raster (GRID) (Raster To Polygon Tool).

  • Existem aprox. 180.000 polígonos.
  • A tabela de atributos contém um campo [grid_code] que eu preciso preservar.
  • Se um ou mais polígonos são contíguos com cantos tocando AND e eles têm o mesmo valor [grid_code], então eu gostaria de agrupá-los (basicamente dissolver) em um polígono (registro).
  • Então eu preciso calcular a área do polígono agrupado.

Usando a ferramenta Selecionar por local, consigo selecionar com êxito os polígonos que preciso agrupar, mas como os converto em UM polígono, preservando o [grid_code]?


3
Você já pensou em executar o comando Grupo de Região antes de converter os rasters em polígonos?
precisa saber é o seguinte

1
Kirk está absolutamente certo: você deseja fazer esse cálculo com a grade original, onde será rápido e eficiente, e não no formato do vetor de saída, onde será lento e doloroso.
whuber

2
Obrigado Kirk e Bill. Sim, o grupo de regiões é a ferramenta certa. Infelizmente, o uso do Grupo de Região no meu grande conjunto de dados causa distribuição horizontal, um erro conhecido de Analista Espacial. Essas faixas foram documentadas desde dezembro de 2009, mas agora, usando o ArcGIS 10, esses problemas AINDA existem. Você pode ler tudo sobre isso aqui: [link] ( forums.arcgis.com/threads/… ) Meu trabalho é gravar a saída da ferramenta Grupo de Região em um ArcInfo Workspace à moda antiga como um GRID. Isso parece consertar!
Mjn

Sem essa solução alternativa, e dado o bug do RegionGroup, você teria que realizar um cálculo da variedade focal 2x2 para identificar os cantos em potencial (a variedade deve ser 3 ou 4) e depois usá-los para criar uma tabela de cantos em potencial relações de canto entre os polígonos, o que poderia (muito) otimizar a pesquisa de polígonos que tocam nos cantos. Que dor ...
whuber

Lembre-se de que, se os polígonos compartilham apenas um único vértice, você introduz uma interseção automática e invalida a geometria.
Jim B

Respostas:


2

Você pode dissolver polígonos contíguos com valores de ID comuns usando a Dissolve Tool .

  1. Selecione o campo Código da grade como seu "Dissolve_Field (opcional)"
  2. Na parte inferior do formulário da ferramenta, marque a caixa de seleção "Linhas não divididas (opcional)".
  3. Criar campo de área
  4. Clique com o botão direito do mouse no campo da área e selecione Calcular Geometria

2

São muitos polígonos. Eu também encontraria uma solução em formato raster primeiro quando a topologia for mais fácil de manipular. Mas se você não quiser escrever código, poderá:

  1. Selecione um determinado código de grade.
  2. buffer esse código de grade em uma quantidade muito pequena (opção buffers mesclados)
  3. buffer o resultado negativamente pelo mesmo muito pequeno.

Haverá um ligeiro arredondamento na geometria.

Para criar uma única camada, cruze as camadas de código de grade resultantes e limpe para remover polígonos da tira.


-1

Pessoalmente, eu escreveria um código que passasse pelos polígonos e verificaria se as 4 cordas dos cantos de um polígono são iguais a qualquer outro canto dos polígonos e o chamaria recursivamente - preenchimento de inundação como tal.

Eu faço isso com grades netCDF para criar polígonos apropriadamente semelhantes.

Outra opção seria fazer isso de forma programática na raiz da grade.


Os comentários foram eliminados quando se degradaram em brigas e / ou ruídos inúteis, e todo o conjunto é inestimável.
Mapperz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.