################################################################## First inversion with CHIMERE ################################################################## .. role:: bash(code) :language: bash Here we run an inversion with :doc:`CHIMERE` from a yaml elaborated for a forward simulation. Therefore, only the changes and additions compared to the forward yaml are described here. .. warning:: It is a good practice which is very strongly recommended always to run a forward simulation and perform extensive checks on it before running an inversion. Prepare the executable ----------------------- If you do not use the automatic compilation by the CIF, be sure to compile the tangent-linear and/or adjoint codes (depending on the type of inversion to run) with: .. code-block:: bash ./compile_chimere -m L ./compile_chimere -m A See :doc:`here ` for more details. ⟹ check that you obtain executables in sub-directories :bash:`src_tl` and :bash:`src_ad` named respectively :bash:`tlchimere.e` (about 2.7M in size) and :bash:`achimere.e` (about 2.9M in size). Section for PyCIF parameters ----------------------------- Don't forget to specify a :bash:`WORKDIR` for the inversion, with enough space available. Most inversions require iterations and then, require more space than the matching forward simulation. .. include:: ../common/mode.rst .. include:: ../common/unchanged.rst Data vector (:bash:`datavect`) ------------------------------ Components which are not inverted .................................. The component for observations and the components for the usual inputs of CHIMERE which are not to be inverted are the same as for the forward simulation. XX parameters dans concs???XXX Components to be inverted .......................... For each component to be inverted, the parameters must be detailed and at least the horizontal resolution to control must be specified. Any component that does not comply will NOT be inverted. For example, to invert S1 emissions, from the forward yaml: .. code-block:: yaml datavect: plugin: name: standard version: std components: meteo: dir: directory_containing_METEO.YYYYMMDDHH.*.nc_files file: METEO.%Y%m%d%H.X.nc plugin: name: CHIMERE version: std type: meteo file_freq: XH flux: dir: directory_containing_AEMISSIONS.YYYYMMDDHH.*.nc_files file: AEMISSIONS.%Y%m%d%H.X.nc plugin: name: CHIMERE version: AEMISSIONS type: flux file_freq: XH specify at least: .. code-block:: yaml datavect: plugin: name: standard version: std components: meteo: dir: directory_containing_METEO.YYYYMMDDHH.*.nc_files file: METEO.%Y%m%d%H.X.nc plugin: name: CHIMERE version: std type: meteo file_freq: XH flux: dir: directory_containing_AEMISSIONS.YYYYMMDDHH.*.nc_files file: AEMISSIONS.%Y%m%d%H.X.nc plugin: name: CHIMERE version: AEMISSIONS type: flux file_freq: XH parameters: S1: dir: directory_containing_AEMISSIONS.YYYYMMDDHH.*.nc_files file: AEMISSIONS.%Y%m%d%H.X.nc plugin: name: CHIMERE version: AEMISSIONS type: flux hresol: hpixels err: 0.1 The emissions of S1 will be inverted at the pixel's resolution with variances set at 10% of the prior flux value in each pixel; no correlations are used. Many possibilities are easily accessible for the resolutions (horizontal, vertical and temporal), the correlations (through time and space) and the specification of error values: see :doc:`the control vector related arguments in the data vector` for full descriptions, as well as the examplesXX link?XX. .. include:: ../common/run.rst .. include :: ../common/results.rst