필자는 육로 측정을 기반으로 강 단면 프로필을 만들려고했습니다. Shadely LineString
을 공통 ID가있는 일련의 점에서 만들려고 할 때 LineString
은 주어진 점 'indexwise'(목록에 지정된 점에 연결)을 연결하기 때문에 주어진 점의 순서가 실제로 중요하다는 것을 깨달았습니다. . 아래 코드는 기본 동작을 보여 이미지를 생성 할 여러 2D 점 사이의 최단 경로 (Shapely LineString 내의 세일즈맨)
from shapely.geometry import Point, LineString
import geopandas as gpd
import numpy as np
import matplotlib.pyplot as plt
# Generate random points
x=np.random.randint(0,100,10)
y=np.random.randint(0,50,10)
data = zip(x,y)
# Create Point and default LineString GeoSeries
gdf_point = gpd.GeoSeries([Point(j,k) for j,k in data])
gdf_line = gpd.GeoSeries(LineString(zip(x,y)))
# plot the points and "default" LineString
ax = gdf_line.plot(color='red')
gdf_point.plot(marker='*', color='green', markersize=5,ax=ax)
:
질문 : 자동으로 대부분을 만들 것 매끈한 내의 내장 방법이 있나요 논리적 인 012 점의 주어진리스트를 통해 논리적 인 (일명 가장 짧은, 가장 복잡하지 않은 것, 최소 십자가, ...) 줄을?
다음은 기본값 (빨간색)과 비교하여 원하는 행 (녹색)을 찾을 수 있습니다. 매끈한 아무 기능 내장 없지만,
당신이 사전의 순서 또는 이웃을 모르는 가정하면, 당신은 '간단한 경로'를 검색, 모든 다른 노드로 모든 노드를 연결하는 그래프를 구축하려고하고 동일한 번호로 경로를 선택할 수 있습니다 단계 수를 노드 수로 표시 한 다음 이들 중 가장 짧은 것을 선택 하시겠습니까? 이렇게하려면 networkX의 ['all_simple_paths'] (https://networkx.readthedocs.io/en/stable/reference/generated/networkx.algorithms.simple_paths.all_simple_paths.html#networkx.algorithms.simple_paths.all_simple_paths)와 같은 것이 필요합니다. . – shongololo
와우, 유망 해 보인다! 이것을 들여다 볼 것입니다. –
작은 수정 : 경로 길이는 노드 - 1 – shongololo