Python netCDF4使用Dataset的memory参数,提高对较大.nc文件读取效率

Python netCDF4通过一次性读取到内存,提高对较大.nc文件读取效率

对大量的.nc处理瓶颈卡在读与写上,全是机械硬盘就只能考虑改代码了。发现netCDF4中Dataset的构造函数中有memory参数,默认为None,如果没有设置memory,则访问数据的时候从硬盘中读取,若有,则从内存中读取。
memory的描述

import netCDF4 as nc # netcdf4 1.5.7
from time import perf_counter

# 不一次性读取到内存上
time1 = 0
for i in range(10):
    start_time = perf_counter()
    dataset = nc.Dataset(r'H:\test.nc')
    for key in dataset.variables.keys():
        data = dataset[key][:]
    dataset.close()
    end_time = perf_counter()
    time1 += end_time - start_time

# 一次性读取到内存上
time2 = 0
for i in range(10):
    start_time = perf_counter()
    file = open(r'H:\test.nc','rb')
    memory = file.read()
    dataset = nc.Dataset(r'H:\test.nc',mode='r',memory=memory)
    for key in dataset.variables.keys():
        data = dataset[key][:]
    dataset.close()
    file.close()
    # 如果不需要了可以提前释放内存
    memory = None
    end_time = perf_counter()
    time2 += end_time - start_time

time1
time2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值