Paul van Delst wrote:
> Simon de Vet wrote:
>>
>> I am reading in data that looks like the following:
>>
>> CHATHAM ISLAND - NEW ZEALAND (DOE),,,,,,,,,,
>> 43.92�S,176.50�W,,,,,,,,,
>> 16-Sep-1983,11-Oct-1996,,,,,,,,,
>> Mon,Stat,Cl,NO3,SO4,Na ,SeaSalt,nssSO4,MSA,Dust,NH4
>> of,Param,Air,Air,Air,Air,Air,Air,Air,Air,Air
>> Yr,*,�g/m3,�g/m3,�g/m3,�g/m3,�g/m3, �g/m3,�g/m3,�g/m3,�g/m3
>> Jan,N,58,58,58,58,58,57,0,0,58
>> Jan,Mean,7.330,0.120,1.572,4.233,13.766,0.508,#N/A,#N/A,0.10 3
>> Jan,StdDev,2.788,0.055,0.412,1.479,4.811,0.249,#N/A,#N/A,0.0 51
>>
>> Which continues untill the end of the year, and then another observation
>> station follows the fame general format.
>>
>> I want to be able to read in the data into an array. I can already take
>> out the header, but I cannot read in the data.
>
> What do you consider the header?
>
>> By default, IDL is
>> treating each line as one entry, not recognizing the commas as entry
>> seperators. I've read the help extensively, but as a non-fortran user,
>> the input format documentation makes my brane hurt.
>
> Let's say you have:
>
> Jan,N,58,58,58,58,58,57,0,0,58
> Jan,Mean,7.330,0.120,1.572,4.233,13.766,0.508,#N/A,#N/A,0.10 3
> Jan,StdDev,2.788,0.055,0.412,1.479,4.811,0.249,#N/A,#N/A,0.0 51
> Feb,N,58,58,58,58,58,57,0,0,58
> Feb,Mean,7.330,0.120,1.572,4.233,13.766,0.508,#N/A,#N/A,0.10 3
> Feb,StdDev,2.788,0.055,0.412,1.479,4.811,0.249,#N/A,#N/A,0.0 51
> ..etc..
>
> How about:
>
> char_buffer = ' '
>
> REPEAT BEGIN
> READF, lun, char_buffer
>
> input_data = STR_SEP( char_buffer, ',' )
>
> ....here split up the data how you want by, say, testing
> input_data[0] == month (Jan, Feb, Mar, ....
> input_data[1] == data type (N, Mean, StdDev)
> ....and checking for invalid data, e.g. the #N/A thingoes
>
> ENDREP UNTIL EOF( lun )
>
>
Hello,
I'ld like to add that on occasion, I have found it useful to add the /TRIM
keyword to the STR_SEP() function.
Once in a while the last element in input_data will become something
unexpected, such as the expected value padded with blanks. I think
the problem is in how the file was written, not in how it is read by IDL.
Ben
--
Ben Tupper
Bigelow Laboratory for Ocean Science
tupper@seadas.bigelow.org
pemaquidriver@tidewater.net
|