Astronomical Instruments Software System Design



Similar documents
Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

Client/server is a network architecture that divides functions into client and server

Star System Deitel & Associates, Inc. All rights reserved.

System Structures. Services Interface Structure

White Paper: 5GL RAD Development

Data Centers and Cloud Computing. Data Centers

4.1 Introduction 4.2 Explain the purpose of an operating system Describe characteristics of modern operating systems Control Hardware Access

Seamless integration Connect our solution to your business applications thanks to our open architecture

Introduction to ACENET Accelerating Discovery with Computational Research May, 2015

Philosophy of GIMnet

Efficiency Considerations of PERL and Python in Distributed Processing

OWrite One of the more interesting features Manipulating documents Documents can be printed OWrite has the look and feel Find and replace

Chapter 13: Program Development and Programming Languages

Integrated Open-Source Geophysical Processing and Visualization

Software. Programming Language. Software. Instructor Özgür ZEYDAN. Bülent Ecevit University Department of Environmental Engineering

SOFTWARE TESTING TRAINING COURSES CONTENTS

MDSplus Automated Build and Distribution System

Data Centers and Cloud Computing. Data Centers. MGHPCC Data Center. Inside a Data Center

Amanda The Open Source Backup & Archiving Software. Ian Turner ian@zmanda.com 11 April Copyright 2006 Zmanda, Inc. All rights reserved.

ANSA and μeta as a CAE Software Development Platform

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

A Hybrid Visualization System for Molecular Models

Software Development for Virtual Observatories

EFFICIENCY CONSIDERATIONS BETWEEN COMMON WEB APPLICATIONS USING THE SOAP PROTOCOL

High Level Design Distributed Network Traffic Controller

