[ncl-talk] grid_area_avg

Kunal Bali kunal.bali9 at gmail.com
Mon Oct 16 00:52:42 MDT 2017


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/
>> getind_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
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20171016/dbce9a11/attachment.html>


More information about the ncl-talk mailing list