关于#python#的问题,如何解决?

运用python读取CMA的台风路径数据(txt格式),绘制台风路径,并有全球地图作底图、经纬度划分。

数据集在此
链接:https://pan.baidu.com/s/1pYvefPpyHw0Nr3s_J-7PKA
提取码:93yz

可参考

你具体碰到了什么问题呢? 你是否可以从一个最小的 txt 文件出发,写一个解决方案?

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7503755
  • 你也可以参考下这篇文章:python中cmd命令台从txt文件中读取文本,输出文本前有一个小框框。
  • 以下回答由chatgpt基于相关博客总结生成:

    首先需要安装相应的库,包括numpy、pandas、matplotlib和basemap等。安装方式可以使用pip命令或者anaconda安装包。然后根据数据集中提供的txt文件数据格式进行读取和处理,建议参考pandas库。读取之后需要提取出数据中需要的经纬度信息,可以使用正则表达式来提取。最后使用basemap库绘制全球地图,并在上面添加经纬度划分,并将台风路径数据绘制于地图上。具体的代码实现可以参考下面的范例:

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    from mpl_toolkits.basemap import Basemap
    
    # 读取数据文件,并处理BOM头
    data = pd.read_csv('typhoon_path.txt', encoding='utf-8-sig')
    
    # 提取经纬度信息
    lat_list = []
    lon_list = []
    for i in range(len(data)):
        lat = float(data.loc[i]['纬度(°)'][:-1])
        lat_list.append(lat)
        lon = float(data.loc[i]['经度(°)'][:-1])
        lon_list.append(lon)
    
    # 绘制台风路径图
    fig = plt.figure(figsize=(10, 8))
    plt.title("Typhoon Path")
    map = Basemap(llcrnrlon=70, llcrnrlat=0, urcrnrlon=180, urcrnrlat=60, projection='mill')
    
    map.drawcoastlines(linewidth=0.5)
    map.drawcountries(linewidth=0.5)
    map.drawmeridians(np.arange(0, 360, 30), labels=[0, 0, 0, 1], linewidth=0.5, fontsize=10)
    map.drawparallels(np.arange(-90, 90, 30), labels=[1, 0, 0, 0], linewidth=0.5, fontsize=10)
    map.drawmapboundary(fill_color='#3A9FE7')
    map.fillcontinents(color='white', lake_color='#3A9FE7')
    
    x, y = map(lon_list, lat_list)
    map.plot(x, y, marker='o', color='r')
    
    plt.show()