33
EGOWS, June 2007, Dublin What is it? What is it?

EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

Embed Size (px)

Citation preview

Page 1: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

What is it?What is it?

Page 2: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Implementation detailsImplementation detailsProgramming language: ANSI/ISO C++

Self-documented sources: Doxygen (web searchable developer’s documentation)

Team programming: Concurrent Version System (CVS)

Continuous integration: Autobuild system (e-mailing, night build, lunch build)

now BAMBOO (fancy web interface)

Automated packaging: Linux & Windows installations, nightly builds for testing

Problem/project tracking: JIRA – TTS portal for users and developers

Page 3: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

System portabilitySystem portability

Linux Unix Windows

Server

Majority Linux systems (binary distribution)

IA32, IA64, EM64T, AMD64, ...RedHat, Fedora, MDK, SuSE,

Debian, ...

Solaris (UltraSPARC, AMD64, IA32),

HPUX (PA-RISC, IA64),AIX (POWERx, AMD64),

IRIX (MIPS, IA64), ...

MS Windows NT-based(2000, XP, 2003+)

ClientMajority Linux systems

(binary distribution)

Solaris (UltraSPARC, AMD64, IA32),

HPUX (PA-RISC, IA64),AIX (POWERx, AMD64),

IRIX (MIPS, IA64), ...

MS Windows NT-based(2000, XP, 2003+)

Remote desktop

All Linux systems (X11)

All Graphical Unix systems (X11)

All MS Windows systems

(X11, Remote Desktop/TSCAL)

Programming language: ANSI/ISO C++ (system independent programming)

gains true portability, equivalent performance

3rd party libraries: Qt (Unix/Windows GUI), STL, Boost

True system portability: Windows, majority of UNIX (incl. Linux), most cost effective: Intel EM64T (Windows/Linux)

Page 4: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

System’s Layered ModelSystem’s Layered Model

Applications / Daemons

Map Toolkit

Message Switching

Graphical Painter

Operating SystemGUI

Display Printers Network Storage

Printer driversSQL

Qt OS Abstraction Layer

NativeDB

Remote DB

UserDB

Database Access & Abstraction Layers

Configuration

MathKernel

CoreToolkit

OtherResources

Page 5: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

ScalabilityScalabilityScalabilityScalabilityThe Visual Weather is designed to be flexible and scalable and provide portable solutions as well. The system can also run on off-the-shelf industry standard PC-based hardware.

Standard operational schemes include:

• Stand-alone workstation: Running on a single computer or notebook (i.e. small monolithic system)

• Server and client systems:

Running on server; sharing database with separate independent clients; Allows clustering – High Availability and Load Balancing

• Heterogeneous environment:

Multi-system mixed architecture with dedicated data distribution, LAN/WAN mixture, cross-platform interoperability

Page 6: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

GenerationsGenerations• Software is being developed for 9 years now• Architecture changes are being natural to development process,

therefore keeps it “young” for going towards future requirements

1st Generation – “Early beginnings” – simple visualization tool, with math calculations.

2nd Generation – Product customization, math, productivity oriented, client-server, turns into “Robust” system.

3rd Generation – turns robust system into “Integration platform” for other applications and modules– Re-using/integrating other applications, even in native code

(such as Fortran and OSFM (UK))– Python + PyQt for high-level forecaster’s tools/gadgets (such

as interactive thermodiagram/normand-point)– Algorithm reusing (such as OSA (UK))– Data provider (API, remote calls, WMS) to other applications

(such as TDA)

Page 7: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Python scripting & IntegrationPython scripting & Integration

• PyQt performs GUI binding• There are binding in VW to access

core functions (which are time-critical) as well as objects

• Access to full framework – e.g. on-screen modification of thermodiagram is a Python script

• Ideal for applets, diagnostic tools, advising & decision aid

Provides Rapid integration & Development platform – allows to develop high-level functionality quickly and efficiently.

Page 8: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Re-using & data providerRe-using & data provider

• Integrating computation methodson math-kernel level

• Re-using of know-how: On Screen Analysis

• Re-using of code (even Fortran): FSU Streams, COMPAC, On Screen Field Modification

• Remote/local call API, batchtools, automation already in-build

Page 9: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Data InputData InputVisual Weather has flexible capabilities for data reception and transmission (Message Switch functionality),including:

• Satellite broadcast reception

• Message Switching Systems

• Surface observation network

• Remote-sensing portable instruments

• SADIS, RETIM, DWDSAT, ISCS systems

• TCP/IP WMO stream protocol

• Highly variable File-transfer (FTP protocol, incl. secure SFTP)

Page 10: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Database Access Layered ModelDatabase Access Layered Model

Applications / Daemons

Database Abstraction Layer

Local Database “Native”

Database files

Remote Database

