Reading and plotting the data in controlvect.nc

Reading and plotting the data in controlvect.nc#

Warning

To generate controlvect.nc files, use the option save_out_netcdf in controlvect.

The NetCDF controlvect files are stored in $WORKDIR/controlvect/THE_VARIABLE with THE_VARIABLE = flux, inicond, latcond, topcond, etc, according to the components selected for inversion in datavect (see tutorial for an inversion).

They are formatted as follows:

netcdf controlvect_inicond_CH4 {
dimensions:
	time = TT ;
	lev = NL ;
	lat = NLAT ;
	lon = NLON ;
	time_phys = PP ;
	latc = NLATC ;
	lonc = NLONC ;
variables:
	int64 time(time) ;
		time:units = "days since 2008-01-01 00:00:00" ;
		time:calendar = "proleptic_gregorian" ;
	int64 lev(lev) ;
	double x(time, lev, lat, lon) ;
		x:_FillValue = NaN ;
	double xb(time, lev, lat, lon) ;
		xb:_FillValue = NaN ;
	double b_std(time, lev, lat, lon) ;
		b_std:_FillValue = NaN ;
	int64 time_phys(time_phys) ;
		time_phys:units = "microseconds since 2008-01-01 00:00:00" ;
		time_phys:calendar = "proleptic_gregorian" ;
	double x_phys(time_phys, lev, lat, lon) ;
		x_phys:_FillValue = NaN ;
	double xb_phys(time_phys, lev, lat, lon) ;
		xb_phys:_FillValue = NaN ;
	double b_phys(time_phys, lev, lat, lon) ;
		b_phys:_FillValue = NaN ;
	float latitudes(lat, lon) ;
		latitudes:_FillValue = NaNf ;
	float longitudes(lat, lon) ;
		longitudes:_FillValue = NaNf ;
	double latitudes_corner(latc, lonc) ;
		latitudes_corner:_FillValue = NaN ;
	double longitudes_corner(latc, lonc) ;
		longitudes_corner:_FillValue = NaN ;
	double areas(lat, lon) ;
		areas:_FillValue = NaN ;

// global attributes:
		:_NCProperties = "version=2,netcdf=4.8.0,hdf5=1.10.6" ;
}

with:

  • TT: the number of time steps at the controlled resolution. For example, fluxes inverted at a weekly time resolution during two months will give TT=8

  • NL, NLAT, NLON, NLATC, NLONC: the number of vretical levels, latitudes, longitudes, corners’ latitudes, corners’ longitudes of the physical grid of the control vector.

  • PP: the number of time steps at the native resolution of THE_VARIABLE. For example, fluxes inverted at a weekly time resolution during two months (March and April) but provided at an hourly time resolution will give PP = (31 + 30) x 24 = 1464

  • x are the increments

  • xb are the prior values of the increment (generally, 1 for multiplicative corrections, 0 for additive ones)

  • b_std is the diagonal (variances) of the \(\mathbf{P}^\textrm{b}\) matrix

  • x_phys are the physical values of the posterior field

  • xb_phys are the prior values of the physical field (the prior)

  • b_phys is the diagonal (variances) of the \(\mathbf{P}^\textrm{b}\) matrix in physical units.

Examples for reading and plotting controlvect.nc files are given in the VERIFY project.