SPACE TELESCOPE SCIENCE INSTITUTE Operated for NASA by AURA COS Pipeline Language(s) We plan to develop CALCOS using Python and C Another programming language?

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

The Complete Technical Analysis and Development Environment An attractive alternative to MATLAB and GAUSS - Physics World.
Lectures on File Management
COM vs. CORBA.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Developing JWST Pipelines at STScI Robert Jedrzejewski.
SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming.
ARCS Data Analysis Software An overview of the ARCS software management plan Michael Aivazis California Institute of Technology ARCS Baseline Review March.
B.Sc. Multimedia ComputingMedia Technologies Database Technologies.
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
An Apogee CCD Instrument Module for Chimera Cid Meyers, Earl Bellinger, Adam Biesenbach, Joshua Brown, Joshua Primrose, Dennis Quill, Antonio Kanaan, Paulo.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
1 I/O Management in Representative Operating Systems.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
1 Outline 7.1 Introduction 7.2 Implementing a Time Abstract Data Type with a Class 7.3 Special Attributes 7.4Controlling Access to Attributes 7.4.1Get.
Language Issues Misunderstimated? Sublimable? Hopefuller? "I know how hard it is for you to put food on your family.” "I know the human being and fish.
Copyright © 2001 by Wiley. All rights reserved. Chapter 1: Introduction to Programming and Visual Basic Computer Operations What is Programming? OOED Programming.
Python Introduction.
MIRI software; implementation plan Peter Roelfsema.
 2008 Pearson Education, Inc. All rights reserved Introduction to Computers, the Internet and World Wide Web.
1 of 14 Substituting HDF5 tools with Python/H5py scripts Daniel Kahn Science Systems and Applications Inc. HDF HDF-EOS Workshop XIV, 28 Sep
RUP Fundamentals - Instructor Notes
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
DCS Overview MCS/DCS Technical Interchange Meeting August, 2000.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
CSC-115 Introduction to Computer Programming
Computer Programming 12 Mr. Jean March 19 th, 2013.
An overview of scripting languages Alexander Kanavin Teachers: Barbara Miraftabi, Jan Voracek.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
August 29, 2005ICP: Chapter 1: Introduction to Python Programming 1 Introduction to Computer Programming Chapter 1: Introduction to Python Programming.
Scalable Web Server on Heterogeneous Cluster CHEN Ge.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
The netCDF-4 data model and format Russ Rew, UCAR Unidata NetCDF Workshop 25 October 2012.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
Mantid Development introduction Nick Draper 11/04/2008.
SE: CHAPTER 7 Writing The Program
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
CRISP & SKA WP19 Status. Overview Staffing SKA Preconstruction phase Tiered Data Delivery Infrastructure Prototype deployment.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Term 2, 2011 Week 1. CONTENTS Problem-solving methodology Programming and scripting languages – Programming languages Programming languages – Scripting.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Where will PyRAF lead us?: The future of data analysis software at STScI Perry Greenfield Science Analysis Tools Project Space Telescope Science Institute.
SSC SI Data Processing Pipeline Plans Tom Stephens USRA Information Systems Development Manager SSSC Meeting – Sept 29, 2009.
SPACE TELESCOPE SCIENCE INSTITUTE Operated for NASA by AURA COS Pipeline Calibration Goals of CALCOS Association Table Input and Output Files High Level.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Siena Computational Crystallography School 2005
Chapter One An Introduction to Programming and Visual Basic.
13-1 Sequential File Processing Chapter Chapter Contents Overview of Sequential File Processing Sequential File Updating - Creating a New Master.
Mantid Stakeholder Review Nick Draper 01/11/2007.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
COS PIPELINE CDR Jim Rose July 23, 2001OPUS Science Data Processing Space Telescope Science Institute 1 of 12 Science Data Processing
 Programming - the process of creating computer programs.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
Page 1 PACS GRITS 17 June 2011 Herschel Data Analysis Guerilla Style: Keeping flexibility in a system with long development cycles Bernhard Schulz NASA.
WFC3 PIPELINE CDR Jim Rose October 16, 2001OPUS Science Data Processing Space Telescope Science Institute 1 of 13 Science Data Processing
December 13, G raphical A symmetric P rocessing Prototype Presentation December 13, 2004.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
PYTHON FOR HIGH PERFORMANCE COMPUTING. OUTLINE  Compiling for performance  Native ways for performance  Generator  Examples.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
CST 1101 Problem Solving Using Computers
PHP / MySQL Introduction
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Portability CPSC 315 – Programming Studio
CS 1120: Computer Science II Software Life Cycle
CS 1120: Computer Science II Software Life Cycle
Presentation transcript:

