홈>
큰 점 파일이 있는데 그 점과 다른 점 집합 사이의 거리를 찾으려고합니다. 처음에는
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 - 곱한 시간으로 계산 된 도시, 스왑 된 열의 도시 간 평균 거리 계산
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- vue.js - axios를 사용하여 서버에 이미지를 업로드하는 방법
- 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]))