[ncl-talk] grid_area_avg

Mary Haley haley at ucar.edu
Mon Oct 16 11:37:25 MDT 2017


Kunal,

You must make an effort to debug some of these problems on your own. The
error is telling you that something is wrong around line 34 and it is
telling you exactly what the problem is. Please try to fix this error.

If you continue to have problems after fixing this error, then I need to
ask you to provide the full script and data via ftp:

http://www.ncl.ucar.edu/ftp_files.shtml

However, make sure you debug any other new problems that come up, instead
of just emailing them to ncl-talk.  We have a page to help you understand
some of NCL's errors, and what causes them:

http://www.ncl.ucar.edu/Document/Language/error_messages.shtml

The particular error you're seeing can be found here:

http://www.ncl.ucar.edu/Document/Language/error_messages.shtml#NumSubRHS

As a side note, you are running a 3-year old version of NCL. I suggest that
you upgrade to NCL V6.4.0.

--Mary



On Mon, Oct 16, 2017 at 12:52 AM, Kunal Bali <kunal.bali9 at gmail.com> wrote:

> I simply include the code (which you mentioned) were I was taking the avg
> of the data as given below (please correct me if I did wrong)
>
>
> ;----------------------------------------------------------------------
> ; Main code
> ;----------------------------------------------------------------------
>   dir    = "./"
>   fnames = systemfunc("ls " + dir + "maiactaot*.nc")
> print(fnames)
>   a      = addfile(fnames,"r")
>   data   = short2flt(a->Optical_Depth_055_grid1km)
> printVarSummary (data)
> printMinMax (data, 0)
> print("-----")
>   nFill  = num(ismissing(data))
> print("nFill="+nFill)
> print("-----")
>
>   lat2d  = a->GridLat_grid1km
>   lon2d  = a->GridLon_grid1km
> printMinMax (lat2d, 0)
> printMinMax (lon2d, 0)
> print("-----")
>
> ;---grid points of interest
> ;---http://www.ncl.ucar.edu/Document/Functions/
> Contributed/getind_latlon2d.shtml
>  ; latv = (/22, 24.0, 24.0, 22.0, 22.0/)
>  ; lonv = (/76, 76.0, 78.0, 78.0, 76.0/)
>
>
>
>
>
>
>
>
>
> *latv = (/ 22, 24/)  lonv = (/ 76, 78 /)  nm   = getind_latlon2d (lat2d,
> lon2d, latv, lonv)  ilt1 = nm(0,0)  ; start lat index  ilt2 = nm(1,0)  ;
> start lon index  iln1 = nm(0,1)  ; end lat index  iln2 = nm(1,1)  ; end lon
> index  var_subset = var(ilt1:ilt2,iln1:iln2)  var_subset_avg =
> avg(var_subset)*
>
>   print(nm)
>   print("-----")
>
>   do k=0,dimsizes(latv)-1
>      n = nm(k,0)
>      m = nm(k,1)
>      print(lat2d(n,m)+"   "+lon2d(n,m))
>      print("     "+data(:,n,m))                   ; nearest grid point at
> all time steps
>      print("-----")
>   end do
>
>
>
>
>
> *But still not getting the desired output as a single square box mean
> value . It is showing the errors as*
>
> kunal at kunal-Vostro-1015:/media/Local Disk_/IIT_DELHI/2001/MAIACTAOT_TIME$
> ncl extract1.ncl
>  Copyright (C) 1995-2014 - All Rights Reserved
>  University Corporation for Atmospheric Research
>  NCAR Command Language Version 6.2.1
>  The use of this software is governed by a License Agreement.
>  See http://www.ncl.ucar.edu/ for more details.
>
>
> Variable: fnames
> Type: string
> Total Size: 4 bytes
>             1 values
> Number of Dimensions: 1
> Dimensions and sizes:    [1]
> Coordinates:
> (0)    ./maiactaot.h00v02.20010040635-20011550640.nc
>
> Variable: data
> Type: float
> Total Size: 40320000 bytes
>             10080000 values
> Number of Dimensions: 3
> Dimensions and sizes:    [time | 7] x [YDim_grid1km | 1200] x
> [XDim_grid1km | 1200]
> Coordinates:
>             time: [8862.583333333314..12486.66666666669]
> Number Of Attributes: 8
>   coordinates :    GridLat_grid1km, GridLon_grid1km
>   hdfeos_name :    Optical_Depth_055
>   projection :    Albers Conical Equal_Area
>   unit :    None
>   long_name :    AOT at 0.55 micron
>   _FillValue_original :    -28672
>   _FillValue :    -28672
>   valid_range :    ( -0.1,  5 )
> (0)    AOT at 0.55 micron: min=0   max=3.924
> (0)    -----
> (0)    nFill=6285271
> (0)    -----
> (0)    latitude: min=21.86737357453027   max=34.99855492029426
> (0)    longitude: min=64.23634233372005   max=79.4747290253718
> (0)    -----
> fatal:["Execute.c":7863]:Number of subscripts on right-hand-side do not
> match
>             number of dimensions of variable: (2), Subscripts used: (3)
>
> fatal:["Execute.c":8578]:Execute: Error occurred at or near line 34 in
> file extract1.ncl
>
> fatal:Variable (var_subset) is undefined
> fatal:["Execute.c":8578]:Execute: Error occurred at or near line 35 in
> file extract1.ncl
>
>
>
>
> Variable: nm
> Type: integer
> Total Size: 16 bytes
>             4 values
> Number of Dimensions: 2
> Dimensions and sizes:    [2] x [2]
> Coordinates:
> Number Of Attributes: 1
>   long_name :    indices closest to specified LAT/LON coordinate pairs
> (0,0)    1199
> (0,1)    792
> (1,0)    1199
> (1,1)    1041
> (0)    -----
> (0)    23.76603307545667   75.53995171540016
> (0)         0.179
> (1)         0.142
> (2)         -28672
> (3)         0.169
> (4)         -28672
> (5)         -28672
> (6)         -28672
> (0)    -----
> (0)    24.26559325846936   77.93996773594735
> (0)         -28672
> (1)         0.393
> (2)         -28672
> (3)         0.156
> (4)         0.313
> (5)         -28672
> (6)         -28672
> (0)    -----
>
>
>
>
>
>
>
>
>
> Kunal Bali
>
>
>
>
>
> On Sat, Oct 14, 2017 at 12:24 AM, Mary Haley <haley at ucar.edu> wrote:
>
>> Kunal,
>>
>> Please include the code where you are actually taking the average of your
>> data using the information returned from getind_latlon2d.
>>
>> It's important to note that getind_latlon2d simply returns the individual
>> index values that are closest to each of the lat/lon pairs that you gave
>> it. It doesn't work in such a way that you give it a lat/lon box and it
>> returns all the values in that box.
>>
>> That's what I was trying to illustrate with the wrf_gsn_10.ncl I
>> created.  I gave the function two corners of the box, and then using the
>> two pairs of index values I got back, I was able to get all the values
>> inside the box area of interest:
>>
>>   lats = (/ min_lat, max_lat /)
>>   lons = (/ min_lon, max_lon /)
>>   nm   = getind_latlon2d (lat2d, lon2d, lats, lons)
>>   ilt1 = nm(0,0)  ; start lat index
>>   ilt2 = nm(1,0)  ; start lon index
>>   iln1 = nm(0,1)  ; end lat index
>>   iln2 = nm(1,1)  ; end lon index
>>   var_subset = var(ilt1:ilt2,iln1:iln2)
>>   var_subset_avg = avg(var_subset)
>>
>> --Mary
>>
>>
>> On Thu, Oct 12, 2017 at 1:19 PM, Kunal Bali <kunal.bali9 at gmail.com>
>> wrote:
>>
>>> Dear Haley Ma'am,
>>>
>>> Thanks for providing the information and example.
>>> But if I follow the getind_latlon2d function as I did, then it seems
>>> like I followed the same procedure as given in the example
>>> http://www.ncl.ucar.edu/Document/Functions/Contributed/getin
>>> d_latlon2d.shtml
>>>
>>> But still I am not getting the mean of the grid box on every time
>>> step or am I reading incorrectly the result ?
>>>
>>>
>>> regards
>>> Kunal Bali
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Fri, Oct 13, 2017 at 12:11 AM, Mary Haley <haley at ucar.edu> wrote:
>>>
>>>> Kunal,
>>>>
>>>> I created an example for you, showing three ways you can subset a WRF
>>>> grid (since I already had a similar example).  It shows how to use the
>>>> getind_latlon2d function.
>>>>
>>>> You have to be careful with subsetting curvilinear data, because
>>>> specifying a lat/lon box to take an average over can mean two
>>>> different things. You will be able to see the difference when you look at
>>>> the graphic.
>>>>
>>>> See example wrf_gsn_10.ncl at:
>>>>
>>>> http://www.ncl.ucar.edu/Applications/wrfgsn.shtml#ex10
>>>>
>>>> --Mary
>>>>
>>>>
>>>>
>>>> On Wed, Oct 11, 2017 at 12:03 PM, Kunal Bali <kunal.bali9 at gmail.com>
>>>> wrote:
>>>>
>>>>> Dear NCL users,
>>>>>
>>>>> Single point coordinates values of 23.0 N and 77.0 E is extracted or
>>>>> print by using the script below
>>>>>
>>>>> ----------------------------------------------------------------------
>>>>> ; Main code
>>>>> ;-----------------------------------------------------------
>>>>> -----------
>>>>>   dir    = "./"
>>>>>   fnames = systemfunc("ls " + dir + "maiactaot*.nc")
>>>>> print(fnames)
>>>>>   a      = addfile(fnames,"r")
>>>>>   data   = short2flt(a->Optical_Depth_055_grid1km)
>>>>>   nFill  = num(ismissing(data))
>>>>>   lat2d  = a->GridLat_grid1km
>>>>>   lon2d  = a->GridLon_grid1km
>>>>>
>>>>> ;---grid points of interest
>>>>>   latv = (/23.0/)
>>>>>   lonv = (/77.0 /)
>>>>>
>>>>>   nm = getind_latlon2d (lat2d,lon2d, latv, lonv)
>>>>>
>>>>>   do k=0,dimsizes(latv)-1
>>>>>      n = nm(k,0)
>>>>>      m = nm(k,1)
>>>>>      print(lat2d(n,m)+"   "+lon2d(n,m))   ; grid point location
>>>>>      print("     "+data(:,n,m))                   ; nearest grid
>>>>> point at all time steps
>>>>>      print("-----")
>>>>>   end do
>>>>>
>>>>>
>>>>> NOW, I want to extract the square grid box of 100 km around the
>>>>> coordinates (23N,77E) such as
>>>>>    latv = (/22, 24.0, 24.0, 22.0, 22.0/)
>>>>>    lonv = (/76, 76.0, 78.0, 78.0, 76.0 /)
>>>>>
>>>>>
>>>>> after that I want to do the area mean of the grid box. So that I can
>>>>> get one single point value of that grid box.
>>>>> So when I replacing
>>>>>   latv = (/23.0/)
>>>>>   lonv = (/77.0/)
>>>>>
>>>>> with
>>>>>
>>>>>    latv = (/22, 24.0, 24.0, 22.0, 22.0/)
>>>>>    lonv = (/76, 76.0, 78.0, 78.0, 76.0 /)
>>>>>
>>>>> then It's not giving mean of the square grid box.
>>>>>
>>>>> It shows the something like that (given below), which is incorrect. So
>>>>> please let me know how can I get the square grid box mean and then extract
>>>>> as asciiwrite or print?
>>>>>
>>>>> (0)    23.76603307545667   75.53995171540016
>>>>> (0)         0.179
>>>>> (1)         0.142
>>>>> (2)         -28672
>>>>> (3)         0.169
>>>>> (4)         -28672
>>>>> (5)         -28672
>>>>> (6)         -28672
>>>>> (0)    -----
>>>>> (0)    24.00322458681621   75.99551564353467
>>>>> (0)         0.171
>>>>> (1)         0.16
>>>>> (2)         -28672
>>>>> (3)         0.17
>>>>> (4)         -28672
>>>>> (5)         -28672
>>>>> (6)         -28672
>>>>>
>>>>> etc..etc..
>>>>>
>>>>>
>>>>>
>>>>> regards
>>>>> Kunal Bali
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> ncl-talk mailing list
>>>>> ncl-talk at ucar.edu
>>>>> List instructions, subscriber options, unsubscribe:
>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>
>>>>>
>>>>
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20171016/d919334a/attachment.html>


More information about the ncl-talk mailing list