코드올려요!!도와주세요!!

게시판 IDL Q&A 코드올려요!!도와주세요!!

2 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #1382 Reply
      Alphon.D
      회원

      PRO NCDF_OPEN_EX

      WorkDir = ‘D:\Personal\TEST\data\ECV\2010\’

      cd, WorkDir

      Results = file_search(‘*.nc’)
      numDates = n_elements(Results)
      print, numDates

      FOR i=0, 0 DO BEGIN ;numDates-1 DO BEGIN

      Inputfile = strcompress(WorkDir+Results[i],/remove_all)
      ncid = NCDF_OPEN(Inputfile)
      ncdf_varget, ncid, ‘sm’, sm
      print, sm

      ncdf_close,ncid

      ENDFOR
      CLOSE,/ALL

      END

      코드는 이런데 ㅠ 에러가!!!
      % NCDF_OPEN: Unable to open the file
      “D:\Personal\TEST\data\ECV\2010\
      ESACCI-L3S_SOILMOISTURE-SSMV-MERG
      ED-20100101000000-fv00.1.nc”.
      (NC_ERROR=-31)
      % Execution halted at: PRACCODE 96
      D:\Personal\TEST\ECV_SM\praccode.pro
      % $MAIN$
      ……OTL….

    • #1383 Reply
      Alphon.D
      회원

      아!!! 이거 뜨기전에 잘됫다며 뜨는데 변수가 변수창으로 안빠져요~!!! 그러다 몇번 컴파일 실행하면 요렇게 떠버린다는!!! ㅠ_ㅠ

    • #1390 Reply
      Sangwoo
      회원

      이와 같은 단독 프로그램을 실행할 경우에는 출력변수들이 변수창에 뜨진 않습니다. 그냥 프로그램내에서 HELP나 PRINT 명령들을 적당히 활용하는게 좋습니다. 그리고 컴파일 및 실행을 몇번 하다보면 문제가 생긴다고 하셨는데, 매번 실행할 때 print, numDates로 나오는 숫자, 즉 파일의 갯수가 매번 정상적으로 나오는지요? 제 생각엔 반복문내 첫 문장에 있는 strcompress 함수에서 WorkDir은 필요가 없어 보입니다. 이미 반복문 이전에서 CD 명령으로 그 디렉토리에 와있는 상태이기 때문인데요. 그냥 아래와 같이 해줘도 될 것 같습니다.

      Inputfile = strcompress(Results[i],/remove_all)

      그리고 NC_ERROR=-31이라는 에러코드 번호는 IDL 도움말에서도 확인이 안되는 것이라 원인은 저도 정확히는 모르겠습니다. 그냥 그 디렉토리안에 파일들이 제대로 다 있는지, 그리고 매번 프로그램을 실행할 때 파일갯수가 정상적으로 인식이 잘 되는가 등을 체크하는게 기본일 것 같고요. 그래도 안될 경우에는 저 에러코드에 대해서 구글검색 등의 방법으로 원인을 찾아봐야 할 것 같습니다.

2 답변 글타래를 보이고 있습니다
'코드올려요!!도와주세요!!'에 답변달기
글쓴이 정보: