SECRET LABS AB The Nordrad 2 Software System presented by SMHI and Secret Labs AB
SECRET LABS AB Fredrik Lundh CTO, N2 Design Lead Secret Labs AB Åsa Granström Project Manager SMHI Jakob Lindvall President Secret Labs AB
SECRET LABS AB Nordrad 2 Project Status January 2002: Contract signed September 2002: Site Acceptance Test (SAT) in progress at SMHI Late October: Installation FMI/met.no November 2002: Operational Test (OT) January 2003: Fully operational
SECRET LABS AB Secret Labs AB We build infrastructure for image processing and distribution (we also know a lot about Python:
SECRET LABS AB Secret Labs references Open Source Technology PIL-PythonWare Image Library users xml-rpc for Python users Commercial Technology PythonWorks IDE 150+ customers PIL-commercial version 10+ customers Commercial System Solutions
SECRET LABS AB Prosat An automated processing and distribution system for satellite imagery (NOAA, Meteosat/MSG, etc). Developed by Secret Labs for SMHI.
SECRET LABS AB Nordrad A network system for exchange of radar data and generation of composite images. Developed by Secret Labs for SMHI, FMI and met.no.
SECRET LABS AB The Nordrad Network DAN NOR SWE FIN EST
SECRET LABS AB N2 Main Functionality Data exchange Product generation (composites,...) System monitoring Dataflow monitoring Support for product development Interfaces to external systems
SECRET LABS AB #include main() { N2Connect(host,user) x = N2GetProduct(id) } Platform $ n2server start $ n2 import *.data Command-line interface Custom user applications API (Web browser) Graphical frontend XML/MIME over HTTP(S) Watchdog Network manager Storage Node manager Process manager Flow manager Config Jobs Process scripts Linux (Tru64) (Solaris) (Irix) (Windows) (Mac OS/X) Remote nodes
SECRET LABS AB from SMHI import fixup def process(context, im): return fixup(im) N2 Processing Scheduling based on product availability and time Process scripts written in Python Process scripts have access to extensive code libraries, and user-provided code Persistent job queue from RadarImage import compose def process(context, im): ims = context.getproducts() return compose(ims) def process(context, im): return im.rotate(45) SMHI RAVE PIL Numerical Python Python Standard Library User-provided libraries Nordrad Support
SECRET LABS AB N2 Distribution Event-driven notification Client fetches data (pull, not push) Fetch raw or visualised data Persistent fetch queue Step 1. Event Step 2. Request Step 3. Data transfer
SECRET LABS AB Nordrad 2 Design Goals Decentralized Easy to use Easy to adapt and expand Secure and reliable
SECRET LABS AB N2 Design Goals, cont’d Decentralized: self-contained nodes, multiple platforms, standard protocols Easy to use: multiple user interfaces, scripted architecture Easy to adapt and expand: scripts, plug in your own algorithms Secure and reliable: simple, battle-hardened design (running PROSAT since 1995)
SECRET LABS AB That’s all, folks Well, almost: - demo (nordrad2-on-a-laptop ;-) - questions? (now or later) Thank you for listening!