[gradsusr] Help on calculating Area Maximum from NetCDF file using Grads

Anil Kumar anilku at oceanmanager.com
Wed Jul 16 11:45:55 EDT 2014


Dear Arlindo and All Grads Users,

 

As directed, I have developed  below Script, defined a global grid u4x4 and calculated Amax and used ‘set defval’ command. When I exported the defined grid to netcdf file. The output was vertical straight lines. Can anyone please point out what is wrong while defining ‘set defval’ in script? 

 

Any help please.

 

'reinit'

'open D:\WeatherGribFiles\2014\06\11\rtofs_glo_2ds_f048_daily_prog.ctl'

 

* original grid dimensions

xmin = 74.16

xmax = 434.0

ymin = -90

ymax = 90

 

* defining "u4x4" global grid for u

'define u4x4 = re(u_velocity,2)'

 

* defining var for further use

'define var = u_velocity'

 

xinc = 2

yinc = 1

xnow = xmin

ynow = ymin

 

******* jj and jj_max are the latitude of Global grid u4x4 ****************

jj = 1

jj_max = 90

count = 1

 

while (xnow < xmax)

xtempMax = xnow+xinc;ytempMax = ynow+yinc

 

'd amax(var,lon='xnow',lon='xtempMax',lat='ynow',lat='ytempMax')'

maxval=subwrd(result,4)

 

  jj = 1

   while (jj <= jj_max)

   'set defval u4x4 'count' 'jj' 'maxval

   jj = jj + 1

  endwhile

xnow = xnow+xinc;ynow = ynow+yinc

count=count+1

endwhile

 

 

*************** Write a netcdf file ****************

'set sdfwrite a_grid.nc'

'sdfwrite u4x4'

 

 

Thanks & Regards

Anil Kumar 

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

---------- Forwarded message ----------
From: Arlindo da Silva <dasilva at alum.mit.edu <mailto:dasilva at alum.mit.edu> >
Date: Thu, Jul 10, 2014 at 7:48 PM
Subject: Re: [gradsusr] Help on calculating Area Maximum from NetCDF file using Grads
To: Anil Kumar <anilku at oceanmanager.com <mailto:anilku at oceanmanager.com> >, GrADS Users Forum <gradsusr at gradsusr.org <mailto:gradsusr at gradsusr.org> >



On Thu, Jul 10, 2014 at 5:40 AM, Anil Kumar <anilku at oceanmanager.com <mailto:anilku at oceanmanager.com> > wrote:

Dear Arlindo,

 

Thanks for your detailed reply. I have a few queries regarding the task I need to accomplish.

 

1)      If Grads is not the best tool to accomplish my task, can you please suggest me the another tool, if you know, to accomplish the job ?

 

Probably C or Fortran. You could also accomplish some of that with python with pygrads. All depends on how much programming experience you have.

 

2)      Secondly, the approach which you have already shared with me as below

 

1) define a 2x2 global grid (say, use lterp with linear interpolation),

2) loop over every 2x2 region in the 0.25x0.5 deg grid, compute the 2 x2 area max with amax(), and use "set defval" to replace the corresponding value in the previous defined variable in 1). As I said, this is very inefficient.

 

Should I need to create 2x2 global grid first physically first and then need to replace its values. If so, I don’t find any hint on google,  <http://gradsuser.org> gradsuser.org to create a new grid. What is the procedure to create grid ?

 

 

What I said was to define a 2x2 grid, for example

 

define u2x2 = re(u,2)

 

   I really don't have the time to walk you thru the details as it would require me to actually write the code for you. If you can program in C or fortran I'd go that route. If you follow the UDF approach  that I outlined you can still do grads for your plotting. And please do not write directly to me, I cannot afford to provide individualized grads support.

 

   Good Luck,

 

        Arlindo

 

 

 

 

Thanks again for your help.

 

 

Thanks & Regards

Anil Kumar 

OceanManager Inc. |  <http://www.oceanmanager.com/> www.oceanmanager.com

OceanManager - Marine Software

 

From:  <mailto:gradsusr-bounces at gradsusr.org> gradsusr-bounces at gradsusr.org [mailto: <mailto:gradsusr-bounces at gradsusr.org> gradsusr-bounces at gradsusr.org] On Behalf Of Arlindo da Silva
Sent: Tuesday, July 01, 2014 7:12 AM
To: GrADS Users Forum


Subject: Re: [gradsusr] Help on calculating Area Maximum from NetCDF file using Grads

 

On Mon, Jun 30, 2014 at 9:37 AM, Anil Kumar <anilku at oceanmanager.com <mailto:anilku at oceanmanager.com> > wrote:

Hi Grads users,

 

I am awaiting an useful comments or direction on the below case. Please lead me, to get all the maximum values from the small – small areas of every 2 degree in Lat and lon say for example. Below is my complete query.

 

My Requirement :  I have a larger dataset (.NC file) 1440*720 points. I want a new destination grid with linear interpolation having all the all area maximum values using amax() of small-small regions. And ultimately, need to query the destination grid for output.

 

 

