python 在二维数组中加入经纬度
时间: 2024-03-06 17:52:12 浏览: 151
可以通过定义一个包含经纬度信息的子列表,将其加入到二维数组中的每个子列表中。假设二维数组为`arr`,经纬度信息为`[longitude, latitude]`,可以使用如下代码实现:
```
for i in range(len(arr)):
arr[i].append([longitude, latitude])
```
其中`len(arr)`表示二维数组的长度,`arr[i]`表示第i个子列表,`.append()`方法将经纬度信息添加到子列表的结尾处。
相关问题
已知数组a是由二维经度数组和二维纬度数组构成的23232三维数组,每一个211的元素是一个坐标,数组b是由经度向量和纬度向量构成的2*64的数组,每一行表示一个坐标。怎样在a中找到与b经纬度实际距离最近坐标的索引。用python实现
要在Python中找到数组a中与数组b中每个坐标经纬度最接近的元素的索引,我们可以利用空间搜索算法,例如球树(K-D Tree)或者直接计算每个点之间的欧几里得距离。这里我将提供一个基本的线性搜索解决方案,因为对于小规模数据,这种做法是可以接受的,但对于大规模数据,更高效的搜索结构会更好。
首先,我们需要导入所需的库,并定义计算两点之间经纬度距离的函数。然后,我们将遍历数组b的每个坐标,计算它到数组a中所有坐标的距离,并找出最小值对应的索引。
```python
from math import sqrt
# 假设我们有如下数据
a = ... # 三维数组,每211元素代表一个坐标
b = ... # 二维数组,每行表示一个坐标(经度,纬度)
def distance(lat1, lon1, lat2, lon2):
R = 6371 # 地球半径,单位公里
dLat = rad(lat2 - lat1)
dLon = rad(lon2 - lon1)
a = sin(dLat / 2)**2 + cos(rad(lat1)) * cos(rad(lat2)) * sin(dLon / 2)**2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
return R * c # 返回两个点之间的距离
# 初始化一个空列表来存储结果
nearest_indices = []
for row_b in b:
min_distance = float('inf')
index_min_distance = None
for i, point_a in enumerate(a): # 遍历a中的每个坐标
dist = distance(point_a[0], point_a[1], row_b[0], row_b[1])
if dist < min_distance:
min_distance = dist
index_min_distance = i
nearest_indices.append(index_min_distance)
# 最近的索引现在在nearest_indices列表中
```
假设被 msk 的经纬度坐标存储在一个二维数组中,怎么将它们赋值给新的经纬度坐标 new_lat 和 new_lon:
假设经纬度坐标被存储在一个二维数组 `coords` 中,其中 `coords[i][0]` 表示第 i 个点的纬度,`coords[i][1]` 表示第 i 个点的经度。要将它们赋值给新的经纬度坐标 `new_lat` 和 `new_lon`(假设这两个数组已经被定义并且长度与 `coords` 相同),可以按照如下方式进行:
```python
for i in range(len(coords)):
new_lat[i] = coords[i][0]
new_lon[i] = coords[i][1]
```
这个循环遍历了整个 `coords` 数组,将每个点的纬度和经度分别赋值给对应的位置上。
阅读全文