Lesson 06: Basics of Software Development (W02D2

Main Bullet #1 Main Bullet #2 Main Bullet #3

Easy configuration of NETCONF devices

Data Centers and Cloud Computing

A review and analysis of technologies for developing web applications

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1

Overview of CS 282 & Android

XTM for Language Service Providers Explained

Example of Standard API

Usability Testing for Android and Apple Smart Phone

Instructional Design Framework CSE: Unit 1 Lesson 1

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

DocDokuPLM Innovative PLM solution

VIRTUAL INSTRUMENTATION

MEng, BSc Applied Computer Science

A Modular Approach to Teaching Mobile APPS Development

Analytic Modeling in Python

In: Proceedings of RECPAD th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

Scientific Programming, Analysis, and Visualization with Python. Mteor 227 Fall 2015

What You Need to Know About Transitioning to SOA

Modern Software Development Tools on OpenVMS

MEng, BSc Computer Science with Artificial Intelligence

Programming Languages & Tools

STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES

Wireless ATA: A New Data Transport Protocol for Wireless Storage

Analyzing Network Servers. Disk Space Utilization Analysis. DiskBoss - Data Management Solution

Produce & Publish Cloud Edition

Continuous security audit automation with Spacewalk, Puppet, Mcollective and SCAP

Overview Document Framework Version 1.0 December 12, 2005

Analysis Programs DPDAK and DAWN

WISE-4000 Series. WISE IoT Wireless I/O Modules

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Neutron Science Visualization Software

Chapter 2 System Structures

Run your own Oracle Database Benchmarks with Hammerora

Service Oriented Architecture 1 COMPILED BY BJ

Introduction to Python

A Tool for Evaluation and Optimization of Web Application Performance

Multilink Processors (Link 11/16/22) and Integration Architectures

Programming Languages

DATA MINING TOOL FOR INTEGRATED COMPLAINT MANAGEMENT SYSTEM WEKA 3.6.7

Middleware- Driven Mobile Applications

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

How To Use Chronos Mount For Astronomical Use

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

A standards-based approach to application integration

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

PyCompArch: Python-Based Modules for Exploring Computer Architecture Concepts

A Middleware Strategy to Survive Compute Peak Loads in Cloud

xvm Server and xvm VirtualBox Christopher Beal Principal Engineer

Application of Android OS as Real-time Control Platform**

MySQL databases as part of the Online Business, using a platform based on Linux

HPC Wales Skills Academy Course Catalogue 2015

CA CPT CICS Programmers Toolkit for TCP/IP r6.1

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Delivering Quality in Software Performance and Scalability Testing

Embedded Linux RADAR device

Transcription:

Astronomical Instruments Software System Design Fabricio Ferrari fabricio.ferrari@unipampa.edu.br Universidade Federal do Pampa Brasil CEFCA Meeting, Teruel, Feb 2010

Facts Data is beyond astronomers processing capabilities Cycle observego-homereduceanalyzepublish not practical Instruments are sub utilized; lots of unused data Telescopes automatized, data analysis mostly manual Solving problems: easier in hardware, cheaper in software

Rationale Why do we need a software {system group meetings}? Complex instruments complex software And data not useful without its software: Thus software is part of instrument modern instruments = software + hardware

What do we need? We need hi-level user not aware of hardware details state-of-art we must trust what we get from software intelligent system take decisions by itself automated few decisive user interactions data processing science out of raw data. system. Besides: On-the-y procedures, pipelined, astronomer-friendly

How to put so many pieces together? Individual processes known (mostly), but how to integrate them into One System? Humans: Portuguese, Spanish, French, English,... Computers: C/C++, Python, IDL, LabView, ArcView, SML, VBasic.

Software System Guidelines development, portability, integration, maintenance, usability

Modular Design discrete, scalable, reusable modules of isolated, self-contained functional elements; simple modules with objective tasks good interface design (what it needs and what it provides) information hiding (abstraction) object oriented design disadvantage is increase in communication network sockets and hi-level remote objects. simple examples of modular design: hardware: computer parts software: IRAF

Open Source Tools Operating System: Linux Many avors (distributions): Debian (servers), Ubuntu (development), Fedora (SOAR). Tools quality and availability. my system: 1427 installed packages (8 Gb), 24692 available. programming languages (C/C++, Java, Perl, Python, Fortran), text processors and editors (OpenOce, L A T E X), scientic and data analysis tools (Scilab, Octave, Maxima, Gnuplot) Native multitask, multiuser, networkable system. Extensively tested on many environments: desktops, servers, development. Huge (and growing) scientic community of users and developers.

Open Source Tools Programming language: Python Object oriented paradigm, imperative, dynamic typed; Emphasizes programmer productivity, code readability; Multi-plataform (Linux, Mac, MS-Windows, cell phones,...) Large and comprehensive standard library, batteries included Powerful and easy to integrate external libraries PyFITS, NumPy, SciPy, PyRAF, PyRO, PyLab/Matplotlib. STSDAS, astlib, AstroLib (IDLs twin), PyMIDAS, EphemPy,... data handling capabilities high level data types (lists, dictionaries, sets, arrays,...) Exceptions: C/C++ for bottlenecks, hardware drivers,

(1 minute Python Example)

Open Source Tools Formats Data: (dependant on le complexity and size): FITS images and tables normal or Gzip compressed plain text les optionally XML for cong and small structured les Documentation: L A TEX, OpenOce, PDF, HTML preference for convertable and web formats

Open Source Tools Philosophy Scientic reserch has the paradigm of open source Focus on human resources, not only on products. Not cheaper, neither easier, but works better for longer.

System Availability Source code available, even if c Monthly snapshots (at least), data server or CVS code freeze versions regularly Documentation is critical (means availability) user's manual: what is, who did, what does, how to and not to use, real examples programmers manual: program structure, API, protocols, interfaces, tools, external codes,... source code comments: header le and author name, date, version, comments; classes or functions descriptions, interface, on relevant code. Comments are better the farther the author is. If your program is not well documented, it is useless without you.

General Structure Software Point of View core = control center = command center

The Command/Control Center Abstraction layer between world and hardware World communication no hardware dependent commands Hardware communication hardware dependent commands one software module per hardware part (Etalon, ibtf, EMCCD,...)

Software and Hardware

The Hardware Drivers Complete Dummy mode for no-hardware tests Results in relevant physical units calibration curve inside drivers pulse degrees, capacitance distance,... LabView, ArcView, SML?!

The BTFI Example Brazilian Tunable Filter Imager

BTFI Software Structure

Elements KFCC Keith-Fernando Control Center Phase I, II, III, IV GCC Giseli Control Center Middleware, Core of the system Instruments Device(LabView), Software driver, Hardware Data Analysis Corrections, Calibrations, Data science-ready

KFCC Keith-Fernando Command Center Phase I: simple elementar (atomic) commands one-to-one correspondence with GCC set of commands shutter.open(), ccd.integrate() Phase II: small set of atomic (molecular) commands take_image(), make_datacube(),... Phase III: high complexity commands lambda_calibrate(), gap_determination(),... Phase IV: Final KFCC for SOAR LabView'ed, Inspired in SOI, ready for use

KFCC Phase I

GCC Middleware: KFCC Instruments bridge between languages, protocols, plataforms Core of the system Set of elementar atomic commands only hi-level to observer software (HLCP), mid-level to instruments software (MLCP) Basic error checking Resource locking (race conditions avoidance) Conguration variables acessible to all systems Status GUI with all information (read-only)

Data Processing

Waterfal Development Model

Iterative Incremental Development Model Hardware drivers Data Processing Command Center GUI

Scientic Visualization 3Dslicer VTK - Visualization Toolkit http://www.slicer.org/ http://public.kitware.com/vtk/index.php VisIt visualization Tool https://wci.llnl.gov/codes/visit/home.html Teem - representing, processing, and visualizing scientic raster data. Scientic Computing and Imaging (SCI) Institute (many OpenSource data visualization tools) http://teem.sourceforge.net/ http://www.sci.utah.edu/index.html DISLIN Scientic Plotting Software http://www.dislin.de/

Python Resources PyRO - Remote Objects Psyco - otimization http://pyro.sourceforge.net/ http://psyco.sourceforge.net/ AstroPy - astronomical resources http://www.astro.washington.edu/owen/astropy.html PyEphem MatPlotLib http://rhodesmill.org/pyephem/ http://matplotlib.sourceforge.net/ Interactive Data Analysis in Astronomy with Python (IDL style), Perry Greeneld and Robert Jedrzejewski http://www.scipy.org/wikis/topical_software/tutorial