把线状矢量的点坐标读取为numpy数组,并对相邻的点计算距离,转为米单位
时间: 2024-04-15 11:31:18 浏览: 117
通过坐标计算两点距离
好的,我会根据您提供的线状矢量的点坐标,将其读取为numpy数组,并计算相邻点之间的距离并转换为米单位。
假设您提供的点坐标是经纬度坐标(单位为度),我将使用haversine公式来计算相邻点之间的距离。以下是代码示例:
```python
import numpy as np
from math import radians, sin, cos, sqrt, atan2
# 请提供线状矢量的点坐标(经纬度)
points = [(0, 0), (1, 1), (2, 3), (4, 4)]
# 将点坐标读取为numpy数组
point_array = np.array(points)
# 定义haversine函数来计算两个经纬度点之间的距离
def haversine(lat1, lon1, lat2, lon2):
R = 6371.0 # 地球平均半径(单位:km)
# 将经纬度转换为弧度
lat1_rad = radians(lat1)
lon1_rad = radians(lon1)
lat2_rad = radians(lat2)
lon2_rad = radians(lon2)
# 计算差值
dlat = lat2_rad - lat1_rad
dlon = lon2_rad - lon1_rad
# 应用haversine公式计算距离
a = sin(dlat / 2)**2 + cos(lat1_rad) * cos(lat2_rad) * sin(dlon / 2)**2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
distance = R * c * 1000 # 转换为米单位
return distance
# 计算相邻点之间的距离
distances = []
for i in range(len(points) - 1):
lat1, lon1 = points[i]
lat2, lon2 = points[i+1]
distance = haversine(lat1, lon1, lat2, lon2)
distances.append(distance)
print("点坐标数组:")
print(point_array)
print("相邻点之间的距离(单位:米):")
print(distances)
```
请将您的线状矢量的点坐标替换到 `points` 变量中,然后运行上述代码即可得到相邻点之间的距离(单位为米)。
阅读全文