問題タブ [netcdf4]
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 - IndexError: データ配列のサイズがスライスに準拠していません
Python 関数の後続の実行時にのみこのエラーが発生するのはなぜですか?
ある種類の netCDF4 ファイルを別の種類に変換する python スクリプトを実行しています。これは、作成したモジュール内の関数を呼び出すことによって実行されます。
スクリプトは複数のファイルを順番に処理します。リストの 2 番目のファイルに到達すると、関数の次のコードの "data['time'][:]" で "IndexError: size of data array does not conform to slice" が表示されます。
ファイルが何であるかは関係ありません。スクリプトは常に最初のファイルを問題なく処理し、次に 2 番目のファイルを停止します。たとえば、関数を 2 回呼び出すと失敗しますが、1 回目は問題ありません。
デバッガーを使用して、varobj[:] と data['time'][:] に最初の呼び出しから 2 番目の呼び出しまで違いがないことを発見しました。次のように:
関数が 2 回目に呼び出され、変数を調べると、次のことがわかります。
関数が初めて呼び出されたときに、変数を調べると、形状が同じサイズでまったく同じ結果が得られます。
この同じエラーがここで報告されます: NetCDF ファイルを作成するための変数を作成するときのエラー
これに基づいて、代わりに次のコードを試しました。
どちらも機能しませんでした。同じ状況で同じエラー。
私はアイデアがありません。次に何を確認するかについての提案を使用できます。
形状の変化をスパイしてくれた Bart に感謝します。それが大きなヒントでした。ファイル名をチェックしていました。
形状の変化を調べたところ、関数内で、入力変数の 1 つが前回関数が呼び出されたときの情報を保持していることがわかりました。
まず、入力変数の 1 つだけが古い情報を保持しているのはなぜでしょうか?
第二に、これはまったく起こらないはずであり、範囲外であるべきです.
最小化されたコードでこの動作を再現しようとしますが、それまでの間、Python のスコープに関する質問への回答をいただければ幸いです。Python がスコープを処理する方法を理解したと思いました。
問題を示す最小限のコードを次に示します。どういうわけか、呼び出し関数はスコープ外の変数 (good_ens) を変更できます。
python - Pythonを使用してグローバルランドデータ同化システム(GLDAS)のnetcdf4ファイルから温度を抽出していますか?
Python を使用して netcdf4 ファイルから温度データを抽出します。これらのコードを使用しましたが、null 値のみが返されます。
出力: