問題タブ [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 - Python xarray.concat の後に xarray.to_netcdf が巨大な新しいファイル サイズを生成する
したがって、xarray パッケージを使用して連結したい 3 つの netcdf4 ファイル (それぞれ約 90 MB) があります。各ファイルには、365 日 (時間) を 0.5 度の解像度 (緯度、経度) で表す 1 つの変数 (dis) があります。私の目的は、時系列が 1095 日 (3 年) になるように 3 つのファイルを連結することです。
各ファイル (2007 年、2008 年、2009 年) には次のものが含まれます。 1 つの変数: dis 3 つの座標: time、lat、lon ... など
それらをインポートして concat モジュールを使用して連結すると、成功したと思います。この場合、モジュールは filestrF から 3 つの netcdf ファイル名を読み取ります。
新しいデータセットの新しい詳細は、次のように表示されます。
私には問題ないようです。しかし、このデータセットを netcdf に書き戻すと、ファイルサイズが爆発的に増大し、1 年間のデータが 700 MB に相当するように見えます。
- 2 つの連結ファイルの場合、約 1.5 GB
- 3 の場合、、、、2.2 GB
- 4 の場合、、、、2.9 GB
私は 3 x 90 MB = 270 MB を期待していました。変数 dis およびその他の次元 lat と lon のサイズは一定のままです。
サイズの巨大な高級化について何かアイデアはありますか? 連結せずにファイルの読み取りと書き込みをテストしましたが、サイズを増やすことなくこれを正常に実行できました。
python - datetime64次元のpython xarray concat groupby
次の xarray データセットがあります。
dis 変数には nan がありますが、配列全体は nan ではありません。ディメンション time の長さは、10 年分の日次データ (3652 日) に相当します。
私がやりたいことは、各月と各グリッドスクエア (緯度、経度) について、10 年間の時系列の月次平均を取得することです。したがって、出力データセットは次のようになります。
私が見た1つのオプションは、私が望むことをほとんど行うものです:
ただし、この出力は 12 項目の配列にすぎません。つまり、緯度と経度の両方の次元が失われます。
おそらくdatetime64メソッドを使用してこれを行う簡単な方法があると思いますが、それらを完全に理解するのに苦労しました。
悲しいかな、これを書いている間、私は次のようにして管理しました:
与える:
ただし、groupby を使用したコードの最初の行に沿った、より Pythonic な方法はありますか?
ありがとう
python - Python xarray を使用した 'where' によるマスキングが機能しなくなった
アップデート後、困っていxarray
ます。
寸法が次の塩分データセットがあります。
特定のステーションについて、選択した深さ、たとえば -10 m の塩分を取得したいと考えています。ディメンション レイヤーには、時間とともに変化する深さの値が含まれます。つまり、特定のレイヤーには、(水位の変動により) 時間とともに異なる深さの値が含まれます。
以前は、次のことを行っていました。
これはうまく機能していました。
しかし、今、私はこのエラーが発生しています:
誰かがここで何が起こっているのか知っていますか?
または、データセットをスライスするよりスマートな方法はありますか?
私が使用している xarray バージョンは次のとおりです。
xarray 0.7.2
sys.バージョン:
編集: 追加されたデータセットの詳細
python - matplotlib を使用して 1 つの Figure に 4 つの箱ひげ図を作成する
そのため、複数のデータ ファイルがあり、そのすべてが情報を簡単に処理するためにデータフレームを使用しています。ファイルはすべて NetCDF ファイルです。同じ図に 4 つの boxplot グラフをプロットして、すべてを簡単に比較できるようにしようとしています (同じ時間の選択範囲の平均が異なる時間にどのようにピークに達するかを見ています)。これはわずかに異なる時間間隔で取得された観測データであり、異なる変数番号は異なる時間依存変数に対応するため、X 値と Y 値は異なります。
サブプロットを使用して、matplotlib を使用してこれを実現しようとしましたが、3 つの空のグラフが吐き出されるだけです。どうすればこれを実現できますか?
コードは次のとおりです。
正確に何が起こっていないのですか?
さて、次のように編集しました。
今、私は 5 つの図を持つ 5 つのウィンドウを取得しています。ウィンドウ全体を占める 1 つの図には、4 つのサブプロットにある必要があるすべてのデータが含まれていますが、他の 4 つの図には、希望する位置にそれぞれサブプロットがありますが、空です。
python - Python で grib2 ファイルをロードする
grib2 ファイルを読み込もうとしていますが、ファイルに問題があるのか、それとも読み込もうとしている方法に問題があるのかわかりません。
ファイルはここから抽出されます(ここからダウンロードしたのではなく、ここから取得した同僚のフォルダーからコピーしたため、実際には同じファイルである必要があります...しかし、挿入しようとしましたftp アドレスと同じエラーが発生しました)。
疲れたpygrib
このエラーが発生します:
私は試したxarray
そして、私はこのエラーが発生します
直接やってみたNIO
からのものと同じエラーが発生しますxarray
。
なにか提案を?
python - xarray groupby を理解する
に似た、各グループのメンバー数を数えようとしていpandas.DataFrame.groupby.count
ます。ただし、機能していないようです。次に例を示します。
ただし、次の出力が期待されます。
どうしたの?
言い換えると:
python - Python:リストのリストから要素の数を数え、マトリックスにフィードしますか?
リストのリストが与えられた場合、各リストの長さは
要素の繰り返し回数を数えて、それを別のマトリックスに送りたいと思います。
frame
各リストを として、フレーム内の要素をとして呼び出しましょうstates
。
これが私のコードで、正常に動作します:
私の場合、リストM
には が28,800 lists
あり、各リストには 75 個の要素 (0 から 499 までの数字) が含まれています。
これにより、マトリックスのサイズは 500X 28,800 になります。コードが完了するまでに約 30 分かかります。問題はループにあると思います。for
コードをより高速に実行できるように効率的に記述する方法はありますか?
python - 3 次元の xr.DataArray (Xarray) を軸に沿って 2 次元にフラット化/分解/縮小しますか?
私は、異なるクラス/サブタイプのレプリケートを保存しているデータセットを持っています(それを何と呼ぶべきかわかりません)。次に、それぞれの属性を保存します。基本的に、5 つのサブタイプ/クラス、サブタイプ/クラスごとに 4 つの複製、および測定される 100 の属性があります。
np.ravel
またはnp.flatten
を使用して2次元をマージできる方法はありXarray
ますか?
subtype
これで、dimをマージしたいreplicates
ので、2D配列があります(pd.DataFrame
またはattributes vs. subtype/replicates
.
「coord_1 | coord_2」などの形式にする必要はありません。元の座標名を保持すると便利です。たぶん、groupby
これを行うことができるような何かがありますか?Groupby
いつも私を混乱させるので、それがネイティブなものxarray
であれば素晴らしいでしょう.