2013-06-26 3 views
2

Pysal에 새로오고로드, 읽기 등으로 그립을 잡을 수 있습니다. 나는 소수점 이하 (WGS84)의 테스트 포인트 데이터를 가지고 있으며 get_point_dist 함수를 사용하려고합니다. 그것을 실행 한 후에, 나는 정확한 응답을 얻지 만 미터/KM 등의 거리를 DD로보고 싶습니다.pysal에서 거리 단위를 설정할 수 없습니다

아이디어를 얻는 방법이나 대답은 "입력 데이터 투영"입니까?

답변

0

PySAL의 get_points_dist 메소드는 유클리드 공간에서만 작동하기 때문에이를 사용하려면 입력 데이터를 투영해야합니다.

그러나 arcdist 메서드를 사용할 수 있습니다.

참고 : 포인트 튜플은 (Long, Lat) 순서로 제공되어야합니다. 예를 들어

:

>>> import pysal 
>>> pt0 = (-74.0, 40.7) 
>>> pt1 = (-77.0, 38.8) 
>>> pysal.cg.arcdist(pt0, pt1) 

arcdist은 완벽한 구형을 가정하고 계정에 지오이드 (WGS84)를하지 않습니다, 몇 가지 한계를 가지고있다. 기본값을 KiloMeters로 바꾸려면이 값을 변경하기 위해 필요한 단위로 구의 반경을 지정해야합니다. KM 및 마일 제공 상수, pysal.cg.sphere.RADIUS_EARTH_KM pysal.cg.sphere.RADIUS_EARTH_MILES

예 :

>>> pysal.cg.arcdist(pt0, pt1, pysal.cg.sphere.RADIUS_EARTH_KM) 

PySAL의 KDTree는 구면 좌표로 작동하며 제공 (meteline/180 lng/-180 lng) 및 여론 조사에서도 가장 가까운 정확한 이웃 결과를 제공합니다.

>>> pts = [(-179.0,0.0), (170,0.0), (179.0,0.0)] 
>>> kd = pysal.cg.KDTree(pts, distance_metric='Arc', radius = pysal.cg.sphere.RADIUS_EARTH_KM) 
>>> d, i = kd.query((-180.0,0.0), k=3) 
>>> d 
array([ 111.19492664, 111.19492664, 1111.94926645]) 
>>> i 
array([0, 2, 1]) 
+0

KD 상수에 대한 헤드 업과 마찬가지로 KDTree 기능 공개에 감사드립니다. 필자가 가장 가까운 이웃 쿼리는 내가 뭘 찾았는지 – user965586

+0

Charles, PySAL의 KDTree 용 문서가 숨겨져있는 것 같습니다 (예 : scipy KDTree 구현과 비교). PySAL 구현, km 단위의 거리 반환이 가장 유용 할 것이므로 좋은 링크의 방향으로 나를 안내 할 수 있습니까? Louis – user965586

+0

KodTree에 대한 좋은 호출, 문서가 누락되었습니다. 문서의 소스가 항상 소스 코드입니다. https://github.com/pysal/pysal/blob/master/pysal/cg/kdtree.py – Charles