Mais

Criação de polilinhas ajustadas perpendiculares entre um ponto existente e uma polilinha usando arcpy

Criação de polilinhas ajustadas perpendiculares entre um ponto existente e uma polilinha usando arcpy


Aqui está minha situação - estou trabalhando em um projeto que requer a criação de mais de 20.000 linhas de conector curtas, cada uma desenhada de um ponto a um local encaixado em uma polilinha próxima, de modo que a linha de conector resultante seja perpendicular à polilinha.

Se feito com arcpy, isso requer um script que pode a.) Encontrar a polilinha mais próxima, b.) Calcular o lugar nessa polilinha que permitirá que uma linha perpendicular seja criada, c.) Criar coordenadas temporárias naquele local, e d .) criar a linha de conexão.

Alguém já tentou algo assim? Quais comandos específicos podem ser necessários? Agradeço antecipadamente por sua ajuda.

-Michael


Dê uma olhada no script com link abaixo. Talvez funcione para você ou talvez você consiga modificá-los para atender às suas necessidades:


Desculpe, fiquei ocupado no trabalho e não pude postar até agora. Abaixo está o script que criei a partir das sugestões.

Percebo que isso também pode ser alcançado com um snap de borda em vez de um comando próximo - parece que o arcGIS basicamente executa um comando próximo no snap.

-Michael

import arcpy, os try: inPoints = arcpy.GetParameterAsText (0) nearLines = arcpy.GetParameterAsText (1) outFC = arcpy.GetParameterAsText (2) scratchWorkspace = arcpy.GetParameterAsText (3) # Obtenha o espaço de trabalho de rascunho. #scratchWorkSace = env.scratchWorkspace # Obtenha a referência espacial da entrada spatialRef = arcpy.Describe (inPoints) .spatialReference # Determine o caminho de classe e o nome do recurso de saída temporário tempFC = os.path.join (scratchWorkspace, "temp") # Copiar insira recursos de ponto para a classe de recurso temporário arcpy.CopyFeatures_management (inPoints, tempFC) # Adicionar coordenadas XY para recursos de ponto arcpy.AddXY_management (tempFC) # Execute Near Analysis arcpy.Near_analysis (tempFC, nearLines, "", "LOCATION", "NO_ANGLE" ) # Criar linha de conexão FC usando XY To Line arcpy.XYToLine_management ("tempFC", "outFC", "POINT_X", "POINT_Y", "NEAR_X", "NEAR_Y", "GEODESIC", "", "spatialRef") exceto Exceção, e: # Se ocorrer um erro, imprima o número da linha e a mensagem de erro importe traceback, sys tb = sys.exc_info () [2] print "Linha% i"% tb.tb_lineno print e.message

Além disso, você pode tentar o comando Near. Ele adicionará a coordenada XY mais próxima na Linha FC à tabela do Ponto FC. Na maioria das vezes, é perpendicular. Execute Adicionar coordenadas XY para preencher as coordenadas xy do ponto. Você pode facilmente criar uma linha conectando os dois locais com "XY to Line", novo no ArcGIS 10. Não deve demorar muito para testar isso.


Se nenhuma perpendicular puder ser desenhada dentro dos dois pontos finais de um segmento de polilinha, o ponto mais próximo é o ponto final mais próximo. Portanto, esta afirmação nem sempre é verdadeira:

"Se a linha do ponto até o ponto" mais próximo "ao longo de uma polilinha não for perpendicular à polilinha, então o ponto" mais próximo "está incorreto!"


Assista o vídeo: AutoCAD Aula 03 -- Comando POLYLINE POLILINHA, EXPLODE e Editar Polylines Curso Completo AutoCad