Tools and Techniques for Developing Atmospheric Python Software: Insight from the Python ARM Radar Toolkit

Size: px
Start display at page:

Download "Tools and Techniques for Developing Atmospheric Python Software: Insight from the Python ARM Radar Toolkit"

Transcription

1 Tools and Techniques for Developing Atmospheric Python Software: Insight from the Python ARM Radar Toolkit Jonathan Helmus1, Scott Giangrande2, Kirk North3, and Scott Collis1 1 2 Argonne National Laboratory Brookhaven National Laboratory 3 McGill University

2 Introduction to Py-ART

3 Py-ART: Plotting import matplotlib.pyplot as plt import matplotlib.pyplot as plt import pyart import pyart radar = pyart.io.read('xsw raw7hhf') radar = pyart.io.read('xsw raw7hhl') display = pyart.graph.radardisplay(radar) display = pyart.graph.radardisplay(radar) display.plot('reflectivity', 0, vmin=-32, vmax=64.) display.plot('reflectivity', 0, vmin=0, vmax=54.) plt.savefig('ppi_plot.png') display.set_limits(ylim=(0, 8)) plt.savefig('rhi_plot.png')

4 Py-ART: Correct - Doppler Velocity Dealiasing from pyart.correct import dealias_fourdd dealias_data = dealias_fourdd(radar, height * 1000., speed, direction, target) radar.add_field('corrected_velocity', dealias_data) Dealiasing performed using U. Washington FourDD algorithm (James and Houze, JTech, 2001)

5 Py-ART: Correct - LP phase processing import pyart radar = pyart.io.read(' mdv') phidp, kdp = pyart.correct.phase_proc_lp(radar, 0.0) radar.add_field('corrected_differential_phase', phidp) radar.add_field('corrected_specific_diff_phase', kdp) Phase processing performed using a LP based algorithm (Giangrande et al, JTech, 2013)

6 Py-ART: Mapping to Cartesian Grids import pyart radar_sw = pyart.io.read(xsapr_sw_file) radar_se = pyart.io.read(xsapr_se_file) grid = pyart.map.grid_from_radars((radar_se, radar_sw), grid_shape=(1, 201, 201), grid_limits=((1000, 1000), (-50000, 40000), (-60000, 40000)), grid_origin = ( , ), max_refl=100.) Gridding using KD-Tree nearest neighbor lookup and Cressman interpolation.

7 Building Py-ART: SciPy Stack and other libraries

8 Building Py-ART: Interfacing with legacy code Cython files (.pyx,.pxd) Cython C file (.c) C Compiler (gcc) Compiled Python module (.so) External libraries (*.so,.a)

9 Building Py-ART: Cython Example - Cython side cdef extern from "rsl.h": ctypedef struct Radar: cimport _rsl_h cdef class RslFile: Radar_header h cdef _rsl_h.radar * _Radar Volume **v cdef _rsl_h.volume * _Volume ctypedef struct Radar_header: def cinit (self, filename): int month, day, year self._radar = _rsl_h.rsl_anyformat_to_radar(filename) int hour, minute if self._radar is NULL: float sec raise IOError('file cannot be read.') def dealloc (self): ctypedef struct Volume: _rsl_h.rsl_free_radar(self._radar) Volume_header h Sweep **sweep def get_volume(self, int volume_number): rslvolume = _RslVolume() rslvolume.load(self._radar.v[volume_number]) return rslvolume Radar * RSL_anyformat_to_radar(char *infile) property month: void RSL_free_volume(Volume *v) void RSL_free_radar(Radar *r) def get (self): return self._radar.h.month def set (self, int month): _rsl_h.pxd self._radar.h.month = month _rsl_interface.pyx

10 Building Py-ART: Cython Example - Python side _rsl_interface.pyx _rsl_h.pxd >>> from pyart.io import _rsl_interface >>> rslfile = _rsl_interface.rslfile('xsw raw') >>> print rslfile <pyart.io._rsl_interface.rslfile object at 0x107112d20> Cython >>> print rslfile.month 5 >>> rslfile.month = 12 >>> print rslfile.month 12 >>> _rsl_interace.c >>> volume = rslfile.get_volume(1) >>> print volume <pyart.io._rsl_interface._rslvolume object at 0x > C Compiler (gcc) _rsl_interface.so rsl.so

