[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