Estou tentando descobrir como criar um polígono que conecta todos os pontos finais de um shapefile contendo um conjunto de polilnes com python no ArcGIS. Estou tendo problemas para fazer isso, pois a ordem dos nós no polígono é importante. Eu quero alcançar o polígono cinza na imagem a partir das linhas verdes
10
Respostas:
PASSOS:
Calcular pontos centrais das seções:
Construiu sua árvore de abrangência mínima euclidiana, dissolve-a e calcula o buffer, distância igual à metade do menor comprimento de seção:
Crie pontos finais de seção e calcule sua cadeia (distância ao longo da linha) no limite do buffer (versão polilinha fechada do buffer):
Classifique os pontos finais em ordem crescente usando o campo de cadeia. Pontos abaixo rotulados pelo FID:
Crie polígono a partir de um conjunto ordenado de pontos:
Roteiro:
Eu sei que é uma bicicleta, mas é minha e eu gosto
fonte
Publico aqui esta solução para o QGIS porque é um software livre e fácil de implementar. Eu considerei apenas o "ramo" certo da camada vetorial da polilinha; como pode ser observado na próxima imagem (12 recursos na tabela de atributos):
O código (algoritmo em uma compreensão de lista python de uma linha), para execução no Python Console do QGIS, é:
Depois de executar o código:
foi produzida uma camada de memória poligonal (com 11 recursos em sua tabela de atributos). Funciona bem.
fonte
Você pode selecionar os pontos de extremidade que participarão de um polígono, criar um NIF apenas a partir desses pontos. Converta o TIN em polígonos, dissolva os polígonos. O truque para automatizar esse processo é decidir quais pontos contribuir para cada polígono. Se você possui linhas com direções válidas e todas elas compartilham algum atributo comum, você pode escrever uma consulta para exportar, digamos os vértices finais, usando vértices de linhas para pontos, e selecione por atributo aqueles pontos que possuem o valor de atributo comum.
Melhor seria extrair / selecionar os pontos, ler os valores x, y usando um cursor, usar os valores x, y para escrever um novo polígono. Não consigo ver uma imagem anexada em sua postagem, mas se a ordem dos pontos for importante, depois que você tiver os valores x, y armazenados em uma lista Python, classifique-os. http://resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//002z0000001v000000
fonte
Expandindo o comentário @iant, a geometria mais próxima do seu instantâneo é a forma alfa (casco alfa) dos pontos finais. Felizmente, muitos tópicos bem recebidos já foram respondidos no GIS SE. Por exemplo:
Criar polígono complexo a partir da camada de pontos usando apenas pontos de limite no ArcGIS
O que são definição, algoritmos e soluções práticas para casco côncavo?
Para resolver seu problema, primeiro use o recurso para apontar para extrair os pontos finais. Em seguida, use a ferramenta python deste link para calcular o casco côncavo.
fonte