Database Proxy

Remote database

Dir

ect

(n

on-

cach

ed

)

LA

N /

WA

N

User Database

User’s local files

Database Access Layer

Database supports:

• aging of the data & expiration• holding case studies• replaying of data• temporary/testing data (user)

Page 11: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Inter-process communication (ICOP Inter-process communication (ICOP RPC)RPC)

ICOP Server

Service 1 Service 2

User

Application 2

Graphical Application 1

Request

Rep

ly

Reg

iste

ring

Cal

ling

serv

.

Remote ClientApplication 3

Network

TCP Socket4021

Req

uest

System talks to its other components through RPC (but not SOAP or CORBA), in order to allow orchestration of all its components & background processing.

Structure allows real remote calls, i.e. creatingclient-server architectureand different deploymentschemas, if needed.

Page 12: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Remote and Proxy DatabaseRemote and Proxy Database

Client System

Database Proxy

Application 1

Proxy cache storage

Application 2

Abs

tra

ctio

n L

ayer

Pro

xy d

iver

Acc

ess

Lay

er

Request

Abs

tra

ctio

n L

ayer

Pro

xy d

iver

Acc

ess

Lay

er

Request

Daemon 1

Abs

tra

ctio

n L

ayer

Pro

xy d

iver

Acc

ess

Lay

er

Request

Ch

eck

for

dat

a o

r in

dex

Sto

re to

cac

he

Re

trie

ve c

ache

d ite

ms

LAN / WAN

Request

TCP Socket

Remote database

Request

Re

trie

ve

Retrieve

Server System

Page 13: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Mathematic Kernel OverviewMathematic Kernel Overview

Applications

pCode functions

Dynamic Kernel Libraries

TACDecoder 1

Token Stack-Machine Processor

Atomic Cache Unit

ConversionUnit

Mathematic Kernel Interface

TACDecoder 2

TDCF Decoder

ThermoDynamics

UserLibraries

• Token (structure)-driven Stack Machine for strong Math

• Class oriented system of computations, unit-type

transparent/checks

• Functions in pCode or Dynamic Libraries

• Array/Grid-transparent processing

• pluggable decoders

• TDCF interpreter engine

• scalar/vector operators

• token-formatting features

• micro-renderers / AnyT /

XML / XSLT

Page 14: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Mathematic Kernel ExampleMathematic Kernel Example

Synop(station, time)

Take( , “temperature”)

FM-12 SYNOPTAC Decoder Library

Database

Grid(EGRR, temperature, 2m, station, time)

[C][K]

[Class Synop]Interpolation

Unit

[GRIB]

GRIBDecoder Library

Database

Page 15: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

User privilegesUser privileges

Alice

Carol

Bob

Dave

System Users

Alice

Bob

Dave

VW Users

ACL ManagerApplications

Report retrieval

Maps

Database retrieval

Editing

Configuration

Request for authorisation

Gra

nt /

Den

y

AccessControlList

Eve

Shared configurations

Office common pre-sets

User-group

pre-sets

User’s own

pre-sets

Page 16: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Graphic Painter OverviewGraphic Painter Overview

Applications

Image PainterPostScript

PainterPDF Painter SVG Painter

QtSW-RGBA

X11 GDI ASM Printers e-Doc Web

Graphic Painter Abstraction (primitives)

Font Abstraction subsystem

Layout engine

Graphic/Geo toolkit

• Entirely vector-based (not a hard-copy oriented)

• Full Unicode support, layout engine, font smoothing, TTF/OTF

• Internal painter software based (no HW limits, non- blocking), fully 32bit RGBA, anti-aliasing, sub-pixel precision, ASM (IA32&64)

• e-documents standard PDF (model 1.4), print-quality delivery

Page 17: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

WMO Information Systems (WIS)WMO Information Systems (WIS)

• WMS (Web Map Service) – already implemented (1.1.1, 1.2, 1.3 – incl. multi-dimensions). WMS will take crucial place in UK’s production chain.

Moving towards WIS, will put very soon more requirements on Visualization workstations, not just Metadata extraction from original data, but also from forecaster’s products

• WCS (Web Coverage Service) – providing forecaster-modified fields

• WFS (Web Feature Service) – providing depicted weather features

WMS is not only about exposing data for GIS and decision making process (although being important there!), but is about WIS!

Page 18: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Depiction of Meteorological ObjectsDepiction of Meteorological Objects

Besides WMS (already implemented, test system operational), other “components” are on the way:

• Field cutter to be available soon

• Meteorological featuresare already availablefor sharing for integrationwith production chain;also allows collaboration,etc.

Page 19: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Message EditingMessage EditingMessage editing is based on pre-configured message templates for automated, and semi-automated message editing.

