我的问题是后续问题&在Approaches for spatial geodesic latitude longitude clustering in R with geodesic or great circle distances中回答。
我想更好地理解:
问题#1:如果所有纬度/经度值都在同一个城市内,是否需要先使用fossil
或distHaversine(...)
来计算大圆距离?
问题#2: jlhoward建议:
值得注意的是,这些方法要求所有点必须进入某个群集。如果您只是询问哪些点靠近在一起,并允许某些城市不进入任何群集,则会得到截然不同的结果。
在我的情况下,我想问一下“哪些点靠近在一起”,而不是强迫每个点进入一个集群。我怎么能这样做?
问题#3:要将一个或两个因子变量包含在聚类中(除了lat / long),是否像在聚类所在的df中包含那些因子变量一样容易跑?
请确认。 谢谢!
答案 0 :(得分:0)
“在一个城市内,是否可以在lat / long值上自行运行聚类?”
是的,只要你的城市在赤道上,那里的经度与纬度相同。
我站在非常靠近北极的地方。一度经度是围绕我的圆柱的圆周长的1/360。在我以东的某个十度度可能只有十英尺远。我以南的某个一个度在几英里之外。一个基于lat-long的聚类算法会认为距离我很近的家伙比我可以在我以东十度处挥手的家伙更接近我。用于节省必须计算大圆椭球距离的小区域的解决方案是投影到一个足够接近笛卡尔坐标的坐标系,这样你就可以使用毕达哥拉斯定理来获得距离,而不会产生太多误差。通常,您将使用UTM区域变换,该变换本质上是一个将赤道穿过您的研究区域的坐标系。
spTransform
和sp
中的rgdal
功能会为您排序。