10100

Neuerungen in Igor Pro 10

Igor Pro 10 führt weitreichende Optimierungen ein, die von neuen Operationen und Funktionen bis hin zu einer tiefgreifenden Python-Integration reichen. Die wesentlichen Neuerungen zur Steigerung der Analyseleistung und Benutzerfreundlichkeit sind im Folgenden zusammengefasst.

Python-Integration

Die integrierte Python-Schnittstelle in Igor Pro 10 ermöglicht die direkte Ausführung von Python-Code und einen bidirektionalen Datenaustausch. Anwender können die spezialisierten Bibliotheken des Python-Ökosystems mit den leistungsstarken Werkzeugen zur Datenvisualisierung und -verwaltung von Igor kombinieren.

Das igorpro-Python-Modul bietet eine API für den Zugriff auf Waves, Datenordner sowie Variablen und Zeichenfolgen. Die integrierte Python-Konsole mit Syntax-Highlighting und Code-Vervollständigung erlaubt interaktives Arbeiten.

Igor Pro 10: Python-Code über die Python-Konsole ausführen

Ergänzend erlauben die Operationen Python und PythonFile die Einbindung einzelner Befehle oder kompletter Skripte direkt im Igor-Prozedurcode und über die Befehlszeile. Während die Python-Operation zum Ausführen einzelner Python-Befehle verwendet werden kann, dient PythonFile zum Starten ganzer Python-Skripte aus Igor heraus. Selbstverständlich können beide Operationen Python-Objekte wie NumPy-Arrays an Igor zurückgeben und sie in native Igor-Typen konvertieren.

Igor Pro 10: Ausführen eines Python-Skripts mit der Operation PythonFile

Kamera- und Hardwaresteuerung

Mit der Einführung des MMI XOP, das auf dem Open-Source-Projekt μManager basiert, wird die Hardware-Anbindung erweitert. Die Schnittstelle ermöglicht die zentrale Steuerung einer Vielzahl von Hardware-Komponenten:

  • Bildgebung: wissenschaftliche Kameras und Bildsensoren
  • Optik: Lichtquellen, Shutter (Verschlüsse) und Filterräder
  • Positionierung: motorisierte XY- und Z-Achsen-Positioniertische

Liste der Geräteadapter und Einführung in deren Verwendung beim µManager-Projekt

Sobald MMI-System konfiguriert ist, kann Igor beispielsweise mit nur sieben Befehlen den µManager anweisen, ein Bild von einer unterstützten Kamera aufzunehmen, das Bild in eine Welle zu laden und es anzuzeigen.

MMC_LoadDevice "myDemoCam", "DemoCamera", "DCam"
MMC_InitializeDevice "myDemoCam"
MMC_SetCameraDevice "myDemoCam"
make/O myImageWave
MMI_BindImageWave myImageWave
MMC_SnapImage
NewImage myImageWave

Igor Pro 10: Ein von MMI von der Kamera aufgenommenes Bild, angezeigt in einem Igor-Bildplot

Neben der Aufnahme einzelner Bilder unterstützen sowohl der µManager als auch das MMI-System das Streamen von Bildern, d. h. die kontinuierliche Aufnahme, Anzeige und (optionale) Speicherung von Bildern in HDF5-Dateien mithilfe der Operation MMI_OpenH5file.

Optimierungen im Prozedurfenster

Igor Pro 10 verbessert die Programmierproduktivität durch folgende neue Funktionen:

  • Intelligente Editierfunktion: Verbesserte Syntaxhervorhebung und eine kontextsensitive Code-Vervollständigung beschleunigen das Schreiben von Prozeduren.

Igor Pro 10: Verbesserte Code-Vervollständigung

  • Navigation: Per Strg + Klick auf einen Funktionsnamen kann direkt zur Definition der benutzerdefinierten Funktion gesprungen werden.

Igor Pro 10: Sprung zu einer benutzerdefinierten Funktion durch Strg + Klick auf den Namen in einer aufrufenden Funktion

  • Flexibilität: Backslash-Zeichen am Zeilenende erlauben nun beliebig lange Ausdrücke über mehrere Zeilen hinweg.
Function/S LineContinuationDemo(String prefix, \
                                String separator, \
                                String suffix)
    String combined = prefix \
        + separator // a comment before line continuation \
        + suffix
    return combined
End
  • Code-Struktur: Das neue Code-Folding ermöglicht das Zusammenklappen von Code-Blöcken, um die Übersicht in umfangreichen Dateien zu wahren.

Igor Pro 10: Igor-Code-Editor mit Anzeige der Klickstelle zum Zusammenklappen eines Code-Blocks

Igor Pro 10: Code-Editor mit einem End-if-Code-Block und zwei vollständig zusammengeklappten Funktionen