11 Software Engineering: Version Control $ git log commit dca8e348ba7db19f675747e8b98acf987d Author: Jonathan Helmus <[email protected]> Date: Fri Jan 24 11:46: ENH: pyproj no longer an optional dependency pyproj is included in basemap, use the version commit 26c7a36dadfbdcc1c4e1dc1d8bfe188a073e08a4 Author: Jonathan Helmus <[email protected]> Date: Mon Jan 20 15:49: TST: do not install cylp or cvxopt in python 2.6 commit 1eeed39faf89d4aa9eda6014c4dbc1a2458bbb9a Author: Jonathan Helmus <[email protected]> Date: Mon Jan 20 15:42: TST: do not all basemap in python 2.6 commit d1ce060537df08aad39b8ad3a75db13a9728aa1a Author: Jonathan Helmus <[email protected]> Date: Mon Jan 20 15:35: BUG: fixed bugs when running in Python 2.6

12 Software Engineering: Testing def test_radar_creation(): radar = pyart.testing.make_target_radar() assert isinstance(radar, pyart.io.radar) def test_add_field(): radar = pyart.testing.make_target_radar() dic = {'data': np.zeros((360, 50)), 'standard_name': 'test'} radar.add_field('test', dic) assert 'test' in radar.fields assert 'data' in radar.fields['test'] assert radar.fields['test']['standard_name'] == 'test' ~/python/pyart$ nosetests -v test_attenuation.test_attenuation ok test_dealias.test_find_time_in_interp_sounde ok test_config.test_filemetadata_custom ok test_config.test_init_load ok test_config.test_intergration ok Ran 386 tests in s OK (SKIP=2)

13 Software Engineering: Continuous Integration

