問題タブ [python-xarray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1607 参照

python - _FillValue と missing_value の競合を避けるために、xarray でデータセットをインポートおよびデコードする

xarray open_dataset または open_mfdataset を使用して NARR netcdf データセット (例: ftp://ftp.cdc.noaa.gov/Datasets/NARR/monolevel/air.2m.2010.nc ) をロードすると、xarray は「競合する _FillValue とmissing_values".

入力:

ds = xarray.open_dataset('air.2m.2010.nc')

このエラーが発生します:

ValueError: ('Discovered conflicting _FillValue and missing_value. Considering opening the offending dataset using decode_cf=False, corrected the attributes', 'and decoding explicitly using xray.conventions.decode_cf(ds)')

提案を使用してそのように開く場合:

ds = xarray.open_dataset('air.2m.2010.nc',decode_cf=False)

データセットは開かれますが、変数、時間、座標などは (明らかに) デコードされません。明示的に使用xarray.decode_cf(ds)しても、同じエラーが発生するため、データセットを正常にデコードするのに役立たないようです。

このエラーは、NARR データセットが Lambert Conformal であるため、xarray によって開かれたグリッドの形状が原因で値が欠落しているために発生すると考えられます。何らかの理由で、これは塗りつぶし値と競合します。

このファイルを xarray で開いてデコードする最良の方法は何ですか?

NB netcdf4-python を使用して開いてデコードすることができましたが、これを xarray で実行して、dask によって提供されるコア計算機能を利用できるようにしたいと考えています。

0 投票する
3 に答える
8412 参照

python - Python での非常に大きな netcdf ファイルの読み込みの高速化

PythonでnetCDF4を使用して読んでいる非常に大きなnetCDFファイルがあります

このファイルのサイズ (1200 x 720 x 1440) は、ファイル全体を一度にメモリに入れるには大きすぎるため、一度にすべてを読み取ることはできません。最初の次元は時間を表し、次の 2 次元はそれぞれ緯度と経度を表します。

しかし、一度に 1 年ずつ読むのは非常に遅いです。以下のユースケースでこれを高速化するにはどうすればよいですか?

- 編集

チャンクサイズは 1

  1. 年の範囲を読み取ることができます: nc_file.variables[変数名][0:100, :, :]

  2. いくつかのユースケースがあります:

    年の年:

    /li>


0 投票する
2 に答える
388 参照

python - xarray 変数を 2D numpy 配列で乗算する際の値エラー

次のエラーが表示されます。

2 つの配列の形状は次のとおりです。

このエラーを修正するにはどうすればよいですか?

0 投票する
2 に答える
6658 参照

python - xarray でデータセット座標を置き換える (Python)

、およびのIntensity3 つの次元の値で構成される NetCDF4 形式で保存されたデータセットがあります。座標に次元と同じ名前を付けました(良いか悪いかわかりません...)LoopDelayWavelength

Python でxarray (以前の xray)を使用してデータセットをロードしています。

ここで、元のデータを追跡しながらデータを操作したいと考えています。たとえば、次のようにします。

  1. Delay座標にオフセットを適用し、元のデータ配列を変更しないでDelayください。これは次のように行われるようです:

    ds_ = ds.assign_coords(Delay_corr=ds_.Delay.copy(deep=True) + 25)

  2. データセット内の関連するすべてのデータ配列の座標Delayを置き換えます。Delay_corrただし、これを行う方法がわかりません。ドキュメントには何も見つかりませんでした。

アイテム#2の実行方法を知っている人はいますか?

テスト データを含む NetCDF4 ファイルをダウンロードするには: http://1drv.ms/1QHQTRy

0 投票する
2 に答える
3924 参照

python - 競合する座標を持つ xArray データセットをマージする方法

2 つのデータセットがあり、それぞれに対象となる異なる変数が含まれており、インデックスが不完全 (ただし競合していない) であるとします。

これにより、適切にマージされるように見える 2 つのデータ セットが作成されます。

しかし、そうではありません-試行ages.merge(heights)すると次のことが発生しValueErrorます:

座標を削除kid_namesすると問題が解決します。

座標が のように処理されているように見えますが、DataArrays値が異なるとエラーが発生します。しかし、2 つのインデックスのスーパーセットに拡張するなど、ベース座標のように扱うべきではありませんか? それとも、私がしなければならない別の操作がありますか?

私はxarray 0.7.2とnumpy 1.10.4を使用してpython 3.5を使用しています

0 投票する
1 に答える
2094 参照

python - 2D DataFrames/Arrays の Dict から DataArray を作成

レパートリーを広げるため PandasXarrayforから forに移行しようとしています。N-Dimensional DataArrays

現実的には、特定の軸 (以下のモックの例では患者) に沿ってさまざまなpd.DataFrames(この場合は行 = 月、列 = 属性) を持ち、それらをマージします (パネルやマルチインデックスを使用せずに) :)、 ありがとうございました)。xr.DataArraysそれらを変換して、それらに次元を構築できるようにしたいと考えています。私が話していることの要点を示すために、モック データセットを作成しました。

私が作成したこのデータセットについて100 patients, 12 months, 10000 attributes, 3 replicates (per attribute)、典型的な 4D データセットを想像してみてください。基本的に、私は2D (row=months, col=attributes) で終わるので、この DataFrame3 replicates per attributeは私の辞書の値であり、それが由来する患者がキーです (つまり (patient_x : DataFrame_X) )meanpd.DataFrame

また、np.ndarrayプレースホルダーで行ったラウンドアバウトの方法も含めますが、キーが patient_x で値が DataFrame_X である辞書から N 次元の DataArray を生成できれば非常に便利です。

の辞書をDataArray使用して N 次元を作成するにはどうすればよいですか?XarrayPandas DataFrames

0 投票する
1 に答える
1349 参照

python - Python xarray: 複数のパラメーターによるグループ化

Python 2.7 の xarray パッケージを使用する場合、パンダのように複数のパラメーターをグループ化できますか? 本質的には、次のような操作です。

データセットの各年と月の平均値を取得したい場合。