- This topic has 2개 답변, 2명 참여, and was last updated 7 years, 4 months 전에 by S.H.Ahn.
-
글쓴이글
-
-
S.H.Ahn회원
안녕하세요,
—————————————————————————————–
Level 2.0. Quality Assured Data.<p>The following data are pre and post field calibrated automatically cloud cleared and manually inspected.
Version 2 Direct Sun Algorithm
Location=Hornsund long=15.560 lat=77.001 elev=10 Nmeas=3 PI=Brent_Holben_and_Piotr_Sobolewski Email=Brent.N.Holben@nasa.gov_and_piotr_sobolewski_aer@onet.pl
AOD Level 2.0 Daily Averages UNITS can be found at http //aeronet.gsfc.nasa.gov/data_menu.html
Date(dd-mm-yy) Time(hh mm ss) Julian_Day AOT_1640 AOT_1020 AOT_870 AOT_675 AOT_667 AOT_555 AOT_551 AOT_532
26 3 2007 0 0 0 85 N/A 0.03684 0.034902 0.033 N/A N/A
28 3 2007 0 0 0 87 N/A 0.02866 0.025444 0.027179 N/A N/A
31 3 2007 0 0 0 90 N/A 0.033925 0.02906 0.034612 N/A N/A
2 4 2007 0 0 0 92 N/A 0.036533 0.03258 0.039801 N/A N/A
3 4 2007 0 0 0 93 N/A 0.038279 0.036344 0.047767 N/A N/A
7 4 2007 0 0 0 97 N/A 0.062969 0.057492 0.060628 N/A N/A
—————————————————————————————–제가 이런 데이터 포멧을 가진 일 평균 자료를 정리하고있는데요,
문제는 Timestamp가 연속적으로 나오지 않고 값이 있는 날만 년,월,일,데이터가 제공된다는겁니다.자료가 missing인 날도 N/A으로 처리를 해야하는데 Timestamp를 미리 만들어 놓고 엑셀로 일일이 자료를 복사 붙여넣기 하자니 자료 기간이 너무 길어서 무리네요.
Julday와 반복문을 이용해서 나머지 missing 데이터도 N/A로 채워넣고싶은데 아직 실력이 부족해서 아이디어가 떠오르지않네요…
도와주시면 감사하겠습니다!
-
mwkim회원
안녕하세요.
올려주신 내용은 불연속적인 데이터를 연속적인 자료에 넣고 비어있는 부분은 N/A 값으로 처리하고 싶으신 건데
사실 질문자께서 올려주신 내용대로 하면 됩니다.
(가정을 하였는데 위 자료를 볼 때, 중복되지 않는 날짜 순서로 정렬된 일별 자료로 판단하였습니다.)
1. 미리 자료를 넣을 배열(이름은 data라고 하겠습니다)을 만듭니다.
– 이때 배열의 길이(length)는 자료의 처음과 끝 날짜를 기준으로 계산하시면 됩니다.2. data 배열의 모든 값에 미리 N/A값을 넣습니다.
– 문자형으로 처리하실 꺼면 ‘N/A’라고 하면 되고, 실수형으로 할 꺼면 !VALUES.F_NAN을 넣으면 됩니다.3. length와 동일한 길이로 시간배열(date)을 만듭니다.
TIMEGEN 함수를 사용하면 편리합니다. START옵션을 통해서 시작날짜를 정하고 UNIT으로 단위를 일단위로 정의하시면 됩니다(TIMEGEN 도움말 참조).4. 반복문을 통해 date 함수가 위 원시 데이터의 날짜와 같을 때의 자료르 data에 넣습니다.
이 부분을 코드로 만들면 아래와 같이 할 수 있습니다.
j = 0
FOR i = 0, legnth -1 DO BEGIN
IF date[i] EQ rawDate[j] THEN BEGIN ; rawDate 는 원시 자료의 날짜(JULDAY 함수값)입니다.
data[i] = rawData[j] ; rawData 는 원시 자료의 날짜(JULDAY 함수값)입니다.
j ++
ENDIF
ENDFOR사실 위에 작성해드린 내용은
‘자료가 missing인 날도 N/A으로 처리를 해야하는데 Timestamp를 미리 만들어 놓고 엑셀로 일일이 자료를 복사 붙여넣기 하자니 자료 기간이 너무 길어서 무리네요.’
이 부분을 반복처리하도록 단계 단계로 구성한 것에 불과합니다.코드를 작성하실 때, 뭔가 어렵다고 생각되시면
문제를 작은 단위로 쪼개서 해당 부분을 코드로 만들고 연결하는 방법을 사용해보시는 것도 추천드립니다.
-
S.H.Ahn회원
알려주신 방법으로 문제 잘 해결하였습니다.
정말 고맙습니다!! ^_^
-
-
글쓴이글