Slide 1

Slide 1 text

Big Python Andreas Schreiber Python Unconference Hamburg, 29.11.2014 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 1

Slide 2

Slide 2 text

Vorstellung DLR.de • Folie 2 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Wissenschaftler, Abteilungsleiter Co-Gründer, Geschäftsführer Communities

Slide 3

Slide 3 text

DLR.de • Folie 3 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Bild: Mariluna, CC BY-SA 3.0

Slide 4

Slide 4 text

Big Number of Devices •  Internet of Things •  Smartphones Big Computers •  High Performance Computing Big Applications •  „Killer“-Applikationen in Wissenschaft und Technologie > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 4 Big Python Themen

Slide 5

Slide 5 text

Big Number of Devices •  Internet of Things •  Smartphones > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 5

Slide 6

Slide 6 text

Milliarden an Geräten, Sensoren und Chips •  Verbundene physikalische Objekte (oder deren virtuelle Repräsentation) •  Verbunden über das Internet •  Eindeutig identifiziert •  Sie interagieren miteinander > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 6 Internet der Dinge Internet of Things

Slide 7

Slide 7 text

Die „Dinge“ sind •  Embedded Systeme •  Sensoren •  Aktuatoren In unseren Lebenswelten •  Smart Home •  Connected Car •  Wearables •  … > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 7 Geräte im Internet der Dinge

Slide 8

Slide 8 text

Die Anzahl der mit Internet verbundenen Geräte steigt täglich 50.000.000.000 „Dinge“ bis 2020 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 8 Wie groß ist „Big“? Wachstum

Slide 9

Slide 9 text

Kommunikation DLR.de • Folie 9 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Internet der Dinge Kommunikations- infrastruktur

Slide 10

Slide 10 text

MQ Telemetry Transport •  Machine-to-machine (M2M) connectivity protocol •  Publish/Subscribe-Messaging •  Rechnet mit unzuverlässigen Netzwerken mit geringer Bandbreite und hoher Latenzzeit •  Rechnet mit Clients mit geringer Rechenleistung •  Erlaubt hohen Quality-of-Service, falls das Netzwerk es erlaubt •  Einfach zu implementieren > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 10 Ein Kommunikationsprotokoll MQTT

Slide 11

Slide 11 text

MQTT Broker DLR.de • Folie 11 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 MQTT Broker MQTT Broker Client Client Client Client publish subscribe topic/subtopic (optional) Bridge Client

Slide 12

Slide 12 text

Messages in MQTT werden auf „Topics“ veröffentlicht •  Keine Konfiguration notwendig, einfach auf dem Topic veröffentlichen •  Topics sind hierarchisch mit „/“ als Trenner > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 12 MQTT Topics my/home/temperature/kitchen my/home/temperature/livingroom my/server/temperature

Slide 13

Slide 13 text

MQTT Implementierungen DLR.de • Folie 13 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Server/Broker •  IBM Websphere MQ •  RSMB •  Eclipse Paho •  MQTT.js •  Apache ActiveMQ •  RabittMQ •  HiveMQ Bibliotheken für •  C/C++ •  Java •  Python •  Perl •  PHP •  Ruby •  … http://mqtt.org/wiki/software

Slide 14

Slide 14 text

Python Client-Modul •  Eine einzelne Datei, reine Python-Implementierung •  Veröffentlichen und Empfangen von Messages •  Callbacks •  Connect •  Disconnect •  Publish •  Message •  Subscribe > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 14 MQTT mit Python Eclipse Paho https://eclipse.org/paho

Slide 15

Slide 15 text

> Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 15 MQTT mit Python Subscribe import paho.mqtt.client as mqtt def on_message(mosq, obj, msg): print(msg.topic + ' ' + str(msg.payload)) mqtt_client = mqtt.Client() mqtt_client.on_message = on_message mqtt_client.connect('test.mosquitto.org') mqtt_client.subscribe(‘#', 0) # all topics return_code = 0 while return_code == 0: return_code = mqtt_client.loop()

Slide 16

Slide 16 text

> Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 16 MQTT mit Python Publish import paho.mqtt.client as mqtt mqtt_client = mqtt.Client() mqtt_client.connect('test.mosquitto.org') mqtt_client.publish('python/demo', 'hello world', 1)

Slide 17

Slide 17 text

MQTT Anwendungsbeispiel Heimautomatisierung mit Raspberry Pi DLR.de • Folie 17 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Messdaten mit Sensoren via 1-Wire •  1-Wire: Einkabel-Bussystem, niedrige Geschwindigkeit •  Sensoren für Temperatur, Spannung, Licht, Feuchtigkeit, … Eclipse Paho auf Raspberry Pi installieren •  apt-get install mosquitto Messwerte von 1-Wire-Sensoren •  Mehrere Lösungen für Python

Slide 18

Slide 18 text

Temperatur veröffentlichen OWFS: One Wire File System DLR.de • Folie 18 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 import time import os import paho.mqtt.client as mqtt file_name = os.path.join('/', 'mnt', '1wire', '10.67C6697351FF', 'temperature') mqtt_client = mqtt.Client('home-temperature') mqtt_client.connect('test.mosquitto.org') while 1: file_object = open(file_name, 'r') temperature = '%sC' % file_object.read() mqtt_client.publish('home/demo/temperature', temperature, 1) mqtt_client.loop() time.sleep(5) file_object.close()

Slide 19

Slide 19 text

Relayr WunderBar •  IoT Starter Kit •  Verschiedene Sensoren •  WiFi und Bluetooth LE •  SDKs und APIs •  Android •  iOS/OSX •  Python •  Web/Javascript > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 19 Hardware für das Internet der Dinge WunderBar https://relayr.io Bild: relayr.io

Slide 20

Slide 20 text

WunderBar Hardware DLR.de • Folie 20 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Bild: relayr.io

Slide 21

Slide 21 text

WunderBar Cloud Service und Web-Oberfläche DLR.de • Folie 21 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 22

Slide 22 text

> Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 22 WunderBar Python SDK from relayr import Client client = Client(token='XXX') device = client.get_device(id='XXX') device.switch_led_on(True)

Slide 23

Slide 23 text

> Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 23 WunderBar Python SDK import time from relayr import Client def callback(message, channel): print(repr(message), type(message)) client = Client(token='') device = client.get_device(id='').get_info() user = client.get_user() conn = user.connect_device(device, callback) conn.start() time.sleep(10) conn.stop()

Slide 24

Slide 24 text

DLR.de • Folie 24 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Verbreitete Devices Smartphones

Slide 25

Slide 25 text

Wie groß ist „Big“? Weltweit verkaufte Smartphones DLR.de • Folie 25 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Quelle: http://en.wikipedia.org/wiki/Smartphone

Slide 26

Slide 26 text

Wie groß ist „Big“? Verfügbare Apps im Google Play Store DLR.de • Folie 26 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 16 30 38 70 100 200 250 300 400 450 500 600 675 700 850 900 1.000 1.300 0 200 400 600 800 1000 1200 1400 Dez '09 Mär '10 Apr '10 Jul '10 Okt '10 Apr '11 Jul '11 Aug '11 Dez '11 Feb '12 Mai '12 Jun '12 Sep '12 Okt '12 Apr '13 Jul '13 Aug '13 Jul '14 Anzahl der verfügbaren Apps (in 1.000) Weltweit; Dezember 2009 bis Juli 2014, Quelle: statista GmbH, http://de.statista.com/statistik/daten/studie/74368/umfrage/anzahl-der-verfuegbaren-apps-im-google-play-store/

Slide 27

Slide 27 text

Sehr viele Apps… DLR.de • Folie 27 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 … aber die allerwenigsten sind in Python entwickelt!

Slide 28

Slide 28 text

Frühe Technologien •  PyS60 for Symbian •  Python CE for Windows Mobile Aktuelle Technologien •  Scripting Layer for Android (SL4A) •  Python for Android (Py4A) •  PySide / Qt for Android •  WinRT / IronPython for Windows 8 •  Kivy… > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 28 Python auf Smartphones

Slide 29

Slide 29 text

Plattformen •  Android •  iOS •  Meego •  Windows •  Linux •  OS X •  Raspberry Pi Entwicklung in Python auf allen Plattformen – keine Emulation! > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 29 Kivy Plattformübergreifendes Python-Framework kivy.org

Slide 30

Slide 30 text

Kivy „Hello World“ DLR.de • Folie 30 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 from kivy.app import App from kivy.uix.button import Button class TestApp(App): def build(self): return Button(text='Hello Cologne') TestApp().run()

Slide 31

Slide 31 text

Kivy Sprache „KV“ für Layout und Grafik DLR.de • Folie 31 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 from kivy.app import App class HelloApp(App): pass HelloApp().run() #:kivy 1.0 Button: text: ‘Hello Hamburg’ Datei hello.kv definiert Root-Widget

Slide 32

Slide 32 text

Kivy Apps Verfügbar zum Beispiel im Google Play Store DLR.de • Folie 32 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 33

Slide 33 text

Kivy Apps Geeignet für Prototypen DLR.de • Folie 33 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 34

Slide 34 text

Pflanzenbeleuchtung •  Webcam nimmt Bild auf •  Rechner erkennt Pflanze •  Rechner berechnet anhand von Einstellungen ein Ausgabebild •  Lichtquelle (z.B. Beamer) beleuchtet die Pflanze mit dem Bild > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 34 Kivy zur Erstellung von GUIs und Apps Beispiel aus der Raumfahrtbiologie

Slide 35

Slide 35 text

DLR.de • Folie 35 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 36

Slide 36 text

DLR.de • Folie 36 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 37

Slide 37 text

DLR.de • Folie 37 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 38

Slide 38 text

QPython – Python on Android (http://qpython.com) > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 38 Python auf Smartphones Weitere Möglichkeiten…

Slide 39

Slide 39 text

Pythonista – Python on iOS http://omz-software.com/pythonista > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 39 Python auf Smartphones Weitere Möglichkeiten…

Slide 40

Slide 40 text

Big Computers High Performance Computing > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 40

Slide 41

Slide 41 text

Wenn der Arbeitsplatzrechner nicht mehr ausreicht •  Hohe Rechenleistung und hoher Speicherbedarf > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 41 High Performance Computing (HPC) Spezialgebiet des Wissenschaftlichen Rechnens Bilder: http://www.isgtw.org Das Bild kann nicht angezeigt werden. Dieser Computer verfügt möglicherweise über zu wenig Arbeitsspeicher, um das Bild zu öffnen, oder das Bild ist beschädigt. Starten Sie den Computer neu, und öffnen Sie dann erneut die Datei. Wenn weiterhin das rote x angezeigt wird, müssen Sie das Bild möglicherweise löschen und dann erneut einfügen. Das Bild kann nicht angezeigt werden. Dieser Computer verfügt möglicherweise über zu wenig Arbeitsspeicher, um das Bild zu öffnen, oder das Bild ist beschädigt. Starten Sie den Computer neu, und öffnen Sie dann erneut die Datei. Wenn weiterhin das rote x angezeigt wird, müssen Sie das Bild möglicherweise löschen und dann erneut einfügen. Das Bild kann nicht angezeigt werden. Dieser Computer verfügt möglicherweise über zu wenig Arbeitsspeicher, um das Bild zu öffnen, oder das Bild ist beschädigt. Starten Sie den Computer neu, und öffnen Sie dann erneut die Datei. Wenn weiterhin das rote x angezeigt wird, müssen Sie das Bild möglicherweise löschen und dann erneut einfügen. Das Bild kann nicht angezeigt werden. Dieser Computer verfügt möglicherweise über zu wenig Arbeitsspeicher, um das Bild zu öffnen, oder das Bild ist beschädigt. Starten Sie den Computer neu, und öffnen Sie dann erneut die Datei. Wenn weiterhin das rote x angezeigt wird, müssen Sie das Bild möglicherweise löschen und dann erneut einfügen.

Slide 42

Slide 42 text

Aktuelle Supercomputer haben > 1.000.000 Cores > 10 PetaFLOPS Die drei derzeit größten Systeme (Nov 2014) 1.  Tianhe-2 (Guangzhou, China) 3.120.000 Cores, 33,8 PetaFLOPS 2.  Titan (ORNL, USA) 560.640 Cores, 17,5 PetaFLOPS 3.  Sequoia (LLNL, USA) 1.572.864 Cores, 17,1 PetaFLOPS > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 42 Wie groß ist „Big“? Aktuelle Supercomputer

Slide 43

Slide 43 text

Supercomputer Tianhe-2 (天河二号) DLR.de • Folie 43 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 44

Slide 44 text

Supercomputer Titan DLR.de • Folie 44 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Quelle: https://www.olcf.ornl.gov/titan/

Slide 45

Slide 45 text

Supercomputer Sequoia DLR.de • Folie 45 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Quelle: https://asc.llnl.gov/computing_resources/sequoia/

Slide 46

Slide 46 text

MPI (Message Passing Interface) •  API für Distributed-Memory-Architekturen in C, C++, Fortran, ... OpenMP (Open Multi-Processing) •  API für Shared-Memory-Architekturen in C, C++, Fortran OpenACC (Open Accelerators) •  API für heterogene CPU/GPU-Systeme in C, C++, Fortran Global Arrays Toolkit •  API für Shared-Memory-Programmierung auf Distributed-Memory- Architekturen in C, C++, Fortran und Python > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 46 High Performance Computing Programmiertechnologien

Slide 47

Slide 47 text

Architektur •  Viele Core pro Node •  Geeignet für Prozessierung von Datenströmen (viele parallele unabhängige Datenpunkte) Programmiertechnologien •  CUDA •  API von NVIDIA in C •  Python-Binding: PyCUDA •  OpenCL •  Offenes Framework für heterogene Systeme •  Python-Binding: PyOpenCL > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 47 GPGPU General-purpose computing on graphics processing units Bild: NVIDIA

Slide 48

Slide 48 text

Just-in-time-Compiler •  Annotationen •  Nutzt LLVM > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 48 Numba Optimierungs-Compiler für Python

Slide 49

Slide 49 text

Free-Wake (DLR) •  Simulation dreidimensionaler Strömungen um einen aktiv gesteuerten Rotor eines Helikopters •  Code entwickelt 1994-1996 •  MPI-parallelisiert in Fortran •  Aufwendige Performance-Optimierung 2013-2014 •  MPI und Open ACC > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 49 Beispiel Free-Wake Simulation von Hubschrauber-Rotoren

Slide 50

Slide 50 text

Visualisierung der Wirbel DLR.de • Folie 50 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 51

Slide 51 text

Kern-Schleifen von Free-Wake (Standard Python) DLR.de • Folie 51 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 for iblades in range(numberOfBlades): for iradial in range(1, dimensionInRadialDirection): for iazimutal in range(dimensionInAzimualDirectionTotal): for i1 in range(len(vx[0])): for i2 in range(len(vx[0][0])): for i3 in range(len(vx[0][0][0])): # wilin-Aufruf 1 for iblades in range(numberOfBlades): for iradial in range(dimensionInRadialDirection): for iazimutal in range(1, dimensionInAzimualDirectionTotal): for i1 in range(len(vx[0])): for i2 in range(len(vx[0][0])): for i3 in range(len(vx[0][0][0])): # wilin-Aufruf 2 for iDir in range(3): for i in range(numberOfBlades): for j in range(dimensionInRadialDirection): for k in range(dimensionInAzimualDirectionTotal): x[iDir][i][j][k] = x[iDir][i][j][k] + dt * vx[iDir][i][j][k]

Slide 52

Slide 52 text

Vergleich der hoch-optimierten Fortran-Version mit parallelen Python-Versionen •  Multi-core CPUs •  Cython mit OpenMP •  Python-Bindings für Global Array Toolkit •  GPGPUs •  NumbaPro > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 52 Free-Wake Performance-Vergleich Fortran – Python

Slide 53

Slide 53 text

Performance-Tests Single-Core Performance (Xeon E5645, 6 Cores) DLR.de • Folie 53 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 54

Slide 54 text

Performance-Tests Multi-Core Performance (Xeon E5645, 6 Cores) DLR.de • Folie 54 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 55

Slide 55 text

Performance-Tests GPGPU Perf. (NVIDIA Tesla C2075, 448 CUDA-Cores) DLR.de • Folie 55 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 56

Slide 56 text

Neue Rechnerarchitekturen Quantencomputer DLR.de • Folie 56 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 •  Adiabatische Quantencomputer Bilder: NASA

Slide 57

Slide 57 text

Big Applications „Killer“-Applikationen in Wissenschaft und Technologie > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 57

Slide 58

Slide 58 text

Viele kommerzielle Anwendungen sind noch Standard •  Microsoft Excel •  MATLAB •  IDL •  Fortran-Compiler Der Weg nach Python... •  Open Source •  Einheitliche Sprache für viele Anwendungsgebiete > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 58 Wichtige Anwendungssoftware Wissenschaft und Technik

Slide 59

Slide 59 text

Wesentliche Funktionen •  Tabellen •  Sortier-, Gruppier-, Filterfunktionen •  Pivot-Tabellen •  Diagramme Python-Alternative •  IPython •  pandas > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 59 Microsoft Excel Tabellenkalkulation

Slide 60

Slide 60 text

Wesentliche Funktionen •  Eigene proprietäre Programmiersprache •  Viele Anwendungs-Toolboxes z.B. Statistik, Signal- und Bildverarbeitung Python-Alternative •  NumPy •  Matplotlib Nützliche Quelle: wiki.scipy.org/NumPy_for_Matlab_Users > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 60 The MathWorks MATLAB Numerische Matrixberechnungen

Slide 61

Slide 61 text

Wesentliche Funktionen •  Array-basierte Programmiersprache •  Gute Bildverarbeitungsfunktionen Python-Alternative •  IDL-nach-Python-Compiler PIKE > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 61 IDL – Interactive Data Language Analyse und Visualisierung von Daten

Slide 62

Slide 62 text

PIKE Beispiel-Codes DLR.de • Folie 62 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 ;; Simple image/ plotting and graphics tests pro MRI_demo ;Load demo data file file = filepath("mri500x300x5.dat", subdirectory=["data"]) print,file device, decomposed=0 loadct, 3 openr, lun, file, /get_lun ;Associate a variable with a data file img = assoc(lun, bytarr(500, 300)) !P.multi=[0,0,0,0] window, 0, xsize=500, ysize=300, title='MRI Demo - Flicker Loop' ;Display the five images in a loop for j=0, 2 do begin for i=0, 4 do begin tvscl, img[i] wait, 0.1 endfor endfor . . .

Slide 63

Slide 63 text

PIKE Beispiel-Codes DLR.de • Folie 63 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 import numpy as np import pike def mri_demo( ): #Load demo data file pike.setArrayOrder("0and1") # expected array ordering # %; Define detected undefined variables lun = 0 file = pike.filepath("mri500x300x5.dat”, subdirectory=pike.catarr(["data"])) pike.print_(file) pike.device(decomposed=0) pike.loadct(3) lun = pike.openr(lun, file, get_lun=True) #Associate a variable with a data file img = pike.assoc(lun, pike.bytarr(500, 300)) pike.sysv.P.multi = pike.catarr([0, 0, 0, 0]) pike.window(0, title='MRI Demo - Flicker Loop', xsize=500, ysize=300) #Display the five images in a loop for j in xrange(np.int16(0), (np.int16(2))+(1)): for i in xrange(np.int16(0), (np.int16(4))+(1)): pike.tvscl(img[i]) pike.wait(0.1) . . .

Slide 64

Slide 64 text

PIKE Beispiel-Codes DLR.de • Folie 64 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Bild: Torsion Analytics

Slide 65

Slide 65 text

Entwerfen von Raumfahrzeugen DLR.de • Folie 65 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 66

Slide 66 text

SpaceLiner •  Konzeptstudie für Passagiertransport •  Mittelding zwischen Flugzeug und Raumschiff •  Langstreckenflüge mit Hyperschallgeschwindigkeit (> Mach 5) •  Strecke Europa – Australien in 90 Min. •  Hochaufstieg mit Booster auf ca. 85 km •  Gleitflug des Orbiters mit ca. Mach 20 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 66 Entwerfen von Raumfahrzeugen Beispiel: Der DLR SpaceLiner

Slide 67

Slide 67 text

Simulation mit verschiedenen Wärmeschutzsystemen •  Wasserkühlung durch Verdampfung •  Hochwärmeleitende Faserverbundstoffe > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 67 Simulation in der Entwurfsphase Wärmeentwicklung beim Wiedereintritt

Slide 68

Slide 68 text

Wärmeschutzsystem Magnetohydrodynamik mit supraleitenden Magneten DLR.de • Folie 68 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 69

Slide 69 text

Lorentzkraft in der Natur Aurora Borealis DLR.de • Folie 69 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Bild: Alexander Gerst (https://twitter.com/Astro_Alex/status/507212904689848320)

Slide 70

Slide 70 text

Lorentzkraft in der Raumfahrt Schutzschilde DLR.de • Folie 70 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 71

Slide 71 text

Wie entwirft man Raumschiffe? DLR.de • Folie 71 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 72

Slide 72 text

> Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 72 Simulations-Workflow Vernetzung der Fachdisziplinen Geometrie Aerodynamik Thermal- management Subsystem- massen Struktur

Slide 73

Slide 73 text

> Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 73 Simulations-Workflow Mit Optimierung Geometrie Aerodynamik Thermal- management Subsystem- massen Struktur Optimierer

Slide 74

Slide 74 text

> Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 DLR.de • Folie 74 Simulations-Workflow Integration in eine Simulationsumgebung

Slide 75

Slide 75 text

Simulationsumgebung RCE DLR.de • Folie 75 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014

Slide 76

Slide 76 text

Vielen Dank! DLR.de • Folie 76 > Python Unconference Hamburg 2014 > Andreas Schreiber • Big Python > 29.11.2014 Fragen? [email protected] www.DLR.de/sc | @onyame