python循环读取nc格式文件,并存入文本文件中

先把要读取的nc文件放在同一文件夹中,再用python循环读取,读取文件为从NCEP下载的向下地表平均日长波辐射通量,并计算其月平均值,存放至一个文本文件中https://psl.noaa.gov/cgi-bin/db_search/DBListFiles.pl?did=195&tid=98666&vid=1234

import netCDF4 as nc
import numpy as np
from os import listdir
from os.path import join
               
data = np.zeros((5,12,94,192)) #建立年份*月份*纬向格点数*经向格点数的数列
path = r'E:' #nc文件存放文件夹

a = 0
for filename in listdir(path):
    #读取nc文件
    file = join(path,filename)
    nc_obj = nc.Dataset(file)
    x = nc_obj.variables['dlwrf'][:] #dlwrf为nc文件中的变量名
    nc_obj.close()
    #计算月平均值
    num = 0
    for m in range(12):
        if m in[1,3,5,7,8,10,12]:
            mnum = 31
        elif m == 2:
            if (a+1979) % 4 == 0 and (a+1979) % 100 != 0:
                mnum = 29
            else:
                mnum = 28
        else:
            mnum = 30
        for i in range(94):
            for j in range(192):
                data[a,m,i,j] = sum(x[num:num+mnum,i,j]) / mnum
        num = num + mnum
    a = a + 1

#将月平均值按年份、月份、纬度、经度的顺序存放至dat文件中
with open(r'ulwrf.dat','w') as fp:
    for n in range(39):
        for m in range(12):
            for i in range(94):
                for j in range(192):
                    fp.write(str(data[n,m,i,j])+'  ')

  • 1
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值