python - Python:如何在地图上绘制飞行轨迹/例程
问题描述
我正在尝试使用位置数据在地图上绘制飞行例程。
我得到了一个位置数据,其中还包括其他信息。下面附上部分数据。第五列和第六列分别是纬度和经度。
0 C130 30-07-2018 20:07 43.53 -116.16 887.60 887.598
1 C130 30-07-2018 20:08 43.49 -116.17 860.73 860.733
2 C130 30-07-2018 20:09 43.45 -116.23 832.14 832.143
3 C130 30-07-2018 20:10 43.42 -116.29 798.53 798.529
4 C130 30-07-2018 20:11 43.39 -116.36 769.36 769.359
5 C130 30-07-2018 20:12 43.38 -116.44 744.33 744.332
6 C130 30-07-2018 20:13 43.37 -116.52 713.75 713.749
7 C130 30-07-2018 20:14 43.37 -116.60 682.41 682.406
8 C130 30-07-2018 20:15 43.38 -116.68 658.94 658.943
9 C130 30-07-2018 20:16 43.40 -116.76 634.47 634.471
10 C130 30-07-2018 20:17 43.39 -116.83 611.09 611.085
11 C130 30-07-2018 20:18 43.34 -116.86 591.79 591.791
12 C130 30-07-2018 20:19 43.28 -116.88 572.06 572.057
13 C130 30-07-2018 20:20 43.23 -116.90 554.59 554.594
14 C130 30-07-2018 20:21 43.16 -116.92 551.53 551.532
15 C130 30-07-2018 20:22 43.11 -116.98 551.75 551.745
16 C130 30-07-2018 20:23 43.07 -117.05 551.64 551.641
17 C130 30-07-2018 20:24 43.03 -117.12 551.55 551.545
18 C130 30-07-2018 20:25 42.98 -117.19 551.49 551.486
19 C130 30-07-2018 20:26 42.94 -117.27 551.45 551.448
所以在我处理完数据之后。我得到提取位置。并获得如下所示的原始数据。第一列是纬度,第二列是经度。
[[ 43.53 -116.16]
[ 43.49 -116.17]
[ 43.45 -116.23]
[ 43.42 -116.29]
[ 43.39 -116.36]
[ 43.38 -116.44]
[ 43.37 -116.52]
[ 43.37 -116.6 ]
[ 43.38 -116.68]
[ 43.4 -116.76]
...]
我有这样的例程 但我想使用 cartopy 在地球物理地图上绘制它。
但我想不通。
你能给我一些建议吗?
立旭
解决方案
您可以查看 Cartopy 文档,有很多简单的示例可以用来构建自己的地图,我建议您从图库开始。为了绘制您的数据,我创建了以下示例:
import cartopy.crs as ccrs
import cartopy.feature as cfeature
#Create latitude and longitude data
lat=np.array([43.53,43.49,43.45,43.42,43.39,43.38,43.37,43.37,43.38,43.4])
lon=np.array([-116.16,-116.17,-116.23,-116.29,-116.36,-116.44,-116.52,-116.6,-116.68,-116.76])
#define map extent
extent = [-130, -90, 30, 60]
#define state borders
states_borders = cfeature.NaturalEarthFeature(
category='cultural',
name='admin_0_countries',
scale='50m',
facecolor='none')
states_provinces = cfeature.NaturalEarthFeature(
category='cultural',
name='admin_1_states_provinces_lines',
scale='50m',
facecolor='none')
#create figure
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(1, 1, 1, projection=ccrs.PlateCarree())
#Add features
ax.add_feature(cfeature.LAND)
ax.add_feature(states_provinces, edgecolor='gray')
ax.add_feature(states_borders, edgecolor='black')
#plot data
ax.plot(lon,lat, 'o',transform=ccrs.PlateCarree())
ax.set_extent(extent)
plt.show()
如果您想添加图层并生成更复杂的地图,您可以开始在此基础上进行构建。
推荐阅读
- python - python getopt 抛出 GetoptError 选项 --mode 不能有参数
- azure-data-factory - Azure 数据工厂 - 清理批处理任务文件
- javascript - TypeError: db.collection 不是具有用户密码限制的函数
- clojure - Clojure 的包容范围?prime-seq print-top-primes
- javascript - 在 C# 中创建消息的哈希
- xml - 登录到我的詹金斯仪表板后,我无法在我的根用户中找到点 jenkins 文件..如何获取它?
- python - 在函数中使用函数
- moq - 将起订量添加到 .netcore 项目
- c# - 在 DataGridView 中设置 ComboBox 的默认选定值
- python - 二元分类问题的准确率令人怀疑