ncl函数 mixhum_ptrh

描述:用给出的气压、温度和相对湿度计算混合比或比湿。
注意:允许但忽略缺省值。V6.2.1修复了无法识别负值iswit选项的问题。
相关:mixhum_ptd
Prototype
函数 mixhum_ptrh( p, tk, rh, iswit) 
Arguments
p : 气压 hPa,数组
tk : 温度 K,和p同形的数组
rh : 相对湿度 %,同上
iswit : 选项 (1 = 混合比 kg/kg,-1 = 混合比 g/kg;2 = 比湿 kg/kg,-2 = 比湿 g/kg)
Return value
返回与p同形的数组,通过iswit选项得到q比湿或w混合比。
Examples
官网的例子:https://www.ncl.ucar.edu/Document/Functions/Built-in/mixhum_ptrh.shtml
bing的例子:这是一个在NCL中使用mixhum_ptrh函数的例子:
p  = 1000.0 
tk = 18.0 + 273.15 
rh = 46.5 
q = mixhum_ptrh(p, tk, rh, 1)
这计算了给定压力p(以hPa(mb)为单位),温度tk(以K为单位)和相对湿度rh(以百分比为单位)的混合比或比湿。最后一个参数iswit确定返回哪个变量:1表示混合比(kg/kg),2表示比湿(kg/kg)。负值将单位更改为g/kg。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用NCL(NCAR Command Language)读取WRF输出数据中指定经纬度范围mdbz数据的示例代码,其中使用了wrf_user_getvar函数: ```ncl load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" ; 加载gsn_code.ncl库 begin ; 定义变量 variable wrf_data, mdbz integer i, j, k, n, ret ; 读取WRF输出的nc文件 wrf_data = addfile("wrfout.nc", "r") ; 获取经度、纬度和垂直层数 lon = wrf_data->XLONG(0,:,:) ; 经度 lat = wrf_data->XLAT(0,:,:) ; 纬度 nz = dimsizes(wrf_data->PH) ; 设置经纬度范围 lon_min = -80.0 lon_max = -70.0 lat_min = 20.0 lat_max = 30.0 ; 获取经度、纬度范围对应的网格索引 lon_idx = where(lon.ge.lon_min .and. lon.le.lon_max, True, False) lat_idx = where(lat.ge.lat_min .and. lat.le.lat_max, True, False) ; 获取经度、纬度范围对应的网格大小 nx = dimsizes(lon_idx) ny = dimsizes(lat_idx) ; 设置起始位置和大小 start = (/0, min(lat_idx), min(lon_idx)/) count = (/1, ny, nx/) ; 获取指定经纬度范围内的mdbz值 mdbz = new((/nz, ny, nx/), typeof(wrf_data->mdbz)) do i = 0, nx-1 start(2) = lon_idx(i) do j = 0, ny-1 start(1) = lat_idx(j) ret = wrf_user_getvar("mdbz", mdbz(:,j,i), start, count, wrf_data) if (ret.ne.0) then ; 错误处理 end if end do end do ; 输出mdbz值 n = nx * ny mdbz = reshape(mdbz, (/nz, n/)) mdbz = transpose(mdbz) mdbz = mdbz(:,0) print(mdbz) ; 释放资源 delete(wrf_data) end ``` 在示例代码中,假设WRF输出的nc文件名为“wrfout.nc”。首先,通过addfile函数读取nc文件中的数据。然后,根据指定的经纬度范围,获取对应的网格索引和网格大小。接着,使用wrf_user_getvar函数获取指定经纬度范围内的mdbz值,并输出。最后,通过delete函数释放资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值