SlideShare una empresa de Scribd logo
1 de 49
Python in der Luft- und Raumfahrt Python User Group Köln Andreas Schreiber  [email_address] Deutsches Zentrum für Luft- und Raumfahrt e.V., Köln-Porz
[object Object],[object Object]
Zahlen zum DLR ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],   Köln - Porz    Lampoldshausen    Stuttgart    Oberpfaffenhofen Braunschweig       Göttingen Berlin- -   Adlershof    Bonn Trauen      Hamburg    Neustrelitz Weilheim    Berlin- Charlottenburg      Sankt Augustin    Darmstadt Bremen   
Software-Projekte in Luft- und Raumfahrt Klassifizierung ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Einsatzfelder von Python ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Warum Python in der Luft- und Raumfahrt? Argumente, um Ingenieure zu überzeugen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],“ Python has the cleanest, most-scientist- or engineer friendly syntax and semantics.”   (Paul F. Dubois. Ten good practices in scientific programming. Comp. In Sci. Eng., Jan/Feb 1999, pp.7-11)
Beispiele für Python-Einsatz und -Anwendungen
Virtual Lab Web-basiertes Repository für wissenschaftliche Codes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Virtual Lab Integration von Codes ,[object Object],[object Object],[object Object],[object Object],[object Object],ID(na= 'Lambda' , pe= '_NF and _Lambda_use' , ty= 'FloatType' , de= '0.5' , ce= 'Lambda > 0.0' , un= 'mu_m' , an= 'Input wavelength' ),
Datenmanagement Ausgangssituation Unabhängige Einzellösungen
DataFinder Technisch-wissenschaftliches Datenmanagement Integriertes Datenmanagement CFD Analysis Grid generation Solution Visualisation CFD Analyse Netzgenerierung Lösung Visualisierung CAD - Model Experiment CAD - Modell Experiment Experimental Analysis Experimentelle Analyse CFD  - CAD  - Modell Customer e.g . Airbus Kunden z.B. . Airbus DataFinder Ergebnisse • Reports • Daten • Bilder • Filme Ergebnisse • Reports • Daten • Bilder • Filme
DataFinder Speichertechnologien und Protokolle ,[object Object],DataFinder WebDAV FTP- Server TSM OpenAFS FTP AFS TSM Lokale Verzeichnisse und Dateien Data-Stores Simulation Simulation Geometry CATIA Geometry CATIA Visualisation FieldView Visualisation FieldView Grid Generation SetupGrid Grid Generation SetupGrid Solver : TAU Flow solution Solver : TAU Flow solution Dateien WebDAV Meta- daten Metadaten-Server
DataFinder Software Graphische Benutzeroberfläche User Client Administrator Client Implementierung in Python und PyQt
Skripte Erweiterung, Automatisierung und Anpassung ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Beispiel-Skript Datei-Download und Start einer Applikation # @scrtitle: Execute It! # @scrdesc: Download the selected file and try to execute it. from  datafinder.application  import  ExternalFacade from  guitools.easygui  import  * import  os, sys, glob, time, pickle, string from  tempfile  import  * from  win32api  import  * # Get instance of DataFinder ExternalFacade to # access DataFinder API facade = ExternalFacade.getInstance() # Get the currently selected collection in the # DataFinder Server-View (WebDAV-Tree) resource = facade.getSelectedResource() if  resource != None: tmpFile = mktemp(ressource.name) facade.downloadFile(resource, tmpFile) if  os.path.exists(tmpFile): ShellExecute(0, None, tmpFile,  "" ,  "" , 1) else : msgbox( "No file selected to execute." )
Erweiterung der GUI Customizing mit Python-Skripten ,[object Object],[object Object],[object Object],[object Object],[object Object],1 2 3 4 5
DataFinder Vom Java-Prototyp zum Python-Produkt… ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Steuerung von großen Simulationen  Einführung ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Komplexe Workflows Beispiele aus der Praxis ,[object Object],[object Object],[object Object],[object Object],[object Object],Orbit Model Atmosphere Model Instrument Model Downlink Model L0 Processor L1b Processor L2 Processor L2 Processor Satellitendaten- Prozessing PCrash PCrash PCrash Script DesParO Permas PView PView PView Medina SFE Concept Nasbif Pammed Kopf positionierung DesParO GUI Parameter ASCII File mit Ergebnissen 1 2 n Struktur-Optimierung Geometry Definition Main Analysis Subroutine Structures Aerodynamics Stability &  Control Propulsion Induced Drag Friction Drag Wave Drag Field  Perf . Weights Wing  Weight Noise Flight  Perf . Fuel Volume Objective Function & Constraints Optimizer (DOT) Design Variables Balance SFC Engine  Weight Engine/Aero  Drag Geometry Definition Geometry Definition Main Analysis Subroutine Structures Structures Aerodynamics Stability &  Control Stability &  Control Propulsion Propulsion Induced Drag Friction Drag Wave Drag Field  Perf . . Weights Weights Wing  Weight Noise Noise Flight  Perf . Flight  Perf . Fuel Volume Fuel Volume Objective Function & Constraints Objective Function & Constraints Optimizer (DOT) Design Variables Balance Balance SFC Engine  Weight Engine/Aero  Drag Engine/Aero   Drag Flugzeug-Design
Integrations- uns Simulationsumgebung TENT System zur Steuerung komplexer Simulationen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Beispiel: Gekoppelte Simulation in der Luftfahrt Flugmanöverberechnung ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Kopplungsmanager-Implementierung in TENT
Beispiel Kopplungs- skript # <<import statements>> def  start(base,steps): fireEvents.fireStart(steps) dialogID = notificator.showProgressMonitor( &quot;Simulation progress&quot; ,  &quot;&quot; , 0, steps) notificator.setProgress(dialogID,0) couplingDataList =  &quot;&quot; global stopFlag, pauseFlag stopFlag, pauseFlag = 0, 0 couplingDataList = simulaWrapper.get( &quot;FM_DATA&quot; ) tauWrapper.set( &quot;fm_data &quot;, couplingDataList) tauWrapper.advance() tauWrapper.set( &quot;fm_data&quot; , couplingDataList) tauWrapper.advance() couplingDataList = tauWrapper.get( &quot;fm_values&quot; ) tauWrapper.advance()  simulaWrapper.set( &quot;FM_DATA&quot; , couplingDataList) simulaWrapper.advance() for  i  in  xrange(steps): if  stopFlag == 1:  tauWrapper.stop() simulaWrapper.stop() break while  pauseFlag == 1: time.sleep(1) couplingDataList = simulaWrapper.get(&quot;FM_DATA&quot;) tauWrapper.set( &quot;fm_data&quot; ,  couplingDataList) tauWrapper.advance() couplingDataList = tauWrapper.get( &quot;fm_values&quot; ) tauWrapper.advance() simulaWrapper.set( &quot;FM_DATA&quot; , couplingDataList) simulaWrapper.advance() notificator.setProgress(dialogID,step) notificator.showMessageDialog( &quot;Simulation is finished&quot; , MessageType.INFORMATION) def  stop(base,steps): global stopFlag stopFlag = 1 def  pause(base,steps): global pauseFlag pauseFlag = 1 - pauseFlag
Ergebnis der Rechnungen (1) Strömung
Ergebnis der Rechnungen (2) Struktur ,[object Object]
Beispiel: Gekoppelte Simulation in der Raumfahrt  Wiedereintrittssimulation ,[object Object],[object Object]
Wiedereintrittssimulation Model ,[object Object],[object Object]
Simulationsumgebung  ifls High-Performance-Kopplungsumgebung   ,[object Object],[object Object]
Temperature-Writer (NetCDF) CFD-Analysis (Tau-Code) Heatflux-Reader (NetCDF) Heatflux on the coupling surface Fluid Reader (NetCDF) Temperature Transfer Structure Reader (*.bdf) Heatflux Transfer Heatflux-Writer (*.bdf) CS-Analysis (Nastran) Temperature-Reader (OP2) Iteration Control
Ergebnis der Rechnung Temperaturverteilung
Visualisierung Andere Beispiele für Visualisierungen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Airport Environment
Airport Environment
Airport Environment
Skript-Schnittstellen für numerische Software Einfache Benutzung komplexer Codes ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Fortran/C Modul Wrapper für Variablen  und Funktionen Python-Skript
elsA CFD-Löser mit Python-Interface ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
elsA Beispiel für Nutzung des Python-API from  elsA_user  import  * # STEP 1 : PROBLEM CREATION nozzle = cfdpb(name= ’nozzle’ ) nozzle.set_block_creation_mode( ’automatic’ ) nozzle.set( ’automatic_block_gen’ ,  ’db_directory’ ) # MESH nozzle.set( ’cfd_mesh_dir’ ,  ’Nozzle_m’ ) # Flow initialisation nozzle.set( ’cfd_flow_ini_dir’ ,  ’Nozzle_i’ ) # (Physical) MODEL mod_nozzle = model(name= ’mod_nozzle’ ) mod_nozzle.fluid =  ’pg’ mod_nozzle.phymod =  ’euler’ # NUMERICS num_nozzle = numerics(name =  ’nozzle_num’) num_nozzle.flux =  ’jameson’ num_nozzle.artviscosity =  ’dissca’ # STEP 2 : COMPUTATION nozzle.compute()
DLR TAU-Code CFD-Löser  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
TAU-Architektur & Python   t=T T+dt data access in memory MPI CPU-j CPU-k CPU-i MPI TAU Data Manager TAU Python  interface data extraction adaptation (re-) partitioning deformation solver preprocessor transition prediction file-IO
Eingebettet als Skript-Interpreter in großen Systemen und Produkten ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Beispiel: Airbus-Tool PPP Daten-Mapping beim Flugzeugentwurf ,[object Object],[object Object],[object Object],[object Object],[object Object]
Qualitätssicherung bei wissenschaftlicher Software Ein weites Anwendungsgebiet für Python ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Test-System für Strömungslöser (1) Erste Version aus dem Jahr 1998 ,[object Object],[object Object]
Test-System für Strömungslöser (2) Aktuelle Version aus dem Jahr 2004 ,[object Object],[object Object]
Entwicklungsumgebung im DLR Server und Web-Schnittstellen Wiki MoinMoin Issue-Tracking MANTIS IDE Eclipse Repository Browser ViewVC Build Status CruiseControl http://cheeseshop.python.org/pypi/svnchecker Automatic Builds Check
Häufig verwendete Basis-Software Zwei wichtige   Beispiele ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Schlussbemerkungen ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
 