Erweiterungen beim Multipeak-Fitting-Package

  • Erhöhte Robustheit in vielen Bereichen durch verbesserte Fehlerbehandlung, insbesondere in Bezug auf Daten außerhalb des Bereichs, leere Wellen und NaNs
  • Unterstützung für Hold-String-Wellen
  • Unterstützung für sowohl 10-%- als auch 200-%-Anzeigeskalierung
  • Kopieren/Einfügen-Shortcuts in der Tabellen-Benutzeroberfläche
  • Automatische Lokalisierung gibt keine Peaks mit Nullbreite mehr zurück
  • Mehrere Verbesserungen bei Warn- und Fehlermeldungen

Verbesserungen der Zeichenwerkzeuge

  • Verbesserung bei der Bearbeitung von Polygonen und Bézierkurven durch bessere Beschränkungen, Vertex-Ausrichtung, mehr Kontextmenüs und ein Hinweissystem zur Hilfestellung
  • Zeichnen über Anmerkungen hinweg mit zusätzlichen Zeichnungsebenen "ProgTop" und "UserTop" in Diagrammen

Igor Pro 10: Diagramm mit einem Zeichnungsobjekt, das über einer Anmerkung angezeigt wird

Dynamische Layouts für Bedienfelder

  • Die neuen integrierten Randhilfslinien ML, MT, MR und MB (linker Rand, oberer Rand, rechter Rand und unterer Rand) erleichtern das Ausrichten von Objekten im druckbaren Bereich der Seite. Die Randhilfslinien passen sich an die im Dialogfeld "Seitengröße" festgelegten Ränder an.
  • Wenn eine Hilfslinie in einem Seitenlayout gezogen wird, wird ihre Position in der Statusanzeige am unteren Rand des Fensters angezeigt. Es werden Bruchteile der druckbaren Seitenbreite oder -höhe angezeigt. Durch Gedrückthalten der Umschalttaste werden die gezogenen Hilfslinien auf einen rationalen Bruchteil der druckbaren Seitenbreite oder -höhe beschränkt.
  • Durch Drücken der Strg-Taste und Drehen des Scrollrads wird der Vergrößerungsgrad des Layouts geändert.
  • Durch Gedrückthalten der Umschalttaste und Verwenden der Pfeiltasten zum Verschieben eines Layoutobjekts wird die Bewegung um den Faktor zehn beschleunigt.

Bedienelemente in einem Bedienfeld können an „Guides“ (Führungslinien) verankert werden. Dies macht es erheblich einfacher, Bedienfelder zu erstellen, die eine Größenänderung sauber mitmachen, ohne dass dafür extra Igor-Code geschrieben werden muss. Es handelt sich dabei um dieselben Führungslinien, die zuvor nur mit Unterfenstern funktionierten.

Igor Pro 10: Das Bedienfeld lässt sich problemlos in der Größe anpassen.

In der Abbildung ist im Bedienfeld der rechte Rand des Listbox-Steuerelements immer an der Mitte des Panels fixiert, während sein unterer Rand stets einen konstanten Abstand zur Unterkante hält. Die Steuerelemente auf der rechten Seite bleiben dauerhaft bei einem Viertel der Panelbreite vom rechten Fensterrand aus zentriert. Der Titel wird immer mittig ausgerichtet.

Neue Operationen

  • Interp4D
  • Interp4DPath
  • MMC_* and MMI_* (82 operations added by the MMI64.xop)
  • Python
  • PythonEnv
  • PythonFile
  • Say

Neue Funktionen

  • graphemeLength
  • MMC_* and MMI_* (47 functions added by the MMI64.xop)
  • stringIsNull
  • UTF8CharLength

Neue MatrixOp-Funktionen

  • subtractMin()
  • indexMatch()
  • removeCol()
  • removeCols()
  • scaleLayers()
  • scaleChunks()
  • subtractRows()
  • subtractCols()
  • quatFromSpherical()
  • quatInverse()
  • median()
  • zapZeros()
  • replaceInfs()
  • enoise()
  • setType()
  • rowDiff()
  • binMean()
  • binVar()
  • imit()
  • not()

Leistungsverbesserungen

  • Verbesserung der Kompilierungszeit von Benutzerprozeduren
  • Verbesserung der Leistung der Operationen NewPath und IndexedFile, insbesondere in Code, der der Beispielfunktion PrintFoldersAndFiles im Hilfethema „IndexedDir“ ähnelt
  • Verwendung beliebig vieler, von der Hardware unterstützter logischer Prozessoren unter Windows 11 durch die Operationen MultiThread und ThreadGroupCreate statt bisher nur bis zu 100 logische Prozessoren (unter Windows 10 ist die Anzahl der verwendeten logischen Prozessoren aufgrund der Einschränkungen durch das Betriebssystem weiterhin auf 64 beschränkt)