Skip to content

Commit

Permalink
Feature 1408 var_name_for_grib_code (#1617)
Browse files Browse the repository at this point in the history
* #1408 Added get_var_id

* #1408 Check variable name in the configuration to use the variable name instewad of grib code

* #1408 Added point2grid_ascii2nc_surfrad_DW_PSP_by_name
  • Loading branch information
hsoh-u committed Jan 12, 2021
1 parent cdeef7d commit 32b4421
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 2 deletions.
11 changes: 9 additions & 2 deletions met/src/tools/other/point2grid/point2grid.cc
Expand Up @@ -744,8 +744,15 @@ void process_point_file(NcFile *nc_in, MetConfig &config, VarInfo *vinfo,
var_idx_or_gc = atoi(vname.c_str());
sprintf(grib_code, "%d", var_idx_or_gc);
if (vname != grib_code) {
exit_by_field_name_error = true;;
error_msg << "Invalid GRIB code [" << vname << "]\n";
ConcatString var_id = conf_info.get_var_id(vname);
if( var_id.nonempty() ) {
var_idx_or_gc = atoi(var_id.c_str());
sprintf(grib_code, "%d", var_idx_or_gc);
}
else {
exit_by_field_name_error = true;;
error_msg << "Invalid GRIB code [" << vname << "]\n";
}
}
else {
bool not_found_grib_code = true;
Expand Down
23 changes: 23 additions & 0 deletions met/src/tools/other/point2grid/point2grid_conf_info.cc
Expand Up @@ -124,6 +124,29 @@ void PointToGridConfInfo::process_config() {

////////////////////////////////////////////////////////////////////////

ConcatString PointToGridConfInfo::get_var_id(const ConcatString var_name) {
ConcatString var_id;

map<ConcatString,ConcatString>::iterator ptr;
for (ptr=var_name_map.begin(); ptr != var_name_map.end(); ptr++) {
if( ptr->second == var_name ) {
var_id = ptr->first;
break;
}
}
if( var_id.empty() ) {
for (ptr=def_var_name_map.begin(); ptr != var_name_map.end(); ptr++) {
if( ptr->second == var_name ) {
var_id = ptr->first;
break;
}
}
}
return var_id;
}

////////////////////////////////////////////////////////////////////////

ConcatString PointToGridConfInfo::get_var_name(const ConcatString var_name) {
ConcatString out_var;
ConcatString t_name;
Expand Down
1 change: 1 addition & 0 deletions met/src/tools/other/point2grid/point2grid_conf_info.h
Expand Up @@ -55,6 +55,7 @@ class PointToGridConfInfo {
void process_config();
void read_config(const char *, const char *);
ConcatString get_var_name(const ConcatString);
ConcatString get_var_id(const ConcatString);
};

////////////////////////////////////////////////////////////////////////
Expand Down
14 changes: 14 additions & 0 deletions test/xml/unit_point2grid.xml
Expand Up @@ -30,6 +30,20 @@
</output>
</test>

<test name="point2grid_ascii2nc_surfrad_DW_PSP_by_name">
<exec>&MET_BIN;/point2grid</exec>
<param> \
&OUTPUT_DIR;/ascii2nc/surfrad.nc \
G212 \
&OUTPUT_DIR;/point2grid/surfrad_to_G212_by_name.nc \
-field 'name="DW_PSP"; level="*";' \
-v 1
</param>
<output>
<grid_nc>&OUTPUT_DIR;/point2grid/surfrad_to_G212_by_name.nc</grid_nc>
</output>
</test>

<test name="point2grid_pb2nc_TMP">
<exec>&MET_BIN;/point2grid</exec>
<param> \
Expand Down

0 comments on commit 32b4421

Please sign in to comment.