SPACE TELESCOPE SCIENCE INSTITUTE Operated for NASA by AURA COS Pipeline Language(s) We plan to develop CALCOS using Python and C Another programming language? Why? - What is Python and why are we using it? Risks Development dependencies and schedules

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 2 of 12 What is Python? An Open Source, freely available “scripting” language.An Open Source, freely available “scripting” language. Extremely productive.Extremely productive. Many powerful libraries available. Many powerful libraries available. Comparable to Perl in capabilities. Comparable to Perl in capabilities. Easy to learn and read—well documented with many books available.Easy to learn and read—well documented with many books available. Available on just about any computing platform.Available on just about any computing platform. Portable Portable Available on far more platforms than IRAF (e.g., MS Windows) Available on far more platforms than IRAF (e.g., MS Windows) Robust implementation Robust implementation Wide user and developer baseWide user and developer base Approaching a million users, and growing Approaching a million users, and growing Includes many large commercial and scientific users Includes many large commercial and scientific users Supports both procedural and object-oriented coding.Supports both procedural and object-oriented coding. Unlike Tcl or Perl, scales well to larger programming projects Unlike Tcl or Perl, scales well to larger programming projects Extendable with C, C++, or Fortran.Extendable with C, C++, or Fortran.

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 3 of 12 Why are we using Python? The basis of the Science Software Group’s efforts to open up the IRAF environment by developing a new Command Language for IRAF using Python.The basis of the Science Software Group’s efforts to open up the IRAF environment by developing a new Command Language for IRAF using Python. The successful effort convinced us that Python was a desirable applications language for astronomy data analysis and reduction.The successful effort convinced us that Python was a desirable applications language for astronomy data analysis and reduction. Success of IDL in astronomy indicates that similar or better capabilities will be successful.Success of IDL in astronomy indicates that similar or better capabilities will be successful. Why not IDL?Why not IDL? Not freely distributable Not freely distributable Python is a much better programming language Python is a much better programming language Not as extendable as Python; it would not have been possible to implement CL for IRAF using IDL, for example. Not as extendable as Python; it would not have been possible to implement CL for IRAF using IDL, for example.

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 4 of 12 Why we are using Python for CALCOS Python is already planned for other calibration pipelines: Python is already planned for other calibration pipelines: IRAF CL scripts are not suitable for pipeline use (no error handling!); Python scripts invoking IRAF tasks are the only alternative (short of rewriting script as one large executable). Python scripts are being used for automatic Reference file generation. IRAF CL scripts are not suitable for pipeline use (no error handling!); Python scripts invoking IRAF tasks are the only alternative (short of rewriting script as one large executable). Python scripts are being used for automatic Reference file generation. For similar reasons, implementation of ACS dither-combining capability requires Python wrappers for the Drizzle task (and now part of CALACS) For similar reasons, implementation of ACS dither-combining capability requires Python wrappers for the Drizzle task (and now part of CALACS) Python programs are more easily written, tested, and modified than C programs because of Python’s interpreted, dynamic and concise nature (5-10 times more productive).Python programs are more easily written, tested, and modified than C programs because of Python’s interpreted, dynamic and concise nature (5-10 times more productive). Instruments always have unanticipated calibration requirements. Python programs are generally much easier to adapt than C programs.Instruments always have unanticipated calibration requirements. Python programs are generally much easier to adapt than C programs.

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 5 of 12 Why we are using Python for CALCOS (cont.) Python code is more easily understood and contributed to by instrument scientists than is C making it more likely they will contribute to the review and refinement of the algorithms.Python code is more easily understood and contributed to by instrument scientists than is C making it more likely they will contribute to the review and refinement of the algorithms. Previous calibration pipelines use ~80% of their code for bookkeeping and setup, which is much better accomplished by Python.Previous calibration pipelines use ~80% of their code for bookkeeping and setup, which is much better accomplished by Python. Python errors, when they occur, are much easier to diagnose than C errors, particularly C memory and pointer errors.Python errors, when they occur, are much easier to diagnose than C errors, particularly C memory and pointer errors. CALCOS will be portable to more platforms (e.g., MS Windows).CALCOS will be portable to more platforms (e.g., MS Windows). Unlike WFC3, no great amount of code reuse of existing C code possible.Unlike WFC3, no great amount of code reuse of existing C code possible. There are real risks in keeping the status quo!There are real risks in keeping the status quo!

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 6 of 12 Non-Risks Safety (dynamic typing)Safety (dynamic typing) Speed (interpreted language)Speed (interpreted language) “Lack of experience”“Lack of experience”

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 7 of 12 Risks I/O: Current C programs rely on IRAF for data I/O. But IRAF is not usually compatible with other programs such as Python.I/O: Current C programs rely on IRAF for data I/O. But IRAF is not usually compatible with other programs such as Python. Use of Python requires removing dependence on IRAF I/O.Use of Python requires removing dependence on IRAF I/O. Best solution is to have Python handle I/O (though CFITSIO is always a fallback).Best solution is to have Python handle I/O (though CFITSIO is always a fallback). SSG is developing the PyFITS module to do data I/O.SSG is developing the PyFITS module to do data I/O. Fully functional PyFITS requires a reworked array module to handle FITS tables.Fully functional PyFITS requires a reworked array module to handle FITS tables. The primary risk is the dependency on these modules.The primary risk is the dependency on these modules.

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 8 of 12 Risks (cont.) Minor dependence on memory requirements. We assume workstations will have 1GB memory (enabling the ability to read whole data sets into memory for processing). This requirement will be reduced as new capabilities are added to PyFITS but these are not part of the baseline requirements.Minor dependence on memory requirements. We assume workstations will have 1GB memory (enabling the ability to read whole data sets into memory for processing). This requirement will be reduced as new capabilities are added to PyFITS but these are not part of the baseline requirements. Minor risk on updating changes to CALCOS based on changes to new modules. Since we control these modules the changes are expected to be small, especially later on in the coding phase. All such interface issues should be settled long before CALCOS is distributed to the user community.Minor risk on updating changes to CALCOS based on changes to new modules. Since we control these modules the changes are expected to be small, especially later on in the coding phase. All such interface issues should be settled long before CALCOS is distributed to the user community. Tru64 IEEE floating point has problems that must be addressed.Tru64 IEEE floating point has problems that must be addressed.

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 9 of 12 Software Dependencies Numarray: New implementation of array module:Numarray: New implementation of array module: Status: Complete enough for CALCOS I/O use. Status: Complete enough for CALCOS I/O use. RecordArray: Needed for efficient table access.RecordArray: Needed for efficient table access. Effort: 8 FTE weeks Effort: 8 FTE weeks Started: 15 May 2001 Started: 15 May 2001 Status: completed. Status: completed. CharArray: Needed to access text fields in tables.CharArray: Needed to access text fields in tables. Effort: 3 FTE weeks Effort: 3 FTE weeks Started: 4 June 2001 Started: 4 June 2001 Status: completed Status: completed

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 10 of 12 Software Dependencies (cont.) C API for Numarray: Needed by C code to access data in Python ArraysC API for Numarray: Needed by C code to access data in Python Arrays Effort: 1 FTE week Effort: 1 FTE week Started: 20 June 2001 Started: 20 June 2001 Status: completed Status: completed Integrate Numarray and other array classes with PyFITSIntegrate Numarray and other array classes with PyFITS Image Data Image Data Effort: 1 FTE week Effort: 1 FTE week Started: 18 June 2001 Started: 18 June 2001 Status: completed Status: completed Table Data Table Data Effort: 2 FTE weeks Effort: 2 FTE weeks Start: 1 Sept 2001 Start: 1 Sept 2001 Planned completion: 15 Sept 2001 Planned completion: 15 Sept 2001

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 11 of 12 Software Dependencies (cont.) Schedules indicate completion of work needed for use with CALCOS. Most of these modules have other work planned to enhance their capabilities but are not required or essential for CALCOS.Schedules indicate completion of work needed for use with CALCOS. Most of these modules have other work planned to enhance their capabilities but are not required or essential for CALCOS.

COS PIPELINE CDR P. Greenfield July 24, 2001CALCOS Development Environment Space Telescope Science Institute 12 of 12 Dependencies Schedule DependencyStartFinishStatus Numarray 15 March 15 June Complete (for I/O) RecordArray 15 May 10 July Complete CharArray 4 June 15 July Complete C API 20 June 15 July Complete PyFITS/ImageIntegration 18 June 25 June Complete* PyFITS/Tablesintegration 1 Sept 15 Sept Not started.