Python in der Luft- und Raumfahrt

4.252 Aufrufe

Veröffentlicht am

Vortrag auf der Python User Group Köln über Anwendungen von Python in der Luft- und Raumfahrt.

Veröffentlicht in: Technologie
0 Kommentare
2 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
4.252
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
51
Aktionen
Geteilt
0
Downloads
21
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Python in der Luft- und Raumfahrt

    1. 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. 2. <ul><li>Das DLR </li></ul><ul><li>Deutsches Zentrum für Luft- und Raumfahrt Raumfahrt-Agentur der Bundesrepublik Deutschland </li></ul>
    3. 3. Zahlen zum DLR <ul><li>DLR ist die größte deutsche Forschungseinrichtung </li></ul><ul><li>5.100 Mitarbeiter arbeiten in 27 Forschungsinstituten und Einrichtungen </li></ul><ul><ul><li> 9 Standorten, </li></ul></ul><ul><ul><li>7 Außenstellen. </li></ul></ul><ul><li>Kernkompetenzen des DLR liegt im Bereich Ingenieurwissenschaften </li></ul><ul><li>Mehr als 1000 DLR-Mitarbeiter entwickeln Software </li></ul><ul><li> DLR ist eines der größten Softwarehäuser Deutschlands! </li></ul> Köln - Porz  Lampoldshausen  Stuttgart  Oberpfaffenhofen Braunschweig   Göttingen Berlin- -  Adlershof  Bonn Trauen   Hamburg  Neustrelitz Weilheim  Berlin- Charlottenburg   Sankt Augustin  Darmstadt Bremen 
    4. 4. Software-Projekte in Luft- und Raumfahrt Klassifizierung <ul><li>Software für missionskritische Systeme </li></ul><ul><ul><li>„ Embedded“ / Real-Time Software in Satelliten, Flugzeugen, ISS </li></ul></ul><ul><li>Software mit großen Userzahlen </li></ul><ul><ul><li>Internet, Intranet, Email, Webshop für Satellitendaten </li></ul></ul><ul><li>Software mit großem Anteil an der Wertschöpfungskette </li></ul><ul><ul><li>Prozessunterstützung, Versuchsdatenhandling, Modellierungsumgebungen etc. </li></ul></ul><ul><li>Software deren Effizienz sich unmittelbar auf die Betriebskosten auswirkt </li></ul><ul><ul><li>Numerische Modellierung, Simulationscodes </li></ul></ul>
    5. 5. Einsatzfelder von Python <ul><li>Wissenschaftliche Software und Prototypen </li></ul><ul><li>Selten Einsatz in Produkten </li></ul><ul><li>Kein Einsatz in kritischen Systemen </li></ul><ul><li>Beispiele für Einsatzfelder von Python </li></ul><ul><ul><li>Web-Anwendungen </li></ul></ul><ul><ul><li>Datenmanagement </li></ul></ul><ul><ul><li>Steuerung von (großen) Simulationen </li></ul></ul><ul><ul><li>Visualisierung </li></ul></ul><ul><ul><li>Skript-Schnittstellen für numerische Software </li></ul></ul><ul><ul><li>Eingebettet als Skript-Interpreter in großen Systemen und Produkten </li></ul></ul><ul><ul><li>Test und Qualitätssicherung von wissenschaftlicher Software </li></ul></ul>
    6. 6. Warum Python in der Luft- und Raumfahrt? Argumente, um Ingenieure zu überzeugen <ul><li>Beschreibung </li></ul><ul><ul><li>Objektorientierte vollständige Programmiersprache </li></ul></ul><ul><ul><li>Klare, einfache Syntax </li></ul></ul><ul><ul><li>Portabel, verfügbar auf allen Plattformen mit C-Compiler </li></ul></ul><ul><li>Warum ist Python geeignet für Ingenieure und industrielle Anwender? </li></ul><ul><ul><li>Sehr einfach zu lernen und zu benutzen </li></ul></ul><ul><ul><li>Erlaubt eine schnelle Entwicklung ( = geringe Entwicklungszeit) </li></ul></ul><ul><ul><li>Inherent great maintainability </li></ul></ul>“ 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)
    7. 7. Beispiele für Python-Einsatz und -Anwendungen
    8. 8. Virtual Lab Web-basiertes Repository für wissenschaftliche Codes <ul><li>Portal zur Bereitstellung wissenschaftlicher Software </li></ul><ul><li>Einfache numerische Codes werden integriert („eingestellt“) </li></ul><ul><li>Nutzer können Eingabedateien hochladen und Rechnungen starten </li></ul><ul><li>Realisiert mit ZOPE </li></ul><ul><li>Speicherung von Daten, Metadaten, Benutzer-informationen mit ZOPE Object Database, MySQL und OpenLDAP </li></ul><ul><li>http://vl.nz.dlr.de/VL </li></ul>
    9. 9. Virtual Lab Integration von Codes <ul><li>Integration von Codes geschieht durch Spezifikation von Input und Output des Codes </li></ul><ul><li>Input Description Language </li></ul><ul><ul><li>Benutzt Python als Basis </li></ul></ul><ul><li>Generierung von Eingabeelementen für numerische Werte </li></ul><ul><li>Beispiel: </li></ul>ID(na= 'Lambda' , pe= '_NF and _Lambda_use' , ty= 'FloatType' , de= '0.5' , ce= 'Lambda > 0.0' , un= 'mu_m' , an= 'Input wavelength' ),
    10. 10. Datenmanagement Ausgangssituation Unabhängige Einzellösungen
    11. 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. 12. DataFinder Speichertechnologien und Protokolle <ul><li>http://www.dlr.de/sc/datafinder </li></ul>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
    13. 13. DataFinder Software Graphische Benutzeroberfläche User Client Administrator Client Implementierung in Python und PyQt
    14. 14. Skripte Erweiterung, Automatisierung und Anpassung <ul><li>Erweiterung des DataFinder möglich durch Python-Skripte </li></ul><ul><li>Automatisierung und Anpassungen </li></ul><ul><ul><li>Daten-Migration, Daten-Import </li></ul></ul><ul><ul><li>Starten externen Applikationen (inkl. Download von Dateien) </li></ul></ul><ul><ul><li>Automatische Extraktion von Metadaten aus Berechnungsergebnissen </li></ul></ul><ul><ul><li>Wiederholte Abarbeitung einfacher Aufgaben </li></ul></ul><ul><ul><li>Erweiterung durch neue GUI-Panel </li></ul></ul>
    15. 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. 16. Erweiterung der GUI Customizing mit Python-Skripten <ul><li>Einen neuen Run anlegen </li></ul><ul><li>Den Run starten </li></ul><ul><li>Status abfragen </li></ul><ul><li>Run abbrechen </li></ul><ul><li>Übersicht über alle Runs </li></ul>1 2 3 4 5
    17. 17. DataFinder Vom Java-Prototyp zum Python-Produkt… <ul><li>Ein bissle Historie: </li></ul><ul><li>Aufgabe: Datenmanagement für ein DLR-Institut </li></ul><ul><li>Evaluation verschiedenen Tools (in „Proof-Of-Concepts“) </li></ul><ul><ul><li>Kommerzielle Tools (PDM-Systeme) </li></ul></ul><ul><ul><li>Eigenentwicklung in Form eines Prototyopen in Java </li></ul></ul><ul><li>Ergebnis </li></ul><ul><ul><li>Kommerzielle Tools zu teuer und ZU mächtig </li></ul></ul><ul><ul><li>Java hatte Probleme auf den Zielplattformen (SGI IRIX) </li></ul></ul><ul><ul><li>Grosse Begeisterung für Python als integrierte Skriptsprache </li></ul></ul><ul><li>Daher: Komplette Neuentwicklung als „Produkt“ in Python mit Qt + PyQt </li></ul><ul><li>Nutzung im DLR und in deutscher Grid-Computing-Community (D-Grid) http://dgi.d-grid.de/index.php?id=78 </li></ul>
    18. 18. Steuerung von großen Simulationen Einführung <ul><li>Viele Probleme erfordern komplexe numerische Simulationen oder Verarbeitungsschritte . Beispiele: </li></ul><ul><ul><li>Wiedereintritt von Raumfahrzeugen </li></ul></ul><ul><ul><li>Simulation von Flugmanövern </li></ul></ul><ul><ul><li>Prozessierung von Satellitendaten </li></ul></ul><ul><li>Immer öfter wird multidisziplinär gekoppelt simuliert </li></ul><ul><ul><li>Strömung – Struktur – Wärme – Flugmechanik – … </li></ul></ul><ul><li>Solche Rechnungen werden softwaretechnisch ständig komplexer! </li></ul><ul><ul><li>Komplexe Workflows </li></ul></ul><ul><ul><li>Nutzung von Codes mit umfangreichen Schnittstellen </li></ul></ul>
    19. 19. Komplexe Workflows Beispiele aus der Praxis <ul><li>Softwaretechnische Aufgaben: </li></ul><ul><li>Anstoßen unterschiedlichster Codes in korrekter Reihenfolge </li></ul><ul><li>Nutzung von Höchstleistungsrechnern und Clustern </li></ul><ul><li>Transferieren von Daten zwischen den Codes </li></ul><ul><li>Zusammenarbeit mit Kollegen </li></ul>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
    20. 20. Integrations- uns Simulationsumgebung TENT System zur Steuerung komplexer Simulationen <ul><li>TENT ist eine Integrations- und Simulationsumgebung für ingenieurwissenschaftliche Anwendungen. </li></ul><ul><li>Gesamtsoftware-System entwickelt in Java </li></ul><ul><li>Python als eingebettete Skriptsprache </li></ul><ul><ul><li>Integration von Jython </li></ul></ul><ul><li>Nutzung von Python für verschiedene Zwecke </li></ul><ul><ul><li>Integration von Applikationen („Wrapper“) </li></ul></ul><ul><ul><li>Steuerung von Workflows </li></ul></ul><ul><ul><li>Anbindung an MS Office („Win32 API“) </li></ul></ul>
    21. 21. Beispiel: Gekoppelte Simulation in der Luftfahrt Flugmanöverberechnung <ul><li>Interaktive Simulation eines frei fliegenden elastischen Kampfflugzeugs </li></ul><ul><li>Hochgenaue Simulation erfordert Kopplung von </li></ul><ul><ul><li>Aerodynamik (Strömung) </li></ul></ul><ul><ul><li>Flugmechanik </li></ul></ul><ul><ul><li>Aeroelastik </li></ul></ul><ul><li>Hohe Rechenzeiten </li></ul><ul><ul><li>Mehrere Wochen auf großem Cluster </li></ul></ul><ul><li>Steuerung der Kopplung als Python- Skript in der TENT-Umgebung </li></ul><ul><li>http://www.dlr.de/as/sikma </li></ul>
    22. 22. Kopplungsmanager-Implementierung in TENT
    23. 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. 24. Ergebnis der Rechnungen (1) Strömung
    25. 25. Ergebnis der Rechnungen (2) Struktur <ul><li>http://www.dlr.de/as/sikma </li></ul>
    26. 26. Beispiel: Gekoppelte Simulation in der Raumfahrt Wiedereintrittssimulation <ul><li>Simulation der thermisch hochbelasteten Teile eines X-38 Raumgleiters </li></ul><ul><li>Kopplung Strömung – Struktur – Wärme </li></ul>
    27. 27. Wiedereintrittssimulation Model <ul><li>Vereinfachtes Modell für Windkanalexperimente </li></ul><ul><li>Simulation zur Validierung der Experimente </li></ul>
    28. 28. Simulationsumgebung ifls High-Performance-Kopplungsumgebung <ul><li>Realisiert mit dem Visualization Tooklit (vtk) </li></ul><ul><li>http://www.ifl.tu-bs.de </li></ul>
    29. 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. 30. Ergebnis der Rechnung Temperaturverteilung
    31. 31. Visualisierung Andere Beispiele für Visualisierungen <ul><li>Visualisierung der Design-Parameter von neuen Flugzeugkonfigurationen </li></ul><ul><ul><li>Geometrie </li></ul></ul><ul><ul><li>Simulationsergebnisse </li></ul></ul><ul><ul><li>Grundbewegung auf dem Airport </li></ul></ul><ul><ul><li>Flugdynamik </li></ul></ul><ul><li>Software JSBSim </li></ul><ul><ul><li>Simulationsroutinen in C++ </li></ul></ul><ul><ul><li>Wrapping mit SWIG </li></ul></ul><ul><ul><li>Nutzung des Python-API von vtk </li></ul></ul><ul><li>http://jsbsim.sourceforge.net </li></ul>
    32. 32. Airport Environment
    33. 33. Airport Environment
    34. 34. Airport Environment
    35. 35. Skript-Schnittstellen für numerische Software Einfache Benutzung komplexer Codes <ul><li>Moderne numerische Software ist komplex und besteht aus vielen Modulen </li></ul><ul><ul><li>Z.B. CFD-Codes (Computational Fluid Dynamics) </li></ul></ul><ul><ul><li>Implementierung in Fortran oder C </li></ul></ul><ul><li>Skript-Wrapper für numerische Software vereinfachen die Benutzung </li></ul><ul><ul><li>Rechenintensive Teile bleiben in Fortran oder C </li></ul></ul><ul><ul><li>Python-Skript steuert nur die Rechnung </li></ul></ul><ul><li>Automatische Generierung von Wrapper-Code </li></ul><ul><ul><li>Fortran: pyfort ( http://pyfortran.sourceforge.net ) </li></ul></ul><ul><ul><li>C, C++: SWIG ( http://www.swig.org ) </li></ul></ul>Fortran/C Modul Wrapper für Variablen und Funktionen Python-Skript
    36. 36. elsA CFD-Löser mit Python-Interface <ul><li>elsA: ensemble logiciel de simulation en Aérodynamique </li></ul><ul><li>Software-System der ONERA für aerodynamische Berechnungen im Luftfahrt-Bereich </li></ul><ul><li>Drei Ebenen </li></ul><ul><ul><li>Fortran-Code für zeitintensive numerische Berechnungen </li></ul></ul><ul><ul><li>Wrapper-Code in C++ für als objektorientierte Schale um die Fortran-Funktionen </li></ul></ul><ul><ul><li>Python-Interface als Schnittstelle zum Benutzer </li></ul></ul><ul><li>http://elsa.onera.fr </li></ul>
    37. 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. 38. DLR TAU-Code CFD-Löser <ul><li>Strömungslöser zur Berechnung von RANS Gleichungen </li></ul><ul><li>stationäre und instationäre Strömungen </li></ul><ul><li>Hybride Netze </li></ul><ul><li>State-of-the-Art Turbulenzmodelle </li></ul><ul><li>Bewegungsmodul (Relativbewegung von Netzen) </li></ul><ul><li>Netzadaption (Ver- und Entfeinerung) </li></ul><ul><li>Chimeratechnik </li></ul><ul><li>Vollständig parallel </li></ul><ul><li>Multidisziplinäre Simulationen </li></ul><ul><li>Bestehend aus vielen Modulen in C </li></ul><ul><li>Interface in Python </li></ul>
    39. 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. 40. Eingebettet als Skript-Interpreter in großen Systemen und Produkten <ul><li>Allgemein gilt: Anwendungen können von Haus aus nicht alles! </li></ul><ul><li>Aber Scripting erlaubt das einfache Hinzufügen fehlender Features . </li></ul><ul><li>Anwendungsfälle </li></ul><ul><ul><li>Skript Interpreter in der GUI </li></ul></ul><ul><ul><li>Formelauswertung </li></ul></ul><ul><ul><li>Skript Konsole in der GUI </li></ul></ul><ul><ul><li>Skript-Blöcke/Komponenten in Workflows </li></ul></ul><ul><ul><li>Command journaling </li></ul></ul><ul><ul><li>Batch processing </li></ul></ul><ul><li>Realisierung durch Einbettung („Embedding“) von Python-Interpretern </li></ul><ul><ul><li>(C-)Python (siehe http://www.python.org/doc/ext/embedding.html ) </li></ul></ul><ul><ul><li>Jython (siehe http://www.jython.org/docs/embedding.html ) </li></ul></ul>
    41. 41. Beispiel: Airbus-Tool PPP Daten-Mapping beim Flugzeugentwurf <ul><li>Entwicklung in Java </li></ul><ul><li>Mapping von XML </li></ul><ul><li>Umrechnung von Einheiten </li></ul><ul><li>Umrechnung durch Formelauswertung </li></ul><ul><li> Jython -Interpreter </li></ul>
    42. 42. Qualitätssicherung bei wissenschaftlicher Software Ein weites Anwendungsgebiet für Python <ul><li>Entwicklung GUI-basierter Test-Systeme für numerische Codes </li></ul><ul><ul><li>Z.B. Test von numerischen Strömungslösern </li></ul></ul><ul><ul><li>Überprüfung der numerischen Ergebnisse nach Code-Änderungen </li></ul></ul><ul><ul><ul><li>Auschecken des aktuellen Source-Codes aus CVS / SVN </li></ul></ul></ul><ul><ul><li>Vergleich mit Referenz-Lösungen </li></ul></ul><ul><ul><li>Verwalten von (umfangreichen) Testfällen und Referenzlösungen </li></ul></ul><ul><li>Tools zur Unterstützung im Bereich Software Engineering </li></ul><ul><ul><li>Nutzung von fertiger Python-Software (MoinMoin, ViewVC, pysvn, …) </li></ul></ul><ul><ul><li>Verknüpfung der Tools durch Erweiterungen </li></ul></ul><ul><ul><ul><li>Bsp: MoinMoin-Makro zum Zugriff auf Issue-Tracking MANTIS </li></ul></ul></ul><ul><ul><li>Automatisierung von SE-Prozeßschritten durch Python-Skripte </li></ul></ul>
    43. 43. Test-System für Strömungslöser (1) Erste Version aus dem Jahr 1998 <ul><li>Test und Verifikation des DLR-Codes TRACE für Turbomaschinen </li></ul><ul><li>Entwicklung in Python mit Tkinter </li></ul>
    44. 44. Test-System für Strömungslöser (2) Aktuelle Version aus dem Jahr 2004 <ul><li>Test und Verifikation der Codes elsA und TAU </li></ul><ul><li>Entwicklung in Python mit PyQt </li></ul>
    45. 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. 46. Häufig verwendete Basis-Software Zwei wichtige Beispiele <ul><li>pyCGNS – A Python binding for CGNS </li></ul><ul><ul><li>Python-Interface für das Datenformat CGNS </li></ul></ul><ul><ul><li>Verwendung in den Python-Schnittstellen der Strömungslöser </li></ul></ul><ul><ul><li>http://cgns-python.berlios.de/ </li></ul></ul><ul><li>pyGlobus </li></ul><ul><ul><li>Python-Interface für das Globus Toolkit </li></ul></ul><ul><ul><li>Verwendung in Grid-Computing-Anwendungen </li></ul></ul><ul><ul><li>http://dev.globus.org/wiki/Python/pyGlobus </li></ul></ul>
    47. 47. Schlussbemerkungen <ul><li>Es gibt viele weitere Python-Anwendungen </li></ul><ul><ul><li>im DLR </li></ul></ul><ul><ul><li>In anderen Luft- und Raumfahrt Organisationen und Firmen </li></ul></ul><ul><ul><li>In anderen Geschäftsfeldern (Verkehr, Energie) </li></ul></ul><ul><li>In einigen Projekten wird an der Neuimplementierung existierender Software in Python gearbeitet </li></ul><ul><ul><li>Ehemals: Perl oder C </li></ul></ul><ul><li>Verwendete Software </li></ul><ul><li>Python / Jython </li></ul><ul><li>ZOPE </li></ul><ul><li>PyQt / Tkinter </li></ul><ul><li>PyGlobus </li></ul><ul><li>MoinMoin </li></ul><ul><li>Vtk </li></ul><ul><li>SWIG / pyfort </li></ul>

    ×