【WRF教程第3.6期】预处理系统 WPS 详解:以4.5版本为例
预处理系统 WPS 详解:以4.5版本为例
- Geogrid/Metgrid 插值选项详解
- 1. 插值方法的工作机制
- 2. 插值方法的详细说明
- 2.1 四点双线性插值(four_pt)
- 2.2 十六点重叠抛物线插值(sixteen_pt)
- 2.3 简单四点平均插值(average_4pt)
- 2.4 加权四点平均插值(wt_average_4pt)
- 2.5 简单十六点平均插值(average_16pt)
- 2.6 加权十六点平均插值(wt_average_16pt)
- 2.7 最近邻插值(nearest_neighbor)
- 2.8 广度优先搜索插值(search)
- 2.9 模型网格单元平均插值(average_gcell)
- 3. 插值方法的选择与组合
- 静态数据中的土地利用与土壤分类
- 土地利用分类
- 土壤分类
- WPS输出字段(WPS Output Fields)
- 1. Geogrid输出(Geogrid Output)
- 2. Metgrid 输出(Metgrid Output)
- 参考
Geogrid/Metgrid 插值选项详解
在 WRF/WPS 模型中,GEOGRID.TBL 和 METGRID.TBL 文件用于控制静态地理数据(geogrid)或气象数据(metgrid)的插值方式。用户可以为每个变量指定一种或多种插值方法,按优先级尝试这些方法,直至某种方法成功或列表耗尽。
以下是 WPS 中可用的插值方法的详细概述,包括它们的适用场景、插值原理和计算细节。
1. 插值方法的工作机制
多种插值方法组合使用:例如,interp_option=four_pt+average_4pt 表示优先尝试四点双线性插值(four_pt),如果数据中存在缺失值导致插值失败,则退回到简单四点平均插值(average_4pt)。
连续与分类数据的区别:
- 连续数据(continuous):适用于具有连续数值的字段(如地形高度)。
- 分类数据(categorical):适用于离散类别字段(如土地利用类型)。
2. 插值方法的详细说明
2.1 四点双线性插值(four_pt)
方法描述:要求目标点 (x,y) 周围有四个有效数据点(a11, a12, a21, a22),以实现插值。
计算步骤:
1、对 a11 和 a12 在 x 轴方向线性插值,得到中间值;
2、对 a21 和 a22 在 x 轴方向线性插值;
3、对上述两个中间值在 y 轴方向线性插值,最终得到 (x,y) 的插值值。
适用场景:适合无缺失值的连续数据。
2.2 十六点重叠抛物线插值(sixteen_pt)
方法描述:使用 (x,y) 周围的 16 个有效数据点,拟合抛物线进行插值。
计算步骤:
1、对每行的四组连续点(如 ai1, ai2, ai3 和 ai2, ai3, ai4)拟合两条抛物线;
2、计算目标 x 坐标上的中间值,并对两个抛物线的结果加权平均;
3、最后,对所有行的中间值沿 y 轴方向进行类似操作。
特点:比双线性插值更平滑,但需要更多的有效点。
适用场景:适合连续数据,精度高。
2.3 简单四点平均插值(average_4pt)
方法描述:使用 (x,y) 周围四个点中的一部分有效数据点,计算其简单平均值。
优点:容忍部分数据缺失。
适用场景:适合数据稀疏或有缺失值的情况。
2.4 加权四点平均插值(wt_average_4pt)
方法描述:对 (x,y) 周围的四个点进行加权平均,权重由点到目标点的距离决定:
其中,x_i 和 y_j 是数据点的坐标。
优点:权重更精准,适合部分缺失数据且需要较高精度的场景。
2.5 简单十六点平均插值(average_16pt)
方法描述:类似于 average_4pt,但使用 (x,y) 周围的 16 个点。
适用场景:适合处理更高分辨率数据的情况。
2.6 加权十六点平均插值(wt_average_16pt)
方法描述:类似于 wt_average_4pt,但使用 (x,y) 周围的 16 个点
权重公式如下:
特点:精度更高,但对计算资源要求较高。
2.7 最近邻插值(nearest_neighbor)
方法描述:
- 对连续数据:直接选取离 (x,y) 最近的源数据点值。
- 对分类数据:计算网格中每种类别的占比,并以占比最大的类别为结果。
适用场景:适合分类数据或低分辨率数据。
2.8 广度优先搜索插值(search)
方法描述:将数据点视为二维网格图,从 (x,y) 最近的源数据点开始广度优先搜索,找到最近的有效点,使用其值进行插值。
特点:可以解决稀疏数据的插值问题,找到最近的“有效邻居”。
适用场景:适合数据缺失严重的情况。
2.9 模型网格单元平均插值(average_gcell)
方法描述:适用于源数据分辨率高于模型网格分辨率的情况。对于每个模型网格单元,计算所有靠近其中心的源数据点的简单平均值。
特点:适合高分辨率数据的降采样。
适用场景:常用于地形等静态数据的插值。
3. 插值方法的选择与组合
组合使用插值方法:可以通过 + 符号组合多种方法。例如:
interp_option=four_pt+average_4pt
表示优先尝试 four_pt,失败时退回到 average_4pt。
插值选项示例:
1、对地形高度数据:
interp_option=four_pt+average_4pt
2、对土地利用分类数据:
interp_option=nearest_neighbor
3、对气象场降水数据:
interp_option=wt_average_16pt
静态数据中的土地利用与土壤分类
土地利用分类
静态数据中的默认土地利用分类使用的是 MODIS 分类,与 WRF 的 VEGPARM.TBL 和 LANDUSE.TBL 文件相匹配。
用户可以下载更高分辨率的静态数据(如 USGS 数据),并确保其分类与表格文件一致。
土壤分类
静态数据中的土壤分类与 WRF 的 SOILPARM.TBL 文件匹配,用户需确保所用数据集的分类编号与表格文件一致。
WPS输出字段(WPS Output Fields)
1. Geogrid输出(Geogrid Output)
以下是写入 geogrid 程序输出文件的全局属性和字段的列表。此列表是 ncdump 程序在典型的 geo_em.d01.nc 文件上运行时输出的精简版本。
> ncdump -h geo_em.d01.ncnetcdf geo_em.d01 {
dimensions:Time = UNLIMITED ; // (1 currently)DateStrLen = 19 ;west_east = 73 ;south_north = 60 ;south_north_stag = 61 ;west_east_stag = 74 ;land_cat = 21 ;soil_cat = 16 ;month = 12 ;num_urb_params = 132 ;
variables:char Times(Time, DateStrLen) ;float XLAT_M(Time, south_north, west_east) ;XLAT_M:units = "degrees latitude" ;XLAT_M:description = "Latitude on mass grid" ;float XLONG_M(Time, south_north, west_east) ;XLONG_M:units = "degrees longitude" ;XLONG_M:description = "Longitude on mass grid" ;float XLAT_V(Time, south_north_stag, west_east) ;XLAT_V:units = "degrees latitude" ;XLAT_V:description = "Latitude on V grid" ;float XLONG_V(Time, south_north_stag, west_east) ;XLONG_V:units = "degrees longitude" ;XLONG_V:description = "Longitude on V grid" ;float XLAT_U(Time, south_north, west_east_stag) ;XLAT_U:units = "degrees latitude" ;XLAT_U:description = "Latitude on U grid" ;float XLONG_U(Time, south_north, west_east_stag) ;XLONG_U:units = "degrees longitude" ;XLONG_U:description = "Longitude on U grid" ;float CLAT(Time, south_north, west_east) ;CLAT:units = "degrees latitude" ;CLAT:description = "Computational latitude on mass grid" ;float CLONG(Time, south_north, west_east) ;CLONG:units = "degrees longitude" ;CLONG:description = "Computational longitude on mass grid" ;float MAPFAC_M(Time, south_north, west_east) ;MAPFAC_M:units = "none" ;MAPFAC_M:description = "Mapfactor on mass grid" ;float MAPFAC_V(Time, south_north_stag, west_east) ;MAPFAC_V:units = "none" ;MAPFAC_V:description = "Mapfactor on V grid" ;float MAPFAC_U(Time, south_north, west_east_stag) ;MAPFAC_U:units = "none" ;MAPFAC_U:description = "Mapfactor on U grid" ;float MAPFAC_MX(Time, south_north, west_east) ;MAPFAC_MX:units = "none" ;MAPFAC_MX:description = "Mapfactor (x-dir) on mass grid" ;float MAPFAC_VX(Time, south_north_stag, west_east) ;MAPFAC_VX:units = "none" ;MAPFAC_VX:description = "Mapfactor (x-dir) on V grid" ;float MAPFAC_UX(Time, south_north, west_east_stag) ;MAPFAC_UX:units = "none" ;MAPFAC_UX:description = "Mapfactor (x-dir) on U grid" ;float MAPFAC_MY(Time, south_north, west_east) ;MAPFAC_MY:units = "none" ;MAPFAC_MY:description = "Mapfactor (y-dir) on mass grid" ;float MAPFAC_VY(Time, south_north_stag, west_east) ;MAPFAC_VY:units = "none" ;MAPFAC_VY:description = "Mapfactor (y-dir) on V grid" ;float MAPFAC_UY(Time, south_north, west_east_stag) ;MAPFAC_UY:units = "none" ;MAPFAC_UY:description = "Mapfactor (y-dir) on U grid" ;float E(Time, south_north, west_east) ;E:units = "-" ;E:description = "Coriolis E parameter" ;float F(Time, south_north, west_east) ;F:units = "-" ;F:description = "Coriolis F parameter" ;float SINALPHA(Time, south_north, west_east) ;SINALPHA:units = "none" ;SINALPHA:description = "Sine of rotation angle" ;float COSALPHA(Time, south_north, west_east) ;COSALPHA:units = "none" ;COSALPHA:description = "Cosine of rotation angle" ;float LANDMASK(Time, south_north, west_east) ;LANDMASK:units = "none" ;LANDMASK:description = "Landmask : 1=land, 0=water" ;float XLAT_C(Time, south_north_stag, west_east_stag) ;XLAT_C:units = "degrees latitude" ;XLAT_C:description = "Latitude at grid cell corners" ;float XLONG_C(Time, south_north_stag, west_east_stag) ;XLONG_C:units = "degrees longitude" ;XLONG_C:description = "Longitude at grid cell corners" ;float LANDUSEF(Time, land_cat, south_north, west_east) ;LANDUSEF:units = "category" ;LANDUSEF:description = "Noah-modified 21-category IGBP-MODIS landuse" ;float LU_INDEX(Time, south_north, west_east) ;LU_INDEX:units = "category" ;LU_INDEX:description = "Dominant category" ;float HGT_M(Time, south_north, west_east) ;HGT_M:units = "meters MSL" ;HGT_M:description = "GMTED2010 30-arc-second topography height" ;float SOILTEMP(Time, south_north, west_east) ;SOILTEMP:units = "Kelvin" ;SOILTEMP:description = "Annual mean deep soil temperature" ;float SOILCTOP(Time, soil_cat, south_north, west_east) ;SOILCTOP:units = "category" ;SOILCTOP:description = "16-category top-layer soil type" ;float SCT_DOM(Time, south_north, west_east) ;SCT_DOM:units = "category" ;SCT_DOM:description = "Dominant category" ;float SOILCBOT(Time, soil_cat, south_north, west_east) ;SOILCBOT:units = "category" ;SOILCBOT:description = "16-category top-layer soil type" ;float SCB_DOM(Time, south_north, west_east) ;SCB_DOM:units = "category" ;SCB_DOM:description = "Dominant category" ;float ALBEDO12M(Time, month, south_north, west_east) ;ALBEDO12M:units = "percent" ;ALBEDO12M:description = "Monthly surface albedo" ;float GREENFRAC(Time, month, south_north, west_east) ;GREENFRAC:units = "fraction" ;GREENFRAC:description = "MODIS FPAR" ;float LAI12M(Time, month, south_north, west_east) ;LAI12M:units = "m^2/m^2" ;LAI12M:description = "MODIS LAI" ;float SNOALB(Time, south_north, west_east) ;SNOALB:units = "percent" ;SNOALB:description = "Maximum snow albedo" ;float SLOPECAT(Time, south_north, west_east) ;SLOPECAT:units = "category" ;SLOPECAT:description = "Dominant category" ;float CON(Time, south_north, west_east) ;CON:units = "" ;CON:description = "Subgrid-scale orographic convexity" ;float VAR(Time, south_north, west_east) ;VAR:units = "" ;VAR:description = "Subgrid-scale orographic variance" ;float OA1(Time, south_north, west_east) ;OA1:units = "" ;OA1:description = "Subgrid-scale orographic asymmetry" ;float OA2(Time, south_north, west_east) ;OA2:units = "" ;OA2:description = "Subgrid-scale orographic asymmetry" ;float OA3(Time, south_north, west_east) ;OA3:units = "" ;OA3:description = "Subgrid-scale orographic asymmetry" ;float OA4(Time, south_north, west_east) ;OA4:units = "" ;OA4:description = "Subgrid-scale orographic asymmetry" ;float OL1(Time, south_north, west_east) ;OL1:units = "" ;OL1:description = "Subgrid-scale effective orographic length scale" ;float OL2(Time, south_north, west_east) ;OL2:units = "" ;OL2:description = "Subgrid-scale effective orographic length scale" ;float OL3(Time, south_north, west_east) ;OL3:units = "" ;OL3:description = "Subgrid-scale effective orographic length scale" ;float OL4(Time, south_north, west_east) ;OL4:units = "" ;OL4:description = "Subgrid-scale effective orographic length scale" ;float VAR_SSO(Time, south_north, west_east) ;VAR_SSO:units = "meters2 MSL" ;VAR_SSO:description = "Variance of Subgrid Scale Orography" ;float LAKE_DEPTH(Time, south_north, west_east) ;LAKE_DEPTH:units = "meters MSL" ;LAKE_DEPTH:description = "Topography height" ;float URB_PARAM(Time, num_urb_params, south_north, west_east) ;URB_PARAM:units = "dimensionless" ;URB_PARAM:description = "Urban_Parameters" ;// global attributes::TITLE = "OUTPUT FROM GEOGRID V4.0" ;:SIMULATION_START_DATE = "0000-00-00_00:00:00" ;:WEST-EAST_GRID_DIMENSION = 74 ;:SOUTH-NORTH_GRID_DIMENSION = 61 ;:BOTTOM-TOP_GRID_DIMENSION = 0 ;:WEST-EAST_PATCH_START_UNSTAG = 1 ;:WEST-EAST_PATCH_END_UNSTAG = 73 ;:WEST-EAST_PATCH_START_STAG = 1 ;:WEST-EAST_PATCH_END_STAG = 74 ;:SOUTH-NORTH_PATCH_START_UNSTAG = 1 ;:SOUTH-NORTH_PATCH_END_UNSTAG = 60 ;:SOUTH-NORTH_PATCH_START_STAG = 1 ;:SOUTH-NORTH_PATCH_END_STAG = 61 ;:GRIDTYPE = "C" ;:DX = 30000.f ;:DY = 30000.f ;:DYN_OPT = 2 ;:CEN_LAT = 34.83001f ;:CEN_LON = -81.03f ;:TRUELAT1 = 30.f ;:TRUELAT2 = 60.f ;:MOAD_CEN_LAT = 34.83001f ;:STAND_LON = -98.f ;:POLE_LAT = 90.f ;:POLE_LON = 0.f ;:corner_lats = 28.17127f, 44.36657f, 39.63231f, 24.61906f, 28.17842f, 44.37617f, \39.57812f, 24.57806f, 28.03771f, 44.50592f, 39.76032f, 24.49431f, 28.04485f, \44.51553f, 39.70599f, 24.45341f ;:corner_lons = -93.64893f, -92.39661f, -66.00165f, -72.64047f, -93.80048f, \-92.59155f, -65.83557f, -72.5033f, -93.65717f, -92.3829f, -65.9313f, \-72.68539f, -93.80841f, -92.57831f, -65.76495f, -72.54843f ;:MAP_PROJ = 1 ;:MMINLU = "MODIFIED_IGBP_MODIS_NOAH" ;:NUM_LAND_CAT = 21 ;:ISWATER = 17 ;:ISLAKE = 21 ;:ISICE = 15 ;:ISURBAN = 13 ;:ISOILWATER = 14 ;:grid_id = 1 ;:parent_id = 1 ;:i_parent_start = 1 ;:j_parent_start = 1 ;:i_parent_end = 74 ;:j_parent_end = 61 ;:parent_grid_ratio = 1 ;:FLAG_MF_XY = 1 ;:FLAG_LAI12M = 1 ;:FLAG_LAKE_DEPTH = 1 ;
}
全局属性 corner_lats 和 corner_lons 包含域角相对于不同网格交错(质量、u、v 和无交错)的纬度-经度位置。 corner_lats 和 corner_lons 数组中每个元素所指的位置总结在下表和图中。
2. Metgrid 输出(Metgrid Output)
除了地理网格输出文件(例如 geo_em.d01.nc)中的字段外,以下字段和全局属性也将出现在 metgrid 程序的典型输出文件中,使用默认的 METGRID.TBL 文件和来自 NCEP 的 GFS 模型的气象数据运行。
> ncdump met_em.d01.2016-04-07_00:00:00.ncnetcdf met_em.d01.2016-04-07_00\:00\:00 {
dimensions:
Time = UNLIMITED ; // (1 currently)DateStrLen = 19 ;west_east = 73 ;south_north = 60 ;num_metgrid_levels = 27 ;num_st_layers = 4 ;num_sm_layers = 4 ;south_north_stag = 61 ;west_east_stag = 74 ;z-dimension0132 = 132 ;z-dimension0012 = 12 ;z-dimension0016 = 16 ;z-dimension0021 = 21 ;
variables:char Times(Time, DateStrLen) ;float PRES(Time, num_metgrid_levels, south_north, west_east) ;PRES:units = "" ;PRES:description = "" ;float SOIL_LAYERS(Time, num_st_layers, south_north, west_east) ;SOIL_LAYERS:units = "" ;SOIL_LAYERS:description = "" ;float SM(Time, num_sm_layers, south_north, west_east) ;SM:units = "" ;SM:description = "" ;float ST(Time, num_st_layers, south_north, west_east) ;ST:units = "" ;ST:description = "" ;float GHT(Time, num_metgrid_levels, south_north, west_east) ;GHT:units = "m" ;GHT:description = "Height" ;float HGTTROP(Time, south_north, west_east) ;HGTTROP:units = "m" ;HGTTROP:description = "Height of tropopause" ;float TTROP(Time, south_north, west_east) ;TTROP:units = "K" ;TTROP:description = "Temperature at tropopause" ;float PTROPNN(Time, south_north, west_east) ;PTROPNN:units = "Pa" ;PTROPNN:description = "PTROP, used for nearest neighbor interp" ;float PTROP(Time, south_north, west_east) ;PTROP:units = "Pa" ;PTROP:description = "Pressure of tropopause" ;float VTROP(Time, south_north_stag, west_east) ;VTROP:units = "m s-1" ;VTROP:description = "V at tropopause" ;float UTROP(Time, south_north, west_east_stag) ;UTROP:units = "m s-1" ;UTROP:description = "U at tropopause" ;float HGTMAXW(Time, south_north, west_east) ;HGTMAXW:units = "m" ;HGTMAXW:description = "Height of max wind level" ;float TMAXW(Time, south_north, west_east) ;TMAXW:units = "K" ;TMAXW:description = "Temperature at max wind level" ;float PMAXWNN(Time, south_north, west_east) ;PMAXWNN:units = "Pa" ;PMAXWNN:description = "PMAXW, used for nearest neighbor interp" ;float PMAXW(Time, south_north, west_east) ;PMAXW:units = "Pa" ;PMAXW:description = "Pressure of max wind level" ;float VMAXW(Time, south_north_stag, west_east) ;VMAXW:units = "m s-1" ;VMAXW:description = "V at max wind" ;float UMAXW(Time, south_north, west_east_stag) ;UMAXW:units = "m s-1" ;UMAXW:description = "U at max wind" ;float SNOWH(Time, south_north, west_east) ;SNOWH:units = "m" ;SNOWH:description = "Physical Snow Depth" ;float SNOW(Time, south_north, west_east) ;SNOW:units = "kg m-2" ;SNOW:description = "Water equivalent snow depth" ;float SKINTEMP(Time, south_north, west_east) ;SKINTEMP:units = "K" ;SKINTEMP:description = "Skin temperature" ;float SOILHGT(Time, south_north, west_east) ;SOILHGT:units = "m" ;SOILHGT:description = "Terrain field of source analysis" ;float LANDSEA(Time, south_north, west_east) ;LANDSEA:units = "proprtn" ;LANDSEA:description = "Land/Sea flag (1=land, 0 or 2=sea)" ;float SEAICE(Time, south_north, west_east) ;SEAICE:units = "proprtn" ;SEAICE:description = "Ice flag" ;float ST100200(Time, south_north, west_east) ;ST100200:units = "K" ;ST100200:description = "T 100-200 cm below ground layer (Bottom)" ;float ST040100(Time, south_north, west_east) ;ST040100:units = "K" ;ST040100:description = "T 40-100 cm below ground layer (Upper)" ;float ST010040(Time, south_north, west_east) ;ST010040:units = "K" ;ST010040:description = "T 10-40 cm below ground layer (Upper)" ;float ST000010(Time, south_north, west_east) ;ST000010:units = "K" ;ST000010:description = "T 0-10 cm below ground layer (Upper)" ;float SM100200(Time, south_north, west_east) ;SM100200:units = "fraction" ;SM100200:description = "Soil Moist 100-200 cm below gr layer" ;float SM040100(Time, south_north, west_east) ;SM040100:units = "fraction" ;SM040100:description = "Soil Moist 40-100 cm below grn layer" ;float SM010040(Time, south_north, west_east) ;SM010040:units = "fraction" ;SM010040:description = "Soil Moist 10-40 cm below grn layer" ;float SM000010(Time, south_north, west_east) ;SM000010:units = "fraction" ;SM000010:description = "Soil Moist 0-10 cm below grn layer (Up)" ;float PSFC(Time, south_north, west_east) ;PSFC:units = "Pa" ;PSFC:description = "Surface Pressure" ;float RH(Time, num_metgrid_levels, south_north, west_east) ;RH:units = "%" ;RH:description = "Relative Humidity" ;float VV(Time, num_metgrid_levels, south_north_stag, west_east) ;VV:units = "m s-1" ;VV:description = "V" ;float UU(Time, num_metgrid_levels, south_north, west_east_stag) ;UU:units = "m s-1" ;UU:description = "U" ;float TT(Time, num_metgrid_levels, south_north, west_east) ;TT:units = "K" ;TT:description = "Temperature" ;float PMSL(Time, south_north, west_east) ;PMSL:units = "Pa" ;PMSL:description = "Sea-level Pressure" ;// global attributes::TITLE = "OUTPUT FROM METGRID V4.0" ;:SIMULATION_START_DATE = "2016-04-07_00:00:00" ;:WEST-EAST_GRID_DIMENSION = 74 ;:SOUTH-NORTH_GRID_DIMENSION = 61 ;:BOTTOM-TOP_GRID_DIMENSION = 27 ;:WEST-EAST_PATCH_START_UNSTAG = 1 ;:WEST-EAST_PATCH_END_UNSTAG = 73 ;:WEST-EAST_PATCH_START_STAG = 1 ;:WEST-EAST_PATCH_END_STAG = 74 ;:SOUTH-NORTH_PATCH_START_UNSTAG = 1 ;:SOUTH-NORTH_PATCH_END_UNSTAG = 60 ;:SOUTH-NORTH_PATCH_START_STAG = 1 ;:SOUTH-NORTH_PATCH_END_STAG = 61 ;:GRIDTYPE = "C" ;:DX = 30000.f ;:DY = 30000.f ;:DYN_OPT = 2 ;:CEN_LAT = 34.83001f ;:CEN_LON = -81.03f ;:TRUELAT1 = 30.f ;:TRUELAT2 = 60.f ;:MOAD_CEN_LAT = 34.83001f ;:STAND_LON = -98.f ;:POLE_LAT = 90.f ;:POLE_LON = 0.f ;:corner_lats = 28.17127f, 44.36657f, 39.63231f, 24.61906f, 28.17842f, \44.37617f, 39.57812f, 24.57806f, 28.03771f, 44.50592f, 39.76032f, 24.49431f, \28.04485f, 44.51553f, 39.70599f, 24.45341f ;:corner_lons = -93.64893f, -92.39661f, -66.00165f, -72.64047f, -93.80048f, \-92.59155f, -65.83557f, -72.5033f, -93.65717f, -92.3829f, -65.9313f, \-72.68539f, -93.80841f, -92.57831f, -65.76495f, -72.54843f ;:MAP_PROJ = 1 ;:MMINLU = "MODIFIED_IGBP_MODIS_NOAH" ;:NUM_LAND_CAT = 21 ;:ISWATER = 17 ;:ISLAKE = 21 ;:ISICE = 15 ;:ISURBAN = 13 ;:ISOILWATER = 14 ;:grid_id = 1 ;:parent_id = 1 ;:i_parent_start = 1 ;:j_parent_start = 1 ;:i_parent_end = 74 ;:j_parent_end = 61 ;:parent_grid_ratio = 1 ;:NUM_METGRID_SOIL_LEVELS = 4 ;:FLAG_METGRID = 1 ;:FLAG_EXCLUDED_MIDDLE = 0 ;:FLAG_SOIL_LAYERS = 1 ;:FLAG_SNOW = 1 ;:FLAG_PSFC = 1 ;:FLAG_SM000010 = 1 ;:FLAG_SM010040 = 1 ;:FLAG_SM040100 = 1 ;:FLAG_SM100200 = 1 ;:FLAG_ST000010 = 1 ;:FLAG_ST010040 = 1 ;:FLAG_ST040100 = 1 ;:FLAG_ST100200 = 1 ;:FLAG_SLP = 1 ;:FLAG_SNOWH = 1 ;:FLAG_SOILHGT = 1 ;:FLAG_UTROP = 1 ;:FLAG_VTROP = 1 ;:FLAG_TTROP = 1 ;:FLAG_PTROP = 1 ;:FLAG_PTROPNN = 1 ;:FLAG_HGTTROP = 1 ;:FLAG_UMAXW = 1 ;:FLAG_VMAXW = 1 ;:FLAG_TMAXW = 1 ;:FLAG_PMAXW = 1 ;:FLAG_PMAXWNN = 1 ;:FLAG_HGTMAXW = 1 ;:FLAG_MF_XY = 1 ;:FLAG_LAI12M = 1 ;:FLAG_LAKE_DEPTH = 1 ;
}
参考
相关文章:
【WRF教程第3.6期】预处理系统 WPS 详解:以4.5版本为例
预处理系统 WPS 详解:以4.5版本为例 Geogrid/Metgrid 插值选项详解1. 插值方法的工作机制2. 插值方法的详细说明2.1 四点双线性插值(four_pt)2.2 十六点重叠抛物线插值(sixteen_pt)2.3 简单四点平均插值(av…...
图解HTTP-HTTP协议
HTTP HTTP是一种不保存状态,即无状态的协议。HTTP协议自身不对请求和响应之间的通信进行保存。为了保存状态因此后面也有一些技术产生比如Cookies技术。 HTTP是通过URI定位网上的资源,理论上将URI可以访问互联网上的任意资源。 如果不是访问特定的资源…...
Linux基本命令
Linux基本命令 一条Linux命令由:命令本身 [可选项] [参数] ls 展示 ls命令的选项: -a 选项,可以展示出隐藏的内容 以 . 开头的文件或文件夹默认被隐藏,需要-a才能显示出来 **-l **选项,以列表的形式展示内容,并展示更多细节-h 选项&…...
【win10+RAGFlow+Ollama】搭建本地大模型助手(教程+源码)
一、RAGFlow简介 RAGFlow是一个基于对文档深入理解的开源RAG(Retrieval-augmented Generation,检索增强生成)引擎。 主要作用: 让用户创建自有知识库,根据设定的参数对知识库中的文件进行切块处理,用户向大…...
.ejs 后缀文件 - 嵌入式JavaScript模板
嵌入式JavaScript模板(Embedded JavaScript templates)文件是以.ejs 后缀。它是一种模板引擎,它允许你在你的HTML文件中直接嵌入JavaScript代码。EJS模板可以包含HTML代码、JavaScript表达式、控制结构(如if语句和循环)…...
springboot461学生成绩分析和弱项辅助系统设计(论文+源码)_kaic
摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装学生成绩分析和弱项辅助系统软件来发挥其高效地信息处理的作…...
【从零开始入门unity游戏开发之——C#篇23】C#面向对象继承——`as`类型转化和`is`类型检查、向上转型和向下转型、里氏替换原则(LSP)
文章目录 一、as类型转化和is类型检查1、as 关键字使用场景:语法:示例:特点: 2、is 关键字使用场景:语法:示例:特点: 3、总结 二、向上转型和向下转型1、向上转型示例: 2…...
“魔法糖果盒的秘密:用朴素贝叶斯算法猜糖果颜色”
想象一下,你有一个神奇的糖果盒,这个糖果盒里有两种糖果:红色的和蓝色的。你闭上眼睛,从盒子里拿出一个糖果,然后尝一尝,你想知道这个糖果是红色的还是蓝色的。朴素贝叶斯算法就像是一个魔法规则࿰…...
使用“NodeMCU”、“红外模块”实现空调控制
项目思路 空调遥控器之所以能够实现对空调的控制,是因为它能够向空调发射出特定的红外信号。从理论上来说,任何能够发射出这种相同红外信号的红外发射器,都可以充当空调遥控器(这也正是手机能够控制多种不同品牌空调的原因所在&a…...
了解cuda的统一内存
1. CUDA 6中的统一内存 在CUDA 6中,从Kepler GPU架构(计算能力3.0或更高)开始,在64位Windows 7、8和Linux操作系统(内核2.6.18)上开始支持统一内存. 从CUDA 6开始,NVIDIA推出了CUDA平台历史上…...
MySQL索引
2.1 索引概述 2.1.1 介绍 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就…...
会话控制(cookie、session 和 token)
1. 介绍 所谓会话控制就是 对会话进行控制HTTP 是一种无状态的协议,它没有办法区分多次的请求是否来自于同一个客户端, 无法区分用户,而产品中又大量存在的这样的需求,所以我们需要通过 会话控制 来解决该问题。 常见的会话控制…...
stm32 rtc 详解
目录 L151 RTC 唤醒代码 方式一 通过 RTC Alarm Interrupt:(基本和F1系列一样): L151 RTC 唤醒代码 方式二 通过 RTC WakeUp Interrupt F103VE RTC 闹钟唤醒代码 (103RC 没有闹钟中断): RTC(real time…...
D 咖智能饮品机器人:开启商业新篇
在科技迅猛发展的当下,智能机器人正逐步渗透到各个商业领域,D 咖智能饮品机器人便是其中的佼佼者,它的出现为饮品行业带来全新的发展契机,有望开启商业新篇。 从大环境来看,消费者对于饮品的需求日益多元化和个性化。他…...
使用FakeSMTP创建本地SMTP服务器接收邮件具体实现。
以下代码来自Let’s Go further节选。具体说明均为作者本人理解。 编辑邮件模版 主要包含三个template: subject:主题plainBody: 纯文本正文htmlBody:超文本语言正文 {{define "subject"}}Welcome to Greenlight!{{end}} {{def…...
重拾设计模式--模板方法模式
文章目录 一、模板方法模式概述二、模板方法模式UML图三、优点1代码复用性高2可维护性好3扩展性强 四、缺点五、使用场景六、C 代码示例1七、 C 代码示例2 一、模板方法模式概述 定义:定义一个操作中的算法骨架,而降一些步骤延迟到子类中。模板方法使得…...
二、windows环境下vscode使用wsl教程
本篇文件介绍了在windows系统使用vscode如何连接使用wsl,方便wsl在vscode进行开发。 1、插件安装 双击桌面vscode,按快捷键CtrlShiftX打开插件市场,搜索【WSL】点击安装即可。 2、开启WSL的linux子系统 点击左下方图标【Open a Remote Win…...
我们的电视Our tv 3.6.0安卓+TV 一款全新电视直播软件-内置稳定直播源
应用简介 我们的电视(ourtv)是一款完全无广告的电视直播软件,清晰度可选择高清,超清,蓝光等播放。安装即可使用,再也不用费劲去找各种不稳定的直播源了。 “我们的电视”播放线路(直播源&…...
批处理理解
初识批处理 如何批处理: 命名:.bat 方法:创建一个记事本文件,然后将其扩展改为.bat 批处理作用:自上而下成批处理每一条DOS命令,直到执行到最后一条。运行环境:当然是我们cmd了 回归我学过的…...
高效准确的PDF解析工具,赋能企业非结构化数据治理
目录 准确性高:还原复杂版面元素 使用便捷:灵活适配场景 贴心服务:快速响应机制 在数据为王的时代浪潮中,企业数据治理已成为组织优化运营、提高竞争力的关键。随着数字化进程的加速,企业所积累的数据量呈爆炸式增长…...
Go框架比较:goframe、beego、iris和gin
由于工作需要,这些年来也接触了不少的开发框架,Golang的开发框架比较多,不过基本都是Web"框架"为主。这里稍微打了个引号,因为大部分"框架"从设计和功能定位上来讲,充其量都只能算是一个组件&…...
【ETCD】【实操篇(三)】【ETCDCTL】如何向集群中写入数据
在分布式系统中,etcd 是一个高可用的键值存储,用于存储和共享配置信息、服务发现、协调等。向 etcd 写入数据可以通过多种方式进行,常见的方式是使用 etcd 提供的 HTTP API 或者通过客户端库来进行操作。 目录 一、使用EtcdCtl工具来写入数据…...
2025年春节档的《哪吒2》,光线传媒动画梦的关键一战
没想到《哪吒之魔童闹海》会以这种形式重回大众视野。 距离2025年春节还有不到两个月,春节档电影大战已经打响,原本市场还在猜测2024年频频“胎动”的《哪吒之魔童闹海》(以下简称《哪吒2》)会不会参与这场“神仙打架”ÿ…...
windows C#-实例构造函数
声明一个实例构造函数,以指定在使用 new 表达式创建某个类型的新实例时所执行的代码。 要初始化静态类或非静态类中的静态变量,可以定义静态构造函数。 如以下示例所示,可以在一种类型中声明多个实例构造函数: class Coords {pu…...
FPGA-PS端编程1:
目标 在小梅哥的zynq 7015上,完成以下目标: 读取 S1 按键的电平, 当 S1 按键为按下状态时,驱动 PS LED 以 1S 的频率闪烁(注意理解 1S 的频率闪烁和 1S的时间翻转两种描述之间的差别), 当 S1 释放后,停止…...
【JavaEE进阶】第一个Spring Boot程序
目录 🌴安装插件 🎄Spring Boot介绍 🌳Spring Boot项目创建 🚩创建Spring Boot项目 🏀jar 包下载不下来问题 🚩启动项目 🌲目录介绍 🚩src文件 🚩target文件 &…...
RunCam WiFiLink连接手机图传测试
RunCam WiFiLink中文手册从这里下载 一、摄像头端 1.连接天线(易忘) 2.打开摄像头前面的盖子(易忘) 3.接上直流电源,红线为正,黑线为负 4.直流电源设置电压为14v,电流为3.15A, 通…...
使用Chat-LangChain模块创建一个与用户交流的机器人
当然!要使用Chat-LangChain模块创建一个与用户交流的机器人,你需要安装并配置一些Python库。以下是一个基本的步骤指南和示例代码,帮助你快速上手。 安装依赖库 首先,你需要安装langchain库,它是一个高级框架&#x…...
地级市2011-2020数字经济 博士研究生自用数据
赵涛评价指标数据,具体指标见图片 参考文献: [1]赵涛,张智,梁上坤.数字经济、创业活跃度与高质量发展——来自中国城市的经验证据[J].管理世界,2020,36(10):65-76. 每百人移动电话数,是模仿赵涛的,指人均再➗100 数据来源,中国城…...
呼叫中心部门如何使用开源大模型智能呼叫中心,对接已有系统实现降本增效
呼叫中心部门如何使用开源大模型智能呼叫中心,对接已有系统实现降本增效 作者:开源大模型智能呼叫中心FreeIPCC 随着人工智能技术的快速发展,特别是大规模语言模型(LLM)的应用,企业可以通过将开源大模型与…...
Latex 转换为 Word(使用GrindEQ )(英文转中文,毕业论文)
效果预览 第一步: 告诉chatgpt: 将latex格式中的英文翻译为中文(符号和公式不要动),给出latex格式第二步: Latex 转换为 Word(使用GrindEQ ) 视频 https://www.bilibili.com/video/BV1f242…...
多态中虚函数调用问题
在多态中,一般通过虚函数表会调用子类重写的虚函数,然而,有一种情况调用的还是父类的虚函数,就是在父类的构造函数中调用的是父类的虚函数,无论子类是否重写。 #include <iostream> #include <list> #inc…...
【NLP 18、新词发现和TF·IDF】
目录 一、新词发现 1.新词发现的衡量标准 ① 内部稳固 ② 外部多变 2.示例 ① 初始化类 NewWordDetect ② 加载语料信息,并进行统计 ③ 统计指定长度的词频及其左右邻居字符词频 ④ 计算熵 ⑤ 计算左右熵 编辑 ⑥ 统计词长总数 ⑦ 计算互信息 ⑧ 计算每个词…...
windows服务器Oracle TNS 远程监听器中毒
修复Oracle TNS 监听器远程中毒漏洞 1.1 修改监听文件 如何快速找到listener.ora ? cmd输入 tnsping localhost 修改配置文件,路径以自己的实际路径为准,我都在D盘 listener.ora内容如下: #listener.ora Network Configuration F…...
GitLab的安装和使用
1.GitLab 环境说明 系统版本 CentOS 7.2 x86_64 软件版本 gitlab-ce-10.8.4 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能…...
常用的JVM启动参数有哪些?
大家好,我是锋哥。今天分享关于【常用的JVM启动参数有哪些?】面试题。希望对大家有帮助; 常用的JVM启动参数有哪些? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 JVM启动参数用于配置Java虚拟机(JVM)的运行时行为…...
MobaXterm 连接不上VMware 的Ubuntu 虚拟机
想在window11的笔记本上通过VMWare安装Ubuntu操作系统,但是在两个桌面见来回切换,十分的麻烦,于是通过远程服务访问客户端软件MateXterm来访问虚拟机的Linux系统,但是从CSDN上搜到的教程都没有成功,于是,尝…...
异步BUCK二极管损耗计算
异步BUCK工作原理 Q闭合时(Ton),输入电压Vin为电感L和输出电容Cout充电,同时为负载供电;Q断开时(Toff),电感L为负载供电,电流通过续流二极管D回流到电感L; 之…...
【WPF】把DockPanel的内容生成图像
要在WPF中将一个 DockPanel 的内容生成为图像并保存,可以按照与之前类似的步骤进行,但这次我们将专注于 DockPanel 控件而不是整个窗口。 DockPanel的使用 WPF(Windows Presentation Foundation)中的 DockPanel 是一种布局控件&…...
STM32定时器对象捕获功能测量市电频率
在很多嵌入式系统中,精确地测量外部信号的频率是一个常见需求,尤其是对于需要同步外部电源(如市电)的应用。市电频率(50Hz或60Hz)是电力系统中一个至关重要的参数。在许多场景下,特别是UPS&…...
[react]5、React脚手架
1、前端脚手架 1、Vue的脚手架:vue-cli 2、Angular的脚手架:angular-cli 3、React的脚手架:create-react-app 目前这些脚手架都是使用node编写的,并且都是基于webpack的,需要在电脑上安装node环境 脚手架的作用是帮助我…...
uni-app开发个人中心页面
目录 一:功能实现 二:功能实现 一:功能实现 个人中心主要展示用户的个人信息,订单信息以及其他模块信息包含收藏,我的地址,我的钱包等。页面分为三个部分,底部显示用户信息和个人设置等。中间部分显示订单信息可以点击查看订单列表,底部显示其他模块信息。 二:功…...
Ubuntu 20.04 卸载和安装 MySQL8.0
卸载 首先,检查一下系统安装的软件包有哪些,使用dpkg -l | grep mysql命令: 为了将MySQL卸载干净,这些文件都需要被删除。 在Ubuntu20.04系统下,卸载干净MySQL8.0以确保下一次安装不会出错,可以按照以下…...
【深度学习-论文】通俗易懂的理解多标签识别
文章目录 1. 文章主要内容2. 通俗易懂的理解多标签分类到底是如何实现的通俗易懂的多标签分类实现介绍实现步骤为什么这么做?小结论文题目:Rada r emitter multi-la bel recognition based on residual network 基于残差网络的雷达发射机多标签识别1. 文章主要内容 《基于残…...
“TA”说|表数据备份还原:SQLark 百灵连接助力项目部署验收
💬 南飞雁|应用开发工程师 有些重要项目的部署验收,会在生产环境完成,验收完成后,又需要把这部分数据清空。这时就需要对数据表进行备份和还原,虽然可以通过命令直接实现,但是有一些操作门槛&am…...
android studio方便快捷保存数据读取数据(SharedPreferences)
原理:会自动生成一个xml文件,然后保存参数。xml文件的名字就是要读取的文件的名字。可以创建多个这样的xml文件。(储存方式是键值对方式,一个名字 对应 一个值) 首先先创建两个对象 private SharedPreferences shar…...
31.设计模式
单例模式 比如工具类,进需要一个实例,即可以在各处处理。用以节省创建类对象的开销和内存的开销。 保证一个类只有一个实例,而客户可以从一个众所周知的访问点访问它。 实现一个简单的单例 在一个python文件中定义一个类,并创…...
RTOS之邮箱
邮箱 邮箱 (Mailbox) 服务是实时操作系统中一种常用的线程间通信机制。它提供了一种高效、低开销的消息传递方式,允许线程之间交换固定大小的数据。 1. 邮箱的应用场景 考虑一个简单的示例:线程 1 负责检测按键状态并将状态信息发送出去,线程…...
Linux setfacl 命令详解
文章目录 Linux setfacl 命令详解一、ACL 和 setfacl 简介二、基本语法三、常用操作1. 查看 ACL2. 为用户设置权限3. 为组设置权限4. 删除 ACL 条目5. 设置默认 ACL6. 递归设置 ACL 四、示例操作1. 创建示例目录和文件2. 设置 ACL3. 验证 ACL 五、注意事项六、总结 Linux setfa…...
OpenCV 学习记录:首篇
最近在学习机器视觉,希望能通过记录博客的形式来鞭策自己坚持学完,同时也把重要的知识点记录下来供参考学习。 1. OpenCV 介绍与模块组成 什么是 OpenCV? OpenCV (Open Source Computer Vision Library) 是一个开源的计算机视觉和机器学习软…...