問題タブ [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.
python - Xarray の `xr.Dataset` から値 (ポイント、ベクトル、配列など) を取得しますか? (パイソン3)
xr.Dataset
オブジェクトから実際にデータを引き出す方法がわかりません。個々の値にアクセスする方法がわかりません。DataArray の場合と同じように、Dataset から値 (ポイント値、ベクトル、配列など) を取得するにはどうすればよいですか?
python - xarray データセットを netcdf またはデータフレームに書き込むセグメンテーション違反
複数の grib2 ファイルから作成された xarray データセットを操作すると、セグメンテーション エラーが発生します。この障害は、netcdf への書き込み時とデータフレームへの書き込み時に発生します。何がうまくいかないかについての提案は大歓迎です。
ファイルの例 ( http://dd.weather.gc.ca/model_hrdps/west/grib2/00/000/から) 'CMC_hrdps_west_RH_TGL_2_ps2.5km_2016072800_P015-00.grib2',...
netcdf への書き出し
セグメンテーション違反 (コアダンプ)
python-2.7 - Basemap を使用した 2 つの xarray データセット間の補間
緯度/経度のグリッド解像度が異なる 2 つの異なる xarray データセットがあります。低解像度の 1 つの xarray を、高解像度の 1 つの xarray と同じ解像度に再グリッド化したいと考えています。いくつかの例 (例: http://earthpy.org/interpolation_between_grids_with_basemap.html ) を見つけましたが、うまくいきません。テスト用に作成した一例を次に示します。
次のエラーが表示されます。
ValueError: xout と yout は同じ形状でなければなりません!
スクリーンショット:
basemap.interp() は xout と yout が同じ形状である必要がありますか? では、var2 は正方形である必要がありますか? これは、私のデータセットにはほとんど当てはまりません! var1 を var2 と同じ解像度に再グリッドするにはどうすればよいですか?
注: 再グリッディング後、var2 に関連するいくつかの条件を考慮して、var1 をサブサンプリングしたいと考えています。例えば:
そのため、補間中のグリッド ポイントの損失を最小限に抑えたいと考えています。
python - Python Xarray で DataArray をデータセットに追加
非常に単純な質問ですが、オンラインで答えを見つけることができません。があり、Dataset
それに名前付きを追加したいだけですDataArray
。のようなものdataset.add({"new_array": new_data_array})
。merge
とupdate
とについては知ってconcatenate
いますが、それは 2 つ以上のmerge
をマージするためのものであり、2 つ以上のを連結して別の を形成するためのものであり、まだ完全には理解していません。試しましたが、次のエラーが表示されます。Dataset
concatenate
DataArray
DataArray
update
dataset.update({"new_array": new_data_array})
私も試しましdataset["new_array"] = new_data_array
たが、同じエラーが発生します。
アップデート
問題は、座標の一部に重複した値があることであることがわかりましたが、それについては知りませんでした。座標はインデックスとして使用されるため、共有座標を結合しようとすると Xarray は (当然のことながら) 混乱します。以下は、動作する例です。
出力:
上記のコードはnames
インデックスとして使用します。コードを少し変更するnames
と、たとえば が重複し、 がnames = ["joaquin", "manolo", "joaquin"]
得られますInvalidIndexError
。
コード:
出力:
したがって、Xarray 自体のバグではありません。それにもかかわらず、私はこのバグを見つけるのに何時間も費やしたので、エラー メッセージがもっと有益であるといいのにと思います。Xarray の協力者がこれをすぐに修正してくれることを願っています。(マージを試みる前に、座標の一意性チェックを入れてください。)
いずれにせよ、以下の私の回答で提供される方法は引き続き機能します。
python - `xarray.Dataset.groupby()` のバグの可能性?
Mac OS X El Capitan 10.11.6 で Xarray バージョン 0.8.0、Python 3.5.1 を使用しています。
次のコードは期待どおりに機能します。
出力:
id_data_array
ただし、すべての要素を区別するために、ほんの少しだけ変更すると、エラーが発生します。
コード:
出力:
これが望ましい動作である場合、非常に奇妙になるため、これはバグのように思えます。DataArray
確かに、グループ化している のすべての要素が異なる場合を含める必要がありますか?
アップデート
Xarray をアンインストールして再インストールしました。新しい Xarray はバージョン 0.8.1 で、問題なく動作するようです。したがって、Xarray 0.8.0 のバグである可能性があります。
python - xarray でデータをフィルタリングする簡潔な方法
xarray 配列の値に非常に単純な「一致ステートメント」を適用する必要があります。
- 値 > 0 の場合は 2 にします
- 値 == 0 の場合、0 にする
- 値が の場合
NaN
、makeNaN
これが私の現在の解決策です。NaN
2D インデックスの代わりにs, .fillna
, & 型強制を使用しています。
これにより、次のように変更されます。
...これに:
パンダにいる間はdf[df>0] = 2
十分でしょう。確かに私は歩行者のことをやっていますが、もっと簡潔な方法はありますか?