問題タブ [nco]

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 投票する
3 に答える
860 参照

python - NetCDF ファイル - レコードの次元を固定した後、ファイルのサイズが 1/3 になるのはなぜですか?

私はこれを理解するのに苦労しています。

次の次元と変数を使用して netcdf4 ファイルを作成します (特に無制限のpoint次元に注意してください)。

このファイルにループ内のデータを入力するPythonプログラムがあります(したがって、無制限のレコード次元-ファイルの大きさはアプリオリにわかりません)。

ファイルに入力すると、サイズは 103MB になります。

私の問題は、このファイルからのデータの読み取りが非常に遅いことです。これは、チャンキングと無制限のpoint次元に関係していると思いますか?

私はncks --fix_rec_dmnファイルを実行し、(多くの攪拌の後) サイズがわずか 32MB の新しい netCDF ファイルを生成しました (これは、含まれるデータにほぼ適したサイズです)。

これはサイズの大きな違いです。なぜ元のファイルはこれほど肥大化しているのでしょうか? また、このファイル内のデータへのアクセスは桁違いに高速です。たとえば、Python では、hs変数の内容を読み取るのに、元のファイルでは 2 秒、固定レコード次元ファイルでは 40 ミリ秒かかります。

私が抱えている問題は、いくつかのファイルに多くのポイントが含まれており、大きすぎて実行できないように見えることですncks(私のマシンはメモリが不足していて、8GB あります)。そのため、すべてのデータを固定レコード次元に変換できません。 .

なぜファイル サイズが大きく異なるのか、元のファイルを小さくして読みやすくする方法を説明できる人はいますか?

ところで、私は zlib 圧縮を使用していません (浮動小数点値を整数 short にスケーリングすることを選択しました)。

クリス

編集 私のPythonコードは、基本的に、3か月にわたる複数の個々のモデル予測ファイルから、配置されたモデルと観測データの1つの時系列ファイルを構築しています。私の予測モデルは 1 日に 4 回実行され、3 か月分のデータを集計しているため、約 120 ファイルになります。

プログラムは、各ファイルから予測期間のサブセットを抽出するため (et T+24h -> T+48h)、ファイルを連結するのは簡単なことではありません。

これは私のコードが行っていることの大まかな概算です (実際にはより多くの変数を読み書きしますが、わかりやすくするためにここでは 2 つだけ示しています)。

興味深いことに、出力サイズを期待どおりのサイズにするのNETCDF3_CLASSICではなく、出力ファイル形式を作成した場合。NETCDF4NETCDF4 の出力が肥大化しているようです。

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

netcdf - netCDF ファイル内の変数の 1 つに新しい次元を定義します

多くの変数 (1d、2d、3d、および 4d) を含む NetCDF ファイルがあります。3d 変数の 1 つに新しい次元を追加したいと考えています。

より明確にするために、次のように仮定します。

3d 変数があります: A(d1, d2, d3)

4d 変数が欲しい: A(d1, d2, d3, d4)

実際、d4 は変数に追加したい新しい次元です。ファイルに d4 がありません。値が 1 つしかないことはわかっています。

誰かが私を案内してくれれば幸いです。

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

python - 境界変数を netcdf ファイルに追加する

既存の netCDF ファイルに緯度の境界を追加したいと考えています。http://www.cgd.ucar.edu/cms/eaton/netcdf/CF-20010629.htm#bnds境界の定義については、 を参照してください。

境界を自動的に追加できるコマンドはありますか? nco、netCDF4、または cdms ツールキットを使用した任意のソリューションを受け入れます。ただし、後処理ソリューションにすることをお勧めします。

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

python - netcdf ファイルですべての変数と次元を int/float から double に変換します

foll を含む netCDF ファイルがあります。ncdump:

すべての変数と次元を int/float から double に変換する nco コマンドはありますか?

私はこれを見つけました:

ただし、これは一度に1つの変数しか機能せず、ファイルには約30の変数があります