Top Banner
15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 1 DISTRI.C.O. An operational system for post-processing and distribution of numerical model outputs Enrico Fucile Italian Meteorological Service Centro Nazionale di Meteorologia e Climatologia Aeronautica
39

DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

May 20, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 1

DISTRI.C.O.An operational system for post-processing and distribution of numerical model outputs

Enrico FucileItalian Meteorological ServiceCentro Nazionale di Meteorologia e Climatologia Aeronautica

Page 2: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 2

OverviewSystem requirementsOverall System descriptionRelational DatabasePHP moduleActivities

LoadingDistributionElaboration

Web InterfaceFuture developmentConclusions

Page 3: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 3

DISTRI.C.O.

DISTRIbuzione Catena Operativa

OPERATIONAL SUITE DISTRIBUTION

Operational at CNMCA since 2001

Page 4: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 4

DISTRICO – Early Requirements

Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon grid to a geographical lat-lon grid)Processing a large number of GRIB fields coming from several moldelsGraphical real time monitoring of activities (loading, processing and distribution)

Page 5: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 5

DISTRICO – Added Requirements

Easy access to system facilities through a scripting language (PHP)A data model designed for post-processing not just for grid interpolation (e.g. plotting)Friendly graphical interface providing management toolsExtraction of single point data from a GRIB(meteograms)

Page 6: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 6

System core

RelationalDatabase

PHP module

GRIB Loading

GRIBDistribution

WEBInterface Elaboration

DISTRICO Schema

Page 7: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 7

System core

RelationalDatabase

PHP module

GRIB Loading

GRIBDistribution

WEBInterface Elaboration

DISTRICO – Relational Database

Page 8: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 8

DISTRICO – Why a Relational Database?

Central repository accessed through a client-server applicationLarge number of inhomogeneous fields coming from different models, runs, areas, at different levels… A good structure of data needed.Access provided by an high level languageas Structured Query Language

Page 9: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 9

DISTRICO – Relational Database

GRIB stored into Binary Large OBject (BLOB) fieldsGRIB identified with a serial ID and the reference dateElaboration tables refer to grib through ID IBM Informix - Relational DataBase Management System

Page 10: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 10

DISTRICO – Relational Database

…121234203981003

REGISTERED GRIB

2

2

id_table

…………………

…0212107801002

…01123103801001

…runid_paramid_gridid_processid_centreid_reg_grib

BLOB2005-11-031003

BLOB2005-11-031002

BLOB2005-11-021003

GRIB

………

BLOB2005-11-021002

grib_objectref_dateid_reg_grib

Almost static. It changes only when new unregistered fields enter into the system

It grows daily if older data are not deleted.

Page 11: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 11

DISTRICO – Relational Database90000 records (7 GB) in the GRIB table each dayData older than 10 days are deletedDeterministic Models:

ECMWF Global and WAVE (run 0 and 12)EUROHRM (CNMCA) (run 0 and 12)EUROLM (ECMWF) (run 0)HRM (run 0 and 12)HRM on operations areas LAMI (CINECA) (run 0 and 12)

3D-VAR analysis (CNMCA)EPS fields are not yet inserted into the DB (not enough bandwidth to download fields)

Page 12: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 12

System core

RelationalDatabase

PHP module

GRIB Loading

GRIBDistribution

WEBInterface Elaboration

DISTRICO – PHP module

Page 13: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 13

DISTRICO – Why PHP?A lot of extensions available (gd, xml, network, DB connectivity modules…)Easy to extend with compiled C and Fortran code (easy reuse of existing code and easy extension with high performance routines for intensive calculations)Used both as command line interpeter (CLI)and embedded in a WEB serverObject based syntax (good code maintenance)

Page 14: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 14

APACHE WEB Server

PHP classes (pure PHP code)

DISTRICO – PHP module

GRIB library (C code)

PHP wrapper (C code)

PHP CLI scripts

Database

SQL

Page 15: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 15

DISTRICO – PHP moduleGET GRIB AND DECODE

$grib = new GRIB; $grib->With(“id_center”,80);$grib->With(“id_model”,2);$grib->With(“ref-date”,”2005-11-16”);$grib->With(“run”,12);$grib->With(“id_parameter”,11);…$fh=fopen(“filename”,”r”); // optional file handler if not

// given default database is usedwhile ($grib->GetNext( optional file handler $fh )) {$grib->Decode();$grib->PrintPDS(); //PDS also available as $grib->pds[parm]$grib->PrintGDS(); //GDS also available as $grib->gds[parm]$grib->Unpack();for ($i=0; $i < ( $grib->gds[ni] * $grib->gds[nj] ); $i++) print $grib->field[$i];

}

Page 16: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 16

DISTRICO – PHP moduleINTERPOLATION

…// NEW GRID Object$grid = new GRID;$grid->Set(“ni”,161);$grid->Set(“nj”,241);$grid->Set(“lat1”,60000);$grid->Set(“lon1”,-30000);$grid->Set(“lat2”,20000);$grid->Set(“lon2”,30000);…while ($grib->GetNext()) {$grib->SetNewGrid($grid);$grib->DBPut();

}

Page 17: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 17

DISTRICO – PHP module

…while ($grib->GetNext()) {$lat=40000; // latitude in millidegrees$lon=11000; // longitude in millidegrees$NearestPoints=$grib->FindNearest($lat,$lon);foreach ($NearestPoints as $Point) {print $Point->latitude;print $Point->longitude;print $grib->field[$Point->index];…

}}

Page 18: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 18

System core

RelationalDatabase

PHP module

GRIB Loading

GRIBDistribution

WEBInterface Elaboration

DISTRICO – Activities model

Page 19: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 19

