[gradsusr] Saving NetCDF lon parameter in geographic

Mark Hess mhess at oceani.com
Wed Apr 18 11:36:38 EDT 2012


I should clarify.  These are ocean current data retrieved as U & V vector components from the HYCOM oceanographic model.   I am now getting the data directly from their server and then sub setting using the sdfwrite command.  The script for the U component is below.  The longitude parameter in the original data is  0-360 and opposed to -180 to 180, so if I 'set lon -121 -116' to extract an area off of Southern California, it will not work.  Ultimately, what I need is an .nc file covering 32N-35N x 116W-121W for both the U and V vector components with the longitude in geographic or world format (i.e. -180 to 180).  Just not sure how to convert from the original format.   I can get the numbers I need by subtracting 360 from the lon value, but not sure how to do this in GrADS.   The ncdump output from the file created by the .gs script below is attached.  Any ideas you can offer are much appreciated.

'reinit'
'sdfopen http://tds.hycom.org/thredds/dodsC/datasets/global/GLBa0.08_rect/data/uvel/rarchv.2012_106_00_3zu.nc'
*
*  Save sub-sectioned NetCDF files
*
* Create Southern California .nc file
'q file'
'set gxout shaded'
'set lat 32 35'
'set lon 239 244'
'set lev 0'
'd u'
'define u = u'
'set sdfwrite hycom_u_socal.nc'
'sdfwrite u'
'quit'


Thanks.

