Getting more out of Matplotlib with GR

Size: px
Start display at page:

Download "Getting more out of Matplotlib with GR"

Transcription

1 Member of the Helmholtz Association Getting more out of Matplotlib with GR August 26 th 30 th, 2015 Cambridge, UK Josef

2 Scientific visualization tools for Python Plotly Core package: Bokeh matplotlib de-facto standard ( workhorse ) Browser solutions: Bokeh, plot.ly Other packages: Mayavi (mlab) powerful, but overhead from VTK ggplot, chaco statistical, 2D graphics ggplot chaco VTK versatile, but difficult to learn Vispy, Glumpy, OpenGL fast, but low-level APIs 2D 3D 2

3 Problems so far Crux of the matter separated 2D and 3D world missing interop Interop due to conceptual limitations, most packages can t visualize continuous data streams speed up often at the cost of device specific code Speed Quality 3

4 Our approach achieve more graphics performance by using GR as a Matplotlib backend Scripting Layer pyplot (backend / artist wrappers) Artist Layer extend Matplotlib s capabilities by combining the power of Matplotlib and GR / GR3 figure, plot, axes, primitives Backend Layer user interfaces, hardcopy devices avoid extra APIs / packages 4

5 highlights use GR as a backend for Matplotlib mix GR, MPL and GR3 (OpenGL) code IP[y]: / Jupyter notebook integration display continuous data streams create video animations on the fly native GUI integration (Qt4, wx) interactivity simultaneous output to multiple output devices

6 GR in action 6

7 Matplotlib using the GR backend $( $& Arrow Line2D %#"# $% $)"' $# * $%"' ( $#"# Ellipse FancyBoxPatch & )"' % '"#! $! "!! %! $! #! "! #"* #") &"( #"& &"# #"# %"( # % & + ( #! "! $"( 135 &"# &"( '"# '"( ("# #"* #") &"( #"& &"# #"# %"( %"#! #") $"( &"( #! # %$(+ # '$% # '$% #!"# "!)+ "!'( "!%& "!## "!## "!%& "!'( "!)+ #!"# ( ! #"* &"# %! $! 10! #"& %"( %! '"# %"# $! $"% '"( $"( #! # %$') # &$* # &$* '"# '"( # &$% # %$* %$% %$* &$% &$* '$% )/07,5/2- * (,0*82*9 1,6.!*440/+*7/32 73./-.# 5,63087/32 75/ /2-" 45! #"* %"( "!! "! ( # %$&' &$%! #") :/7. 0,9,06! #"# $# *! #"& %"# %"# %$%% # &$% $"% '"# $"( %$&' ) %$% %"'!%!% '"( $"# $"# %$') ,6. :/7. 0,9,06 ("# &$% &! ' PathPatch %$(+ # %$* # Polygon &$* %$* %! Circle %$), &! $'"# - Rectangle "!! +, Wedge /67!'%% " '$% %%"' & $ " $ $ & " $ & ( "!' %$' "!* "!( "!& "!$ "!" "!$ "!& "!( "!* "!% "!$ "!" %$% "!$ "!% "!' #!" # %$' "!& #!" & ( ( 270 # &$% # &$% # %$' %$% %$' &$% "!& "!" "!" "!& "!& #!" #!" 7

8 click images to view notebooks

9 Performance analysis ncalls cumtime filename:lineno(function) fps MPL {method'draw'of'_macosx.figurecanvas'objects} 29378/ artist.py:57(draw_wrapper) figure.py:1004(draw) _base.py:1989(draw) axis.py:1106(draw) axis.py:232(draw) pyplot.py:175(pause) lines.py:661(draw) pyplot.py:551(draw) text.py:581(draw) ncalls cumtime filename:lineno(function) most time is spent in the artist layer (pure Python) ??? MPL + GR pyplot.py:551(draw) backend_gr.py:227(draw) 14726/ artist.py:57(draw_wrapper) figure.py:1004(draw) _base.py:1989(draw) axis.py:1106(draw) axis.py:232(draw) lines.py:661(draw) backend_bases.py:237(draw_markers) No room for further optimizations on the backend side 0 MPL MPL+GR GR GR ncalls cumtime filename:lineno(function) init.py:1910(plot) init.py:250(updatews)

10 Inline graphics Matplotlib %matplotlib inline import matplotlib.pyplot as mpl fig, ax = mpl.subplots() for i in arange(1, 200): clear_output(wait=true) ax.cla() ax.plot(x, sin(x + i / 10.0)) display(fig) mpl.close() from gr import inline from gr.pygr import plot inline() ~ 10 times faster GR for i in arange(1, 200): plot(x, sin(x + i / 10.0))

11 GR + GR3 + MPL interop from os import environ environ['mplbackend'] = 'module://gr.matplotlib.backend_gr' import matplotlib.pyplot as mpl import mogli molecules = mogli.read("data/700k.xyz") import gr gr.inline("mov") gr.setregenflags(gr.mpl_postpone_update) import numpy as np angles = np.load("data/700k.npy") Important: tells MPL backend not to update lens = [] for t in range(100): mpl.cla() fig = mpl.subplot(133) fig.xaxis.set_ticks([-100, 0, 100]) fig.yaxis.set_ticks([]) Matplotlib mpl.ylim([0, 1000]) mpl.hist(angles[t], 20, normed=0, facecolor='g', alpha=0.5) mpl.show() gr.setviewport(0.05, 0.7, 0.05, 0.7) gr.setwindow(0, 1, 0, 1) mogli.draw(molecules[t]) gr.settextalign(gr.text_halign_center, gr.text_valign_half) gr.text(0.35, 0.7, "700K (%.1f ps) # of bonds: %d" % (t / 10.0, np.size(angles[t]))) lens.append(np.size(angles[t])) if t > 0: gr.setwindow(0, 10, 3500, 5000) gr.setviewport(0.1, 0.6, 0.05, 0.1) gr.axes(1, 0, 0, 3500, 2, 0, 0.005) gr.polyline(np.arange(t+1) / 10.0, lens) gr.updatews() GR3 GR import gr3 gr3.export("data/700k.html", 600, 600) GR3

12 Demos Animated graphics performance comparison: Matplotlib vs. GR (01-anim.ipynb) Inline graphics performance comparison: Matplotlib vs. GR (02-inline.ipynb) GR / mogli / Matplotlib interoperability example (03-interop.ipynb) Simple spectral analysis (04-specgram.ipynb) Visualize detector data from a scattering instrument (05-kws.ipynb)

13 Current activities JavaScript GR can be transpiled to JS gr.js (Emscripten: LLVM-to-JavaScript compiler) call GR functions from JS <canvas id="canvas" width="500" height="500"></canvas> <script type="text/javascript" src="gr.js"></script> <script type="text/javascript"> GR.ready(function() { var gr = new GR(); var t = 0; var x = new Array(629); var y = new Array(629); var draw = function() { gr_clearws(); var i; for (i = 0; i < 629; i++) { x[i] = i / * 2 * Math.PI; y[i] = Math.sin(x[i] + t / 10.0); } Use cases: embed JS code in IP[y]: or IJulia (Jypyter) interpret GR display list in the browser (06-anim-js.ipynb) }); </script> gr_setviewport(0.1, 0.95, 0.1, 0.95); gr_setwindow(0, 8, -1, 1); gr_setcharheight(0.020); gr_grid(0.5, 0.1, 0, -1, 4, 5); gr_axes(0.5, 0.1, 0, -1, 4, 5, 0.01); gr_polyline(629, x, y); gr_updatews(); t = t + 1; if (t < 200) { settimeout(draw, 1); } }; draw();

14 What else can GR be used for? pymoldyn see Poster session: Embedding visualization applications with pygr by Christian Felder

15 Conclusions The speedups when using the GR Matplotlib backend were behind the expectations but using GR supersedes backend hacks GR adds more plotting capabilities to Matplotlib allowing to mix 2D drawings and 3D graphics scenes or create movies on the fly Producing plots / figures is flexible and much faster with the GR framework (speedup for plots >20 and >100, respectively) e.g. export GKS_WSTYPE=pdf and then run your (batch) script(s) 15

16 Outlook simplify the installation self contained distribution for Anaconda and Canopy, or build from scratch provide more convenience functions (pylab grlab) migrate the GR3 library to modern OpenGL (using OpenGL shader language) visualize millions of vertices / faces 16

17 Resources Website: GR framework: PyPI: Talk material: Getting more out of Matplotlib with GR 17

18 Thank you for your attention Questions? Thanks to: Fabian Beule, Steffen Drossard, Christian Felder, Marvin Goblet, Ingo Heimbach, Daniel Kaiser, Philip Klinkhammer, David Knodt, Florian Rhiem, Jörg Winkler et al. 18

Scientific computing platforms at PGI / JCNS

Scientific computing platforms at PGI / JCNS Member of the Helmholtz Association Scientific computing platforms at PGI / JCNS PGI-1 / IAS-1 Scientific Visualization Workshop Josef Heinen Outline Introduction Python distributions The SciPy stack Julia

More information

Matplotlib Python Plotting

Matplotlib Python Plotting Matplotlib Python Plotting 1 / 6 2 / 6 3 / 6 Matplotlib Python Plotting Matplotlib is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive

More information

LECTURE 22. Numerical and Scientific Computing Part 2

LECTURE 22. Numerical and Scientific Computing Part 2 LECTURE 22 Numerical and Scientific Computing Part 2 MATPLOTLIB We re going to continue our discussion of scientific computing with matplotlib. Matplotlib is an incredibly powerful (and beautiful!) 2-D

More information

mpl Release latest May 17, 2017

mpl Release latest May 17, 2017 mpl a nimationmanagerdocumentation Release latest May 17, 2017 Contents 1 NOTE: Documentation is curently in development!!! 1 1.1 Matplotlib animation manager (GUI) 1.0a1...............................

More information

Visualisation in python (with Matplotlib)

Visualisation in python (with Matplotlib) Visualisation in python (with Matplotlib) Thanks to all contributors: Ag Stephens, Stephen Pascoe. Introducing Matplotlib Matplotlib is a python 2D plotting library which produces publication quality figures

More information

ME30_Lab1_18JUL18. August 29, ME 30 Lab 1 - Introduction to Anaconda, JupyterLab, and Python

ME30_Lab1_18JUL18. August 29, ME 30 Lab 1 - Introduction to Anaconda, JupyterLab, and Python ME30_Lab1_18JUL18 August 29, 2018 1 ME 30 Lab 1 - Introduction to Anaconda, JupyterLab, and Python ME 30 ReDev Team 2018-07-18 Description and Summary: This lab introduces Anaconda, JupyterLab, and Python.

More information

OREKIT IN PYTHON ACCESS THE PYTHON SCIENTIFIC ECOSYSTEM. Petrus Hyvönen

OREKIT IN PYTHON ACCESS THE PYTHON SCIENTIFIC ECOSYSTEM. Petrus Hyvönen OREKIT IN PYTHON ACCESS THE PYTHON SCIENTIFIC ECOSYSTEM Petrus Hyvönen 2017-11-27 SSC ACTIVITIES Public Science Services Satellite Management Services Engineering Services 2 INITIAL REASON OF PYTHON WRAPPED

More information

Contour Analysis And Visualization

Contour Analysis And Visualization Contour Analysis And Visualization Objectives : stages The objectives of Contour Analysis and Visualization can be described in the following 1. To study and analyse the contour 2. Visualize the contour

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer i About the Tutorial Project is a comprehensive software suite for interactive computing, that includes various packages such as Notebook, QtConsole, nbviewer, Lab. This tutorial gives you an exhaustive

More information

Introduction to Python and VTK

Introduction to Python and VTK Introduction to Python and VTK Scientific Visualization, HT 2013 Lecture 2 Johan Nysjö Centre for Image analysis Swedish University of Agricultural Sciences Uppsala University 2 About me PhD student in

More information

SQL Server Machine Learning Marek Chmel & Vladimir Muzny

SQL Server Machine Learning Marek Chmel & Vladimir Muzny SQL Server Machine Learning Marek Chmel & Vladimir Muzny @VladimirMuzny & @MarekChmel MCTs, MVPs, MCSEs Data Enthusiasts! vladimir@datascienceteam.cz marek@datascienceteam.cz Session Agenda Machine learning

More information

AMath 483/583 Lecture 28 June 1, Notes: Notes: Python scripting for Fortran codes. Python scripting for Fortran codes.

AMath 483/583 Lecture 28 June 1, Notes: Notes: Python scripting for Fortran codes. Python scripting for Fortran codes. AMath 483/583 Lecture 28 June 1, 2011 Today: Python plus Fortran Comments on quadtests.py for project Linear vs. log-log plots Visualization Friday: Animation: plots to movies Binary I/O Parallel IPython

More information

Introduction to ufit

Introduction to ufit Introduction to ufit a convenient scattering data evaluation tool G. Brandl, P. Cermak Forschungszentrum Jülich 1/22 What is ufit? Started as a private collection of data readers for evaluation scripts

More information

Euler s Method with Python

Euler s Method with Python Euler s Method with Python Intro. to Differential Equations October 23, 2017 1 Euler s Method with Python 1.1 Euler s Method We first recall Euler s method for numerically approximating the solution of

More information

Introduction to Scientific Computing with Python, part two.

Introduction to Scientific Computing with Python, part two. Introduction to Scientific Computing with Python, part two. M. Emmett Department of Mathematics University of North Carolina at Chapel Hill June 20 2012 The Zen of Python zen of python... fire up python

More information

WebGL Seminar: O3D. Alexander Lokhman Tampere University of Technology

WebGL Seminar: O3D. Alexander Lokhman Tampere University of Technology WebGL Seminar: O3D Alexander Lokhman Tampere University of Technology What is O3D? O3D is an open source JavaScript API for creating rich, interactive 3D applications in the browser Created by Google and

More information

Scientific Computing with Python. Quick Introduction

Scientific Computing with Python. Quick Introduction Scientific Computing with Python Quick Introduction Libraries and APIs A library is a collection of implementations of behavior (definitions) An Application Programming Interface (API) describes that behavior

More information

windrose Documentation Lionel Roubeyrie & Sebastien Celles

windrose Documentation Lionel Roubeyrie & Sebastien Celles Lionel Roubeyrie & Sebastien Celles Sep 04, 2018 Contents: 1 Install 3 1.1 Requirements............................................... 3 1.2 Install latest release version via pip...................................

More information

MATPLOTLIB. Python for computational science November 2012 CINECA.

MATPLOTLIB. Python for computational science November 2012 CINECA. MATPLOTLIB Python for computational science 19 21 November 2012 CINECA m.cestari@cineca.it Introduction (1) plotting the data gives us visual feedback in the working process Typical workflow: write a python

More information

5 File I/O, Plotting with Matplotlib

5 File I/O, Plotting with Matplotlib 5 File I/O, Plotting with Matplotlib Bálint Aradi Course: Scientific Programming / Wissenchaftliches Programmieren (Python) Installing some SciPy stack components We will need several Scipy components

More information

A Gentle Introduction. Optimisation

A Gentle Introduction. Optimisation A Gentle Introduction to for Optimisation FROM A MATLAB-USER PERSPECTIVE THIBAUT CUVELIER 23 SEPTEMBER, 2016 1 A few words about the course Goal: you can model nontrivial situations as MIPs, including

More information

Python in Economics and Finance

Python in Economics and Finance Python in Economics and Finance Part 2 John Stachurski, ANU June 2014 Topics Data types OOP Iteration Functions NumPy / SciPy Matplotlib Data Types We have already met several native Python data types»>

More information

The Python interpreter

The Python interpreter The Python interpreter Daniel Winklehner, Remi Lehe US Particle Accelerator School (USPAS) Summer Session Self-Consistent Simulations of Beam and Plasma Systems S. M. Lund, J.-L. Vay, D. Bruhwiler, R.

More information

Basic Beginners Introduction to plotting in Python

Basic Beginners Introduction to plotting in Python Basic Beginners Introduction to plotting in Python Sarah Blyth July 23, 2009 1 Introduction Welcome to a very short introduction on getting started with plotting in Python! I would highly recommend that

More information

David J. Pine. Introduction to Python for Science & Engineering

David J. Pine. Introduction to Python for Science & Engineering David J. Pine Introduction to Python for Science & Engineering To Alex Pine who introduced me to Python Contents Preface About the Author xi xv 1 Introduction 1 1.1 Introduction to Python for Science and

More information

Plotting With matplotlib

Plotting With matplotlib Lab Plotting With matplotlib and Mayavi Lab Objective: Introduce some of the basic plotting functions available in matplotlib and Mayavi. -D plotting with matplotlib The Python library matplotlib will

More information

Scientific Computing using Python

Scientific Computing using Python Scientific Computing using Python Swaprava Nath Dept. of CSE IIT Kanpur mini-course webpage: https://swaprava.wordpress.com/a-short-course-on-python/ Disclaimer: the contents of this lecture series are

More information

iplots extreme Next-generation interactive graphics for analysis of large data Simon Urbanek AT&T Labs Statistics Research

iplots extreme Next-generation interactive graphics for analysis of large data Simon Urbanek AT&T Labs Statistics Research iplots extreme Next-generation interactive graphics for analysis of large data Simon Urbanek AT&T Labs Statistics Research Overview About interactive graphics iplots: next generation - why and how? New

More information

Pandas plotting capabilities

Pandas plotting capabilities Pandas plotting capabilities Pandas built-in capabilities for data visualization it's built-off of matplotlib, but it's baked into pandas for easier usage. It provides the basic statistic plot types. Let's

More information

Data Science and Machine Learning Essentials

Data Science and Machine Learning Essentials Data Science and Machine Learning Essentials Lab 3A Visualizing Data By Stephen Elston and Graeme Malcolm Overview In this lab, you will learn how to use R or Python to visualize data. If you intend to

More information

BCA611 Video Oyunları için 3B Grafik

BCA611 Video Oyunları için 3B Grafik BCA611 Video Oyunları için 3B Grafik WebGL - Shader Programming Zümra Kavafoğlu Canvas element The HTML element is used to draw graphics on a web page. Create canvas with id, width and height

More information

ipywidgets_demo July 17, Interactive widgets for the Jupyter notebook (ipywidgets)

ipywidgets_demo July 17, Interactive widgets for the Jupyter notebook (ipywidgets) ipywidgets_demo July 17, 2017 1 Interactive widgets for the Jupyter notebook (ipywidgets) Maarten Breddels - Kapteyn Astronomical Institute / RuG - Groningen Material on github https://github.com/maartenbreddels/ewass-2017

More information

Using the Matplotlib Library in Python 3

Using the Matplotlib Library in Python 3 Using the Matplotlib Library in Python 3 Matplotlib is a Python 2D plotting library that produces publication-quality figures in a variety of hardcopy formats and interactive environments across platforms.

More information

pandas & ggplot quick analysis with python and friends Vincent Warmerdam Data

pandas & ggplot quick analysis with python and friends Vincent Warmerdam Data pandas & ggplot quick analysis with python and friends Vincent Warmerdam Data Scientist @fishnets88 vincentwarmerdam@godatadriven.com GoDataDriven PROUDLY PART OF THE XEBIA GROUP Who is this guy? - Data

More information

Visualizing Information with

Visualizing Information with Visualizing Information with HTML5 @synodinos 35,000 years ago Chauvet cave, southern France By far the oldest paintings ever discovered Hundreds of paintings At least 13 different species Viubk source

More information

A Gentle Introduction. Optimisation

A Gentle Introduction. Optimisation A Gentle Introduction to for Optimisation FROM A MATLAB-USER PERSPECTIVE THIBAUT CUVELIER 23 SEPTEMBER, 2016 1 A few words about the course Goal: you can model nontrivial situations as MIPs, including

More information

Once you define a new command, you can try it out by entering the command in IDLE:

Once you define a new command, you can try it out by entering the command in IDLE: 1 DEFINING NEW COMMANDS In the last chapter, we explored one of the most useful features of the Python programming language: the use of the interpreter in interactive mode to do on-the-fly programming.

More information

University of Cincinnati. P5.JS: Getting Started. p5.js

University of Cincinnati. P5.JS: Getting Started. p5.js p5.js P5.JS: Getting Started Matthew Wizinsky University of Cincinnati School of Design HTML + CSS + P5.js File Handling & Management Environment Canvas Coordinates Syntax Drawing Variables Mouse Position

More information

Geant4 application in a Web browser

Geant4 application in a Web browser Journal of Physics: Conference Series OPEN ACCESS Geant4 application in a Web browser To cite this article: Laurent Garnier and the Geant4 Collaboration 2014 J. Phys.: Conf. Ser. 513 062016 View the article

More information

def onclick(event): print button=%d, x=%d, y=%d, xdata=%f, ydata=%f %( event.button, event.x, event.y, event.xdata, event.ydata)

def onclick(event): print button=%d, x=%d, y=%d, xdata=%f, ydata=%f %( event.button, event.x, event.y, event.xdata, event.ydata) Event Handling and Picking Tutorial matplotlib works with 5 user interface toolkits (wxpython, tkinter, qt, gtk and fltk) and in order to support features like interactive panning and zooming of figures,

More information

3D Data visualization with Mayavi and TVTK

3D Data visualization with Mayavi and TVTK 3D Data visualization with Mayavi and TVTK Prabhu Ramachandran Department of Aerospace Engineering IIT Bombay Advanced tutorials at SciPy09 Caltech, Pasadena Aug. 18, 2009 Prabhu Ramachandran (IIT Bombay)

More information

Workshop on Advanced Techniques for Scientific Programming and Management of Open Source Software Packages Gravitation Project

Workshop on Advanced Techniques for Scientific Programming and Management of Open Source Software Packages Gravitation Project Workshop on Advanced Techniques for Scientific Programming and Management of Open Source Software Packages Gravitation Project Bellomo, Franco @fnbellomo Aguena da Silva, Michel Fogliatto, Ezequiel Romero

More information

Introduction to Python and NumPy I

Introduction to Python and NumPy I Introduction to Python and NumPy I This tutorial is continued in part two: Introduction to Python and NumPy II Table of contents Overview Launching Canopy Getting started in Python Getting help Python

More information

WebGL. Announcements. WebGL for Graphics Developers. WebGL for Web Developers. Homework 5 due Monday, 04/16. Final on Tuesday, 05/01

WebGL. Announcements. WebGL for Graphics Developers. WebGL for Web Developers. Homework 5 due Monday, 04/16. Final on Tuesday, 05/01 Announcements Patrick Cozzi University of Pennsylvania CIS 565 - Spring 2012 Homework 5 due Monday, 04/16 In-class quiz Wednesday, 04/18 Final on Tuesday, 05/01 6-8pm David Rittenhouse Lab A7 Networking

More information

Rasterization-based pipeline

Rasterization-based pipeline Rasterization-based pipeline Interactive Graphics: Color and Images 10/2/2014 Pagina 1 Rasterization-based rendering Input: set of vertices and its associated attributes Algorithm goes through several

More information

Getting Started with Python

Getting Started with Python Getting Started with Python A beginner course to Python Ryan Leung Updated: 2018/01/30 yanyan.ryan.leung@gmail.com Links Tutorial Material on GitHub: http://goo.gl/grrxqj 1 Learning Outcomes Python as

More information

Introduction to Python Practical 1

Introduction to Python Practical 1 Introduction to Python Practical 1 Daniel Carrera & Brian Thorsbro October 2017 1 Introduction I believe that the best way to learn programming is hands on, and I tried to design this practical that way.

More information

Installation Manual and Quickstart Guide

Installation Manual and Quickstart Guide JuliaPro (v0.6.2.2) Installation Manual and Quickstart Guide Contents 1. Objective 2. Prerequisites 2.1. Installation of Xcode command line tools 3. Installing JuliaPro 4. Using the JuliaPro Command Prompt

More information

Computational Programming with Python

Computational Programming with Python Numerical Analysis, Lund University, 2017 1 Computational Programming with Python Lecture 1: First steps - A bit of everything. Numerical Analysis, Lund University Lecturer: Claus Führer, Alexandros Sopasakis

More information

Intro to Research Computing with Python: Visualization

Intro to Research Computing with Python: Visualization Intro to Research Computing with Python: Visualization Erik Spence SciNet HPC Consortium 20 November 2014 Erik Spence (SciNet HPC Consortium) Visualization 20 November 2014 1 / 29 Today s class Today we

More information

Plotting package evaluation

Plotting package evaluation Plotting package evaluation Introduction We would like to evaluate several graphics packages for possible use in the GLAST Standard Analysis Environment. It is hoped that this testing will lead to a recommendation

More information

Python Matplotlib. MACbioIDi February March 2018

Python Matplotlib. MACbioIDi February March 2018 Python Matplotlib MACbioIDi February March 2018 Introduction Matplotlib is a Python 2D plotting library Its origins was emulating the MATLAB graphics commands It makes heavy use of NumPy Objective: Create

More information

McLab tools on the web. Deepanjan Roy Supervisor: Prof. Laurie Hendren

McLab tools on the web. Deepanjan Roy Supervisor: Prof. Laurie Hendren McLab tools on the web Deepanjan Roy Supervisor: Prof. Laurie Hendren Brief overview of the McLab project LANGUAGES, COMPILERS, AND VIRTUAL MACHINES Dynamic Scientific Programming Languages (Especially

More information

Data Science and Machine Learning Essentials

Data Science and Machine Learning Essentials Data Science and Machine Learning Essentials Lab 4C Working with Unsupervised Learning Models By Stephen Elston and Graeme Malcolm Overview The previous labs in this course have used supervised machine

More information

VAPOR Product Roadmap. Visualization and Analysis Software Team October 2017

VAPOR Product Roadmap. Visualization and Analysis Software Team October 2017 VAPOR Product Roadmap Visualization and Analysis Software Team October 2017 VAPOR Introduction In 2015 the VAPOR team began a major refactoring of the VAPOR codebase aimed at addressing a myriad of limitations

More information

Python: Its Past, Present, and Future in Meteorology

Python: Its Past, Present, and Future in Meteorology Python: Its Past, Present, and Future in Meteorology 7th Symposium on Advances in Modeling and Analysis Using Python 23 January 2016 Seattle, WA Ryan May (@dopplershift) UCAR/Unidata Outline The Past What

More information

(Ca...

(Ca... 1 of 8 9/7/18, 1:59 PM Getting started with 228 computational exercises Many physics problems lend themselves to solution methods that are best implemented (or essentially can only be implemented) with

More information

Python for Data Analysis. Prof.Sushila Aghav-Palwe Assistant Professor MIT

Python for Data Analysis. Prof.Sushila Aghav-Palwe Assistant Professor MIT Python for Data Analysis Prof.Sushila Aghav-Palwe Assistant Professor MIT Four steps to apply data analytics: 1. Define your Objective What are you trying to achieve? What could the result look like? 2.

More information

Introduction to scientific visualization with ParaView

Introduction to scientific visualization with ParaView Introduction to scientific visualization with ParaView Tijs de Kler SURFsara Visualization group Tijs.dekler@surfsara.nl (some slides courtesy of Robert Belleman, UvA) Outline Pipeline and data model (10

More information

Python Programming. Hans-Petter Halvorsen.

Python Programming. Hans-Petter Halvorsen. Python Programming Hans-Petter Halvorsen https://www.halvorsen.blog Python Programming Python Programming Hans-Petter Halvorsen 2018 Python Programming c Hans-Petter Halvorsen December 20, 2018 1 Preface

More information

Introduction to Python for Scientific Computing

Introduction to Python for Scientific Computing 1 Introduction to Python for Scientific Computing http://tinyurl.com/cq-intro-python-20151022 By: Bart Oldeman, Calcul Québec McGill HPC Bart.Oldeman@calculquebec.ca, Bart.Oldeman@mcgill.ca Partners and

More information

MeerKAT Data Architecture. Simon Ratcliffe

MeerKAT Data Architecture. Simon Ratcliffe MeerKAT Data Architecture Simon Ratcliffe MeerKAT Signal Path MeerKAT Data Rates Online System The online system receives raw visibilities from the correlator at a sufficiently high dump rate to facilitate

More information

Python for Data Analysis

Python for Data Analysis Python for Data Analysis Wes McKinney O'REILLY 8 Beijing Cambridge Farnham Kb'ln Sebastopol Tokyo Table of Contents Preface xi 1. Preliminaries " 1 What Is This Book About? 1 Why Python for Data Analysis?

More information

Contents in Detail. Who Is This Book For?... xix What s in This Book?... xx. part I: Warming Up 1

Contents in Detail. Who Is This Book For?... xix What s in This Book?... xx. part I: Warming Up 1 Acknowledgments xvii Introduction Who Is This Book For?... xix What s in This Book?... xx Part I: Warming Up.... xx Part II: Simulating Life... xx Part III: Fun with Images... xx Part IV: Enter 3D... xx

More information

Certified Data Science with Python Professional VS-1442

Certified Data Science with Python Professional VS-1442 Certified Data Science with Python Professional VS-1442 Certified Data Science with Python Professional Certified Data Science with Python Professional Certification Code VS-1442 Data science has become

More information

Software Preparation for Modelling Workshop

Software Preparation for Modelling Workshop Software Preparation for Modelling Workshop Daniel Brown, Andreas Freise University of Birmingham Issue: Date: July 27, 2017 School of Physics and Astronomy University of Birmingham Birmingham, B15 2TT

More information

Porting Fabric Engine to NVIDIA Unified Memory: A Case Study. Peter Zion Chief Architect Fabric Engine Inc.

Porting Fabric Engine to NVIDIA Unified Memory: A Case Study. Peter Zion Chief Architect Fabric Engine Inc. Porting Fabric Engine to NVIDIA Unified Memory: A Case Study Peter Zion Chief Architect Fabric Engine Inc. What is Fabric Engine? A high-performance platform for building 3D content creation applications,

More information

Plotting with an introduction to functions

Plotting with an introduction to functions Plotting with CERN@school: an introduction to functions Twitter: @nicoleshearer93 N. Shearer a, T. Whyntie b, c a Durham University, b Langton Star Centre, c Queen Mary University of London Coding with

More information

Manual_implementation_of_the_Mersenne_twister_PseudoRandom_N

Manual_implementation_of_the_Mersenne_twister_PseudoRandom_N Manual_implementation_of_the_Mersenne_twister_PseudoRandom_N May 4, 2017 1 Table of Contents 1 Manual implementation of the Mersenne twister PseudoRandom Number Generator (PRNG) 1.1 Common API for the

More information

UI and Python Interface

UI and Python Interface UI and Python Interface Koichi Murakami (KEK) Geant4 Collaboration Meeting 2017 27 September 2017 22ND GEANT4 COLLABORATION MEETING 1 Important fix in UI : BZ1989 (2006) Symptom : In UI terminal, PreInit>

More information

Programming with Python

Programming with Python Programming with Python EOAS Software Carpentry Workshop September 21st, 2016 https://xkcd.com/353 Getting started For our Python introduction we re going to pretend to be a researcher studying inflammation

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures 1. Operating System Services 2. User Operating System

More information

FlyVR Documentation. Release 0.9. Andrew Straw

FlyVR Documentation. Release 0.9. Andrew Straw FlyVR Documentation Release 0.9 Andrew Straw August 27, 2016 Contents 1 FlyVR pipeline overview 3 1.1 Installation and Getting Started..................................... 3 1.2 Using the joystick for

More information

ENGR (Socolofsky) Week 07 Python scripts

ENGR (Socolofsky) Week 07 Python scripts ENGR 102-213 (Socolofsky) Week 07 Python scripts A couple programming examples for this week are embedded in the lecture notes for Week 7. We repeat these here as brief examples of typical array-like operations

More information

Connecting ArcGIS with R and Conda. Shaun Walbridge

Connecting ArcGIS with R and Conda. Shaun Walbridge Connecting ArcGIS with R and Conda Shaun Walbridge https://github.com/sc w/nyc-r-ws High Quality PDF ArcGIS Today: R and Conda Conda Introduction Optional demo R and the R-ArcGIS Bridge Introduction Demo

More information

Working with Metal Overview

Working with Metal Overview Graphics and Games #WWDC14 Working with Metal Overview Session 603 Jeremy Sandmel GPU Software 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission

More information

An Introduction To Matplotlib School Of Geosciences

An Introduction To Matplotlib School Of Geosciences We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer, you have convenient answers with an introduction to matplotlib

More information

CSC 1315! Data Science

CSC 1315! Data Science CSC 1315! Data Science Data Visualization Based on: Python for Data Analysis: http://hamelg.blogspot.com/2015/ Learning IPython for Interactive Computation and Visualization by C. Rossant Plotting with

More information

Introduction to Programming with Python 3, Ami Gates. Chapter 1: Creating a Programming Environment

Introduction to Programming with Python 3, Ami Gates. Chapter 1: Creating a Programming Environment Introduction to Programming with Python 3, Ami Gates Chapter 1: Creating a Programming Environment 1.1: Python, IDEs, Libraries, Packages, and Platforms A first step to learning and using any new programming

More information

Scientific Python. 1 of 10 23/11/ :00

Scientific Python.   1 of 10 23/11/ :00 Scientific Python Neelofer Banglawala Kevin Stratford nbanglaw@epcc.ed.ac.uk kevin@epcc.ed.ac.uk Original course authors: Andy Turner Arno Proeme 1 of 10 23/11/2015 00:00 www.archer.ac.uk support@archer.ac.uk

More information

Blink: 3D Display Multiplexing for Virtualized Applications

Blink: 3D Display Multiplexing for Virtualized Applications : 3D Display Multiplexing for Virtualized Applications January 20, 2006 : 3D Display Multiplexing for Virtualized Applications Motivation Sprites and Tiles Lessons Learned GL in, GL out Communication Protocol

More information

SCIENTIFIC VISUALIZATION IN WEB-APPLICATIONS

SCIENTIFIC VISUALIZATION IN WEB-APPLICATIONS 6th European Conference on Computational Mechanics (ECCM 6) 7th European Conference on Computational Fluid Dynamics (ECFD 7) 1115 June 2018, Glasgow, UK SCIENTIFIC VISUALIZATION IN WEB-APPLICATIONS DMITRY

More information

4. BASIC PLOTTING. JHU Physics & Astronomy Python Workshop Lecturer: Mubdi Rahman

4. BASIC PLOTTING. JHU Physics & Astronomy Python Workshop Lecturer: Mubdi Rahman 4. BASIC PLOTTING JHU Physics & Astronomy Python Workshop 2016 Lecturer: Mubdi Rahman INTRODUCING MATPLOTLIB! Very powerful plotting package. The Docs: http://matplotlib.org/api/pyplot_api.html GETTING

More information

Bi 1x Spring 2014: Plotting and linear regression

Bi 1x Spring 2014: Plotting and linear regression Bi 1x Spring 2014: Plotting and linear regression In this tutorial, we will learn some basics of how to plot experimental data. We will also learn how to perform linear regressions to get parameter estimates.

More information

Building Mashups Using the ArcGIS APIs for FLEX and JavaScript. Shannon Brown Lee Bock

Building Mashups Using the ArcGIS APIs for FLEX and JavaScript. Shannon Brown Lee Bock Building Mashups Using the ArcGIS APIs for FLEX and JavaScript Shannon Brown Lee Bock Agenda Introduction Mashups State of the Web Client ArcGIS Javascript API ArcGIS API for FLEX What is a mashup? What

More information

THE JAVASCRIPT ARTIST 15/10/2016

THE JAVASCRIPT ARTIST 15/10/2016 THE JAVASCRIPT ARTIST 15/10/2016 Objectives Learn how to program with JavaScript in a fun way! Understand the basic blocks of what makes a program. Make you confident to explore more complex features of

More information

Installation and Configuration Manual

Installation and Configuration Manual Installation and Configuration Manual IMPORTANT YOU MUST READ AND AGREE TO THE TERMS AND CONDITIONS OF THE LICENSE BEFORE CONTINUING WITH THIS PROGRAM INSTALL. CIRRUS SOFT LTD End-User License Agreement

More information

Python for Scientists

Python for Scientists High level programming language with an emphasis on easy to read and easy to write code Includes an extensive standard library We use version 3 History: Exists since 1991 Python 3: December 2008 General

More information

Software. CPU implements "machine code" instructions. --Each machine code instruction is extremely simple. --To run, expanded to about 10 machine code

Software. CPU implements machine code instructions. --Each machine code instruction is extremely simple. --To run, expanded to about 10 machine code Software Software - code that runs on the hardware I'm going to simplify things a bit here CPU implements "machine code" instructions --Each machine code instruction is extremely simple --e.g. add 2 numbers

More information

tutorial : modeling synaptic plasticity

tutorial : modeling synaptic plasticity tutorial : modeling synaptic plasticity Computational Neuroscience by the Mediterranean Winter School, Jan 20th, 2016 Michael Graupner Université Paris Descartes CNRS UMR 8118, Paris, France michael.graupner@parisdescartes.fr

More information

PYTHON FOR MEDICAL PHYSICISTS. Radiation Oncology Medical Physics Cancer Care Services, Royal Brisbane & Women s Hospital

PYTHON FOR MEDICAL PHYSICISTS. Radiation Oncology Medical Physics Cancer Care Services, Royal Brisbane & Women s Hospital PYTHON FOR MEDICAL PHYSICISTS Radiation Oncology Medical Physics Cancer Care Services, Royal Brisbane & Women s Hospital TUTORIAL 1: INTRODUCTION Thursday 1 st October, 2015 AGENDA 1. Reference list 2.

More information

Geant4 python interface

Geant4 python interface Geant4 python interface Koichi Murakami (KEK/CRC) Geant4 Collaboration Meeting 2016 Sep/15/2016 G4 FERRARA 1 Python Shell Environment CLI : UI terminal script language : UI macro Programming Language oop,

More information

Introduction to scientific visualization with ParaView

Introduction to scientific visualization with ParaView Introduction to scientific visualization with ParaView Paul Melis SURFsara Visualization group paul.melis@surfsara.nl (some slides courtesy of Robert Belleman, UvA) Outline Introduction, pipeline and data

More information

Introduction to Matplotlib: 3D Plotting and Animations

Introduction to Matplotlib: 3D Plotting and Animations 1 Introduction to Matplotlib: 3D Plotting and Animations Lab Objective: 3D plots and animations are useful in visualizing solutions to ODEs and PDEs found in many dynamics and control problems. In this

More information

WebGL (Web Graphics Library) is the new standard for 3D graphics on the Web, designed for rendering 2D graphics and interactive 3D graphics.

WebGL (Web Graphics Library) is the new standard for 3D graphics on the Web, designed for rendering 2D graphics and interactive 3D graphics. About the Tutorial WebGL (Web Graphics Library) is the new standard for 3D graphics on the Web, designed for rendering 2D graphics and interactive 3D graphics. This tutorial starts with a basic introduction

More information

CS 418: Interactive Computer Graphics. Introduction. Eric Shaffer

CS 418: Interactive Computer Graphics. Introduction. Eric Shaffer CS 418: Interactive Computer Graphics Introduction Eric Shaffer Computer Graphics is Used By Video Game Industry Revenue of $99B globally in 2016 Computer Graphics is Used By Medical Imaging and Scientific

More information

A Mobile Accelerator Architecture for Ray Tracing

A Mobile Accelerator Architecture for Ray Tracing A Mobile Accelerator Architecture for Ray Tracing Josef Spjut, Daniel Kopta, Erik Brunvand and Al Davis sjosef, dkopta, elb, ald utah.edu 1 State of the Art in Mobile Graphics 2 Mobile SoC 3 Mobile

More information

Image creation with PHP

Image creation with PHP Image creation with PHP By Kore Nordmann PHP Unconference Hamburg 25.04.08 About me Kore Nordmann Studying computer science at the University Dortmund Working for ez systems on ez components Maintainer

More information

Introduction to Computer Vision Laboratories

Introduction to Computer Vision Laboratories Introduction to Computer Vision Laboratories Antonino Furnari furnari@dmi.unict.it www.dmi.unict.it/~furnari/ Computer Vision Laboratories Format: practical session + questions and homeworks. Material

More information

Summary of Image and Plotting Software (IPS) packages collected. for possible use with GLAST Science Analysis Tools

Summary of Image and Plotting Software (IPS) packages collected. for possible use with GLAST Science Analysis Tools Summary of Image and Software (IPS) packages collected for possible use with GLAST Science Analysis Tools For the Science Analysis Tools, we will need the capability to make plots, and display images on

More information