У меня есть следующий код Python, который отлично работает для одного файла CSV для преобразования в файл netCDF.Прочитайте несколько файлов csv и напишите несколько файлов netCDF
Но, у меня есть несколько файлов (365), так как, 'TRMM_1998_01_02_newntcl.csv', 'TRMM_1998_01_03_newntcl.csv' .... ДО 'TRMM_1998_12_31_newntcl.csv.
Может кто-нибудь помочь мне написать цикл через все файлы csv и создать 365 netCDF-файлов, используя этот код.?
Anyhelp оценили.
Заранее спасибо.
import numpy as np
def convert_file(filename):
data = np.loadtxt(fname=filename, delimiter=',')
# filename = "TRMM_{}_{}_{}_newntcl.csv".format(d.year,d.month,d.day)
Lat_data = np.loadtxt('Latitude.csv', delimiter=',')
Lon_data = np.loadtxt('Longitude.csv', delimiter=',')
# create a netcdf Data object
with netCDF4.Dataset('TEST_file.nc', mode="w", format='NETCDF4') as ds:
# some file-level meta-data attributes:
ds.Conventions = "CF-1.6"
ds.title = 'precipitation'
ds.institution = 'Institute'
ds.author = 'Author'
lat_arr = data[:,0] # the first column
lon_arr = data[:,1] # the second column
precip_arr = data[:,2] # the third column
nlat = lat_arr.reshape((161, 321))
nlon = lon_arr.reshape((161, 321))
# ds.createDimension('time', 0)
ds.createDimension('latitude', 161)
ds.createDimension('longitude', 321)
precip = ds.createVariable('precip', 'f4', ('latitude', 'longitude'))
precip[:] = data[:,2]
## adds some attributes
precip.units = 'mm'
precip.long_name = 'Precipitation'
lat = ds.createVariable('lat', 'f4', ('latitude'))
lat[:] = Lat_data[:]
## adds some attributes
lat.units = 'degrees_South'
lat.long_name = 'Latitude'
lon = ds.createVariable('lon', 'f4', ('longitude'))
lon[:] = Lon_data[:]
## adds some attributes
lon.units = 'degrees_East'
lon.long_name = 'Longitude'
print ds
# print filename
# load the data
path='C:\Users\.spyder2'
os.chdir(path)
d=datetime.date(1998,01,01)
while d.year==1998:
d+=datetime.timedelta(days=1)
convert_file("TRMM_{}_{}_{}_newntcl.csv".format(d.year,d.month,d.day))
Прежде всего, я не знаю, как создать файл функции, используя мой код, вышеперечисленный. Я очень новичок в python. Тогда я не знаю, как использовать свой код выше, чтобы вызвать эту функцию, которую я создал. Можете ли вы показать мне пример? – user3408139
@ user3408139 [Здесь] (https://docs.python.org/2/tutorial/controlflow.html#defining-functions) является базовым руководством по определению функций в Python. В моем коде я использовал функцию, предполагая, что она называется 'convert_file' и принимает имя файла для преобразования в качестве единственного аргумента. – KSFT
OK. Мне нужно сохранить мой код выше как функцию под названием «convert_file», а затем запустить код выше? это то, что вы имели ввиду? – user3408139