水汽诊断分析计算moisture
<p>[TOC]</p>
<h1>相对湿度计算</h1>
<p>利用温度和露点温度计算相对湿度,代码示例如下:</p>
<pre><code class="language-python">relative_humidity_from_dewpoint(tmp,td)</code></pre>
<p><font size="4"><b>参数说明</b></font></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">tmp</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">温度</td>
</tr>
<tr>
<td style="text-align: left;">td</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">露点温度</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">返回值</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">rh</td>
<td style="text-align: left;">STDA标准格式的相对湿度</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python"></code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"></code></pre>
<h1>根据相对湿度计算露点</h1>
<p>利用温度和相对湿度计算露点温度,代码示例如下:</p>
<pre><code class="language-python">dewpoint_from_relative_humidity(tmp, rh)</code></pre>
<p><font size="4"><b>参数说明</b></font></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">tmp</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">air temperature</td>
</tr>
<tr>
<td style="text-align: left;">rh</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">relative humidity</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">返回值</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">STDA标准格式的露点温度数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python">import datetime
from metdig.io.cassandra import get_model_grid
from metdig.utl import utl_stda_grid
from metdig.cal import moisture
init_time = datetime.datetime(2020, 7, 25, 8)
fhour = 0
tmp = get_model_grid(init_time=init_time, fhour=fhour, model_name='ecmwf', var_name='tmp', level=500)
rh = get_model_grid(init_time=init_time, fhour=fhour, model_name='ecmwf', var_name='rh', level=500)
td = moisture.dewpoint_from_relative_humidity(tmp, rh)
print(td)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python">&lt;xarray.DataArray (member: 1, level: 1, time: 1, dtime: 1, lat: 451, lon: 901)&gt;
array([[[[[[-40.505894, -40.483128, -40.47175 , ..., -20.539557,
-20.138365, -19.789034],
[-40.426224, -40.426224, -40.426224, ..., -22.193771,
-22.166649, -21.730204],
[-40.34657 , -40.380703, -40.403465, ..., -24.002176,
-23.935495, -23.420006],
...,
[-22.147375, -22.162176, -21.97218 , ..., -25.876303,
-25.78621 , -25.832115],
[-22.369833, -22.191776, -22.191776, ..., -26.473087,
-26.488335, -26.36493 ],
[-22.639416, -22.624666, -22.624666, ..., -25.524725,
-25.198145, -24.89834 ]]]]]], dtype=float32)
Coordinates:
* member (member) int32 0
* level (level) int32 500
* time (time) datetime64[ns] 2020-07-25T08:00:00
* dtime (dtime) int32 0
* lat (lat) float64 -10.0 -9.8 -9.6 -9.4 -9.2 ... 79.4 79.6 79.8 80.0
* lon (lon) float64 0.0 0.2 0.4 0.6 0.8 ... 179.2 179.4 179.6 179.8 180.0
Attributes:
var_name: td
var_cn_name: 露点温度
var_units: degC
valid_time: 0
data_source:
data_type:
model_name: </code></pre>
<h1>根据绝对湿度计算露点</h1>
<p>代码示例如下:</p>
<pre><code class="language-python">dewpoint_from_specific_humidity(pres, tmp, spfh)</code></pre>
<p><font size="4"><b>参数说明</b></font></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">pres</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">pressure</td>
</tr>
<tr>
<td style="text-align: left;">tmp</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">air temperature</td>
</tr>
<tr>
<td style="text-align: left;">spfh</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">specific_humidity</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">返回值</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">STDA标准格式露点温度</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python"></code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"></code></pre>
<h1>饱和水蒸气压计算</h1>
<p>利用温度计算饱和水蒸气压,代码示例如下:</p>
<pre><code class="language-python">saturation_vapor_pressure(tmp)</code></pre>
<p><font size="4"><b>参数说明</b></font></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">tmp</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">air temperature</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">返回值</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">STDA标准格式的饱和水蒸气压数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python">import datetime
from metdig.io.cassandra import get_model_grid
from metdig.utl import utl_stda_grid
from metdig.cal import moisture
init_time = datetime.datetime(2020, 7, 25, 8)
fhour = 0
tmp = get_model_grid(init_time=init_time, fhour=fhour, model_name='ecmwf', var_name='tmp', level=500)
es = moisture.saturation_vapor_pressure(tmp)
print(es)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python">&lt;xarray.DataArray (member: 1, level: 1, time: 1, dtime: 1, lat: 451, lon: 901)&gt;
array([[[[[[4.013016 , 4.0225654 , 4.027347 , ..., 3.9373472 ,
3.946736 , 3.9420395 ],
[4.046526 , 4.046526 , 4.046526 , ..., 3.9233015 ,
3.9326606 , 3.9373472 ],
[4.080284 , 4.0657864 , 4.0561457 , ..., 3.9373472 ,
3.9608564 , 3.970295 ],
...,
[1.753811 , 1.7515329 , 1.7515329 , ..., 0.92901015,
0.9251474 , 0.9212993 ],
[1.7492572 , 1.7469844 , 1.7469844 , ..., 0.90227306,
0.9010173 , 0.8997631 ],
[1.7379192 , 1.7401816 , 1.7401816 , ..., 0.8823679 ,
0.87868005, 0.87378424]]]]]], dtype=float32)
Coordinates:
* member (member) int32 0
* level (level) int32 500
* time (time) datetime64[ns] 2020-07-25T08:00:00
* dtime (dtime) int32 0
* lat (lat) float64 -10.0 -9.8 -9.6 -9.4 -9.2 ... 79.4 79.6 79.8 80.0
* lon (lon) float64 0.0 0.2 0.4 0.6 0.8 ... 179.2 179.4 179.6 179.8 180.0
Attributes:
var_name: es
var_cn_name: 饱和水汽压
var_units: hPa
valid_time: 0
data_source:
data_type:
model_name: </code></pre>
<h1>比湿计算</h1>
<p>利用露点温度和压力计算比湿,代码示例如下:</p>
<pre><code class="language-python">specific_humidity_from_dewpoint(td, pres)</code></pre>
<p><font size="4"><b>参数说明</b></font></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">td</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">dewpoint temperature</td>
</tr>
<tr>
<td style="text-align: left;">pres</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">pressure</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">返回值</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">STDA标准格式的比湿数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python">import datetime
from metdig.io.cassandra import get_model_grid
from metdig.utl import utl_stda_grid
from metdig.cal import moisture
init_time = datetime.datetime(2020, 7, 25, 8)
fhour = 0
tmp = get_model_grid(init_time=init_time, fhour=fhour, model_name='ecmwf', var_name='tmp', level=500)
rh = get_model_grid(init_time=init_time, fhour=fhour, model_name='ecmwf', var_name='rh', level=500)
pres = utl_stda_grid.gridstda_full_like(tmp, 500, var_name='pres')
td = moisture.dewpoint_from_relative_humidity(tmp, rh)
spfh = moisture.specific_humidity_from_dewpoint(td, pres)
print(spfh)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python">&lt;xarray.DataArray (member: 1, level: 1, time: 1, dtime: 1, lat: 451, lon: 901)&gt;
array([[[[[[0.22375119, 0.22428374, 0.2245504 , ..., 1.4943135 ,
1.5470659 , 1.5943544 ],
[0.22561976, 0.22561976, 0.22561976, ..., 1.2934303 ,
1.2965171 , 1.347121 ],
[0.22750203, 0.22669367, 0.2261559 , ..., 1.1018617 ,
1.1084452 , 1.1605451 ],
...,
[1.2987164 , 1.2970284 , 1.3188504 , ..., 0.9306131 ,
0.93826216, 0.9343567 ],
[1.2735481 , 1.2936574 , 1.2936574 , ..., 0.88134277,
0.8801147 , 0.890094 ],
[1.243634 , 1.2452545 , 1.2452545 , ..., 0.96078557,
0.9895967 , 1.016728 ]]]]]], dtype=float32)
Coordinates:
* member (member) int32 0
* level (level) int32 500
* time (time) datetime64[ns] 2020-07-25T08:00:00
* dtime (dtime) int32 0
* lat (lat) float64 -10.0 -9.8 -9.6 -9.4 -9.2 ... 79.4 79.6 79.8 80.0
* lon (lon) float64 0.0 0.2 0.4 0.6 0.8 ... 179.2 179.4 179.6 179.8 180.0
Attributes:
var_name: spfh
var_cn_name: 比湿
var_units: g/kg
valid_time: 0
data_source:
data_type:
model_name: </code></pre>
<h1>单层水汽通量计算</h1>
<p>利用比湿和风速计算单层水汽通量,代码示例如下:</p>
<pre><code class="language-python">cal_ivt_singlelevel(spfh, wsp)</code></pre>
<p><font size="4"><b>参数说明</b></font></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">spfh</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">specific humidity. dims must be (1,1,1,1,M,N)</td>
</tr>
<tr>
<td style="text-align: left;">wsp</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">wind speed. dims must be (1,1,1,1,M,N)</td>
</tr>
<tr>
<td style="text-align: left;">pres</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">pressure. dims must be (1,1,1,1,M,N)</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">返回值</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">STDA标准格式的单层水汽通量数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python">import datetime
from metdig.io.cassandra import get_model_grid
from metdig.utl import utl_stda_grid
from metdig.cal import moisture
from metdig.cal import other
init_time = datetime.datetime(2020, 7, 25, 8)
fhour = 0
spfh = get_model_grid(init_time=init_time, fhour=fhour, model_name='ecmwf', var_name='spfh', level=850)
u = get_model_grid(init_time=init_time, fhour=fhour, model_name='ecmwf', var_name='u', level=850)
v = get_model_grid(init_time=init_time, fhour=fhour, model_name='ecmwf', var_name='v', level=850)
wsp = other.wind_speed(u, v)
ivt = moisture.cal_ivt_singlelevel(spfh, u)
print(ivt)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python">&lt;xarray.DataArray (member: 1, level: 1, time: 1, dtime: 1, lat: 451, lon: 901)&gt;
array([[[[[[6.0651522e+00, 6.2957869e+00, 6.8212051e+00, ...,
1.3670409e+02, 1.3461769e+02, 1.3730931e+02],
[6.6590381e+00, 6.8233337e+00, 7.4337192e+00, ...,
1.3790312e+02, 1.3706523e+02, 1.4221974e+02],
[7.2640104e+00, 7.2411675e+00, 7.6846843e+00, ...,
1.3796332e+02, 1.4338327e+02, 1.4708617e+02],
...,
[5.8385158e-01, 8.6818385e-01, 1.1739771e+00, ...,
7.3954797e-01, 6.2509090e-01, 5.1425695e-01],
[1.5594475e-01, 3.3214533e-01, 5.5678582e-01, ...,
1.8312185e+00, 2.3395541e+00, 2.7247617e+00],
[1.0890891e-01, 3.0969799e-02, 1.1555010e-01, ...,
5.5099993e+00, 6.0330100e+00, 6.5511551e+00]]]]]],
dtype=float32)
Coordinates:
* member (member) int32 0
* level (level) int32 850
* time (time) datetime64[ns] 2020-07-25T08:00:00
* dtime (dtime) int32 0
* lat (lat) float64 -10.0 -9.8 -9.6 -9.4 -9.2 ... 79.4 79.6 79.8 80.0
* lon (lon) float64 0.0 0.2 0.4 0.6 0.8 ... 179.2 179.4 179.6 179.8 180.0
Attributes:
var_name: wvfl
var_cn_name: 水汽通量
var_units: 0.1g/(cm*hPa*s)
valid_time: 0
data_source:
data_type:
model_name: </code></pre>
<h1>水汽压计算</h1>
<p>利用温度和相对湿度计算水汽压,代码示例如下:</p>
<pre><code class="language-python">cal_p_vapor(tmp, rh)</code></pre>
<p><font size="4"><b>参数说明</b></font></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">tmp</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">temperature</td>
</tr>
<tr>
<td style="text-align: left;">rh</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">relative humidity</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">返回值</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">STDA标准格式的水汽压数据</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python">import datetime
from metdig.io.cassandra import get_model_grid
from metdig.utl import utl_stda_grid
from metdig.cal import moisture
init_time = datetime.datetime(2020, 7, 25, 8)
fhour = 0
tmp = get_model_grid(init_time=init_time, fhour=fhour, model_name='ecmwf', var_name='tmp', level=500)
rh = get_model_grid(init_time=init_time, fhour=fhour, model_name='ecmwf', var_name='rh', level=500)
p_vapor = moisture.cal_p_vapor(tmp, rh)
print(p_vapor)</code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python">&lt;xarray.DataArray (member: 1, level: 1, time: 1, dtime: 1, lat: 451, lon: 901)&gt;
array([[[[[[0.17950411, 0.17993227, 0.18014666, ..., 1.1978315 ,
1.2400856 , 1.2779502 ],
[0.18100657, 0.18100657, 0.18100657, ..., 1.0369226 ,
1.0394021 , 1.0799408 ],
[0.18252018, 0.18187013, 0.1814379 , ..., 0.8834561 ,
0.8887439 , 0.9304933 ],
...,
[1.0381818 , 1.0368267 , 1.0542578 , ..., 0.7414669 ,
0.74753857, 0.74440914],
[1.0180651 , 1.0341218 , 1.0341218 , ..., 0.702099 ,
0.70111555, 0.70905423],
[0.9941407 , 0.99544084, 0.99544084, ..., 0.76523644,
0.78814864, 0.8097136 ]]]]]], dtype=float32)
Coordinates:
* member (member) int32 0
* level (level) int32 500
* time (time) datetime64[ns] 2020-07-25T08:00:00
* dtime (dtime) int32 0
* lat (lat) float64 -10.0 -9.8 -9.6 -9.4 -9.2 ... 79.4 79.6 79.8 80.0
* lon (lon) float64 0.0 0.2 0.4 0.6 0.8 ... 179.2 179.4 179.6 179.8 180.0
Attributes:
var_name: p_vapor
var_cn_name: 水汽压
var_units:
valid_time: 0
data_source:
data_type:
model_name: </code></pre>
<h1>水汽通量散度计算</h1>
<p>代码示例如下:</p>
<pre><code class="language-python">water_wapor_flux_divergence(u,v,spfh)</code></pre>
<p><font size="4"><b>参数说明</b></font></p>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">u</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">x component of the wind</td>
</tr>
<tr>
<td style="text-align: left;">v</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">y component of the wind</td>
</tr>
<tr>
<td style="text-align: left;">spfh</td>
<td style="text-align: left;"><font color="red">是</font></td>
<td style="text-align: left;">stda</td>
<td style="text-align: left;">比湿</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th style="text-align: left;">返回值</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">wvfldiv</td>
<td style="text-align: left;">1</td>
</tr>
</tbody>
</table>
<p><font size="4"><b>调用示例</b></font></p>
<pre><code class="language-python"></code></pre>
<p><font size="4"><b>输出信息</b></font></p>
<pre><code class="language-python"></code></pre>