increments_gen.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. '''
  2. Generate a test increments file
  3. and the SlaReference file
  4. Requires coordinates and depth file
  5. D. J. Lea Sep 2014
  6. '''
  7. import netCDF4
  8. import numpy as np
  9. # example files to get lon and lat
  10. exdir='/hpc/data/nwp/ofrd/frld/FORCING/ORCA2_LIM_nemo_v3.6'
  11. exfile1='coordinates.nc'
  12. infile1=exdir+'/'+exfile1
  13. fileid=netCDF4.Dataset(infile1, mode='r')
  14. nav_lon=fileid.variables['nav_lon'][:,:]
  15. nav_lat=fileid.variables['nav_lat'][:,:]
  16. fileid.close
  17. print np.shape(nav_lon)
  18. exfile2='data_1m_potential_temperature_nomask.nc'
  19. infile2=exdir+'/'+exfile2
  20. fileid=netCDF4.Dataset(infile2, mode='r')
  21. nav_lev=fileid.variables['depth'][:]
  22. fileid.close()
  23. nshp=np.shape(nav_lon)
  24. ny=nshp[0]
  25. nx=nshp[1]
  26. nz=np.size(nav_lev)
  27. nt=1
  28. #create a new file
  29. outdir='.'
  30. outfile='assim_background_increments_test.nc'
  31. print "creating: ",outfile
  32. ncfile=netCDF4.Dataset(outdir+'/'+outfile, mode='w', format='NETCDF3_CLASSIC')
  33. ncfile.createDimension('x',nx)
  34. ncfile.createDimension('y',ny)
  35. ncfile.createDimension('z',nz)
  36. ncfile.createDimension('t',size=0)
  37. ncnav_lat = ncfile.createVariable('nav_lat','f4',('y','x'))
  38. ncnav_lat[:,:]=nav_lat
  39. ncnav_lon = ncfile.createVariable('nav_lon','f4',('y','x'))
  40. ncnav_lon[:,:]=nav_lon
  41. ncnav_lev = ncfile.createVariable('nav_lev','f4',('z'))
  42. ncnav_lev[:]=nav_lev
  43. ncvar = ncfile.createVariable('bckineta','f8',('t','y','x'))
  44. ncvar[0,:,:]=0.1
  45. ncvar = ncfile.createVariable('bckins','f8',('t','z','y','x'))
  46. ncvar[0,:,:,:]=0.1
  47. ncvar = ncfile.createVariable('bckint','f8',('t','z','y','x'))
  48. ncvar[0,:,:,:]=0.1
  49. ncvar = ncfile.createVariable('bckinu','f8',('t','z','y','x'))
  50. ncvar[0,:,:,:]=0.1
  51. ncvar = ncfile.createVariable('bckinv','f8',('t','z','y','x'))
  52. ncvar[0,:,:,:]=0.1
  53. ncvar = ncfile.createVariable('bckinseaice','f8',('t','y','x'))
  54. ncvar[0,:,:]=0.1
  55. ncvar = ncfile.createVariable('bckinsshobias','f8',('t','y','x'))
  56. ncvar[0,:,:]=0.1
  57. ncvar = ncfile.createVariable('time_counter','f8',('t'))
  58. ncvar[0]=0
  59. ncvar = ncfile.createVariable('time','f8')
  60. ncvar[:]=10101
  61. ncvar = ncfile.createVariable('z_inc_dateb','f8')
  62. ncvar[:]=10101
  63. ncvar = ncfile.createVariable('z_inc_datef','f8')
  64. ncvar[:]=10102
  65. ncfile.close()
  66. #create sla reference file
  67. outfile='slaReferenceLevel_test.nc'
  68. print "creating: ",outfile
  69. ncfile=netCDF4.Dataset(outdir+'/'+outfile, mode='w', format='NETCDF3_CLASSIC')
  70. ncfile.createDimension('x',nx)
  71. ncfile.createDimension('y',ny)
  72. ncnav_lat = ncfile.createVariable('nav_lat','f4',('y','x'))
  73. ncnav_lat[:,:]=nav_lat
  74. ncnav_lon = ncfile.createVariable('nav_lon','f4',('y','x'))
  75. ncnav_lon[:,:]=nav_lon
  76. ncvar = ncfile.createVariable('sossheig','f4',('y','x'),fill_value=1e20)
  77. ncvar[:,:]=0.01
  78. ncfile.close()