1

この奇妙な netCDF ファイルに適切な時間軸を与えるにはどうすればよいでしょうか?

「時間」は次元と変数の両方として存在しますが、時間変数は「シリアル\日付\番号」を次元として使用します。

2 つの課題があります。1. 変数とディメンションの問題。2. 「serial\ date\ number」は、一部のシステムではスペース (バックスラッシュ区切り記号付き) を示しているように見えますが、他のシステムではアンダースコア (「serial_date_number」) が含まれています。

netcdf 
dimensions:
 lon = 80 ;
 lat = 41 ;
 pres = 27 ;
 time = 12053 ;
 serial\ date\ number = 12053 ;
variables:
 double u_mjo(time, pres, lat, lon) ;
 double lon(lon) ;
 lon:units = "degrees_east" ;
 double lat(lat) ;
 lat:units = "degrees_north" ;
 double p_level(pres) ;
 p_level:units = "hPa" ;
 double time(serial\ date\ number) ;
 time:units = "days since 0000-01-01 00:00 UTC" ;
  ...
4

3 に答える 3

2

NCOコマンドのみを使用して(ncdump /手動編集/ ncgenステップなしで)私のために働いた手順は次のとおりです。

OPeNDAP データセットからローカルの netCDF ファイルに 4 つのタイム ステップを抽出しますallfields.nc

   ncks -d time,0,3 -d serial_date_number,0,3
    http://weather.rsmas.miami.edu/repository/opendap/synth:100ae90b-71ac-4d38-add9-f8982a976322:L2FsbGZpZWxkcy5uYw==/entry
    -O allfields.nc

time変数を別のファイルに抽出しますtime.nc

ncks -v time allfields.nc time.nc

変数を除くすべてを別のファイルに抽出します(これにより、問題のあるディメンションも削除されます)。timefixed.ncserial_date_number

ncks -C -x -v time allfields.nc fixed.nc

次元の名前serial_data_numberを に変更time:

ncrename -O -d serial_date_number,time time.nc

固定時間のファイルを時間なしのファイルに追加します。

ncks -A time.nc fixed.nc

このワークフローで使用および作成したファイルは、http: //geoport.whoi.edu/thredds/catalog/usgs/data2/rsignell/models/mapes/catalog.htmlで確認できます。

于 2015-04-21T10:40:47.347 に答える
0

Ubuntu 14.04 では、次のことができました。

ncrename -v variable\ with\ whitespace,variable_with_whitespace filein.nc fileout.nc
于 2016-03-04T18:15:27.650 に答える