280 likes | 418 Views
This presentation discusses the integration of web services in meteorological applications, focusing on building innovative forecasting tools. It highlights IBL's Visual Weather software, its contributions to interoperability standards, and how web services like WMS, WCS, and WFS enhance meteorological data processing and visualization. The goal is to create a comprehensive and user-friendly forecasting application that meets contemporary requirements, ensuring seamless deployment on various platforms. Attendees will gain insights into how we can harness web technologies for enhanced weather forecasting capabilities.
E N D
Exploiting Web Services for Meteorological Applications JozefMatulaJozef.Matula@iblsoft.com IBL Software Engineering
Outline • What we do… • Building forecasting application – what protocols/formats to use? • IBL’s contribution to future MetOceanDWG interoperability experiments. • My goal is… …to get the REAL meteorological forecasting tool into my boss’ iPhone!
What is IBL Visual Weather? • Strategic Weather Information Forecasting Tool– UK Met Office project for workstation upgrade • Visual Weather = Meteorological Workstation SW: • Met. data processing and visualisation • Interactive forecasting tools • Forecast production and workflow management • Batch production • Extensibility with Python API • Web services (WMS, WCS, WFS, JMBL, Python) • Everything in one box or Client-Server • Highly configurable and integration-capable
Python Web Services in Visual Weather • Use of Visual Weather’s Python API together with scripting allow rapid development and instant deployment of web services in mod_python style import IBL.Kernel; from IBL.Net import apache defgetTemperature(req, station): e = K.Expression("@station v6[5,2] Fsynop_latest$sv52$C") e.setArgument("station", K.mkStation(station)) tSYNOP = e.eval() req.write(str(tSYNOP["temperature"]. toValue(K.u.T_CELS))) return apache.OK http://my-server/service/getTemperature?station=LZIB
We decided to build a web 2.0 based forecasting workstation but what are the COMMON REQUIREMENTS http://www.projectcartoon.com/cartoon/63775
How to meet requirements? (1) Synoptic map • Approx. 1500 observations in Europe (hourly) • About 20 parameters needed • WMS 100kB PNG • SOS/WFS 3MB GML: • how to get time axis? • complicated visualisation • WCS ?
How to meet requirements? (2) Isolines from NWP data • WMS this works – tens of kBs. • WFS isoline could be considered as feature • WCS • Size effective output formats are hardly usable by simple clients • Isolines algorithm is rather complicated.
How to meet requirements? (3) Meteograms & Cross-sections (graphs) • WMS non-geospat. CRS • SOS/WFS • tens of kB of GML data • complexity of visualisation depends on used client platform abilities • WCS ?
How to meet requirements? (4) Thermodiagram (profile) • Single site • >5 parameters needed • WMS non-geospat. CRS • SOS/WFS 10kB GML + little bit of processing • WCS ? • NWP profiles need hundreds MB of gridded data • Size of image is approx. size of GML data.
How to meet requirements? (5) Weather features • Single site • Tens of feature types (single point or smooth polylines, text, areas) • WMS Read only • WFS small GML, but complicated visualisation. • WCS no
To open a can THERE ARE MULTIPLE WAYS
Dummy MAPs in the Web MAP Service • Map is ONLY a picture so once you get a picture you usually loose: • Metadata – you don’t know what you got - (time, content description, etc.) • Spatial localisation – (except formats like GeoTIFF, JPEG2000) • Map is a picture, that’s why anyone can work with it simply. • Reference system of the image is CRS:1!
Pushing WMS behind its limits (1) TIME ISO8601 DIM_RUN ISO8601 DIM_FORECAST ISO8601 Duration or +X ELEVATION Vertical level with unit DIM_STATION WMO station number DIM_PLACE Place of time cross-section/meteogram: DIM_PLACE=EPSG:4326[1.5;43.7] DIM_PLACE=EPSG:54004[18627e3;4990e3]Horizontal route (space separated):DIM_PLACE=LZIB EPSG:4326[1;43] EHAM
HTML GetFeatureInfo with TIME GetMap with TIME dimension HTML empedded <img> GetMap with TIME & DIM_STATION
Pushing WMS behind its limits (3) ...&REQUEST=GetMap&CRS=CRS:1&BBOX=0,0,639,479&...
Pushing WMS behind its limits (4) <Dimension name="PLACE“ units="CoordinateOrStationIdList“ default="LZIB EDDF"> LZIB EDDF, CRS:84[0;0] EPSG:4326[1e4;2.0e5]</Dimension> There is infinite number of possible values for this dimension!
Pushing WMS behind its limits (5) ...&REQUEST=GetMap&CRS=IBL:SKEWT&BBOX=0,0,1,1&...
Finally to get closer to what my boss wanted or... HOW WE PUT EVERYTHING TOGETHER