[ncl-talk] grid_area_avg

Kunal Bali kunal.bali9 at gmail.com
Wed Oct 25 04:59:40 MDT 2017


The given script is basically doing the same thing, It extracting the grid
element of the selected grid box and then averaging of it.

The next step I need to link the avg value with each time. That's what I am
looking for.

But Still, I need to confirm that am I doing the right process for getting
grid box mean value.



;----------------------------------------------------------------------
; 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 = (/ 13, 25/)     ; for extracting grid box data
  lonv = (/ 72, 85 /)
  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
  lat_subset = lat2d(ilt1:ilt2,iln1:iln2)
  lon_subset = lon2d(ilt1:ilt2,iln1:iln2)
  aot_subset := data
  aot_subset = aot_subset at _FillValue
  aot_subset(:,ilt1:ilt2,iln1:iln2) = data(:,ilt1:ilt2,iln1:iln2)



  printVarSummary(aot_subset)
  print(aot_subset)
  print("ilt1 = " + ilt1)
  print("ilt2 = " + ilt2)
  print("iln1 = " + iln1)
  print("iln2 = " + iln2)


  aot_subset_avg = avg(aot_subset)
  print(aot_subset_avg)
  print("-----")

  do k=0,dimsizes(latv)-1
     n = nm(k,0)
     m = nm(k,1)
     print(latv+"   "+lonv)
     print("     "+aot_subset_avg)     ; nearest grid point at all time
steps
     print("-----")
  end do



regards
Kunal Bali






On Wed, Oct 25, 2017 at 3:46 PM, Barry Lynn <barry.h.lynn at gmail.com> wrote:

