相关疑难解决方法(0)

从经度/纬度确定UTM区域(转换)

我正在编写一个程序,它需要一些纬度/经度,并且我将它们内部转换为UTM,以便以米为单位进行一些计算.

纬度/长度点的范围非常小 - 约200米x 200米.它们几乎总是可以依赖于单个UTM区域(除非你不幸并且跨越区域的边界).

但是,纬度/长度所在的区域不受限制.有一天,这个项目可能会针对澳大利亚的人们运行(哦,甚至一个州还有多少个区域,以及这已经导致我多少痛苦......),以及墨西哥人民的另一天.

我的问题是 - 有没有办法确定特定长/纬度所在的区域,以便它可以被送入转换库(我目前使用proj4和R包rgdal).

我的语言是R,但答案不一定是 - 也许只是一个简单的计算,或者我可以将系统调用嵌入到projexectuable中.

干杯.

r utm latitude-longitude coordinate-transformation

18
推荐指数
1
解决办法
2万
查看次数

向量化以计算许多距离

我是numpy / pandas和矢量化计算的新手。我正在执行数据任务,其中有两个数据集。数据集1包含一个经度和纬度的位置列表以及一个变量A。数据集2还包含一个经度和纬度的位置列表。对于数据集1中的每个位置,我想计算其到数据集2中所有位置的距离,但我只想获得数据集2中小于变量A的值的位置计数。数据集非常大,因此我需要使用向量化运算来加快计算速度。

例如,我的数据集1可能如下所示:

id lon    lat   varA
1  20.11 19.88  100
2  20.87 18.65  90
3  18.99 20.75  120
Run Code Online (Sandbox Code Playgroud)

我的数据集2可能如下所示:

placeid lon lat 
a       18.75 20.77
b       19.77 22.56
c       20.86 23.76
d       17.55 20.74 
Run Code Online (Sandbox Code Playgroud)

然后对于数据集1中的id == 1,我想计算其到数据集2中所有四个点(a,c,c,d)的距离,并且我想知道有多少距离小于对应的距离varA的值。例如,计算出的四个距离为90、70、120、110,而varA为100。则该值应为2。

我已经有一个向量化函数来计算两对坐标之间的距离。假设函数(haversine(x,y))正确实现,我有以下代码。

dataset2['count'] = dataset1.apply(lambda x: 
haversine(x['lon'],x['lat'],dataset2['lon'], dataset2['lat']).shape[0], axis 
= 1)
Run Code Online (Sandbox Code Playgroud)

但是,这给出的是行的总数,但不能满足我的要求。

谁能指出我如何使代码正常工作?

python numpy vectorization pandas

5
推荐指数
1
解决办法
566
查看次数