Python 3.x 从Azure文件存储中读取NetCDF文件

Python 3.x 从Azure文件存储中读取NetCDF文件,python-3.x,azure,netcdf,Python 3.x,Azure,Netcdf,我已将文件上载到我的Azure文件存储帐户,并创建了SAS(共享访问签名)。让我们假设所讨论的文件名为fileA.nc 现在,使用Python3,我尝试读取fileA.nc: from netCDF4 import Dataset url ='https://<my-azure-resource-group>.file.core.windows.net/<some-file-share>/fileA.nc<SAS-token>'; dataset = Dat

我已将文件上载到我的Azure文件存储帐户,并创建了SAS(共享访问签名)。让我们假设所讨论的文件名为
fileA.nc

现在,使用Python3,我尝试读取
fileA.nc

from netCDF4 import Dataset

url ='https://<my-azure-resource-group>.file.core.windows.net/<some-file-share>/fileA.nc<SAS-token>';
dataset = Dataset(url)

print(dataset.variables.keys())
我知道提供的URL是有效的。如果我将其粘贴到浏览器中,文件将下载

我已经查过了,上面写着:

可以访问远程OPeNDAP托管的数据集,以便通过 http 如果向数据集构造函数提供了URL而不是文件名。 但是,这需要使用OPenDAP构建netCDF库 支持,通过--enable dap configure选项(在版本中添加 4.0.1)

但是,我不知道如何判断Pycharms在安装netcdf4时是否使用了
--enable dap参数
,但我无法想象为什么它不会。此外,如果我插入指向某个HTML的url,我会在错误转储中获取HTML,因此我认为netcdf4实际上是在尝试加载远程数据集,因此问题出在其他地方

我真的很感谢你的帮助。也许有人知道另一个Python3NetCDF库允许我从Azure加载数据集

更新

好的,我现在可以知道python netcdf4库确实附带了--启用OPenDAP:

您好,支持OpenDAP的netCDF4 1.0.4现在在 Unix上的conda respoitory。要安装:$conda安装netcdf4

  • 宜兰

我找到了解决办法。事实证明,您无法直接从Azure文件共享中读取,即使您将链接粘贴到浏览器中的文件时,该文件开始下载

我需要做的是在我的操作系统上安装文件共享。在我的例子中,我使用的是Windows,但Linux也可以做到这一点。应相应修改以下代码,然后将其放入命令提示符:

net use <drive-letter>: \\<storage-account-name>.file.core.windows.net\<share-name>

example :
net use z: \\samples.file.core.windows.net\logs
net用法:\\.file.core.windows.net\
例子:
net use z:\\samples.file.core.windows.net\logs
一旦安装了文件共享,您就可以像读取外部硬盘一样读取它。您可能需要添加权限,但我没有


下面是安装文件共享的文档链接:

Hi,我不确定这里与OpenDAP有什么关系?我没有使用过Azure存储,但我非常怀疑它是否自动提供OpenDAP支持。而且,若Azure允许直接文件打开,那个么你们也可以打开你们的NetCDF文件,但若它类似于AWS-s S3,那个么你们基本上应该先将文件下载到本地磁盘,然后再打开。
net use <drive-letter>: \\<storage-account-name>.file.core.windows.net\<share-name>

example :
net use z: \\samples.file.core.windows.net\logs