Trabalhando no ArcMap, deparei-me com erros em uma camada de polígono que chamarei de "bandas de bandeira" (extraídas de linguagem semelhante em parcelas chamadas "lotes de bandeira"). Esses polígonos da tira (veja a imagem abaixo) geralmente são compostos de apenas um nó adicional que o usuário adicionou acidentalmente.
Nas imagens abaixo, o "sinalizador" e o "mastro" são um recurso de peça única, onde o "mastro" apenas se sobrepõe. A imagem da esquerda possui um total de 5 nós.
Quando vistos sozinhos, os erros são muito óbvios, mas quando vários polígonos são adjacentes, eles são quase impossíveis de ver porque parecem ser o limite entre dois polígonos.
Provavelmente isso acontece porque eles estão usando um editor baseado em shapefile e, portanto, não posso implementar nenhuma regra de edição baseada em topologia para impedir que isso aconteça no futuro.
Alguém tem uma maneira de identificar e resolver esses tipos de erros? Eu preferiria um método automatizado de identificação e resolução, já que foram os usuários do campo que criaram os erros, mas eu estou tentando limpá-los. Obrigado.
fonte
Respostas:
se você tiver acesso às ferramentas Safe Fme, achará útil o transformador chamado spikeRemover, dê uma olhada. Você pode experimentar uma versão limitada para download do SAFE FME ou verificar sua licença do ArcGis para "FME Extension for ArcGIS"
http://docs.safe.com/fme/html/FME_Transformers/Default.htm#Transformers/spikeremover.htm
http://cdn.safe.com/resources/fme/FME-Transformer-Reference-Guide.pdf
fonte
Não sei ao certo onde seu problema ocorre ou onde você tem a possibilidade de evitá-lo / corrigi-lo. Mas eu já vi isso muito em nosso banco de dados SDE, embora as geometrias no SDE devam sempre estar corretas. No nosso caso, foi porque importamos shapefiles usando ArcObjects para o SDE. Quando as geometrias foram armazenadas, elas se ajustaram à grade da SDE e, assim, criaram geometrias incorretas com as lascas que você descreve quando a geometria teve um pico fino. Isso porque os shapefiles têm precisão dupla total para as coordenadas e o SDE, uma grade mais grossa.
Nossa solução foi corrigir as geometrias quando elas foram importadas por:
1. Defina a referência espacial da geometria do arquivo shapefile para a referência espacial da classe de recurso SDE correspondente
2. Ajuste a geometria à referência espacial (IGeometry.SnapToSpatialReference () )
3. Configure ITopologicalOperator2.IsKnownSimple = false (importante, caso contrário, simplificar não faz nada)
4. Execute algumas operações de simplificação. Para polígonos, usamos IPolygon.SimplifyPreserveFromTo ()
fonte
Com o arcmap 9.3.1, eu adicionaria um campo chamado Flag (ou talvez FlagFlag?) E usaria o código VBA na calculadora de campo para calcular esse campo.
O código VBA escureceria uma variável como ITopologicalOperator3 e a definiria no campo Shape.
Ele chamaria o método IsSimpleEx não tão simples .
Defina o valor do campo Sinalizador como esriNonSimpleEnum . Presumivelmente, o erro que você está preocupado retornaria
esriNonSimpleSelfIntersections
.Com 10.0, pode haver uma maneira de fazer isso com python na calculadora (?) ... não tenho certeza. Eu usaria um comando add-in. O IMI Esri deve fornecer suporte para c # na calculadora de campo. Afinal, o compilador c # é instalado como parte da estrutura do .NET.
Atualizar
O código que publiquei aqui pode encontrar postes de sinalização se você aplicar uma expressão de definição
"Left_OID" = "Right_OID"
ao recurso de polilinha resultante.fonte
Este script Python é uma ferramenta útil
Eliminar polígonos de tira de arquivos de forma
"EliminateSlivers.py percorre todos os recursos em um shapefile de polígono e remove os do shapefile de saída que ficam abaixo de um determinado limite de área.
As operações de geoprocessamento e as tolerâncias de cluster podem resultar na criação de polígonos minúsculos extras. Estes podem não ter sentido e podem distorcer a confiabilidade dos dados espaciais ".
Nota: você terá que testar com diferentes tolerâncias com seus dados (faça uma cópia dos seus dados primeiro)
http://arcscripts.esri.com/details.asp?dbid=14672
fonte
Ryan,
Eu trabalhei com o escritório de pesquisa do solo e verifiquei periodicamente os polígonos do solo. O que faço é verificado quanto a lascas. Eu enviava a featureclass para cobertura e depois as construía para rotular para identificar os erros. Se você vir duas etiquetas em um polígono, é um erro. Se é um rótulo por polígono, você sabe que está correto. Eu criaria uma classe de recurso como um ponto para marcar um erro. Ou você pode selecionar um ou vários rótulos em uma nova classe de featur. Dessa forma, você pode voltar e corrigir o erro. Funciona muito bem para mim com os polígonos do solo. Eu uso isso para informar os cientistas do solo a resolver o problema.
Essa é apenas a minha maneira de identificar o problema. Apenas compartilhando isso com você.
fonte
Se a identificação não for um ponto importante e apenas a correção automatizada, tente isso. Adicione os dados a um novo documento de mapa em branco;
Eu testei isso e parece funcionar, mas não tenho certeza se repliquei exatamente sua fonte de dados
Divirta-se, CDB
fonte
Aqui vamos nós, existem algumas maneiras de resolver isso e, na minha opinião, o mais elegante é usar uma extensão chamada GIS Data Reviewer . O GIS data Reviewer permite criar verificações personalizadas e simplificadas da precisão espacial e de atributos, além da topologia principal. Dentro da Topologia, existem coisas que não estão disponíveis e fazem parte das verificações padrão do Data Reviewer Like
Eu usaria isso para interrogar seus dados. Outro caminho a seguir é criar uma nova classe de recurso com base na sua classe de recurso de polígono existente. e crie uma nova classe de recurso Polígono e preencha-a com as linhas usando a ferramenta de construção de recursos na Barra de Ferramentas de Topologia. Isso significa que as barras devem aparecer como tal e qualquer outra ferramenta de topologia deve detectar o erro. Depois, é necessário selecionar, excluir e substituir os recursos na classe de recurso existente.
Espero que isso ajude, CDB
fonte