New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 3069 for branches/dev_2802_OBStools/DOC/TexFiles – NEMO

Ignore:
Timestamp:
2011-11-09T16:18:38+01:00 (13 years ago)
Author:
djlea
Message:

Update OBS and ASM documentation. Small updates and fixes to dataplot.

Location:
branches/dev_2802_OBStools/DOC/TexFiles
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_2802_OBStools/DOC/TexFiles/Chapters/Chap_ASM.tex

    r2483 r3069  
    1515The ASM code adds the functionality to apply increments to the model variables:  
    1616temperature, salinity, sea surface height, velocity and sea ice concentration.  
    17 These are read into the model from a NetCDF file which may be produced by data 
    18 assimilation.  The code can also output model background fields which are used 
     17These are read into the model from a NetCDF file which may be produced by separate data 
     18assimilation code.  The code can also output model background fields which are used 
    1919as an input to data assimilation code. This is all controlled by the namelist 
    2020\textit{nam\_asminc}.  There is a brief description of all the namelist options 
  • branches/dev_2802_OBStools/DOC/TexFiles/Chapters/Chap_OBS.tex

    r3026 r3069  
    1313$\ $\newline    % force a new line 
    1414 
    15 The observation and model comparison code (OBS) reads in observation files 
    16 (profile temperature and salinity, sea surface temperature, sea level anomaly, 
    17 sea ice concentration, and velocity) and calculates  an interpolated model equivalent 
    18 value at the observation location and nearest model timestep. The OBS code is 
    19 called from \np{opa.F90} in order to initialise the model and to calculate the 
    20 model equivalent values for observations on the 0th timestep. The code is then 
    21 called again after each timestep from \np{step.F90}. The code was originally 
    22 developed for use with NEMOVAR.  
    23  
    24 For all data types a 2D horizontal  interpolator is needed 
    25 to interpolate the model fields to the observation location. 
    26 For {\em in situ} profiles, a 1D vertical interpolator is needed in addition to 
    27 provide model fields at the observation depths. Currently this only works in 
    28 z-level model configurations, but is being developed to work with a 
    29 generalised vertical coordinate system. 
    30 Temperature data from moored buoys (TAO, TRITON, PIRATA) in the 
    31 ENACT/ENSEMBLES data-base are available as daily averaged quantities. For this 
    32 type of observation the 
    33 observation operator will compare such observations to the model temperature 
     15The observation and model comparison code (OBS) reads in observation files (profile 
     16temperature and salinity, sea surface temperature, sea level anomaly, sea ice concentration, 
     17and velocity) and calculates  an interpolated model equivalent value at the observation 
     18location and nearest model timestep. The resulting data are saved in a ``feedback'' file (or 
     19files). The code was originally developed for use with the NEMOVAR data assimilation code, but 
     20can be used for validation or verification of model or  any other data assimilation system. 
     21 
     22The OBS code is called from \np{opa.F90} for model initialisation and to calculate the model 
     23equivalent values for observations on the 0th timestep. The code is then called again after 
     24each timestep from \np{step.F90}. To build with the OBS code active \key{diaobs} must be 
     25set. 
     26 
     27For all data types a 2D horizontal  interpolator is needed to interpolate the model fields to 
     28the observation location. For {\em in situ} profiles, a 1D vertical interpolator is needed in 
     29addition to provide model fields at the observation depths. Currently this only works in 
     30z-level model configurations, but is being developed to work with a generalised vertical 
     31coordinate system. Temperature data from moored buoys (TAO, TRITON, PIRATA) in the 
     32ENACT/ENSEMBLES data-base are available as daily averaged quantities. For this type of 
     33observation the observation operator will compare such observations to the model temperature 
    3434fields averaged over one day. The relevant observation type may be specified in the namelist 
    35 using \np{endailyavtypes}. Otherwise the model value from the nearest 
    36 timestep to the observation time is used. 
    37  
    38 The resulting data are saved in a ``feedback'' file (or files) which can be used 
    39 for model validation and verification and also to provide information for data 
    40 assimilation. This code is controlled by the namelist \textit{nam\_obs}. To 
    41 build with the OBS code active \key{diaobs} must be set. 
    42  
    43 Section~\ref{OBS_example} introduces a test example of the observation operator 
    44 code including where to obtain data and how to setup the namelist. 
    45 Section~\ref{OBS_details} introduces some more technical details of the 
    46 different observation types used and also shows a more complete namelist. 
    47 Finally section~\ref{OBS_theory} introduces some of the theoretical aspects of 
    48 the observation operator including interpolation methods and running on multiple 
    49 processors.  
     35using \np{endailyavtypes}. Otherwise the model value from the nearest timestep to the 
     36observation time is used. 
     37 
     38The code is controlled by the namelist \textit{nam\_obs}. See the following sections for more 
     39details on setting up the namelist.  
     40 
     41Section~\ref{OBS_example} introduces a test example of the observation operator code including 
     42where to obtain data and how to setup the namelist. Section~\ref{OBS_details} introduces some 
     43more technical details of the different observation types used and also shows a more complete 
     44namelist. Section~\ref{OBS_theory} introduces some of the theoretical aspects of the 
     45observation operator including interpolation methods and running on multiple processors. 
     46Section~\ref{OBS_obsutils} introduces some utilities to help working with the files produced 
     47by the OBS code. 
    5048 
    5149% ================================================================ 
     
    6967\item Add the following to the NEMO namelist to run the observation 
    7068operator on this data. Set the \np{enactfiles} namelist parameter to the 
    71 observation  file name (or link in to \np{profiles\_01\.nc}): 
     69observation  file name: 
    7270\end{enumerate} 
    7371 
     
    7674%------------------------------------------------------------------------------------------------------------- 
    7775 
    78 The option \np{ln\_t3d} and \np{ln\_s3d} switch on the temperature and salinity 
     76The options \np{ln\_t3d} and \np{ln\_s3d} switch on the temperature and salinity 
    7977profile observation operator code. The \np{ln\_ena} switch turns on the reading 
    8078of ENACT/ENSEMBLES type profile data. The filename or array of filenames are 
     
    8886Setting \np{ln\_grid\_global} means that the code distributes the observations 
    8987evenly between processors. Alternatively each processor will work with 
    90 observations located within the model subdomain. 
    91  
    92 The NEMOVAR system contains utilities to plot the feedback files, convert and 
    93 recombine the files. These are available on request from the NEMOVAR team. 
     88observations located within the model subdomain (see section~\ref{OBS_parallel}). 
     89 
     90A number of utilities are now provided to plot the feedback files, convert and 
     91recombine the files. These are explained in more detail in section~\ref{OBS_obsutils}. 
    9492 
    9593\section{Technical details} 
     
    713711 
    714712\subsection{Parallel aspects of horizontal interpolation} 
     713\label{OBS_parallel} 
    715714 
    716715For horizontal interpolation, there is the basic problem that the 
     
    779778\subsection{Vertical interpolation operator} 
    780779 
    781 The vertical interpolation is achieved using either a cubic spline or 
     780Vertical interpolation is achieved using either a cubic spline or 
    782781linear interpolation. For the cubic spline, the top and 
    783782bottom boundary conditions for the second derivative of the  
     
    785784At the bottom boundary, this is done using the land-ocean mask. 
    786785 
     786\newpage 
    787787 
    788788\section{Observation Utilities} 
    789  
    790 Some tools for viewing and processing of observation and feedback files are provided in the NEMO 
    791 repository for convenience. These are OBSTOOLS which is a series of Fortran programs which are helpful to 
    792 deal with feedback files. They do such tasks as observation file conversion, printing of file contents, 
    793 some basic statistical analysis of feedback files. The other tool is an IDL program called dataplot which 
    794 uses a graphical interface to visualise observations and feedback files. OBSTOOLS and dataplot are 
    795 described in more detail below.   
    796  
    797 \subsection{OBSTOOLS} 
    798  
    799 A series of Fortran utilities is provided with NEMO called OBSTOOLS. This are helpful in handling 
    800 observation files and the feedback file output from the NEMO observation operator. The utilities are as 
    801 follows 
     789\label{OBS_obsutils} 
     790 
     791Some tools for viewing and processing of observation and feedback files are provided in the 
     792NEMO repository for convenience. These include OBSTOOLS which are a collection of Fortran 
     793programs which are helpful to deal with feedback files. They do such tasks as observation file 
     794conversion, printing of file contents, some basic statistical analysis of feedback files. The 
     795other tool is an IDL program called dataplot which uses a graphical interface to visualise 
     796observations and feedback files. OBSTOOLS and dataplot are described in more detail below.   
     797 
     798\subsection{Obstools} 
     799 
     800A series of Fortran utilities is provided with NEMO called OBSTOOLS. This are helpful in 
     801handling observation files and the feedback file output from the NEMO observation operator. 
     802The utilities are as follows 
    802803 
    803804\subsubsection{corio2fb} 
    804805 
    805 The program corio2fb converts profile observation files from the Coriolis format to the standard feedback 
    806 format. The program is called in the following way: 
     806The program corio2fb converts profile observation files from the Coriolis format to the 
     807standard feedback format. The program is called in the following way: 
    807808 
    808809\begin{alltt} 
     
    815816\subsubsection{enact2fb} 
    816817 
    817 The program enact2fb converts profile observation files from the ENACT format to the standard feedback 
    818 format. The program is called in the following way: 
     818The program enact2fb converts profile observation files from the ENACT format to the standard 
     819feedback format. The program is called in the following way: 
    819820 
    820821\begin{alltt} 
     
    827828\subsubsection{fbcomb} 
    828829 
    829 The program fbcomb combines multiple feedback files produced by individual processors in an MPI run of 
    830 NEMO into a single feedback file. The program is called in the following way: 
     830The program fbcomb combines multiple feedback files produced by individual processors in an 
     831MPI run of NEMO into a single feedback file. The program is called in the following way: 
    831832 
    832833\begin{alltt} 
     
    839840\subsubsection{fbmatchup} 
    840841 
    841 The program fbmatchup will match observations from two feedback files. The program is called in the 
     842The program fbmatchup will match observations from two feedback files. The program is called 
     843in the following way: 
     844 
     845\begin{alltt} 
     846\footnotesize 
     847\begin{verbatim} 
     848fbmatchup.exe outputfile inputfile1 varname1 inputfile2 varname2 ... 
     849\end{verbatim} 
     850\end{alltt} 
     851 
     852 
     853\subsubsection{fbprint} 
     854 
     855The program fbprint will print the contents of a feedback file or files to standard output. 
     856Selected information can be output using optional arguments. The program is called in the 
    842857following way: 
    843  
    844 \begin{alltt} 
    845 \footnotesize 
    846 \begin{verbatim} 
    847 fbmatchup.exe outputfile inputfile1 varname1 inputfile2 varname2 ... 
    848 \end{verbatim} 
    849 \end{alltt} 
    850  
    851  
    852 \subsubsection{fbprint} 
    853  
    854 The program fbprint will print the contents of a feedback file or files to standard output. Selected 
    855 information can be output using optional arguments. The program is called in the following way: 
    856858 
    857859\begin{alltt} 
     
    868870     -s ID         select station ID   
    869871     -t TYPE       select observation type 
    870      -v NUM1-NUM2  select variable range to print by number (default all) 
    871      -a NUM1-NUM2  select additional variable range to print by number (default all) 
    872      -e NUM1-NUM2  select extra variable range to print by number (default all) 
     872     -v NUM1-NUM2  select variable range to print by number  
     873                      (default all) 
     874     -a NUM1-NUM2  select additional variable range to print by number  
     875                      (default all) 
     876     -e NUM1-NUM2  select extra variable range to print by number  
     877                      (default all) 
    873878     -d            output date range 
    874879     -D            print depths 
     
    879884\subsubsection{fbsel} 
    880885 
    881 The program fbsel will select or subsample observations. The program is called in the following way: 
     886The program fbsel will select or subsample observations. The program is called in the 
     887following way: 
    882888 
    883889\begin{alltt} 
     
    890896\subsubsection{fbstat} 
    891897 
    892 The program fbstat will output summary statistics in different global areas into a number of files. The 
    893 program is called in the following way: 
     898The program fbstat will output summary statistics in different global areas into a number of 
     899files. The program is called in the following way: 
    894900 
    895901\begin{alltt} 
     
    902908\subsubsection{fbthin} 
    903909 
    904 The program fbthin will thin the data to 1 degree resolution. The code could easily be modified to thin to 
    905 a different resolution. The program is called in the following way: 
     910The program fbthin will thin the data to 1 degree resolution. The code could easily be 
     911modified to thin to a different resolution. The program is called in the following way: 
    906912 
    907913\begin{alltt} 
     
    914920\subsubsection{sla2fb} 
    915921 
    916 The program sla2fb will convert an AVISO SLA format file to feedback format. The program is called in the 
    917 following way: 
     922The program sla2fb will convert an AVISO SLA format file to feedback format. The program is 
     923called in the following way: 
    918924 
    919925\begin{alltt} 
     
    929935\subsubsection{vel2fb} 
    930936 
    931 The program vel2fb will convert TAO/PIRATA/RAMA currents files to feedback format. The program is called in the 
    932 following way: 
     937The program vel2fb will convert TAO/PIRATA/RAMA currents files to feedback format. The program 
     938is called in the following way: 
    933939 
    934940\begin{alltt} 
     
    943949To build the obstools use in the tools directory use ./maketools -n OBSTOOLS -m [ARCH]. 
    944950 
    945 \subsection{dataplot} 
    946  
    947 An IDL program called dataplot is included which uses a graphical interface to visualise observations and 
    948 feedback files. It is possible to zoom in, plot individual profiles and calculate some basic statistics. To 
    949 plot some data 
    950  
     951\subsection{Dataplot} 
     952 
     953An IDL program called dataplot is included which uses a graphical interface to visualise 
     954observations and feedback files. It is possible to zoom in, plot individual profiles and 
     955calculate some basic statistics. To plot some data run IDL and then: 
    951956\begin{alltt} 
    952957\footnotesize 
     
    957962 
    958963To read multiple files into dataplot, for example multiple feedback files from different 
    959 processors or from different days, the easiest method is to use the spawn command to generate a list of 
    960 files which can then be passed to dataplot. 
    961  
    962 \begin{alltt} 
    963 \footnotesize 
    964 \begin{verbatim} 
    965 IDL> spawn, 'ls profb*', files 
     964processors or from different days, the easiest method is to use the spawn command to generate 
     965a list of files which can then be passed to dataplot. 
     966\begin{alltt} 
     967\footnotesize 
     968\begin{verbatim} 
     969IDL> spawn, 'ls profb*.nc', files 
    966970IDL> dataplot, files 
    967971\end{verbatim} 
    968972\end{alltt} 
    969973 
    970 Fig~\ref{fig:obsdataplotmain} shows the main window which is launched when dataplot starts. This is split 
    971 into three parts. At the top there is a menu bar which contains a variety of drop down menus. Areas - zooms 
    972 into prespecified regions; plot - plots the data as a timeseries or a T-S diagram if appropriate; Find - 
    973 allows data to be searches; Config - sets various configuration options. 
    974  
    975 The middle part is a plot of the geographical location of the observations. This will plot the observation 
    976 value, the model background value or observation minus background value depending on the option selected in 
    977 the radio button at the bottom of the window. The plotting range can be changed by clicking on the colour 
    978 bar. The title of the plot gives some basic information about the date range and depth range shown, the 
    979 extreme values, and the mean and rms values. It is possible to zoom in using a drag-box. You may also zoom 
    980 in or out using the mouse wheel. 
    981  
    982 The bottom part of the window controls what is visible in the plot above. There are two bars which select 
    983 the level range plotted (for profile data). The other bars below select the date range shown. The bottom of 
    984 the figure allows the choice to plot the mean, root mean square, standard deviation, mean square values. As 
    985 mentioned above here you can choose to plot the observation value, the model background value or 
    986 observation minus background value. The next group of radio buttons selects the map projection. This can 
    987 either be regular latitude longitude grid, or north or south polar stereographic. The next group of 
    988 radio buttons will plot bad observations, switch to salinity and plot density for profile observations. The 
    989 rightmost group of buttons will print the plot window as a postscript, save it as png, or exit from 
    990 dataplot. 
     974Fig~\ref{fig:obsdataplotmain} shows the main window which is launched when dataplot starts. 
     975This is split into three parts. At the top there is a menu bar which contains a variety of 
     976drop down menus. Areas - zooms into prespecified regions; plot - plots the data as a 
     977timeseries or a T-S diagram if appropriate; Find - allows data to be searched; Config - sets 
     978various configuration options. 
     979 
     980The middle part is a plot of the geographical location of the observations. This will plot the 
     981observation value, the model background value or observation minus background value depending 
     982on the option selected in the radio button at the bottom of the window. The plotting colour 
     983range can be changed by clicking on the colour bar. The title of the plot gives some basic 
     984information about the date range and depth range shown, the extreme values, and the mean and 
     985rms values. It is possible to zoom in using a drag-box. You may also zoom in or out using the 
     986mouse wheel. 
     987 
     988The bottom part of the window controls what is visible in the plot above. There are two bars 
     989which select the level range plotted (for profile data). The other bars below select the date 
     990range shown. The bottom of the figure allows the option to plot the mean, root mean square, 
     991standard deviation or mean square values. As mentioned above you can choose to plot the 
     992observation value, the model background value or observation minus background value. The next 
     993group of radio buttons selects the map projection. This can either be regular latitude 
     994longitude grid, or north or south polar stereographic. The next group of radio buttons will 
     995plot bad observations, switch to salinity and plot density for profile observations. The 
     996rightmost group of buttons will print the plot window as a postscript, save it as png, or exit 
     997from dataplot. 
    991998 
    992999%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    9931000\begin{figure}     \begin{center} 
    994 \includegraphics[width=10cm,height=12cm,angle=-90.]{./TexFiles/Figures/Fig_OBS_dataplot_main} 
     1001%\includegraphics[width=10cm,height=12cm,angle=-90.]{./TexFiles/Figures/Fig_OBS_dataplot_main} 
     1002\includegraphics[width=9cm,angle=-90.]{./TexFiles/Figures/Fig_OBS_dataplot_main} 
    9951003\caption{      \label{fig:obsdataplotmain} 
    9961004Main window of dataplot.} 
     
    9981006%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    9991007 
    1000 If a profile point is clicked with the mouse button a plot of the observation and background values 
    1001 as a function of depth (Fig~\ref{fig:obsdataplotprofile}). 
     1008If a profile point is clicked with the mouse button a plot of the observation and background 
     1009values as a function of depth (Fig~\ref{fig:obsdataplotprofile}). 
    10021010 
    10031011%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
    10041012\begin{figure}     \begin{center} 
    1005 \includegraphics[width=10cm,height=12cm,angle=-90.]{./TexFiles/Figures/Fig_OBS_dataplot_prof} 
     1013%\includegraphics[width=10cm,height=12cm,angle=-90.]{./TexFiles/Figures/Fig_OBS_dataplot_prof} 
     1014\includegraphics[width=7cm,angle=-90.]{./TexFiles/Figures/Fig_OBS_dataplot_prof} 
    10061015\caption{      \label{fig:obsdataplotprofile} 
    1007 Profile plot from dataplot.} 
     1016Profile plot from dataplot produced by right clicking on a point in the main window.} 
    10081017\end{center}     \end{figure} 
    10091018%>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
  • branches/dev_2802_OBStools/DOC/TexFiles/Namelist/namobs_example

    r2298 r3069  
    5757   ln_s3d = .true. 
    5858   ln_ena = .true. 
    59    enactfiles = 'profiles_01.nc' 
     59   enactfiles = 'enact.1.nc' 
    6060   ln_grid_global = .true. 
    6161   ln_grid_search_lookup = .true. 
Note: See TracChangeset for help on using the changeset viewer.