14 Software Engineering: Embedded Documentation def grid_from_radars(radars, grid_shape, grid_limits, **kwargs): """ Map one or more radars to a Cartesian grid returning a Grid object. Additional arguments are passed to :py:func:`map_to_grid` Parameters radars : tuple of Radar Radar objects which grid_shape : 3-tuple of Number of points in objects. will be mapped to the Cartesian grid. floats the grid (z, y, x).

15 GitHub

16 Py-ART: File I/O Format Native Read Read w/ RSL Sigmet/IRIS X X MDV X Cf/Radial X (+writing) Universal (UF) X Lassen X NEXRAD Level II DORAD X X

17 Radar 101 Top view Side view Gate Sweep Radial Radar Volume Sweep Sweep Sweep Radial Radial Radial Radial Gate Gate Gate Gate Gate

18 Py-ART: Data layout Radar object attributes Layout ngates : int nrays : int nsweeps : int scan_type : str Radar Sweep layout sweep_start_ray_index : dict sweep_end_ray_index : dict sweep_number : dict sweep_mode : dict fixed_angle: dict Dimensions time : dict range: dict azimuth : dict elevation : dict Location longitude : dict latitude: dict altitude : dict Fields : dict Optional metadata : dict radar_calibration : dict Field attribute keys The format of the Radar object closely follows the Cf/Radial format (Dixon et al) reflectivity : dict data : 2D array units : str spectral_width : dict data : 2D array units : str dopper_velocity : dict data : 2D array units : str differential_phase : dict data : 2D array units : str

Exercise 0. Although Python(x,y) comes already with a great variety of scientic Python packages, we might have to install additional dependencies:

Exercise 0. Although Python(x,y) comes already with a great variety of scientic Python packages, we might have to install additional dependencies: Exercise 0 Deadline: None Computer Setup Windows Download Python(x,y) via http://code.google.com/p/pythonxy/wiki/downloads and install it. Make sure that before installation the installer does not complain

More information

3.5 THREE-DIMENSIONAL HIGH-RESOLUTION NATIONAL RADAR MOSAIC

3.5 THREE-DIMENSIONAL HIGH-RESOLUTION NATIONAL RADAR MOSAIC 3.5 THREE-DIMENSIONAL HIGH-RESOLUTION NATIONAL RADAR MOSAIC Jian Zhang 1, Kenneth Howard 2, Wenwu Xia 1, Carrie Langston 1, Shunxin Wang 1, and Yuxin Qin 1 1 Cooperative Institute for Mesoscale Meteorological

More information

Optimizing and interfacing with Cython. Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) and Synchrotron Soleil (St Aubin)

Optimizing and interfacing with Cython. Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) and Synchrotron Soleil (St Aubin) Optimizing and interfacing with Cython Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) and Synchrotron Soleil (St Aubin) Extension modules Python permits modules to be written in C. Such modules

More information

CIS 192: Lecture 13 Scientific Computing and Unit Testing

CIS 192: Lecture 13 Scientific Computing and Unit Testing CIS 192: Lecture 13 Scientific Computing and Unit Testing Lili Dworkin University of Pennsylvania Scientific Computing I Python is really popular in the scientific and statistical computing world I Why?

More information

Technical Report. An Interactive Iso-Surface Based 3D Weather Radar Data Visualization Package Using VisAD for WDSSII

Technical Report. An Interactive Iso-Surface Based 3D Weather Radar Data Visualization Package Using VisAD for WDSSII Technical Report An Interactive Iso-Surface Based 3D Weather Radar Data Visualization Package Using VisAD for WDSSII (Jianting Zhang, Last Modified 2/5/2004) Abstract... 2 1 Introduction... 3 2 Overviews

More information

MYPY: A PYTHON VARIANT WITH SEAMLESS DYNAMIC AND STATIC TYPING. Jukka Lehtosalo University of Cambridge Computer Laboratory

MYPY: A PYTHON VARIANT WITH SEAMLESS DYNAMIC AND STATIC TYPING. Jukka Lehtosalo University of Cambridge Computer Laboratory MYPY: A PYTHON VARIANT WITH SEAMLESS DYNAMIC AND STATIC TYPING Jukka Lehtosalo University of Cambridge Computer Laboratory SPEAKER BIO 2000-2006 Software engineer (QPR Software and Kielikone) 2007-2009

More information

CRASH COURSE PYTHON. Het begint met een idee

CRASH COURSE PYTHON. Het begint met een idee CRASH COURSE PYTHON nr. Het begint met een idee This talk Not a programming course For data analysts, who want to learn Python For optimizers, who are fed up with Matlab 2 Python Scripting language expensive

More information

ANSA and μeta as a CAE Software Development Platform

ANSA and μeta as a CAE Software Development Platform ANSA and μeta as a CAE Software Development Platform Michael Giannakidis, Yianni Kolokythas BETA CAE Systems SA, Thessaloniki, Greece Overview What have we have done so far Current state Future direction

More information

Intro to scientific programming (with Python) Pietro Berkes, Brandeis University

Intro to scientific programming (with Python) Pietro Berkes, Brandeis University Intro to scientific programming (with Python) Pietro Berkes, Brandeis University Next 4 lessons: Outline Scientific programming: best practices Classical learning (Hoepfield network) Probabilistic learning

More information

Assignment 2: Option Pricing and the Black-Scholes formula The University of British Columbia Science One CS 2015-2016 Instructor: Michael Gelbart

Assignment 2: Option Pricing and the Black-Scholes formula The University of British Columbia Science One CS 2015-2016 Instructor: Michael Gelbart Assignment 2: Option Pricing and the Black-Scholes formula The University of British Columbia Science One CS 2015-2016 Instructor: Michael Gelbart Overview Due Thursday, November 12th at 11:59pm Last updated

More information

Objects and classes. Objects and classes. Jarkko Toivonen (CS Department) Programming in Python 1

Objects and classes. Objects and classes. Jarkko Toivonen (CS Department) Programming in Python 1 Objects and classes Jarkko Toivonen (CS Department) Programming in Python 1 Programming paradigms of Python Python is an object-oriented programming language like Java and C++ But unlike Java, Python doesn

More information

Profiling, debugging and testing with Python. Jonathan Bollback, Georg Rieckh and Jose Guzman

Profiling, debugging and testing with Python. Jonathan Bollback, Georg Rieckh and Jose Guzman Profiling, debugging and testing with Python Jonathan Bollback, Georg Rieckh and Jose Guzman Overview 1.- Profiling 4 Profiling: timeit 5 Profiling: exercise 6 2.- Debugging 7 Debugging: pdb 8 Debugging:

More information

Object Oriented Software Design II

Object Oriented Software Design II Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February

More information

BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering

BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security. & BSc. (Hons.) Software Engineering BSc (Hons) Business Information Systems, BSc (Hons) Computer Science with Network Security & BSc. (Hons.) Software Engineering Cohort: BIS/05/FT BCNS/05/FT BSE/05/FT Examinations for 2005-2006 / Semester

More information

Reprojecting MODIS Images

Reprojecting MODIS Images Reprojecting MODIS Images Why Reprojection? Reasons why reprojection is desirable: 1. Removes Bowtie Artifacts 2. Allows geographic overlays (e.g. coastline, city locations) 3. Makes pretty pictures for

More information

Continuous Integration/Testing and why you should assume every change breaks your code

Continuous Integration/Testing and why you should assume every change breaks your code MÜNSTER Continuous Integration/Testing and why you should assume every change breaks your code René Milk 4th November 2015 MÜNSTER Continuous Integration/Testing 2 /16 Not talking about C functions Continuous

More information

Performance Testing for GDB

Performance Testing for GDB Performance Testing for GDB Yao Qi [email protected] CodeSourcery/MentorGraphics 214-9-13 1 Overview Introduction Goals 2 3 Introduction Goals Introduction We need something to test and measure GDB

More information

Software Tool Seminar WS1516 - Taming the Snake

Software Tool Seminar WS1516 - Taming the Snake Software Tool Seminar WS1516 - Taming the Snake November 4, 2015 1 Taming the Snake 1.1 Understanding how Python works in N simple steps (with N still growing) 1.2 Step 0. What this talk is about (and

More information

The Clean programming language. Group 25, Jingui Li, Daren Tuzi

The Clean programming language. Group 25, Jingui Li, Daren Tuzi The Clean programming language Group 25, Jingui Li, Daren Tuzi The Clean programming language Overview The Clean programming language first appeared in 1987 and is still being further developed. It was

More information

GCalc 2.1. GDA94 Datum Transformation DLL Technical Specification

GCalc 2.1. GDA94 Datum Transformation DLL Technical Specification GCalc 2.1 GDA94 Datum Transformation DLL Technical Specification This publication has been compiled by Roger Fraser previously of Department of Natural Resources and Mines. State of Queensland, 2013. The

More information

Survey of Unit-Testing Frameworks. by John Szakmeister and Tim Woods

Survey of Unit-Testing Frameworks. by John Szakmeister and Tim Woods Survey of Unit-Testing Frameworks by John Szakmeister and Tim Woods Our Background Using Python for 7 years Unit-testing fanatics for 5 years Agenda Why unit test? Talk about 3 frameworks: unittest nose

More information

U N C L A S S I F I E D

U N C L A S S I F I E D CUDA and Java GPU Computing in a Cross Platform Application Scot Halverson [email protected] LA-UR-13-20719 Slide 1 What s the goal? Run GPU code alongside Java code Take advantage of high parallelization Utilize

More information

An introduction to Python Programming for Research

An introduction to Python Programming for Research An introduction to Python Programming for Research James Hetherington November 4, 2015 Contents 1 Introduction 15 1.1 Why teach Python?......................................... 15 1.1.1 Why Python?.........................................

More information

A Comparison of Functional and Imperative Programming Techniques for Mathematical Software Development

A Comparison of Functional and Imperative Programming Techniques for Mathematical Software Development A Comparison of Functional and Imperative Programming Techniques for Mathematical Software Development Scott Frame and John W. Coffey Department of Computer Science University of West Florida Pensacola,

More information

Scientific Data Management and Dissemination

Scientific Data Management and Dissemination Federal GIS Conference February 9 10, 2015 Washington, DC Scientific Data Management and Dissemination John Fry Solution Engineer, Esri [email protected] Agenda Background of Scientific Data Management through

More information

dedupe Documentation Release 1.0.0 Forest Gregg, Derek Eder, and contributors

dedupe Documentation Release 1.0.0 Forest Gregg, Derek Eder, and contributors dedupe Documentation Release 1.0.0 Forest Gregg, Derek Eder, and contributors January 04, 2016 Contents 1 Important links 3 2 Contents 5 2.1 API Documentation...........................................

More information

NetworkX: Network Analysis with Python

NetworkX: Network Analysis with Python NetworkX: Network Analysis with Python Salvatore Scellato Full tutorial presented at the XXX SunBelt Conference NetworkX introduction: Hacking social networks using the Python programming language by Aric

More information

MountainZebra: Real-Time Archival and 4D Visualization of Radar Volumes Over Complex Terrain

MountainZebra: Real-Time Archival and 4D Visualization of Radar Volumes Over Complex Terrain MountainZebra: Real-Time Archival and D Visualization of Radar Volumes Over Complex Terrain Curtis James, Stacy Brodzik, Harry Edmon, Robert Houze, and Sandra Yuter Department of Atmospheric Sciences,

More information

pyownet Documentation

pyownet Documentation pyownet Documentation Release 0.10.0 Stefano Miccoli March 30, 2016 Contents 1 Contents 3 1.1 Introduction............................................. 3 1.2 Installation..............................................

More information

Python for Scientific Computing. http://bender.astro.sunysb.edu/classes/python-science

Python for Scientific Computing. http://bender.astro.sunysb.edu/classes/python-science http://bender.astro.sunysb.edu/classes/python-science Course Goals Simply: to learn how to use python to do Numerical analysis Data analysis Plotting and visualizations Symbol mathematics Write applications...

More information

The P3 Compiler: compiling Python to C++ to remove overhead

The P3 Compiler: compiling Python to C++ to remove overhead The P3 Compiler: compiling Python to C++ to remove overhead Jared Pochtar 1. Introduction Python is a powerful, modern language with many features that make it attractive to programmers. As a very high

More information

2! Multimedia Programming with! Python and SDL

2! Multimedia Programming with! Python and SDL 2 Multimedia Programming with Python and SDL 2.1 Introduction to Python 2.2 SDL/Pygame: Multimedia/Game Frameworks for Python Literature: G. van Rossum and F. L. Drake, Jr., An Introduction to Python -

More information

DevKey Documentation. Release 0.1. Colm O Connor

DevKey Documentation. Release 0.1. Colm O Connor DevKey Documentation Release 0.1 Colm O Connor March 23, 2015 Contents 1 Quickstart 3 2 FAQ 5 3 Release Notes 7 i ii DevKey Documentation, Release 0.1 Github PyPI Contents 1 DevKey Documentation, Release

More information

Visualization of Climate Data in R. By: Mehrdad Nezamdoost [email protected] April 2013

Visualization of Climate Data in R. By: Mehrdad Nezamdoost Mehrdad@Nezamdoost.info April 2013 Visualization of Climate Data in R By: Mehrdad Nezamdoost [email protected] April 2013 Content Why visualization is important? How climate data store? Why R? Packages which used in R Some Result

More information

Python. Python. 1 Python. M.Ulvrova, L.Pouilloux (ENS LYON) Informatique L3 Automne 2011 1 / 25

Python. Python. 1 Python. M.Ulvrova, L.Pouilloux (ENS LYON) Informatique L3 Automne 2011 1 / 25 Python 1 Python M.Ulvrova, L.Pouilloux (ENS LYON) Informatique L3 Automne 2011 1 / 25 Python makes you fly M.Ulvrova, L.Pouilloux (ENS LYON) Informatique L3 Automne 2011 2 / 25 Let s start ipython vs python

More information

socketio Documentation

socketio Documentation socketio Documentation Release 0.1 Miguel Grinberg January 17, 2016 Contents 1 What is Socket.IO? 3 2 Getting Started 5 3 Rooms 7 4 Responses 9 5 Callbacks 11 6 Namespaces 13 7 Using a Message Queue 15

More information

monoseq Documentation

monoseq Documentation monoseq Documentation Release 1.2.1 Martijn Vermaat July 16, 2015 Contents 1 User documentation 3 1.1 Installation................................................ 3 1.2 User guide................................................

More information

Tellurium and libroadrunner in a Nutshell

Tellurium and libroadrunner in a Nutshell Tellurium and libroadrunner in a Nutshell Herbert M Sauro University of Washington [email protected] Developed by Andy Somogyi and the software team at UW with input from Maciek Swat August 10,

More information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

Scientific Visualization with wxpython and Matplotlib. Scott Pearse CSCI 5448 Spring 2011

Scientific Visualization with wxpython and Matplotlib. Scott Pearse CSCI 5448 Spring 2011 Scientific Visualization with wxpython and Matplotlib Scott Pearse CSCI 5448 Spring 2011 About: In this presentation, you will be shown how to use wxpython and Matplotlib to help you eliminate annoying

More information

Flask-SSO Documentation

Flask-SSO Documentation Flask-SSO Documentation Release 0.3.0 CERN July 30, 2015 Contents 1 Contents 3 1.1 Installation................................................ 3 1.2 Quickstart................................................

More information

Open-Source-based Visualization of Flight Waypoint Tracking Using Flight Manipulation System

Open-Source-based Visualization of Flight Waypoint Tracking Using Flight Manipulation System Open-Source-based Visualization of Flight Waypoint Tracking Using Flight Manipulation System Myeong-Chul Park a, Hyeon-Gab Shin b, Yong Ho Moon b, Seok-Wun Ha b*, a Dept. of Biomedical Electronics, Songho

More information

Alexandru Csete (Rovsing A/S) [email protected]. 3. International Workshop on Astrodynamics Tools and Techniques ESTEC, October 2-5, 2006

Alexandru Csete (Rovsing A/S) alc@rovsing.dk. 3. International Workshop on Astrodynamics Tools and Techniques ESTEC, October 2-5, 2006 Real-Time Satellite Tracking and Orbit Prediction with GPREDICT Alexandru Csete (Rovsing A/S) [email protected] 3. International Workshop on Astrodynamics Tools and Techniques ESTEC, October 2-5, 2006 September

More information

Wrestling with Python Unit testing. Warren Viant

Wrestling with Python Unit testing. Warren Viant Wrestling with Python Unit testing Warren Viant Assessment criteria OCR - 2015 Programming Techniques (12 marks) There is an attempt to solve all of the tasks using most of the techniques listed. The techniques

More information

INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011

INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE

More information

THE proper modeling of a photovoltaic (PV) system

THE proper modeling of a photovoltaic (PV) system 1 Introduction to the Open Source PV LIB for Python Photovoltaic System Modelling Package Robert W. Andrews 1, Joshua S. Stein 2, Clifford Hansen 2, and Daniel Riley 2 1 Calama Consulting, Toronto, Ontario,

More information

CS 241 Data Organization Coding Standards

CS 241 Data Organization Coding Standards CS 241 Data Organization Coding Standards Brooke Chenoweth University of New Mexico Spring 2016 CS-241 Coding Standards All projects and labs must follow the great and hallowed CS-241 coding standards.

More information

DATA SCIENCE CURRICULUM WEEK 1 ONLINE PRE-WORK INSTALLING PACKAGES COMMAND LINE CODE EDITOR PYTHON STATISTICS PROJECT O5 PROJECT O3 PROJECT O2

DATA SCIENCE CURRICULUM WEEK 1 ONLINE PRE-WORK INSTALLING PACKAGES COMMAND LINE CODE EDITOR PYTHON STATISTICS PROJECT O5 PROJECT O3 PROJECT O2 DATA SCIENCE CURRICULUM Before class even begins, students start an at-home pre-work phase. When they convene in class, students spend the first eight weeks doing iterative, project-centered skill acquisition.

More information

C++ Class Library Data Management for Scientific Visualization

C++ Class Library Data Management for Scientific Visualization I. Introduction C++ Class Library Data Management for Scientific Visualization Al Globus, Computer Sciences Corporation 1 [email protected] Abstract Scientific visualization strives to convert large

More information

PCL Tutorial: The Point Cloud Library By Example. Jeff Delmerico. Vision and Perceptual Machines Lab 106 Davis Hall UB North Campus. jad12@buffalo.

PCL Tutorial: The Point Cloud Library By Example. Jeff Delmerico. Vision and Perceptual Machines Lab 106 Davis Hall UB North Campus. jad12@buffalo. PCL Tutorial: The Point Cloud Library By Example Jeff Delmerico Vision and Perceptual Machines Lab 106 Davis Hall UB North Campus [email protected] February 11, 2013 Jeff Delmerico February 11, 2013 1/38

More information

2/1/2010. Background Why Python? Getting Our Feet Wet Comparing Python to Java Resources (Including a free textbook!) Hathaway Brown School

2/1/2010. Background Why Python? Getting Our Feet Wet Comparing Python to Java Resources (Including a free textbook!) Hathaway Brown School Practical Computer Science with Preview Background Why? Getting Our Feet Wet Comparing to Resources (Including a free textbook!) James M. Allen Hathaway Brown School [email protected] Background Hathaway

More information

NetCDF and HDF Data in ArcGIS

NetCDF and HDF Data in ArcGIS 2013 Esri International User Conference July 8 12, 2013 San Diego, California Technical Workshop NetCDF and HDF Data in ArcGIS Nawajish Noman Kevin Butler Esri UC2013. Technical Workshop. Outline NetCDF

More information

Software Architecture Document (SAD) for the Interferometric Modules of the Next ESA SAR Toolbox (NEST)

Software Architecture Document (SAD) for the Interferometric Modules of the Next ESA SAR Toolbox (NEST) Software Architecture Document (SAD) for the Interferometric Modules of the Next ESA SAR Toolbox (NEST) Contract number: 20809/07/I-LG Prepared by: PPO.labs Prepared for: The European Space Agency Revision

More information

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm

More information

Visualization with ParaView. Greg Johnson

Visualization with ParaView. Greg Johnson Visualization with Greg Johnson Before we begin Make sure you have 3.8.0 installed so you can follow along in the lab section http://paraview.org/paraview/resources/software.html http://www.paraview.org/

More information

Advanced Software Testing

Advanced Software Testing Johan Seland Advanced Software Testing Geilo Winter School 2013 1 Solution Example for the Bowling Game Kata Solution is in the final branch on Github git clone git://github.com/johanseland/bowlinggamekatapy.git

More information

CSCI E 98: Managed Environments for the Execution of Programs

CSCI E 98: Managed Environments for the Execution of Programs CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office

More information

Using EDA Databases: Milkyway & OpenAccess

Using EDA Databases: Milkyway & OpenAccess Using EDA Databases: Milkyway & OpenAccess Enabling and Using Scripting Languages with Milkyway and OpenAccess Don Amundson Khosro Khakzadi 2006 LSI Logic Corporation 1 Outline History Choice Of Scripting

More information

8.5. <summary>...26 9. Cppcheck addons...27 9.1. Using Cppcheck addons...27 9.1.1. Where to find some Cppcheck addons...27 9.2.

8.5. <summary>...26 9. Cppcheck addons...27 9.1. Using Cppcheck addons...27 9.1.1. Where to find some Cppcheck addons...27 9.2. Cppcheck 1.72 Cppcheck 1.72 Table of Contents 1. Introduction...1 2. Getting started...2 2.1. First test...2 2.2. Checking all files in a folder...2 2.3. Excluding a file or folder from checking...2 2.4.

More information

Nicolas P. Rougier PyConFr Conference 2014 Lyon, October 24 25

Nicolas P. Rougier PyConFr Conference 2014 Lyon, October 24 25 GRAPHICS AND ANIMATIONS IN PYTHON USING MATPLOTLIB AND OPENGL Nicolas P. Rougier PyConFr Conference 2014 Lyon, October 24 25 Graphics and Animations in Python Where do we start? A Bit of Context The Python

More information

A Statistical Framework for Operational Infrasound Monitoring

A Statistical Framework for Operational Infrasound Monitoring A Statistical Framework for Operational Infrasound Monitoring Stephen J. Arrowsmith Rod W. Whitaker LA-UR 11-03040 The views expressed here do not necessarily reflect the views of the United States Government,

More information

Application Note 49. Using the Digi TransPort Fleet Card. October 2011

Application Note 49. Using the Digi TransPort Fleet Card. October 2011 Application Note 49 Using the Digi TransPort Fleet Card October 2011 Contents 1 INTRODUCTION... 3 1.1 Outline... 3 1.2 Assumptions... 3 1.3 Corrections... 3 1.4 Version... 3 2 Fleet card Features... 4

More information

PyLmod Documentation. Release 0.1.0. MIT Office of Digital Learning

PyLmod Documentation. Release 0.1.0. MIT Office of Digital Learning PyLmod Documentation Release 0.1.0 MIT Office of Digital Learning April 16, 2015 Contents 1 Getting Started 3 2 Licensing 5 3 Table of Contents 7 3.1 PyLmod API Docs............................................

More information

Introduction to Native Android Development with NDK

Introduction to Native Android Development with NDK Introduction to Native Android Development with NDK Outline Motivation: case study of a real project Android Architecture Simplified Tool chain Diagram Adding 3 rd party modules Adding pdf and encrypted

More information

PATRIOT MISSILE DEFENSE Software Problem Led to System Failure at Dhahran, Saudi Arabia

PATRIOT MISSILE DEFENSE Software Problem Led to System Failure at Dhahran, Saudi Arabia --.- /Initcd Stdcs General Accounting Offiw Ikport to the Chairman, Subcommittee on Investigations and Oversight, Committee on Science, Space, and Technology, House of Rcprcsentativcs PATRIOT MISSILE DEFENSE

More information

Object Oriented Software Design II

Object Oriented Software Design II Object Oriented Software Design II Real Application Design Christian Nastasi http://retis.sssup.it/~lipari http://retis.sssup.it/~chris/cpp Scuola Superiore Sant Anna Pisa April 25, 2012 C. Nastasi (Scuola

More information

:Introducing Star-P. The Open Platform for Parallel Application Development. Yoel Jacobsen E&M Computing LTD [email protected]

:Introducing Star-P. The Open Platform for Parallel Application Development. Yoel Jacobsen E&M Computing LTD yoel@emet.co.il :Introducing Star-P The Open Platform for Parallel Application Development Yoel Jacobsen E&M Computing LTD [email protected] The case for VHLLs Functional / applicative / very high-level languages allow

More information

Open Source Visualisation with ADAGUC Web Map Services

Open Source Visualisation with ADAGUC Web Map Services Open Source Visualisation with ADAGUC Web Map Services Maarten Plieger Ernst de Vreede John van de Vegte, Wim Som de Cerff, Raymond Sluiter, Ian van der Neut, Jan Willem Noteboom 1 ADAGUC project Cooperative

More information

CSC230 Getting Starting in C. Tyler Bletsch

CSC230 Getting Starting in C. Tyler Bletsch CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly

More information

Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc()

Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc() CS61: Systems Programming and Machine Organization Harvard University, Fall 2009 Lecture 10: Dynamic Memory Allocation 1: Into the jaws of malloc() Prof. Matt Welsh October 6, 2009 Topics for today Dynamic

More information

Software Engineering Concepts: Testing. Pointers & Dynamic Allocation. CS 311 Data Structures and Algorithms Lecture Slides Monday, September 14, 2009

Software Engineering Concepts: Testing. Pointers & Dynamic Allocation. CS 311 Data Structures and Algorithms Lecture Slides Monday, September 14, 2009 Software Engineering Concepts: Testing Simple Class Example continued Pointers & Dynamic Allocation CS 311 Data Structures and Algorithms Lecture Slides Monday, September 14, 2009 Glenn G. Chappell Department

More information

Help on the Embedded Software Block

Help on the Embedded Software Block Help on the Embedded Software Block Powersim Inc. 1. Introduction The Embedded Software Block is a block that allows users to model embedded devices such as microcontrollers, DSP, or other devices. It

More information

VOC Documentation. Release 0.1. Russell Keith-Magee

VOC Documentation. Release 0.1. Russell Keith-Magee VOC Documentation Release 0.1 Russell Keith-Magee February 07, 2016 Contents 1 About VOC 3 1.1 The VOC Developer and User community................................ 3 1.2 Frequently Asked Questions.......................................

More information

Using AllJoyn with Apache Cordova, Python & Node

Using AllJoyn with Apache Cordova, Python & Node Using AllJoyn with Apache Cordova, Python & Node Ivan R. Judson, PhD October 2014, Microsoft 13 October 2015 AllSeen Alliance 1 Agenda 1. Background 2. Cordova Plugin 3. Language Bindings Python Bindings

More information

Automated ETL Testing with Py.Test. Kevin A. Smith Senior QA Automation Engineer Cambia Health Solutions

Automated ETL Testing with Py.Test. Kevin A. Smith Senior QA Automation Engineer Cambia Health Solutions Automated ETL Testing with Py.Test Kevin A. Smith Senior QA Automation Engineer Cambia Health Solutions 2 Agenda Overview Testing Data Quality Design for Automation & Testability Python and Py.Test Examples

More information

Getting Started with the Internet Communications Engine

Getting Started with the Internet Communications Engine Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2

More information

flask-mail Documentation

flask-mail Documentation flask-mail Documentation Release 0.9.1 Dan Jacob February 16, 2016 Contents 1 Links 3 2 Installing Flask-Mail 5 3 Configuring Flask-Mail 7 4 Sending messages 9 5 Bulk emails 11 6 Attachments 13 7 Unit

More information

Obtaining and Processing MODIS Data

Obtaining and Processing MODIS Data Obtaining and Processing MODIS Data MODIS is an extensive program using sensors on two satellites that each provide complete daily coverage of the earth. The data have a variety of resolutions; spectral,

More information

An Eprints Apache Log Filter for Non-Redundant Document Downloads by Browser Agents

An Eprints Apache Log Filter for Non-Redundant Document Downloads by Browser Agents An Eprints Apache Log Filter for Non-Redundant Document Downloads by Browser Agents Ed Sponsler Caltech Library System http://resolver.caltech.edu/caltechlib:spoeal04 December, 2004 Contents 1 Abstract

More information

Application Note AN0008. Data Logging Extension. For. Venus 8 GPS Receiver

Application Note AN0008. Data Logging Extension. For. Venus 8 GPS Receiver Application Note AN0008 Data Logging Extension For Venus 8 GPS Receiver Ver 1.4.17 July 25, 2014 Introduction The data logging option for the SkyTraq GPS receiver firmware allows storage of position, velocity,

More information

WSR - Weather Surveillance Radar

WSR - Weather Surveillance Radar 1 of 7 Radar by Paul Sirvatka College of DuPage Meteorology WSR - Weather Surveillance Radar It was learned during World War II that electromagnetic radiation could be sent out, bounced off an object and

More information

Python programming guide for Earth Scientists. Maarten J. Waterloo and Vincent E.A. Post

Python programming guide for Earth Scientists. Maarten J. Waterloo and Vincent E.A. Post Python programming guide for Earth Scientists Maarten J. Waterloo and Vincent E.A. Post Amsterdam Critical Zone Hydrology group September 2015 Cover page: Meteorological tower in an abandoned agricultural

More information

Introduction to FreeNAS development

Introduction to FreeNAS development Introduction to FreeNAS development John Hixson [email protected] ixsystems, Inc. Abstract FreeNAS has been around for several years now but development on it has been by very few people. Even with corporate

More information

GDB Tutorial. A Walkthrough with Examples. CMSC 212 - Spring 2009. Last modified March 22, 2009. GDB Tutorial

GDB Tutorial. A Walkthrough with Examples. CMSC 212 - Spring 2009. Last modified March 22, 2009. GDB Tutorial A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program

More information

Writing robust scientific code with testing (and Python) Pietro Berkes, Enthought UK

Writing robust scientific code with testing (and Python) Pietro Berkes, Enthought UK Writing robust scientific code with testing (and Python) Pietro Berkes, Enthought UK Modern programming practices and science } Researchers and scientific software developers write software daily, but

More information

Big Data: Using ArcGIS with Apache Hadoop. Erik Hoel and Mike Park

Big Data: Using ArcGIS with Apache Hadoop. Erik Hoel and Mike Park Big Data: Using ArcGIS with Apache Hadoop Erik Hoel and Mike Park Outline Overview of Hadoop Adding GIS capabilities to Hadoop Integrating Hadoop with ArcGIS Apache Hadoop What is Hadoop? Hadoop is a scalable

More information

Visualizing Multi-Dimensional WMS within ArcGIS For JavaScript API

Visualizing Multi-Dimensional WMS within ArcGIS For JavaScript API Visualizing Multi-Dimensional WMS within ArcGIS For JavaScript API Data Prep: 1. Obtain a netcdf File with a time dimension and another dimension. For example depth, altitude 2. Open ArcGIS Desktop 3.

More information