I am afraid the regridding method you are looking for is not implemented by lterp() or re().  This is a good example of when GrADS is not the best tool for the job at hand. But if you insist, a very inefficient approach would be

 

1) define a 2x2 global grid (say, use lterp with linear interpolation),

2) loop over every 2x2 region in the 0.25x0.5 deg grid, compute the 2 x2 area max with amax(), and use "set defval" to replace the corresponding value in the previous defined variable in 1). As I said, this is very inefficient.

 

If you are up for some C/Fortran programming, you can use the opengrads IPC extension (which is available with your Windows build):

 

    http://opengrads.org/doc/udxt/libipc/

 

to write your variables to disk,

 

ga-> ipc_save u_velocity u.bin

ga-> ipc_save v_velocity v.bin

 

Then write a C/Fortran program that read these files (u.bin,v.bin) and compute the amax at the 2x2 grid you require, writing output files (u2x2.bin.v2x2.bin). 

 

ga-> ! my_amaxregrid 

 

Consult the IPC documentation for the description of the transfer file format (very similar to the old GrADS 1.x UDF.) You can finally read these back with ipc_load() extension:

 

ga-> d ipc_load("u2x2.bin");ipc_load("v2x2.bin")

 

Notice that this is a poor-man version of the file-based UDF that existed in GrADS 1.x. Of course, you can accomplish the same more efficiently by writing a genuine OpenGrADS extension with no transfer files involved.

 

  Good Luck,

 

      Arlindo

 

 

 

 

What Am doing so far : 

I have a NetCDF file having  below CTL Info.

 

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

dset D:\WeatherGribFiles\2014\06\22\ <http://rtofs_glo_2ds_f024_daily_prog.nc> rtofs_glo_2ds_f024_daily_prog.nc

title 2D Sfc Daily Prognostic 00Z22jun2014: Forecast, downloaded Jun 22 15:20 UTC

undef 1.26765e+30

dtype netcdf

xdef 1440 linear 74.16 0.24999

ydef 720 linear -90 0.24999

zdef 1 linear 1 1

tdef 1 linear 00Z23JUN2014 1mn

vars 2

u_velocity=>u_velocity  1  t,z,y,x  eastward_sea_water_velocity (m/s)

v_velocity=>v_velocity  1  t,z,y,x  northward_sea_water_velocity (m/s)

endvars

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

 

I want a new destination grid ; which would contain the area maximum values as points. Destination grid should contain maximum value from every 8 points in x-axis and y axis. For this, I have created below, CTL file named as  rtofs_glo_2ds_f024_daily_prog.ctl:

 

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

dset D:\WeatherGribFiles\2014\06\22\ <http://rtofs_glo_2ds_f024_daily_prog.nc> rtofs_glo_2ds_f024_daily_prog.nc

index  D:\WeatherGribFiles\2014\06\22\rtofs_glo_2ds_f024_daily_prog_DUMMY.nc 

title 2D Sfc Daily Prognostic 00Z22jun2014: Forecast, downloaded Jun 22 15:20 UTC 

undef 1.26765e+30 

dtype netcdf 

xdef 180 linear 74.16 2.0  

ydef 90 linear -90 2.0  

zdef 1 linear 1 1 

tdef 1 linear 00Z23JUN2014 1mn

options template 

vars 2 

u_velocity=>u_velocity  1  t,z,y,x  eastward_sea_water_velocity (m/s)  

v_velocity=>v_velocity  1  t,z,y,x  northward_sea_water_velocity (m/s)  

endvars

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

Below is the command I use to display the data from destination grid rtofs_glo_2ds_f024_daily_prog_DUMMY.nc defined in above CTL file. Below is the command set using.

 

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

reinit

sdfopen D:/WeatherGribFiles/2014/06/22/ <http://rtofs_glo_2ds_f024_daily_prog.nc> rtofs_glo_2ds_f024_daily_prog.nc

open D:/WeatherGribFiles/2014/06/22/rtofs_glo_2ds_f024_daily_prog2.ctl

set parea 0 11 0 8.5

set vpage 0 11 0 8.5

set lon -74.16 434

set lat -90 90

set cthick 6

set arrscl 0.10 

define val = mag(lterp(u_velocity.1*1.95,lat.2,amax),lterp(v_velocity.1*1.95,lat.2,amax))

d lterp(u_velocity.1*1.95,lat.2,amax);lterp(v_velocity.1*1.95,lat.2,amax);val

 

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

 

When I change the destination grid dimensions slightly  in rtofs_glo_2ds_f024_daily_prog.ctl file

 

xdef 135 linear 74.16 2.5  

ydef 68 linear -90 2.5  

 

and checks for the output, It varies at the same point i.e. if I look at certain point before changing and after changing grid dimensions, the result comes of different magnitude.

What I want is, When I increase or decrease the destination grid points in “rtofs_glo_2ds_f024_daily_prog.ctl”, and the maximum value should be at its place. 

 

How can I achieve this ????? 

 

 

Thanks & Regards

Anil Kumar – Sr. Software Developer

OceanManager Inc. |  <http://www.oceanmanager.com/> www.oceanmanager.com

Tel:  <tel:%2B%2091-172-5026090> + 91-172-5026090, 5026091, 4646070

