首页 > 其他分享 >基于hgt.mon.mean.nc数据绘制500hpa高度场

基于hgt.mon.mean.nc数据绘制500hpa高度场

时间:2024-07-05 21:27:50浏览次数:16  
标签:500hpa 500hPa plt level hgt nc jan time

读取文件格式

import xarray as xr
file_path = 'D:/data/hgt.mon.mean.nc'  
  
# 使用xarray打开NetCDF文件  
ds = xr.open_dataset(file_path)  
print(ds)

<xarray.Dataset>
Dimensions:  (level: 17, lat: 73, lon: 144, time: 883)
Coordinates:
  * level    (level) float32 1e+03 925.0 850.0 700.0 ... 50.0 30.0 20.0 10.0
  * lat      (lat) float32 90.0 87.5 85.0 82.5 80.0 ... -82.5 -85.0 -87.5 -90.0
  * lon      (lon) float32 0.0 2.5 5.0 7.5 10.0 ... 350.0 352.5 355.0 357.5
  * time     (time) datetime64[ns] 1948-01-01 1948-02-01 ... 2021-07-01
Data variables:
    hgt      (time, level, lat, lon) float32 ...
Attributes:
    description:     Data from NCEP initialized reanalysis (4x/day).  These a...
    platform:       Model
    Conventions:    COARDS
    NCO:            20121012
    history:        Created by NOAA-CIRES Climate Diagnostics Center (SAC) fr...
    title:          monthly mean hgt from the NCEP Reanalysis
    dataset_title:  NCEP-NCAR Reanalysis 1
    References:     http://www.psl.noaa.gov/data/gridded/data.ncep.reanalysis... 

从文件信息可以看出,hgt.mon.mean.nc的文件分别有四个变量

level 高度 总共17层,范围为10-1000hpa

lat 纬度 范围-90-90

lon 经度 范围0-360

time 时间 1948年1月1日-2021年7月1日

import xarray as xr  
import matplotlib.pyplot as plt
import numpy as np  

file_path = 'D:/data/hgt.mon.mean.nc'  
  
# 使用xarray打开NetCDF文件  
ds = xr.open_dataset(file_path)  
  
# 查找包含高度场数据的变量,通常是'hgt'  
hgt_var = ds['hgt']  
  
# 检查是否有压力层(level)维度,并找到500hPa对应的索引  
if 'level' in hgt_var.dims:  
    pressure_levels = ds['level'].values  # 假设压力层存储在'lev'变量中  
    level_index = np.argmin(np.abs(pressure_levels - 500))  
    hgt_500hPa = hgt_var.isel(level=level_index)  
else:  
    raise ValueError("数据集中没有压力层维度,无法直接选择500hPa层")  
  
# 打印时间坐标以确认索引  
print(hgt_500hPa.time)  
  
# 选择一个具体的时间点来绘制,例如2020年1月  
# 注意:这里的时间格式需要与你的数据集中的时间格式相匹配  
time_index = '2020-01'  
try:  
    # 尝试选择时间,并立即使用squeeze去除可能的单一维度  
    hgt_500hPa_jan = hgt_500hPa.sel(time=time_index, method='nearest').squeeze()  
      
    # 检查数据维度  
    if hgt_500hPa_jan.ndim != 2:  
        raise ValueError("提取后的数据维度不是二维的,尽管已经尝试使用squeeze")  
  
    # 绘制等值线图  
    plt.figure(figsize=(10, 5))  
    contour_levels = np.arange(hgt_500hPa_jan.min().values, hgt_500hPa_jan.max().values + 10, 10)  
    cf = plt.contourf(hgt_500hPa_jan.lon, hgt_500hPa_jan.lat, hgt_500hPa_jan, levels=contour_levels, cmap='viridis', extend='both')  
    cs = plt.contour(hgt_500hPa_jan.lon, hgt_500hPa_jan.lat, hgt_500hPa_jan, colors='black', linewidths=0.5)  
    plt.colorbar(cf, label='Height (m)')  
    plt.clabel(cs, inline=True, fontsize=10)  
    plt.title('500hPa Mean Height Field Contours in January 2020')  
    plt.xlabel('Longitude')  
    plt.ylabel('Latitude')  
    plt.show()  
except KeyError:  
    print(f"时间索引 '{time_index}' 不存在于数据集中")  
