Climo Time Errors #1879
-
When processsing climo data in point_stat, I have been getting error when it tries to process the ncep climo file to interpolate a value to the forecast lead time. The error is attached. The ncep climo file monthly data every 6 hours. I don't seem to get the error for forecasts divisible by 6 but for other forecast hours I do. |
Beta Was this translation helpful? Give feedback.
Replies: 11 comments 7 replies
-
Hello, And thank you for your question. In order to get a better understanding of why this particular error is occurring, would you be able to share the configuration file you're using? That might provide the missing piece to this error puzzle. |
Beta Was this translation helpful? Give feedback.
-
Here is the config fileSent from my Verizon, Samsung Galaxy smartphone
-------- Original message --------From: j-opatz ***@***.***> Date: 10/21/22 11:24 AM (GMT-06:00) To: dtcenter/METplus ***@***.***> Cc: craigr3 ***@***.***>, Author ***@***.***> Subject: Re: [dtcenter/METplus] Climo Time Errors (Discussion #1879)
Hello,
And thank you for your question. In order to get a better understanding of why this particular error is occurring, would you be able to share the configuration file you're using? That might provide the missing piece to this error puzzle.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: ***@***.***>
////////////////////////////////////////////////////////////////////////////////
//
// Point-Stat configuration file.
//
// For additional information, see the MET_BASE/config/README file.
//
////////////////////////////////////////////////////////////////////////////////
//
// Output model name to be written
//
model = "${MODEL}";
//
// Output description to be written
// May be set separately in each "obs.field" entry
//
desc = "NA";
////////////////////////////////////////////////////////////////////////////////
//
// Verification grid
//
regrid = {
to_grid = NONE;
method = NEAREST;
width = 1;
vld_thresh = 0.5;
shape = SQUARE;
}
////////////////////////////////////////////////////////////////////////////////
//
// May be set separately in each "field" entry
//
censor_thresh = [];
censor_val = [];
cat_thresh = [ NA ];
cnt_thresh = [ NA ];
cnt_logic = UNION;
wind_thresh = [ NA ];
wind_logic = UNION;
eclv_points = 0.05;
//
// Forecast and observation fields to be verified
//
fcst = {
convert(x) = ${FCONVERT};
lead_time = "${FCST}";
censor_thresh = [${MDLFILTER}];
censor_val = [-9999];
field = [
{
name = "${FNAME}";
level = [ "${FLEVEL}" ];
cat_thresh = [>15, >25, >35, >50];
}
];
}
obs = {
convert(x) = ${OCONVERT};
censor_thresh = [${MDLFILTER}];
censor_val = [-9999];
field = [
{
name = "${ONAME}";
level = [ "${OLEVEL}" ];
cat_thresh = [>15, >25, >35, >50];
}
];
};
////////////////////////////////////////////////////////////////////////////////
//
// Point observation filtering options
// May be set separately in each "obs.field" entry
//
message_type = [ "ADPSFC" ];
sid_exc = [];
sid_inc = [];
obs_quality_inc= ${OBQTY};
obs_quality_exc= [];
duplicate_flag = UNIQUE;
obs_summary = NEAREST;
obs_perc_value = 50;
////////////////////////////////////////////////////////////////////////////////
//
// Climatology data
//
climo_mean = {
file_name = "${CLIMO}";
convert(x) = ${CCONVERT};
field = [
{
name = "${CNAME}";
level = ["${CLEVEL}"];
}
];
regrid = {
method = NEAREST;
width = 1;
vld_thresh = 0.5;
shape = SQUARE;
}
time_interp_method = DW_MEAN;
day_interval = 31;
hour_interval = 6;
}
climo_stdev = climo_mean;
climo_stdev = {
file_name = [];
}
climo_cdf_bins = 1;
////////////////////////////////////////////////////////////////////////////////
//
// Point observation time window
//
obs_window = {
beg = -1800;
end = 1800;
}
////////////////////////////////////////////////////////////////////////////////
//
// Verification masking regions
//
mask = {
grid = [ "FULL" ];
poly = ["/lustre/active/nwp306/proj-shared/masks/USC.nc",
"/lustre/active/nwp306/proj-shared/masks/USE.nc",
"/lustre/active/nwp306/proj-shared/masks/USN.nc",
"/lustre/active/nwp306/proj-shared/masks/USS.nc",
"/lustre/active/nwp306/proj-shared/masks/USP.nc",
"/lustre/active/nwp306/proj-shared/masks/USA.nc",
"/lustre/active/nwp306/proj-shared/masks/conus_USN.nc",
"/lustre/active/nwp306/proj-shared/masks/alaska_USN.nc",
"/lustre/active/nwp306/proj-shared/masks/swa_usc.nc",
"/lustre/active/nwp306/proj-shared/masks/kor_USP.nc",
"/lustre/active/nwp306/proj-shared/masks/eur_USE.nc",
"/lustre/active/nwp306/proj-shared/masks/afgpak_USC.nc"];
sid = ${SID};
}
////////////////////////////////////////////////////////////////////////////////
//
// Confidence interval settings
//
ci_alpha = [ 0.05 ];
boot = {
interval = PCTILE;
rep_prop = 1.0;
n_rep = 0;
rng = "mt19937";
seed = "";
}
////////////////////////////////////////////////////////////////////////////////
//
// Interpolation methods
//
interp = {
vld_thresh = 1.0;
shape = SQUARE;
type = [
{
method = ${INTMETHOD};
width = ${INTWIDTH};
}
];
}
////////////////////////////////////////////////////////////////////////////////
//
// HiRA verification method
//
hira = {
flag = FALSE;
width = [ 2, 3, 4, 5 ];
vld_thresh = 1.0;
cov_thresh = [ ==0.25 ];
shape = SQUARE;
}
////////////////////////////////////////////////////////////////////////////////
//
// Statistical output types
//
output_flag = {
fho = NONE;
ctc = BOTH;
cts = BOTH;
mctc = NONE;
mcts = NONE;
cnt = BOTH;
sl1l2 = BOTH;
sal1l2 = NONE;
vl1l2 = NONE;
val1l2 = NONE;
pct = NONE;
pstd = NONE;
pjc = NONE;
prc = NONE;
eclv = NONE;
mpr = STAT;
}
////////////////////////////////////////////////////////////////////////////////
rank_corr_flag = FALSE;
tmp_dir = "/lustre/active/nwp306/proj-shared/tmp";
output_prefix = "${MODEL}_${THEATER}_SFC";
version = "V10.1";
////////////////////////////////////////////////////////////////////////////////
|
Beta Was this translation helpful? Give feedback.
-
After reviewing the configuration file, I believe part of the error is in your chosen interpolation method for the climatology data. According to the configuration file you provided,
According to the MET user's guide,
but there is another issue to discuss for a climatology setting. You mentioned in your question,
If you look at the
In the user's guide, it describes
So although you've said the climatology files are every 6 hours, MET is seeing offsets of 54000 seconds (15 hours), 32400 seconds (9 hours), and 21600 seconds (6 hours). If this is in error and you want all of these climatologies read in, you can disable the hour offset check by setting it equal to NA,
and it should read them successfully. But as mentioned above, the interpolation method you've chosen will result in errors due to timestamps of the climatology fields and your forecast valid time. |
Beta Was this translation helpful? Give feedback.
-
Hello, I was wondering if you had any success with updating your climatology intake. If you did, we would appreciate if you would mark one of the comments as an answer so we can close out the discussion. If you still need some help on this, please let us know where the issue stands and we'll continue to try and troubleshoot. |
Beta Was this translation helpful? Give feedback.
-
Sorry for the delay in response - will give that a try. Okay, after setting time_interp_method to nearest and hour_interval to na I get the error " can't find climo data before/after date 19700101_172140. Another question - I am using the mpr_column filtering to remove abs(fcst- obs) differences out of range. I placed the two mpr lines in the fcst area after censor thresh and no filtering seemed to occur (I set the mpr_thresh to <=0 so all pairs should have been filtered but none were. Did I place these two line in the wrong place in the point_stat config file?
|
Beta Was this translation helpful? Give feedback.
-
I got the mpr_thresh thing figured out.Bob
|
Beta Was this translation helpful? Give feedback.
-
Yes. It works if my forecasts are every 6 hours but errors if they are every two hours.
|
Beta Was this translation helpful? Give feedback.
-
Cool. Thanks.
|
Beta Was this translation helpful? Give feedback.
-
Hello, And thank you for your patience during my absence (and as we tried to figure this out!). I ran some test data against the climatology file you provided and was unable to replicate the issue. Let me post my configuration file for you:
While some of the settings are noticeably different than yours (no conversions, thresholding, etc.), those should have no effect on the ability to read in climatology data. For that same configuration file, here's the output:
Note that the climatology field was found in the file and matched to the valid forecast time. A slightly higher verbosity shows additional information:
So even when I forced the forecast valid time ahead of the climatology, Point-Stat still had no issues. If you don't see any glaring differences, we'll continue trying to figure this out with you. We might benefit from a copy of your up-to-date configuration file and a copy of the log file that results from your tool run. |
Beta Was this translation helpful? Give feedback.
-
Hello, I'm checking in to see if this problem is resolved yet with the configurations that are presented above. It's been quite a while since any activity has happened on this discussion and we'll close this out if there are no further issues. |
Beta Was this translation helpful? Give feedback.
-
I sent you guys data a couple weeks ago but was told you couldn't duplicate the error. I will get back to that issue next week. I would suggest closing and i will reopen if the problem reoccursThanks
|
Beta Was this translation helpful? Give feedback.
Hello,
And thank you for your patience during my absence (and as we tried to figure this out!).
I ran some test data against the climatology file you provided and was unable to replicate the issue. Let me post my configuration file for you: