python读取nc数据并绘图

使用python读取nc数据并绘图

*
获取nc数据的相关信息
绘图

+ 用matplotlib绘图
+ 用Basemap绘图
+ 用Cartopy绘图
+
* 安装Cartopy包

获取nc数据的相关信息

from netCDF4 import Dataset
import numpy as np
import pandas as pd
import os
import matplotlib.pyplot as plt

path = "F:\\OCO2.SIF.all.daily.2001.nc"
csv_path = "F:\\test.csv"
dst = Dataset(path, mode='r', format="netCDF4")

 print(dst.variables.keys())
    data = dst.variables['all_daily_sif'][:]
    print(data.shape)

    long = dst.variables['lon'][:]
    lati = dst.variables['lat'][:]
    print(long[0], long[-1], lati[0], lati[-1])
    print(long.shape, lati.shape)

绘图

用matplotlib绘图

参考文献1


    plt.contourf(long, lati, data[10, :, :] )
    plt.colorbar(label="Sif", orientation="horizontal")
    plt.show()

python读取nc数据并绘图

用Basemap绘图

参考文献2

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

    lat = dst.variables['lat'][:]
    lon = dst.variables['lon'][:]
    data = dst.variables['all_daily_sif'][:]
    data[10] = data[10]

    print(data[10].shape)

    lon0 = lon.mean()
    lat0 = lat.mean()

    m = Basemap(lat_0=lat0, lon_0=lon0,projection='cyl',resolution='l')

    m.drawparallels(np.arange(-90., 91., 20.), labels=[1, 0, 0, 0], fontsize=10)
    m.drawmeridians(np.arange(-180., 181., 40.), labels=[0, 0, 0, 1], fontsize=10)
    m.drawcoastlines()

    lon, lat = np.meshgrid(lon, lat)
    xi, yi = m(lon, lat)

    cs = m.contourf(xi, yi, data[10],  cmap='summer')

    cbar = m.colorbar(cs, location='bottom', pad="10%",format='%.1f')

    font1 = {'family': 'DejaVu Sans', 'weight': 'normal', 'size': 16}
    plt.title('CSIF', font1)
    plt.show()

运行效果:

python读取nc数据并绘图

用Cartopy绘图

参考文献3

此前 Python 最常用的地图包是 Basemap,然而它将于 2020 年被弃用,官方推荐使用 Cartopy 包作为替代。Cartopy 是英国气象局开发的地图绘图包,实现了 Basemap 的大部分功能,还可以通过 Matplotlib 的 API 实现丰富的自定义效果。

安装Cartopy包

下载安装OSGeo4W 4

Original: https://blog.csdn.net/suexisang/article/details/122768900
Author: 细细47
Title: python读取nc数据并绘图

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/731099/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球