Mais

Apagando buffer dentro de outro buffer sem apagar buffers sobrepostos usando ArcGIS for Desktop?

Apagando buffer dentro de outro buffer sem apagar buffers sobrepostos usando ArcGIS for Desktop?


Não sou um profissional do ArcGis, então preciso de ajuda nisso, e tentei procurar respostas.

Estou usando o ArcMap 10.2.2. Não sei usar python.

Tenho buffers de 6 km e 12 km ao redor dos sites nos quais estou interessado. Quero poder cortar o buffer de 6 km do buffer de 12 km para obter uma nova camada que tenha buffers de apenas 6 a 12 km. Eu tentei usar a ferramenta de clipe, mas em vez de cortar o buffer de 6km do buffer de 12km, parece que só conseguiu cortar a área de 12km ao redor do buffer de 6km (veja a imagem). A propósito, os buffers estão todos na mesma camada.

Em seguida, tentei usar a ferramenta de apagar. Eu apaguei o buffer de 6km do buffer de 12km, o que funciona, mas em qualquer lugar que houvesse sobreposição de buffer, a ferramenta de apagamento cortou as áreas de sobreposição e eu quero que os novos buffers (6-12km) permaneçam donuts completos (veja a imagem).

Como posso cortar ou apagar o buffer de 6km do buffer de 12km sem cortar a sobreposição também? Foto:


Como você só tem 2 distâncias de buffer, você poderia fazer isso em 2 etapas manuais fáceis (se você tivesse mais distâncias de buffer, eu recomendaria usar o código do Polygeo).

Passo 1: Use a ferramenta "Buffer" para criar um buffer de 6 km ao redor de todos os seus pontos. Certifique-se de definir Dissolve como "Nenhum"

Etapa 2: Use a ferramenta "Multiple Ring Buffer" para criar um buffer de 6 km ao redor dos buffers que você criou na etapa 1. Certifique-se de definir Dissolve como "None" e marque a caixa "Outside Polygons Only".

Os dados que você criou na etapa 2 serão os buffers que mostram apenas o intervalo de 6 a 12 km.


Para fazer isso, acho que você precisará usar o ArcPy com:

  • um Cursor de Pesquisa para ler as geometrias de seus pontos um de cada vez
  • armazene cada geometria de ponto duas vezes (6km e 12km) e então use o buffer de 6km para apagar (usando a diferença) do buffer de 12km para criar um polígono anular.
  • um Insert Cursor para escrever uma nova classe de recurso de polígono para seus polígonos anulares.

Com arcpy.da, mesmo se você tiver milhares de pontos, acho que isso deve ser executado muito rapidamente.

Achei que o código de prova de conceito para fazer isso seria fácil, então fui em frente e o escrevi. Usei 30 e 60 metros para meus buffers de teste.

import arcpy pointFC = r "C:  Temp  test.gdb  PointFC" annulusFC = r "C:  Temp  test.gdb  AnnulusFC" if arcpy.Exists (annulusFC): arcpy.Delete_management (annulusFC) arcpy.CreateFeatureclass_management ( r "C:  Temp  test.gdb", "AnnulusFC", "POLYGON", pointFC, "DISABLED", "DISABLED", pointFC) iCursor = arcpy.da.InsertCursor (annulusFC, ["SHAPE @"]) com arcpy.da.SearchCursor (pointFC, ["SHAPE @"]) as sCursor: for pnt em sCursor: pntGeom = pnt [0] smallBufGeom = pntGeom.buffer (30) largeBufGeom = pntGeom.buffer (60) annulferenceusGeom = large (smallBufGeom) iCursor.insertRow ([annulusGeom]) del iCursor

As classes de recursos de entrada e saída para três pontos de teste são elaboradas conforme abaixo:


Assista o vídeo: EJERCICIO 1-A SOLUCIONES BUFFER - AMORTIGUADORAS - TAMPONES: Calculo de pH HENDERSON HASSELBACH