Más contenido relacionado

Similar a Python in der Luft- und Raumfahrt

Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Jürg Stuker
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & ToolsUlrich Krause
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
Technologieraum übergreifende Programmierung
Technologieraum übergreifende ProgrammierungTechnologieraum übergreifende Programmierung
Technologieraum übergreifende ProgrammierungFalk Hartmann
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenChristian Münch
 
Freie Software in der (Groß-)Forschung
Freie Software in der (Groß-)ForschungFreie Software in der (Groß-)Forschung
Freie Software in der (Groß-)ForschungAndreas Schreiber
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Gregor Biswanger
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringQAware GmbH
 
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...Amazon Web Services
 
Azure Notebooks
Azure NotebooksAzure Notebooks
Azure NotebooksTEitelberg
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for BeginnersUlrich Krause
 
German Aerospace Congress
German Aerospace CongressGerman Aerospace Congress
German Aerospace CongressMarkus Litz
 
ScriptRunner - Eine Einführung
ScriptRunner - Eine EinführungScriptRunner - Eine Einführung
ScriptRunner - Eine EinführungHeiko Brenn
 
Kennst du ein Unternehmen, dass erfolgreich die QS outtasked hat?“
Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“
Kennst du ein Unternehmen, dass erfolgreich die QS outtasked hat?“hpaustria
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenBjoern Reinhold
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Erp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinausErp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinausDedagroup
 
