É possível identificar exclusivamente cada geometria em uma camada de feição?
Essencialmente, eu tenho uma camada de recurso de polígono com muitas linhas de dados representadas pela mesma geometria. Gostaria de 1 linha para cada geometria única. Então, estou procurando uma metodologia pronta para combinar atributos com base na forma da geometria.
Eu venho de um mundo do Postgres e posso resolver esse problema lá, mas não sei como fazê-lo (ou se é possível) fazê-lo de forma não programática com as ferramentas ESRI.
arcgis-desktop
arcmap
arcgis-10.0
geometry
Dylan Hettinger
fonte
fonte
Respostas:
Se você possui uma licença avançada, pode usar Localizar idêntico ou Excluir idêntico .
Ambos podem ser usados para localizar / excluir recursos que tenham atributos idênticos ou, se o campo Forma for especificado, geometrias idênticas.
Se você não possui uma licença avançada, esta postagem será útil.
Em resumo, você adiciona dois campos para X, Y na sua tabela de atributos e executa uma Dissolução nos referidos campos.
Se você tiver polígonos que compartilham o mesmo centróide, mas não são geometricamente idênticos, poderá adicionar dois outros campos (Perímetro e Área). Isso deve ser suficiente para identificar geometrias idênticas para quase todos os casos normais. Veja os comentários do @ whuber abaixo.
fonte
Eu tenho um conjunto de dados com base nos dados da pesquisa. Meu problema é que os recursos antigos nem sempre são removidos antes da importação das novas capturas de pesquisa. Portanto, temos 'duplicatas' com geometria diferente: ou seja, as fotos da pesquisa podem estar separadas por 1/4 de pé. Em um conjunto de dados de recurso 12000, é difícil ampliar cada um e identificá-los. Usando o ArcMap Basic 10.2: aqui está um modelo hacky que eu criei.
Eu reinventei a roda. Além disso, fiquei frustrado com o construtor de modelos e basicamente instalei a coisa toda. Tem que haver uma solução mais elegante. Terei prazer em aceitar críticas e sugestões.
Além disso, isso parece funcionar corretamente apenas no Model Builder, eu corro a partir de uma caixa de ferramentas e não salva a camada do buffer.
fonte
Há algum tempo, estou procurando uma resposta para a mesma pergunta para superar o achatamento do problema de polígonos de buffer sobrepostos e acho que encontrei uma solução robusta para isso. De fato, o comentário de @ Whuber,
A resposta de @ Paul foi a principal motivação para eu continuar tentando. Ele usa o operador ARE_IDENTICAL_TO da ferramenta Spatial Join, pois é o mais eficiente dentre outros detectores idênticos. Aqui estão os passos:
As etapas a seguir podem ser executadas de duas maneiras: WITH Python ou WITHOUT:
WITH PYTHON
print tuple(set([row.getValue("EX_OID_1") for row in arcpy.SearchCursor("Output_of_the_Spatial_Join_Operation")]))
.Esteja ciente de que estou usando a segunda cópia do campo OID fictício, que é EX_OID_1 no meu caso;
OBJECTID IN (<PASTE_COPIED_VALUES_HERE>)
. O resultado mostrará os recursos unificados das partes sobrepostas. Há uma limitação de tamanho aqui, porém, 30.000 caracteres. Para superar esse problema, você precisa seguir as etapas "sem python".SEM PYTHON
Use a ferramenta Frequency para listar valores exclusivos na segunda cópia do campo OID fictício, que é EX_OID_1 no meu caso;
Por fim, ingresse no campo OBJECTID da classe de recurso original com a saída do EX_OID_1 da ferramenta Frequency selecionando as opções "Manter apenas registros correspondentes".
fonte