[ncl-talk] 3 dimensions to 2 dimensions

Rick Brownrigg brownrig at ucar.edu
Tue Apr 30 21:15:49 MDT 2019

```Well, there are still two problems with that innermost nested loop:

i)  What is the value of the 1st (zero-th) index value into TRMM on the
first iteration of that loop?
do nt=0,ntim-1
Rain(nl,ml) = TRMM(nt-1,nl,ml)  ; Subscript out of range, error in
subscript #0

ii) again, this loop is overwriting the value of Rain(nl,ml) repeatedly,
for "ntim" times, only to end up with Rain(nl,ml) containing the value
TRMM(ntim-1,nl,ml) by the time the innermost loop exits. What is it you
really intend here -- a sum over time, or an average?

I really don't know at all about the second set of errors from copy_VarMeta
-- it seems like some dimensionality requirement between copy_from and
copy_to is getting violated, but I don't have the full picture. See the
docs for discussion on requirements on the "leftmost dimensions":

http://ncl.ucar.edu/Document/Functions/Contributed/copy_VarMeta.shtml

Perhaps get that inner loop correct and the rest may sort itself out....

Rick

On Tue, Apr 30, 2019 at 8:42 PM Md. Jalal Uddin <dmjalal90 at gmail.com> wrote:

> Hi Rick,
> Now, I am getting the following errors (Highlight in red color).
>
>   time =f->time
>   lat =f->latitude
>   lon =f->longitude
>   ntim = dimsizes(time)
>   nlat = dimsizes(lat)
>   nlon = dimsizes(lon)
>   TRMM = f->pcp(:,{0:30},{75:100})        ;TRMM(time, latitude, longitude)
>
>   Rain =new((/nlat,nlon/),"float")
>
>     do nl=0,nlat-1
>      do ml=0,nlon-1
> do nt=0,ntim-1
> Rain(nl,ml) = TRMM(nt-1,nl,ml)  ; Subscript out of range, error in
> subscript #0
> end do
> end do
>     end do
>   copy_VarMeta(TRMM(0,:,:),Rain)    ; fatal:Coordinate variables must be
> the same dimension as their dimension    fatal:No coordinate variable
> exists for dimension (longitude) in variable (var_to)
>
> Variable: TRMM
> Type: float
> Total Size: 18720000 bytes
>             4680000 values
> Number of Dimensions: 3
> Dimensions and sizes:   [time | 390] x [latitude | 120] x [longitude | 100]
> Coordinates:
>             time: [   0..119208]
>             latitude: [0.125..29.875]
>             longitude: [75.125..99.875]
> Number Of Attributes: 7
>   long_name :   precipitation (mm/hr)
>   _FillValue :  -9999.9
>   missing_value :       -9999.9
>
>
>
>
>
> On Tue, Apr 30, 2019 at 8:48 PM Rick Brownrigg <brownrig at ucar.edu> wrote:
>
>> HI,
>>
>> It looks like there may be several problems going here:
>>
>> i) I speculate you mean something more like this:
>>   time =f->time
>>   lat =f->latitude
>>   lon =f->longitude
>>   ntim = dimsizes(time)
>>   nlat = dimsizes(lat)
>>   nlon = dimsizes(lon)
>>
>> ii) I'm not sure the intent here:
>>
>>    Rain(nl,ml) = TRMM(nt,nl,ml)
>>
>> Each time through the inner loop, it will (re)assign the one by one "nt"
>> values of TRMM to the same element of Rain(nl, ml), exiting the loop with
>> it set to the "nt-1"th value. Its equivalent to foregoing the entire inner
>> loop and just saying Rain(nl,ml) = TRMM(nt-1,nl,ml)
>>
>> Hope that helps,
>> Rick
>>
>>
>>
>> On Tue, Apr 30, 2019 at 4:00 AM Md. Jalal Uddin <dmjalal90 at gmail.com>
>> wrote:
>>
>>> Hi all,
>>>
>>> I have tried to take all rainfall data  for each latitude and longitude
>>> point and made 2 dimensions from 3 dimensions. I am getting the following
>>> errors.
>>> fatal:_NclBuildArray: each element of a literal array must have the same
>>> dimension sizes, at least one item doesn't
>>>
>>> The main code:
>>>
>>>   ntim =f->time
>>>   nlat =f->latitude
>>>   nlon =f->longitude
>>>   TRMM = f->pcp(:,{0:30},{75:100})        ;TRMM(time 390, latitude 120,
>>> longitude 100)
>>>
>>>   Rain =new((/nlat,nlon/),"float")
>>>
>>>     do nl=0,nlat-1
>>>      do ml=0,nlon-1
>>> do nt=0,ntim-1
>>> Rain(nl,ml) = TRMM(nt,nl,ml)
>>> end do
>>> end do
>>>     end do
>>>
>>> Could you help me to solve the problem, please?
>>>
>>> Best Regards,
>>> Jalal
>>> --
>>> *Md. Jalal Uddin*
>>> MSc in Applied Meteorology (English Language)
>>> Nanjing University of Information, Science and Technology, China
>>> B.Sc. in Disaster Management (Hons.)
>>> Patuakhali Science and Technology University, Bangladesh.
>>> Cell: +8613260859092, +8801792052662
>>> Web: www.dmjalal90.weebly.com
>>> Skype: dmjalal90
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>
>
> --
> *Md. Jalal Uddin*
> MSc in Applied Meteorology (English Language)
> Nanjing University of Information, Science and Technology, China
> B.Sc. in Disaster Management (Hons.)
> Patuakhali Science and Technology University, Bangladesh.
> Cell: +8613260859092, +8801792052662
> Web: www.dmjalal90.weebly.com