Internet of Things Architecture
Internet of Things ArchitectureInternet of Things Architecture
Internet of Things ArchitectureChristian Waha
 

Similar a Python in der Luft- und Raumfahrt (20)

Top 10 Internet Trends 2001
Top 10 Internet Trends 2001Top 10 Internet Trends 2001
Top 10 Internet Trends 2001
 
Templates, Code & Tools
Templates, Code & ToolsTemplates, Code & Tools
Templates, Code & Tools
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
Technologieraum übergreifende Programmierung
Technologieraum übergreifende ProgrammierungTechnologieraum übergreifende Programmierung
Technologieraum übergreifende Programmierung
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
Freie Software in der (Groß-)Forschung
Freie Software in der (Groß-)ForschungFreie Software in der (Groß-)Forschung
Freie Software in der (Groß-)Forschung
 
JavaFX Real-World Apps
JavaFX Real-World AppsJavaFX Real-World Apps
JavaFX Real-World Apps
 
TDD für Testmuffel
TDD für TestmuffelTDD für Testmuffel
TDD für Testmuffel
 
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
 
Make Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform EngineeringMake Developers Fly: Principles for Platform Engineering
Make Developers Fly: Principles for Platform Engineering
 
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...
AWS Initiate Berlin - Maschinelles Lernen - Chancen, Werkzeuge und Beispiel-A...
 