Mark



  ----- Original Message ----- 
  From: Jennifer Adams 
  To: GrADS Users Forum 
  Sent: Wednesday, April 18, 2012 8:20 AM
  Subject: Re: [gradsusr] Saving NetCDF lon parameter in geographic


  Mark,
  If your original data set "wraps" the globe, then it should work fine: 


  'sdfopen foo.nc
  'set lon -180 180'
  'define var'
  'sdfwrite var'


  If not, please send the output from ncdump -c on your original file, your script to generate a new netcdf file using sdfwrite, and the output from ncdump -c on your new netcdf file. Your GrADS version would be helpful too.


  --Jennifer


  On Apr 13, 2012, at 7:36 PM, Mark Hess wrote:


    Thanks Chuck - Looks like that validates my suspicion that I cannot change 
    the lon coordinates from the 0-360 to world coordinates 180 to -180 when 
    extracting a subset of the original file to a smaller .nc file.  I'll 
    consider different options.  Thanks.  Mark.


    ----- Original Message ----- 
    From: "Charles Seman" <charles.seman at noaa.gov>
    To: "GrADS Users Forum" <gradsusr at gradsusr.org>
    Sent: Thursday, April 12, 2012 3:44 PM
    Subject: Re: [gradsusr] Saving NetCDF lon parameter in geographic



      Mark,



      The documentation at

      http://grads.iges.org/grads/gadoc/gradcomdsdfwrite.html states:

      "By default, the output file will have a coordinate variable only for

      varying dimensions in the defined variable; non-varying dimensions will

      not appear as a coordinate variable with a size of 1. However, as of

      version 2.0.a5, options have been added to the set sdfwrite command to

      force the variable in the output file to have at least 4 or all 5

      dimensions. When either of these options to set sdfwrite are used, the

      output file will retain information about the values of the dimensions

      that were fixed when the variable was defined; non-varying dimensions

      will appear as a coordinate variable of size 1. For example, if your

      defined variable is 500mb height on14may2002 (a 2D variable that varies

      only in lon and lat), and you use the -4d option, the output file with

      show height as a 4D variable with a Z dimension of size 1 called 'lev'

      with a value "500 mb", and a T dimension of size 1 called 'time' with a

      value of "0 minutes since 2002-05-14 00:00".



      Seems the key phrase seems to be "the output file will retain

      information about the values of the dimensions that were fixed when the

      variable was defined"... I confirmed what I thought this meant on a file

      which has grid longitudes in the -180 to 180 range and found the

      following results:

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

      ...using "native" longitude range:

      ga-> sdfopen 3B42.1002.V6.nc

      Scanning self-describing file:  3B42.1002.V6.nc

      SDF file 3B42.1002.V6.nc is open as file 1

      LON set to 0 360

      LAT set to -49.875 49.875

      LEV set to 0 0

      Time values set: 2010:2:14:22 2010:2:14:22

      E set to 1 1

      ga-> q file

      File 1 : NASA TRMM 3B42 3-Hourly 0.25 degree TRMM and Other Satellites

      Precipitation Product (Version 6)

       Descriptor: 3B42.1002.V6.nc

       Binary: 3B42.1002.V6.nc

       Type = Gridded

       Xsize = 1440  Ysize = 400  Zsize = 1  Tsize = 1  Esize = 1

       Number of Variables = 2

          precipitation  0  t,y,x  precipitation

          relativeerror  0  t,y,x  relativeError

      ga-> set lon -180 180

      LON set to -180 180

      ga-> set lat -90 90

      LAT set to -90 90

      ga-> set sdfwrite precipitation.3B42.1002.V6.nc

      SDFWrite file name = precipitation.3B42.1002.V6.nc

      SDFWrite will replace an existing file

      ga-> sdfwrite precipitation

      SDFWRITE error: no defined variables

      ga-> define precipitation = precipitation

      Define memory allocation size = 8328992 bytes

      ga-> sdfwrite precipitation

      Wrote variable precipitation to precipitation.3B42.1002.V6.nc

      ...

      cjs: /tmp/data/precip/trmm/3B42.V6/pp/0.25x0.25/av/monthly/update/ -->

      \ncdump -c precipitation.3B42.1002.V6.nc

      netcdf precipitation.3B42.1002.V6 {

      dimensions:

             longitude = 1442 ;

             latitude = 722 ;

      ...

      longitude = -180.125,...,180.125

      latitude = -90.125,...,90.125

      ...

      ...so the output file runs from longitude = -180.125 to 180.125 and from

      latitude = -90.125 to 90.125 (a couple extra points added in each

      direction, so be careful)

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



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

      ...using a "global" longitude range, using x,y coordinates to define

      exact boundaries:

      ga-> sdfopen 3B42.1002.V6.nc

      Scanning self-describing file:  3B42.1002.V6.nc

      SDF file 3B42.1002.V6.nc is open as file 1

      LON set to 0 360

      LAT set to -49.875 49.875

      LEV set to 0 0

      Time values set: 2010:2:14:22 2010:2:14:22

      E set to 1 1

      ...

      ga-> set y 1 400

      LAT set to -49.875 49.875

      ga-> set x 721 2160

      LON set to 0.125 359.875

      ga-> set sdfwrite precipitation.3B42.1002.V6.nc

      SDFWrite file name = precipitation.3B42.1002.V6.nc

      SDFWrite will replace an existing file

      ga-> define precipitation = precipitation

      Define memory allocation size = 4608000 bytes

      ga-> sdfwrite precipitation

      Wrote variable precipitation to precipitation.3B42.1002.V6.nc

      cjs: /tmp/data/precip/trmm/3B42.V6/pp/0.25x0.25/av/monthly/update/ -->

      \ncdump -c precipitation.3B42.1002.V6.nc

      netcdf precipitation.3B42.1002.V6 {

      dimensions:

             longitude = 1440 ;

             latitude = 400 ;

      longitude = 0.125,...,359.875

      latitude = -49.875,...,49.875

      ...

      ...so the output file runs from longitude = 0.125,...,359.8755 and from

      latitude = -49.875,...,49.875

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



      Could you try defining the variable to sdfwrite using parameters

      appropriate to the netCDF file's original grid?



      Hope this helps,

      Chuck



      On 04/12/2012 03:57 PM, Mark Hess wrote:

        I have a NetCDF file which I can ingest and display in GrADS with out a

        problem. The LON parameter is set to a 0-360 grid as opposed to 0-180W &

        0-180E (or 0 to 180 for east and 0 to -180 for west). If I "set lon 239

        244" and then display my variable of interest (in this case U), the data

        display properly showing the data between 116W-121W (116W equaling

        -116=244-360 and 121W equaling -121=360-239). That all is fine until I

        try to save my geographically subsetted area to a new .nc file using the

        sdfwrite function. The file saves fine, but it saves the LON information

        in the 0-360 format instead of the 0 to -180 format which I need for

        another application. Is there a way to either 1) save the new, subsetted

        .nc file with the lons converting to the in 0 to -180 format as part of

        the process or 2) convert the lon format within GrADS first and then

        save the new .nc file with the lon values in the format I want? Can I

        subtract 360 from my "lon" variable to create a 'new' lon variable?

        Thanks,

        Mark





        _______________________________________________

        gradsusr mailing list

        gradsusr at gradsusr.org

        http://gradsusr.org/mailman/listinfo/gradsusr



      -- 



      Please note that Charles.Seman at noaa.gov should be considered my NOAA

      email address, not cjs at gfdl.noaa.gov.



      ********************************************************************

      Charles Seman                                Charles.Seman at noaa.gov

      U.S. Department of Commerce / NOAA / OAR

      Geophysical Fluid Dynamics Laboratory         voice: (609) 452-6547

      201 Forrestal Road                              fax: (609) 987-5063

      Princeton, NJ  08540-6649            http://www.gfdl.noaa.gov/~cjs/

      ********************************************************************



      "The contents of this message are mine personally and do not reflect any

      official or unofficial position of the United States Federal Government,

      the United States Department of Commerce, or NOAA."

      _______________________________________________

      gradsusr mailing list

      gradsusr at gradsusr.org

      http://gradsusr.org/mailman/listinfo/gradsusr 


    _______________________________________________
    gradsusr mailing list
    gradsusr at gradsusr.org
    http://gradsusr.org/mailman/listinfo/gradsusr



  --
  Jennifer M. Adams
  IGES/COLA
  4041 Powder Mill Road, Suite 302
  Calverton, MD 20705
  jma at cola.iges.org








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


  _______________________________________________
  gradsusr mailing list
  gradsusr at gradsusr.org
  http://gradsusr.org/mailman/listinfo/gradsusr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20120418/7ec07f56/attachment-0003.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hycom_u_socal.ncdump
Type: application/octet-stream
Size: 2468 bytes
Desc: not available
Url : http://gradsusr.org/pipermail/gradsusr/attachments/20120418/7ec07f56/attachment-0003.obj 


More information about the gradsusr mailing list