<div dir="ltr">Hi Rick,<div><br></div><div>Yes, it indeed makes much more sense to post the questions to the group.</div><div><br></div><div>My neglect; those data are numerical values, not text strings. I used tofloat() and the wind_stats worked perfectly.</div><div><br></div><div>Many thanks!</div><div><br></div><div>Best,<br><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><font face="arial, helvetica, sans-serif">Li-Hao</font><br></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 8, 2021 at 2:32 AM Rick Brownrigg <<a href="mailto:brownrig@ucar.edu">brownrig@ucar.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I don't mind, but it really is best to post to the group, as there are many more eyes/expertise that can potentially provide an answer. I mistakenly did not cc the group in my original reply, and thus Dennis spent time working on an answer because he hadn't seen mine.</div><div><br></div><div>To your specific question, I speculate that wspd and wdir are string variables. You might try something like:</div><div><br></div><div>   wspd = string2float(str_get_field(data,1,delim))</div><div>   wdir = string2float(str_get_field(data,2,delim))</div><div><br></div><div>or stringtodouble() if you think that is warranted for your data.</div><div><br></div><div>Hope that helps...</div><div>Rick</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 7, 2021 at 11:57 AM Li-Hao Young <<a href="mailto:lhy@umich.edu" target="_blank">lhy@umich.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr">Hi Rick,<br></div></div></div><div class="gmail_quote">
<br>
I hope you don’t mind that I’m taking the liberty to ask a follow-up question.<br>
<br>
I was able to successfully run the Example codes of wind_stats, and managed to read my wind speed and wind direction data (i.e., two columns in csv file) into NCL, using the following codes:<br>
<br>
diri = "./“<br>
fili = "2020Aug2021Apr.csv"<br>
delim  = ","<br>
data   = asciiread(diri+fili, -1, "string”)<br>
wspd = str_get_field(data,1,delim)<br>
wdir = str_get_field(data,2,delim)<br>
<br>
Using print(), I was able to see my data are correctly stored in “wspd” and “wdir".<br>
However, I could not figure out how to get the wind_stats to work on my data, as did the Example codes.</div><div class="gmail_quote">The "x := wind_stats(wspd, wdir, 0, False)" does not work here, and showed another error message:</div><div class="gmail_quote"><br></div><div class="gmail_quote">fatal: Argument type mismatch on argument (0) of (wind_stats) can not coerce</div><div class="gmail_quote">fatal: ["Execute.c":8635]<br>
<br>
Your assistance is much appreciated.<br>
<br>
Best,<br>
Li-Hao  <br>
<br><br>
> <br>
> Hi Rick,<br>
> <br>
> Thanks for your prompt response.<br>
> <br>
> Your approach did solve the problem. Awesome, finally…:-)<br>
> <br>
> Best,<br>
> Li-Hao        <br>
> <br>
>> On Jun 7, 2021, at 22:35, Rick Brownrigg <<a href="mailto:brownrig@ucar.edu" target="_blank">brownrig@ucar.edu</a>> wrote:<br>
>> <br>
>> Hi, <br>
>> <br>
>> Yes, I see the same behavior too, and it is a bug. NCL requires functions/procedures to be defined before they are referenced, and in the file $NCLROOT/lib/ncarg/nclscripts/csm/contributed.ncl, that function "wind_stats" references "dim_avg_n_Wrap", which is not defined until later in the file. <br>
>> A solution that I verified works is to move the definition of "wind_stats" to the end of the contributed.ncl file. Kinda heavy handed, but it does solve the problem for your particular script.<br>
>> <br>
>> Hope that helps...<br>
>> Rick<br>
>> <br>
>> <br>
>> On Mon, Jun 7, 2021 at 7:39 AM Li-Hao Young via ncl-talk <<a href="mailto:ncl-talk@mailman.ucar.edu" target="_blank">ncl-talk@mailman.ucar.edu</a>> wrote:<br>
>> Hi All at NCL-talk:<br>
>> <br>
>> My research requires me to obtain the standard deviation of wind direction. And this has led me to NCL's wind_stats function. Therefore, I have installed NCL 6.6.2 on my Mac Mojave (which took me many many hours...). However, while running the Example 1 codes of wind_stats from <a href="https://www.ncl.ucar.edu/Document/Functions/Contributed/wind_stats.shtml" rel="noreferrer" target="_blank">https://www.ncl.ucar.edu/Document/Functions/Contributed/wind_stats.shtml</a>, I was stopped by a fatal error message and could not continue on with that example. The example codes are given at the bottom; the error occurred while executing "x := wind_stats(wspd, wdir, 0, False)" as follow:<br>
>> <br>
>> ncl 6>    x    := wind_stats(wspd, wdir, 0, False)  ; variable of type 'list'<br>
>> fatal:Undefined identifier: (dim_avg_n_Wrap) is undefined, can't continue<br>
>> fatal:["Execute.c":8637]:Execute: Error occurred at or near line 1442 in file /usr/local/ncl-6.6.2/lib/ncarg/nclscripts/csm/contributed.ncl<br>
>> <br>
>> fatal:["Execute.c":8635]:Execute: Error occurred at or near line 6<br>
>> <br>
>> I have tried the Getting Started, documentation, archieves, etc., but could not resolve the problem as I have no experiences with NCL coding. I will very much appreciate it if someone could give me some pointers.<br>
>> <br>
>> Thanks,<br>
>> Young<br>
>> <br>
>> Example 1<br>
>> <br>
>>    N     = 10<br>
>>    u    := <br>
>> random_normal<br>
>> (  0, 2, N)   ; zonal wind 'noise'<br>
>>    v    := <br>
>> random_normal<br>
>> (-10, 2, N)   ; winds from the north<br>
>>    wspd := <br>
>> wind_speed<br>
>> (u,v)<br>
>>    wdir := <br>
>> wind_direction<br>
>> (u,v,0)<br>
>>    <br>
>> print(sprintf("%7.2f", u)+sprintf("%7.2f", v)+sprintf("%7.2f", wspd)+sprintf<br>
>> ("%7.2f", wdir))<br>
>> <br>
>>    x    := <br>
>> wind_stats<br>
>> (wspd, wdir, 0, False)  ; variable of type 'list'<br>
>>                           ; extract variables from list for clarity<br>
>>    wspd_avg = x[0]        ; average of 'wspd'<br>
>>    wspd_std = x[1]        ; standard deviation of 'wspd'<br>
>>    wdir_avg = x[2]        ; mean vector wind direction<br>
>>    wdir_std = x[3]        ; standard deviation of the wind direction<br>
>>    avgU     = x[4]        ; average zonal component<br>
>>    avgV     = x[5]        ; average medidional wind component<br>
>>    <br>
>> delete<br>
>> (x)        ; no longer needed<br>
>> <br>
>>    <br>
>> print(sprintf("%7.2f", wspd_avg)+sprintf<br>
>> ("%7.2f", wspd_std)  \<br>
>>         +<br>
>> sprintf("%7.2f", wdir_avg)+sprintf("%7.2f", wdir_std)  \ <br>
>>         +sprintf("%7.2f", avgU )+sprintf("%7.2f", avgV ) ) <br>
>> <br>
>> _______________________________________________<br>
>> ncl-talk mailing list<br>
>> <a href="mailto:ncl-talk@mailman.ucar.edu" target="_blank">ncl-talk@mailman.ucar.edu</a><br>
>> List instructions, subscriber options, unsubscribe:<br>
>> <a href="https://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">https://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
> <br>
<br>
</div></div></div>
</blockquote></div>
</blockquote></div>