0

データの毎日のスナップショットを表す大量の netcdf ファイルがあります。ファイル内の変数の最大値と最小値を名前リストに追加するように求めているソフトウェアにこれらを接続したいと考えています。変数に格納されている最大値と最小値を調べるにはどうすればよいですか?

私の変数は深さです(これは、その変数のサイズのアイデアのための ncdump からの抜粋です)...

dimensions:
    z = 40 ;
    lat = 224 ;
    lon = 198 ;
    time = 1 ;
variables:
    float depth(z, lat, lon) ;
        depth:long_name = "cell centre depth" ;
        depth:units = "m" ;
...

私はまだこれらのファイルを扱う初心者であり、これまで netcdf 処理に NCO 演算子や matlab を使用してきました。これらのツールのいずれかを使用してこの最大最小照会を実行する簡単な方法はありますか?

今まで、値の範囲が属性に表示される netcdfs があったか、単純な ncdump -v で値を確認するか変数を matlab に保存して、自動表示最大最小ですが、これらの迅速で汚い方法を使用するには値が多すぎます。

どんな助けでも大歓迎です。ごきげんよう、ベックス

4

3 に答える 3

1

NCO の方法の 1 つは、ncrngコマンドを使用することです。これは、より長いncap2コマンド の単なる「フィルター」です。zender@roulee:~/nco/data$ ncrng three_dmn_rec_var in.nc 1.000000 to 80.000000 つまり、3 ワードのコマンドです。フィルターに関するドキュメントはこちらです。

于 2015-03-10T12:01:41.997 に答える
0

新しいバージョンの MATLAB を使用している場合は、関数ncreadを使用してみてください。

% Update with your filename and variable name below.
% This reads in the full variable into MATLAB
variableData = ncread(filename,varname);
% Query max and min values
minValue     = min(variableData(:))
maxValue     = max(variableData(:))
% you could also write this information back to the file for future reference.
% see https://www.unidata.ucar.edu/software/netcdf/docs/netcdf/Attribute-Conventions.html
ncwriteatt(filename, varname, 'valid_range', [minValue, maxValue]);
% check result
ncdisp(filename, varname);

すべてのファイルをループするループと、ファイル内のすべての変数をループするループ (ncinfo を参照) の 2 つのループを外部に追加して、全体を自動化することができます。

于 2013-11-20T13:00:26.717 に答える