首页 > 解决方案 > 从谷歌云存储桶直接读取netCDF文件到python

问题描述

我在谷歌云上有一个包含多个 netcdf 文件的存储桶。通常,当文件存储在本地时,我会执行:

import netCDF4

nc = netCDF4.Dataset('path/to/netcdf.nc')

是否可以直接从谷歌云在 python 中执行此操作,而无需先从存储桶中下载文件?

标签: pythonpython-3.xgoogle-cloud-platformgoogle-cloud-storagenetcdf4

解决方案


我不确定如何使用 Google 对象存储,但您可以通过以下方法从包含文件中所有字节的内存缓冲区中打开 netCDF 文件:

from netCDF4 import Dataset

fobj = open('path/to/netcdf.nc', 'rb')
data = fobj.read()
nc = Dataset('memory', memory=data)

所以前进的道路是从对象存储中读取所有数据,然后使用该命令来读取它。这对于大型 netcdf 文件会有一些缺点,因为您将所有这些字节都放在系统内存中。


推荐阅读