OceanManager- Marine Software

 

From:  <mailto:gradsusr-bounces at gradsusr.org> gradsusr-bounces at gradsusr.org [mailto: <mailto:gradsusr-bounces at gradsusr.org> gradsusr-bounces at gradsusr.org] On Behalf Of Anil Kumar
Sent: Friday, June 27, 2014 12:55 PM
To:  <mailto:jma at cola.iges.org> jma at cola.iges.org; 'GrADS Users Forum'
Subject: Re: [gradsusr] Help on calculating Area Maximum from NetCDF file using Grads

 

Hi Jennifer and All,

 

Am seeking help on calculating area maximum with linear interpolation using Grads. Earlier I was using below methodology to calculate area average over small areas defined. It was working good but now I need to calculate amax using lterp in grads  <http://www.iges.org/grads/gadoc/gradfunclterp.html> but in documentation I cannot find that ltrep uses amax as argument ; neither it is giving correct result nor giving error.

 

My Requirement :  I have a larger dataset (.NC file) 1440*720 points. I want a new destination grid with linear interpolation having all the all area maximum values using amax() of small-small regions. And ultimately, need to query the destination grid for output.

 

What Am doing so far : 

I have a NetCDF file having  below CTL Info.

 

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

dset D:\WeatherGribFiles\2014\06\22\ <http://rtofs_glo_2ds_f024_daily_prog.nc> rtofs_glo_2ds_f024_daily_prog.nc

title 2D Sfc Daily Prognostic 00Z22jun2014: Forecast, downloaded Jun 22 15:20 UTC

undef 1.26765e+30

dtype netcdf

xdef 1440 linear 74.16 0.24999

ydef 720 linear -90 0.24999

zdef 1 linear 1 1

tdef 1 linear 00Z23JUN2014 1mn

vars 2

u_velocity=>u_velocity  1  t,z,y,x  eastward_sea_water_velocity (m/s)

v_velocity=>v_velocity  1  t,z,y,x  northward_sea_water_velocity (m/s)

endvars

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

 

I want a new destination grid ; which would contain the area maximum values as points. Destination grid should contain maximum value from every 8 points in x-axis and y axis. For this, I have created below, CTL file named as  rtofs_glo_2ds_f024_daily_prog.ctl:

 

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

dset D:\WeatherGribFiles\2014\06\22\ <http://rtofs_glo_2ds_f024_daily_prog.nc> rtofs_glo_2ds_f024_daily_prog.nc

index  D:\WeatherGribFiles\2014\06\22\rtofs_glo_2ds_f024_daily_prog_DUMMY.nc 

title 2D Sfc Daily Prognostic 00Z22jun2014: Forecast, downloaded Jun 22 15:20 UTC 

undef 1.26765e+30 

dtype netcdf 

xdef 180 linear 74.16 2.0  

ydef 90 linear -90 2.0  

zdef 1 linear 1 1 

tdef 1 linear 00Z23JUN2014 1mn

options template 

vars 2 

u_velocity=>u_velocity  1  t,z,y,x  eastward_sea_water_velocity (m/s)  

v_velocity=>v_velocity  1  t,z,y,x  northward_sea_water_velocity (m/s)  

endvars

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

Below is the command I use to display the data from destination grid rtofs_glo_2ds_f024_daily_prog_DUMMY.nc defined in above CTL file. Below is the command set using.

 

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

reinit

sdfopen D:/WeatherGribFiles/2014/06/22/ <http://rtofs_glo_2ds_f024_daily_prog.nc> rtofs_glo_2ds_f024_daily_prog.nc

open D:/WeatherGribFiles/2014/06/22/rtofs_glo_2ds_f024_daily_prog2.ctl

set parea 0 11 0 8.5

set vpage 0 11 0 8.5

set lon -74.16 434

set lat -90 90

set cthick 6

set arrscl 0.10 

define val = mag(lterp(u_velocity.1*1.95,lat.2,amax),lterp(v_velocity.1*1.95,lat.2,amax))

d lterp(u_velocity.1*1.95,lat.2,amax);lterp(v_velocity.1*1.95,lat.2,amax);val

 

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

 

When I change the destination grid dimensions slightly  in rtofs_glo_2ds_f024_daily_prog.ctl file

 

xdef 135 linear 74.16 2.5  

ydef 68 linear -90 2.5  

 

and checks for the output, It varies at the same point i.e. if I look at certain point before changing and after changing grid dimensions, the result comes of different magnitude.

What I want is, When I increase or decrease the destination grid points in “rtofs_glo_2ds_f024_daily_prog.ctl”, and the maximum value should be at its place. 

 

How can I achieve this ????? 

 

Thanks for any guidance.

 

Thanks & Regards

Anil Kumar


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





 

-- 
Arlindo da Silva
 <mailto:dasilva at alum.mit.edu> dasilva at alum.mit.edu 





 

-- 
Arlindo da Silva
 <mailto:dasilva at alum.mit.edu> dasilva at alum.mit.edu 


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

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20140716/05668621/attachment-0001.html 


More information about the gradsusr mailing list