데이터 배열 정리 질문

게시판 IDL Q&A 데이터 배열 정리 질문

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #870 Reply
      yoni
      회원

      IDL 초보입니다.
      제가 가지고 있는 데이터가 아스키 파일로
      (5, *) 이런 배열을 가지고 있는 데이터 인데
      3번째 행에 있는 데이터들이 시간 순서 인데 1 부터 약 2만개의 데이터로 이루어져있습니다.
      1704개수로 반복되는데 각 1번은 1번끼리 저장하고 2번은 2번끼리 3번은 3번 … 저장하고 싶은데
      그런 배열을 for 문으로 어떻게 적어야 할지 잘 모르겠습니다.
      반복하는 방법으로 코드를 짜야할 텐데 방법을 잘 모르겠습니다
      지금까지는
      1
      2 pro sic
      3
      4
      5 path = ‘/home/eunjee/seaice/HadISST_analysis/’
      6 file = ‘HadISST_sst_ice.dat’
      7 openr, lun, path+file,/get_lun
      8 header = string(3)
      9 data = fltarr(5, 27604800)
      10
      11 nx=0
      12 ny=0
      13 time=0
      14 d1=0
      15 d2=0
      16
      17 var=fltarr(nx, ny, time, d1, d2)
      18
      19 for i=0, 27064800 do begin
      20 for ii=i+1, 27064800, 1704 do begin
      21 readu, lun, var
      22
      23 end for
      24 end for
      25
      26 readf, lun, i, ii
      27 free lun, lun
      28 print, var
      29
      30 END
      31
      32

      이렇게 했는데 엉터리 인것 같아서요 .. 도움 부탁드립니다.

    • #871 Reply
      Jonghyuk
      회원

      1. 1704개의 파일을 만들고자 하시는 건가요? 아니면 1704줄씩 끊어서 하나의 파일로 만들고자 하시는 건가요?
      2. 27064800과 27604800 이 혼재해 있는데 1704로 나누어 떨어지는 쪽이 27604800이므로 이쪽이 맞을 것 같습니다.
      3. 약 2만개의 데이터라는 언급이 있는데, 이는 어떤 쪽과 관련이 있는 것인지요?
      4. 데이터의 연산과정이 중간에 필요한 것인지, 아니면 단순히 파일만 나누어서 재배치하는 것이 목적인지에 따라 효율적인 방법이 조금 달라집니다.

      1704개의 파일을 만들고,
      3행의 헤더와 27604800행의 데이터행이 있는 것을 각 파일에 16200행씩 저장되도록 하는 것이라면,
      다음과 같은 코드를 생각해 볼 수 있을 것 같습니다.

      header=strarr(3)
      data=strarr(27604800)
      path = ‘/home/eunjee/seaice/HadISST_analysis/’
      file = ‘HadISST_sst_ice.dat’
      openr, lun, path+file,/get_lun
      readf, lun, header
      readf, lun, data
      free_lun, lun

      for i=0, 1703 do begin
      file=’data_’+string(i+1, format='(I04)’)+’.dat’
      openw, lun, path+file, /get_lun
      printf, lun, data[i:*:1704] ;i번부터 끝까지, 1704개씩 건너뛰며 뽑아낸 line을 씀
      free_lun, lun
      endfor

      end

1 답변 글타래를 보이고 있습니다
'데이터 배열 정리 질문'에 답변달기
글쓴이 정보: