2 回答
TA貢獻1946條經驗 獲得超3個贊
我的理解是您的數據格式需要
LAT1 LON1 FLUX1
LAT2 LON2 FLUX2
在這種情況下,您不需要多個 for 循環,您可以將所有三個數組傳遞給該nditer方法,然后使用它一次性csvwriter.writerows寫入所有值。
這是一個基于您的場景的示例
import numpy as np
import csv
LAT_MIN = 34.675
LAT_MAX = 38.275
LON_MIN = 124.625
LON_MAX = 130.795
# path = 'BESS_PAR_Daily.A2015004.nc_output.csv' # "File That contains the Values Of Air_Flux"
# flux = np.genfromtxt(path, delimiter=',') # Reading Data from File
# latData = np.arange(LAT_MIN, LAT_MAX, 0.05)
# lonData = np.arange(LON_MIN, LON_MAX, 0.05)
flux = np.array([1,2,3,4,5])
latData = np.array([1,2,3,4,5])
lonData = np.array([1,2,3,4,5])
with open('data.csv', 'w') as file:
writer = csv.writer(file, delimiter=',')
for x,y,z in np.nditer([latData.T, lonData.T, flux], order='C'):
writer.writerow([x,y,z])
你也不需要,file.close()因為with塊會照顧它
TA貢獻1921條經驗 獲得超9個贊
由于通量值存儲在這些 Lat 和 Lons 之間,因此在跨 Lon 迭代 Lat 值之后,我獲取了跨通量的 lat 和 lon 索引:
writer.writerow([x, y, flux[lat.index, lon.index]])
添加回答
舉報
