[Met_help] [rt.rap.ucar.edu #58112] History for Question about trmm2nc.R

John Halley Gotway via RT met_help at ucar.edu
Thu Sep 6 08:59:00 MDT 2012


----------------------------------------------------------------
  Initial Request
----------------------------------------------------------------

Dear met_help,
I am working with trmm 24 hours data to compare with our WRF results.
I processed trmm2nc with the version included in METv3.1
I send you the ncdump of  the nc file generated by R,where there is no
information about init and valid time.

 dimensions:
        lon = 49 ;
        lat = 41 ;
variables:
        double lon(lon) ;
                lon:units = "degrees_east" ;
                lon:long_name = "lon" ;
        double lat(lat) ;
                lat:units = "degrees_north" ;
                lat:long_name = "lat" ;
        float APCP_NA(lat, lon) ;
                APCP_NA:units = "kg/m^2" ;
                APCP_NA:_FillValue = -9999.f ;
                APCP_NA:long_name = "Total precipitation" ;
                APCP_NA:name = "APCP" ;
                APCP_NA:level = "ANA" ;
                APCP_NA:grib_code = 61. ;
                APCP_NA:init_time = "NA" ;
                APCP_NA:init_time_ut = NaN ;
                APCP_NA:valid_time = "NA" ;
                APCP_NA:valid_time_ut = NaN ;
                APCP_NA:accum_time = "NA0000" ;
                APCP_NA:accum_time_sec = NaN ;


In other hand, It is not clear the following script instructions.In
particular why 22.5 is substracted from the end date.
Thanks for your help,
Gisela


if(acc_type == 03) {



  # For 03-hour accumulations, the time stamp gives the middle of the  #
accumulation interval.
  # Subtract 1.5 hours from the begin timestamp to get the init time.
  # Add 1.5 hours to the end timestamp to get the valid time.

  init  = as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
'-'))[1], format="(%HZ%d%b%Y", tz="GMT") - 1.5*sec_per_hr)

  valid = as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
'-'))[2], format="%HZ%d%b%Y)", tz="GMT") + 1.5*sec_per_hr)



} else {



  # The 24-hour accumulations are actually a sum of 03-hour accumulations:

  #   00Z, 03Z, 06Z, 12Z, 15Z, 18Z, and 21Z

  # Subtract 1.5 hours from the begin date to get the init time.

  # Add 22.5 hours to the end date to get the valid time.



  init  = as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
'-'))[1],  format="(%d%b%Y", tz="GMT") - 1.5*sec_per_hr)

  valid = as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
'-'))[2], format="%d%b%Y)", tz="GMT") + 22.5*sec_per_hr)

}



# Compute the accumulation interval

acc_sec =  as.double(valid - init, units="secs")

acc_hr  = floor(acc_sec / 3600)

acc_str = sprintf("%.2i", acc_hr)


----------------------------------------------------------------
  Complete Ticket History
----------------------------------------------------------------

