猿问

如何在三个不同列的csv文件中写入纬度、经度和另一个变量的值?

我想在三个不同列的 csv 文件中写入 Latitude、Longitude 和 Air_flux 值的值。


这是迄今为止我在 Python3 中完成的代码:文件“路径”具有指定纬度和经度的“Air_Flux”的所有值。


代码:


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)



with open('data.csv', 'w') as file:

    writer = csv.writer(file, delimiter=',')

    for x in np.nditer(latData.T, order='C'):

        for y in np.nditer(lonData.T, order='C'):

        file.write(str(x))

        file.write("\n")


        file.write(str(y))

        file.write("\n")


    for fl in np.nditer(flux):

        file.write(str(fl))

        file.write("\n")


file.close()

我只知道在一列中存储值的方法......但是:我想在一个 csv 文件中写入纬度、经度和 Air_flux 值的值,这样一列会有纬度值,经度值的第二列和“Air_flux”的第三列


翻过高山走不出你
浏览 211回答 2
2回答

智慧大石

我的理解是您的数据格式需要LAT1 LON1 FLUX1LAT2 LON2 FLUX2在这种情况下,您不需要多个 for 循环,您可以将所有三个数组传递给该nditer方法,然后使用它一次性csvwriter.writerows写入所有值。这是一个基于您的场景的示例import numpy as npimport csvLAT_MIN = 34.675LAT_MAX = 38.275LON_MIN = 124.625LON_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块会照顾它

郎朗坤

由于通量值存储在这些 Lat 和 Lons 之间,因此在跨 Lon 迭代 Lat 值之后,我获取了跨通量的 lat 和 lon 索引:writer.writerow([x, y, flux[lat.index, lon.index]])
随时随地看视频慕课网APP

相关分类

Python
我要回答