首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在pysal中设置距离单位

无法在pysal中设置距离单位
EN

Stack Overflow用户
提问于 2013-06-27 02:08:00
回答 1查看 377关注 0票数 3

Pysal新手,刚刚开始掌握加载,读取等。我有一些测试点数据,以十进制度(WGS84),并想使用get_point_dist函数。在运行它之后,我得到了正确的响应,但我想要以米/公里等为单位的距离,而不是DD。

你知道该怎么做吗?答案是“投影输入数据”吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-02 03:43:58

PySAL中的get_points_dist方法只能在欧几里得空间中操作,因此您需要投影输入数据才能使用它。

但是,您可以使用arcdist方法。

注意:点元组应该按(长,横)的顺序提供。

例如:

代码语言:javascript
复制
>>> import pysal
>>> pt0 = (-74.0, 40.7)
>>> pt1 = (-77.0, 38.8)
>>> pysal.cg.arcdist(pt0, pt1)

arcdist确实有一些限制,它假设一个完美的球体,不会考虑大地水准面(WGS84)。默认设置为KiloMeters,若要更改此设置,必须以所需的任何单位指定球体(地球)的半径。提供了KM和Miles的常量,pysal.cg.sphere.RADIUS_EARTH_KM pysal.cg.sphere.RADIUS_EARTH_MILES

示例:

代码语言:javascript
复制
>>> pysal.cg.arcdist(pt0, pt1, pysal.cg.sphere.RADIUS_EARTH_KM)

PySAL中的KDTree也将使用球面坐标,并将提供准确的最近邻结果,即使在子午线(日期线/180lng/-180lng)和投票中也是如此。

代码语言:javascript
复制
>>> 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])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17327389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档