> Kunal:
>
> Why don't you extract the grid elements you want and then use the NCL
> average function to find the mean of those grid points?  You can extract a
> grid of the size you want or just the points.
>
> Barry
>
> On Wed, Oct 25, 2017 at 10:07 AM, Kunal Bali <kunal.bali9 at gmail.com>
> wrote:
>
>> Thanks for the information. I did not include the time variable. So
>>
>> I changed aot_subset(ilt1:ilt2,iln1:iln2) = data(ilt1:ilt2,iln1:iln2) to
>> aot_subset(*:,*ilt1:ilt2,iln1:iln2) = data(*:,*ilt1:ilt2,iln1:iln2)
>>
>> AND it worked.
>>
>>
>> But from the given script, I am not getting the mean value of the grid
>> box. It producing the values of every grid separately. As given below
>>
>> (0)    22.17971308103524   69.17124237598317
>> (0)         -28672
>> (1)         0.208
>> (0)    -----
>> (0)    24.55800304046942   79.47472902537179
>> (0)         -28672
>> (1)         -28672
>> (0)    -----
>>
>>
>> I need to extract the data of square box and mean it. so that I can get
>> the values with every time steps.
>>
>>   latv = (/ 13, 25/)     ; for extracting grid box data
>>   lonv = (/ 72, 85 /)
>>
>> The script is
>>
>>
>> ;----------------------------------------------------------------------
>> ; 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 = (/ 13, 25/)     ; for extracting grid box data
>>   lonv = (/ 72, 85 /)
>>   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
>>   lat_subset = lat2d(ilt1:ilt2,iln1:iln2)
>>   lon_subset = lon2d(ilt1:ilt2,iln1:iln2)
>>   aot_subset := data
>>   aot_subset = aot_subset at _FillValue
>>   aot_subset(:,ilt1:ilt2,iln1:iln2) = data(:,ilt1:ilt2,iln1:iln2)
>>
>>
>>
>>   printVarSummary(aot_subset)
>>   print("ilt1 = " + ilt1)
>>   print("ilt2 = " + ilt2)
>>   print("iln1 = " + iln1)
>>   print("iln2 = " + iln2)
>>
>>  ; aot_avg = avg(data)
>>   aot_subset_avg = avg(data)
>>
>>   ;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
>>
>>
>>
>>
>>
>>
>> Kunal Bali
>>
>>
>>
>>
>>
>> On Wed, Oct 25, 2017 at 12:25 PM, Barry Lynn <barry.h.lynn at gmail.com>
>> wrote:
>>
>>> Kunal:
>>>
>>> The error message says that you have used three subscripts on a
>>> variables with only two dimensions.
>>>
>>> You need to fix this error for your script to proceed to the next step.
>>>
>>> Barry
>>>
>>> On Wed, Oct 25, 2017 at 8:59 AM, Kunal Bali <kunal.bali9 at gmail.com>
>>> wrote:
>>>
>>>> It also shows an error if I replaced := with = in 38 line of the given
>>>> script (attached earlier), even though variable is in 2D array.
>>>>
>>>> fatal:["Execute.c":7950]:Number of subscripts on right-hand-side do
>>>> not match
>>>>             number of dimensions of variable: (2), Subscripts used: (3)
>>>>
>>>> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 38 in
>>>> file extract1.ncl
>>>>
>>>>
>>>>
>>>> Kunal Bali
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Oct 24, 2017 at 4:46 PM, Helen Macintyre <
>>>> Helen.Macintyre at phe.gov.uk> wrote:
>>>>
>>>>> You are trying to delete a variable that has not been assigned.
>>>>>
>>>>>
>>>>>
>>>>> Using “:=” tries to delete aot_subset when it doesn’t exist yet.
>>>>>
>>>>>
>>>>>
>>>>> More info here:
>>>>>
>>>>> http://www.ncl.ucar.edu/Document/Language/varb_assign.shtml
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> *From:* ncl-talk [mailto:ncl-talk-bounces at ucar.edu] *On Behalf Of *Kunal
>>>>> Bali
>>>>> *Sent:* 24 October 2017 06:28
>>>>> *To:* ncl-talk at ucar.edu
>>>>> *Subject:* Re: [ncl-talk] grid_area_avg
>>>>>
>>>>>
>>>>>
>>>>> I am not able to sort out the query regarding
>>>>>
>>>>> fatal:Variable (aot_subset) is undefined
>>>>> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 38
>>>>> in file extract1.ncl
>>>>>
>>>>> I have attached my script. please let me know how to solve it (the
>>>>> file regarding this script is attached in the previous mail).
>>>>>
>>>>>
>>>>>
>>>>> sorry for the inconvenience*. *
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> regards
>>>>>
>>>>> Kunal Bali
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Sat, Oct 21, 2017 at 1:53 PM, Kunal Bali <kunal.bali9 at gmail.com>
>>>>> wrote:
>>>>>
>>>>> thanks for providing this information. I am positive that the given
>>>>> variable in the data is a 2D array and the error is coming on 38 line as I
>>>>> mentioned earlier.
>>>>>
>>>>> I am trying to debug this problem accordingly as you mentioned.
>>>>>
>>>>> However, I have attached the data (size =30mb, tried via ftp but
>>>>> facing some error while uploading) and the full script for extracting the
>>>>> grid box mean value.
>>>>>
>>>>>
>>>>>
>>>>> Thank You for all the support.
>>>>>
>>>>>>>>>>
>>>>> * maiactaot.h00v02.20010040635-20011550640.nc.bz2
>>>>> <https://drive.google.com/file/d/0B6MS-JLMHECwaVh3QVVHUU1Wazg/view?usp=drive_web>*
>>>>>
>>>>>>>>>>
>>>>>
>>>>> Kunal Bali
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Oct 20, 2017 at 9:14 PM, Mary Haley <haley at ucar.edu> wrote:
>>>>>
>>>>> Kunal,
>>>>>
>>>>>
>>>>>
>>>>> Multiple people have tried to help you, but you continue to post error
>>>>> messages without trying to debug them yourself. If you don't make an
>>>>> effort, people are likely to stop trying to help. You are including code
>>>>> snippets, but this is not always enough for us to help you debug the
>>>>> problem. You need to include full scripts, output from
>>>>> print/printVarSummary commands, AND all error messages.
>>>>>
>>>>>
>>>>>
>>>>> For example, you originally included this code:
>>>>>
>>>>>
>>>>>
>>>>>   latv = (/ 18, 24/)     ; for extracting grid box data
>>>>>
>>>>>   lonv = (/ 74, 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
>>>>>
>>>>>   lat_subset  := lat2d(ilt1:ilt2,iln1:iln2)
>>>>>
>>>>>   lon_subset := lon2d(ilt1:ilt2,iln1:iln2)
>>>>>
>>>>>   aot_subset := data
>>>>>
>>>>>   aot_subset(ilt1:ilt2,iln1:iln2) := data(ilt1:ilt2, iln1:iln2)
>>>>>
>>>>>
>>>>>
>>>>>   ;printVarSummary(aot_subset)
>>>>>
>>>>>   aot_avg = avg(data)
>>>>>
>>>>>   aot_subset_avg = avg(aot_subset)
>>>>>
>>>>>
>>>>>
>>>>> and then said that you were getting an error about aot_subset being
>>>>> undefined. From the perspective of somebody who is just looking at the code
>>>>> snippet above and doesn't have access to your full script, we are going to
>>>>> wonder about this line:
>>>>>
>>>>>
>>>>>
>>>>>   aot_subset := data
>>>>>
>>>>>
>>>>>
>>>>> Since this appears to be the first time aot_subset is set, our next
>>>>> question is going to be "is data defined"? In the code snippet you
>>>>> included, we don't see where "data" is defined, so we have no way to help.
>>>>> This is where a "printVarSummary(data)" line would have helped.
>>>>>
>>>>>
>>>>>
>>>>> In your last email, in which you did include some information about
>>>>> "data", things are still not making any sense. You said you were subsetting
>>>>> data as a 2D array with:
>>>>>
>>>>>
>>>>>
>>>>> aot_subset(ilt1:ilt2,iln1:iln2) = data(ilt1:ilt2,iln1:iln2)
>>>>>
>>>>>
>>>>>
>>>>> which you said was causing this error:
>>>>>
>>>>>
>>>>>
>>>>> fatal:["Execute.c":7950]:Number of subscripts on right-hand-side do
>>>>> not match
>>>>>
>>>>>             number of dimensions of variable: (2), Subscripts used: (3)
>>>>>
>>>>>
>>>>>
>>>>> This error doesn't seem possible, because it's saying that you are
>>>>> using 3 subscripts, but the line only has 2 subscripts being used in both
>>>>> arrays. Are you positive that this error is coming from this line?
>>>>>
>>>>>
>>>>>
>>>>> I have to ask you again to please include your *full script* next
>>>>> time and *all error messages* and *all printed output*, so people can
>>>>> see exactly what line numbers in your script the errors correspond with and
>>>>> what your data looks like. But don't do this until you have shown that you
>>>>> tried to debug the problem yourself. Use "print" and "printVarSummary"
>>>>> *before* the locations where the error messages are occurring, so you can
>>>>> see what might be causing the error.
>>>>>
>>>>>
>>>>>
>>>>> For example, if the error says
>>>>>
>>>>>
>>>>>
>>>>>  number of dimensions of variable: (2), Subscripts used: (3)
>>>>>
>>>>>
>>>>>
>>>>> then this means you are subscripting a variable as if it were a 2D
>>>>> array, when it is actually a 3D array. Add *printVarSummary*
>>>>> statements on ALL subscripted variables that occur in that line, so you can
>>>>> be sure you are doing things correctly.  For example, if the error occurs
>>>>> on this line:
>>>>>
>>>>>
>>>>>
>>>>>   aot_subset(ilt1:ilt2,iln1:iln2) := data(ilt1:ilt2, iln1:iln2)
>>>>>
>>>>>
>>>>>
>>>>> then do this:
>>>>>
>>>>>
>>>>>   printVarSummary(data)
>>>>>
>>>>>   printVarSummary(aot_subset)
>>>>>
>>>>>   aot_subset(ilt1:ilt2,iln1:iln2) := data(ilt1:ilt2, iln1:iln2)
>>>>>
>>>>>
>>>>>
>>>>> It may also help to print the il* variables:
>>>>>
>>>>>
>>>>>
>>>>>   printVarSummary(data)
>>>>>
>>>>>   printVarSummary(aot_subset)
>>>>>
>>>>>   print("ilt1 = " + ilt1)
>>>>>
>>>>>   print("ilt2 = " + ilt2)
>>>>>
>>>>>   print("iln1 = " + iln1)
>>>>>
>>>>>   print("iln2 = " + iln2)
>>>>>
>>>>>   aot_subset(ilt1:ilt2,iln1:iln2) := data(ilt1:ilt2, iln1:iln2)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Moving forward, you *must* show that you are making some effort to
>>>>> debug your problem.
>>>>>
>>>>>
>>>>>
>>>>> Thank you for your consideration.
>>>>>
>>>>>
>>>>>
>>>>> --Mary
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Oct 18, 2017 at 12:23 AM, Kunal Bali <kunal.bali9 at gmail.com>
>>>>> wrote:
>>>>>
>>>>> printVarSummary(aot_subset), shows that aot_subset is undefined, which
>>>>> I am unable to fix this problem yet.
>>>>>
>>>>> If I used aot_subset(ilt1:ilt2,iln1:iln2) *=*
>>>>> data(ilt1:ilt2,iln1:iln2) *instead of *aot_subset(ilt1:ilt2,iln1:iln2)
>>>>> *:=* data(ilt1:ilt2,iln1:iln2)
>>>>>
>>>>>
>>>>> then the error appeared as
>>>>>
>>>>>
>>>>> *fatal:["Execute.c":7950]:Number of subscripts on right-hand-side do
>>>>> not match             number of dimensions of variable: (2), Subscripts
>>>>> used: (3)*
>>>>>
>>>>> basically, the data summary is
>>>>>
>>>>> Variable: fnames
>>>>> Type: string
>>>>> Total Size: 8 bytes
>>>>>             1 values
>>>>> Number of Dimensions: 1
>>>>> Dimensions and sizes:    [1]
>>>>> Coordinates:
>>>>> (0)    ./maiactaotE.h00v03.20000550525-20003660700.nc
>>>>>
>>>>> Variable: data
>>>>> Type: float
>>>>> Total Size: 2545920000 <(254)%20592-0000> bytes
>>>>>             636480000 values
>>>>> Number of Dimensions: 3
>>>>> Dimensions and sizes:    *[time | 442] x [YDim_grid1km | 1200] x
>>>>> [XDim_grid1km | 1200]*
>>>>> Coordinates:
>>>>>             time: [1301.416666666686..8767]
>>>>> 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)    latitude (degrees_north) : min=11.2940312768897
>>>>> max=24.54921980985786
>>>>> (0)    longitude (degrees_east) : min=68.08003670367275
>>>>> max=81.63171349927691
>>>>>
>>>>> *fatal:["Execute.c":7776]:aot_subset is undefined, can not subscript
>>>>> an undefined variable fatal:["Execute.c":8640]:Execute: Error occurred at
>>>>> or near line 38 in file test_extract.ncl*
>>>>>
>>>>> *38 line is *
>>>>> *aot_subset(ilt1:ilt2,iln1:iln2) = data(ilt1:ilt2,iln1:iln2)*
>>>>>
>>>>> *fatal:Variable (aot_subset) is undefined*
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> regards
>>>>>
>>>>> Kunal Bali
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Oct 17, 2017 at 3:05 PM, Guido Cioni <guidocioni at gmail.com>
>>>>> wrote:
>>>>>
>>>>> Why did you comment this line ?
>>>>>
>>>>>
>>>>>
>>>>>   ;printVarSummary(aot_subset)
>>>>>
>>>>>
>>>>>
>>>>> That would have helped you in debugging the error on your own.
>>>>>
>>>>>
>>>>>
>>>>> You are using the re-assignment operator ":=". This means that every
>>>>> time you make an assignment the variable is created again. Thus, you cannot
>>>>> make this assignment
>>>>>
>>>>>
>>>>>
>>>>>  * aot_subset(ilt1:ilt2,iln1:iln2) := data(ilt1:ilt2, iln1:iln2)*
>>>>>
>>>>>
>>>>>
>>>>> as NCL has no way to know the shape of aot_subset beforehand.
>>>>>
>>>>>
>>>>>
>>>>> The following should be used instead (notice the assignment with "="
>>>>> in the second line).
>>>>>
>>>>>
>>>>>
>>>>>   aot_subset := data
>>>>>
>>>>>   aot_subset = aot_subset at _FillValue
>>>>>   aot_subset(ilt1:ilt2,iln1:iln2) *=* data(ilt1:ilt2, iln1:iln2)
>>>>>
>>>>>
>>>>>
>>>>> Notice that this will (1) create an array which is shaped like data
>>>>> (2) fill it with fill values as you only want to compute the average over
>>>>> the subset (3) populate the array only in the lat-lon box provided. However
>>>>> I don't see why you would want to use such a complicated syntax when the
>>>>> following code would produce the same result
>>>>>
>>>>>
>>>>>
>>>>> aot_subset_avg=avg(data(ilt1:ilt2, iln1:iln2))
>>>>>
>>>>>
>>>>>
>>>>> If you have the right coordinate attributes you can even jump the
>>>>> first 7 lines and do
>>>>>
>>>>>
>>>>>
>>>>> aot_subset_avg=avg(data({18:24},{74:78})
>>>>>
>>>>>
>>>>>
>>>>> but I don't know your data.
>>>>>
>>>>>
>>>>>
>>>>> As it was already suggested by Mary and others, PLEASE take time to
>>>>> debug the errors on your own.
>>>>>
>>>>>
>>>>>
>>>>> Regards,
>>>>>
>>>>>
>>>>>
>>>>> On 17. Oct 2017, at 11:25, Kunal Bali <kunal.bali9 at gmail.com> wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> I did the following changes but still getting an error of *
>>>>> aot_subset* which is undefined.
>>>>>
>>>>> please let me know that how to fix or defined the *aot_subset *this
>>>>> problem.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>   latv = (/ 18, 24/)     ; for extracting grid box data
>>>>>   lonv = (/ 74, 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
>>>>>   lat_subset  := lat2d(ilt1:ilt2,iln1:iln2)
>>>>>   lon_subset := lon2d(ilt1:ilt2,iln1:iln2)
>>>>>   aot_subset := data
>>>>>  * aot_subset(ilt1:ilt2,iln1:iln2) := data(ilt1:ilt2, iln1:iln2)*
>>>>>
>>>>>   ;printVarSummary(aot_subset)
>>>>>   aot_avg = avg(data)
>>>>>   aot_subset_avg = avg(*aot_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
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> regards
>>>>>
>>>>> Kunal Bali
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Oct 17, 2017 at 12:41 PM, Kunal Bali <kunal.bali9 at gmail.com>
>>>>> wrote:
>>>>>
>>>>> I have sent the ncl script and data to the incoming dir with the given
>>>>> names as
>>>>>
>>>>> data = maiactaotE.h00v03.20003660525-20003660700.nc.bz2
>>>>>
>>>>> ncl_script = extract_iiserb.ncl
>>>>>
>>>>>
>>>>>
>>>>> I am not able to define the var_subset in the given script.
>>>>>
>>>>> please let me know if you have received the data and script?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Kunal Bali
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Oct 16, 2017 at 11:07 PM, Mary Haley <haley at ucar.edu> wrote:
>>>>>
>>>>> 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.sht
>>>>> ml#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/g
>>>>> etind_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
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> ncl-talk mailing list
>>>>> ncl-talk at ucar.edu
>>>>> List instructions, subscriber options, unsubscribe:
>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Guido Cioni
>>>>>
>>>>> http://guidocioni.altervista.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> ncl-talk mailing list
>>>>> ncl-talk at ucar.edu
>>>>> List instructions, subscriber options, unsubscribe:
>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ************************************************************
>>>>> **************
>>>>> The information contained in the EMail and any attachments is
>>>>> confidential and intended solely and for the attention and use of the named
>>>>> addressee(s). It may not be disclosed to any other person without the
>>>>> express authority of Public Health England, or the intended recipient, or
>>>>> both. If you are not the intended recipient, you must not disclose, copy,
>>>>> distribute or retain this message or any part of it. This footnote also
>>>>> confirms that this EMail has been swept for computer viruses by
>>>>> Symantec.Cloud, but please re-sweep any attachments before opening or
>>>>> saving. http://www.gov.uk/PHE
>>>>> ************************************************************
>>>>> **************
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> ncl-talk mailing list
>>>> ncl-talk at ucar.edu
>>>> List instructions, subscriber options, unsubscribe:
>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>
>>>>
>>>
>>>
>>> --
>>> Barry H. Lynn, Ph.D
>>> Senior Lecturer,
>>> The Institute of the Earth Science,
>>> The Hebrew University of Jerusalem,
>>> Givat Ram, Jerusalem 91904, Israel
>>> Tel: 972 547 231 170
>>> Fax: (972)-25662581
>>>
>>> C.E.O, Weather It Is, LTD
>>> Weather and Climate Focus
>>> http://weather-it-is.com
>>> Jerusalem, Israel
>>> Local: 02 930 9525
>>> Cell: 054 7 231 170
>>> Int-IS: x972 2 930 9525
>>> US 914 432 3108 <091443%2023108>
>>>
>>
>>
>
>
> --
> Barry H. Lynn, Ph.D
> Senior Lecturer,
> The Institute of the Earth Science,
> The Hebrew University of Jerusalem,
> Givat Ram, Jerusalem 91904, Israel
> Tel: 972 547 231 170
> Fax: (972)-25662581
>
> C.E.O, Weather It Is, LTD
> Weather and Climate Focus
> http://weather-it-is.com
> Jerusalem, Israel
> Local: 02 930 9525
> Cell: 054 7 231 170
> Int-IS: x972 2 930 9525
> US 914 432 3108 <091443%2023108>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20171025/0e28c7c2/attachment.html>


More information about the ncl-talk mailing list