我有numpy阵列和SRTM高程数据,我需要计算路径剖面-矢量与高程数据从一个点(发射器)到我的地图的每个点。以下是我目前的解决方案:
def get_elev_vector(self, coord1, coord2, step=90):
if coord1 == coord2:
return 0
lat1, long1 = coord1
lat2, long2 = coord2
dist = self.get_dist(coord1, coord2)
npt = dist / step
vect = np.zeros(npt + 3, dtype='float32')
vect[0] = npt
vect[1] = dist
vect[2] = self.get_elevation_direct(coord1)
vect[npt] = self.get_elevation_direct(coord2)
g = pyproj.Geod(ellps='WGS84')
coordvect = g.npts(long1, lat1, long2, lat2, npt)
i = 3
for lon, lat in coordvect:
vect[i] = self.get_elevation((lat, lon))
i += 1
return vect
#(tx, ty) transmission coordinates
while lat > latmax:
long = longmin
while long<longmax:
vect = self.carta.get_elev_vector((tx, ty), (lat, lon))
arr[xarr, yarr] = 100
yarr +=1
lon += dlon
xarr +=1
lat +=dx
它可以工作,但在20x20公里的区域大约需要3个小时。有没有办法让它更快地工作?在
添加
^{pr2}$
目前没有回答
相关问题 更多 >
编程相关推荐