ファイルをAzureファイルストレージアカウントにアップロードし、SAS(共有アクセス署名)を作成しました。のは、問題のファイルをふりをしてみましょうfileA.nc
AzureファイルストレージからNetCDFファイルを読み取る
は今、の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())
上記のコードではなく、私に次のようなエラーを与えて、動作しません:
Traceback (most recent call last): File "yadaYadaYada/test.py", line 8, in dataset = Dataset(url) File "netCDF4/_netCDF4.pyx", line 1848, in netCDF4._netCDF4.Dataset.init (netCDF4/_netCDF4.c:13983) OSError: NetCDF: Malformed or unexpected Constraint
これはline 8
次のとおりです。
dataset = Dataset(url)
私は提供されたURLを知っています。私は、ブラウザにファイルのダウンロードを貼り付けた場合、私はこれを言うnetCDF4 documentationを、チェックしている
...:
Remote OPeNDAP-hosted datasets can be accessed for reading over http if a URL is provided to the Dataset constructor instead of a filename. However, this requires that the netCDF library be built with OPenDAP support, via the --enable-dap configure option (added in version 4.0.1).
しかし、私は、Pycharmsがnetcdf4をインストールしたとき場合を言うためにどのよう見当がつかないそれは--enable-dap argument
を使用しましたが、なぜそうでないのか分かりません。また、HTMLを指すURLに固執すると、エラーダンプにHTMLが表示されるので、netcdf4が実際にリモートデータセットをロードしようとしていると思うので、問題はどこか別の場所にあります。
本当にありがとうございます。 Azureからデータセットをロードできるようにする別のPython 3 netCDFライブラリを知っている人がいますか?
UPDATE
さて、私は今confirmのpython netcdf4ライブラリが--OPenDAPが付属していませんことを有効にすることができます
Hello again, netCDF4 1.0.4 with OpenDAP support is now available in the conda respoitory on Unix. To install: $ conda install netcdf4
- Ilan
こんにちは、私はここOpenDAPとの関係が何であるかわからないんだけど?私はAzureストレージで作業していませんが、OpenDAPを自動的にサポートすることは非常に疑問です。 Azureが直接ファイルを開くことができる場合は、NetCDFファイルも開くことができますが、AWS-S3と似ている場合は、まずローカルディスクにファイルをダウンロードしてから開く必要があります。 – kakk11