- This topic has 3개 답변, 2명 참여, and was last updated 10 years, 2 months 전에 by Alphon.D.
-
글쓴이글
-
-
Alphon.D회원
PRO NCDF_OPEN_EX
WorkDir = ‘D:\Personal\TEST\data\ECV\2010\’
cd, WorkDir
Results = file_search(‘*.nc’)
numDates = n_elements(Results)
print, numDatesFOR 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, smncdf_close,ncid
ENDFOR
CLOSE,/ALLEND
코드는 이런데 ㅠ 에러가!!!
% 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…. -
Alphon.D회원
아!!! 이거 뜨기전에 잘됫다며 뜨는데 변수가 변수창으로 안빠져요~!!! 그러다 몇번 컴파일 실행하면 요렇게 떠버린다는!!! ㅠ_ㅠ
-
Sangwoo회원
이와 같은 단독 프로그램을 실행할 경우에는 출력변수들이 변수창에 뜨진 않습니다. 그냥 프로그램내에서 HELP나 PRINT 명령들을 적당히 활용하는게 좋습니다. 그리고 컴파일 및 실행을 몇번 하다보면 문제가 생긴다고 하셨는데, 매번 실행할 때 print, numDates로 나오는 숫자, 즉 파일의 갯수가 매번 정상적으로 나오는지요? 제 생각엔 반복문내 첫 문장에 있는 strcompress 함수에서 WorkDir은 필요가 없어 보입니다. 이미 반복문 이전에서 CD 명령으로 그 디렉토리에 와있는 상태이기 때문인데요. 그냥 아래와 같이 해줘도 될 것 같습니다.
Inputfile = strcompress(Results[i],/remove_all)
그리고 NC_ERROR=-31이라는 에러코드 번호는 IDL 도움말에서도 확인이 안되는 것이라 원인은 저도 정확히는 모르겠습니다. 그냥 그 디렉토리안에 파일들이 제대로 다 있는지, 그리고 매번 프로그램을 실행할 때 파일갯수가 정상적으로 인식이 잘 되는가 등을 체크하는게 기본일 것 같고요. 그래도 안될 경우에는 저 에러코드에 대해서 구글검색 등의 방법으로 원인을 찾아봐야 할 것 같습니다.
-
Alphon.D회원
감사합니다!! ㅠ_ㅠ
-
-
-
글쓴이글