メリークリスマス!私はまだPythonとPandasに非常に慣れていないので、助けていただければ幸いです。私は netCDF ファイルを読み込もうとしています。これを実行して、それを Pandas Dataframe にインポートできます。netcDF ファイルは 2D なので、「ダンプ」したいだけです。DataFrame メソッドを試しましたが、オブジェクトが認識されません。おそらく、netCDF オブジェクトを 2D numpy 配列に変換する必要がありますか? 繰り返しますが、これを行うための最良の方法についてのアイデアに感謝します。
32494 次
3 に答える
17
NetCDF ファイル (またはOPeNDAP
データセット) が CF メタデータの規則に従っている場合は、 を使用してそれらを利用できますNetCDF4-Python package
。これにより、Pandas でのアクセスが非常に簡単になります。(Pandas と NetCDF4-Python の両方を含む Enthought Python ディストリビューションを使用しています)。
以下の例では、NetCDF ファイルは OPeNDAP を介して提供されており、NetCDF4-Python ライブラリを使用すると、リモートの OPeNDAP データセットを開いて、まるでローカルの NetCDF ファイルであるかのように操作できます。これは非常に巧妙です。NetCDF4 ファイルの属性を確認したい場合は、ブラウザで次のリンクを参照してください: http://geoport-dev.whoi.edu/thredds/dodsC/HUDSON_SVALLEY/5951adc-a1h.nc.html
これを変更せずに実行できるはずです。
from matplotlib import pyplot as plt
import pandas as pd
import netCDF4
url='http://geoport-dev.whoi.edu/thredds/dodsC/HUDSON_SVALLEY/5951adc-a1h.nc'
vname = 'Tx_1211'
station = 0
nc = netCDF4.Dataset(url)
h = nc.variables[vname]
times = nc.variables['time']
jd = netCDF4.num2date(times[:],times.units)
hs = pd.Series(h[:,station],index=jd)
fig = plt.figure(figsize=(12,4))
ax = fig.add_subplot(111)
hs.plot(ax=ax,title='%s at %s' % (h.long_name,nc.id))
ax.set_ylabel(h.units)
結果は、Ipython Notebook で確認できます: http://nbviewer.ipython.org/4615153/
于 2013-01-24T01:18:17.793 に答える