python - basemap 在经纬度之间画线

标签 python arrays list numpy matplotlib-basemap

我正在绘制 Tornado 的开始/结束位置。 csv 文件包含以下数据:

TouchDownLat TouchDownLong LiftoffLat LiftoffLong
31.53         -97.15       31.74      -96.88
46.45         -100.67      46.67      -100.47
43.1          -83.85       43.17      -83.42

等...

我所做的是获取每个纬度和经度并将其分成一个 numpy 数组:

import matplotlib.pyplot as plt
import csv
import numpy as np
from mpl_toolkits.basemap import Basemap
with open(fname, 'rb') as f:
    w = csv.reader(f, delimiter = ',')
    for i, line in enumerate (w):
      if i == 0 or line[2][0:4] not in str(range(2007,2018)):
          pass
      else:
          lat_td.append(line[27])
          long_td.append(line[28])
          lat_lift.append(line[29])
          long_lift.append(line[30])

touchdown = np.array([[lat_td], [long_td]])
lift = np.array([[lat_lift], [long_lift]])

对于 basemap ,我正在寻找所有纬度/经度的最大/最小值,以便它制作一张 map 来切掉没有 Tornado 的州(例如:我不想看到加利福尼亚查看 EF-5 Tornado 位置)

m = Basemap(projection = 'merc', llcrnrlat=float(min(lat_td)) - 2,\
    urcrnrlat=float(max(lat_lift)) + 2, llcrnrlon=float(max(long_td)) - 2,\
    urcrnrlon=float(min(long_lift)) + 2,lat_ts=40,resolution='l')
m.drawcoastlines()
m.fillcontinents(color='white')
m.drawmapboundary(fill_color='white')
m.drawstates(color='black')
m.drawcountries(color='black')
plt.title("#wedgez")

那么,问题来了: 我希望使用 numpy 数组中的纬度/经度来绘制 Tornado 的轨迹。我将如何着手这样做?

最佳答案

如果我没理解错的话,您正在寻找一种绘制路径的方法,给定路径点的坐标。然后,您可以按如下方式绘制路径:

m = Basemap(projection = 'merc', llcrnrlat=float(min(lat_td)) - 2,\
    urcrnrlat=float(max(lat_lift)) + 2, llcrnrlon=float(max(long_td)) - 2,\
    urcrnrlon=float(min(long_lift)) + 2,lat_ts=40,resolution='l')

lat = [the list of lat coordinates here] 
lon = [the list of lon coordinates here] 

x, y = m(lon, lat)
m.plot(x, y, 'o-', markersize=5, linewidth=1) 

m.drawcoastlines()
m.fillcontinents(color='white')
m.drawmapboundary(fill_color='white')
m.drawstates(color='black')
m.drawcountries(color='black')
plt.title("#wedgez")
plt.show() 

关于python - basemap 在经纬度之间画线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43032723/

相关文章:

python - 二维列表的排列 (Python)

python - python join函数的使用

python追加到嵌套列表,索引超出范围

php mysql数组限制

java - Prim的迷宫生成算法: Getting the neighbour cell

python - 如何使用 pandas 将一列列表转换为一组?

python - Numpy:使用 savetxt() 导出时使用 genfromtxt() 中的 dtype

python - 为日期解析文本字符串——不是标准的转换问题!

c - 具有有效索引的数组未在 c 中返回正确的状态代码

c - 一个小而奇怪的 <Segmentation Fault>