Azure Notebooks
Azure NotebooksAzure Notebooks
Azure Notebooks
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
German Aerospace Congress
German Aerospace CongressGerman Aerospace Congress
German Aerospace Congress
 
ScriptRunner - Eine Einführung
ScriptRunner - Eine EinführungScriptRunner - Eine Einführung
ScriptRunner - Eine Einführung
 
Kennst du ein Unternehmen, dass erfolgreich die QS outtasked hat?“
Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“
Kennst du ein Unternehmen, dass erfolgreich die QS outtasked hat?“
 
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge UnternehmenGewinnung von OPEN SOURCE Techniken für junge Unternehmen
Gewinnung von OPEN SOURCE Techniken für junge Unternehmen
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Erp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinausErp in der zukunft: über die funktionen hinaus
Erp in der zukunft: über die funktionen hinaus
 
Internet of Things Architecture
Internet of Things ArchitectureInternet of Things Architecture
Internet of Things Architecture
 

Más de Andreas Schreiber

Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
Provenance-based Security Audits and its Application to COVID-19 Contact Trac...Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
Provenance-based Security Audits and its Application to COVID-19 Contact Trac...Andreas Schreiber
 
Visualization of Software Architectures in Virtual Reality and Augmented Reality
Visualization of Software Architectures in Virtual Reality and Augmented RealityVisualization of Software Architectures in Virtual Reality and Augmented Reality
Visualization of Software Architectures in Virtual Reality and Augmented RealityAndreas Schreiber
 
Provenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructureProvenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructureAndreas Schreiber
 
Raising Awareness about Open Source Licensing at the German Aerospace Center
Raising Awareness about Open Source Licensing at the German Aerospace CenterRaising Awareness about Open Source Licensing at the German Aerospace Center
Raising Awareness about Open Source Licensing at the German Aerospace CenterAndreas Schreiber
 
Open Source Licensing for Rocket Scientists
Open Source Licensing for Rocket ScientistsOpen Source Licensing for Rocket Scientists
Open Source Licensing for Rocket ScientistsAndreas Schreiber
 
Interactive Visualization of Software Components with Virtual Reality Headsets
Interactive Visualization of Software Components with Virtual Reality HeadsetsInteractive Visualization of Software Components with Virtual Reality Headsets
Interactive Visualization of Software Components with Virtual Reality HeadsetsAndreas Schreiber
 
