2017-09-04 9 views
2

이 스크립트는 지금까지 출력이 정확하도록 작업하고 있습니다. 그러나 나를 위해 CSV 파일을 채우지 않습니다. 루프의 마지막 반복 만 채 웁니다. IDL에 익숙하지 않기 때문에이 키워드 개념을 이해해야합니다.CSV 파일에 완전히 쓸 키워드를 설정하는 방법

나는 키워드가 필요하다고 믿지만, 이것을 삽입하려는 나의 시도는 모두 실패했다. 일부는 csv 파일이 완전히 채워지도록 스크립트를 수정할 수 있습니까?

PRO Lat_Lon_Alt_Array 

; This program is the extract the Latitute, Longigitude & Altitute 
; with the Site name and file code. 
; The purpose is to output the above dimensions from the station files 
; into a csv file. 

COMPILE_OPt IDL2 

the_file_list = file_search('D:/Rwork/Project/25_Files/','*.nc') 

FOR filein = 0, N_ElEMENTS (the_file_list)-1 DO BEGIN 

station = NCDF_OPEN(the_file_list[filein]) 
NCDF_VARGET, station, 'station_name', St_Name   
NCDF_VARGET, station, 'lat', latitude 
NCDF_VARGET, station, 'lon', longitude 
NCDF_VARGET, station, 'alt', height 

latitude=REFORM(latitude,1) 
longitude=REFORM(longitude,1) 
height=REFORM(height,1) 

Print,the_file_list[filein] 
Print, 'name' 
Print, St_Name 
Print,'lat' 
Print,latitude 
Print,'lon' 
print,longitude 
Print,'alt' 
Print,height 

; Add each station data to the file 

WRITE_CSV, 'LatLon.csv', the_file_list[filein],latitude,longitude,height 

ENDFOR 
RETURN 
END 

답변

1

WRITE_CSV 그러므로 당신이 오직 마지막 항목을 참조 파일이 호출 될 때마다 덮어 씁니다. 당신의 for 루프에서

n_files = N_ElEMENTS(the_file_list) 
latitude_arr = DBLARR(n_files) ; Assuming type is double 
longitude_arr = DBLARR(n_files) 
height_arr = DBLARR(n_files) 

을로 채우기 :

latitude_arr[filein] = latitude 
longitude_arr[filein] = longitude 
height_arr[filein] = height 

그런 다음 for 루프 이후로 쓰기 :

for 루프 전에 모든 값을 포함하는 배열을 생성

WRITE_CSV, 'LatLon.csv', the_file_list, latitude_arr, longitude_arr, height_arr 
+0

감사합니다. –