如何设置关键字以完全写入 CSV 文件
How to set a keyword to write fully to the CSV file
到目前为止,该脚本正在运行,输出是正确的。但是它没有为我填充 CSV 文件。但只填充循环的最后一次迭代。作为IDL的新手,我需要掌握关键字的概念。
我想我需要一个关键字,但我尝试插入它都失败了。
请修改脚本以便 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
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)
在你的 for
循环中填充它们:
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
到目前为止,该脚本正在运行,输出是正确的。但是它没有为我填充 CSV 文件。但只填充循环的最后一次迭代。作为IDL的新手,我需要掌握关键字的概念。
我想我需要一个关键字,但我尝试插入它都失败了。 请修改脚本以便 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
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)
在你的 for
循环中填充它们:
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