Differences
This shows you the differences between two versions of the page.
tseries:technical [2014-01-22 07:27:16] juergens |
tseries:technical [2022-05-31 09:29:32] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Tseries Technical Documentation ====== | ||
- | |||
- | |||
- | ===== Description: | ||
- | |||
- | //Tseries// is an open-source time-series viewer for meteorological purposes. //Tseries// is developed and implemented at the Norwegian Meteorological Institute met.no, as a part of the operational meteorological workstation. //Tseries// can be used standalone, or in interaction with the DIANA meteorological workstation. | ||
- | The //Tseries// package contains two programs: | ||
- | |||
- | - tseries.bin is the timeseries viewer with a Graphical user interface | ||
- | - btseries is a batch version of // | ||
- | |||
- | |||
- | The Goal of this Document is to explain the basic structure of //Tseries// setup- and stylefiles in order to adapt //Tseries// to a specific environment. The intended readership for this document is it-personnel and meteorologists, | ||
- | |||
- | |||
- | |||
- | ===== Command line parameters: ===== | ||
- | |||
- | Most of the input in //Tseries// is given by the control file, but can be overridden by command line input: | ||
- | |||
- | | **-s [ setupfile ]** | if the setup file is not directly defined or invalid, //Tseries// will try to find a valid setup file with the name tseries.ctl in the system. First looking in the current directory, then in $HOME/ | ||
- | | **-S [site]** | site is just a short string. The user can define elements in the setup-file that are only used by certain groups. By this, several groups of users can share one setup-file to simplify maintenance. | ||
- | | **-l [lang]** | The language for the GUI. Can be configured in the GUI itself. Available languages are English(default), | ||
- | | **-T [title]** | Changes the window title, useful if you are running several instances of //Tseries// at the same time. | | ||
- | | **-H [wdbhost]** | Host for the [[https:// | ||
- | | **-u [wdbuser]** | User for the [[https:// | ||
- | | **-d [section1: | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Datastreams: | ||
- | |||
- | There are several possibilities to add a Datastream to a //Tseries// Diagram: | ||
- | |||
- | - **HDF** is the most common used datasource. In HDF all positions are predefined and named, Hdf input is defined in the base control file tseries.ctl. All HDF streams mentioned in tseries.ctl are indexed at startup. Streams from different HDF files can be combined in a single Diagram. | ||
- | - **ASCII** is implemented. But in an operational environment ASCII streams are space-consuming and ineffective. An example of usage of ASCII streams is presented in the appendix of this Document. | ||
- | - **WDB** the Weather and Water Database [[https:// | ||
- | - **KDVH** is a MET Norway proprietary interface, based on URL. KDVH reads observations from the Norwegian climatic database. The Data are defined as Diagram entries in the control file (tseries.ctl) and can be implemented in any diagram. | ||
- | |||
- | - **Fimex** | ||
- | |||
- | ===== Diagrams: ===== | ||
- | |||
- | A Diagram in //Tseries// consist of one or more datastreams connected to a given style. There are several files needed to generate a diagram: | ||
- | To generate a new diagram, one have to proceed the following workflow: | ||
- | |||
- | |||
- | - Create a new folder. | ||
- | - Copy a tseries.ctl and a tsDiagrams file into the folder. | ||
- | - Edit tseries.ctl. If the new diagram implements a new style and not a new stream, then just change the definition for Defs to the tsDiagrams file in this folder. | ||
- | - Copy a stylefile into the folder (for instance meteogram.style) rename the stylefile. | ||
- | - Edit tsDiagrams. Compose the parameters and models for the new diagram. Connect the diagram to the stylefile in this folder. | ||
- | - Edit the stylefile in this folder. | ||
- | - Start tseries.bin in this folder, the local tseries.ctl will be the default. | ||
- | - Repeat 6. and 7. until you are happy with the result. | ||
- | |||
- | ===== The Main Control file – tseries.ctl ===== | ||
- | |||
- | The control file is split into several sections. All parameters given in the start of the file can be used as substitutes by $(parameter) anywhere later in the file. Unix Environment variables can be substituted by ${parameter}. | ||
- | |||
- | Single lines can be commented out by “#” | ||
- | |||
- | Keys, Sites and sections are “case-independent” | ||
- | |||
- | ==== Sites: ==== | ||
- | | ||
- | |||
- | Elements within sites in //Tseries// are usually inactive, the parser will ignore them, unless the user starts //Tseries// with the flag that defines the specific site ( the -S flag). A site is defined by a colon separated list of strings in square brackets. A site section ends by another site or a set of empty brackets. | ||
- | |||
- | < | ||
- | Example: | ||
- | |||
- | server=meat.com | ||
- | |||
- | [FRUIT] | ||
- | server=banana.com | ||
- | |||
- | [VEGETABLES: | ||
- | server=potato.com | ||
- | [] | ||
- | </ | ||
- | |||
- | Basically the server is defined as “meat.com”, | ||
- | | ||
- | |||
- | To use potato.com in this example, one can start //Tseries// either with “ -S VEGETABLES” or “-S OTHERS”. This server is valid for for both flags. | ||
- | |||
- | ==== Sections ==== | ||
- | |||
- | Sections are defined by chevrons like '' | ||
- | ^ Token ^ Description ^ | ||
- | | nowTime | this special token can be used to generate a formatted string from the clock like '' | ||
- | |||
- | |||
- | === SECTION: < | ||
- | |||
- | ^ Token ^ Description ^ | ||
- | | **Etc** | ||
- | | **Images** | Path to find images used in diagrams, like weather symbols | | ||
- | | **Lang** | ||
- | |||
- | |||
- | === SECTION: < | ||
- | |||
- | ^ Token ^ Description ^ | ||
- | | **Defs** | ||
- | | **Configure** | Autogenerated File to store configuration (like window size, language etc) from the GUI. | | ||
- | | **WeatherSymbols** | The weather symbol definition file | | ||
- | | **stdImage** | ||
- | | **finImage** | ||
- | | **iconImage** | ||
- | | **baseFilter** | ||
- | | **wdbBookmarks** | ||
- | | **fimexBookmarks** | ||
- | | **commonBookmarks** | A file with common bookmarks, valid for all users | | ||
- | |||
- | === SECTION: < | ||
- | ^ Token ^ Description ^ | ||
- | | **FimexStreamTypes** | List of streamtypes that willbe read by [[fimex: | ||
- | |||
- | |||
- | === SECTION: < | ||
- | The server section is used to define the connection to diana via coserver | ||
- | |||
- | ^ Token ^ Description ^ | ||
- | | **Client** | ||
- | | **Name** | ||
- | | **Command** | Command to start coserver | | ||
- | |||
- | === SECTION: < | ||
- | |||
- | The streams section is parsed by an older system, the pets graphical engine, on which | ||
- | //Tseries// is build. | ||
- | All data input from HDF files and [[Https:// | ||
- | |||
- | A new model starts with a collection name, this is kept for backwards-compatibility, | ||
- | these values are not used by //Tseries// | ||
- | < | ||
- | CollectionName=ECMeteogrammer | ||
- | PreferredDiagram=Meteogram | ||
- | InitialOpen=0 | ||
- | </ | ||
- | |||
- | In a collection, any hdf/fimex file has to be registered the following way | ||
- | |||
- | == A HDF/ASCII stream == | ||
- | ^ Token ^ Description ^ | ||
- | | **DataFile** | ||
- | | **DataDescription** | The data description. A hdf file can contain several streams. You have to find the exact stream name in the file (when in doubt use vshow). The data description is used to define values in the diagram definition. (tsDiagrams.def) | | ||
- | | **DataType** | HDF or ASCII | | ||
- | | **Contents** | What parameter are defined in the file, x means any. The string is separated into four sections: Parameter, | ||
- | |||
- | |||
- | == A FIMEX stream == | ||
- | ^ Token ^ Description ^ | ||
- | | **DataFile** | ||
- | | **DataDescription** | The data description. Just a string to connect this stream to the diagram definition. (tsDiagrams.def) | | ||
- | | **DataType** | [ type : tag ] type has to be defined in fimexStreamTypes, | ||
- | | **Contents** | Not really used in Fimexstreams | | ||
- | | **DataConfig** | Connect a [[https:// | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== The Diagram definition file – tsDiagrams.def===== | ||
- | |||
- | The Diagram definition file ties the streams to the actual diagram styles. One model input can appear in several diagrams, as well as several different models can use the same diagram type (like a meteogram). It is also possible to use one parameter from a defined stream into a certain diagram that is used by another stream. An example is the use of wind speed from an atmospheric model into a wave-diagram. | ||
- | //Tseries// builds its User interface based on this file. A stream appears first in the menus when it is defined here. If you want to remove a streams from // | ||
- | |||
- | ===The [models] section=== | ||
- | Any model have to be defined in the models section, it also allows to change the display name of the model in the diagrams. The key has to be equal the stream name from tseries.ctl like | ||
- | < | ||
- | | ||
- | </ | ||
- | |||
- | ECMWF is the DataDescription from tseries.ctl, | ||
- | |||
- | |||
- | === The Diagrams === | ||
- | Each diagram definition connects some parameters from some models to a style. A style can be used several times in different contexts. For instance is the S-meteogram (symbol meteogram) a diagram that uses the meteogram style, but it has also the weather parameter (WW) as input. | ||
- | Each diagram defintion starts with the [DIAGRAM] keyword and ends with the [ADD] keyword. | ||
- | |||
- | < | ||
- | Examples: | ||
- | |||
- | # Standard meteogram | ||
- | [DIAGRAM] | ||
- | # The name of the diagram as it appears in the menu | ||
- | NAME=Meteogram | ||
- | # The connected style file | ||
- | STYLEFILE=/ | ||
- | # The streams connected to this diagram | ||
- | [LEGALMODELS] | ||
- | MODEL=ECMWF | ||
- | MODEL=HARMONIE_2.5km | ||
- | |||
- | # modelindependent means, that these parameters will be taken from # all models, if available | ||
- | [MODELINDEPENDENT] | ||
- | PARAM=UU, | ||
- | PARAM=VV, | ||
- | PARAM=FF, | ||
- | PARAM=DD, | ||
- | [END] | ||
- | |||
- | # modelspecific means that these parameters are only used if they # come from the specified model. | ||
- | # modflspecifi values are not necessary part of the legalmodels. | ||
- | # If they are not defined there, they will not occur in the menu | ||
- | |||
- | [MODELSPECIFIC] | ||
- | MODEL=HARMONIE_2.5km | ||
- | PARAM=TT_U, | ||
- | [END] | ||
- | |||
- | [MODELSPECIFIC] | ||
- | MODEL=OBS | ||
- | PARAM=TT, | ||
- | [END] | ||
- | |||
- | [ADD] | ||
- | </ | ||
- | |||
- | Styles | ||
- | Styles are defined in stylefiles. These are connected to data by tsDiagrams.def. | ||
- | By altering the stylesfiles you can control colors, line and object types in the diagram. | ||
- | There are hundreds of different types in a stylefile. | ||
- | |||
- | # | ||
- | # | ||
- | # Global settings | ||
- | # | ||
- | # | ||
- | |||
- | |||
- | bgColor= | ||
- | topMargin= | ||
- | bottomMargin= 50 | ||
- | leftMargin= | ||
- | rightMargin= | ||
- | |||
- | # -------------------------------- | ||
- | # default values | ||
- | |||
- | type= | ||
- | parameter= | ||
- | mother= | ||
- | plotAll= | ||
- | enabled= | ||
- | |||
- | color= | ||
- | color2= | ||
- | font= | ||
- | linePattern= | ||
- | fillPattern= | ||
- | align= | ||
- | spacing= | ||
- | intSpacing= | ||
- | label= | ||
- | patternInColour= FALSE | ||
- | lineWidth= | ||
- | axisWidth= | ||
- | tickWidth= | ||
- | minRange= | ||
- | interval= | ||
- | delta= | ||
- | minMargin= | ||
- | maxIsSet= | ||
- | minIsSet= | ||
- | minValue= | ||
- | maxValue= | ||
- | yaid= 0 | ||
- | centerVector= FALSE | ||
- | numTickMajor= 10 | ||
- | numTickMinor= 2 | ||
- | labelSpace= | ||
- | quantized= | ||
- | quantum= | ||
- | gridxonly= | ||
- | axisgrid= | ||
- | gridwidth= | ||
- | gridcolor= | ||
- | gridstyle= | ||
- | |||
- | [DEFAULT] | ||
- | |||
- | |||
- | Then you have to define axes | ||
- | |||
- | first at least one x-axis | ||
- | # -------------------------------- | ||
- | # utc-time | ||
- | [NEW] | ||
- | type= UTC | ||
- | order= | ||
- | height= | ||
- | spacing= | ||
- | font= | ||
- | color= | ||
- | minSkipX= 15 | ||
- | [ADD] | ||
- | |||
- | And then several y-axes. A curve in the diagram is connected to an axis. If you want to display, for instance several temperatures, | ||
- | |||
- | # ---------------------------- | ||
- | # Yaxis (T2m) | ||
- | |||
- | [NEW] | ||
- | type= YAXIS_STATIC | ||
- | yaid= 0 | ||
- | delta= | ||
- | interval= | ||
- | minMargin= | ||
- | minRange= | ||
- | minIsSet= | ||
- | maxIsSet= | ||
- | text= | ||
- | align= | ||
- | axis= LEFTLEFT | ||
- | color= | ||
- | lineWidth= | ||
- | linePattern= FULL | ||
- | patternInColour=TRUE | ||
- | [ADD] | ||
- | |||
- | |||
- | With axis in place, you have to define a parameter and connect it to it. In this case, the curve is presented in 2 different colors, one for -100 to 0 degrees and one for 0-100 degrees. | ||
- | |||
- | [NEW] | ||
- | type= LINE | ||
- | yaid= 0 | ||
- | parameter= | ||
- | text= T2m [°C] | ||
- | lineWidth= | ||
- | linePattern= | ||
- | patternInColour= FALSE | ||
- | colorbyvalue= | ||
- | datalimits= | ||
- | colorlist= | ||
- | patternInColour= FALSE | ||
- | [ADD] | ||
- | |||
- | |||
- | Valid types: | ||
- | There are several types in //Tseries// that can be used by the different elements. | ||
- | Colors: | ||
- | BLACK | ||
- | BLUE | ||
- | GREEN | ||
- | CYAN | ||
- | RED | ||
- | MAGENTA | ||
- | YELLOW | ||
- | WHITE | ||
- | GREY25 | ||
- | GREY40 | ||
- | GREY45 | ||
- | GREY50 | ||
- | GREY55 | ||
- | GREY60 | ||
- | GREY65 | ||
- | GREY70 | ||
- | GREY75 | ||
- | GREY80 | ||
- | GREY85 | ||
- | GREY90 | ||
- | GREY95 | ||
- | MIST_RED | ||
- | MIST_GREEN | ||
- | MIST_BLUE | ||
- | DARK_GREEN | ||
- | BROWN | ||
- | ORANGE | ||
- | PURPLE | ||
- | LIGHT_BLUE | ||
- | DARK_YELLOW | ||
- | DARK_RED | ||
- | DARK_BLUE | ||
- | DARK_CYAN | ||
- | DARK_MAGENTA | ||
- | MIDNIGHT_BLUE | ||
- | DNMI_GREEN | ||
- | DNMI_BLUE | ||
- | RUST_RED | ||
- | DAWN_RED | ||
- | SUN_YELLOW | ||
- | SPRING_GREEN | ||
- | IRR_GREEN | ||
- | MOSS_GREEN | ||
- | GRASS_GREEN | ||
- | THUNDER_GREY | ||
- | SEA_BLUE | ||
- | SKY_BLUE | ||
- | ICE_BLUE | ||
- | GLACIER_WHITE | ||
- | RAIN_GREY | ||
- | IVORY | ||
- | DARK_IVORY | ||
- | BLUEGREY | ||
- | GREYBROWN | ||
- | OLIVE | ||
- | MUDDYGREEN | ||
- | GREYBLUE | ||
- | DARK_BLUEGREY | ||
- | DARKOLIVE | ||
- | RED_YELLOW | ||
- | YELLOW_RED | ||
- | |||
- | Fillpatterns | ||
- | DIAGRIGHT | ||
- | DIAGLEFT | ||
- | DIAGCROSS | ||
- | HORIZONTAL | ||
- | VERTICAL | ||
- | SHORIZONTAL | ||
- | SVERTICAL | ||
- | SQUARE | ||
- | SOLID | ||
- | Linestyle | ||
- | DASHED | ||
- | DASHDOTTED | ||
- | DASHDASHDOTTED | ||
- | DOTTED |