问题描述
我需要将 netcdf 文件写入 S3。我可以使用 xarray 读取文件,但无法在 S3 中写入文件。一种选择是在本地创建文件并在 S3 中上传,但由于我有大于 100GB 的大文件,这将非常低效。
S3中使用xarray读取文件的代码如下所示:
import xarray as xr
from netCDF4 import Dataset,num2date
import yaml
import boto3
import s3fs
yamlkeysPath = "S3/keys.yaml"
yamlfile =open(yamlkeysPath)
keys = yaml.load(yamlfile,Loader=yaml.FullLoader)
s3 = boto3.resource(
service_name='s3',region_name=keys['region_name'],aws_access_key_id=keys['aws_access_key_id'],aws_secret_access_key=keys['aws_secret_access_key'])
s3Client = boto3.client(
service_name='s3',aws_secret_access_key=keys['aws_secret_access_key'])
s3system = s3fs.S3FileSystem(anon=False) # uses default credentials
ncdata_obj = s3system.open(FileLocationinS3,mode='rb')
ncdata = xr.open_dataset(ncdata_obj)
有没有一种简单的方法可以在 S3 中编写 netcdf 文件?类似于 xarray 的 to_netcdf 的东西。下面的代码显示错误'权限被拒绝'
ncdata.to_netcdf(AnotherS3Location)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)