Subject: Re: [rt.rap.ucar.edu #58112] Question about trmm2nc.R
From: John Halley Gotway
Time: Wed Sep 05 11:25:12 2012

Gisela,

I stepped through the process of retrieving TRMM data from the NASA
website and running it through the trmm2nc.R script.  But I was unable
to reproduce the problem you describe.  However, I did find a
small issue in the Rscript when checking if the data is 3-hourly or
24-hourly.  I've corrected that and updated the version of trmm2nc.R
on the MET website.

Please try going through the following steps to see if the issue is
resolved:

(1) Download some TRMM data in ASCII format...
  - The MET website lists links to this data
(http://www.dtcenter.org/met/users/downloads/observation_data.php)
  - For 3-hourly data:
http://disc2.nascom.nasa.gov/Giovanni/tovas/TRMM_V7.3B42.shtml
  - For 24-hourly data:
http://disc2.nascom.nasa.gov/Giovanni/tovas/TRMM_V7.3B42_daily.shtml

    On the NASA site, make sure that "Accumulated Rainfall" is
selected, choose your lat/lon region of interest, and choose your
dates of interest.
    Then click the "ASCII Output" button.
    Save the resulting ASCII data to a file locally.

(2) Pull down the updated version of the trmm2nc.R script:
    http://www.dtcenter.org/met/users/downloads/Rscripts/trmm2nc.R

(3) Run the data you pulled through the trmm2nc.R script.
    Rscript trmm2nc.R data.ascii data.nc

(4) View the resulting data using either "ncview", Unidata's IDV
program, or MET's plot_data_plane utility.

Do those step work for you, or are you still experiencing problems?

Thanks,
John Halley Gotway
met_help at ucar.edu


On 09/05/2012 10:40 AM, Gisela Daniela Charó via RT wrote:
>
> Wed Sep 05 10:40:16 2012: Request 58112 was acted upon.
> Transaction: Ticket created by charogiselad at gmail.com
>         Queue: met_help
>       Subject: Question about trmm2nc.R
>         Owner: Nobody
>    Requestors: charogiselad at gmail.com
>        Status: new
>   Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=58112 >
>
>
> Dear met_help,
> I am working with trmm 24 hours data to compare with our WRF
results.
> I processed trmm2nc with the version included in METv3.1
> I send you the ncdump of  the nc file generated by R,where there is
no
> information about init and valid time.
>
>   dimensions:
>          lon = 49 ;
>          lat = 41 ;
> variables:
>          double lon(lon) ;
>                  lon:units = "degrees_east" ;
>                  lon:long_name = "lon" ;
>          double lat(lat) ;
>                  lat:units = "degrees_north" ;
>                  lat:long_name = "lat" ;
>          float APCP_NA(lat, lon) ;
>                  APCP_NA:units = "kg/m^2" ;
>                  APCP_NA:_FillValue = -9999.f ;
>                  APCP_NA:long_name = "Total precipitation" ;
>                  APCP_NA:name = "APCP" ;
>                  APCP_NA:level = "ANA" ;
>                  APCP_NA:grib_code = 61. ;
>                  APCP_NA:init_time = "NA" ;
>                  APCP_NA:init_time_ut = NaN ;
>                  APCP_NA:valid_time = "NA" ;
>                  APCP_NA:valid_time_ut = NaN ;
>                  APCP_NA:accum_time = "NA0000" ;
>                  APCP_NA:accum_time_sec = NaN ;
>
>
> In other hand, It is not clear the following script instructions.In
> particular why 22.5 is substracted from the end date.
> Thanks for your help,
> Gisela
>
>
> if(acc_type == 03) {
>
>
>
>    # For 03-hour accumulations, the time stamp gives the middle of
the  #
> accumulation interval.
>    # Subtract 1.5 hours from the begin timestamp to get the init
time.
>    # Add 1.5 hours to the end timestamp to get the valid time.
>
>    init  =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
> '-'))[1], format="(%HZ%d%b%Y", tz="GMT") - 1.5*sec_per_hr)
>
>    valid =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
> '-'))[2], format="%HZ%d%b%Y)", tz="GMT") + 1.5*sec_per_hr)
>
>
>
> } else {
>
>
>
>    # The 24-hour accumulations are actually a sum of 03-hour
accumulations:
>
>    #   00Z, 03Z, 06Z, 12Z, 15Z, 18Z, and 21Z
>
>    # Subtract 1.5 hours from the begin date to get the init time.
>
>    # Add 22.5 hours to the end date to get the valid time.
>
>
>
>    init  =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
> '-'))[1],  format="(%d%b%Y", tz="GMT") - 1.5*sec_per_hr)
>
>    valid =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
> '-'))[2], format="%d%b%Y)", tz="GMT") + 22.5*sec_per_hr)
>
> }
>
>
>
> # Compute the accumulation interval
>
> acc_sec =  as.double(valid - init, units="secs")
>
> acc_hr  = floor(acc_sec / 3600)
>
> acc_str = sprintf("%.2i", acc_hr)
>


------------------------------------------------
Subject: Question about trmm2nc.R
From: Gisela Daniela Charó
Time: Thu Sep 06 07:40:38 2012

Hi John,
I followed that steps,when I got the 24-hourly data ascii file on the
NASA
website , on the header of the file there was :

Selected parameter: Daily TRMM 3B42(V7) Accumulated Rainfall
Selected area: lat=[50S,0], lon=[85W,35W]
Selected time period: (24Oct2011-25Oct2011)
Undefined/Missing Value: -9999.9
Unit: (mm)


When I run trmm2nc.R , I got this message:

ERROR: Can't figure out the accumulation interval!

So, I  changed  this part of the script, instead of TRMM I put Daily,
and
it works!

# Determine the accumlation interval
if(as.character(hdr[1,3]) == "TRMM") {
  acc_type = 24
} else if(as.character(hdr[1,3]) == "3-hourly") {
  acc_type = 3
} else {
  cat("\n\nERROR: Can\'t figure out the accumulation interval!\n\n")
  exit(1)
}
# Determine the accumlation interval
if(as.character(hdr[1,3]) == "Daily") {
  acc_type = 24
} else if(as.character(hdr[1,3]) == "3-hourly") {
  acc_type = 3
} else {
  cat("\n\nERROR: Can\'t figure out the accumulation interval!\n\n")
  exit(1)
}