• The forecaster uses an interactive form where various input-boxes, list-boxes, and check-boxes help the forecaster to fill in the message.

• Messages can contain automatically calculated data, including values from observations, binary forecasts, values interpolated from NWP.

• Messages can be transmitted on demand or at scheduled times.

Page 20: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Tables & AlertsTables & AlertsComprehensive tables where values are automatically substituted from the selected data type (SYNOP, METAR, TEMP, BUOY, NWP models, lightning detection system, etc).

• Tables can include values and graphical symbols.

• Limits for parameters and places are used for monitoring and automatic issuing of alerts.

Page 21: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Detailed Geographical DataDetailed Geographical Data

In-build geographical data with world-wide coverage, high-resolution, incl.: shorelines, countries, airports, rivers, Digital Elevation Model – allowing chart production for any area of the world.

Special geographical data can be added for the detailed tactical display of map background. A ESRI shape file with vector orography can be imported from industry-standard GIS mapping software. The shape file can include information about districts, operation area, infrastructure, etc.

Page 22: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Observations Observations

• Station models with customizable size, look, and density

• Colour status symbols

• Discrete numbers placed at station position

• Automatic weather icons

• Objective analysis

Visualization of SYNOP, METAR, TEMP, BUOY data in various forms:

Information tooltip showing values at the selected point

Page 23: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Objective AnalysisObjective AnalysisObjective analysis using Barnes or Akima method, featuring unique tools:

• Model-based initialization(multi-pass differential analysis)

• Median and Model-basedquality control

• Manual report corrections

Page 24: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Satellite and NowCasting DataSatellite and NowCasting Data

• Easy integration of satellite images into all maps and real-time reprojection to selected area.

• Support of low-orbit and geo-stationary satellites, including MSG.

• False colouring and RGB composites available.

• Support of NowCasting data integration.

Visualisation of satellite images in native formats.

Page 25: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Radar and Lightning DataRadar and Lightning Data

• Display of information about lightning discharges from SFERICS, Vaisala, SAFIR, etc.

• Multiple radar sites can be combined into a single map.

Page 26: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Forecast Model ParametersForecast Model Parameters

Map Editor displays parameters from forecast models decoded from GRIB and GRID messages. All models, including UKMO, ECMWF, MM5, HRM, HIRLAM, ETA, WAVE are supported.

Model output visualized as:

• Isolines and isosurfaces

• Wind barbs or arrows

• Numerical grids

• Stream-lines

• Trajectories

Page 27: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Model ComparisonsModel ComparisonsVisual Weather enables to visualize various types of models:

• Parameters from various models can be mathematically combined into a single parameter.

• Parameters from various models can be displayed simultaneously on the same background (different models or ensembles).

Page 28: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Advanced ComputationsAdvanced ComputationsVisual Weather thanks to powerful mathematical kernel provides several efficient mathematical features for decoding and computing parameters using editable equations.

It also enables to create value-added maps based on user’s equations, e.g.:• Corrected model temperature by previous forecast-error;• Cross-model operations and validations;• Thermal Wind, Icing Probability, Stability Indexes , etc.

Page 29: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Significant Weather ChartsSignificant Weather ChartsSignificant Weather charts (SIGWX) charts are automatically generated from BUFR messages for any selected area of the world.• Certified for data from

both WAFC centers Exeter and Washington.

• High level charts (SWH).

• Medium level charts (SWM).

Page 30: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Map EditingMap Editing

Generated maps can be manually edited with:

• Various significant weather elements

• Texts and icons

Edited elements can be automatically encoded and distributes within information network to be available for other users

Page 31: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

Cross-sections & MeteogramsCross-sections & Meteograms

• Route- and time- cross-sections combining different type of observations, models, and objective analysis at once.

• Route cross-sections can be also created by simply clicking the desired route on map.

Page 32: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

ThermodiagramsThermodiagrams

• Skew-T• Stuvegrams• Tephigrams• Aerograms• Hodograms

The look of coordinate system and adiabats is fully configurable.

All significant stability indexes are automatically computed.

Overlay of various thermodiagrams and model-based pseudo-temps

Thermodiagrams can be created on the basis of TEMP, PILOT or model data. The following types are supported:

Page 33: EGOWS, June 2007, Dublin What is it?. EGOWS, June 2007, Dublin Implementation details Programming language:ANSI/ISO C++ Self-documented sources:Doxygen

EGOWS, June 2007, Dublin

OutputOutput

• Regular image files in JPG, PNG, GIF, TIFF, BMP, T4 or PDF format

• Web Map Service (OpenGIS WMS)allows instant integration withGIS tools

• GTS image files with standard headings allowing GTS distribution

• High-quality printout using vector-based processing, enabling output on large scale plotters

• Batch processing/scheduler for background operation

Product output can be obtained in various forms: