【问题标题】:plot gridded map with lat-lon and fill values in csv file in Python用 lat-lon 绘制网格地图并在 Python 中的 csv 文件中填充值
【发布时间】:2020-04-02 23:44:59
【问题描述】:

1我有一个.csv 文件包含几列:lon, lat, var1, var2 ...

df = pd.read_csv('D:/file.csv')
gdf = gpd.GeoDataFrame(df)
Lon = df['lon']
Lat = df['lat']
Slope = df['slope']

编辑:我怎样才能在 lon (-179.5 degree to 179.5 degree), lat (-89.5 to 89.5 degree) 和空间分辨率为1 度。

[]

【问题讨论】:

    标签: pandas csv matplotlib-basemap geopandas


    【解决方案1】:
    import numpy as np
    import cartopy
    import cartopy.crs as ccrs
    import cartopy.feature as cfeature
    import matplotlib.pyplot as plt
    import matplotlib.ticker as mticker
    import pandas as pd
    import random
    
    latz = np.linspace(-89.5, 89.5, 180)
    lonz = np.linspace(-0.5, 359.5, 361)
    x, y = np.meshgrid(lonz, latz)
    
    rand_list = [random.randrange(1, 5, 1) for i in range(64980)]
    
    # you probably need to sort your df by lat/long and
    # you'll want to replace rand_list with:
    #z = np.array_split(df['slope'].values.tolist(), 180)
    
    z = np.array_split(rand_list, 180)
    
    fig = plt.figure(figsize=[16, 16])
    ax = plt.subplot(1, 1, 1, projection=ccrs.PlateCarree())
    
    ax.set_extent([-179.5, 180, -89.5, 90], crs=ccrs.PlateCarree())
    
    ax.add_feature(cfeature.LAND, zorder=1, facecolor='0.25')
    ax.add_feature(cartopy.feature.OCEAN, zorder=4)
    
    ax.pcolormesh(x, y, z, transform=ccrs.PlateCarree(), zorder=3)
    
    plt.show()
    

    【讨论】:

    • 感谢您的努力,很抱歉没有澄清问题。该帖子已被编辑。实际上,我需要在像你这样的全球地图上绘制我的数据。
    • 我编辑了我的回复以在地图上绘制一些示例数据。此外,不推荐使用 MPL 底图(根据您的标签)以支持 Cartopy 项目。
    • 再次感谢您的时间和精力。您的代码旋转数据并镜像它们。但是,我的意思是我需要创建一个具有 1 度空间分辨率的栅格数据集,我拥有数据的那些网格点应该填充 slope 值(作为具有 1 度分辨率的像素,而不是散点),其他定义为NaN。例如,我以后可以使用pcolormesh 来绘制数据,或者将数据保存为 netcdf 格式。我添加了一张图片作为示例。
    • 好的,我编辑了我认为你想要的答案。您需要用您的 df['slope'] 列替换我编造的数据。请参阅代码中的注释。
    猜你喜欢
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多