Thanks for your help!
Gisela





2012/9/5 John Halley Gotway via RT <met_help at ucar.edu>

> Gisela,
>
> I stepped through the process of retrieving TRMM data from the NASA
> website and running it through the trmm2nc.R script.  But I was
unable to
> reproduce the problem you describe.  However, I did find a
> small issue in the Rscript when checking if the data is 3-hourly or
> 24-hourly.  I've corrected that and updated the version of trmm2nc.R
on the
> MET website.
>
> Please try going through the following steps to see if the issue is
> resolved:
>
> (1) Download some TRMM data in ASCII format...
>   - The MET website lists links to this data (
> http://www.dtcenter.org/met/users/downloads/observation_data.php)
>   - For 3-hourly data:
> http://disc2.nascom.nasa.gov/Giovanni/tovas/TRMM_V7.3B42.shtml
>   - For 24-hourly data:
> http://disc2.nascom.nasa.gov/Giovanni/tovas/TRMM_V7.3B42_daily.shtml
>
>     On the NASA site, make sure that "Accumulated Rainfall" is
selected,
> choose your lat/lon region of interest, and choose your dates of
interest.
>     Then click the "ASCII Output" button.
>     Save the resulting ASCII data to a file locally.
>
> (2) Pull down the updated version of the trmm2nc.R script:
>     http://www.dtcenter.org/met/users/downloads/Rscripts/trmm2nc.R
>
> (3) Run the data you pulled through the trmm2nc.R script.
>     Rscript trmm2nc.R data.ascii data.nc
>
> (4) View the resulting data using either "ncview", Unidata's IDV
program,
> or MET's plot_data_plane utility.
>
> Do those step work for you, or are you still experiencing problems?
>
> Thanks,
> John Halley Gotway
> met_help at ucar.edu
>
>
> On 09/05/2012 10:40 AM, Gisela Daniela Charó via RT wrote:
> >
> > Wed Sep 05 10:40:16 2012: Request 58112 was acted upon.
> > Transaction: Ticket created by charogiselad at gmail.com
> >         Queue: met_help
> >       Subject: Question about trmm2nc.R
> >         Owner: Nobody
> >    Requestors: charogiselad at gmail.com
> >        Status: new
> >   Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=58112 >
> >
> >
> > Dear met_help,
> > I am working with trmm 24 hours data to compare with our WRF
results.
> > I processed trmm2nc with the version included in METv3.1
> > I send you the ncdump of  the nc file generated by R,where there
is no
> > information about init and valid time.
> >
> >   dimensions:
> >          lon = 49 ;
> >          lat = 41 ;
> > variables:
> >          double lon(lon) ;
> >                  lon:units = "degrees_east" ;
> >                  lon:long_name = "lon" ;
> >          double lat(lat) ;
> >                  lat:units = "degrees_north" ;
> >                  lat:long_name = "lat" ;
> >          float APCP_NA(lat, lon) ;
> >                  APCP_NA:units = "kg/m^2" ;
> >                  APCP_NA:_FillValue = -9999.f ;
> >                  APCP_NA:long_name = "Total precipitation" ;
> >                  APCP_NA:name = "APCP" ;
> >                  APCP_NA:level = "ANA" ;
> >                  APCP_NA:grib_code = 61. ;
> >                  APCP_NA:init_time = "NA" ;
> >                  APCP_NA:init_time_ut = NaN ;
> >                  APCP_NA:valid_time = "NA" ;
> >                  APCP_NA:valid_time_ut = NaN ;
> >                  APCP_NA:accum_time = "NA0000" ;
> >                  APCP_NA:accum_time_sec = NaN ;
> >
> >
> > In other hand, It is not clear the following script
instructions.In
> > particular why 22.5 is substracted from the end date.
> > Thanks for your help,
> > Gisela
> >
> >
> > if(acc_type == 03) {
> >
> >
> >
> >    # For 03-hour accumulations, the time stamp gives the middle of
the  #
> > accumulation interval.
> >    # Subtract 1.5 hours from the begin timestamp to get the init
time.
> >    # Add 1.5 hours to the end timestamp to get the valid time.
> >
> >    init  =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
> > '-'))[1], format="(%HZ%d%b%Y", tz="GMT") - 1.5*sec_per_hr)
> >
> >    valid =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
> > '-'))[2], format="%HZ%d%b%Y)", tz="GMT") + 1.5*sec_per_hr)
> >
> >
> >
> > } else {
> >
> >
> >
> >    # The 24-hour accumulations are actually a sum of 03-hour
> accumulations:
> >
> >    #   00Z, 03Z, 06Z, 12Z, 15Z, 18Z, and 21Z
> >
> >    # Subtract 1.5 hours from the begin date to get the init time.
> >
> >    # Add 22.5 hours to the end date to get the valid time.
> >
> >
> >
> >    init  =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
> > '-'))[1],  format="(%d%b%Y", tz="GMT") - 1.5*sec_per_hr)
> >
> >    valid =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
> > '-'))[2], format="%d%b%Y)", tz="GMT") + 22.5*sec_per_hr)
> >
> > }
> >
> >
> >
> > # Compute the accumulation interval
> >
> > acc_sec =  as.double(valid - init, units="secs")
> >
> > acc_hr  = floor(acc_sec / 3600)
> >
> > acc_str = sprintf("%.2i", acc_hr)
> >
>
>
>

