2017-09-04 3 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ループの前にすべての値を保持するための配列を作成します。あなたの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ループの後、それらを書く:

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

ありがとうございますshouston –

関連する問題