diff --git a/assimilation_code/programs/create_obs_sequence/create_obs_sequence.rst b/assimilation_code/programs/create_obs_sequence/create_obs_sequence.rst index a5f7fb30aa..259807f81b 100644 --- a/assimilation_code/programs/create_obs_sequence/create_obs_sequence.rst +++ b/assimilation_code/programs/create_obs_sequence/create_obs_sequence.rst @@ -1,3 +1,5 @@ +.. _create_obs_sequence: + program ``create_obs_sequence`` =============================== diff --git a/assimilation_code/programs/perfect_model_obs/perfect_model_obs.rst b/assimilation_code/programs/perfect_model_obs/perfect_model_obs.rst index 18ba61badc..a4c119f043 100644 --- a/assimilation_code/programs/perfect_model_obs/perfect_model_obs.rst +++ b/assimilation_code/programs/perfect_model_obs/perfect_model_obs.rst @@ -1,3 +1,5 @@ +.. _pmo: + program ``perfect_model_obs`` ============================= diff --git a/guide/adding-your-observations-to-dart.rst b/guide/adding-your-observations-to-dart.rst index 0f08ed079c..8d460e6a85 100644 --- a/guide/adding-your-observations-to-dart.rst +++ b/guide/adding-your-observations-to-dart.rst @@ -9,9 +9,8 @@ converted from its native format to the DART observation sequence format and that the observation forward operator is already implemented. Keep in mind that forward operators are not specific to any one model. -The observation converters are in the *observations/obs_converter* directory and -you should look there for the documentation describing which converters are -available. +The observation converters are in the *observations/obs_converter* directory, +and are documented in :ref:`available_observation_converters`. The forward operators are functionally or logically grouped into Fortran modules in the *observations/forward_operator* directory. DART employs a ‘contractual’ diff --git a/guide/advice-for-new-collaborators.rst b/guide/advice-for-new-collaborators.rst index aef811989d..05e2f56032 100644 --- a/guide/advice-for-new-collaborators.rst +++ b/guide/advice-for-new-collaborators.rst @@ -30,7 +30,7 @@ DART is often used for the following types of projects: - Using DART to teach DA You can view a list of models that are already supported at :ref:`Supported models` -and a list of supported observations at :ref:`programs`. +and a list of supported observations at :ref:`available_observation_converters`. Everything on this "possible goals" list except adding support for a new model can generally be done by a single user with minimal help from the DART team. diff --git a/guide/available-observation-converters.rst b/guide/available-observation-converters.rst index 6d7417982a..1623246c6b 100644 --- a/guide/available-observation-converters.rst +++ b/guide/available-observation-converters.rst @@ -1,3 +1,5 @@ +.. _available_observation_converters: + Available observation converter programs ======================================== @@ -7,60 +9,65 @@ into the format required by DART. Each directory has at least one converter: -- ``AIRS``: :doc:`/observations/obs_converters/AIRS/README` -- ``ARVOR``: :doc:`../observations/obs_converters/ARVOR/readme` + +- ``AIRS``: :ref:`airs` +- ``ARVOR``: :ref:`arvor` - ``AURA``: See ``DART/observations/obs_converters/AURA`` -- ``Aviso+/CMEMS``: :doc:`../observations/obs_converters/AVISO/AVISO` -- ``Ameriflux``: :doc:`../observations/obs_converters/Ameriflux/level4_to_obs` -- ``BATS``: :doc:`../observations/obs_converters/BATS/readme` -- ``CHAMP``: :doc:`../observations/obs_converters/CHAMP/work/README` -- ``cice``: :doc:`../observations/obs_converters/cice/cice_to_obs` +- ``Aviso+/CMEMS``: :ref:`aviso` +- ``Ameriflux``: + + - :ref:`fluxnetfull_to_obs` + - :ref:`level4_to_obs` +- ``BATS``: :ref:`bats` +- ``CHAMP``: :ref:`champ` +- ``cice``: :ref:`cice_to_obs` - ``CNOFS``: See ``DART/observations/obs_converters/CNOFS`` -- ``CONAGUA``: :doc:`../observations/obs_converters/CONAGUA/README` -- ``COSMOS``: :doc:`../observations/obs_converters/COSMOS/COSMOS_to_obs` -- ``CrocoLake``: :doc:`../observations/obs_converters/CrocoLake/readme` -- ``DWL``: :doc:`../observations/obs_converters/DWL/dwl_to_obs` -- ``GMI``: :doc:`../observations/obs_converters/GMI/README` -- ``GOES``: :doc:`../observations/obs_converters/GOES/README` -- ``GPSPW``: :doc:`../observations/obs_converters/GPSPW/README` +- ``CONAGUA``: :ref:`conagua` +- ``COSMOS``: :ref:`cosmos` +- ``CrocoLake``: :ref:`crocolake` +- ``DWL``: :ref:`dwl` +- ``GMI``: :ref:`gmi` +- ``GOES``: :ref:`goes` +- ``GPSPW``: :ref:`gpspw` - ``GRACE``: See ``DART/observations/obs_converters/GRACE`` -- ``GSI2DART``: :doc:`../observations/obs_converters/GSI2DART/readme` -- ``GTSPP``: :doc:`../observations/obs_converters/GTSPP/GTSPP` -- ``HFradar``: :doc:`../observations/obs_converters/HFradar/readme` +- ``GSI2DART``: :ref:`gsi2dart` +- ``GTSPP``: :ref:`gtspp` +- ``HFradar``: :ref:`hfradar` - ``IODA``: :ref:`ioda2obsq ` -- ``MADIS``: :doc:`../observations/obs_converters/MADIS/MADIS` -- ``MIDAS``: :doc:`../observations/obs_converters/MIDAS/MIDAS_to_obs` -- ``MODIS``: :doc:`../observations/obs_converters/MODIS/MOD15A2_to_obs` -- ``MODIS``: :doc:`../observations/obs_converters/MODIS/MOD29E1D_to_obs` +- ``MADIS``: :ref:`madis` +- ``MIDAS``: :ref:`midas` +- ``MODIS``: :ref:`modis15` +- ``MODIS``: :ref:`modis29` - ``MPD``: See ``DART/observations/obs_converters/MPD`` -- ``NCEP``: (prepbufr -> ascii) :doc:`../observations/obs_converters/NCEP/prep_bufr/prep_bufr` -- ``NCEP``: (ascii -> obs_seq) :doc:`../observations/obs_converters/NCEP/ascii_to_obs/create_real_obs` -- ``ROMS``: :doc:`../observations/obs_converters/ROMS/ROMS` -- ``SIF``: :doc:`../observations/obs_converters/SIF/SIF_to_obs_netcdf` -- ``SSEC``: :doc:`../observations/obs_converters/SSEC/SSEC` -- ``SST``: :doc:`../observations/obs_converters/SST/SST` -- ``SSUSI``: :doc:`../observations/obs_converters/SSUSI/convert_f16_edr_dsk` -- ``WOD``: :doc:`../observations/obs_converters/WOD/WOD` -- ``gnd_gps_vtec``: :doc:`../observations/obs_converters/gnd_gps_vtec/README` -- ``GPS``: :doc:`../observations/obs_converters/gps/gps` -- ``ok_mesonet``: :doc:`../observations/obs_converters/ok_mesonet/ok_mesonet` -- ``QuikSCAT``: :doc:`../observations/obs_converters/quikscat/QuikSCAT` -- ``Radar``: :doc:`../observations/obs_converters/radar/README` -- ``snow``: :doc:`../observations/obs_converters/snow/snow_to_obs` -- ``SVP``: :doc:`../observations/obs_converters/SVP/readme` -- ``Text``: :doc:`../observations/obs_converters/text/text_to_obs` +- ``NASA_Earthdata``: :ref:`nasa_earthdata` +- ``NCEP``: + + - (prepbufr -> ascii) :ref:`ncep_prepbufr` + - (ascii -> obs_seq) :ref:`ncep_ascii` +- ``NSIDC``: :ref:`nsidc_smap_l2` +- ``ocean color``: :ref:`ocean_color` +- ``ROMS``: :ref:`roms` +- ``SIF``: :ref:`sif` +- ``SSEC``: :ref:`ssec` +- ``SST``: :ref:`sst` +- ``SSUSI``: :ref:`ssusi` +- ``WOD``: :ref:`wod` +- ``gnd_gps_vtec``: :ref:`gnd_gps_vtec` +- ``GPS``: :ref:`gps` +- ``ok_mesonet``: :ref:`ok_mesonet` +- ``QuikSCAT``: :ref:`quikscat` +- ``Radar``: :ref:`radar` +- ``snow``: :ref:`snow` +- ``SVP``: :ref:`svp` +- ``Text``: :ref:`text` - ``text_GITM``: See ``DART/observations/obs_converters/text_GITM`` -- ``tpw``: :doc:`../observations/obs_converters/tpw/tpw` -- ``Tropical Cyclones``: :doc:`../observations/obs_converters/tropical_cyclone/tc_to_obs` -- ``Var (little-r)``: :doc:`../observations/obs_converters/var/littler_tf_dart` -- ``Var (radar)``: :doc:`../observations/obs_converters/var/rad_3dvar_to_dart` +- ``tpw``: :ref:`tpw` +- ``Tropical Cyclones``: :ref:`tropical_cyclone` +- ``Var (3D/4D)``: :ref:`var` -There are also a couple utilities of note: + - ``Var (little-r)``: :ref:`littler_tf_dart` + - ``Var (radar)``: :ref:`rad_3dvar_to_dart` -- :doc:`../observations/obs_converters/even_sphere/README` - a utility for generating evenly-spaced - observation locations that can then be used in a perfect model experiment. -- :doc:`../observations/obs_converters/obs_error/README` - modules that specify observation errors - based on what is used by ECMWF and NCEP In addition the following external program produces DART observation sequence files: @@ -72,15 +79,31 @@ files: three-dimensions (Cartesian). Analyses are output in netCDF, Vis5d, and/or DART (Data Assimilation Research Testbed) formats. +Contact the `DART development group `__ if you +have observations in a different format that you want to convert. We can +give you advice and pointers on how to approach writing the code. + +.. _synthetic_observations: + +Synthetic observations +-------------------------- + For generating synthetic observations, see the documentation for the -:doc:`../assimilation_code/programs/create_obs_sequence/create_obs_sequence`. +:ref:`create_obs_sequence`. You can also generate observation files based on text input. See the -documentation for the :doc:`../observations/obs_converters/text/text_to_obs`. +documentation for the :ref:`text`. Or for simulating a large complex observing system, you can use the DART library routines in a Fortran program to compute the observation information and have the DART routines write the output file. +There are also a couple utilities of note: + +- :ref:`even_sphere` - a utility for generating evenly-spaced + observation locations that can then be used in a perfect model experiment. +- :ref:`obs_error` - modules that specify observation errors + based on what is used by ECMWF and NCEP + To learn how to run a model with a set of observations that have only locations, types, and times, and have the forward operators compute the observation values, see the documentation for the -:doc:`/assimilation_code/programs/perfect_model_obs/perfect_model_obs`. +:ref:`pmo`. diff --git a/index.rst b/index.rst index ceda49d9c0..347652b857 100644 --- a/index.rst +++ b/index.rst @@ -309,7 +309,6 @@ References guide/detailed-structure-obs-seq guide/creating-obs-seq-synthetic guide/creating-obs-seq-real - guide/available-observation-converters guide/manipulating-with-obs-sequence-tool guide/difference-between-type-and-quantity guide/adding-support-new-type @@ -320,6 +319,7 @@ References :caption: Observation Converters observations/obs_converters/README + guide/available-observation-converters .. toctree:: diff --git a/observations/obs_converters/AIRS/README.rst b/observations/obs_converters/AIRS/README.rst index 7fcaf77d6b..043184b10b 100644 --- a/observations/obs_converters/AIRS/README.rst +++ b/observations/obs_converters/AIRS/README.rst @@ -1,3 +1,5 @@ +.. _airs: + AIRS and AMSU ============= diff --git a/observations/obs_converters/ARVOR/readme.rst b/observations/obs_converters/ARVOR/readme.rst index 19bc0ccec1..97e0abbf4e 100644 --- a/observations/obs_converters/ARVOR/readme.rst +++ b/observations/obs_converters/ARVOR/readme.rst @@ -1,3 +1,5 @@ +.. _arvor: + ARVOR (Profiling Floats) ======================== diff --git a/observations/obs_converters/AVISO/AVISO.rst b/observations/obs_converters/AVISO/AVISO.rst index c053a1d16d..c474bc8095 100644 --- a/observations/obs_converters/AVISO/AVISO.rst +++ b/observations/obs_converters/AVISO/AVISO.rst @@ -1,3 +1,5 @@ +.. _aviso: + Aviso+/CMEMS Observations ========================= diff --git a/observations/obs_converters/Ameriflux/fluxnetfull_to_obs.rst b/observations/obs_converters/Ameriflux/fluxnetfull_to_obs.rst index 825b3a27ef..c7d2f3b758 100644 --- a/observations/obs_converters/Ameriflux/fluxnetfull_to_obs.rst +++ b/observations/obs_converters/Ameriflux/fluxnetfull_to_obs.rst @@ -1,3 +1,5 @@ +.. _fluxnetfull_to_obs: + PROGRAM ``fluxnetfull_to_obs`` ============================== diff --git a/observations/obs_converters/Ameriflux/level4_to_obs.rst b/observations/obs_converters/Ameriflux/level4_to_obs.rst index 699ba23463..2c2ab9d0c8 100644 --- a/observations/obs_converters/Ameriflux/level4_to_obs.rst +++ b/observations/obs_converters/Ameriflux/level4_to_obs.rst @@ -1,3 +1,5 @@ +.. _level4_to_obs: + PROGRAM ``level4_to_obs`` ========================= @@ -10,7 +12,7 @@ AmeriFlux level 4 data to DART observation sequence converter | This routine was designed to convert the flux tower Level 4 data from the `AmeriFlux `__ network of observations from micrometeorological tower sites. The download link and flux data format for this code *has been discontinued* (e.g. ``USBar2004_L4_h.txt``). Thus if you are using flux obs converters for the first time - *PLEASE USE* the updated ``Fluxnetfull_to_obs.f90`` converter and follow the documentation there :doc:`./fluxnetfull_to_obs` + *PLEASE USE* the updated ``Fluxnetfull_to_obs.f90`` converter and follow the documentation there :ref:`fluxnetfull_to_obs`. We have kept this code available if you still use the older Ameriflux data format. Also this code uses a general approach to calculating sensible, latent and net ecosystem exchange uncertainty, that may be helpful. | The AmeriFlux Level 4 data products are provided in the local time of the flux tower location. DART observation sequence diff --git a/observations/obs_converters/BATS/readme.rst b/observations/obs_converters/BATS/readme.rst index d72d34f9a3..4edaf59a76 100644 --- a/observations/obs_converters/BATS/readme.rst +++ b/observations/obs_converters/BATS/readme.rst @@ -1,3 +1,5 @@ +.. _bats: + BATS ==== diff --git a/observations/obs_converters/CHAMP/work/README.rst b/observations/obs_converters/CHAMP/work/README.rst index 3fcbad2751..f0b78f9f64 100644 --- a/observations/obs_converters/CHAMP/work/README.rst +++ b/observations/obs_converters/CHAMP/work/README.rst @@ -1,3 +1,5 @@ +.. _champ: + CHAMP ===== diff --git a/observations/obs_converters/CONAGUA/README.rst b/observations/obs_converters/CONAGUA/README.rst index b02e45240a..ce7c5d77ec 100644 --- a/observations/obs_converters/CONAGUA/README.rst +++ b/observations/obs_converters/CONAGUA/README.rst @@ -1,3 +1,5 @@ +.. _conagua: + CONAGUA ======= diff --git a/observations/obs_converters/COSMOS/COSMOS_to_obs.rst b/observations/obs_converters/COSMOS/COSMOS_to_obs.rst index 9ed47536c3..f166f1b242 100644 --- a/observations/obs_converters/COSMOS/COSMOS_to_obs.rst +++ b/observations/obs_converters/COSMOS/COSMOS_to_obs.rst @@ -1,3 +1,5 @@ +.. _cosmos: + PROGRAM ``COSMOS_to_obs`` ========================= diff --git a/observations/obs_converters/CrocoLake/readme.rst b/observations/obs_converters/CrocoLake/readme.rst index 78e2016d7d..8fc15f87e0 100644 --- a/observations/obs_converters/CrocoLake/readme.rst +++ b/observations/obs_converters/CrocoLake/readme.rst @@ -1,3 +1,6 @@ + +.. _crocolake: + CrocoLake ========= diff --git a/observations/obs_converters/DWL/dwl_to_obs.rst b/observations/obs_converters/DWL/dwl_to_obs.rst index de0f67d966..c8c349b1e7 100644 --- a/observations/obs_converters/DWL/dwl_to_obs.rst +++ b/observations/obs_converters/DWL/dwl_to_obs.rst @@ -1,3 +1,5 @@ +.. _dwl: + PROGRAM ``dwl_to_obs`` ====================== diff --git a/observations/obs_converters/GMI/README.rst b/observations/obs_converters/GMI/README.rst index b6a4c698fc..191998d533 100644 --- a/observations/obs_converters/GMI/README.rst +++ b/observations/obs_converters/GMI/README.rst @@ -1,3 +1,5 @@ +.. _gmi: + GMI Brightness Temperatures ============================ diff --git a/observations/obs_converters/GOES/README.rst b/observations/obs_converters/GOES/README.rst index 08d1bcac69..f0cf91d62a 100644 --- a/observations/obs_converters/GOES/README.rst +++ b/observations/obs_converters/GOES/README.rst @@ -1,3 +1,5 @@ +.. _goes: + NOAA GOES-R Series Advanced Baseline Imager (ABI) Level 1b Radiances ==================================================================== diff --git a/observations/obs_converters/GPSPW/README.rst b/observations/obs_converters/GPSPW/README.rst index 59544677a1..57b0b34b7c 100644 --- a/observations/obs_converters/GPSPW/README.rst +++ b/observations/obs_converters/GPSPW/README.rst @@ -1,3 +1,5 @@ +.. _gpspw: + GPSPW ===== diff --git a/observations/obs_converters/GSI2DART/readme.rst b/observations/obs_converters/GSI2DART/readme.rst index 1b16a29f10..a198c04154 100644 --- a/observations/obs_converters/GSI2DART/readme.rst +++ b/observations/obs_converters/GSI2DART/readme.rst @@ -1,3 +1,6 @@ + +.. _gsi2dart: + GSI2DART ======== diff --git a/observations/obs_converters/GTSPP/GTSPP.rst b/observations/obs_converters/GTSPP/GTSPP.rst index 9ce4894c9b..544d8415f1 100644 --- a/observations/obs_converters/GTSPP/GTSPP.rst +++ b/observations/obs_converters/GTSPP/GTSPP.rst @@ -1,3 +1,5 @@ +.. _gtspp: + GTSPP Observations ================== diff --git a/observations/obs_converters/HFradar/readme.rst b/observations/obs_converters/HFradar/readme.rst index e28549c88b..91c0930d59 100644 --- a/observations/obs_converters/HFradar/readme.rst +++ b/observations/obs_converters/HFradar/readme.rst @@ -1,3 +1,5 @@ +.. _hfradar: + ======== HF Radar ======== diff --git a/observations/obs_converters/MADIS/MADIS.rst b/observations/obs_converters/MADIS/MADIS.rst index a7a0ecf56e..1dcf759e64 100644 --- a/observations/obs_converters/MADIS/MADIS.rst +++ b/observations/obs_converters/MADIS/MADIS.rst @@ -1,3 +1,5 @@ +.. _madis: + MADIS Data Ingest System ======================== diff --git a/observations/obs_converters/MIDAS/MIDAS_to_obs.rst b/observations/obs_converters/MIDAS/MIDAS_to_obs.rst index f2ca0eb517..366fa70936 100644 --- a/observations/obs_converters/MIDAS/MIDAS_to_obs.rst +++ b/observations/obs_converters/MIDAS/MIDAS_to_obs.rst @@ -1,3 +1,6 @@ + +.. _midas: + PROGRAM ``MIDAS_to_obs`` ======================== diff --git a/observations/obs_converters/MODIS/MOD15A2_to_obs.rst b/observations/obs_converters/MODIS/MOD15A2_to_obs.rst index 5c6cfcf2b2..f5b8d2342c 100644 --- a/observations/obs_converters/MODIS/MOD15A2_to_obs.rst +++ b/observations/obs_converters/MODIS/MOD15A2_to_obs.rst @@ -1,3 +1,6 @@ + +.. _modis15: + PROGRAM ``MOD15A2_to_obs`` ========================== diff --git a/observations/obs_converters/MODIS/MOD29E1D_to_obs.rst b/observations/obs_converters/MODIS/MOD29E1D_to_obs.rst index d8136dfeb8..7033b37d20 100644 --- a/observations/obs_converters/MODIS/MOD29E1D_to_obs.rst +++ b/observations/obs_converters/MODIS/MOD29E1D_to_obs.rst @@ -3,6 +3,8 @@ pair: MOD29E1D_to_obs; MODIS sea ice temperature +.. _modis29: + PROGRAM ``MOD29E1D_to_obs`` =========================== diff --git a/observations/obs_converters/NASA_Earthdata/README.rst b/observations/obs_converters/NASA_Earthdata/README.rst index 7c46eed1c9..6900f20ed1 100644 --- a/observations/obs_converters/NASA_Earthdata/README.rst +++ b/observations/obs_converters/NASA_Earthdata/README.rst @@ -1,3 +1,6 @@ + +.. _nasa_earthdata: + PROGRAMS ``LPRM_L3_to_obs.f90`` ``AMSR_E_L2_to_obs.f90`` =========================================================================== This is a brief description of the converters and utilities in this directory diff --git a/observations/obs_converters/NCEP/ascii_to_obs/create_real_obs.rst b/observations/obs_converters/NCEP/ascii_to_obs/create_real_obs.rst index e279d7b477..96911fdc90 100644 --- a/observations/obs_converters/NCEP/ascii_to_obs/create_real_obs.rst +++ b/observations/obs_converters/NCEP/ascii_to_obs/create_real_obs.rst @@ -1,3 +1,6 @@ + +.. _ncep_ascii: + PROGRAM create_real_obs ======================= diff --git a/observations/obs_converters/NCEP/prep_bufr/prep_bufr.rst b/observations/obs_converters/NCEP/prep_bufr/prep_bufr.rst index 5ddc2795cb..2983530c7b 100644 --- a/observations/obs_converters/NCEP/prep_bufr/prep_bufr.rst +++ b/observations/obs_converters/NCEP/prep_bufr/prep_bufr.rst @@ -1,3 +1,5 @@ +.. _ncep_prepbufr: + PROGRAM ``prepbufr`` ==================== diff --git a/observations/obs_converters/NSIDC/SMAP_L2_to_obs.rst b/observations/obs_converters/NSIDC/SMAP_L2_to_obs.rst index 7caf4bccce..bdecfb835a 100644 --- a/observations/obs_converters/NSIDC/SMAP_L2_to_obs.rst +++ b/observations/obs_converters/NSIDC/SMAP_L2_to_obs.rst @@ -1,3 +1,5 @@ +.. _nsidc_smap_l2: + PROGRAM ``SMAP_L2_to_obs`` ========================== diff --git a/observations/obs_converters/README.rst b/observations/obs_converters/README.rst index f2a164d8c3..061bdf9b1d 100644 --- a/observations/obs_converters/README.rst +++ b/observations/obs_converters/README.rst @@ -18,8 +18,8 @@ or have values computed by running a model, possibly with a fixed amount of simulated noise added. These observations can be used for testing, determining the sensitivity of the model to assimilation, and for designing new observation systems. The DART system includes several ways -to create synthetic observations. See the :ref:`programs ` -section below for more details. +to create synthetic observations. See :ref:`synthetic_observations` +for more details. The DART framework enforces a clean separation between observations and the models they are assimilated into. The same observations can be used @@ -29,7 +29,7 @@ type of observation from its state space values. In many cases a single, self-contained program can convert directly from the observation location, time, value, and error into the DART format. In other cases, especially those linking with a complicated external -library (e.g. BUFR), there is a two-step process with two programs and +library (e.g. BUFR), there is a two-step process with two programs and an ASCII intermediate file. We are currently leaning towards single-step conversions but either approach can be used for new programs. @@ -71,7 +71,7 @@ adapt one of the existing converters here for your own use. Formats read by the existing converters include NetCDF, HDF, little-r, text, Prepbufr, amongst others. -**See the** :ref:`programs ` **section below for a list of the +**See** :ref:`available_observation_converters` **for a list of the current converter programs. It might save you from reinventing the wheel.** @@ -166,8 +166,7 @@ single value. The instrument error is generally supplied by the instrument maker. Sadly, it is frequently surprisingly difficult to find these values. For the representativeness error, a set of artificial observations could be -generated with the -`perfect_model_obs <../../assimilation_code/programs/perfect_model_obs/perfect_model_obs.html>`__ +generated with :ref:`pmo` program and an assimilation experiment could be run to generate an estimate of the error in the model. In practice however most people make an educated guess on the values of the error and then start with a @@ -304,7 +303,7 @@ that can be generated with the ``advance_time`` program makes this easier to do. The ``obs_sequence_tool`` can read the input filenames from a separate ascii file. This makes generating the filenames easy from a script; it can -simply concatinate the input filenames echo'd to an ascii file and +simply concatenate the input filenames echo'd to an ascii file and then run the obs_sequence_tool. The output file can either be set by using ``sed`` on the namelist, or a fixed output filename can be used and then the file renamed after the tool has run. @@ -332,7 +331,7 @@ it is easy to find truncated data files. If converting a large number of files it is also common for computer system failures to occur at random times. File systems fill up, batch jobs exit early, -power glitches stop programs before they finish. Look for anomolous observation +power glitches stop programs before they finish. Look for anomalous observation counts, unexpected first and last times of obs in a file, missing files, files with many fewer bytes than others, and anything else you can think of. @@ -345,107 +344,3 @@ half the size of ascii files. However it greatly increases the effort to examine the contents of a file for problems. Generally we have used the ascii format. It is portable between systems of different "endians" (order of bytes in a multi-byte number) and can be browsed much more easily. - - -.. _programs: - -Converter programs -================== - -The *DART/observations/obs_converters* directory contains a variety of -converter programs to read various external formats and convert the -observations into the format required by DART. - -The current list of converters (some directories contain multiple -converters) include: - -- ``AIRS``: :doc:`./AIRS/README` -- ``ARVOR``: :doc:`./ARVOR/readme` -- ``AURA``: See ``./AURA`` -- ``Aviso+/CMEMS``: :doc:`./AVISO/AVISO` -- ``Ameriflux``: :doc:`./Ameriflux/level4_to_obs` -- ``BATS``: :doc:`./BATS/readme` -- ``CHAMP``: :doc:`./CHAMP/work/README` -- ``cice``: :doc:`./cice/cice_to_obs` -- ``CNOFS``: See ``./CNOFS`` -- ``CONAGUA``: :doc:`./CONAGUA/README` -- ``COSMOS``: :doc:`./COSMOS/COSMOS_to_obs` -- ``CrocoLake``: :doc:`./CrocoLake/readme` -- ``DWL``: :doc:`./DWL/dwl_to_obs` -- ``GMI``: :doc:`./GMI/README` -- ``GOES``: :doc:`./GOES/README` -- ``GPSPW``: :doc:`./GPSPW/README` -- ``GRACE``: See ``./GRACE`` -- ``GSI2DART``: :doc:`./GSI2DART/readme` -- ``GTSPP``: :doc:`./GTSPP/GTSPP` -- ``HFradar``: :doc:`./HFradar/readme` -- ``IODA``: :ref:`ioda2obsq ` -- ``MADIS``: :doc:`./MADIS/MADIS` -- ``MIDAS``: :doc:`./MIDAS/MIDAS_to_obs` -- ``MODIS``: :doc:`./MODIS/MOD15A2_to_obs` -- ``MODIS``: :doc:`./MODIS/MOD29E1D_to_obs` -- ``MPD``: See ``./MPD`` -- ``NASA_Earthdata``:doc:`./NASA_Earthdata/README` -- ``NCEP``: (prepbufr-> ascii) :doc:`./NCEP/prep_bufr/prep_bufr` -- ``NCEP``: (ascii-> obs_seq) :doc:`./NCEP/ascii_to_obs/create_real_obs` -- ``NSIDC``:doc:`./NSIDC/SMAP_L2_to_obs` -- ``ROMS``: :doc:`./ROMS/ROMS` -- ``SIF``: :doc:`./SIF/SIF_to_obs_netcdf` -- ``SSEC``: :doc:`./SSEC/SSEC` -- ``SST``: :doc:`./SST/SST` -- ``ocean color``: :doc:`./ocean_color/README` -- ``SSUSI``: :doc:`./SSUSI/convert_f16_edr_dsk` -- ``WOD``: :doc:`./WOD/WOD` -- ``gnd_gps_vtec``: :doc:`./gnd_gps_vtec/README` -- ``GPS``: :doc:`./gps/gps` -- ``ok_mesonet``: :doc:`./ok_mesonet/ok_mesonet` -- ``QuikSCAT``: :doc:`./quikscat/QuikSCAT` -- ``Radar``: :doc:`./radar/README` -- ``snow``: :doc:`./snow/snow_to_obs` -- ``SVP``: :doc:`./SVP/readme` -- ``Text``: :doc:`./text/text_to_obs` -- ``text_GITM``: See ``./text_GITM`` -- ``tpw``: :doc:`./tpw/tpw` -- ``Tropical Cyclones``: :doc:`./tropical_cyclone/tc_to_obs` -- ``3DVAR/4DVAR``: :doc:`./var/var` -- ``Var (little-r)``: :doc:`./var/littler_tf_dart` -- ``Var (radar)``: :doc:`./var/rad_3dvar_to_dart` - -In addition the following external program produces DART observation -sequence files: - -- `Observation Processing And Wind Synthesis - (OPAWS) `__: OPAWS can process NSF NCAR - Dorade (sweep) and NSF NCAR EOL Foray (netcdf) radar data. It analyzes - (grids) data in either two-dimensions (on the conical surface of each - sweep) or three-dimensions (Cartesian). Analyses are output in - netcdf, Vis5d, and/or DART (Data Assimilation Research Testbed) - formats. - -For generating synthetic observations, see the -`create_obs_sequence <../../assimilation_code/programs/create_obs_sequence/create_obs_sequence.html>`__ -program documentation. You can also generate observation files based on -text input. See the `text_to_obs `__ program -documentation and even_sphere. Or for simulating a large complex observing system, you -can use the DART library routines in a Fortran program to compute the -observation information and have the DART routines write the output -file. - -There are a couple utilities of note: - -- `even_sphere `__ - a utility for generating - a text file of evenly-spaced observation locations that can then be used in a - perfect model experiment. -- `obs_error `__ - modules that specify observation - errors based on what is used by ECMWF and NCEP - - -See the -`perfect_model <../../assimilation_code/programs/perfect_model_obs/perfect_model_obs.html>`__ -program documentation on how to run a model with a set of observations -that have only locations, types, and times, and have the forward -operators compute the observation values. - -Contact the `DART development group `__ if you -have observations in a different format that you want to convert. We can -give you advice and pointers on how to approach writing the code. diff --git a/observations/obs_converters/ROMS/ROMS.rst b/observations/obs_converters/ROMS/ROMS.rst index 6efcbc33e2..0da0760266 100644 --- a/observations/obs_converters/ROMS/ROMS.rst +++ b/observations/obs_converters/ROMS/ROMS.rst @@ -1,3 +1,5 @@ +.. _roms: + ROMS observations to DART observation sequences =============================================== diff --git a/observations/obs_converters/SIF/SIF_to_obs_netcdf.rst b/observations/obs_converters/SIF/SIF_to_obs_netcdf.rst index a6235d0178..741c38ce2c 100644 --- a/observations/obs_converters/SIF/SIF_to_obs_netcdf.rst +++ b/observations/obs_converters/SIF/SIF_to_obs_netcdf.rst @@ -1,3 +1,5 @@ +.. _sif: + PROGRAM ``SIF_to_obs_netcdf`` ============================= diff --git a/observations/obs_converters/SSEC/SSEC.rst b/observations/obs_converters/SSEC/SSEC.rst index e915579149..765f5c02fe 100644 --- a/observations/obs_converters/SSEC/SSEC.rst +++ b/observations/obs_converters/SSEC/SSEC.rst @@ -1,3 +1,5 @@ +.. _ssec: + SSEC Data Center ================ diff --git a/observations/obs_converters/SST/SST.rst b/observations/obs_converters/SST/SST.rst index 14b93cee93..dea8f9fd55 100644 --- a/observations/obs_converters/SST/SST.rst +++ b/observations/obs_converters/SST/SST.rst @@ -1,3 +1,5 @@ +.. _sst: + PROGRAM ``sst_to_obs, oi_sst_to_obs`` ===================================== diff --git a/observations/obs_converters/SSUSI/convert_f16_edr_dsk.rst b/observations/obs_converters/SSUSI/convert_f16_edr_dsk.rst index cd9b81b3ce..238cff1218 100644 --- a/observations/obs_converters/SSUSI/convert_f16_edr_dsk.rst +++ b/observations/obs_converters/SSUSI/convert_f16_edr_dsk.rst @@ -1,3 +1,5 @@ +.. _ssusi: + SSUSI F16 EDR-DSK format to observation sequence converters =========================================================== diff --git a/observations/obs_converters/SVP/readme.rst b/observations/obs_converters/SVP/readme.rst index e4e7255ad2..525b78751d 100644 --- a/observations/obs_converters/SVP/readme.rst +++ b/observations/obs_converters/SVP/readme.rst @@ -1,3 +1,5 @@ +.. _svp: + === SVP === diff --git a/observations/obs_converters/WOD/WOD.rst b/observations/obs_converters/WOD/WOD.rst index 2bba443b2a..e54c1bb7e2 100644 --- a/observations/obs_converters/WOD/WOD.rst +++ b/observations/obs_converters/WOD/WOD.rst @@ -1,3 +1,5 @@ +.. _wod: + WOD Observations ================ diff --git a/observations/obs_converters/cice/cice_to_obs.rst b/observations/obs_converters/cice/cice_to_obs.rst index b5a9228efc..bf63a69134 100644 --- a/observations/obs_converters/cice/cice_to_obs.rst +++ b/observations/obs_converters/cice/cice_to_obs.rst @@ -1,3 +1,5 @@ +.. _cice_to_obs: + PROGRAM ``cice_to_obs`` ======================= diff --git a/observations/obs_converters/even_sphere/README.rst b/observations/obs_converters/even_sphere/README.rst index b0388e2f07..de325c2273 100644 --- a/observations/obs_converters/even_sphere/README.rst +++ b/observations/obs_converters/even_sphere/README.rst @@ -1,3 +1,5 @@ +.. _even_sphere: + =========== Even Sphere =========== diff --git a/observations/obs_converters/gnd_gps_vtec/README.rst b/observations/obs_converters/gnd_gps_vtec/README.rst index 6e924a56db..16bff00009 100644 --- a/observations/obs_converters/gnd_gps_vtec/README.rst +++ b/observations/obs_converters/gnd_gps_vtec/README.rst @@ -1,3 +1,5 @@ +.. _gnd_gps_vtec: + GND GPS VTEC ============ diff --git a/observations/obs_converters/gps/gps.rst b/observations/obs_converters/gps/gps.rst index 772ce806b6..8667fb133a 100644 --- a/observations/obs_converters/gps/gps.rst +++ b/observations/obs_converters/gps/gps.rst @@ -1,4 +1,4 @@ -.. _gps: +.. _gps: GPS Observations ================ diff --git a/observations/obs_converters/obs_error/README.rst b/observations/obs_converters/obs_error/README.rst index 22c5570557..33f3346a7c 100644 --- a/observations/obs_converters/obs_error/README.rst +++ b/observations/obs_converters/obs_error/README.rst @@ -1,3 +1,5 @@ +.. _obs_error: + ######### Obs Error ######### diff --git a/observations/obs_converters/ocean_color/README.rst b/observations/obs_converters/ocean_color/README.rst index 409b659797..970575ecb7 100644 --- a/observations/obs_converters/ocean_color/README.rst +++ b/observations/obs_converters/ocean_color/README.rst @@ -1,3 +1,5 @@ +.. _ocean_color: + VIIRS/AQUA Satellite Ocean Color ================================ diff --git a/observations/obs_converters/ok_mesonet/ok_mesonet.rst b/observations/obs_converters/ok_mesonet/ok_mesonet.rst index 11a743d902..82753ed0f5 100644 --- a/observations/obs_converters/ok_mesonet/ok_mesonet.rst +++ b/observations/obs_converters/ok_mesonet/ok_mesonet.rst @@ -1,3 +1,5 @@ +.. _ok_mesonet: + Oklahoma Mesonet MDF Data ========================= diff --git a/observations/obs_converters/quikscat/QuikSCAT.rst b/observations/obs_converters/quikscat/QuikSCAT.rst index 5ff3692158..507ca7be92 100644 --- a/observations/obs_converters/quikscat/QuikSCAT.rst +++ b/observations/obs_converters/quikscat/QuikSCAT.rst @@ -1,3 +1,5 @@ +.. _quikscat: + QuikSCAT SeaWinds Data ====================== diff --git a/observations/obs_converters/radar/README.rst b/observations/obs_converters/radar/README.rst index d18a8824e3..60235f7d92 100644 --- a/observations/obs_converters/radar/README.rst +++ b/observations/obs_converters/radar/README.rst @@ -1,3 +1,5 @@ +.. _radar: + Radar observations ================== diff --git a/observations/obs_converters/snow/snow_to_obs.rst b/observations/obs_converters/snow/snow_to_obs.rst index 77e99648a1..e6fa774ff9 100644 --- a/observations/obs_converters/snow/snow_to_obs.rst +++ b/observations/obs_converters/snow/snow_to_obs.rst @@ -1,3 +1,5 @@ +.. _snow: + PROGRAM ``snow_to_obs`` ======================= diff --git a/observations/obs_converters/text/text_to_obs.rst b/observations/obs_converters/text/text_to_obs.rst index 69e39d242a..c250a613e7 100644 --- a/observations/obs_converters/text/text_to_obs.rst +++ b/observations/obs_converters/text/text_to_obs.rst @@ -1,3 +1,5 @@ +.. _text: + PROGRAM ``text_to_obs`` ======================= diff --git a/observations/obs_converters/tpw/tpw.rst b/observations/obs_converters/tpw/tpw.rst index 2d5115096f..41613b23d2 100644 --- a/observations/obs_converters/tpw/tpw.rst +++ b/observations/obs_converters/tpw/tpw.rst @@ -1,3 +1,5 @@ +.. _tpw: + Total Precipitable Water Observations ===================================== diff --git a/observations/obs_converters/tropical_cyclone/tc_to_obs.rst b/observations/obs_converters/tropical_cyclone/tc_to_obs.rst index ce5e6d9ee3..2183762998 100644 --- a/observations/obs_converters/tropical_cyclone/tc_to_obs.rst +++ b/observations/obs_converters/tropical_cyclone/tc_to_obs.rst @@ -1,3 +1,5 @@ +.. _tropical_cyclone: + PROGRAM ``tc_to_obs`` ===================== diff --git a/observations/obs_converters/var/littler_tf_dart.rst b/observations/obs_converters/var/littler_tf_dart.rst index 23b483b04f..b54d7c5ca9 100644 --- a/observations/obs_converters/var/littler_tf_dart.rst +++ b/observations/obs_converters/var/littler_tf_dart.rst @@ -1,3 +1,5 @@ +.. _littler_tf_dart: + PROGRAM ``littler_tf_dart`` =========================== diff --git a/observations/obs_converters/var/rad_3dvar_to_dart.rst b/observations/obs_converters/var/rad_3dvar_to_dart.rst index 30748b4c01..f34f74c182 100644 --- a/observations/obs_converters/var/rad_3dvar_to_dart.rst +++ b/observations/obs_converters/var/rad_3dvar_to_dart.rst @@ -1,3 +1,5 @@ +.. _rad_3dvar_to_dart: + PROGRAM ``rad_3dvar_to_dart`` ============================= diff --git a/observations/obs_converters/var/var.rst b/observations/obs_converters/var/var.rst index 4c0e4ea783..b67b3c8180 100644 --- a/observations/obs_converters/var/var.rst +++ b/observations/obs_converters/var/var.rst @@ -1,3 +1,5 @@ +.. _var: + 3DVAR/4DVAR Observation Converters ==================================