[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Comma seperators
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.103
> Jan,StdDev,2.788,0.055,0.412,1.479,4.811,0.249,#N/A,#N/A,0.051
>
> 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.103
Jan,StdDev,2.788,0.055,0.412,1.479,4.811,0.249,#N/A,#N/A,0.051
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.103
Feb,StdDev,2.788,0.055,0.412,1.479,4.811,0.249,#N/A,#N/A,0.051
..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 )
paulv
--
Paul van Delst Ph: (301) 763-8000 x7274
CIMSS @ NOAA/NCEP Fax: (301) 763-8545
Rm.202, 5200 Auth Rd. Email: pvandelst@ncep.noaa.gov
Camp Springs MD 20746