创建和编辑Vtable文件
Posted jiangleads
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建和编辑Vtable文件相关的知识,希望对你有一定的参考价值。
网上有关于ERA-Interim 驱动WRF的帖子和用ERA5(模式层)驱动WRF的帖子。但没有ERA5气压层驱动的例子,以下是一些尝试
关于变量表Vtables (翻译自WRF手册 ,第3-39(61页))
创建和编辑Vtables
虽然提供了众多数据集的Vtables,但是ungrib不可能以GRIB格式预测每种可能的气象数据来源。当ungrib.exe处理新的数据源时,用户可以从头开始创建新的Vtable,也可以使用现有的Vtable作为示例。
每个Vtable包含7个或11个字段,具体取决于Vtable是用于GRIB1的数据还是GRIB2的数据。该Vtable的字段分为三类:描述如何在GRIB文件中识别数据的字段,描述如何通过ungrib和metgrid程序识别数据的字段,以及GRIB Edition 2的特定字段。每个将要由 ungrib.exe 提取的变量,在Vtable中将会有一行或多行,其中多行用于在不同level tpye(层次类型)之间分割的数据。例如,地面层和高空层。在Vtable中的字段,必须在一行或一条中指定,并且取决于字段和层次的详细信息。
第一组字段——这些用来描述GRIB文件中的数据是如何识别的——在下面显示的Vtable的列标题下给出。
GRIB1| Level| From | To |
Param| Type |Level1|Level2|
-----+------+------+------+
其中的“GRIB1 Param”字段指定了气象场的GRIB码(GRIB code),他在该数据集集中是一个独一无二的数字。然而,不同的数据集中对于相同的变量场可能有不同的GRIB码——例如,高层温度的GRIB码在GFS数据中是11,而在ECMWF中是130。为了获取气象场的GRIB码,可以使用g1print.exe和g2print.exe工具。
得到一个GRIB码之后,“Level Type”,“From Level1”,和“From Level2”字段被用于确定需要去查找哪些场。如,使用“GRIB1 Param”字段,g1print.exe和g2print.exe可以去用来找到level fields的值。level fields的意义是依赖于“Level Type”场,见下表。
Level | Level Type | From Level1 | To Level2 |
Upper-air | 100 | * | (blank) |
Surface | 1 | 0 | (blank) |
Sea-level | 102 | 0 | (blank) |
Levels at a sepecified height AGL | 105 |
Height, in meters, of |
(blank) |
Fields given as layers | 112 |
Starting level for the |
Ending level for |
其中层次字段(层次类型112)被给定,起始和终止位置对于层次的单位由场本身决定,可以使用g1print.exe和g2print.exe工具找到合适的值。
Vtable中的第二组字段,用来描述数据是如何在metgrid和real 程序中被识别的,在下面显示的Vtable的列标题下给出。
| metgrid | metgrid | metgrid |
| Name | Units | Description |
+----------+---------+-----------------------------------------+
这三个字段中最重要的是“metgrid Name”场,其决定了当其通过ungrib写入中间文件时,将要被复制到气象场中的变量的名字。这个名字同样应当与METGRID.TBL文件的条目对应。所以,metgrid 程序可以确定气象场是如何水平的插值的。“metgrid Units”和“metgrid Description”字段分别定义了单位和变量简述。在这里,隆重指出,如果对于一个场没有给出描述,那么ungrib将不会将该场写入中间文件中。
字段的最后一组,提供了GRIB2特定的信息,如下表所示。
|GRIB2|GRIB2|GRIB2|GRIB2|
|Discp|Catgy|Param|Level|
+-----------------------+
虽然在Vtable中包含这些字段并不会妨碍Vtable也用于GRIB1数据,但在Vtable中,GRIB2 字段仅仅对于GRIB2格式的数据集需要。例如,Vtable.GFS文件包含GRIB2 Vtable 字段,但也适用于1度(GRIB1)GFS和0.5度(GRIB2)GFS数据集。 由于已经为大多数已知的GRIB 2数据集提供了Vtable,因此目前不在此描述相应的Vtable字段。。。
例子 Vtable.GFS
GRIB1| Level| From | To | metgrid | metgrid | metgrid |GRIB2|GRIB2|GRIB2|GRIB2|
Param| Type |Level1|Level2| Name | Units | Description |Discp|Catgy|Param|Level|
-----+------+------+------+----------+---------+-----------------------------------------+-----------------------+
11 | 100 | * | | TT | K | Temperature | 0 | 0 | 0 | 100 |
33 | 100 | * | | UU | m s-1 | U | 0 | 2 | 2 | 100 |
34 | 100 | * | | VV | m s-1 | V | 0 | 2 | 3 | 100 |
52 | 100 | * | | RH | % | Relative Humidity | 0 | 1 | 1 | 100 |
7 | 100 | * | | HGT | m | Height | 0 | 3 | 5 | 100 |
11 | 105 | 2 | | TT | K | Temperature at 2 m | 0 | 0 | 0 | 103 |
52 | 105 | 2 | | RH | % | Relative Humidity at 2 m | 0 | 1 | 1 | 103 |
33 | 105 | 10 | | UU | m s-1 | U at 10 m | 0 | 2 | 2 | 103 |
34 | 105 | 10 | | VV | m s-1 | V at 10 m | 0 | 2 | 3 | 103 |
1 | 1 | 0 | | PSFC | Pa | Surface Pressure | 0 | 3 | 0 | 1 |
130 | 102 | 0 | | PMSL | Pa | Sea-level Pressure | 0 | 3 | 192 | 101 |
144 | 112 | 0 | 10 | SM000010 | fraction| Soil Moist 0-10 cm below grn layer (Up) | 2 | 0 | 192 | 106 |
144 | 112 | 10 | 40 | SM010040 | fraction| Soil Moist 10-40 cm below grn layer | 2 | 0 | 192 | 106 |
144 | 112 | 40 | 100 | SM040100 | fraction| Soil Moist 40-100 cm below grn layer | 2 | 0 | 192 | 106 |
144 | 112 | 100 | 200 | SM100200 | fraction| Soil Moist 100-200 cm below gr layer | 2 | 0 | 192 | 106 |
144 | 112 | 10 | 200 | SM010200 | fraction| Soil Moist 10-200 cm below gr layer | 2 | 0 | 192 | 106 |
11 | 112 | 0 | 10 | ST000010 | K | T 0-10 cm below ground layer (Upper) | 0 | 0 | 0 | 106 |
11 | 112 | 10 | 40 | ST010040 | K | T 10-40 cm below ground layer (Upper) | 0 | 0 | 0 | 106 |
11 | 112 | 40 | 100 | ST040100 | K | T 40-100 cm below ground layer (Upper) | 0 | 0 | 0 | 106 |
11 | 112 | 100 | 200 | ST100200 | K | T 100-200 cm below ground layer (Bottom)| 0 | 0 | 0 | 106 |
85 | 112 | 0 | 10 | ST000010 | K | T 0-10 cm below ground layer (Upper) | 2 | 0 | 2 | 106 |
85 | 112 | 10 | 40 | ST010040 | K | T 10-40 cm below ground layer (Upper) | 2 | 0 | 2 | 106 |
85 | 112 | 40 | 100 | ST040100 | K | T 40-100 cm below ground layer (Upper) | 2 | 0 | 2 | 106 |
85 | 112 | 100 | 200 | ST100200 | K | T 100-200 cm below ground layer (Bottom)| 2 | 0 | 2 | 106 |
11 | 112 | 10 | 200 | ST010200 | K | T 10-200 cm below ground layer (Bottom) | 0 | 0 | 0 | 106 |
91 | 1 | 0 | | SEAICE | proprtn | Ice flag | 10 | 2 | 0 | 1 |
81 | 1 | 0 | | LANDSEA | proprtn | Land/Sea flag (1=land, 0 or 2=sea) | 2 | 0 | 0 | 1 |
81 | 1 | 0 | | LANDN | proprtn | | 2 | 0 | 218 | 1 |
7 | 1 | 0 | | SOILHGT | m | Terrain field of source analysis | 0 | 3 | 5 | 1 |
11 | 1 | 0 | | SKINTEMP | K | Skin temperature | 0 | 0 | 0 | 1 |
65 | 1 | 0 | | SNOW | kg m-2 | Water equivalent snow depth | 0 | 1 | 13 | 1 |
| 1 | 0 | | SNOWH | m | Physical Snow Depth | 0 | 1 | | 1 |
33 | 6 | 0 | | UMAXW | m s-1 | U at max wind | 0 | 2 | 2 | 6 |
34 | 6 | 0 | | VMAXW | m s-1 | V at max wind | 0 | 2 | 3 | 6 |
2 | 6 | 0 | | PMAXW | Pa | Pressure of max wind level | 0 | 3 | 0 | 6 |
| 6 | 0 | | PMAXWNN | Pa | PMAXW, used for nearest neighbor interp | 0 | 3 | 0 | 6 |
2 | 6 | 0 | | TMAXW | K | Temperature at max wind level | 0 | 0 | 0 | 6 |
7 | 6 | 0 | | HGTMAXW | m | Height of max wind level | 0 | 3 | 5 | 6 |
33 | 7 | 0 | | UTROP | m s-1 | U at tropopause | 0 | 2 | 2 | 7 |
34 | 7 | 0 | | VTROP | m s-1 | V at tropopause | 0 | 2 | 3 | 7 |
2 | 7 | 0 | | PTROP | Pa | Pressure of tropopause | 0 | 3 | 0 | 7 |
| 7 | 0 | | PTROPNN | Pa | PTROP, used for nearest neighbor interp | 0 | 3 | 0 | 7 |
2 | 7 | 0 | | TTROP | K | Temperature at tropopause | 0 | 0 | 0 | 7 |
7 | 7 | 0 | | HGTTROP | m | Height of tropopause | 0 | 3 | 5 | 7 |
-----+------+------+------+----------+---------+-----------------------------------------+-----------------------+
#
# Vtable for GFS pressure-level data from the ncep server.
# This version includes fields from the Tropopause and Max Wind levels used by WRF V3.6.1 and later.
# NCEP has used multiple definitions of the soil temperature in their output and the Vtable attempts
# to account for these possibilities. (Definition changed 14 Jan 2015).
#
# ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.ccyymmddhh/ (note hh at end)
#
# approx. grid hours domain dx notes
# file size no.
#
# gfs.t12z.pgrb2.0p25 220000 Kb 193 3-h to 240-h global 0.25 deg (26 p-levels plus sfc and trop, 1000 to 10 mb).
# gfs.t12z.pgrb2.0p50 68000 Kb 4 3-h to 240-h global 0.5 deg (26 p-levels plus sfc and trop, 1000 to 10 mb).
#
# Prior to 12z 14 January 2015:
#
# gfs.t12z.pgrb2f00 56000 Kb 4 3-h to 192-h global 0.5 deg (26 p-levels plus sfc and trop, 1000 to 10 mb).
# gfs.t12z.pgrbf00.grib2 18000 Kb 3 3-h to 384-h global 1.0 deg (26 p-levels plus sfc and trop, 1000 to 10 mb).
#
#
# As of mid-2017 the GFS provides two land mask fields in the pressure-level output. WPS uses LANDN if available
# and renames it LANDSEA.
#
# As of WPS V4.1 (April 2019) the default PMSL is changed to MSLET. MSLET is an unsmoothed sea level pressure.
# NCEP included MSLET in their GFS files beginning 12z on 10 May 2011 and in their GDAS files at 12z 14 January 2015.
# The smoother PRMSL is in all GFS/GDAS pressure files.
# For GFS files prior to those dates use PRMSL as shown in the following line:
# 2 | 102 | 0 | | PMSL | Pa | Sea-level Pressure | 0 | 3 | 1 | 101 |
#
#
# Abbreviated history of GFS changes (all starting at 12 UTC)
#
# Sometime 2019 - Update to FV3 (requires WPS V4.0 or later)
# 19 July 2017 - Change to land mask and other terrestrial variables (requires WPS V3.9.1.1)
# - Change missing value, removal of grid 211 (80km conus). Flag value of .468 in soil moisture.
# 11 May 2016 - Assimilate AMSU-A radiances, AVHRR winds, CRTMv2.2.1, 4d hybrid das.
# - Add 5 stratospheric levels to ouput. UPP V7.0. Land surface and GWD upates.
# 14 January 2015 - Add MSLET to GDAS. Change from T574 (27km) to T1534 (13km). Fcst length to 240 h.
# - semi-lagrangian, uses rtgsst, Z0 dependent on vegetation type, CRTMv2.1.3, 0.25 deg output
# 10 May 2011 - Add MSLET to output. New thermal roughness length. Elevation of buoys to 10m.
# - Improved GSI, update CRTM. Recomputed BE.
# 27 July 2010 - T382 (35km) to T574 (27km). new pbl, gravity wave drag, updated deep convective scheme
# 13 May 2008 - RRTM radiation, aerosol, cloud overlap, windsat sfc winds, flow dependent bev.
# 25 September 2007 - Implement UPP.
# 31 May 2005 - T254L64 to T382L64. Change in soil output to 3 levels.
# 29 October 2002 - Change from T170L42 to T254L64. Model top changed from 2 hPA to .2 hPa
例子 (Vtable.ERA-interim.pl)
GRIB | Level| Level| Level| metgrid | metgrid | metgrid |
Code | Code | 1 | 2 | Name | Units | Description |
-----+------+------+------+----------+----------+------------------------------------------+
129 | 100 | * | | GEOPT | m2 s-2 | |
| 100 | * | | HGT | m | Height |
130 | 100 | * | | TT | K | Temperature |
131 | 100 | * | | UU | m s-1 | U |
132 | 100 | * | | VV | m s-1 | V |
157 | 100 | * | | RH | % | Relative Humidity |
165 | 1 | 0 | | UU | m s-1 | U | At 10 m
166 | 1 | 0 | | VV | m s-1 | V | At 10 m
167 | 1 | 0 | | TT | K | Temperature | At 2 m
168 | 1 | 0 | | DEWPT | K | | At 2 m
| 1 | 0 | | RH | % | Relative Humidity | At 2 m
172 | 1 | 0 | | LANDSEA | 0/1 Flag | Land/Sea flag |
129 | 1 | 0 | | SOILGEO | m2 s-2 | |
| 1 | 0 | | SOILHGT | m | Terrain field of source analysis |
134 | 1 | 0 | | PSFC | Pa | Surface Pressure |
151 | 1 | 0 | | PMSL | Pa | Sea-level Pressure |
235 | 1 | 0 | | SKINTEMP | K | Sea-Surface Temperature |
31 | 1 | 0 | | SEAICE | fraction | Sea-Ice Fraction |
34 | 1 | 0 | | SST | K | Sea-Surface Temperature |
33 | 1 | 0 | | SNOW_DEN | kg m-3 | |
141 | 1 | 0 | | SNOW_EC | m | |
| 1 | 0 | | SNOW | kg m-2 |Water Equivalent of Accumulated Snow Depth|
| 1 | 0 | | SNOWH | m | Physical Snow Depth |
139 | 112 | 0 | 7 | ST000007 | K | T of 0-7 cm ground layer |
170 | 112 | 7 | 28 | ST007028 | K | T of 7-28 cm ground layer |
183 | 112 | 28 | 100 | ST028100 | K | T of 28-100 cm ground layer |
236 | 112 | 100 | 255 | ST100289 | K | T of 100-289 cm ground layer |
39 | 112 | 0 | 7 | SM000007 | m3 m-3 | Soil moisture of 0-7 cm ground layer |
40 | 112 | 7 | 28 | SM007028 | m3 m-3 | Soil moisture of 7-28 cm ground layer |
41 | 112 | 28 | 100 | SM028100 | m3 m-3 | Soil moisture of 28-100 cm ground layer |
42 | 112 | 100 | 255 | SM100289 | m3 m-3 | Soil moisture of 100-289 cm ground layer |
-----+------+------+------+----------+----------+------------------------------------------+
#
# For use with ERA-interim pressure-level output.
#
# Grib codes are from Table 128
# http://www.ecmwf.int/services/archive/d/parameters/order=grib_parameter/table=128/
#
# snow depth is converted to the proper units in rrpr.F
#
# For ERA-interim data at NCAR, use the pl (sc and uv) and sfc sc files.
注:ERA5的变量字段可在官网查询https://apps.ecmwf.int/codes/grib/param-db
经过与ERA-Interm 的GRIB code对比,可以发现,ERA-Interim中GRIB码为39~42的变量描述为“土壤湿度“soil moisture,而在ERA5中,相应的GRIB码对应的变量描述为Volumetric soil water。所以,用ERA5驱动WRF时候下载土壤湿度时,应该下载的变量名是这个。
根据以上,照葫芦画瓢,相信可以成功ungrib ERA5 气压层的数据,具体信息成功后再更。
以上是关于创建和编辑Vtable文件的主要内容,如果未能解决你的问题,请参考以下文章
D-bus:无法创建属性:sd_bus_add_object_vtable 失败
undefined reference to `vtable for’”问题的原因及解决方法
Qtundefined reference to `vtable for xxx’