[ncl-talk] Wondering why I am getting this dimensions error

Rashed Mahmood rashidcomsis at gmail.com
Wed Nov 27 12:51:42 MST 2019


Hi Barry,
If you are doing this:

sum_q = 0

sum_q(0,0) = 1 ; just so I don't divide by 0!
sum_q :=  where(qs(k,:,:).ge.0.1,sum_q+1,sum_q)

Your "sum_q" variable would *always be a 2d array of 2s and 1s.* You can
check this by adding: printMinMax(sum_q,0).



On Wed, Nov 27, 2019 at 11:37 AM Barry Lynn <barry.h.lynn at gmail.com> wrote:

> Hi Rashed:
>
> I have a two dimensional array.  It is all zeroes.
>
> I set it equal to a "where" statement, where I add + 1 in every grid point
> where the "where" condition is satisfied.
>
> The 2d array now has 0s and 1s.  If I were to use the where statement
> again, i.e., for another k level, without setting the 2d array to 0, first,
> then it would now have 0s, 1, and 2s.
>
> I thought that I could do the addition and get a 1 D sum, by setting a 1 d
> array = to the where statement.  That's not possible.
>
> I have to sum the 2d array to get a single 1 d array....
>
> I hope that clears things up. If not, I can answer you off line.
>
> Barry
>
> On Wed, Nov 27, 2019 at 9:31 PM Rashed Mahmood <rashidcomsis at gmail.com>
> wrote:
>
>> Hi Barry,
>> Obviously, you know what you are doing. However, I still can't get it.
>> What do you mean by "it should become an array of just 0s and 1s" and most
>> importantly how could it become an array of 0's and 1s?
>> Anyway, you can ignore this message, if nothing more to discuss.
>>
>> On Wed, Nov 27, 2019 at 11:20 AM Barry Lynn <barry.h.lynn at gmail.com>
>> wrote:
>>
>>> Hi:
>>>
>>> Normally, it would be a sum of 2s and 1s, but because I am only doing
>>> the sum once (for each k), it should becomes an array of  just 0's and
>>> 1s.
>>>
>>> Originally, I thought if I set a 1 D array equal to the where statement,
>>> it would sum the 2d array.  To do that, I had to actually sum it (add_q).
>>>
>>> Barry
>>>
>>> On Wed, Nov 27, 2019 at 8:58 PM Rashed Mahmood <rashidcomsis at gmail.com>
>>> wrote:
>>>
>>>> Sorry for chipping in here, and may be I am wrong but I do not follow
>>>> the logic:
>>>>
>>>> If you do: sum_q :=  where(qs(k,:,:).ge.0.1,sum_q+1,sum_q)
>>>>
>>>> The variable "sum_q" would be a 2d array containing *2s* and *1s*. Do
>>>> you want a sum of 2s and 1s or you want a sum of qs(k,:,:) where it is
>>>> greater than 0.1?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Wed, Nov 27, 2019 at 10:50 AM Barry Lynn via ncl-talk <
>>>> ncl-talk at ucar.edu> wrote:
>>>>
>>>>> Hi:
>>>>>
>>>>> The problem with the previous suggestion was that the sum_q became a 2
>>>>> dimensional variable..  I needed it to be a 1D variables. I found this out
>>>>> by using the "function" printVarSummary
>>>>>
>>>>> Here is the correct solution for my needs, based on the very helpful
>>>>> comments up to now.
>>>>>
>>>>> Thanks
>>>>>
>>>>> (sum_q was defined as a 2d variable -- note: sum_q is not really a
>>>>> sum, as used here, but defined as 1 whereever qs > 0.1).
>>>>>
>>>>>        sum_q = 0
>>>>>
>>>>>        sum_q(0,0) = 1 ; just so I don't divide by 0!
>>>>>
>>>>>        sum_q =  where(qs(k,:,:).ge.0.1,sum_q+1,sum_q)
>>>>>
>>>>>        add_q = sum(sum_q); a 1d variable
>>>>>
>>>>>  ;      printVarSummary(qs_1(k))
>>>>>
>>>>>   ;     printVarSummary(sum_q)
>>>>>
>>>>>   ;     printVarSummary(add_q)
>>>>>
>>>>>        qs_1(k)  = sum(qs(k,:,:))/add_q+qs_1(k)
>>>>>
>>>>> On Wed, Nov 27, 2019 at 8:18 PM Dennis Shea <shea at ucar.edu> wrote:
>>>>>
>>>>>> re:   :=
>>>>>> Yes.
>>>>>>
>>>>>> On Wed, Nov 27, 2019 at 10:49 AM Barry Lynn via ncl-talk <
>>>>>> ncl-talk at ucar.edu> wrote:
>>>>>>
>>>>>>> Hi Dave:
>>>>>>>
>>>>>>> Thank you for your suggestions.
>>>>>>>
>>>>>>> I actually need to sum_q for all elements of the remaining (:,:) 2d
>>>>>>> array to obtain a single number.
>>>>>>>
>>>>>>> I am dividing one number by it.
>>>>>>>
>>>>>>> I assume that it is okay to put the := and that I will get the sum
>>>>>>> over all 2d elements?
>>>>>>>
>>>>>>> On Wed, Nov 27, 2019 at 7:40 PM Dave Allured - NOAA Affiliate <
>>>>>>> dave.allured at noaa.gov> wrote:
>>>>>>>
>>>>>>>> "sum_q = 1." defines this variable as scalar.  Then the where
>>>>>>>> statement attempts to write a 2-D array onto a scalar.  The assignment
>>>>>>>> statement is not allowed to change dimensions.
>>>>>>>>
>>>>>>>> One way to fix this would be to use the reassignment operator ":=",
>>>>>>>> which IS allowed to change dimensions on assignment.
>>>>>>>>
>>>>>>>> Another way to fix this would be to define sum_q as a 2-D array
>>>>>>>> before the start of the loop.  I suspect that is what you really intended.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Nov 27, 2019 at 10:22 AM Barry Lynn via ncl-talk <
>>>>>>>> ncl-talk at ucar.edu> wrote:
>>>>>>>>
>>>>>>>>> Hi:
>>>>>>>>>
>>>>>>>>> I have some simple code.
>>>>>>>>>
>>>>>>>>>       do k = 0,dims3d(0)-1
>>>>>>>>>
>>>>>>>>>        qs(k,:,:) = where(qs(k,:,:).lt.0.1,q_null(k,:,:),qs(k,:,:))
>>>>>>>>>
>>>>>>>>>        sum_q = 1.
>>>>>>>>>
>>>>>>>>>        sum_q =  where(qs(k,:,:).ge.0.1,sum_q+1,sum_q)
>>>>>>>>>
>>>>>>>>>        qs_1(k) = sum(qs(k,:,:))/sum_q+qs_1(k)
>>>>>>>>>
>>>>>>>>>       end do
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Why can't I do the "where" sum?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> fatal:Number of dimensions on right hand side do not match number
>>>>>>>>> of dimension in left hand side
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Barry H. Lynn, Ph.D
>>>>>>>>> Senior Associate Scientist, 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
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Barry H. Lynn, Ph.D
>>>>>>> Senior Associate Scientist, 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
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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 Associate Scientist, 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
>>>>>
>>>>> _______________________________________________
>>>>> 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 Associate Scientist, 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
>>>
>>>
>
> --
> Barry H. Lynn, Ph.D
> Senior Associate Scientist, 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20191127/55b577d1/attachment.html>


More information about the ncl-talk mailing list