Parent processes don’t know anything about what their child does.

They only wait for an exit code from their own child.

Parent input parameters are the sleep interval and the name of the file containing the function to execute into the child.

DISTRICO – Activities model

Parent 1

Parent 2

Parent 4

Cluster AvailabilityApplications Database

Child

Child

Child

Childrenprocesses

fork

fork

fork

polling

polling

pollingelaboration

DB put

DB put

elaboration

Hosts

Each Parent is a process on a cluster node. It works as follows:

1. Fork a child

2. Wait for child to exit

3. Sleep for a configurable amount of seconds

4. Restart from 1.

Page 20: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 20

System core

RelationalDatabase

PHP module

GRIB Loading

GRIBDistribution

WEBInterface Elaboration

DISTRICO – GRIB Loading

Page 21: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 21

DISTRICO – GRIB Loading

Database

GRIB Loader

ECMWF Dissemination CNMCA

Numerical Elaboration Area

CINECALM

Searching for new or updated files

INSERT

DECODE

Downloading files (FTP)

GRIB fields unknown to the system are automatically classified.

As soon as fields are inserted into the Database they are immediately available for elaboration, distribution, visualisation.

Page 22: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 22

DISTRICO – Fields Visualisation

Page 23: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 23

System core

RelationalDatabase

PHP module

GRIB Loading

GRIBDistribution

WEBInterface Elaboration

DISTRICO – GRIB Distribution

Page 24: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 24

DISTRICO – GRIB Distribution

…121234203981003

REGISTERED GRIB

2

2

id_table

…………………

…0212107801002

…01123103801001

…runid_paramid_gridid_processid_centreid_reg_grib

41003

21003

31003

Distribution

……

21002

id_userid_reg_grib

…“Regione Puglia”4

…“Presidenza del Consiglio”2

…“Comune di Venezia”3

USER

………

…“Sezione satelliti”1

…nameid_user

Page 25: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 25

DISTRICO – GRIB Distribution

Database

Distribution

External Users

Reg. Met. Serv.

Government

Companies

Internal Users

Verification Satellite Models Others

Distribution triggering conditions for each user (SQL query):

1. All fields requested for a specified model, run and time step are on DB

2. Fields were not already distributed

DB Get

Page 26: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 26

System core

RelationalDatabase

PHP module

GRIB Loading

GRIBDistribution

WEBInterface Elaboration

DISTRICO - Elaboration

Page 27: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 27

DISTRICO - Elaboration

1 (interpolation)10221003

1 (interpolation)10071005

1 (interpolation)10121009

Operator 1

………

1 (interpolation)10031002

id_procedureid_outputid_input

BLOB2005-11-031002

BLOB2005-11-021003

GRIB

………

BLOB2005-11-021002

grib_objectref_dateid_reg_grib

BLOB2005-11-031003 Elaboration

As soon as input GRIB fields for a recipe are available the appropriate procedure is called and output GRIB fields are produced and inserted into the database

Page 28: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 28

DISTRICO - Elaboration

Interpolation from one grid to another. Production of fields with elementary operations(cumulated fields, differences,…)Production of all kind of charts using MAGICSProduction of meteograms in textual an graphical format

All kind of elaboration can be carried on referring to GRIB data through their ID.

Page 29: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 29

System core

RelationalDatabase

PHP module

GRIB Loading

GRIBDistribution

WEBInterface Elaboration

DISTRICO – WEB Interface

Page 30: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 30

DISTRICO – WEB InterfaceThe WEB interface was initially designed for system administration not for users accessIt provides access to the elaboration and distribution tables so that an operator can easily define a new distribution stream or add a new set of fields to the elaboration activitiesMonitoring views are available for loading, distribution and elaborationViews are available for monitoring status of processes and machines

Page 31: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 31

DISTRICO – WEB InterfaceApache Web ServerAll pages are dynamically created getting content from the database tablesA model, view, controller application was developed Administration can be done remotelyaccessing through a VPN

Page 32: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 32

DISTRICO – WEB Interface

Page 33: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 33

DISTRICO – WEB Interface

Page 34: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 34

DISTRICO – WEB Interface

Page 35: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 35

Future development - WEB interface

New release should provide tools to a user for plotting a set of charts and submitting them to the production system Providing aided access to MAGICS functions through a friendly WEB interfaceEmbedding MAGICS into PHP (using SWIG?)On the fly meteogram plotting

Page 36: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 36

Future development – Data handling

Implementation of GRIB Edition 2 (database structure must be partly changed, system design remains unchanged)Use of Smart Binary Large OBjects, user defined types and functions on IBM Informix RDBMS (embedding C code into the database engine so that single points or vertical profiles can be obtained by SQL queries)

Page 37: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 37

ConclusionsA Relational Database is efficiently used to store large number of fields in GRIB formatPutting all fields into a database provide access through high level language as SQLUsing a scripting language as PHP speeds up the system development and makes easier its maintenance C and Fortran routines can be easily embeddedinto the PHP scripting language providing high performance and reliable calls

Page 38: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 38

Conclusions - ScalabilityDatabase is scalable up to PetaByte dependingon the RDBMS. IBM Informix assures that this ispossible using the fragmentation of tables and other techniques without loss of performance.Distributed database can be easily managed intothe PHP module hiding as much as possiblemultiple data sources to end users.Activities model is scalable because eachactivity can be divided into smaller tasks and distributed to different machines.

Page 39: DISTRI.C.O. - ECMWF · DISTRICO – Early Requirements Distribution of model outputs in GRIB format Transformation of GRIB fields from one grid to another (e.g. from a rotated lat-lon

15/11/2005 - ECMWF - 10th Workshop on Meteorological Operational Systems 39

Questions ?