netCDF Operator (NCO)
っというものがあるんですね。この中にあるncksというコマンドを使えばnetCDFファイルの中から不要な変数を取り除くことができる→容量を減らすことができる。
以下はあるncファイルからPISCESのオフラインシミュレーションに必要な変数だけを出力するコマンドです:
ncks -v nav_lon,nav_lat,deptht,time_counter,votemper,vosaline,somixhgt,sowaflcd,soicecov,soshfldo,sowindsp Lab_T_94_01.nc ~/newdirectory/Lab_T_94_01.nc
ncks -v nav_lon,nav_lat,depthw,time_counter,votkeavt,vovecrtz Lab_W_94_01.nc ~/newdirectory/Lab_W_94_01.nc
ncks -v nav_lon,nav_lat,depthu,time_counter,vozocrtx Lab_U_94_01.nc ~/DATA1/Lab_Sea/Lab_U_94_01.nc
ncks -v nav_lon,nav_lat,depthv,time_counter,vomecrty Lab_V_94_01.nc ~/DATA1/Lab_Sea/Lab_V_94_01.nc
ここのオプション「-v」のあとに定義しているのが出力したい変数。
おかげさまで…
11G Aug 6 17:47 Lab_T_94_01.nc
1.7G Aug 6 17:50 Lab_U_94_01.nc
1.7G Aug 6 17:53 Lab_V_94_01.nc
8.1G Aug 6 18:08 Lab_W_94_01.nc
↑これだけあったファイルが→→→
3.4G Aug 7 11:15 Lab_T_94_01.nc
1.7G Aug 7 11:39 Lab_U_94_01.nc
1.7G Aug 7 11:42 Lab_V_94_01.nc
3.3G Aug 7 11:20 Lab_W_94_01.nc
まさに劇的ビフォーアフター☆4Dデータが多いTとWファイルはかなり容量を減らすことができました。U&Vはさほどかわりはない。
ちなみにACEnetのクラスターでは
module load nco
と打てばncoのコマンドが使えるようになっている♪
追伸:
「-A」オプションを使えばファイルの内容を書き換えることができる!
例
file1.ncに入っているvovecrtzという変数をfile2.ncに上書き保存する場合:
ncks -A -v vovecrtz file1.nc file2.nc
0 件のコメント:
コメントを投稿