Provenance for Reproducible Data Science
Provenance for Reproducible Data ScienceProvenance for Reproducible Data Science
Provenance for Reproducible Data ScienceAndreas Schreiber
 
Visualizing Provenance using Comics
Visualizing Provenance using ComicsVisualizing Provenance using Comics
Visualizing Provenance using ComicsAndreas Schreiber
 
Nachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
Nachvollziehbarkeit mit Hinblick auf Privacy-VerletzungenNachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
Nachvollziehbarkeit mit Hinblick auf Privacy-VerletzungenAndreas Schreiber
 
Reproducible Science with Python
Reproducible Science with PythonReproducible Science with Python
Reproducible Science with PythonAndreas Schreiber
 
A Provenance Model for Quantified Self Data
A Provenance Model for Quantified Self DataA Provenance Model for Quantified Self Data
A Provenance Model for Quantified Self DataAndreas Schreiber
 
Tracking after Stroke: Doctors, Dogs and All The Rest
Tracking after Stroke: Doctors, Dogs and All The RestTracking after Stroke: Doctors, Dogs and All The Rest
Tracking after Stroke: Doctors, Dogs and All The RestAndreas Schreiber
 
High Throughput Processing of Space Debris Data
High Throughput Processing of Space Debris DataHigh Throughput Processing of Space Debris Data
High Throughput Processing of Space Debris DataAndreas Schreiber
 
Bericht von der QS15 Conference & Exposition
Bericht von der QS15 Conference & ExpositionBericht von der QS15 Conference & Exposition
Bericht von der QS15 Conference & ExpositionAndreas Schreiber
 
Telemedizin: Gesundheit, messbar für jedermann
Telemedizin: Gesundheit, messbar für jedermannTelemedizin: Gesundheit, messbar für jedermann
Telemedizin: Gesundheit, messbar für jedermannAndreas Schreiber
 
Quantified Self mit Wearable Devices und Smartphone-Sensoren
Quantified Self mit Wearable Devices und Smartphone-SensorenQuantified Self mit Wearable Devices und Smartphone-Sensoren
Quantified Self mit Wearable Devices und Smartphone-SensorenAndreas Schreiber
 
Example Blood Pressure Report of BloodPressureCompanion
Example Blood Pressure Report of BloodPressureCompanionExample Blood Pressure Report of BloodPressureCompanion
Example Blood Pressure Report of BloodPressureCompanionAndreas Schreiber
 

Más de Andreas Schreiber (20)

Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
Provenance-based Security Audits and its Application to COVID-19 Contact Trac...Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
Provenance-based Security Audits and its Application to COVID-19 Contact Trac...
 
Visualization of Software Architectures in Virtual Reality and Augmented Reality
Visualization of Software Architectures in Virtual Reality and Augmented RealityVisualization of Software Architectures in Virtual Reality and Augmented Reality
Visualization of Software Architectures in Virtual Reality and Augmented Reality
 
Provenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructureProvenance as a building block for an open science infrastructure
Provenance as a building block for an open science infrastructure
 
Raising Awareness about Open Source Licensing at the German Aerospace Center
Raising Awareness about Open Source Licensing at the German Aerospace CenterRaising Awareness about Open Source Licensing at the German Aerospace Center
Raising Awareness about Open Source Licensing at the German Aerospace Center
 
Open Source Licensing for Rocket Scientists
Open Source Licensing for Rocket ScientistsOpen Source Licensing for Rocket Scientists
Open Source Licensing for Rocket Scientists
 
Interactive Visualization of Software Components with Virtual Reality Headsets
Interactive Visualization of Software Components with Virtual Reality HeadsetsInteractive Visualization of Software Components with Virtual Reality Headsets
Interactive Visualization of Software Components with Virtual Reality Headsets
 
Provenance for Reproducible Data Science
Provenance for Reproducible Data ScienceProvenance for Reproducible Data Science
Provenance for Reproducible Data Science
 
