[ncl-talk] grid_area_avg
Kunal Bali
kunal.bali9 at gmail.com
Wed Oct 25 01:07:22 MDT 2017
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.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/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>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20171025/b9ef01e9/attachment-0001.html>
More information about the ncl-talk
mailing list