Skip to content

Commit

Permalink
Add global inversion capability + OH optimization (#157)
Browse files Browse the repository at this point in the history
* Add initial modifications for global inversion capability

(1) Added a sample config file in envs/Harvard-Cannon/ for doing a global
    inversion. The main differences from the standard config file include
    setting NestedGrid to false and defining lat/lon bounds.

(2) Modified make_state_vector_file.py to account for global grids. This
    involved passing a logical to determine if a regional or global grid
    is used. If using a global grid, the check for a compatible subdomain
    and the calculation of the buffer zone can be skipped.

(3) Add check for nested grid when determining land cover file name in both
    src/utilities/util.py and in setup_imi.sh. When using global grids, the
    two character region ID and period aren't needed.

Signed-off-by: Melissa Sulprizio <[email protected]>

* Replace "nested" terminology with "regional" throughout code and config files

To avoid confusion for IMI users that are not familiar with GEOS-Chem
"nested" grids, we now use ther term "regional" in the IMI. This should
be more clear to let users know they can run regional or global IMIs.

Signed-off-by: Melissa Sulprizio <[email protected]>

* Update inversion scripts for GEOS-Chem 14.1.0 output

In 14.1.0, the SpeciesConc_ variable name changed to SpeciesConcVV_. This
has now been updated in src/inversion_scripts/.

Signed-off-by: Melissa Sulprizio <[email protected]>

* add bug fixes for 2x2.5 global inversion

* Continuous Integration Manifest Generation

* bug fixes to work with 2x2.5, parallelization of
jacobian and faster calc_sensi

* Continuous Integration Manifest Generation

* bug fixes for 2x2.5, parallelize jacobian and faster calc_sensi

* Add updates to support 4x5 and 0.5x0.625 resolutions and MERRA-2 meteorology

Also allow users to specify number of simultaneous jobs to run in the
SLURM job array. Setting MaxSimultaneousRuns: -1 will submit all runs
simultaneously.

Signed-off-by: Melissa Sulprizio <[email protected]>

* Add fixes following expanded resolution support updates

- Fix path to GEOS-Chem environment files to look within the InversionPath.
  Print error and exit if the env file can't be found.
- Fix logical statements for isRegional in setup.sh and template.sh.
- Fix resolution strings in template.sh.
- Make config.yml (standard and Harvard-Cannon) files consistent.

Signed-off-by: Melissa Sulprizio <[email protected]>

* Add minor fixes for global inversion

- Add fixes for coarse resolution options to imi_preview.py
- Add verbose output to clarify what IMI is doing in certain places
- Do not call s3_upload.py if S3Upload is false
- Fix default settings in config.yml for Harvard global inversions

Signed-off-by: Melissa Sulprizio <[email protected]>

* Fix minor conflicts and typos brought in by earlier commits

Signed-off-by: Melissa Sulprizio <[email protected]>

* Add fixes and updates for global inversion capability

- Add flexibility to setup.sh and template.sh that allows users to specify
  Met in upper or lower case.
- Add error check in jacobian.sh to ensure MaxSimultaneousRuns is less than
  the total number of runs (nElements).
- Move loading of GEOS-Chem environment to run_imi.sh instead of repeating
  in other components of the IMI.
- Fix white space inconsistency in statevector.sh.

Signed-off-by: Melissa Sulprizio <[email protected]>

* Update global inversion configuration file for recent updates

Signed-off-by: Melissa Sulprizio <[email protected]>

* Update documentation for global IMI capability

In imi-config-file.rst:
  - Added descriptions for new variables added for the global IMI option
  - Modified some existing descriptions to include expanded options for
    coarse resolutions
  - Added placeholders for missing descriptions (e.g. Kalman filter options)

In custom-region.rst:
  - Replaced uses of nested and use regional instead

Signed-off-by: Melissa Sulprizio <[email protected]>

* Update Harvard-Cannon environment files

Signed-off-by: Melissa Sulprizio <[email protected]>

* Add more fixes for global inversion capability

Signed-off-by: Melissa Sulprizio <[email protected]>

* Add option for OH optimization to IMI

Additional options to optimize for OH have been added to config.yml. This
includes the switch for turning this option on (OptimizeOH), PriorErrorOH,
and PerturbValueOH. When enabling this option, an additional run will be
added to the jacobian runs. Code has also been added to the inversion
scripts for including OH optimization.

Signed-off-by: Melissa Sulprizio <[email protected]>

* Global branch working changes

* Add bug fix in make_state_vector_file.py

Code to assign boundary condition grid boxes to the state vector needed
to be indented following the addition of "if is_regional:" block.

Signed-off-by: Melissa Sulprizio <[email protected]>

* add imi config file details to documentation

* edits for OH test

* Edits for OH

* fixed OH scaling

* save results

* remove large ice fraction from native state vector before file is saved

* remove land cover notebook

* merge massive cluster bugfix for global state vector

* check number of elements in native SV

* add ice threshold based on JE edits

* move calc superobservation error to utils

* Use superobservations to estimate sensitivities in the preview

* use number of obs per grid cell to calculate superobservation error

* Add fixes for global inversion

- Remove hardcoded paths and modified filenames.
- Uncommented code blocks that are needed. They were likely commented out
  for testing.
- Make sure Harvard config files are up to date and consistent
- Update run_imi.sh to use sapphire partition on Cannon
- Remove "if np.abs(lc.lon.values - hd.lon.values).max() != 0" check from
  make_state_vector_file.py since it causes the IMI to crash for regional
  grids.

Signed-off-by: Melissa Sulprizio <[email protected]>

* Add fix to properly create nested grid template run directory

The run directories were created for global domains by default, causing
the nested grid simulation options in geoschem_config.rc of the template
run directory (and all subsequent GEOS-Chem run directories) to be
incorrectly set. We now update template.sh to specify nested NA domains if
isRegional is true and further modify the lat/lon values from there.

Also here, run_imi.sh has been updated to (1) send an email when the IMI has
completed (when submitting via slurm) and (2) move the imi_output.log file
instead of copying it to the IMI output directory.

Signed-off-by: Melissa Sulprizio <[email protected]>

* Revert speedup code in calc_sensi.py to avoid dask errors

Removed updates to speed up calc_sensi.py originally introduced in 2d54070
because they caused the following error with the existing IMI python environment:

```
   Traceback (most recent call last):
     File "/n/holyscratch01/jacob_lab/msulprizio/Test_IMI_globalMerge_noOH/inversion/calc_sensi.py", line 187, in <module>
       calc_sensi(
     File "/n/holyscratch01/jacob_lab/msulprizio/Test_IMI_globalMerge_noOH/inversion/calc_sensi.py", line 123, in calc_sensi
       pert_data = xr.open_dataset(
     File "/n/home05/msulprizio/python/mamba/envs/imi_env/lib/python3.9/site-packages/xarray/backends/api.py", line 575, in open_dataset
       ds = maybe_decode_store(store, chunks)
     File "/n/home05/msulprizio/python/mamba/envs/imi_env/lib/python3.9/site-packages/xarray/backends/api.py", line 485, in maybe_decode_store
       from dask.base import tokenize
   ModuleNotFoundError: No module named 'dask'
````

Signed-off-by: Melissa Sulprizio <[email protected]>

* Add several fixes to invert.py

Here we revert many changes introduced in commit ce1298e for fixing OH
scaling in the inversion, including:

(1) Removed addition of 1 to n_elements for OH perturbations. This is
    already accounted for in the value of n_elements.

(2) Remove hardcoded path to output data from jacobian.py

(3) Restore original code for K, KT, and delta_y

(4) Revert default value of gamma to 0.5

(5) Set perturb_oh  prior_err_oh to 0.0 by default and overwrite only when
    OH optimization is activated

Signed-off-by: Melissa Sulprizio <[email protected]>

* Remove land cover threshold as default in make_state_vector_file.py

A threshold of land > 1% and ice < 10% was added when determining land
cover for generation of the the state vector file. This was added for the
global inversions, but we have disabled that as the default option here.
If users want to impose a threshold, they can do so on their own or we
could add this as a future option.

Specifying the threshold and/or code setting state vector to nan or 0 resulted
in netCDF file that could not be properly read by HEMCO, so those updates
have also been reverted.

Signed-off-by: Melissa Sulprizio <[email protected]>

* Add fixes following review comments

1. Fix comments in config files. Also make default switches consistent throughout the config files.

2. Remove unnecessary #SBATCH lines from posterior.sh and run_inversion.sh.

3. Fix indentation of if statements in run_inversion.sh.

4. Remove .data from ds prompt in make_gridded_posterior.py as it may be prone to errors.

5. Remove src/inversion_scripts/invert_calcJ.py. It is not used.

Signed-off-by: Melissa Sulprizio <[email protected]>

* Additional fixes for review comments

1. In run_imi.sh switch back to copying imi_output.log file to the
   InversionPath and add a check at the beginning of the run to see if
   an old imi_output.log file exists and if so remove it before starting
   the IMI.

2. Fixed indexing of Sa_diag and xhat in invert.py to properly account for
   OH and BC optimization options. Also removed bc_idx and OH_idx and
   simply use scale_factor_idx to denote which elements to apply the scale
   factor to.

3. Fix scaling weighting of Sa for OH to properly account for the number
   of elements instead of being hardcoded to 1000. Also include Maasakkers
   et al. (2019) citation.

Signed-off-by: Melissa Sulprizio <[email protected]>

---------

Signed-off-by: Melissa Sulprizio <[email protected]>
Co-authored-by: Megan He <[email protected]>
Co-authored-by: laestrada <[email protected]>
  • Loading branch information
3 people authored Mar 7, 2024
1 parent 7254271 commit 7c57d91
Show file tree
Hide file tree
Showing 36 changed files with 976 additions and 477 deletions.
56 changes: 32 additions & 24 deletions config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,10 @@ SpinupMonths: 1
## Use blended TROPOMI+GOSAT data (true)? Or use operational TROPOMI data (false)?
BlendedTROPOMI: false

## Region of interest
## These lat/lon bounds are only used if CreateAutomaticRectilinearStateVectorFile: true
## Otherwise lat/lon bounds are determined from StateVectorFile
LonMin: -105
LonMax: -103
LatMin: 31
LatMax: 33
## Is this a regional inversion? Set to false for global inversion
isRegional: true

## Use nested grid simulation?
## Must be "true" for IMI regional inversions
NestedGrid: true

## Select nested grid region (for using pre-cropped meteorological fields)
## Select two character region ID (for using pre-cropped meteorological fields)
## Current options are listed below with ([lat],[lon]) bounds:
## "AF" : Africa ([-37,40], [-20,53])
## "AS" : Asia ([-11,55],[60,150])
Expand All @@ -38,9 +29,17 @@ NestedGrid: true
## "OC" : Oceania ([-50,5], [110,180])
## "RU" : Russia ([41,83], [19,180])
## "SA" : South America ([-59,16], [-88,-31])
## "" : Use for global met fields (global simulation/custom nested grids)
## "" : Use for global global simulation or custom regions
## For example, if the region of interest is in Europe ([33,61],[-30,70]), select "EU".
NestedRegion: "NA"
RegionID: "NA"

## Region of interest
## These lat/lon bounds are only used if CreateAutomaticRectilinearStateVectorFile: true
## Otherwise lat/lon bounds are determined from StateVectorFile
LonMin: -105
LonMax: -103
LatMin: 31
LatMax: 33

## Kalman filter options
KalmanMode: false
Expand All @@ -54,6 +53,7 @@ BufferDeg: 5
LandThreshold: 0.25
OffshoreEmisThreshold: 0
OptimizeBCs: false
OptimizeOH: false

## Point source datasets
## Used for visualizations and state vector clustering
Expand All @@ -72,18 +72,22 @@ StateVectorFile: "/home/ubuntu/integrated_methane_inversion/resources/statevecto
ShapeFile: "/home/ubuntu/integrated_methane_inversion/resources/shapefiles/PermianBasin_Extent_201712.shp"

## Inversion
## Note PriorError is a relative percentage
## and PriorErrorBCs is in ppb
## Note PriorError and PriorErrorOH are relative fractions (e.g. 0.5 = 50%)
## and PriorErrorBCs is in ppb
PriorError: 0.5
PriorErrorBCs: 10.0
PriorErrorOH: 0.5
ObsError: 15
Gamma: 1.0
PrecomputedJacobian: false

## Grid
## Select "0.25x0.3125" and "geosfp", or "0.5x0.625" and "merra2"
## Options are 0.25x0.3125 (GEOSFP only), 0.5x0.625, 2.0x2.5, or 4.0x5.0
Res: "0.25x0.3125"
Met: "geosfp"

## Meteorology
## Options are GEOSFP or MERRA2
Met: "GEOSFP"

## Setup modules
## Turn on/off different steps in setting up the inversion
Expand All @@ -102,17 +106,21 @@ DoInversion: false
DoPosterior: false

## IMI preview
## NOTE: RunSetup must be true to run preview
DoPreview: true
DOFSThreshold: 0

## resource allocation settings for slurm jobs
## Resource allocation settings for slurm jobs
SimulationCPUs: 32
SimulationMemory: 32000
JacobianCPUs: 1
JacobianMemory: 2000
RequestedTime: "0-24:00"
SchedulerPartition: "debug"

## Max number of simultaneous Jacobian runs from the job array (-1: no limit)
MaxSimultaneousRuns: -1

##====================================================================
##
## Advanced Settings (optional)
Expand All @@ -129,9 +137,10 @@ SchedulerPartition: "debug"
##--------------------------------------------------------------------

## Jacobian settings
## Note PerturbValue is a relative scalefactor and
## Note PerturbValue and PerturbValueOH are relative scale factors and
## PerturbValueBCs is in ppb
PerturbValue: 1.5
PerturbValueOH: 1.5
PerturbValueBCs: 10.0

## Apply scale factors from a previous inversion?
Expand Down Expand Up @@ -165,7 +174,7 @@ OutputPath: "/home/ubuntu/imi_output_dir"
## Path to GEOS-Chem input data
DataPath: "/home/ubuntu/ExtData"

## Environment files
## Conda environment file
CondaFile: "/home/ubuntu/miniconda/etc/profile.d/conda.sh"
CondaEnv: "geo"

Expand All @@ -178,8 +187,7 @@ RestartDownload: true
RestartFilePrefix: "/home/ubuntu/ExtData/BoundaryConditions/GEOSChem.BoundaryConditions."
RestartFilePreviewPrefix: "/home/ubuntu/ExtData/BoundaryConditions/GEOSChem.BoundaryConditions."

## Path to GEOS-Chem boundary condition files (for nested grid simulations)
## Must put backslash before $ in $YYYY$MM$DD to properly work in sed command
## Path to GEOS-Chem boundary condition files (for regional simulations)
## BCversion will be appended to the end of this path. ${BCpath}/${BCversion}
BCpath: "/home/ubuntu/ExtData/BoundaryConditions"
BCversion: "v2023-06"
Expand All @@ -191,4 +199,4 @@ PreviewDryRun: true
SpinupDryrun: true
ProductionDryRun: true
PosteriorDryRun: true
BCdryrun: true
BCdryrun: true
10 changes: 5 additions & 5 deletions docs/source/advanced/custom-region.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ domains:
* Russia 41\ |deg|\ N-83\ |deg|\ N, 19\ |deg|\ E-180\ |deg|\ E
* South America 59\ |deg|\ S-16\ |deg|\ N, 88\ |deg|\ W-31\ |deg|\ W

These are the nested-grid windows used in GEOS-Chem for which pre-cut meteorological files are available. You may apply the
These are the regional windows used in GEOS-Chem for which pre-cut meteorological files are available. You may apply the
IMI to other regions, but this requires either using global meteorological fields which can be
computationally expensive (not recommended) or cropping global meteorological fields via
a pre-processing step.
Expand All @@ -35,8 +35,8 @@ IMI in :doc:`config.yml <../getting-started/imi-config-file>`.
:widths: 30, 70
:class: tight-table

* - ``NestedRegion``
- Two-letter string to identify region (e.g. ``SA`` for South America). This should match the value of ``NestedRegion`` in ``config.yml``.
* - ``RegionID``
- Two-letter string to identify region (e.g. ``SA`` for South America). This should match the value of ``RegionID`` in ``config.yml``.
* - ``LonMin``
- Minimum longitude edge of the region of interest.
* - ``LonMax``
Expand All @@ -52,14 +52,14 @@ IMI in :doc:`config.yml <../getting-started/imi-config-file>`.
* - ``InDir``
- Directory containing the global high-resolution meteorology fields.
* - ``OutDir``
- Directory where the cropped meteorology files will be placed. We recommend specifying this as ``[YOUR_DATA_PATH]/GEOS_0.25x0.3125_${NestedRegion}/GEOS_FP``. Where you replace ``[YOUR_DATA_PATH]`` with the same path specified for ``DataPath`` in the IMI's config.yml.
- Directory where the cropped meteorology files will be placed. We recommend specifying this as ``[YOUR_DATA_PATH]/GEOS_0.25x0.3125_${RegionID}/GEOS_FP``. Where you replace ``[YOUR_DATA_PATH]`` with the same path specified for ``DataPath`` in the IMI's config.yml.

The cropped meteorology files can be generated by then executing ``./crop_met.sh`` at the
command line or submitting the script to your cluster's scheduler if available. Headers for the
SLURM scheduler are included at the top of the script, but you can modify or remove those as needed.

To utilize the cropped meteorology files in the IMI, you will need to create a new IMI directory. Modify ``config.yml``
so that ``NestedRegion`` matches the value set in ``crop_met.sh``. This will automatically
so that ``RegionID`` matches the value set in ``crop_met.sh``. This will automatically
add the region ID string in the appropriate locations in the ``HEMCO_Config.rc`` files utilized
by GEOS-Chem.

Expand Down
86 changes: 57 additions & 29 deletions docs/source/getting-started/imi-config-file.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,19 +55,31 @@ Region of interest
:widths: 30, 70
:class: tight-table

* - ``isRegional``
- Boolean for using the GEOS-Chem regional simulation. This should be set to ``false`` for global inversions. Default value is ``true``.
* - ``RegionID``
- Two character region ID for using pre-cropped meteorology fields. Select ``AF`` for Africa, ``AS`` for Asia, ``EU`` for Europe, ``ME`` for the Middle East, ``NA`` for North America, ``OC`` for Oceania, ``RU`` for Russia, or ``SA`` for South America. To use global meteorology fields set this option to ``""`` See the `GEOS-Chem horizontal grids <http://wiki.seas.harvard.edu/geos-chem/index.php/GEOS-Chem_horizontal_grids>`_ documentation for details about the available regional domains.
* - ``LonMin``
- Minimum longitude edge of the region of interest (only used if ``CreateAutomaticRectilinearStateVectorFile`` is ``true``).
- Minimum longitude edge of the region of interest (only used if ``CreateAutomaticRectilinearStateVectorFile`` is ``true``, otherwise lat/lon bounds are determined from ``StateVectorFile``).
* - ``LonMax``
- Maximum longitude edge of the region of interest (only used if ``CreateAutomaticRectilinearStateVectorFile`` is ``true``).
- Maximum longitude edge of the region of interest (only used if ``CreateAutomaticRectilinearStateVectorFile`` is ``true``, otherwise lat/lon bounds are determined from ``StateVectorFile``).
* - ``LatMin``
- Minimum latitude edge of the region of interest (only used if ``CreateAutomaticRectilinearStateVectorFile`` is ``true``).
- Minimum latitude edge of the region of interest (only used if ``CreateAutomaticRectilinearStateVectorFile`` is ``true``, otherwise lat/lon bounds are determined from ``StateVectorFile``).
* - ``LatMax``
- Maximum latitude edge of the region of interest (only used if ``CreateAutomaticRectilinearStateVectorFile`` is ``true``).
* - ``NestedGrid``
- Boolean for using the GEOS-Chem nested grid simulation. Must be
``true`` for IMI regional inversions.
* - ``NestedRegion``
- Nesting domain for the inversion. Select ``AF`` for Africa, ``AS`` for Asia, ``EU`` for Europe, ``ME`` for the Middle East, ``NA`` for North America, ``OC`` for Oceania, ``RU`` for Russia, or ``SA`` for South America. For global met fields set this option to ``""`` See the `GEOS-Chem horizontal grids <http://wiki.seas.harvard.edu/geos-chem/index.php/GEOS-Chem_horizontal_grids>`_ documentation for details about the available nested-grid domains.
- Maximum latitude edge of the region of interest (only used if ``CreateAutomaticRectilinearStateVectorFile`` is ``true``, otherwise lat/lon bounds are determined from ``StateVectorFile``).

Kalman filter options
~~~~~~~~~~~~~~~~~~~~~
.. list-table::
:widths: 30, 70
:class: tight-table

* - ``KalmanMode``
- Boolean for running the IMI using a Kalman filter for continuous updates (``true``) or using a single inversion (``false``). See more details about Kalman Mode in the `Kalman filter documentation <../advanced/kalman-filter-mode.html>`_.
* - ``UpdateFreqDays``
- Number of days in each Kalman filter update cycle eg. ``7`` days.
* - ``NudgeFactor``
- Fraction of original prior emissions to use in the prior for each Kalman filter update (eg. ``0.1``). See Kalman mode documentation for more details.

State vector
~~~~~~~~~~~~
Expand All @@ -86,7 +98,18 @@ State vector
* - ``OffshoreEmisThreshold``
- Offshore GEOS-Chem grid cells with oil/gas emissions above this threshold will be included in the state vector. Default value is ``0``.
* - ``OptimizeBCs``
- Boolean to optimize boundary conditions during the inversion. Must also include ``PerturbValueBCs`` and ``PriorErrorBCs`` Default value is ``false``.
- Boolean to optimize boundary conditions during the inversion. Must also include ``PerturbValueBCs`` and ``PriorErrorBCs``. Default value is ``false``.
* - ``OptimizeOH``
- Boolean to optimize OH during the inversion. Must also include ``PerturbValueOH`` and ``PriorErrorOH``. Default value is ``false``.

Point source datasets
~~~~~~~~~~~~~~~~~~~~~
.. list-table::
:widths: 30, 70
:class: tight-table

* - ``PointSourceDatasets``
- Optional list of public datasets to use for visualization of point sources to be included in state vector clustering. Only available option is ``["SRON"]``.

Clustering Options
^^^^^^^^^^^^^^^^^^
Expand Down Expand Up @@ -132,6 +155,8 @@ Inversion

* - ``PriorError``
- Error in the prior estimates (1-sigma; relative). Default is ``0.5`` (50%) error.
* - ``PriorErrorOH``
- Error in the prior estimates (relative percent). Default is ``0.5`` (50%) error.
* - ``PriorErrorBCs``
- Error in the prior estimates (using ppb). Default is ``10`` ppb error.
* - ``ObsError``
Expand All @@ -140,8 +165,6 @@ Inversion
- Regularization parameter; typically between 0 and 1. Default value is ``1.0``.
* - ``PrecomputedJacobian``
- Boolean for whether the Jacobian matrix has already been computed (``true``) or not (``false``). Default value is ``false``.
* - ``ReferenceRunDir``
- Path to IMI run directory with previously run jacobian simulations

Grid
~~~~
Expand All @@ -150,9 +173,10 @@ Grid
:class: tight-table

* - ``Res``
- Resolution for inversion. Options are ``"0.25x0.3125"`` and ``"0.5x0.625"``.
- Resolution for inversion. Options are ``"0.25x0.3125"`` (GEOS-FP only), ``"0.5x0.625"``, ``"2.0x2.5"``, or ``"4.0x5.0"``. Default value is ``0.25x0.3125``
* - ``Met``
- Meteorology to use for the inversion. Options are ``"geosfp"`` (for ``Res: "0.25x0.3125"``) and ``"merra2"`` (for ``Res: "0.5x0.625"``).
- Meteorology to use for the inversion. Options are ``"GEOSFP"``
or ``"MERRA2"``. Default value is ``GEOSFP``.

Setup modules
~~~~~~~~~~~~~
Expand Down Expand Up @@ -192,6 +216,18 @@ These settings turn on/off (``true`` / ``false``) different steps for running th
* - ``DoPosterior``
- Boolean to run the posterior simulation.

IMI preview
~~~~~~~~~~~
.. list-table::
:widths: 30, 70
:class: tight-table

* - ``DoPreview``
- Boolean to run the :doc:`IMI preview <imi-preview>` (``true``) or not (``false``).
* - ``DOFSThreshold``
- Threshold for estimated DOFS below which the IMI should automatically exit with a warning after performing the preview.
Default value ``0`` prevents exit.

SLURM Resource Allocation
~~~~~~~~~~~~~~~~~~~~~~~~~
These settings are used to allocate resources (CPUs and Memory) to the different simulations needed to run the inversion.
Expand All @@ -213,19 +249,9 @@ Note: some python scripts are also deployed using slurm and default to using the
- Amount of memory to allocate to each jacobian simulation (in MB).
* - ``SchedulerPartition``
- Name of the partition(s) you would like all slurm jobs to run on (eg. "debug,huce_intel,seas_compute,etc").

IMI preview
~~~~~~~~~~~
.. list-table::
:widths: 30, 70
:class: tight-table

* - ``DoPreview``
- Boolean to run the :doc:`IMI preview <imi-preview>` (``true``) or not (``false``).
* - ``DOFSThreshold``
- Threshold for estimated DOFS below which the IMI should automatically exit with a warning after performing the preview.
Default value ``0`` prevents exit.

* - ``MaxSimultaneousRuns``
- The maximum number of jacobian simulations to run simultaneously. The default is -1 (no limit) which will submit all jacobian simulations at once. If the value is greater than zero, the sbatch array statement will be modified to include the "%" separator and will limit the number of simultaneously running tasks from the job array to the specifed value.

Advanced settings: GEOS-Chem options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These settings are intended for advanced users who wish to modify additional GEOS-Chem options.
Expand All @@ -236,8 +262,10 @@ These settings are intended for advanced users who wish to modify additional GEO

* - ``PerturbValue``
- Value to perturb emissions by in each sensitivity simulation. Default value is ``1.5``.
* - ``PerturbValueOH``
- Value to perturb OH by if using ``OptimizeOH``. Default value is ``1.5``.
* - ``PerturbValueBCs``
- Number of ppb to perturb emissions by for domain edges (North, South, East, West) if using `OptimizeBCs`. Default value is ``10.0`` ppb.
- Number of ppb to perturb emissions by for domain edges (North, South, East, West) if using ``OptimizeBCs``. Default value is ``10.0`` ppb.
* - ``UseEmisSF``
- Boolean to apply emissions scale factors derived from a previous inversion. This file should be provided as a netCDF file and specified in HEMCO_Config.rc. Default value is ``false``.
* - ``UseOHSF``
Expand Down Expand Up @@ -279,7 +307,7 @@ the IMI on a local cluster<../advanced/local-cluster>`).
* - ``RestartFilePreviewPrefix``
- Path to initial GEOS-Chem restart file plus file prefix (e.g. ``GEOSChem.BoundaryConditions.`` or ``GEOSChem.Restart.``). The date string and file extension (``YYYYMMDD_0000z.nc4``) will be appended. This file will be used to initialize the preview simulation.
* - ``BCpath``
- Path to GEOS-Chem boundary condition files (for nested grid simulations).
- Path to GEOS-Chem boundary condition files (for regional simulations).
* - ``BCversion``
- Version of TROPOMI smoothed boundary conditions to use (e.g. ``v2023-04``). Note: this will be appended onto BCpath as a subdirectory.
* - ``PreviewDryRun``
Expand Down
Loading

0 comments on commit 7c57d91

Please sign in to comment.