Visualizing Provenance using Comics
Visualizing Provenance using ComicsVisualizing Provenance using Comics
Visualizing Provenance using Comics
 
Quantified Self Comics
Quantified Self ComicsQuantified Self Comics
Quantified Self Comics
 
Nachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
Nachvollziehbarkeit mit Hinblick auf Privacy-VerletzungenNachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
Nachvollziehbarkeit mit Hinblick auf Privacy-Verletzungen
 
Reproducible Science with Python
Reproducible Science with PythonReproducible Science with Python
Reproducible Science with Python
 
Python at Warp Speed
Python at Warp SpeedPython at Warp Speed
Python at Warp Speed
 
A Provenance Model for Quantified Self Data
A Provenance Model for Quantified Self DataA Provenance Model for Quantified Self Data
A Provenance Model for Quantified Self Data
 
Open Source im DLR
Open Source im DLROpen Source im DLR
Open Source im DLR
 
Tracking after Stroke: Doctors, Dogs and All The Rest
Tracking after Stroke: Doctors, Dogs and All The RestTracking after Stroke: Doctors, Dogs and All The Rest
Tracking after Stroke: Doctors, Dogs and All The Rest
 
High Throughput Processing of Space Debris Data
High Throughput Processing of Space Debris DataHigh Throughput Processing of Space Debris Data
High Throughput Processing of Space Debris Data
 
Bericht von der QS15 Conference & Exposition
Bericht von der QS15 Conference & ExpositionBericht von der QS15 Conference & Exposition
Bericht von der QS15 Conference & Exposition
 
Telemedizin: Gesundheit, messbar für jedermann
Telemedizin: Gesundheit, messbar für jedermannTelemedizin: Gesundheit, messbar für jedermann
Telemedizin: Gesundheit, messbar für jedermann
 
Quantified Self mit Wearable Devices und Smartphone-Sensoren
Quantified Self mit Wearable Devices und Smartphone-SensorenQuantified Self mit Wearable Devices und Smartphone-Sensoren
Quantified Self mit Wearable Devices und Smartphone-Sensoren
 
Example Blood Pressure Report of BloodPressureCompanion
Example Blood Pressure Report of BloodPressureCompanionExample Blood Pressure Report of BloodPressureCompanion
Example Blood Pressure Report of BloodPressureCompanion
 

