Estou procurando uma maneira de determinar se uma polilinha está "principalmente dentro" de um polígono. Como a maior parte do interior é arbitrária, eu precisaria inserir uma porcentagem em sua execução.
Eu pensei que poderia ter havido uma opção no ArcMap usando Select By Location, mas parece não haver. Existem métodos semelhantes, como "completamente dentro", mas não vejo como posso usar nenhum deles para alcançar o que estou procurando.
Essa funcionalidade ou método existe para conseguir isso?
arcgis-desktop
arcgis-10.2
select-by-location
amasephy
fonte
fonte
Respostas:
você precisaria fazer uma tabela para unir a tabela nos dois arquivos de linha (original e saída da ferramenta GP) e calcular a diferença percentual entre os dois campos Shape.Len (se um segmento de linha no arquivo original tiver 100 pés de comprimento , e o mesmo segmento de linha, cortado no polígono, tem 75 pés de comprimento e 75% dessa linha estaria dentro do polígono). Então você pode simplesmente selecionar por atributo com base nesse percentual.
Novamente, eu sei que isso está bastante envolvido, ele cria um conjunto de dados intermediário e provavelmente existe uma maneira mais fácil de fazer isso que eu não conheço; mas, se você escrever um modelo ou script para fazer isso e excluir a linha de saída FC quando terminar, não parecerá tão difícil para o usuário final ... mesmo que seja um pouco trabalhoso para construir inicialmente.
Apenas alguns pensamentos, e deixe-me saber se isso não faz sentido e tentarei explicar melhor.
fonte
Com base nas respostas que recebi aqui, usei uma combinação de idéias fornecidas.
Primeiro, o que fiz foi adicionar um campo Comprimento e Porcentagem ao meu conjunto de dados original. Copiei os valores Shape.Length no campo Length.
Em segundo lugar, em vez de usar o Clip, que é significativamente mais trabalhoso neste caso, usei a ferramenta Intersect. Isso "recorta" as polilinhas que cruzam os polígonos e adiciona alguns atributos potencialmente valiosos. Apesar de ter um campo de ID verdadeiramente único, não acho que seja realmente necessário ao usar um campo de comprimento estático.
Por fim, basta calcular a porcentagem da diferença entre o novo campo Shape.Length e o comprimento estático no campo Porcentagem. Quaisquer polilinhas que cruzem o limite do polígono terão uma porcentagem menor que 100.
fonte
fonte