2024-06-13 08:09:28 发布
网友
Pysal新手,刚开始学习加载、读数等。我有一些测试点数据,以十进制度数(WGS84)表示,希望使用get_point_dist函数。运行后,我得到了正确的答复,但我希望距离,米/公里等,而不是DD
有什么办法吗,或者答案是“投影输入数据”?在
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.球体半径地球英里
示例:
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])
PySAL中的get_points_dist方法只在欧几里得空间中运行,因此需要投影输入数据才能使用它。在
但是您可以使用arcdist方法。在
注意:点元组应该按(Long,Lat)顺序提供。在
例如:
arcdist确实有一些局限性,它假设一个完美的球体,不会考虑大地水准面(WGS84)。它的默认值是公里,要更改此值,您必须指定球体(地球)的半径(以您需要的任何单位表示)。提供了公里和英里的常数, pysal.cg.球体半径地球公里 pysal.cg.球体半径地球英里
示例:
^{pr2}$PySAL的KDTree还将使用球坐标,并将提供精确的最近邻结果,即使在anit子午线(dateline/180LNG/-180LNG)和民意测验中也是如此。在
相关问题 更多 >
编程相关推荐