[Met_help] [rt.rap.ucar.edu #49737] History for verifying PWAT
RAL HelpDesk {for John Halley Gotway}
met_help at ucar.edu
Thu Sep 22 11:00:57 MDT 2011
----------------------------------------------------------------
Initial Request
----------------------------------------------------------------
Hello,
I am trying to use MET to verify precipitable water vapor estimates using point_stat on a WRF grib file and a file output from ascii2nc.
The first few lines in the ascii input file are:
> GPSIPW 1LSU 20110912_040000 30.407425 -91.180260 21.9 164 1 21.9 2.67
> GPSIPW 1NSU 20110912_040000 31.750800 -93.097603 54.1 164 1 54.1 2.97
> GPSIPW 1ULM 20110912_040000 32.529034 -92.075905 41.9 164 1 41.9 3.18
> GPSIPW ABQ5 20110912_040000 34.957383 -106.494465 1738.6 164 1 1738.6 2.27
Within the output of ascii2nc the variable is 'obs_arr' and its format is:
> obs_arr:columns = "hdr_id gc lvl hgt ob" ;
> obs_arr:hdr_id_long_name = "index of matching header data" ;
> obs_arr:gc_long_name = "grib code corresponding to the observation type" ;
> obs_arr:lvl_long_name = "pressure level (hPa) or accumulation interval (h)" ;
> obs_arr:hgt_long_name = "height in meters above sea level (msl)" ;
> obs_arr:ob_long_name = "observation value" ;
Example:
obs_arr =
1, 164, 1, 21.9, 2.67,
2, 164, 1, 54.1, 2.97,
3, 164, 1, 41.9, 3.18,
4, 164, 1, 1738.6, 2.27,
Where 164 is the grib code corresponding to the WRF file (eg. 164:508449800:d=11091200:PWAT:kpds5=54:kpds6=200:kpds7=0:TR=10:P1=0:P2=17:TimeU=13:atmos col:255min fcst:NAve=0)
and the next '1' indicates hourly averages
Within the point_stat config file I have:
fcst_field[] = [ "PWAT/R164" ];
obs_field[] = ["obs_arr( 1, 164, *, *, * )"];
However, running point_stat results in: ERROR: str_to_prob_info() -> problems parsing the string
So how should I specify 'obs_arry( ?, ?, ?, ... ) in the obs_field[] so it will verify PWAT?
Thanks!
--Kirk
*********************************************************************************
* Kirk L. Holub *
* NOAA Earth System Research Laboratory * Global Systems Division *
* 325 Broadway * Forecast Applications Branch *
* Bldg 33/2B135/x6642 * 303-497-6642 (W) 303-748-7262 (FAX) *
* Boulder, CO 80305-3328 * 303-748-6390 (Cell) *
* *
******************************* Disclaimer **********************************
* *
* The contents of this message are mine personally and do not reflect any *
* position of the United States of America (US), or the US Department of *
* Commerce, or the National Oceanic and Atmospheric Administration (NOAA). *
* *
*********************************************************************************
----------------------------------------------------------------
Complete Ticket History
----------------------------------------------------------------
Subject: Re: [rt.rap.ucar.edu #49737] verifying PWAT
From: John Halley Gotway
Time: Wed Sep 21 10:10:37 2011
Kirk,
I'm not in the office today so I can't test this directly, but please
try
using the following settings for both fcst_field and obs_field:
"PWAT/Z0"
If that doesn't do it I can help you more tomorrow.
John
> Wed Sep 21 08:59:34 2011: Request 49737 was acted upon.
> Transaction: Ticket created by Kirk.L.Holub at noaa.gov
> Queue: met_help
> Subject: verifying PWAT
> Owner: Nobody
> Requestors: Kirk.L.Holub at noaa.gov
> Status: new
> Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=49737 >
>
>
> Hello,
>
> I am trying to use MET to verify precipitable water vapor estimates
using
> point_stat on a WRF grib file and a file output from ascii2nc.
>
> The first few lines in the ascii input file are:
>> GPSIPW 1LSU 20110912_040000 30.407425 -91.180260 21.9 164 1 21.9
2.67
>> GPSIPW 1NSU 20110912_040000 31.750800 -93.097603 54.1 164 1 54.1
2.97
>> GPSIPW 1ULM 20110912_040000 32.529034 -92.075905 41.9 164 1 41.9
3.18
>> GPSIPW ABQ5 20110912_040000 34.957383 -106.494465 1738.6 164 1
1738.6
>> 2.27
>
>
>
> Within the output of ascii2nc the variable is 'obs_arr' and its
format is:
>
>> obs_arr:columns = "hdr_id gc lvl hgt ob" ;
>> obs_arr:hdr_id_long_name = "index of matching
header
>> data" ;
>> obs_arr:gc_long_name = "grib code corresponding to
the
>> observation type" ;
>> obs_arr:lvl_long_name = "pressure level (hPa) or
>> accumulation interval (h)" ;
>> obs_arr:hgt_long_name = "height in meters above sea
>> level (msl)" ;
>> obs_arr:ob_long_name = "observation value" ;
>
> Example:
> obs_arr =
> 1, 164, 1, 21.9, 2.67,
> 2, 164, 1, 54.1, 2.97,
> 3, 164, 1, 41.9, 3.18,
> 4, 164, 1, 1738.6, 2.27,
>
> Where 164 is the grib code corresponding to the WRF file (eg.
>
164:508449800:d=11091200:PWAT:kpds5=54:kpds6=200:kpds7=0:TR=10:P1=0:P2=17:TimeU=13:atmos
> col:255min fcst:NAve=0)
> and the next '1' indicates hourly averages
>
> Within the point_stat config file I have:
> fcst_field[] = [ "PWAT/R164" ];
> obs_field[] = ["obs_arr( 1, 164, *, *, * )"];
> However, running point_stat results in: ERROR: str_to_prob_info() ->
> problems parsing the string
>
> So how should I specify 'obs_arry( ?, ?, ?, ... ) in the obs_field[]
so it
> will verify PWAT?
>
> Thanks!
>
> --Kirk
>
>
>
*********************************************************************************
> * Kirk L. Holub
> *
> * NOAA Earth System Research Laboratory * Global Systems Division
> *
> * 325 Broadway * Forecast Applications
Branch
> *
> * Bldg 33/2B135/x6642 * 303-497-6642 (W) 303-
748-7262
> (FAX) *
> * Boulder, CO 80305-3328 * 303-748-6390 (Cell)
> *
> *
> *
> ******************************* Disclaimer
> **********************************
> *
> *
> * The contents of this message are mine personally and do not
reflect
> any *
> * position of the United States of America (US), or the US
Department
> of *
> * Commerce, or the National Oceanic and Atmospheric
Administration
> (NOAA). *
> *
> *
>
*********************************************************************************
>
>
>
------------------------------------------------
Subject: verifying PWAT
From: Kirk Holub
Time: Wed Sep 21 11:36:02 2011
John,
I tried "PWAT/Z0" and point_stat was then unable to read the WRF
records:
> ratchet:~/MET > point_stat efp_conus_d01_2011091200_00415
gpsmet.1125504_1125504_MET.nc PointStatConfig -outdir
/home/fab/holub/MET/ -v 2
> GSL_RNG_TYPE=mt19937
> GSL_RNG_SEED=203258446
> Forecast File: efp_conus_d01_2011091200_00415
> Climatology File: none
> Configuration File: PointStatConfig
> Observation File: gpsmet.1125504_1125504_MET.nc
>
>
--------------------------------------------------------------------------------
>
> Reading records for PWAT/Z0.
>
>
> ERROR: read_levels_grib() -> no GRIB records matching PWAT/Z0 found
in GRIB file: efp_conus_d01_2011091200_00415
> ratchet:~/MET >
After going back to PWAT/R164 it appears that it was able to read the
GRIB records, but no the obs records:
> ratchet:~/MET > point_stat efp_conus_d01_2011091200_00415
gpsmet.1125504_1125504_MET.nc PointStatConfig -outdir
/home/fab/holub/MET/ -v 2
> GSL_RNG_TYPE=mt19937
> GSL_RNG_SEED=773683790
> Forecast File: efp_conus_d01_2011091200_00415
> Climatology File: none
> Configuration File: PointStatConfig
> Observation File: gpsmet.1125504_1125504_MET.nc
>
>
--------------------------------------------------------------------------------
>
> Reading records for PWAT/R164.
> For PWAT/R164 found 1 forecast levels and 0 climatology levels.
>
>
--------------------------------------------------------------------------------
>
> Searching 347 observations from 347 PrepBufr messages.
>
>
> ERROR: process_obs_file() -> can't read the header array record for
header number 347
>
> ratchet:~/MET >
The full NetCDF header looks like:
netcdf gpsmet.1125504_1125504_MET {
dimensions:
mxstr = 15 ;
hdr_arr_len = 3 ;
obs_arr_len = 5 ;
nhdr = 347 ;
nobs = UNLIMITED ; // (347 currently)
variables:
char hdr_typ(nhdr, mxstr) ;
hdr_typ:long_name = "message type" ;
char hdr_sid(nhdr, mxstr) ;
hdr_sid:long_name = "station identification" ;
char hdr_vld(nhdr, mxstr) ;
hdr_vld:long_name = "valid time" ;
hdr_vld:units = "YYYYMMDD_HHMMSS UTC" ;
float hdr_arr(nhdr, hdr_arr_len) ;
hdr_arr:long_name = "array of observation station
header values" ;
hdr_arr:_fill_value = -9999.f ;
hdr_arr:columns = "lat lon elv" ;
hdr_arr:lat_long_name = "latitude" ;
hdr_arr:lat_units = "degrees_north" ;
hdr_arr:lon_long_name = "longitude" ;
hdr_arr:lon_units = "degrees_east" ;
hdr_arr:elv_long_name = "elevation " ;
hdr_arr:elv_units = "meters above sea level (msl)" ;
float obs_arr(nobs, obs_arr_len) ;
obs_arr:long_name = "array of observation values" ;
obs_arr:_fill_value = -9999.f ;
obs_arr:columns = "hdr_id gc lvl hgt ob" ;
obs_arr:hdr_id_long_name = "index of matching header
data" ;
obs_arr:gc_long_name = "grib code corresponding to the
observation type" ;
obs_arr:lvl_long_name = "pressure level (hPa) or
accumulation interval (h)" ;
obs_arr:hgt_long_name = "height in meters above sea
level (msl)" ;
obs_arr:ob_long_name = "observation value" ;
// global attributes:
:FileOrigins = "File gpsmet.1125504_1125504_MET.nc
generated 20110921_133304 UTC on host ratchet by the ASCII2NC tool" ;
data:
hdr_typ =
"GPSIPW",
"GPSIPW",
.....
It seems like the specification should be something like:
obs_field[] = [ "obs_arr(1,5,*,*)" ]; (obs_arr contains 5 columns,
but how does one designate which column is pwat?)
Thanks in advance for the help!
--Kirk
On Sep 21, 2011, at 10:10 AM, RAL HelpDesk {for John Halley Gotway}
wrote:
> Kirk,
>
> I'm not in the office today so I can't test this directly, but
please try
> using the following settings for both fcst_field and obs_field:
> "PWAT/Z0"
>
> If that doesn't do it I can help you more tomorrow.
>
> John
>
>
>> Wed Sep 21 08:59:34 2011: Request 49737 was acted upon.
>> Transaction: Ticket created by Kirk.L.Holub at noaa.gov
>> Queue: met_help
>> Subject: verifying PWAT
>> Owner: Nobody
>> Requestors: Kirk.L.Holub at noaa.gov
>> Status: new
>> Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=49737 >
>>
>>
>> Hello,
>>
>> I am trying to use MET to verify precipitable water vapor estimates
using
>> point_stat on a WRF grib file and a file output from ascii2nc.
>>
>> The first few lines in the ascii input file are:
>>> GPSIPW 1LSU 20110912_040000 30.407425 -91.180260 21.9 164 1 21.9
2.67
>>> GPSIPW 1NSU 20110912_040000 31.750800 -93.097603 54.1 164 1 54.1
2.97
>>> GPSIPW 1ULM 20110912_040000 32.529034 -92.075905 41.9 164 1 41.9
3.18
>>> GPSIPW ABQ5 20110912_040000 34.957383 -106.494465 1738.6 164 1
1738.6
>>> 2.27
>>
>>
>>
>> Within the output of ascii2nc the variable is 'obs_arr' and its
format is:
>>
>>> obs_arr:columns = "hdr_id gc lvl hgt ob" ;
>>> obs_arr:hdr_id_long_name = "index of matching
header
>>> data" ;
>>> obs_arr:gc_long_name = "grib code corresponding to
the
>>> observation type" ;
>>> obs_arr:lvl_long_name = "pressure level (hPa) or
>>> accumulation interval (h)" ;
>>> obs_arr:hgt_long_name = "height in meters above sea
>>> level (msl)" ;
>>> obs_arr:ob_long_name = "observation value" ;
>>
>> Example:
>> obs_arr =
>> 1, 164, 1, 21.9, 2.67,
>> 2, 164, 1, 54.1, 2.97,
>> 3, 164, 1, 41.9, 3.18,
>> 4, 164, 1, 1738.6, 2.27,
>>
>> Where 164 is the grib code corresponding to the WRF file (eg.
>>
164:508449800:d=11091200:PWAT:kpds5=54:kpds6=200:kpds7=0:TR=10:P1=0:P2=17:TimeU=13:atmos
>> col:255min fcst:NAve=0)
>> and the next '1' indicates hourly averages
>>
>> Within the point_stat config file I have:
>> fcst_field[] = [ "PWAT/R164" ];
>> obs_field[] = ["obs_arr( 1, 164, *, *, * )"];
>> However, running point_stat results in: ERROR: str_to_prob_info()
->
>> problems parsing the string
>>
>> So how should I specify 'obs_arry( ?, ?, ?, ... ) in the
obs_field[] so it
>> will verify PWAT?
>>
>> Thanks!
>>
>> --Kirk
>>
>>
>>
*********************************************************************************
>> * Kirk L. Holub
>> *
>> * NOAA Earth System Research Laboratory * Global Systems Division
>> *
>> * 325 Broadway * Forecast Applications
Branch
>> *
>> * Bldg 33/2B135/x6642 * 303-497-6642 (W) 303-
748-7262
>> (FAX) *
>> * Boulder, CO 80305-3328 * 303-748-6390 (Cell)
>> *
>> *
>> *
>> ******************************* Disclaimer
>> **********************************
>> *
>> *
>> * The contents of this message are mine personally and do not
reflect
>> any *
>> * position of the United States of America (US), or the US
Department
>> of *
>> * Commerce, or the National Oceanic and Atmospheric
Administration
>> (NOAA). *
>> *
>> *
>>
*********************************************************************************
>>
>>
>>
>
>
>
*********************************************************************************
* Kirk L. Holub
*
* NOAA Earth System Research Laboratory * Global Systems Division
*
* 325 Broadway * Forecast Applications Branch
*
* Bldg 33/2B135/x6642 * 303-497-6642 (W) 303-748-
7262 (FAX) *
* Boulder, CO 80305-3328 * 303-748-6390 (Cell)
*
*
*
******************************* Disclaimer
**********************************
*
*
* The contents of this message are mine personally and do not
reflect any *
* position of the United States of America (US), or the US
Department of *
* Commerce, or the National Oceanic and Atmospheric Administration
(NOAA). *
*
*
*********************************************************************************
------------------------------------------------
Subject: Re: [rt.rap.ucar.edu #49737] verifying PWAT
From: John Halley Gotway
Time: Thu Sep 22 09:34:38 2011
Kirk,
It'd probably be easiest for you to just send me some sample data:
(1) Your forecast file: efp_conus_d01_2011091200_00415
(2) Your observation file: gpsmet.1125504_1125504_MET.nc (please also
send the ASCII version of that data)
(3) Your config file: PointStatConfig
Please follow these directions for posting data to our ftp site:
http://www.dtcenter.org/met/users/support/met_help.php#ftp
Let me know once it's there, and I'll take a look to figure out how to
get it working.
Thanks,
John
On 09/21/2011 11:36 AM, RAL HelpDesk {for Kirk Holub} wrote:
>
> <URL: https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=49737 >
>
> John,
>
> I tried "PWAT/Z0" and point_stat was then unable to read the WRF
records:
>> ratchet:~/MET > point_stat efp_conus_d01_2011091200_00415
gpsmet.1125504_1125504_MET.nc PointStatConfig -outdir
/home/fab/holub/MET/ -v 2
>> GSL_RNG_TYPE=mt19937
>> GSL_RNG_SEED=203258446
>> Forecast File: efp_conus_d01_2011091200_00415
>> Climatology File: none
>> Configuration File: PointStatConfig
>> Observation File: gpsmet.1125504_1125504_MET.nc
>>
>>
--------------------------------------------------------------------------------
>>
>> Reading records for PWAT/Z0.
>>
>>
>> ERROR: read_levels_grib() -> no GRIB records matching PWAT/Z0 found
in GRIB file: efp_conus_d01_2011091200_00415
>> ratchet:~/MET >
>
> After going back to PWAT/R164 it appears that it was able to read
the GRIB records, but no the obs records:
>> ratchet:~/MET > point_stat efp_conus_d01_2011091200_00415
gpsmet.1125504_1125504_MET.nc PointStatConfig -outdir
/home/fab/holub/MET/ -v 2
>> GSL_RNG_TYPE=mt19937
>> GSL_RNG_SEED=773683790
>> Forecast File: efp_conus_d01_2011091200_00415
>> Climatology File: none
>> Configuration File: PointStatConfig
>> Observation File: gpsmet.1125504_1125504_MET.nc
>>
>>
--------------------------------------------------------------------------------
>>
>> Reading records for PWAT/R164.
>> For PWAT/R164 found 1 forecast levels and 0 climatology levels.
>>
>>
--------------------------------------------------------------------------------
>>
>> Searching 347 observations from 347 PrepBufr messages.
>>
>>
>> ERROR: process_obs_file() -> can't read the header array record for
header number 347
>>
>> ratchet:~/MET >
>
>
> The full NetCDF header looks like:
> netcdf gpsmet.1125504_1125504_MET {
> dimensions:
> mxstr = 15 ;
> hdr_arr_len = 3 ;
> obs_arr_len = 5 ;
> nhdr = 347 ;
> nobs = UNLIMITED ; // (347 currently)
> variables:
> char hdr_typ(nhdr, mxstr) ;
> hdr_typ:long_name = "message type" ;
> char hdr_sid(nhdr, mxstr) ;
> hdr_sid:long_name = "station identification" ;
> char hdr_vld(nhdr, mxstr) ;
> hdr_vld:long_name = "valid time" ;
> hdr_vld:units = "YYYYMMDD_HHMMSS UTC" ;
> float hdr_arr(nhdr, hdr_arr_len) ;
> hdr_arr:long_name = "array of observation station
header values" ;
> hdr_arr:_fill_value = -9999.f ;
> hdr_arr:columns = "lat lon elv" ;
> hdr_arr:lat_long_name = "latitude" ;
> hdr_arr:lat_units = "degrees_north" ;
> hdr_arr:lon_long_name = "longitude" ;
> hdr_arr:lon_units = "degrees_east" ;
> hdr_arr:elv_long_name = "elevation " ;
> hdr_arr:elv_units = "meters above sea level (msl)" ;
> float obs_arr(nobs, obs_arr_len) ;
> obs_arr:long_name = "array of observation values" ;
> obs_arr:_fill_value = -9999.f ;
> obs_arr:columns = "hdr_id gc lvl hgt ob" ;
> obs_arr:hdr_id_long_name = "index of matching header
data" ;
> obs_arr:gc_long_name = "grib code corresponding to
the observation type" ;
> obs_arr:lvl_long_name = "pressure level (hPa) or
accumulation interval (h)" ;
> obs_arr:hgt_long_name = "height in meters above sea
level (msl)" ;
> obs_arr:ob_long_name = "observation value" ;
>
> // global attributes:
> :FileOrigins = "File gpsmet.1125504_1125504_MET.nc
generated 20110921_133304 UTC on host ratchet by the ASCII2NC tool" ;
> data:
>
> hdr_typ =
> "GPSIPW",
> "GPSIPW",
> .....
>
> It seems like the specification should be something like:
> obs_field[] = [ "obs_arr(1,5,*,*)" ]; (obs_arr contains 5 columns,
but how does one designate which column is pwat?)
>
> Thanks in advance for the help!
>
> --Kirk
>
> On Sep 21, 2011, at 10:10 AM, RAL HelpDesk {for John Halley Gotway}
wrote:
>
>> Kirk,
>>
>> I'm not in the office today so I can't test this directly, but
please try
>> using the following settings for both fcst_field and obs_field:
>> "PWAT/Z0"
>>
>> If that doesn't do it I can help you more tomorrow.
>>
>> John
>>
>>
>>> Wed Sep 21 08:59:34 2011: Request 49737 was acted upon.
>>> Transaction: Ticket created by Kirk.L.Holub at noaa.gov
>>> Queue: met_help
>>> Subject: verifying PWAT
>>> Owner: Nobody
>>> Requestors: Kirk.L.Holub at noaa.gov
>>> Status: new
>>> Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=49737 >
>>>
>>>
>>> Hello,
>>>
>>> I am trying to use MET to verify precipitable water vapor
estimates using
>>> point_stat on a WRF grib file and a file output from ascii2nc.
>>>
>>> The first few lines in the ascii input file are:
>>>> GPSIPW 1LSU 20110912_040000 30.407425 -91.180260 21.9 164 1 21.9
2.67
>>>> GPSIPW 1NSU 20110912_040000 31.750800 -93.097603 54.1 164 1 54.1
2.97
>>>> GPSIPW 1ULM 20110912_040000 32.529034 -92.075905 41.9 164 1 41.9
3.18
>>>> GPSIPW ABQ5 20110912_040000 34.957383 -106.494465 1738.6 164 1
1738.6
>>>> 2.27
>>>
>>>
>>>
>>> Within the output of ascii2nc the variable is 'obs_arr' and its
format is:
>>>
>>>> obs_arr:columns = "hdr_id gc lvl hgt ob" ;
>>>> obs_arr:hdr_id_long_name = "index of matching
header
>>>> data" ;
>>>> obs_arr:gc_long_name = "grib code corresponding to
the
>>>> observation type" ;
>>>> obs_arr:lvl_long_name = "pressure level (hPa) or
>>>> accumulation interval (h)" ;
>>>> obs_arr:hgt_long_name = "height in meters above
sea
>>>> level (msl)" ;
>>>> obs_arr:ob_long_name = "observation value" ;
>>>
>>> Example:
>>> obs_arr =
>>> 1, 164, 1, 21.9, 2.67,
>>> 2, 164, 1, 54.1, 2.97,
>>> 3, 164, 1, 41.9, 3.18,
>>> 4, 164, 1, 1738.6, 2.27,
>>>
>>> Where 164 is the grib code corresponding to the WRF file (eg.
>>>
164:508449800:d=11091200:PWAT:kpds5=54:kpds6=200:kpds7=0:TR=10:P1=0:P2=17:TimeU=13:atmos
>>> col:255min fcst:NAve=0)
>>> and the next '1' indicates hourly averages
>>>
>>> Within the point_stat config file I have:
>>> fcst_field[] = [ "PWAT/R164" ];
>>> obs_field[] = ["obs_arr( 1, 164, *, *, * )"];
>>> However, running point_stat results in: ERROR: str_to_prob_info()
->
>>> problems parsing the string
>>>
>>> So how should I specify 'obs_arry( ?, ?, ?, ... ) in the
obs_field[] so it
>>> will verify PWAT?
>>>
>>> Thanks!
>>>
>>> --Kirk
>>>
>>>
>>>
*********************************************************************************
>>> * Kirk L. Holub
>>> *
>>> * NOAA Earth System Research Laboratory * Global Systems Division
>>> *
>>> * 325 Broadway * Forecast Applications
Branch
>>> *
>>> * Bldg 33/2B135/x6642 * 303-497-6642 (W) 303-
748-7262
>>> (FAX) *
>>> * Boulder, CO 80305-3328 * 303-748-6390 (Cell)
>>> *
>>> *
>>> *
>>> ******************************* Disclaimer
>>> **********************************
>>> *
>>> *
>>> * The contents of this message are mine personally and do not
reflect
>>> any *
>>> * position of the United States of America (US), or the US
Department
>>> of *
>>> * Commerce, or the National Oceanic and Atmospheric
Administration
>>> (NOAA). *
>>> *
>>> *
>>>
*********************************************************************************
>>>
>>>
>>>
>>
>>
>>
>
>
*********************************************************************************
> * Kirk L. Holub
*
> * NOAA Earth System Research Laboratory * Global Systems Division
*
> * 325 Broadway * Forecast Applications
Branch *
> * Bldg 33/2B135/x6642 * 303-497-6642 (W) 303-
748-7262 (FAX) *
> * Boulder, CO 80305-3328 * 303-748-6390 (Cell)
*
> *
*
> ******************************* Disclaimer
**********************************
> *
*
> * The contents of this message are mine personally and do not
reflect any *
> * position of the United States of America (US), or the US
Department of *
> * Commerce, or the National Oceanic and Atmospheric
Administration (NOAA). *
> *
*
>
*********************************************************************************
>
>
------------------------------------------------
Subject: verifying PWAT
From: Kirk Holub
Time: Thu Sep 22 10:45:06 2011
John,
After more investigation I realized that my input data file had some
errors: I managed to confuse the WRF record number with the PWAT GRIB
code. Also I had a 1 hour sampling interval instead of a 0 pressure
level. After making these changes to my data file and updating
PointStatConfig to contain these:
fcst_field[] = [ "PWAT/R164" ];
obs_field[] = [ "PWAT/P0" ];
... all is now working.
Clearly I found the documentation confusing. In particular these
instructions:
> // Specifying verification fields for NetCDF files:
> // var_name(i,...,j,*,*) for a single field
Since I found var_name = obs_arr within the netcdf file, I was
convinced that I needed to specify this somehow. But clearly with the
code point_stat must know that a file created by ascii2nc will contain
the variable obs_arr. I suggest a note this effect be added into the
documentation for point_stat.
Thanks for the offer to help. Since all is now working I consider
this ticket closed.
--Kirk
On Sep 22, 2011, at 9:34 AM, RAL HelpDesk {for John Halley Gotway}
wrote:
> Kirk,
>
> It'd probably be easiest for you to just send me some sample data:
> (1) Your forecast file: efp_conus_d01_2011091200_00415
> (2) Your observation file: gpsmet.1125504_1125504_MET.nc (please
also send the ASCII version of that data)
> (3) Your config file: PointStatConfig
>
> Please follow these directions for posting data to our ftp site:
> http://www.dtcenter.org/met/users/support/met_help.php#ftp
>
> Let me know once it's there, and I'll take a look to figure out how
to get it working.
>
> Thanks,
> John
>
> On 09/21/2011 11:36 AM, RAL HelpDesk {for Kirk Holub} wrote:
>>
>> <URL: https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=49737 >
>>
>> John,
>>
>> I tried "PWAT/Z0" and point_stat was then unable to read the WRF
records:
>>> ratchet:~/MET > point_stat efp_conus_d01_2011091200_00415
gpsmet.1125504_1125504_MET.nc PointStatConfig -outdir
/home/fab/holub/MET/ -v 2
>>> GSL_RNG_TYPE=mt19937
>>> GSL_RNG_SEED=203258446
>>> Forecast File: efp_conus_d01_2011091200_00415
>>> Climatology File: none
>>> Configuration File: PointStatConfig
>>> Observation File: gpsmet.1125504_1125504_MET.nc
>>>
>>>
--------------------------------------------------------------------------------
>>>
>>> Reading records for PWAT/Z0.
>>>
>>>
>>> ERROR: read_levels_grib() -> no GRIB records matching PWAT/Z0
found in GRIB file: efp_conus_d01_2011091200_00415
>>> ratchet:~/MET >
>>
>> After going back to PWAT/R164 it appears that it was able to read
the GRIB records, but no the obs records:
>>> ratchet:~/MET > point_stat efp_conus_d01_2011091200_00415
gpsmet.1125504_1125504_MET.nc PointStatConfig -outdir
/home/fab/holub/MET/ -v 2
>>> GSL_RNG_TYPE=mt19937
>>> GSL_RNG_SEED=773683790
>>> Forecast File: efp_conus_d01_2011091200_00415
>>> Climatology File: none
>>> Configuration File: PointStatConfig
>>> Observation File: gpsmet.1125504_1125504_MET.nc
>>>
>>>
--------------------------------------------------------------------------------
>>>
>>> Reading records for PWAT/R164.
>>> For PWAT/R164 found 1 forecast levels and 0 climatology levels.
>>>
>>>
--------------------------------------------------------------------------------
>>>
>>> Searching 347 observations from 347 PrepBufr messages.
>>>
>>>
>>> ERROR: process_obs_file() -> can't read the header array record
for header number 347
>>>
>>> ratchet:~/MET >
>>
>>
>> The full NetCDF header looks like:
>> netcdf gpsmet.1125504_1125504_MET {
>> dimensions:
>> mxstr = 15 ;
>> hdr_arr_len = 3 ;
>> obs_arr_len = 5 ;
>> nhdr = 347 ;
>> nobs = UNLIMITED ; // (347 currently)
>> variables:
>> char hdr_typ(nhdr, mxstr) ;
>> hdr_typ:long_name = "message type" ;
>> char hdr_sid(nhdr, mxstr) ;
>> hdr_sid:long_name = "station identification" ;
>> char hdr_vld(nhdr, mxstr) ;
>> hdr_vld:long_name = "valid time" ;
>> hdr_vld:units = "YYYYMMDD_HHMMSS UTC" ;
>> float hdr_arr(nhdr, hdr_arr_len) ;
>> hdr_arr:long_name = "array of observation station
header values" ;
>> hdr_arr:_fill_value = -9999.f ;
>> hdr_arr:columns = "lat lon elv" ;
>> hdr_arr:lat_long_name = "latitude" ;
>> hdr_arr:lat_units = "degrees_north" ;
>> hdr_arr:lon_long_name = "longitude" ;
>> hdr_arr:lon_units = "degrees_east" ;
>> hdr_arr:elv_long_name = "elevation " ;
>> hdr_arr:elv_units = "meters above sea level (msl)" ;
>> float obs_arr(nobs, obs_arr_len) ;
>> obs_arr:long_name = "array of observation values" ;
>> obs_arr:_fill_value = -9999.f ;
>> obs_arr:columns = "hdr_id gc lvl hgt ob" ;
>> obs_arr:hdr_id_long_name = "index of matching header
data" ;
>> obs_arr:gc_long_name = "grib code corresponding to
the observation type" ;
>> obs_arr:lvl_long_name = "pressure level (hPa) or
accumulation interval (h)" ;
>> obs_arr:hgt_long_name = "height in meters above sea
level (msl)" ;
>> obs_arr:ob_long_name = "observation value" ;
>>
>> // global attributes:
>> :FileOrigins = "File gpsmet.1125504_1125504_MET.nc
generated 20110921_133304 UTC on host ratchet by the ASCII2NC tool" ;
>> data:
>>
>> hdr_typ =
>> "GPSIPW",
>> "GPSIPW",
>> .....
>>
>> It seems like the specification should be something like:
>> obs_field[] = [ "obs_arr(1,5,*,*)" ]; (obs_arr contains 5
columns, but how does one designate which column is pwat?)
>>
>> Thanks in advance for the help!
>>
>> --Kirk
>>
>> On Sep 21, 2011, at 10:10 AM, RAL HelpDesk {for John Halley Gotway}
wrote:
>>
>>> Kirk,
>>>
>>> I'm not in the office today so I can't test this directly, but
please try
>>> using the following settings for both fcst_field and obs_field:
>>> "PWAT/Z0"
>>>
>>> If that doesn't do it I can help you more tomorrow.
>>>
>>> John
>>>
>>>
>>>> Wed Sep 21 08:59:34 2011: Request 49737 was acted upon.
>>>> Transaction: Ticket created by Kirk.L.Holub at noaa.gov
>>>> Queue: met_help
>>>> Subject: verifying PWAT
>>>> Owner: Nobody
>>>> Requestors: Kirk.L.Holub at noaa.gov
>>>> Status: new
>>>> Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=49737 >
>>>>
>>>>
>>>> Hello,
>>>>
>>>> I am trying to use MET to verify precipitable water vapor
estimates using
>>>> point_stat on a WRF grib file and a file output from ascii2nc.
>>>>
>>>> The first few lines in the ascii input file are:
>>>>> GPSIPW 1LSU 20110912_040000 30.407425 -91.180260 21.9 164 1 21.9
2.67
>>>>> GPSIPW 1NSU 20110912_040000 31.750800 -93.097603 54.1 164 1 54.1
2.97
>>>>> GPSIPW 1ULM 20110912_040000 32.529034 -92.075905 41.9 164 1 41.9
3.18
>>>>> GPSIPW ABQ5 20110912_040000 34.957383 -106.494465 1738.6 164 1
1738.6
>>>>> 2.27
>>>>
>>>>
>>>>
>>>> Within the output of ascii2nc the variable is 'obs_arr' and its
format is:
>>>>
>>>>> obs_arr:columns = "hdr_id gc lvl hgt ob" ;
>>>>> obs_arr:hdr_id_long_name = "index of matching
header
>>>>> data" ;
>>>>> obs_arr:gc_long_name = "grib code corresponding to
the
>>>>> observation type" ;
>>>>> obs_arr:lvl_long_name = "pressure level (hPa) or
>>>>> accumulation interval (h)" ;
>>>>> obs_arr:hgt_long_name = "height in meters above
sea
>>>>> level (msl)" ;
>>>>> obs_arr:ob_long_name = "observation value" ;
>>>>
>>>> Example:
>>>> obs_arr =
>>>> 1, 164, 1, 21.9, 2.67,
>>>> 2, 164, 1, 54.1, 2.97,
>>>> 3, 164, 1, 41.9, 3.18,
>>>> 4, 164, 1, 1738.6, 2.27,
>>>>
>>>> Where 164 is the grib code corresponding to the WRF file (eg.
>>>>
164:508449800:d=11091200:PWAT:kpds5=54:kpds6=200:kpds7=0:TR=10:P1=0:P2=17:TimeU=13:atmos
>>>> col:255min fcst:NAve=0)
>>>> and the next '1' indicates hourly averages
>>>>
>>>> Within the point_stat config file I have:
>>>> fcst_field[] = [ "PWAT/R164" ];
>>>> obs_field[] = ["obs_arr( 1, 164, *, *, * )"];
>>>> However, running point_stat results in: ERROR: str_to_prob_info()
->
>>>> problems parsing the string
>>>>
>>>> So how should I specify 'obs_arry( ?, ?, ?, ... ) in the
obs_field[] so it
>>>> will verify PWAT?
>>>>
>>>> Thanks!
>>>>
>>>> --Kirk
>>>>
>>>>
>>>>
*********************************************************************************
>>>> * Kirk L. Holub
>>>> *
>>>> * NOAA Earth System Research Laboratory * Global Systems Division
>>>> *
>>>> * 325 Broadway * Forecast Applications
Branch
>>>> *
>>>> * Bldg 33/2B135/x6642 * 303-497-6642 (W) 303-
748-7262
>>>> (FAX) *
>>>> * Boulder, CO 80305-3328 * 303-748-6390 (Cell)
>>>> *
>>>> *
>>>> *
>>>> ******************************* Disclaimer
>>>> **********************************
>>>> *
>>>> *
>>>> * The contents of this message are mine personally and do not
reflect
>>>> any *
>>>> * position of the United States of America (US), or the US
Department
>>>> of *
>>>> * Commerce, or the National Oceanic and Atmospheric
Administration
>>>> (NOAA). *
>>>> *
>>>> *
>>>>
*********************************************************************************
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
*********************************************************************************
>> * Kirk L. Holub
*
>> * NOAA Earth System Research Laboratory * Global Systems Division
*
>> * 325 Broadway * Forecast Applications
Branch *
>> * Bldg 33/2B135/x6642 * 303-497-6642 (W) 303-
748-7262 (FAX) *
>> * Boulder, CO 80305-3328 * 303-748-6390 (Cell)
*
>> *
*
>> ******************************* Disclaimer
**********************************
>> *
*
>> * The contents of this message are mine personally and do not
reflect any *
>> * position of the United States of America (US), or the US
Department of *
>> * Commerce, or the National Oceanic and Atmospheric
Administration (NOAA). *
>> *
*
>>
*********************************************************************************
>>
>>
>
*********************************************************************************
* Kirk L. Holub
*
* NOAA Earth System Research Laboratory * Global Systems Division
*
* 325 Broadway * Forecast Applications Branch
*
* Bldg 33/2B135/x6642 * 303-497-6642 (W) 303-748-
7262 (FAX) *
* Boulder, CO 80305-3328 * 303-748-6390 (Cell)
*
*
*
******************************* Disclaimer
**********************************
*
*
* The contents of this message are mine personally and do not
reflect any *
* position of the United States of America (US), or the US
Department of *
* Commerce, or the National Oceanic and Atmospheric Administration
(NOAA). *
*
*
*********************************************************************************
------------------------------------------------
Subject: Re: [rt.rap.ucar.edu #49737] verifying PWAT
From: John Halley Gotway
Time: Thu Sep 22 11:00:36 2011
Kirk,
Fair enough, I'm glad you were able to get it working. Generally
though, I try to avoid specifying the record number to be verified
(R164) since it could potentially change from file to file.
I know you tried "PWAT/Z0" and that didn't work - but you could
instead try "PWAT/L0" - which might work. Yes, I do realize how silly
this sounds just changing the Z to an L! When MET searches
through GRIB records, if you've used a "Z" it'll only consider records
whose level type is some sort of vertical level (e.g. meters above
ground, cm below ground, and so on). And for "vertical level"
type records it'll try to find one whose level value matches the value
you specified (0, in our example). When you say "L" instead of "Z",
it tells MET that the level type doesn't matter - just look
at all records and try to match the level value of 0. So that could
work in your case, but I'd need to look at the GRIB record details to
be sure.
In our current development work, we're restructuring the config files
used by MET to make the specification of these things more clear.
Hopefully our newer design will prevent these types of problems.
I'll go ahead and resolve this ticket.
Thanks,
John
On 09/22/2011 10:45 AM, RAL HelpDesk {for Kirk Holub} wrote:
> Since I found var_name = obs_arr within the netcdf file, I was
convinced that I needed to specify this somehow. But clearly with the
code point_stat must know that a file created by ascii2nc will contain
the variable obs_arr. I suggest a note this effect be added into the
documentation for point_stat.
------------------------------------------------
More information about the Met_help
mailing list