SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
The Nordrad 2 Software System
presented by
SMHI and Secret Labs AB
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
Fredrik LundhCTO, N2 Design LeadSecret Labs AB
Åsa GranströmProject ManagerSMHI
Jakob LindvallPresidentSecret Labs AB
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
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
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
Secret Labs AB
We build infrastructure for image processing and distribution
(we also know a lot about Python: www.pythonware.com)
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
Secret Labs references
Open Source Technology
PIL-PythonWare Image Library10 000+ users
xml-rpc for Python100 000+ users
Commercial Technology
PythonWorks IDE150+ customers
PIL-commercial version10+ customers
Commercial System Solutions
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
Prosat
An automated processing anddistribution system for satellite imagery (NOAA,Meteosat/MSG, etc).
Developed by Secret Labs for SMHI.
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
NordradA network system forexchange of radar dataand generation of composite images.
Developed by Secret Labs for SMHI, FMI and met.no.
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
N2 Main Functionality
Data exchange Product generation
(composites, ...) System monitoring Dataflow monitoring Support for product development Interfaces to external systems
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
#include <n2lib.h>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/MIMEover HTTP(S)
Watchdog
Networkmanager
Storage
Nodemanager
Processmanager
Flowmanager
Config
Jobs
Process scripts
Linux(Tru64)(Solaris)(Irix)(Windows)(Mac OS/X)
Remote nodes
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
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)
SMHIRAVE
PILNumerical Python
Python Standard Library
User-providedlibraries
Nordrad Support
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
N2 Distribution
Event-driven notification
Client fetches data (pull, not push)
Fetch raw or visualised data
Persistent fetch queue
Step 1. EventStep 2. RequestStep 3. Data transfer
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
Nordrad 2 Design Goals
Decentralized
Easy to use
Easy to adapt and expand
Secure and reliable
SEC
RET L
AB
S A
B
ww
w.s
ecr
etl
abs.
com
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)