Python in der Luft- und Raumfahrt

  • 1. Python in der Luft- und Raumfahrt Python User Group Köln Andreas Schreiber [email_address] Deutsches Zentrum für Luft- und Raumfahrt e.V., Köln-Porz
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Beispiele für Python-Einsatz und -Anwendungen
  • 8.
  • 9.
  • 11. DataFinder Technisch-wissenschaftliches Datenmanagement Integriertes Datenmanagement CFD Analysis Grid generation Solution Visualisation CFD Analyse Netzgenerierung Lösung Visualisierung CAD - Model Experiment CAD - Modell Experiment Experimental Analysis Experimentelle Analyse CFD - CAD - Modell Customer e.g . Airbus Kunden z.B. . Airbus DataFinder Ergebnisse • Reports • Daten • Bilder • Filme Ergebnisse • Reports • Daten • Bilder • Filme
  • 12.
  • 13. DataFinder Software Graphische Benutzeroberfläche User Client Administrator Client Implementierung in Python und PyQt
  • 14.
  • 15. Beispiel-Skript Datei-Download und Start einer Applikation # @scrtitle: Execute It! # @scrdesc: Download the selected file and try to execute it. from datafinder.application import ExternalFacade from guitools.easygui import * import os, sys, glob, time, pickle, string from tempfile import * from win32api import * # Get instance of DataFinder ExternalFacade to # access DataFinder API facade = ExternalFacade.getInstance() # Get the currently selected collection in the # DataFinder Server-View (WebDAV-Tree) resource = facade.getSelectedResource() if resource != None: tmpFile = mktemp(ressource.name) facade.downloadFile(resource, tmpFile) if os.path.exists(tmpFile): ShellExecute(0, None, tmpFile, &quot;&quot; , &quot;&quot; , 1) else : msgbox( &quot;No file selected to execute.&quot; )
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 23. Beispiel Kopplungs- skript # <<import statements>> def start(base,steps): fireEvents.fireStart(steps) dialogID = notificator.showProgressMonitor( &quot;Simulation progress&quot; , &quot;&quot; , 0, steps) notificator.setProgress(dialogID,0) couplingDataList = &quot;&quot; global stopFlag, pauseFlag stopFlag, pauseFlag = 0, 0 couplingDataList = simulaWrapper.get( &quot;FM_DATA&quot; ) tauWrapper.set( &quot;fm_data &quot;, couplingDataList) tauWrapper.advance() tauWrapper.set( &quot;fm_data&quot; , couplingDataList) tauWrapper.advance() couplingDataList = tauWrapper.get( &quot;fm_values&quot; ) tauWrapper.advance() simulaWrapper.set( &quot;FM_DATA&quot; , couplingDataList) simulaWrapper.advance() for i in xrange(steps): if stopFlag == 1: tauWrapper.stop() simulaWrapper.stop() break while pauseFlag == 1: time.sleep(1) couplingDataList = simulaWrapper.get(&quot;FM_DATA&quot;) tauWrapper.set( &quot;fm_data&quot; , couplingDataList) tauWrapper.advance() couplingDataList = tauWrapper.get( &quot;fm_values&quot; ) tauWrapper.advance() simulaWrapper.set( &quot;FM_DATA&quot; , couplingDataList) simulaWrapper.advance() notificator.setProgress(dialogID,step) notificator.showMessageDialog( &quot;Simulation is finished&quot; , MessageType.INFORMATION) def stop(base,steps): global stopFlag stopFlag = 1 def pause(base,steps): global pauseFlag pauseFlag = 1 - pauseFlag
  • 24. Ergebnis der Rechnungen (1) Strömung
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Temperature-Writer (NetCDF) CFD-Analysis (Tau-Code) Heatflux-Reader (NetCDF) Heatflux on the coupling surface Fluid Reader (NetCDF) Temperature Transfer Structure Reader (*.bdf) Heatflux Transfer Heatflux-Writer (*.bdf) CS-Analysis (Nastran) Temperature-Reader (OP2) Iteration Control
  • 30. Ergebnis der Rechnung Temperaturverteilung
  • 31.
  • 35.
  • 36.
  • 37. elsA Beispiel für Nutzung des Python-API from elsA_user import * # STEP 1 : PROBLEM CREATION nozzle = cfdpb(name= ’nozzle’ ) nozzle.set_block_creation_mode( ’automatic’ ) nozzle.set( ’automatic_block_gen’ , ’db_directory’ ) # MESH nozzle.set( ’cfd_mesh_dir’ , ’Nozzle_m’ ) # Flow initialisation nozzle.set( ’cfd_flow_ini_dir’ , ’Nozzle_i’ ) # (Physical) MODEL mod_nozzle = model(name= ’mod_nozzle’ ) mod_nozzle.fluid = ’pg’ mod_nozzle.phymod = ’euler’ # NUMERICS num_nozzle = numerics(name = ’nozzle_num’) num_nozzle.flux = ’jameson’ num_nozzle.artviscosity = ’dissca’ # STEP 2 : COMPUTATION nozzle.compute()
  • 38.
  • 39. TAU-Architektur & Python t=T T+dt data access in memory MPI CPU-j CPU-k CPU-i MPI TAU Data Manager TAU Python interface data extraction adaptation (re-) partitioning deformation solver preprocessor transition prediction file-IO
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45. Entwicklungsumgebung im DLR Server und Web-Schnittstellen Wiki MoinMoin Issue-Tracking MANTIS IDE Eclipse Repository Browser ViewVC Build Status CruiseControl http://cheeseshop.python.org/pypi/svnchecker Automatic Builds Check
  • 46.
  • 47.
  • 48.  
  • 49.