无法以pys设置距离单位

2024-06-13 08:09:28 发布

您现在位置:Python中文网/ 问答频道 /正文

Pysal新手,刚开始学习加载、读数等。我有一些测试点数据,以十进制度数(WGS84)表示,希望使用get_point_dist函数。运行后,我得到了正确的答复,但我希望距离,米/公里等,而不是DD

有什么办法吗,或者答案是“投影输入数据”?在


Tags: 数据函数答案距离getdistddpoint
1条回答
网友
1楼 · 发布于 2024-06-13 08:09:28

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)。它的默认值是公里,要更改此值,您必须指定球体(地球)的半径(以您需要的任何单位表示)。提供了公里和英里的常数, pysal.cg.球体半径地球公里 pysal.cg.球体半径地球英里

示例:

^{pr2}$

PySAL的KDTree还将使用球坐标,并将提供精确的最近邻结果,即使在anit子午线(dateline/180LNG/-180LNG)和民意测验中也是如此。在

>>> 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])

相关问题 更多 >