except ValueError as e:  
    print(e)

 

标签:500hpa,500hPa,plt,level,hgt,nc,jan,time
From: https://blog.csdn.net/nuistsy/article/details/140218278

相关文章

  • Financial Analysis with Python
    Project1OverviewandfilesProject1PleasereviewallthematerialfromthefollowingLecturesbeforecompletingthisassessment:Lecture1-FinancialAnalysiswithPython:DownloadingStockPricesLecture2-Python:TheBuildingBlocksLecture3-P......
  • 氛围共处(Ambient Co-presence)丨RTE 共读计划
       在同一个网络空间和情境下,营造一种微妙的、隐约感知的、实时同步的感觉。加入「RTE共读计划」:重要的技术,往往是那些不易察觉却无所不在的技术。欢迎阅读「RTE共读计划」的文章,我们希望通过本计划: •挖掘到那些帮助人们跨越距离实时互动(Real-TimeEngagement,RTE)并......
  • 在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认
    在使用rsync通过SSH进行数据同步时,如果目标机器的SSH服务没有运行在默认的22端口上,你需要指定SSH连接应该使用的端口。这可以通过-e选项来实现,后面跟上ssh命令和-p参数来指定端口号。以下是使用非默认端口的SSH进行rsync同步的基本命令格式:rsync-avz-e"ssh-p<port>"<sourc......
  • 在Linux中,使用rsync服务模式时,如果指定了⼀个密码文件,那么这个密码文件的权限应该设置
    在使用rsync的服务模式时,如果使用了密码认证机制,密码文件是一个非常重要的安全组件。密码文件通常包含用户名称和加密后的密码,用于验证客户端的访问权限。为了确保密码文件的安全性,应该将其权限设置为尽可能严格。理想情况下,密码文件的权限应该设置为仅允许rsync服务进程访问......
  • 在Linux中,rsync同步时,如何删除目标数据多出来的数据,即源上不存在,但目标却存在的文件或
    在Linux中,rsync命令是一个非常强大且灵活的工具,用于文件和目录的同步。当使用rsync进行同步时,如果希望删除目标目录中那些不再存在于源目录中的文件或目录,你可以使用--delete选项。下面是一些关于如何使用--delete选项的详细说明:1.使用--delete选项当你在rsync命令中加入--del......
  • Python异步编程技术详解:async、await、yield和anext
    Python异步编程技术详解:async、await、yield和anext1.async和await2.yield3.anext4.StopAsyncIteration5.综合示例:异步聊天机器人总结异步编程是Python中一种强大的并发编程模式,可以显著提高I/O密集型应用的性能。本文将详细介绍Python中的几种重要的异步编......
  • 阿里面试:说说@Async实现原理?
    @Async是Spring3.0提供的一个注解,用于标识某类(下的公共方法)或某方法会执行异步调用。接下来,我们来看下@Async的基本使用和实现原理。1.基本使用@Async基本使用可以分为以下3步:项目中开启异步支持创建异步方法调用异步方法1.1开启异步支持以SpringBoot项目......
  • opencv 编译报错: error: temporary of non-literal type 'google::protobuf::intern
    完整报错:C:\Users\MyName\MyProject\lib\include\google\protobuf\stubs\mutex.h:124:error:temporaryofnon-literaltype'google::protobuf::internal::CallOnceInitializedMutex<std::mutex>'inaconstantexpressionInfileincludedfrom......
  • 统一视频接入平台LntonCVS视频监控平台具体功能介绍
    LntonCVS视频监控平台是一款基于H5技术开发的安防视频监控解决方案,专为全球范围内不同品牌、协议及设备类型的监控产品设计。该平台提供了统一接入管理,支持标准的H5播放接口,使其他应用平台能够快速集成视频功能。无论开发环境、操作系统或平台如何,它都具备全兼容、纯WEB、无需......
  • 便宜SSL证书申请Let's Encrypt泛域名SSL证书
    随着互联网的飞速发展,网络安全问题愈发凸显其重要性。而HTTPS协议作为保障网站数据传输安全的重要手段,已经得到了广泛的应用。申请Let'sEncrypt便宜泛域名SSL证书步骤1.登录来此加密网站,输入域名,可以勾选泛域名和包含根域。2.选择加密方式,一般选择默认就可以了,也可以自定义C......