Eu tenho alguns objetos de recurso de polilinha em python. Agora eu quero obter todos os pontos de polilinhas.
Por exemplo, se uma polilinha tiver um ponto [0,0]
final de ponto inicial [5,5]
. Resultado: [1,1];[2,2];[3,3];[4,4];[5,5]
.
Eu quero encontrar todos os pontos inteiros nessa linha, incluindo pontos finais. Para linhas retas, isso é bastante simples, mas se a polilinha possui os tipos de geometria Curva de Beizer, Arco Circular e Arco Elíptico, como posso fazer isso?
EDITAR:
Só posso usar as ferramentas disponíveis em todos os níveis de licença do ArcGIS. Por exemplo, ArcGIS Basic.
arcpy
point
features
geometry-conversion
do utilizador
fonte
fonte
Respostas:
Eu sei que isso é antigo, mas eu estava procurando o mesmo, pois não tenho o ArcInfo para as ferramentas FeatureVerticesToPoints . Depois de usar a solução de cursor de pesquisa acima, fui adiante para simplificar o código e descobri que, usando o NumPy Arrays no módulo de acesso a dados, era possível produzir um script simples e muito rápido. Estou usando isso como uma ferramenta de script.
Nota: A chave é o
explode_to_points
parâmetro emarcpy.da.FeatureClassToNumPyArray
Aqui está o link para o ArcGIS Repository Location: Feature Class to Points
fonte
ctrl-k
aplique a formatação do código (o mesmo parab
antigo ei
talic). Por convenção, tendemos a evitar partes tagarelas como "oi", "obrigado" e "aplausos". Elas estão implícitas como estando sempre presentes e ajudam a reforçar a ideia de que este lugar é diferente dos fóruns e e-mails habituais. Bem vindo a bordo.Pelo que entendi, você precisa aumentar o número de vértices para seus recursos de polilinha. E também para transformar todos os segmentos "Curva de Beizer, Arco Circular, Arco Elíptico" em vários segmentos de linha.
Para esta tarefa no ArcGIS, você pode usar a ferramenta Densify (Edição) no ArcToolbox.
Em seguida, você pode converter os vértices de suas polilinhas em feições pontuais , como sugerido Darren Cope e artwork21.
Se você preferir fazê-lo no ArcMap, consulte o tópico de ajuda Criando novos pontos ao longo de uma linha .
fonte
O seguinte deve funcionar em polilinhas e polígonos:
Para alguns dados rodoviários do Reino Unido, eu entendo isso; uma lista aninhada de pares X, Y para cada vértice que compõe a polilinha:
fonte
print pnt.X, pnt.Y
compart_list.append([pnt.X, pnt.Y])
. E você está imprimindo isso no final do loop. Como seu código pode obter todos os pontos de uma linha, mas o código ESRIs não?Como sugeriu Darren Cope, a conversão de sua camada em vértices de pontos pode ser feita usando a ferramenta Feature Vértices to Points .
Aqui está o código python snippedt:
fonte