首页 > 编程语言 >Python(netCDF4库)读取.nc文件(NetCDF气象数据文件)

Python(netCDF4库)读取.nc文件(NetCDF气象数据文件)

时间:2024-07-03 17:02:41浏览次数:1  
标签:plt netCDF4 Python nc lon dataset NetCDF ax name

import netCDF4 as nc
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs

def plot_currents(file_path, variable_name, lon_name, lat_name):
    """
    绘制洋流并保存为JPEG图片。

    参数:
    file_path (str): NetCDF文件路径。
    variable_name (str): 变量名。
    lon_name (str): 经度变量名。
    lat_name (str): 纬度变量名。
    """
    # 打开NetCDF文件
    dataset = nc.Dataset(file_path, 'r')

    # 获取经度、纬度和降水量数据
    lons = dataset.variables[lon_name][:]
    lats = dataset.variables[lat_name][:]
    precip = dataset.variables[variable_name][:]

    # 关闭NetCDF文件
    dataset.close()

    # 创建经纬度网格
    lon, lat = np.meshgrid(lons, lats)

    # 设置地图投影为PlateCarree投影
    fig, ax = plt.subplots(subplot_kw={'projection': ccrs.PlateCarree()})

    # 获取数据 这里需要根据数据做调整
    currents_data = precip[0, 0, :]

    # 绘制降水量数据
    cs = ax.contourf(lon, lat, currents_data, transform=ccrs.PlateCarree())

    # 设置中文字体
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 黑体
    plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

    # 添加海岸线、州界和国界
    # ax.coastlines()
    ax.gridlines(draw_labels=True)
    ax.set_title('全球洋流')

    # 添加颜色条
    fig.colorbar(cs, ax=ax, orientation='vertical', pad=0.05, aspect=50)

    # 保存图像为JPEG文件
    plt.savefig('currents_cartopy.jpg', dpi=400)

    # 显示图形
    plt.show()

标签:plt,netCDF4,Python,nc,lon,dataset,NetCDF,ax,name
From: https://www.cnblogs.com/echohye/p/18282107

相关文章

  • 视频监控平台LntonCVS视频监控汇聚平台技术优势分析
    安防视频管理系统LntonCVS视频智能汇聚融合平台,是一款功能强大的视频管理平台,支持多种操作系统包括Windows、Linux(CentOS、Ubuntu)和国产化系统。该平台能够通过多协议接入,并利用视频应用引擎将多种格式的视频数据转换为统一的视频流数据。它支持无插件H5直播,使得用户可以在Web......
  • 【每日一练】python列表
    1、输入一个整数列表,将列表中的元素按照逆序输出。list1=[5,4,5,6]list1.reverse()print(list1)[6,5,4,5]2、输入一个字符串列表,输出其中长度大于等于5的字符串,并且将它们转换为大写形式。list1=['hello','lol','ak47','aliang']foriinlist1:iflen(i)......
  • python编写使用xmlrpc上传wordpress网站文章的程序
    1、安装库        pipinstallpython-wordpress-xmlrpc,tkinter,xmlrpc,json2、发布文章url="http://域名/xmlrpc.php"username=用户名password=密码title=标题content=内容tags=标签categories=分类client=C......
  • python钉钉告警脚本
    !/usr/bin/envpython3coding:utf-8importrequests,json,sys,os,datetimewebhook="https://oapi.dingtalk.com/robot/send?access_token=88bddd19055305c4fba1f9698cabe891de279254ed6e331bc6a3005274478b71"user=sys.argv[1]text=sys.argv[3]data={"m......
  • 掌握 Python 中 isinstance 的正确用法
    ......
  • 精准控制:为不同Python包指定个性化源
    精准控制:为不同Python包指定个性化源在Python项目开发中,我们经常使用Pip来安装和管理包。默认情况下,Pip从Python包索引(PyPI)下载包,但有时由于网络问题或地理位置,直接从默认源下载可能会很慢或不可用。此外,某些包可能只在特定的源中可用。本文将详细介绍如何为不同的包指定不......
  • Atcoder ABC091D Two Sequences
    首先根据\(\operatorname{xor}\),就想到拆成二进制的\(a_{i,w},b_{i,w}\)来处理。类似竖式加法,考虑把得到的结果\(c_{w}\)分为\(a_{i,w}+b_{j,w}+x\),其中\(x\)就是上一位的进位。进一步的,发现对于总的\(c_{w}\),\(a_{i,w},b_{j,w}\)肯定都在这个位置加了\(......
  • python-进阶2
    三大特征1.继承1.1单继承1.2多继承1.3方法调用顺序1.4调用父类方法1.5super1.6多层继承2封装3多态3.1入门3.2条件3.3优势4抽象5类属性与方法5.1类属性5.2类方法5.3静态方法1.继承面向对象中的继承:指的是多个类之间的所属关系,即子类默认......
  • python操作哨兵、集群、缓存优化
    【python操作哨兵】11redis的主从,一主多从22高可用:sentinal:哨兵3多个哨兵:配置文件---》监控我们主从状态--》当发现主库--》故障转移43python如何操作哨兵567--------------------------------------------------------------------------------......
  • 设置Accept-Encoding为gzip,deflate,返回的网页是乱码
    设置Accept-Encoding为gzip,deflate,返回的网页是乱码用C#写代码去获取网页内容。 其中request的header中,设置Accept-Encoding为gzip,deflate:req=(HttpWebRequest)WebRequest.Create(gSkydriveUrl);req.Headers.Add("Accept-Encoding","gzip,deflate");结果始终......