[ncl-talk] reading consecutive ascii files in do loop
David Adams
dave.k.adams at gmail.com
Tue Jun 12 17:57:06 MDT 2018
Thank you Dave and Dennis,
That did the trick. I used both stringtointeger and fsl_data *:=*
asciiread(input(i),(/nlvl(i),ncol/), "float").
saludos from a rainy Mexico City,
Dave
On Tue, Jun 12, 2018 at 2:19 PM Dennis Shea <shea at ucar.edu> wrote:
> Also:
>
> NCL is a "strongly typed language."
>
> By design, it will not allow an *existing array* to be overwritten by a
> new array of a different size.
> Further, if the new array is of a different data type, it *may* not allow
> the existing array to be overwritten.
>
>
> fsl_data = asciiread(input(i),(/nlvl(i),ncol/), "float") ; <=== this may
> change size upon each iteration
>
> Please use NCL's reassignment operator *:=*
> https://www.ncl.ucar.edu/Document/Language/varb_assign.shtml
>
> fsl_data *:=* asciiread(input(i),(/nlvl(i),ncol/), "float")
>
> D
>
> On Tue, Jun 12, 2018 at 1:09 PM, Dave Allured - NOAA Affiliate <
> dave.allured at noaa.gov> wrote:
>
>> Dave,
>>
>> The problem is in "nlvl". You are using floats in a place that requires
>> integers only. Change the function call on this line to
>> "stringtointeger". Also, "tointeger" or "toint" would be better.
>>
>> nlvl = stringtofloat(str_get_cols(data,13,15))
>>
>> --Dave A.
>>
>>
>> On Tue, Jun 12, 2018 at 12:51 PM, David Adams <dave.k.adams at gmail.com>
>> wrote:
>>
>>> Hi all,
>>> I am using the skew T plot routine. I try to open each ascii file and
>>> plot it as a pdf. My file list contains the file name and number of lines
>>> (i.e., pressure levels) in the sounding files.
>>> filename nlvl
>>> 7_11_00.dat 129
>>> 7_11_12.dat 122
>>> 7_12_00.dat 148
>>> etc...
>>> I read and open the files this way
>>> -------------------------------------------------------------------------
>>> filename ="Sounding_file_list.txt"
>>> data = asciiread(filename,-1,"string")
>>> input = str_get_cols(data,0,10)
>>> nlvl = stringtofloat(str_get_cols(data,13,15))
>>> ncol =11
>>>
>>> do i = 0,47
>>> fsl_data = asciiread(input(i),(/nlvl(i),ncol/), "float")
>>> etc...
>>> But I get the following error.
>>>
>>> fatal:asciiread: The input dimension sizes must be byte, short, integer
>>> or long fatal:["Execute.c":8575]:Execute: Error occurred at or near line
>>> 27 in file test.ncl
>>>
>>> Here is the print out of the variable filenames
>>> ---------------------------------------------
>>> Variable: input
>>> Type: string
>>> Total Size: 384 bytes
>>> 48 values
>>> Number of Dimensions: 1
>>> Dimensions and sizes: [48]
>>> Coordinates:
>>>
>>> I am sure this is a simple error, but I am brain dead at this point.
>>> thanks in advance,
>>> Dave
>>>
>>
>> _______________________________________________
>> 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/20180612/1c719e64/attachment.html>
More information about the ncl-talk
mailing list