[ncl-talk] Binning multilevel MODIS data using bin_sum

AJILESH PP ajileshparolla at gmail.com
Wed May 4 04:19:17 MDT 2016


Thank you very much for the code. This one worked fine.

On Wed, 4 May 2016 at 01:11 Dennis Shea <shea at ucar.edu> wrote:

> [1] You should use print statements to discover the error. Then ...
> actually look at what is being printed out. Then see if your code is
> consistent with what is being printed; then carefully look at the function
> documentation. Look carefully at the content{ sizes, dimension ordering
> ....
>
> [2] Look at
>      x          = short2flt_hdf( f->$vNam$ )       <=== 3D  (20,406,270)
>      printVarSummary(x)
>
> [snip]
>
>     printVarSummary(GBIN(lev,:,:))           <=== 2D (406,270))
>
>     work = ndtooned(lon2d)                         <=== 1D  (406*270)
>     printVarSummary(work)
>
>     WORK = ndtooned(x)                             <=== 1D (20*406*270)
>     printVarSummary(WORK)
>
>     bin_sum(GBIN(lev,:,:),GKNT(lev,:,:),lon,lat \
>            ,ndtooned(lon2d),ndtooned(lat2d),ndtooned(x) )
>
> It should be
>
>     bin_sum(GBIN(lev,:,:),GKNT(lev,:,:),lon,lat \
>                   ,ndtooned(lon2d),ndtooned(lat2d),ndtooned(x(lev,:,:) )
>
> The function has gbin and gknt as 2-D    ===> gbin [*][*]
>
> 	procedure bin_sum (
> 		gbin [*][*] : numeric ,
> 		gknt [*][*] : integer ,
> 		glon    [*] : numeric ,
> 		glat    [*] : numeric ,
> 		zlon    [*] : numeric ,
> 		zlat    [*] : numeric ,
> 		z       [*] : numeric
> 	)
>
> zlon, zlat and z MUST be the same length.
>
> Also,  ..... the original code could be substantially improved. NOTE that
> the code has
> comments inserted next to each line. This helps debug!!!
>
>
>    do nf=0,nfil-1
>        print(nf+"   "+fili(nf))
>        f       = addfile(diri+fili(nf)+".he2", "r")        ; add virtual
> attribute
>        x       = short2flt_hdf( f->$vNam$ )           ; (level=20,
> latitude=270, longitude=406)
>        latx    = ndtooned(f->Latitude_mod07)     ; latx(406*270)  <==
> (latitude=270, longitude=406)
>        lonx    = ndtooned(f->Longitude_mod07)         ; lonx
> "               "            "
>
>      ; lonx(109620)
>        if (nf.eq.0) then
>            printVarSummary(x)
>            printMinMax(x, 1)
>            print("nlatx="+dimsizes(latx)+"  mlonx="+dimsizes(lonx))
>        end if
>
>      do lev=0,nlev-1
>         bin_sum(GBIN(lev,:,:),GKNT(lev,:,:),lon,lat,
> lonx,latx,ndtooned(x(lev,:,:)) )
>      end do
>     end do
>
> I attached a code .. I suggest you look at it ... *carefully***
>
>
>
>
> On Tue, May 3, 2016 at 7:15 AM, Alan Brammer <abrammer at albany.edu> wrote:
>
>> I’ve had weird issues with bin_sum() and looping over arrays in the past.
>>
>> My solution has usually been to pass a temporary variable to bin_sum()
>> then set your GBIN array to that temp variable.
>>
>> e.g.  unchanged lines omitted for brevity.
>>
>>  do nf=0,nfil-1
>>    do lev=0,nlev-1
>>
>> ….
>> tmp_var = GBIN(lev,:,:) ;; This could be defined outside of loop and
>> just reset to zero for each loop.
>> tmp_var = 0
>> tmp_ct = toint(tmp_var) ;; as above doesn’t need to be redefined each
>> loop just set to 0 each time.
>>
>> bin_sum(tmp_var, tmp_ct, ,lon,lat ,
>> ndtooned(lon2d),ndtooned(lat2d),ndtooned(x) )
>>
>> GBIN(lev,:,:) = tmp_var
>> GKNT(lev,:,:) = tmp_ct
>>>> end
>>
>>
>>
>>
>>
>> Alan
>>
>>
>>
>> ##############################
>> Alan Brammer,
>> Post-Doc Researcher
>>
>> Department of Atmospheric and Environmental Sciences,
>> University at Albany, State University of New York, Albany, NY, 12222
>> abrammer at albany.edu
>> ##############################
>>
>> On 3 May 2016, at 04:43, AJILESH PP <ajileshparolla at gmail.com> wrote:
>>
>> Hi all, I modified the loop, but still I'm getting same data values on
>> all 20 levels. Can anybody please tell me where I went wrong?
>>
>> On Sat, 23 Apr 2016 at 02:41 AJILESH PP <ajileshparolla at gmail.com> wrote:
>>
>>> Hi,
>>> Thank You for the prompt reply. Sorry for the mistake, Now loop is
>>> working output has 20 levels, but all the levels have the same data values
>>> (all levels are same).
>>>
>>> On Thu, 21 Apr 2016 at 20:56 Rick Brownrigg <brownrig at ucar.edu> wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm not totally sure, but I wonder if "level" in this line should be
>>>> "lev"?
>>>>
>>>>
>>>> bin_sum(GBIN(level,:,:),GKNT(level,:,:),lon,lat \
>>>>
>>>> In any case, a few strategic print() statements on your indexing
>>>> variables will show where/when thing go arwy.
>>>>
>>>> HTH...
>>>> Rick
>>>>
>>>>
>>>> On Thu, Apr 21, 2016 at 7:10 AM, AJILESH PP <ajileshparolla at gmail.com>
>>>> wrote:
>>>>
>>>>> Dear all
>>>>> I want to bin MODIS level 2 products for a period of time. I modified
>>>>> an example script given in ncl HDF examples and it is giving me only output
>>>>> of a single level, where the desired output is for 20 levels. I tried to
>>>>> add a level loop and level dimension also as shown in the script below.
>>>>> --------------------------------------
>>>>>   GBIN  = new ( (/nlev,nlat,mlon/), float )
>>>>>   GKNT  = new ( (/nlev,nlat,mlon/), integer )
>>>>>
>>>>> snip
>>>>>
>>>>>  do nf=0,nfil-1
>>>>>    do lev=0,nlev-1
>>>>>      print(nf+"   "+fili(nf))
>>>>>      f       = addfile(diri+fili(nf), "r")
>>>>>                                             ; read data
>>>>>      x          = short2flt_hdf( f->$vNam$ )
>>>>>      lat2d1     = f->Latitude
>>>>>      lon2d1     = f->Longitude
>>>>>      lat2d      = conform(x,lat2d1,(/1,2/))
>>>>>      lon2d      = conform(x,lon2d1,(/1,2/))
>>>>>      level        =
>>>>> (/1000,950,920,850,700,620,500,400,300,250,200,100,150,100,70,50,30,20,10,5/)
>>>>>      x!0          = "level"
>>>>>      x&level      = level
>>>>>      nx           = product(dimsizes(x))
>>>>>     bin_sum(GBIN(level,:,:),GKNT(level,:,:),lon,lat \
>>>>>            ,ndtooned(lon2d),ndtooned(lat2d),ndtooned(x) )
>>>>> printVarSummary(x)
>>>>> ---------------------------------------
>>>>> but it is giving this error:
>>>>> fatal:Subscript out of range, error in subscript #0
>>>>> fatal:An error occurred reading GBIN
>>>>>
>>>>> Can anybody help me to resolve this issue?
>>>>> Please find my script and data as follows
>>>>> Data:   MOD07_L2.A2012166.0*.hdf
>>>>> Script:  bin.ncl
>>>>>
>>>>> Any help would be appreciated
>>>>> Thank You!
>>>>>
>>>>> _______________________________________________
>>>>> 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/20160504/2ff7180d/attachment.html 


More information about the ncl-talk mailing list