------------------------------------------------
Subject: Re: [rt.rap.ucar.edu #58112] Question about trmm2nc.R
From: John Halley Gotway
Time: Thu Sep 06 08:58:50 2012

Gisela,

Yes, the change you describe is exactly the change I made to the
trmm2nc.R script posted on the MET website:
    http://www.dtcenter.org/met/users/downloads/Rscripts/trmm2nc.R

That's why I asked you to pull down the updated version of that
script.  But I am very glad to hear that it is now working for you.

Just let us know if more issues arise in your use of MET.

Thanks,
John

On 09/06/2012 07:40 AM, Gisela Daniela Charó via RT wrote:
>
> <URL: https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=58112 >
>
> Hi John,
> I followed that steps,when I got the 24-hourly data ascii file on
the NASA
> website , on the header of the file there was :
>
> Selected parameter: Daily TRMM 3B42(V7) Accumulated Rainfall
> Selected area: lat=[50S,0], lon=[85W,35W]
> Selected time period: (24Oct2011-25Oct2011)
> Undefined/Missing Value: -9999.9
> Unit: (mm)
>
>
> When I run trmm2nc.R , I got this message:
>
> ERROR: Can't figure out the accumulation interval!
>
> So, I  changed  this part of the script, instead of TRMM I put
Daily, and
> it works!
>
> # Determine the accumlation interval
> if(as.character(hdr[1,3]) == "TRMM") {
>    acc_type = 24
> } else if(as.character(hdr[1,3]) == "3-hourly") {
>    acc_type = 3
> } else {
>    cat("\n\nERROR: Can\'t figure out the accumulation
interval!\n\n")
>    exit(1)
> }
> # Determine the accumlation interval
> if(as.character(hdr[1,3]) == "Daily") {
>    acc_type = 24
> } else if(as.character(hdr[1,3]) == "3-hourly") {
>    acc_type = 3
> } else {
>    cat("\n\nERROR: Can\'t figure out the accumulation
interval!\n\n")
>    exit(1)
> }
>
> Thanks for your help!
> Gisela
>
>
>
>
>
> 2012/9/5 John Halley Gotway via RT <met_help at ucar.edu>
>
>> Gisela,
>>
>> I stepped through the process of retrieving TRMM data from the NASA
>> website and running it through the trmm2nc.R script.  But I was
unable to
>> reproduce the problem you describe.  However, I did find a
>> small issue in the Rscript when checking if the data is 3-hourly or
>> 24-hourly.  I've corrected that and updated the version of
trmm2nc.R on the
>> MET website.
>>
>> Please try going through the following steps to see if the issue is
>> resolved:
>>
>> (1) Download some TRMM data in ASCII format...
>>    - The MET website lists links to this data (
>> http://www.dtcenter.org/met/users/downloads/observation_data.php)
>>    - For 3-hourly data:
>> http://disc2.nascom.nasa.gov/Giovanni/tovas/TRMM_V7.3B42.shtml
>>    - For 24-hourly data:
>>
http://disc2.nascom.nasa.gov/Giovanni/tovas/TRMM_V7.3B42_daily.shtml
>>
>>      On the NASA site, make sure that "Accumulated Rainfall" is
selected,
>> choose your lat/lon region of interest, and choose your dates of
interest.
>>      Then click the "ASCII Output" button.
>>      Save the resulting ASCII data to a file locally.
>>
>> (2) Pull down the updated version of the trmm2nc.R script:
>>      http://www.dtcenter.org/met/users/downloads/Rscripts/trmm2nc.R
>>
>> (3) Run the data you pulled through the trmm2nc.R script.
>>      Rscript trmm2nc.R data.ascii data.nc
>>
>> (4) View the resulting data using either "ncview", Unidata's IDV
program,
>> or MET's plot_data_plane utility.
>>
>> Do those step work for you, or are you still experiencing problems?
>>
>> Thanks,
>> John Halley Gotway
>> met_help at ucar.edu
>>
>>
>> On 09/05/2012 10:40 AM, Gisela Daniela Charó via RT wrote:
>>>
>>> Wed Sep 05 10:40:16 2012: Request 58112 was acted upon.
>>> Transaction: Ticket created by charogiselad at gmail.com
>>>          Queue: met_help
>>>        Subject: Question about trmm2nc.R
>>>          Owner: Nobody
>>>     Requestors: charogiselad at gmail.com
>>>         Status: new
>>>    Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=58112 >
>>>
>>>
>>> Dear met_help,
>>> I am working with trmm 24 hours data to compare with our WRF
results.
>>> I processed trmm2nc with the version included in METv3.1
>>> I send you the ncdump of  the nc file generated by R,where there
is no
>>> information about init and valid time.
>>>
>>>    dimensions:
>>>           lon = 49 ;
>>>           lat = 41 ;
>>> variables:
>>>           double lon(lon) ;
>>>                   lon:units = "degrees_east" ;
>>>                   lon:long_name = "lon" ;
>>>           double lat(lat) ;
>>>                   lat:units = "degrees_north" ;
>>>                   lat:long_name = "lat" ;
>>>           float APCP_NA(lat, lon) ;
>>>                   APCP_NA:units = "kg/m^2" ;
>>>                   APCP_NA:_FillValue = -9999.f ;
>>>                   APCP_NA:long_name = "Total precipitation" ;
>>>                   APCP_NA:name = "APCP" ;
>>>                   APCP_NA:level = "ANA" ;
>>>                   APCP_NA:grib_code = 61. ;
>>>                   APCP_NA:init_time = "NA" ;
>>>                   APCP_NA:init_time_ut = NaN ;
>>>                   APCP_NA:valid_time = "NA" ;
>>>                   APCP_NA:valid_time_ut = NaN ;
>>>                   APCP_NA:accum_time = "NA0000" ;
>>>                   APCP_NA:accum_time_sec = NaN ;
>>>
>>>
>>> In other hand, It is not clear the following script
instructions.In
>>> particular why 22.5 is substracted from the end date.
>>> Thanks for your help,
>>> Gisela
>>>
>>>
>>> if(acc_type == 03) {
>>>
>>>
>>>
>>>     # For 03-hour accumulations, the time stamp gives the middle
of the  #
>>> accumulation interval.
>>>     # Subtract 1.5 hours from the begin timestamp to get the init
time.
>>>     # Add 1.5 hours to the end timestamp to get the valid time.
>>>
>>>     init  =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
>>> '-'))[1], format="(%HZ%d%b%Y", tz="GMT") - 1.5*sec_per_hr)
>>>
>>>     valid =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
>>> '-'))[2], format="%HZ%d%b%Y)", tz="GMT") + 1.5*sec_per_hr)
>>>
>>>
>>>
>>> } else {
>>>
>>>
>>>
>>>     # The 24-hour accumulations are actually a sum of 03-hour
>> accumulations:
>>>
>>>     #   00Z, 03Z, 06Z, 12Z, 15Z, 18Z, and 21Z
>>>
>>>     # Subtract 1.5 hours from the begin date to get the init time.
>>>
>>>     # Add 22.5 hours to the end date to get the valid time.
>>>
>>>
>>>
>>>     init  =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
>>> '-'))[1],  format="(%d%b%Y", tz="GMT") - 1.5*sec_per_hr)
>>>
>>>     valid =
as.POSIXct(strptime(unlist(strsplit(as.character(hdr[3,4]),
>>> '-'))[2], format="%d%b%Y)", tz="GMT") + 22.5*sec_per_hr)
>>>
>>> }
>>>
>>>
>>>
>>> # Compute the accumulation interval
>>>
>>> acc_sec =  as.double(valid - init, units="secs")
>>>
>>> acc_hr  = floor(acc_sec / 3600)
>>>
>>> acc_str = sprintf("%.2i", acc_hr)
>>>
>>
>>
>>


------------------------------------------------


More information about the Met_help mailing list