홈>
큰 점 파일이 있는데 그 점과 다른 점 집합 사이의 거리를 찾으려고합니다. 처음에는
to_crs
를 사용했습니다.
df.distance(point)
할 때 미터 단위로 정확한 거리 측정을 얻을 수 있도록 crs를 변환하는 geopandas의 기능
. 그러나 파일이 매우 크기 때문에 파일의 crs를 변환하는 데 너무 오래 걸렸습니다. 코드가 2 시간 동안 실행되었지만 변환이 완료되지 않았습니다. 따라서이 코드를 대신 사용했습니다.
inProj = Proj(init='epsg:4326')
outProj = Proj(init='epsg:4808')
for index, row in demand_indo_gdf.iterrows():
o = Point(row['origin_longitude'], row['origin_latitude'])
o_proj = Point(transform(inProj, outProj, o.x, o.y))
for i, r in bus_indo_gdf.iterrows():
stop = r['geometry']
stop_proj = Point(transform(inProj, outProj, stop.x, stop.y))
print ('distance:', o_proj.distance(stop_proj), '\n\n')
crs를 개별적으로 변환하고 분석을 수행하는 것이 더 빠를 수 있다고 생각했습니다. 이 포인트 세트의 경우 :
o = (106.901024 -6.229162)
stop = (106.804 -6.21861)
이 EPSG 4326 좌표를 로컬 투영 EPSG 4808로 변환하고 다음을 얻었습니다.
o_proj = (0.09183386384156803 -6.229330112968891)
stop_proj = (-0.005201753272169649 -6.218776788266844)
이것은 거리 측정치가 0.09760780527657992였다. 구글지도는 좌표
o
에 대한 거리 측정을 주었다
그리고
stop
의 10.79km 내 코드의 거리 측정이 실제 거리보다 10 ^ -3 배 더 작은 답변을 제공하는 것처럼 보입니다. 왜 이렇게이다? 내 코드가 맞습니까?- 답변 # 1
관련 자료
- python - 데이터와 중심 사이의 유클리드 거리 계산
- python - 모든 텐서 사이의 거리 계산 모든 요소
- calculated columns - 필터를 적용하여 DAX에서 두 날짜 사이의 분기 수 계산
- python - 두 사전 간의 최소 차이 계산
- c# - 두 점 사이의 거리를 얻는 것은 오류를 반환
- r - 리스트의 모든 데이터 프레임 사이의 Hausdorff 거리 계산
- xamarinforms - 두 지점 사이의 주행 거리를 얻는 방법?
- r - 폴리선 사이의 최대 거리 계산
- excel - 두 날짜 사이의 일 수 계산
- r - 충적 다이어그램에서 그룹 간 비대칭 거리
- python - Spark 데이터 프레임에서 각 두 행 사이의 페어 단위 거리를 찾기 위해 교차 결합을 피하는 방법
- machine learning - 문서 용어 행렬의 열 사이의 코사인 거리의 의미
- python - Bing API-거리 매트릭스에 대한 잘못된 JSON 형식
- python - 오류 막대를 사용하여 FacetGrid를 플로팅 할 때 범주 간 거리 변경
- 두 날짜 열의 차이를 계산하기위한 Excel 수식
- java - 두 노드 사이의 최단 거리 찾기
- scala - 컬렉션 요소들 사이의 haversine 거리의 효율적인 계산
- python - 팬더 데이터 프레임을 사용하여 점 사이의 거리를 어떻게 계산합니까?
- plot - R에서 x 축의 플롯 된 점 사이의 거리를 줄이는 방법은 무엇입니까?
- sql server - sql - 곱한 시간으로 계산 된 도시, 스왑 된 열의 도시 간 평균 거리 계산
관련 질문
- python : 일대다 관계 flask-sqlalchemy를 식별하는 적절한 방법입니까?
- PYTHON-최소 3자리 숫자 반환
- python : PyCharm은 dict 생성 속성의 확인되지 않은 속성에 대해 경고합니다.
- python : 지수 형식/과학 표기법 없이 십진수를 인쇄하는 방법은 무엇입니까?
- python : opencv에서 인수 오류가 계속 발생합니까?
- python : Sphinx는 :param 및 :return을 제대로 인식하지 못합니다.
- python : super가 항상 __init__에서 호출되어야 하는 이유
- python : 값이 두 번 이상 나타나면 값을 취하는 목록 만들기
- bash 스크립트에서 올바른 Python 설치를 동적으로 선택하십시오.
- python : 파이썬 함수에서 하드 코딩된 문자열 값을 피하는 방법
사용하는 좌표는 미터가 아닌 각도입니다.
와이즈 비즈 사용중인 클래스는 아마도 이것에 신경 쓰지 않고 그들 사이의 데카르트 거리를 계산합니다.
예를 들어 Haversine 방정식을 사용하십시오. 여기에서 하나 :
그러면 코드가 올바른 결과를 반환합니다 :
from pyproj import Proj, transform inProj = Proj(init='epsg:4326') outProj = Proj(init='epsg:4808') o = (106.901024, -6.229162) stop = (106.804, -6.21861) o_proj = transform(inProj, outProj, o[0], o[1]) stop_proj = transform(inProj, outProj, stop[0], stop[1]) print(haversine(o_proj[0], o_proj[1], stop_proj[0], stop_proj[1]))