A GUIDE TO IDL Für Astronomen


A GUIDE TO IDL FOR ASTRONOMERS
Copyright © By R. W. O’Connell
For original English text, go to: http://www.astro.virginia.edu/class/oconnell/astr511/IDLguide.html

R. W. O’Connell



Abschnitt I dieses Leitfadens ist für diejenigen, die nicht vertraut mit IDL oder die versuchen zu entscheiden, ob sie zu übernehmen.
Abschnitte II und III sind für die Nutzer. Obwohl die Beispiele stammen von Anwendungen in der Astronomie, ist die meisten der Leitfaden allgemein genug, um sein nützlich, um Arbeiter in der medizinischen Bildgebung, Geophysik, oder in anderen Bereichen für die IDL ist gut geeignet.

Die Interactive Data Language (IDL) ist eine proprietäre Software System durch Exelis Visual Information Solutions, Inc. vertrieben
(http://www.exelisvis.com) , ursprünglich Research Systems, Inc. wuchs von IDL-Programme geschrieben für Analyse der Daten von NASA-Missionen wie die Mariner und International Ultraviolet Explorer. Es ist daher zugewandten Verwenden von Wissenschaftlern und Ingenieuren bei der Analyse von ein-, zwei-oder
dreidimensionalen Datensätze. Exelis behauptet, über 150.000 Nutzer.

IDL ist derzeit unter Linux, UNIX / Solaris, Windows verfügbar ist, und Macintosh-Versionen. IDL-Gerätetreiber sind für die meisten Standard verfügbar
Hardware (Terminals, Bild, Bildschirme, Drucker) für interaktives Display von Bild-oder Grafik-Daten.

IDL ist nicht einfach ein Paket von aufgabenorientierten Routinen im Stil astronomischer Software-Systeme wie IRAF oder Ciao. Stattdessen ist es
wirklich ein Computer Sprache , leicht verständlich von jedem Computer erfahrene Benutzer. Es bietet die gesamte Leistung, Vielseitigkeit,
und Programmierbarkeit von Hochsprachen wie C und Fortran Aber es umfasst drei spezielle Fähigkeiten, die notwendig sind für die moderne
Datenanalyse:

  • Interaktivität ,
  • Grafik-Display und
  • Array-orientierte Bedienung . (IDL ist
    Array-orientierter im Sinne, dass Arrays ohne Bezug genommen werden kann
    Verwendung von Indizes oder do-Loops und dass Code wird automatisch
    vektorisiert für schnelle Array-Berechnungen.)

Benutzer, die vertraut mit Fortran, C, C + + oder anderen hohen Niveau sind Sprachen werden kaum Schwierigkeiten haben, Verständnis IDL. Seine Syntax und
Betrieb liegen auf der Hand, sinnvolle und bequeme (am ähnlichsten Die FORTRAN). Da es interaktiv ist, Lern-IDL durch on-line Trial-and-error ist schnell.

IDL bietet dem Wissenschaftler besser zu verstehen und die Kontrolle über Berechnungen und Datenanalysen durch eine Vielzahl von Besonderheiten auf:

    • schnelle Reaktion und Iteration,
    • sofortigen Zugriff auf alle Variablen (im RAM gespeichert),
    • sofortigen Zugriff auf alle Quellcodes (außer Exelis-geschrieben
      proprietärer Routinen),
    • optimierte Array-Operationen,
    • dynamische Variable Typisierung und Speicherzuweisung,
    • On-Demand-Erstellung und Verknüpfung von Routinen,
    • vielseitig integrierten Plot-und Grafik-Routinen,
    • interaktive Sitzung Journal-keeping,
    • Befehl Rückruf / edit,
    • Befehlsscripts,
    • Datenstrukturen,
    • flexible Parameterspezifikation in Unterprogrammaufrufe,
    • strukturierte Syntax,
    • vollständige Integration mit Windows-Systemen
    • Unterstützung für alle gängigen wissenschaftlichen I / O-Protokolle,
    • Widgit (GUI) und der objektorientierten Programmierung, und
    • eine große Sammlung von mathematischen, Datenanalyse, & special
      interaktives Dienstprogramm-Routinen.

Eine funktionale Beschreibung der IDL ist auf http://www.exelisvis.com/portals/0/pdfs/idl/IDL7_FuncSumm.pdf . Mehr
Geschichte, Hintergrund und Kontext kann bei http://en.wikipedia.org/wiki/IDL_ (programming_language) .
Eine Beschreibung der IDL-Kommandozeilen-Umgebung, wie vom Benutzer gesehen ist
gegeben unten.

Acht Versionen von IDL sind bisher erschienen.
Version 8.1 ist das neueste.

Welche Rolle spielt die IDL in den Kontext anderer Software zur Hand, um zu spielen

Astronomen?

FORTRAN, C oder C + + nicht zufriedenstellend bedienen den Bedarf einzelner
Benutzer für interaktive Datenanalyse, weil sie nicht liefern ein
Standard interaktive Umgebung mit mitgelieferten Grafiken
Device-Treiber.

Die Datenreduktion und Display-Software, mit der die meisten Astronomen sind
vertraut, einschließlich IRAF, STSDAS, AIPS, AIPS + +, ciao, MIDAS und
SUPERMONGO, besteht überwiegend aus Sammlungen von spezialisierten,
aufgabenorientierte Routinen. Sie sind interaktiv und grafisch orientierter,
aber sie arbeiten nur in einem vorkompilierten Form, die den Benutzer bietet
wenig Gelegenheit für ein Upgrade oder Anpassung. Konstituierende Routinen
Funktion wie “black boxes” und nicht bieten dem Anwender leicht
verständlichen Zugang zu ihrem Innenleben. Diese Pakete können
ausgeführt von Skripten, aber sie sind nicht als Grundlage der beabsichtigten
Benutzer-Anwendungen geschrieben werden. Sie sind komplex genug, dass professionelle
Programmierer sind erforderlich, um sie erhalten und zu verbessern. Sie passen
nur langsam auf Anforderungen der Nutzer. Im Gegensatz dazu nicht nur IDL
bieten mehr Transparenz, Vielseitigkeit und Effizienz, sondern auch die
ganze Computer erfahrene Benutzer-Community kann herangezogen werden, zu erweitern und zu
Verbesserung der IDL-Software-Anwendungen.

  • Für diese Aufgaben (z. B. CCD-Datenreduktion), wo die großen
    astronomische Reduzierung Pakete oder Stand-alone-Dienstprogramme wie
    DAOPHOT oder sextractor bieten leistungsstarke, zuverlässige und bequeme
    Standard-Pakete für astronomische Anwendungen, das sind die Systeme
    der Wahl. IDL darf nicht als eine Alternative gibt zu denken.
    Vielmehr soll sie als Mittel zur Überwindung der Unterschiede in die verwendet werden
    Pakete und Ausbau ihrer Fähigkeiten.

Ein Vergleich mit anderen gängigen Systemen:

  • Mathematica, Maple, MATLAB oder bieten leistungsstarke interaktive
    Fähigkeit für mathematische Berechnungen und Anzeige. Die ersten zwei
    von ihnen sind außerdem symbolische Manipulation und Gleichung von Problemen, die
    IDL nicht. Allerdings sind diese Systeme zugewandten
    mathematische Analyse als Datenanalyse. Sie bieten weniger
    Fähigkeiten als IDL für die Bilddarstellung und-verarbeitung, und sie sind
    weniger vielseitig für selbst geschriebene Programme und Datei-I / O. Sie bieten
    keine der speziellen Tools von Astronomen notwendig (z. B. FITS
    Bild-und Tabellen-Datei I / O, Koordinatensysteme und Astrometrie, Photometrie
    Spektroskopie und Pakete, vom Aussterben Gesetze und K-Korrekturen
    Databasing, etc.). Für einen Äpfel mit Äpfeln verglichen dieser vier
    Systeme in einer Vielzahl von Anwendungen finden Sie in der University of Colorado
    Applied Math Seite
    (Http://amath.colorado.edu/computing/mmm/)
    .
  • SUPERMONGO und PGPLOT sind weit-Pakete für die Herstellung verwendet
    grafische Darstellungen der zuvor berechneten Daten. IDL bietet vergleichbare
    Fähigkeiten, aber im Zusammenhang mit einem voll programmierbar, High-Level
    Sprache, so dass Berechnungen, Daten-Manipulation und Anzeige sind
    gleichzeitig zur Verfügung.

Die intrinsischen Fähigkeiten von IDL mit seinem umfangreichen Benutzer gekoppelt
Code-Bibliotheken erheblich verbessern Wissenschaftler Effizienz.

    Eine neue Funktion hinzugefügt mit IDL in einem kleinen Anteil der Be
    Zeit, die für den Gegenwert in Programmierung tun würde (zwangsläufig
    “Blind”) nicht-interaktiven Sprachen oder indem man versucht, um die Arbeit
    Einschränkungen der IRAF, MATLAB, etc. Ohne aus IDL setzt Testdaten
    erstellt und angezeigt werden, und Programme geschrieben werden kann, ausgeführt wird,
    Debuggen und überarbeitet mit großer Effizienz. IDL-Code kann
    geschrieben in weniger als einem Fünftel der Zeit des entsprechenden FORTRAN
    oder C

    Die eingebaute Journalführungs-und Kommando abrufen / bearbeiten
    Features
    von IDL sind so wichtig, effizient und zuverlässig
    Datenanalyse, dass es so etwas wie ein Rätsel ist, warum die meisten anderen
    astronomischer Software-Pakete bieten nicht sie.

    <! -
    Verglichen mit dem unvermeidlich “blinde” Programmierung mit Sprachen wie
    FORTRAN oder C, die interaktive Umgebung von IDL mit seinen gekoppelt
    Zeitschrift und Befehl Rückruf / edit Einrichtungen ist ein
    enorm effizienter Weg von Schreiben von zuverlässigem Code.

    ->

Wegen der IDL Vielseitigkeit, Transportfähigkeit und Benutzerfreundlichkeit
verwenden, gibt es eine großen, vom Benutzer geschriebenen, Public Library of
interaktive IDL-Software, jetzt mehr als 10.000 Programme.

Viele Astronomie-orientierte IDL Routinen und Pakete sind
in der Public Domain.

    Frühe IDL-Pakete wurden am Goddard geschrieben
    Space Flight Center zur Analyse von Bildern und zweidimensionalen Spektren
    zur Unterstützung der International Ultraviolet Explorer, Astro, das
    Hubble Space Telescope (GHRS und STI) und anderen Weltraum-Missionen.

    Andere Pakete wurden von Gruppen mit dem Sloan assoziiert geschrieben worden
    Digital Sky Survey, Chandra, ROSAT, COBE, Fermi, GRO, HST / NICMOS,
    HST / ACS, SOHO, ISO, das Spitzer Space Telescope, das Green Bank
    (Radio) Teleskop, das Owens Valley Radio Observatory, das
    Submillimeter Array, Los Alamos, Livermore und NRL unter
    andere. Es gibt auch eine große Anzahl von verbundenen Remote-Sensing,
    medizinische, Geophysik und Umweltforschung IDL-Software. Diese
    Pakete enthalten viele Programme von allgemeinem Interesse (z. B. statistische
    Analyse, Databasing) sowie spezialisierten Funktionen.

    Im Gegensatz zu IRAF, STSDAS und AIPS, gibt es keine zentrale Verteilung
    Punkt für “autorisierte” IDL-Software anderer als der mitgelieferten Exelis-intrinsische
    IDL-Sprache. Allerdings ist weder das eine haben, auf einem kleinen Kader ab
    erfahrener Entwickler Fehler beseitigt werden, erklären Programm-Operation oder
    bieten neue Möglichkeiten.

    Aufgrund der öffentlich verfügbaren Anwendungen, die den EM decken
    Spektrum von Gamma-Ray zu Radio-Wellenlängen, hat IDL werden die
    nächste Sache zu einem “universellen” astronomische Datenanalyse
    System.

Die IDL-Quellcode für Anwendungen Paketen ist automatisch
verfügbar ist,
, damit der Benutzer die Routinen verwenden, wie geschrieben oder,
Alternativ dazu leicht modifizieren ihre Komponenten (wie man es FORTRAN
Unterprogramme), um sie anzupassen.

IDL-Software eignet sich ideal für den Austausch über die geeignet
Web.
Da keine Vorkompilierung erforderlich ,
Installation eines neuen Pakets, zum Beispiel, das einfach eine Frage der
setzen die ASCII-Quelldateien in Ihrem IDL Weg.

IDL Die plattformübergreifende
Design gewährleistet, dass Sie getrost übertragen Code zwischen
Umgebungen
(zB von einem Solaris-Desktop auf einem Macintosh-Laptop).

C oder Fortran-Programme können von innen ausgeführt werden, und IDL
ausgetauschten Daten zwischen den Systemen.

Beispiele für IDL rechnerische und grafische Anwendungen,
Führen Sie das idldemo Demonstration aus der Linux-Kommandozeile.

href=”#resources”> Siehe unten für Quellen von IDL-Code-Anwendungen.

href=”#contents”> [Bis zu Inhalt]

Sobald Sie anfangen, IDL und mit der Eingabe beginnen an Ihrer Konsole, sind Sie
Kommunikation mit der Hauptebene eines beliebig grossen Computer
Programm, über die man (fast) vollständige Kontrolle.

  • Während der Eingabe wird jede Zeile interpretiert und sofort ausgeführt.
    Die Befehle geben Sie ähneln denen in einem Fortran-oder C-Programm,
    der Hauptunterschied ist, dass jede Zeile muss alleine stehen (man kann nicht,
    zum Beispiel Schleife zurück zu einer früheren Befehl).
  • Sie können dynamisch zu erstellen, ändern oder löschen Datenelemente.
    Im Gegensatz zu FORTRAN und C, Sie müssen keine Variable angeben
    Merkmale im Voraus
    . Speicher nach Bedarf erweitert auf neue speichern
    Variablen. Alle gängigen Typen von Elementen möglich in anderen Sprachen
    (Z. B. Byte, Integer, mit doppelter Genauigkeit, Gleitkomma, Streicher,
    logisch, Arrays aus 1-D-bis 8-D, Strukturen) zur Verfügung

    .

  • Sie können Array-Operationen ohne Bezug zu befehligen
    tiefgestellten
    (zB pix_3 = pix_1 + pix_2 ),
    und der Code wird automatisch vektorisiert werden für schnellste
    Ausführung.
  • Sie haben sofortigen Zugriff auf:
    • Der vollständige mathematische Funktionalität anderer
      High-Level-Sprachen wie Fortran und C
    • Eine große Reihe von Dienstprogrammen für
      grafische Darstellungen auf dem Computer-Terminal (Bilder, Diagramme, Animationen,
      GUIs).
    • Hilfsprogramme zur Datei Input / Output in einer Vielzahl von Formaten,
      abgestimmt auf Standard-Drucker und andere Zusatzgeräte. IDL
      unterstützt FITS sowie alle Standard-Bildformate (zB JPEG,
      GIF, PNG), sondern unterstützt auch Animationen.
    • Eine große Suite leistungsstarker
      mathematischen Werkzeuge. So bieten die meisten der Funktionalität
      Numerical Recipes zur Verfügung.
    • Eine große Reihe von speziellen Funktionen
      zu helfen, spüre den momentanen Zustand Ihrer Programme,
      befassen sich mit der Verarbeitung Fehler, und sonst
      Optimierung der interaktiven Computing-Umgebung.
  • Es ist ein ausgeklügeltes Online-Hilfesystem.
  • Sie können zuvor geschriebenen Dateien von Befehlen in Form ausführen
    “Hauptprogramme” oder “Verfahren” (Unterprogramme) . Diese können den vollen
    Palette von Programmierung (Schleifen, Blöcke, gemeinsamen Blöcke, etc.)
    andere Hochsprachen.
  • Mit einem einzigen Befehl können Sie auch ausführen
    “scripts” — Dateien, die Listen von Befehlen ähnlich enthalten
    diejenigen, die Sie eingeben würden in.
  • Scripts und Prozeduren können einfach durch Kopieren von Ihrem geschaffen werden
    interaktive Sitzungen, mit dem eingebauten IDL Zeitschrift -Dienstprogramm.
  • Sie können die Ergebnisse von interaktiven Berechnungen jederzeit speichern
    während der Sitzung in einer Vielzahl von Formen, die alle ihrerseits als Eingabe für
    später IDL-Sitzungen oder anderen Software-Paketen. Instant, Format-frei
    Sicherung von Daten (und Programme)
    in Ihrer Sitzung ist verfügbar
    durch die IDL save -Befehl.
  • Sie können IDL aus einem Standard-X-Fenster ausführen ( “command-line”-Modus )
    oder rufen Sie eine ausführlichere GUI genannt “IDL Workbench” , dass
    bietet eine Reihe nützlicher Unterfenster-und Maus-driven Shortcut-Befehle.
    Wenn Sie möchten, können Sie programmieren Ihr eigenes GUI-Anwendungen.

Menschen, die vertraut sind mit IRAF, ciao, oder AIPS wird
sofort erkennen wichtigsten neuen Funktionen in der IDL-Umgebung.

  • Die meisten Berechnungen mit diesen Paketen beginnen und enden mit Daten
    gespeichert, wie Dateien , ein Artefakt der Zeit, als Computer
    nur über begrenzte Speicher mit wahlfreiem Zugriff Kapazität. Die meisten Befehle
    daher die Verwendung von umständlichen Dateinamen.

      Im Gegensatz dazu werden alle aktiven Daten in IDL normalerweise unter
      Random-Access Memory , wo hat man unmittelbaren Zugang
      und untersuchen können, zu manipulieren, umzubenennen oder zu konfigurieren sie nach Belieben
      ohne Dateiübertragungen .

      Dies hat den zusätzlichen Vorteil, dass wichtige IDL
      Programmierer müssen nicht über Datei-Formatierung der Ergebnisse der Angst
      Zwischenberechnungen oder konsumieren Massenspeicher, um sie zu speichern.

  • IDL vermittelt ein “hands-on” zu fühlen, und ein entsprechendes Vertrauen
    , dass Sie wissen (oder herausfinden können), was los ist, das ist
    weitgehend fehlen in diesen anderen Systemen.
  • Synthetische Benchmark-Datensätze können schnell erstellt werden
    interaktiv für Realität Kontrolle der Programmausführung.
  • Unterprogramm Parameter und “keywords” zu ersetzen, in einem mehr
    stromlinienförmigen Weg, die “Parameter-Set”-Dateien in IRAF-like beschäftigt
    Systeme. Diese increaes Effizienz für erfahrene Anwender, sondern die
    Fehlen Parameter eingegeben werden, kann problematisch sein, für Anfänger.
  • Mit dem eingebauten IDL Zeitschrift Dienstprogramm, Ihnen
    kann eine exakte Aufzeichnung Ihre Befehle und die IDL pflegen
    Antworten … macht es wahrscheinlicher, dass deine Arbeit eigentlich ist
    reproduzierbare
    .
  • Mit dem eingebauten IDL Befehl Rückruf / edit-Funktion, ist es trivial
    zu iterate Befehle , wodurch Tippfehler, Erleichterung der Exploration
    der Parameter Raum und Geschwindigkeitsübertretungen sich wiederholende Aufgaben.

      Dies ermöglicht die schnelle, interaktive Erstellung von Spezial-
      “Rückruf-basierte Mini-Skripts” an Stelle des Schreibens externen Routinen (zB für
      Grafik-Ausgabe).
  • Im Gegensatz zu anderen Astronomie-Pakete, die umfangreiche erfordern
    Pre-Zusammenstellung und Verknüpfung von Software-Komponenten, neue IDL-Programme
    können problemlos integriert während Ihres interaktiven Sitzung.

    werden

      Sie können eine neue Funktion in Form einer Subroutine so schnell erstellen
      wie Sie denken können, und geben Sie dann verbinden Sie ihn auf Ihrer interaktiven
      Sitzung mit einem einzelnen . laufen Befehl
      .

      Selbst Anfänger schätzen die Leichtigkeit, mit der Gaspedal-Befehle
      oder Skripte können gestaltet, um Routine-Aufgaben zu beschleunigen.

  • Ebenso können Sie herunterladen und sofort anfangen mit IDL
    Programme (in ASCII-Dateien) finden Sie im Web, so dass Sie
    unmittelbaren Zugriff auf eine riesige, internationale Bibliothek mit wissenschaftlichen
    Software
    .
  • Sie können das Funktionieren jeder Benutzer angegebene Routine.
    Obwohl Sie nicht ändern können intrinsische IDL Routinen, können Sie leicht
    bauen “Wrapper”-Programme für diese Leistung, die die Standardwerte ändern
    oder beschleunigen Nutzung. Ihre Fähigkeit, anpassen Berechnungen ist
    enorm in IDL erweitert.

IDL wird in Richtung Bildanalyse und Signalverarbeitung orientiert, aber durch
Vergleich zu IRAF, etc. sie eröffnet auch eine neue Dimension der Leistungsfähigkeit
auf andere Arten von wichtigen numerische Berechnungen mit großem machen
Effizienz und zur grafischen oder tabellarischen Darstellungen erstellen
sie. In dieser Hinsicht dupliziert Großteil der Funktionalität der
Mathematica, Maple und MATLAB (wenn auch ohne symbolische Manipulation).

    Einfache Beispiele könnten die Berechnung des Volumens Element als ein
    Funktion der Rotverschiebung in verschiedenen Kosmologien, Berechnung Linienformen
    mit einfachen Methoden Strahlungstransport und den Vergleich zu beobachteten
    Spektren, tut schnelle Monte-Carlo-Berechnungen, Simulation von Malmquist
    Bias und andere Selektionseffekte, die Erzeugung von Bremsstrahlung oder
    Synchrotron-Spektren, und so weiter.

    Eine große Vielfalt von solchen Problemen, für die (wenn sie unternahm ein
    sorgfältige Berechnung überhaupt) viele Astronomen geschrieben hätte
    Stand-alone-FORTRAN oder C-Programme können mit schönen behandelt werden
    Effizienz durch IDL und sofort mit zugehörigen Daten eingearbeitet
    Analyseaufgaben.

Basic-IDL-Funktionalität ist nicht für die letzten paar verändert
Major-Releases. Stattdessen haben Ergänzungen Bereichen wie beteiligt
GUI-Unterstützung und der objektorientierten Programmierung, die gerichtet sind
mehr an Software-Entwickler als für Benutzer, bei der Datenanalyse interessiert.

IDL hat viele Tugenden, aber was sind ihre Grenzen?

Eine offensichtliche Einschränkung, und ein erhebliches Hindernis für einige Leute,
ist, dass IDL ist ein proprietäres System , so dass jeder Standort müssen Mittel
Kauf eine IDL-Lizenz. Einige Astronomen widersprechen grundsätzlich zu
Zahlung für Software.

    Aber, unnötig zu sagen, bekommen Sie, was Sie bezahlen. Selbst unsere angeblich
    “Freie” Software-Pakete wie IRAF, ciao, oder AIPS + + tragen ein
    enorme Preis-Community , erhoben indirekt auf uns alle. Die
    Kaufpreis von IDL muss gegen den Nutzer Aufwand abgewogen werden
    notwendig, die gleiche Leistung durch Lernen erhalten oder
    Anpassung eines weniger fähigen System.

    Meine eigene Auffassung ist, dass seit der teuerste Element jeder
    solches System ist immer Arbeit der Wissenschaftler beteiligt, der Dollar
    Investitionen in IDL ist eindeutig gerechtfertigt. Aktuelle Preise
    sind vergleichbar mit den 1,5 Monate von einem Postdoc das Gehalt, und für die Sie
    erhalten Zugriff auf vielleicht 1000 Personen-Jahre gut,
    astronomisch-orientierte Software. Man müsste ein haben
    sehr gute Postdoc nicht zu prüfen, IDL ein Schnäppchen.

IDL ist eine interpretiert , anstatt ein zusammengestellt
Sprache. Dies bedeutet, dass große IDL Programme auszuführen weniger
schneller als gleichwertig kompilierte Programme in FORTRAN oder C

geschrieben

    Allerdings ist dies auch eine wichtige Quelle für Effizienz der IDL .
    Das Hauptanliegen der Wissenschaftler, die an nähert Software sollte
    sein, wie viel von ihrer eigenen Zeit vergeht, bevor sie eine bestimmte bekommen
    führen. Geschwindigkeit der Ausführung ist zweitrangig, während die Geschwindigkeit der Kodierung,
    Konfiguration und Validierung von Software ist primär. Die Software-Aufwand
    von den meisten Wissenschaftlern nicht durch groß angelegte “Pipeline” dominiert
    Berechnungen oder Anwendungen, die CPU-oder Speicher-begrenzt sind. Es ist
    Statt zu moderaten angelegte Berechnungen, interaktive Daten gewidmet
    Prüfung und Bewertung, Vergleich mit theoretischen Modellen, speziellen
    Fällen nicht von großen Paketen Anwendungen unterstützt, die Produktion von
    Grafiken für Publikationen und Vorträge, und so weiter. Um erschweren
    Angelegenheiten, zwischen ihren Desktop, Laptop und / oder LAB Computers,
    Astronomen jetzt allgemein mit mehreren unterschiedlichen Betriebssystemen zu tun
    auf einer täglichen Basis.

    Dieses Umfeld stellt eine Prämie auf Software Vielseitigkeit,
    Komfort, Transparenz, Modularität und Portabilität
    — genau
    wo IDL zeichnet.

    Die inhärente Vektorisierung von IDL Die integrierte Software wird oft
    Ausgleich für seine interpretiert Struktur im Wettbewerb mit FORTRAN
    oder C-Programme, die nicht ordnungsgemäß von ihren Autoren optimiert.

IDL funktioniert am besten auf mittelgroße Datensätze (sagen wir bis zu 1 GB) und
wo braucht man sich nicht auf einzelne Array-Elemente verweisen. Benutzer
benötigen die Batch-Verarbeitung von großen Datenmengen mit immer komplexeren
Algorithmen können finden FORTRAN oder C-Routinen für eine bessere Lösung. Jedoch
können diese in der IDL-interaktive Umgebung verknüpft und ausgeführt werden
aus IDL.

    In der Tat, die Kombination von IDL als “Front-End”-Oberfläche mit einer
    große Suite von leistungsstarken, nicht-IDL Zahlenverarbeitung Programme bietet ein
    nahezu ideale Paket: Recheneffizienz zusammen mit
    Vielseitigkeit und Komfort in Anzeige / Auswertung und eine große
    Basis potenzieller Software-Entwickler.

Wegen seiner Optimierung für interaktive Computer-, IDL ist nicht
das System der Wahl für umfangreiche numerische Berechnungen (zB
hydrodynamische oder N-Körper-Simulationen). Es ist jedoch als wertvolle
Medium, um neue computergestützte Ansätze in einer kleineren Umgebung zu erkunden
wo rohe Geschwindigkeit ist nicht wichtig, und es ist auch hervorragend für die
Visualisieren, Analysieren, Bearbeiten und Anzeigen von numerischen Daten setzt
erzeugt durch Simulations-Software.

Ein Problem für Neulinge ist, dass mit Hilfe IDL möglicherweise schwer zu bekommen
bei einer Neuinstallation. Es gibt jedoch unter Berater
Exelis, Web-basierte Beratung Websites, große Mengen von Online-oder gedruckten
Dokumentation und die Beispiele von Tausenden von Arbeits-IDL-Routinen
In den öffentlichen Bibliotheken, die zur Lösung vieler Software kann
Schwierigkeiten.

Datenreduktion Pakete sind nicht in IDL für die meisten von der
spezifische Instrumente zur Verfügung bei den großen Observatorien (zB
CCD-Mosaik Bilder, Multi-Objekt-Spektrographen, Echelle-Spektren,
usw.).

    Für Routine-Reduktion von Daten aus Standard-Instrumentierung, wo die
    Bedürfnisse der typische Benutzer haben durch viele untergebracht
    Iterationen, IRAF, STSDAS, AIPS, ciao, und andere bestehende Pakete sind
    völlig zufriedenstellend. Obwohl IDL könnte eine freundlichere oder bieten
    gestrafft Umwelt für erfahrene Anwender gibt es keinen zwingenden
    Grund, in IDL neu schreiben die guten Pakete, die bereits existieren in
    anderen Sprachen.

    Es ist die Datenanalyse Phase, Im Gegensatz zu den
    Reduktion Phase, wo die Vielseitigkeit von IDL ist sehr nützlich.
    Die IDL Astronomy Benutzer-Bibliothek unterstützt die Standard-Datenformaten ausgegeben
    von den großen astronomischen Reduzierung Pakete (einschließlich FITS-Bild und
    Tisch-Dateien).

    Wenn Sie ein junger Astronom Beobachtungsstudien sind, haben Sie im Wesentlichen keine
    andere Wahl, als sich mit IRAF / STSDAS (UVOIR), AIPS (Radio),
    CIAO (Röntgen), etc., da diese die primären standardisierte Daten
    Reduktion Prozeduren auf Ihrem Gebiet. Die wichtigste Entscheidung ist es daher,
    was andere Systeme sind die profitabelsten zu lernen. IDL ist eine
    heißer Kandidat.

Schließlich ist die schnell wuchernden von IDL Anwendungen Routinen gesetzt
ist sowohl eine Stärke als eine Schwäche. Während man Zugang zu einer großen
Vielzahl von nützlichen Software ist dies nicht immer vollständig, da die getestet
Autoren in der Regel anwenden, um Probleme von begrenztem Umfang. Das Schwierigste
Teil der mit IDL oft ist die Bestimmung, welche Routinen zur Verfügung
eine gegebene Anwendung und entscheiden, welche ist am besten zu nutzen.

Insgesamt im Austausch für seine Vielseitigkeit und verbesserte Leistung, IDL
erfordert ein höheres Maß an Geschick Computer
als tun Systeme wie
IRAF, AIPS, oder Ciao.

    Die IDL-Anwender muss mehr Verantwortung für die Zuverlässigkeit der
    die Ergebnisse. Auf der anderen Seite bietet die IDL interaktive Umgebung
    wesentlich robuster und effizienter Trial-and-error Erforschung Programm
    Funktion auf reale oder synthetische Datensätze als gibt es in typischen
    Datenanalyse-Pakete. Es ist viel einfacher zu Schwierigkeiten zu diagnostizieren
    validieren und die ordnungsgemäße Ausführung von Software in IDL.

Per Saldo ist IDL ein unschätzbares Werkzeug für die meisten Beobachtungsstudien oder
theoretischen Astronomen.

Ressourcen : Für Listen von wichtigen Astronomie-orientierte IDL

Ressourcen (Führungen, Hilfe-Dateien, Demos, Tutorials, Software), ausgenommen
jene mit dem verpackten Exelis Verteilung finden Sie unter:

Demonstrationen: Um ein Gefühl für das, was IDL tun können, zu erhalten, versuchen Sie,
Das Paket von Standard IDL Demos von Exelis geliefert. Starten
aus der Linux-Eingabeaufforderung (innerhalb von einem X-Fenster) und Typ
idldemo.

Tutorials : Ein Set aus drei einleitenden IDL
Übungen
, das in seinen Grundzügen vorzustellen ist auf
die UVA-ASTR 511 Homepage. Andere Websites bieten IDL Tutorials sind
Verbindung mit der Astronomie Benutzerhandbuch
Bibliothek
.

Software-Liste: Sechs verschiedene Ebenen der IDL
Code wird für Sie nützlich sein:

  • Intrinsic IDL : geschrieben von Exelis und beschrieben in der
    IDL-Handbücher und Online-Hilfe von der aufgerufenen
    ? -Befehl. Intrinsic IDL-Code ist urheberrechtlich geschützt.
    An der UVA, wird intrinsische IDL von ITS auf ein gepflegt
    All-Universität-Server. 50 Benutzer können gleichzeitig haben
    zugreifen. Informationen zur Installation finden Sie UVa hier.
  • der IDL Benutzer-Bibliothek: -Routinen von allgemeinem Interesse
    (Statistiken, Bildkonvertierung, etc.) überprüft und
    verwaltet von Exelis aber nicht urheberrechtlich geschützt. Verpackt als
    Teil der Standard-IDL-Verteilung. Standardmäßig sind diese
    werden in dem Verzeichnis befindet $ IDL_DIR / lib .
  • der IDL Astronomy Benutzerhandbuch Bibliothek: ein großer Satz von Routinen
    für Daten, Bildverarbeitung,
    und Datenbank, die weitgehend von Wissenschaftlern am Goddard geschrieben
    Space Flight Center. Enthält viele Anwendungen von Interesse sind
    sowie spezielle astronomische Routinen.
    In der Regel gut dokumentiert intern
    und auch in Standard-Anwendungen überprüft. Updates treten in der Regel
    mehrmals pro Jahr. Übernimmt IDL v6.1 oder
    höher. Code und andere Unterlagen sind über
    ein Internet-Browser oder FTP aus
    http://idlastro.gsfc.nasa.gov.
    A
    Liste der funktionellen
    finden Sie auf der AstUseLib
    Ort. Updates werden in umgekehrter chronologischer Reihenfolge aufgelistet in
    eine Nachrichten Datei . An der UVA, werden die Routinen in AstUseLib gespeichert
    / astro / IDL / Astrolib .
  • MOUSSE (Multi-Option UIT Software System Environment): a
    Satz von Routinen weitgehend durch das Ultraviolet Imaging geschrieben
    Telescope Team bei GSFC. Diese Routinen, die nicht
    übertragen auf die AstUseLib sondern was nützlich bleiben
    erzielt werden (einzeln oder als tar-Datei) aus werden:

    http://www.astro.virginia.edu/class/oconnell/astr511/IDLexercises/minimousse
    .

    http://idlastro.gsfc.nasa.gov/ftp/contrib/landsman/mousse/

    . ->

    Ein Datei-Auflistung MOUSSE Routinen wie von 1996 (einschließlich
    die später in die AstUseLib übertragen), sortiert nach
    Funktion wird in
    “Aktuelle MOUSSE Software”
    .

    <! -
    Wenn Sie einen vollständigen Satz der Mousse-Routinen, ein gzip
    TAR-Datei enthält die neuesten Versionen (durch
    2001) ist <a

    (Hinweis: Die STScI MAST-Archiv vertreibt eine ältere
    Version von MOUSSE, CA. 1993, von
    http://archive.stsci.edu/uit/analysis.html
    . Das hat
    wurde von einer Version in der TAR-Datei ersetzt.)

    Einige MOUSSE Routinen, die spezielle gemeinsame Blöcke auf die Spur
    Bildanzeigen, etc., so MOUSSE erfordert, dass eine spezielle
    “Startup”-Datei ausgeführt (siehe werden
    unten
    ). MOUSSE Routinen sind selbsterklärend dokumentiert. Älter
    Routinen seit 1996 nicht aktualisiert worden und kann zeigen
    Inkompatibilitäten mit neueren Versionen IDL, neue Daten
    Formate, und so weiter. Lassen Sie mich wissen, wenn Sie begegnen solchen
    Schwierigkeiten. An der UVA, ist Mousse Software gespeichert
    / astro / IDL / Mousse .

    ->

  • Software aus der IDL Worldwide User Community: Der
    AstUseLib bietet eine große Menge von links an andere
    Standorte verteilt nützliche IDL-Software.
  • Persönliche Routinen , geschrieben von dir. IDL Benutzer schnell
    entdecken Sie die Vorteile des Schreibens ihre eigene IDL-Code selbst
    wenn sie über Scripts nicht vorankommen, einfache Beschleuniger
    Routinen oder angepasste Versionen von Benutzer-Library-Programme.
    Es ist zweckmäßig, aber nicht notwendig, um alle diese zu halten
    Routinen in einem Verzeichnis. In diesem Dokument verweisen wir auf
    Dieses Verzeichnis wie die “IDL-Verzeichnis.” Der UVa
    System-Standard-IDL-Datei Umwelt geht davon aus, dass die
    Verzeichnis mit dem Namen, oder Alias ​​auf, idl
    unter Ihrem Home-Verzeichnis.

Danksagung: Im Falle einer Veröffentlichung nutzen IDL
Software von anderen geschrieben, sollten Sie erkennen an den Autor.
Wenn Sie das Goddard-Software verwenden, ist die Astronomie GSFC Benutzer
Gruppe Bibliothek und Kurator Wayne Landsman sollte anerkannt werden.
Modifizierte Versionen anderer Software sollte propagieren die
Urheberschaft Liste im Kopfbereich jeder Routine.



Dieser Abschnitt bietet eine Einführung in die intrinsische und IDL

Benutzer bereitgestellten Anwendungen Routinen häufig in 2-D Bild verwendet
Verarbeitung und verwandten Arten der Auswertung der Daten und Berechnung. Nur
die häufigsten Optionen für jeden Befehl aufgelistet sind.

Vermutete:

  • IDL V6.1 oder höher in einer Linux-Workstation
    oder MAC OS-X-Umgebung.
  • Alle Beschreibungen unten sind für die Kommandozeilen-IDL-Umgebung
    und das grundlegende “Direct Graphics”-Modus von innen ausgeführt
    X-windows . Siehe “X-Windows-Notes” in
    Ende des Dokument.
  • Sofern nicht anders angegeben, sind alle nicht-intrinsische unten aufgeführten Routinen aus
    die Astronomie Benutzer-Bibliothek.

Dieser Leitfaden ist in Richtung der UVA / LINUX Installation von orientierten
IDL. Allerdings habe ich versucht, deutlich zu unterscheiden, welche Details
spezifisch an das lokale System, so dass andere in der Lage,
Benutzen Sie den Leitfaden.


  • Um IDL eingeben : Typ idl bei der Linux-Eingabeaufforderung aus
    einer X-Fenster.
    Dies beginnt eine IDL-Sitzung läuft in “Kommandozeilen-Modus” in der
    Terminal-Fenster, von dem es hieß. Ich empfehle, dass
    IDL-Novizen zu planen, um die Grundlagen in diesem Umfeld zu lernen, obwohl
    sie sollten auf jeden Fall erkunden Sie die Alternativen aufgelistet nächsten.

    • In den Versionen 5 und 6 können Sie stattdessen eine grafische Oberfläche,
      die “IDL Development Environment.” Um das zu geben, geben Sie
      idlde. IDLDE bietet eine Reihe von Komfortfunktionen
      für den erfahrenen Anwender.
    • Ab Version 7, rief eine aufwendigere grafische Oberfläche die “IDL
      Workbench “hat der Entwicklungsumgebung ersetzt. Wieder zu berufen
      Die Workbench, geben Sie idlde . Hier ist ein Screenshot von einer IDL Workbench Sitzung. Wenn
      Sie möchten die Workbench Ansatz zu erforschen, führen Sie die Übungen
      vorgeschlagen, in Kapitel 2 der Version 7 Anreise
      Started Handbuch.
    • weitere Alternative besteht darin, IDLWAVE Dies ist eine integrierte
      Redakteur / IDL Ausführung Anlage auf GNU Emacs. Die vielen leistungsfähigen
      Komfort-Features in IDLWAVE sind nützlich, vor allem an erfahrene IDL
      Programmierer. Hier ist ein Screenshot von einem IDLWAVE Sitzung.
    • Die folgenden Beschreibungen sind für die Kommandozeilen-Umgebung
      aufgerufen von der idl Befehl und beschäftigen “direkte
      Grafik “-Befehle (im Unterschied zum” objekt-orientierten
      Grafiken “verwendet, um GUI-Anzeigen zu erstellen). Allerdings ist die grundlegende
      Befehle, die während einer interaktiven Sitzung eingetragen sind die gleichen für
      alle Umgebungen (zB in der Workbench würden Sie diese in
      die Command Line Fenster gegenüber dem IDL> Eingabeaufforderung).
  • Fehlerbehebung beim Start
    • wenn Sie durch Meldungen beschwerte sich über die “Lizenz-Server” oder
      besagt, dass Sie in die verschoben wurden “7 Minuten Demo-Modus”,
      dann gibt es ein Problem mit der Lizenzierung Software , dass
      ermächtigt einzelne Benutzer, die ausführbare Dateien zugreifen IDL. Dies
      kann sein, weil zu viele Benutzer (in UVA, mehr als 50) versuchen,
      zu IDL (in diesem Fall, müssen Sie nur noch warten) zugreifen.
      Alternativ kann es zu einem Ausfall in der Lizenz haben
      Daemon, der Sie in die IDL-Quellcode zu verknüpfen ermächtigt. Sie
      werden Systeme-Level-Hilfe brauchen, um die letzteren Schwierigkeiten zu beseitigen.
      Zu UVA-, IDL-Quelltext wird von ITS gepflegt
      in Verzeichnisse unter / common / RSI .
    • Wenn Sie keinen Zugriff auf bestimmte Routinen, überprüfen Sie, ob
      Sie haben alle notwendigen Shell-Variablen definiert und
      Aliase
      richtig deuten auf die verschiedenen Verzeichnisse IDL.
      Sehen Sie sich die “Setup” Abschnitt
      am Ende dieses Dokument.
      ein falscher Pfad ist eine der häufigsten Ursachen für Probleme
      in IDL-Sessions.

        Wenn Sie auf der UVA Astronomie LINUX Netzwerk anmelden und nicht
        genau festlegen, keine IDL Umgebungsvariablen, werden Sie
        automatisch bis die neueste Version von IDL mit laufen soll
        richtigen Links zu allen aktuellen Software-Verzeichnisse, einschließlich der
        Astronomie Benutzerhandbuch Bibliothek, Mousse, und ATV.
    • Wenn der Windows-Umgebung nicht richtig reagieren, um zu überprüfen,
      Sie sicher sein, laufenden X-Fenster und dass die Fenster
      Parameter wurden ordnungsgemäß für die Art der visuellen Darstellung eingestellt
      Umwelt die Sie verwenden möchten (z. B. 8-Bit-Pseudocolor, 24-Bit
      Truecolor, etc). Das Linux-Terminal-Befehl xdpyinfo
      werden die unterstützten Modi für Ihre Anzeigeliste. Die IDL-Befehl
      Hilfe, / dev listet die aktuellen Eigenschaften Ihres
      Anzeige angenommen von IDL. Weitere Einzelheiten finden Sie in der Bild anzeigen Abschnitt weiter unten.
    • Wenn Sie Schwierigkeiten haben mit den Farben auf Ihrem Terminal zu verändern oder
      “Flashen” wenn Sie den Cursor während einer IDL-Session zu verschieben, siehe
      die Bildanzeige Abschnitt weiter unten.
    • Ihr persönlicher “IDL-Verzeichnis”, wenn Sie eine haben, werden nicht
      zugänglich, es sei denn es ist das aktuelle Verzeichnis oder es ist im Preis inbegriffen
      in der IDL_PATH Shell-Umgebungsvariable. An der UVA,
      Dies erfolgt automatisch, wenn das Verzeichnis im Root-Verzeichnis Ihrer
      und trägt den Namen oder Alias ​​zu, “IDL” . (Siehe die Umwelt-Setup-Datei Beispiel unten.)
  • Um die IDL-Umgebung anpassen können Sie
    Ausführen einer beliebigen Anzahl von speziellen Anweisung zum Starten jedes
    Sitzung.

      IDL wird immer unabhängig von den speziellen “Startup”-Datei
      definiert in der $ IDL_STARTUP -Umgebungsvariable. Ein
      Standard-Version dieser Datei muss vor dem MOUSSE ausgeführt werden
      Routinen ordnungsgemäß durchgeführt wird. Diese Option ist standardmäßig für UVA getan
      Astronomie Benutzer. Sehen Sie sich die “Setup” Abschnitt
      unten. Sie können die Start-Datei, wie Sie möchten (zB zum Öffnen
      spezielle Windows-oder Plotten Zur Haupt-Ebene gemeinsame etablieren
      Blöcke).

      Sie können auch ausführen persönlichen Startdateien weiter anpassen
      Ihre Sitzung. Diese sind meist Batch -Dateien (siehe “Program Execution” unten), indem Sie ausgeführt
      @ [Dateiname] .

  • Um LINUX-System-Befehle in IDL geben: eingeben
    $ als erstes Zeichen in der Kommandozeile
  • Zum Unterbrechen und Fortsetzen IDL : Verwenden Sie die Standard- ^ z und
    fg Linux-Befehle.
  • Um eine IDL-Routine zu unterbrechen: Typ ^ c . Zu
    weiterhin die gleiche Routine, Typ . con . Um das zu beenden
    Routine nach einer Unterbrechung und kehren Sie zum Haupt-Ausmaß, Art
    Retall .

      Wenn Sie in Cursor-Modus sind, können Sie haben, um den Cursor zu bewegen, die
      aktiven Fensters und drücken Maustasten zur Vervollständigung der Interrupt.
      Bei einigen Befehlen (z. B. Array-Berechnungen oder I / O) ein Interrupt kann
      benötigen einige Zeit, um wirksam werden.

    • während einer interaktiven Sitzung, sind Ihre Befehlszeile Einträge
      gespeichert in einer Befehl Rückruf Puffer (wie in LINUX
      tcsh ). Sie können mit der “Pfeil nach oben” (“Pfeil nach unten”) Tasten
      rückwärts zu bewegen (vorwärts) durch den Befehl Puffer zu erinnern,
      Befehle oder bearbeiten. Emacs-ähnliche Bearbeitung von Befehlen.
      Der Standardwert für den Befehl Länge des Puffers
      ist 20 Befehle. (Es ist sinnvoll, diese auf ein höheres Set
      Zahl durch die Definition der System-Variable ! EDIT_INPUT = 100
      in der Startup-Datei. Diese Option ist standardmäßig in der Startup-MOUSSE getan
      Dateien.) Recall / Edit ist ein außerordentlich nützliches Mittel zur Iteration
      während einer IDL-Sitzung.

      In Bearbeitung, darauf achten, nicht die ^ d -Befehl auf ein geben
      leere Zeile, da dies Ihre Sitzung zu beenden!

  • Um eine lange Erklärung auf der folgenden Zeile weiter: Ende der Zeile mit
    Ein Dollarzeichen ($ ). Sie können dies überall in der Zeile, in einem
    Platz wäre, außer in einem String-Variable erlaubt sein.
  • Um mehrere Befehle in einer einzigen Zeile geben: trennen Sie diese
    mit dem Ampersand (& ). Z. B.:

      x = a + b & y = sqrt (x)

      <-!. Finden, wo = (x GT 100, count) & Print, count

      ->

      Ein Satz von & -Linked-Befehle in einer einzigen Zeile
      stellen eine “Mikro-Programm” , die ausgeführt werden kann, dann bearbeitet und
      mit ein paar Tastendrücken erneut ausgeführt.

  • Um IDL lassen: Typ Abfahrt oder ^ d .
    Alle Fenster und Daten im RAM werden
    gespült.
    Wenn Sie die Daten speichern möchten, verwenden Sie die
    sparen -Befehl oder verschiedene andere Datei schriftlich Befehle
    vor Beenden.

    TCM-


    href=”#contents”> [Bis zu Inhalt]

    Exelis Dokumentation

      • Der einleitende IDL Leitfaden nennt <a

        Erste Schritte mit IDL Started — klicken für eine PDF-Version. Die
        gedruckte Versionen der älteren IDL
        Basics Handbuch für V3 und V4 führen Sie durch eine Reihe von
        interessante Anwendungsbeispiele und bieten hilfreiche Hinweise.

        Der beste Weg, sich schnell daran erinnern, von dem Betrieb der intrinsischen
        IDL Routinen ist es, zur <beziehen ein

        Quick Reference . Leider ist dieses “schnelle” Leitfaden
        hat sich eher schwerfällig, und, zumindest für einen Verweis auf grundlegende IDL
        Funktionalität, kann es einfacher sein, eine der älteren Versionen von benutzen
        die
        IDL HandiGuide
        .

        Wahrscheinlich werden Sie finden es hilfreich, eine Hardcopy des Schnell machen
        Referenz oder HandiGuide Abschnitte mit der Überschrift
        “Funktionale Liste”, “Syntax”, “Statements”, “Executive-Befehle”,
        “Sonderzeichen”, “tiefgestellte”, “Operatoren”, “Server-Systemvariablen”,
        und “Graphics Information.” Das wird insgesamt nur etwa 30 Seiten.

    • IDL wird gründlich in elektronischen Handbüchern dokumentiert. Exelis erlässt ein
      vollen Satz Handbücher im PDF-Format mit jeder Lizenz. Wenn der PDF
      Versionen auf Ihrem Computer installiert wurden, können sie
      Zugriff durch den Linux-Befehl idlman . Die meisten
      Handbücher sind wichtig Mit IDL, Die IDL
      HandiGuide / Quick Reference, Bau IDL Anwendungen / Application
      Programmierung, und Die IDL-Referenz
      Guide . Dies sind online zugänglich innerhalb einer IDL
      Sitzung durch einen HyperHelp Anlage. (Anmerkung: Die Titel einiger
      Handbücher wurden mit der Versionsnummer geändert.)

      Browser Zugriff auf die Dokumentation:

    Andere IDL-Hilfe-Ressourcen :

    Bestimmung IDL Version Number

    • an der Linux-Eingabeaufforderung idl ; die Versionsnummer
      erscheint auf Ihrem Terminal am Anfang eines jeden IDL-Sitzung.
    • Oder: überprüfen Sie das Verzeichnis, auf die der Linux Shell-Variable
      $ IDL_DIR Punkte.
    • Oder: innerhalb einer IDL-Session, Typ Print, Version oder
      Hilfe! Version, / str , um die Informationen über die Version anzuzeigen
      und übernahm das Betriebssystem in der System-Variable gespeichert
      ! Version .

    durch Beispiele lernen

      Eine der besten Möglichkeiten, zu lernen, wie
      schreiben und IDL-Programme ist einfach zu inspizieren vorhandenen IDL
      Programme
      in den AstUseLib Verzeichnisse. Sie können
      mehr ihnen in Linux, oder verwenden Sie das AstUseLib GETPRO Routine
      kopieren Sie sie in Ihrem lokalen Verzeichnis. Um das öffentliche Routinen während einer IDL sehen
      Sitzung, Typ . laufen-t [Routine name] .

    Informelle Befehle

    • idlhelp oder idlman : vom Linux gegeben
      Eingabeaufforderung öffnen diese Befehle die PDF-Versionen der Standard-IDL
      Handbücher (wenn sie auf Ihrem System geladen).
    • :? gegeben von innen IDL, ruft diese die IDL
      HyperHelp Anlage. Klicken Sie auf das Register “Index” für eine Liste aller
      Einträge (Listen allgemeine Diskussionen sowie individuelle Routinen,
      diese in allen-Kappen aufgeführt).
    • [Befehl] :? HyperHelp bietet Informationen über die gegebene
      intrinsische IDL-Befehl. Gilt nicht für vom Benutzer bereitgestellten Routinen funktionieren.
      Hinweis: kein Leerzeichen oder Anführungszeichen zwischen und Namen.
    • [Befehl ohne Argumente] : Die meisten AstUseLib und andere
      Benutzer angegebenen Verfahren sind codiert, so dass, wenn Sie die Namen eingeben
      der Routine ohne Argumente, ist eine Liste der zu erwartenden Argumente
      gedruckt auf dem Bildschirm. Gilt nicht für intrinsische IDL Routinen arbeiten
      (Siehe aber helfen, / rou unten). Funktioniert nicht auf die meisten arbeiten
      Funktionen (wie die Verfahren dagegen).

        Dies ist eine nützliche Konvention, Code in
        Ihre eigenen Programme. Verwenden Sie die n_params -Funktion, um Sinn
        das Fehlen von Eingabeparametern, wie im folgenden:

           if (n_params (0) eq 0) then begin
                 print, 'Unterprogrammaufruf: Programmname, var1, var2, var3'
                 zurückkehren
               endif
          

      <-

    • Mann : Der Mann -Befehl ohne Argumente
      erzeugt ein Grafik-Display-Menü ähnlich wie erzeugt durch
      ? aber die Angaben über AstUseLib, Mousse,
      und andere Benutzer geschriebenen Routinen. Mann MOUSSE ist Programm
      geschrieben von Wayne Landsman und ist verfügbar unter:

      http://idlastro.gsfc.nasa.gov/ftp/contrib/landsman/help/ .

        Hinweis: Die Themen hier sind nur diejenigen
        “Pro”-Dateien, die durch eine spezielle Dokumentation wurden analysiert
        Extraktion Routine ( mk_library_help ) und in einen speziellen
        Verzeichnis helfen. Dies wird gewöhnlich durch die Person, die behauptet getan
        Ihre IDL-System.

      ->

    • Mann, [Befehl-Name-Zeichenfolge] : Der MOUSSE
      Mann Befehl gibt die
      Informationen Header der genannten Routine in Ihrer IDL-Befehlsfenster. Es
      läuft auf jedem korrekt formatierte IDL-Routine in der
      IDL_PATH . Zum Beispiel, wenn Sie Informationen über die
      AstUseLib FITS_READ Befehl, geben Sie ein:

      Mann, 'fits_read

        Beachten Sie, dass das Argument der Mann muss ein IDL sein
        Zeichenfolge — i. e. sie müssen in Anführungszeichen (wobei jedoch der nachfolgende Zitat werden
        Marke kann weggelassen werden). Geben Sie nicht den . Pro Suffix
        für den Dateinamen.

        Der Mann -Funktion arbeitet durch Auffinden der ersten Datei
        mit dem Namen "[Befehl]. Pro" in die
        IDL_PATH und listet all diese Zeilen in der Datei
        zwischen den beiden Linien, die mit “; +” und “; -” in den ersten beiden
        Spalten.
        Es wird dringend empfohlen , dass Sie Überschriften platzieren
        dieser Art in Ihrer eigenen *. Pro-Routinen. Es gibt eine Standard-
        internen Header-Format von den meisten IDL Programmierer angenommen, obwohl Sie keinen
        Um dies in Ihren eigenen Routinen zu folgen.

        Leider intrinsische IDL Routinen können nicht durch Mann zugegriffen werden .

        <-! Die IDL Benutzer-Bibliothek Routine doc_library, [Befehl-Name-Zeichenfolge]
        hat eine ähnliche Funktionalität, sondern listet auch den Verzeichnispfad zur Datei.

        ->

    • $ mehr [Verzeichnis / command.pro] : listet alle lokalen Programm.
      Man könnte definieren, Linux-Shell-Variablen $ namens ATV_DIR,
      ASTUSE_LIB $,
      etc, um in die entsprechenden Verzeichnisse zu verweisen
      vermeiden, dass Sie daran erinnern, welche das sind.
    • GETPRO, [Befehl] : schreibt eine Kopie jeder nicht-proprietären
      Prozedur-Datei in das aktuelle Verzeichnis. Funktioniert nicht auf zu arbeiten
      intrinsische IDL-Software. Können Sie anzeigen oder bearbeiten Sie die Prozedur, um
      die Funktion zu modifizieren, wie gewünscht. Wenn Sie nicht ändern Sie den Namen, und
      legen Sie sie in der IDL-Weg, der vor seinem ursprünglichen Standort, dann ist Ihr
      Version kompiliert und ausgeführt werden anstelle der nominellen ein.
      Es kann sein, sicherer, den Namen zu ändern ( beide der Name der Datei
      und der Name der Prozedur in der Datei)
      um zu verhindern,
      unbeabsichtigten Fehlern kommen.

        Hinweis: ein Mangel an aktuellen Benutzer angegebenen Verfahren
        Dokumentation ist, dass die Abhängigkeiten (Routinen, die von einem bestimmten Namen
        Verfahren) sind nicht aufgeführt. Wenn Sie GETPRO verwenden zu erhalten
        und bearbeiten Sie eine Routine versorgt sich anders zu verhalten, kann dies
        unbeabsichtigten Folgen für das Funktionieren der anderen Verfahren.
        Eine Methode der Suche nach solchen Interaktionen würde zu sein
        grep die ASCII-Dateien in den Verzeichnissen für
        andere Hinweise auf die Routine, die Sie ändern möchten. Ein schneller Weg,
        zu identifizieren, was Subroutinen von einem bestimmten Programm aufgerufen werden, ist zu
        . laufen das Programm als ersten Schritt in einer IDL-Sitzung.
        Jedes Unterprogramm wird auf dem Bildschirm aufgelistet, wie es kompiliert wird.
    • laufen-t [Befehl] :. eine alternative Methode zur Gewinnung eines
      Listing eines Routine. Dies kompiliert [command.pro] und
      gleichzeitig senden Sie eine Liste auf dem Bildschirm mit Zeilennummern
      angehängt (gleiche Nummer wie in IDL Fehler Aussagen gedruckt, so ist
      nützlich zur Fehlersuche). Um den Eintrag in einer Datei zu speichern, verwenden Sie die
      Form:. run-l (Dateiname) [Befehl] . (Achtung: Wenn Sie
      fälschlicherweise den Dateinamen weglassen hier können Sie beginnen, zu überschreiben
      die [Befehl]-Datei, wenn es in Ihrem aktuellen Verzeichnis.)
    • Print, [Variable (n)] : zeigt den Wert aller aktiven Variable (n)
      auf Ihrem Terminal. Werke für jeden Variablentyp, sondern in der Achtung
      Bei großen Arrays (!)

        Formatierung: Zeilenvektoren sind über die gedruckte
        Bildschirm, werden Spaltenvektoren im Fenster nach unten gedruckt.

        Verwenden Sie die printf -Befehl, um die Ausgabe zu einem ausgewählten senden
        Datei oder ein anderes externes Gerät.

    • Hilfe : listet alle aktiven Variablen, deren Eigenschaften,
      kompilierte Programme, Informationen über die Lagerbereiche, etc.; verschiedene
      Optionen. Aber tut nicht erklären Befehle. Es gibt viele
      optionalen Schlüsselwörter für die Verwendung mit Hilfe . Beispiele werden angegeben,
      unten. Um eine vollständige Liste zu bekommen, helfen Typ ? .

      • Hilfe / rou : druckt Liste der Argumente für alle kompilierten Routinen
        (Andere als intrinsische IDL-Routinen). Listen Prozeduren und Funktionen
        getrennt.
      • Hilfe / sy : gibt die aktuellen Werte aller “Systemvariablen”, das sind
        spezielle Variablen auf alle Routinen bekannt. Namen von diesen beginnen
        mit einem “!”, z.B. ! dir,! Weg, usw.
      • Hilfe / rec : Drucke Inhalte der Befehl Rückruf Puffer in umgekehrter Reihenfolge
      • Hilfe, / dev : Drucke Parameter-Einstellungen für aktuelle Grafik-Gerät
      • Hilfe / mem : listet aktuelle Speichernutzung<-
      • Hilfe / Pro und Hilfe / func : Listen-Namen und
        Parameter für kompilierte Prozeduren oder Funktionen bzw. (andere
        als intrinsische IDL-Routinen)

        ->

    • Print, d oder Druck, p :! drucken Sie das System
      Variablen, die die Geräte-Display und die Darstellung von Kontrollergebnissen
      Umwelt sind. Siehe die IDL-Handbüchern.
    • Druck, Weg : drucken Sie den aktuellen Pfad Liste von Verzeichnissen
      Gesucht wurde nach *. Pro-Routinen. Da viele Instanzen ausgefallen oder
      fehlende Software auftreten, weil Ihr Pfad falsch eingestellt ist, ist es
      nützlich, sich daran zu erinnern, um zu überprüfen ! Weg ausführen, wenn Sie in
      Schwierigkeiten. Wenn die ! Weg Zeichenfolge ist zu lang, um zu drucken, verwenden
      die strmid Routine zu erstellen und zu drucken Auszüge aus
      es.
    • $ printenv : listet alle Standard-Shell-Parameter, einschließlich der
      IDL-Verzeichnis Standardwerte, falls definiert.

      <! -

    • tvstatus : eine Mousse-Routine, die Eigenschaften von Listen
      aktiven Fenster

      ->


    • Startet den Zeitschrift -Dienstprogramm, das
      Datensätze in einer Datei alle Einträge, die Sie machen und den meisten
      IDL Antworten
      . Bestimmte Reaktionen (z. B. zu helfen ) sind nicht
      aufgezeichnet, um zu verhindern unübersichtlich Sie die Datei.

      <-! Einige Benutzer-Routinen
      auch deaktivieren, Zeitschriften heraus.

      ->

        Jeder Text, den Sie auf einer bestimmten Linie durch ein Warnsignal angekündigt
        Semikolon
        wird vom Compiler ignoriert werden und
        enthalten in der Journal-Datei als Kommentar — also können Sie Ihre Anmerkungen zu versehen
        Sitzung interaktiv
        , um Ihr Herz begehrt.

        Ihre Journal-Datei geschrieben und geschlossen werden, wenn Sie eingeben
        Zeitschrift oder wieder Abfahrt Ihre IDL-Sitzung.

        Es ist schwer, den Wert zu halten IDL Zeitschrift Dateien übertreiben
        für ernsthafte Arbeit.
        Es ist gute Praxis immer, ein Tagebuch zu verwenden
        Datei, so dass Sie überprüfen oder zu reproduzieren, was Sie getan haben,
        erholen Fehler, und so weiter. Wenn Sie bearbeiten Sie die Fehler und
        unerwünschten Kabelsalat Ihrer Zeitschrift Dateien, haben Sie ein handliches
        laufende Aufzeichnung Ihrer Arbeit.

        Journal-Dateien ermöglichen eine schnelle erneute Schaffung eines IDL-Sitzung, in der ganzen
        oder einen Teil, oder (wenn die Tätigkeit wert ist, gespeichert und Wiederholen war) kann
        bearbeitet in Form eines Hauptprogramm, Unterprogramm oder ein Skript.

        Warnung: die Zeitschrift Routine überschreibt
        eine vorhandene Datei mit dem angegebenen [Dateiname] ohne
        Warnung. Verwenden Sie eindeutige Namen für jede Sitzung. Auch die Zeitschrift
        Datei kann im Falle eines IDL-Crash oder einem Systemausfall verloren
        (Z. B. Stromausfall). Für lange Sitzungen, möchten Sie vielleicht zu planen
        mehr als einer Journal-Datei.


    href=”#contents”> [Bis zu Inhalt]

    Alle intrinsische IDL-Programme werden zusammengestellt und zur Ausführung bereit, wenn
    Sie beginnen Ihre Sitzung
    . Andere Programme werden in der Regel nur kompiliert
    wenn Sie fordern sie. Eine Liste aller kompiliert nicht-intrinsische Routinen ist
    vorgestellt, wenn Sie Hilfe geben, / rou .

    Hinweis : alle IDL Hauptprogramme, Unterprogramme (“Verfahren”),
    und Funktionen sind davon ausgegangen, dass in Dateien mit der Erweiterung sein
    ausdrückliche Erweiterung ‘. Pro’.

    Variablen

          • Dieses Array wird 512 Elemente breit (Anzahl der Spalten) und
            256 Elemente hoch (Anzahl der Zeilen). Beachten Sie, dass diese Spalte / Zeile
            Zuordnung Konvention ist umgekehrt von FORTRAN und normalen
            Matrix-Schreibweise, sondern dass es entspricht dem normalen
            f (x, y) grafische Notation. IDL-Arrays werden gespeichert
            mit dem ersten Index am schnellsten verändernden
            . Dies erlaubt eine schnellere
            Anzeige von Bildern, weil die Elemente auf jeder
            Horizontalabtastzeile werden zusammenhängend. gespeichert

            Beachten Sie auch, dass (wieder bis zu grafischen Standards entsprechen) die
            erste Element jeder IDL Vektor-oder Array ist immer bei Index
            0 nicht 1
            . Zum Beispiel wird in das Array
            z = [20,30,40,50] , z [0] = 20 und
            z [3] = 50 . Aber z [4] ist nicht definiert.

            Wenn Sie eine lange Zeichenfolge (zB im Format-Anweisungen) zu schaffen,
            Sie können Teile des Strings auf separaten Zeilen definieren und dann
            verketten sie. (Z.B. stringtot =
            string1 string2 +
            ).
        • z = 1.0e-3 schafft eine Gleitkomma-Skalar

          c = 3.0d10 schafft eine Doppel-precision floating point skalare

          a = [1,2,3] & a = [a, 4,5] schafft und erweitert sich dann eine ganze Zahl Vektor

          testdata = fltarr (512256) erzeugt eine 512×256 2-D-Fließkomma
          Array mit Null-Einträgen.

          testdata = findgen (512256) erzeugt eine 512×256 2-D-Fließkomma
          Array mit jedem Element auf den Wert der 1-D
          Index (beginnend bei 0). So testdata (100,0) = 100,0, während
          testdata (0100) = 51200,0.

          name = "Maxwell" erstellt eine Zeichenfolge

          “Strukturen” in IDL sind Sätze von anderen Variablen (eine willkürliche
          Mischung), die durch einen einzigen Namen bezeichnet werden. Sie können
          sehr nützlich bei der Datenanalyse Probleme.

      • So erstellen oder ändern Variablen, einfach verwenden Sie sie in einer Zuweisung
        Erklärung
        . Speicher für jede wird automatisch aufgehoben und erweitert
        auf unbestimmte Zeit. Kein Pre-Deklaration von Variablen ist notwendig . Die Art
        eine neue Variable wird aus dem Zusammenhang ergibt. Für
        Details über Typen von Variablen in IDL, siehe “Teil II: Die Komponenten der
        Die IDL-Sprache “in der Anwendung
        Programmierung Handbuch. Z. B.:

        Die Hilfe -Befehl gibt Ihnen eine Liste der aktiven Variablen
        und deren Eigenschaften.

        Um Variablen (z. B. wenn Sie zu viel Speicher haben, löschen
        im Einsatz), Verwendung DelVar . Sie können den Inhalt überschreiben
        einer Variablen einfach mit einer Zuweisungsanweisung.
        Ein schneller Weg, um Arrays ist einfach zu spülen setzte sie gleich einem Skalar
        (Z. B. a = 0 ). Wenn Sie eine Menge
        von Dateien ist es auch gut, um Datei Quote von Fehlern zu verhindern
        gelegentlich gibt eine enge , / alle -Befehl.
        Dies sind spezielle Variablen, deren Namen durch vorangestellt!
        (Z. B. ! Help_path ), sind, dass Universell einsetzbar in allen IDL bekannt
        Routinen
        . Etwa 30 davon sind vordefiniert und unterstützen mit verschiedenen
        Aspekte der Programm-Operation hauptsächlich Grafikausgabe. Sie können
        Ihr eigenes System Variablen mit dem defsysv -Befehl. Sie
        können den Wert der Systemvariablen ändern (mit Ausnahme von “read-only”
        Variablen) mit Zuweisungsanweisungen. Um die aktuellen Werte sehen
        alle Systemvariablen, Typ Hilfe / sy .
    • Erstellen:

      Löschen:

      Systemvariablen:

    Mathematische Operatoren und Funktionen

      • + - * / ^ + + - MOD> WENN DANN NICHT UND EQ GE LT # ... etc

        Siehe Gebäude IDL Anwendungen / Application
        Programmierung für eine vollständige Beschreibung.

        SQRT EXP ALOG ALOG10 SIN ATAN ASINH GAMMA ROTATE randomn

        GAUSSFIT POLY_FIT INT_3D interpolieren SORT STRMATCH ... und so weiter.

        Sehen Sie sich die IDL Reference Guide für weitere Einzelheiten.

        Hier ein und y sind Vektoren, die erst durch dieses definiert
        Linie; xc und sigma Skalare sind vordefiniert;
        x ist vordefiniert und kann ein Skalar oder Vektor sein, und
        z und gaussfun wird vom gleichen Typ sein;
        im ist ein vordefinierter Vektor-oder höher-dimensionalen Array, und
        sm_im wird vom gleichen Typ sein; photon_count / kbd> und
        ran_count sind Skalare, und photon_count ist
        vordefinierten, das Ausgangssignal des randomn eine ganze Zahl, wenn der
        poisson Schlüsselwort wird festgelegt, aber es wird automatisch umgewandelt
        nach Fließkomma; wenn Saat definiert ist, wird es als ein verwendet
        Ausgangsparameter zu erzeugen eine Reihe von Zufallszahlen bei zukünftigen
        Anrufe (siehe Hilfe Listing randomn ).

    • IDL unterstützt eine ganze Reihe von arithmetischen, relationalen, logischen, Min / Max, und Matrix
      Betreiber. Unter anderem:

      IDL bietet über 750 intrinsische mathematische und andere Funktionen, nicht
      um die Hunderte von anderen Anwesenden in der IDL-Benutzerhandbuch Bibliothek zu erwähnen.
      Zum Beispiel:

      Viele der Operatoren und mathematischen Funktionen übernehmen Vektor-oder Array
      Argumente sowie Skalare.

      Typische IDL Befehlszeilen könnte wie folgt aussehen:

       
           a = [45, 90, 135, 180] * (! Pi/180.) & y = sin (a)
      
           z = ((x-xc) ^ 2) / (2,0 * sigma ^ 2) & gaussfun = exp (-z) / (sigma * sqrt (2,0 *! pi))
      
           sm_im = glatt (IM, 5)
      
           if (photon_count LT 30) dann ran_count = randomn (Seed-, Poisson = photon_count)
      

    Executive-Befehle

      • IDL wird suchen Sie die erste Datei mit diesem Namen in der
        IDL Weg
        . Hüten Sie sich vor Verwendung von Namen für Ihre eigenen Verfahren, das sind
        die gleichen wie die der intrinsischen oder mitgelieferte Library-Routinen (außer Sie
        bewusst die Absicht, ersetzen den).

        Programm-Dateien können mehr als ein IDL-Programm.
        Einfach verketten Programme zusammen. Alle durch die kompiliert werden
        . laufen -Befehl erkannt und künftig getrennt
        fordert. Es wird jedoch nicht empfohlen, dass Sie Programme packen
        auf diese Weise. Unter anderem, verlieren Sie die Fähigkeit des Lesens
        internen Header mit dem Mann -Befehl (siehe oben).

        Sie tun nicht müssen eine separate geben. laufen
        Befehl, um eine Subroutine, die in Ihrem Pfad ist auszuführen und
        hat einen Dateinamen identisch mit seinem Namen der Prozedur, außer für
        die hinzugefügt ‘. Pro “-Erweiterung
        . Einfach geben Sie den Befehl den Namen ,
        mit allen erforderlichen Parametern und IDL werden automatisch
        Suche den Weg für eine solche Datei und ausführen. Wenn der Dateiname
        stimmt nicht mit den Namen der Prozedur enthält, dann müssen Sie
        . laufen die Datei separat.

        Sie tun haben, um eine verwenden. Laufen [name] -Befehl
        zur Ausführung eines Hauptprogramms die erste Zeit. Erneut ausführen, können Sie
        verwenden . gehen .

        Die . Laufen [name] -Befehl wird kompilieren aber nicht ausführen
        eine Prozedur oder Funktion Datei.

        Sie müssen neu run ein Befehl, dessen Verfahren Datei, die Sie bearbeitet haben
        während der Sitzung oder die Revisionen nicht wirksam.

        Jede Zeile wird einzeln ausgeführt, so dass mehrere Befehle Linie
        mit Do-Schleife etc. nicht in einem Skript enthalten sein. (Aber
        Unterprogramme, die aus der Batch-Datei aufgerufen werden, natürlich,
        gehören solche Funktionen.)

        Sie können gemeinsame Blöcke, compile Verfahren und so weiter mit
        Batch-Dateien. Text nach einem Strichpunkt (; ) auf einer gegebenen Strecke ist
        vom Compiler ignoriert.

    • laufen [name] :. kompiliert die IDL-Prozedur (en) oder Funktion (en)
      in der Datei [name]. Pro . Wenn dies ein Hauptprogramm, auch
      führt sie aus. Notieren Sie sich die Zeit als das erste Element dieses Befehls.

      con :. Fahren Sie ein Programm durch eine unterbrochene
      vorprogrammierte Stopp -Befehl.

      . gehen : Starten Sie eine zuvor kompilierte Hauptprogramm aus
      beginnen.

      @ [name] : Führen Sie die “Batch” -Datei
      [name]. Pro mit einer Liste von Befehlen in der IDL
      gleichen Form, wie sie von der Tastatur eingegeben werden würde. Kann verwendet werden
      um eine große Hintergrund-Job ausführen oder eine benutzerspezifische
      Initialisierungsdatei am Anfang einer Sitzung. Stapel
      Dateien werden häufig verwendet, zu duplizieren oder zu durchlaufen eine Reihe von
      Befehle aus einer früheren Sitzung IDL (zB für Grafiken abgeleitet
      Ausgabe). Ein solcher Satz wird als “script” .

      Eine effiziente Möglichkeit, aktualisieren oder auszuführen Teile eines
      Skript
      — e. g. eine Befehlsfolge erfasst mit Hilfe der
      Zeitschrift Dienstprogramm — ist es, einen Editor auf das Skript in einem Lauf
      Fenster während der Ausführung IDL in eine andere und Schneid-und-Einfügen
      Fetzen von Code zwischen ihnen. Diese Methode ist besonders nützlich, wenn
      Sie haben eine große Anzahl von Optionen
      (Z. B. tun, Statistiken, Histogramme und Plots auf einer Datendatei
      enthält viele verschiedene Variablen).

    ausführen : Der ausführen Befehl führt jede Zeichenfolge
    mit einer richtigen IDL-Befehl. Die Syntax ist

      result = execute ([string])

      Hier Ergebnis wird 1 sein, wenn der Befehl erfolgreich war
      andernfalls 0.

      Dies bietet eine leistungsfähige Mittel zur Anpassung an die Programmausführung
      Eventualitäten während der Ausführung. Zum Beispiel können Sie ein neues
      Variablen, deren Namen und Eigenschaften beruhen auf Informationen basieren lesen
      aus einer Datei mit unbekanntem Inhalt vor der Zeit. Verwenden Sie integrierte String
      Manipulation Dienstprogramme, um den Befehl String zu erstellen.

    Programme

    Die Programme sind Textdateien, die von IDL-Kommandos strukturiert. Sie können gespeichert werden
    überall in Ihrer IDL-Pfad. Es gibt drei verschiedene Arten von
    Programme, von denen jede etwas anders interagiert mit Ihrer aktiven
    IDL-Sitzung. Coding Regeln unterscheiden sich leicht in jedem Fall.

    • Wichtigste Programme : ein Hauptprogramm ist einfach eine Datei von IDL
      Befehle, die zusammengestellt und durch eine ausgeführt werden können. laufen
      Befehl. Wichtigste Programme verhalten sich als ob Sie mit der Eingabe desselben
      Befehle über die Tastatur außer , dass Sie voll haben
      Zugriff auf mehrzeilige Einträge, Blöcke, Schleifen, etc., welche nicht
      von dem Endgerät verwendet werden. Ein Hauptprogramm wird jeder erkennen
      Variablen oder Routinen bereits aktiv an der Haupt-Ebene Ihres
      interaktive Sitzung
      , und diese aktiv bleiben, wenn das Programm
      abgeschlossen ist.

        Haupt-Programm-Dateien nicht über einen speziellen Header. Einfach starten mit
        die erste ausführbare Anweisung. Ein Hauptprogramm Datei muss mit nahe
        ein Ende -Anweisung.

        Hauptprogramme kann nicht durch ein Verfahren oder eine Funktion ausgeführt werden.

    • Verfahren: IDL “Prozeduren” wie Unterprogramme ausführen in
      FORTRAN. Alle Eingänge und Ausgänge müssen angegeben werden auf der Kommandozeile
      das ruft die Routine (oder gingen durch gemeinsame Blöcke oder IDL
      Systemvariablen). Die Verfahren können aus der Hauptebene aufgerufen werden
      oder durch ein anderes Verfahren. Prozeduraufrufe sehen aus wie dieser (Anm.
      das Fehlen von Klammern):

        •   PROCEDURE_NAME, input_parm_1, input_parm_2 ... output_parm_1, $
          output_parm_2 ... KEYWORD_1 = Wert1, Wert2 = KEYWORD_2 .... 
      • Parameter für Input / Output werden durch Komma getrennt . Wenn
        Reihenfolge der Parameter ist zu lang für eine einzelne Zeile, brechen sie in
        mehrere Zeilen mit dem Dollarzeichen Fortsetzung Konvention (wie
        hier). Informationen können auch durch gemeinsame Blöcke oder überlassen werden
        Variablen.
      • Prozeduren und Funktionen nicht erkennen kann Variablen
        aktiv in Ihrem interaktive Sitzung, sofern sie nicht weitergegeben werden
        Parameter, die in gemeinsamen Blöcke oder als System
        Variablen
        .
      • Ebenso kann der Hauptebene des IDL nicht erkennen Variablen
        , die in Prozeduren oder Funktionen definiert, sind aber nicht bestanden
        durch Abrufen der Parameter, gemeinsame Blöcke oder System-Variablen zurück
        zum Hauptprogramm. Interne Variablen
        verschwinden auf einem normalen Beenden einer Prozedur.

          Im Prozess der Debugging-Verfahren, werden Sie wollen, laufen unter
          on_error, 0 (das ist die Standardeinstellung). Wenn ein Fehler auftritt
          in einem Verfahren, wird diese Ausführung bei der Prozedur-Ebene zu stoppen
          und ermöglichen es Ihnen, alle lokalen Variablen zu inspizieren.

        Wie in

      • FORTRAN, müssen gewöhnlichen Parameter in der angegeben eingegeben werden
        Bestellung
        . Trailing-Parameter können weggelassen werden, wenn dort Standardwerte sind
        für sie in die Subroutine codiert.
      • Keywords sind Parameter, die Informationen weiterzugeben, um
        Unterprogramme, aber anders als die Standard-Parameter wie
        aufgeführten im vorhergehenden Beispiel
        ( Input_parm_1, ... output_parm_2 .. ), sind sie
        optional . Sie müssen nicht in der Unterroutine angezeigt
        rufen, und falls vorhanden können sie in beliebiger Reihenfolge erscheinen . Sie
        Deshalb stellen eine leistungsstarke Ergänzung zum starren Subroutine
        rufen Konventionen der anderen Hochsprachen und sind besonders
        in dem Fall nützlich komplexer Datenverarbeitungsaufgaben. Werte von
        Schlüsselwörter werden in der Regel durch Zuweisungen bestimmt:

        PROCEDURE_NAME, parm_1, parm_2 ..... KEYWORD_1 = 100., KEYWORD_2 = 'Dumbo', ...

        Alternativ kann in dem Fall von Schaltern, können Stichworte, um ein gesetzt werden
        Wert von 1 durch die folgende Syntax:

        PROCEDURE_NAME, parm_1, parm_2...../KEYWORD_1, .....

        Das Schlüsselwort Name in einer aufrufenden Anweisung kann abgeschnitten , um so kurz
        eine Zeichenkette wie kann das Schlüsselwort, um eindeutig identifiziert werden.

        Die keyword_set (name) Funktion kann innerhalb eines Unterprogramms verwendet werden
        Sinn, ob ein bestimmtes Schlüsselwort durch den Benutzer gesetzt wurde
        der aktuelle Aufruf der Subroutine.

        IDL unterstützt “Stichwort Vererbung” , so dass Schlagworte, die
        kann nicht wirklich in der Prozedurdeklaration definiert werden, sondern die
        sind in dem Befehl, dass das Verfahren einbezogen sein können genannt
        durchlaufen zu anderen Verfahren , das tun sie erkennen.
        Dies fügt eine beachtliche Flexibilität, um das Schreiben interaktiver
        Software. Siehe die IDL-Handbüchern.

      • Vorgehensweise Dateien müssen mit einem speziellen Header-Zeile zu beginnen, wie folgt: PRO Name, parm_1, parm_2, ... KEYWORD_1 = KEYWORD_1 ... und muss mit einem Rückkehr und ein Ende schließen
        Aussage.
    • Funktionen: IDL “Funktionen” wie Funktionen in durchführen
      FORTRAN. Sie geben die Ausgabe in eine einzige Variable, die auf der linken Seite einer Zuweisung erscheint
      Aussage:

      result = FUNCTION_NAME (parm_1, parm_2 ... KEYWORD_1 = KEYWORD_1 ...)

      • Die Klammern sind erforderlich, und die Parameter in ihnen muss
        durch Kommas getrennt. Wie bei Verfahren, da nur die Parameter
        in der aufrufenden Sequenz oder gingen durch gemeinsame Blöcke oder
        Systemvariablen werden an die Funktion bekannt sein.
      • Lassen Sie sich von dem Format der Funktionsaufruf Irre geführt werden. Funktionen
        kann eine große Menge an Informationen zurück. Die Variable auf der linken Seite
        Seite kann ein Array oder eine Struktur sein. Die Parameter in
        Klammern kann auch zum Ausgang zurückkehren werden (wie in der
        count -Parameter des wo -Funktion).
        Informationen können auch durch gemeinsame Blöcke oder überlassen werden
        Variablen.
      • Beachten Sie die mögliche Verwirrung, die entstehen können, weil das Format von
        Aufruf einer Funktion ist vergleichbar mit einer Zuweisung mit ein
        Anordnung auf der rechten Seite. In IDL V5 oder später, das Standardformat für
        Angabe von Indizes in Arrays verwendet nun Klammern, anstatt
        — z.B. Klammern. array [i, j, k] — obwohl späteren Versionen noch
        tolerieren die Verwendung von Klammern. In älteren Versionen von IDL, die Art und Weise
        um Verwechslungen zwischen Arrays und Funktionen zu vermeiden, ist Pre-Compile
        (Nicht-intrinsische) Funktionen mit . Laufen , bevor Sie kompilieren
        Alle Verfahren, die sie verwenden oder zu versuchen, sie zu nutzen
        interaktiv. Sie erhalten eine “undefinierte Variable” Fehlermeldung
        Wenn Sie versäumen, dies zu tun.
      • Function-Dateien müssen mit einem speziellen Header-Zeile zu beginnen, wie folgt: Funktionsnamen, parm1, parm2, ... und muss mit einem Rückkehr zu schließen, [output] und ein
        Ende -Anweisung.

    Programmbeispiele

    Um einige der Unterschiede zwischen den wichtigsten Programmen illustrieren,
    Prozeduren und Funktionen, hier sind drei Versionen der entsprechenden
    der Code zum Bestimmen der Länge der ersten Dimension eines gegebenen
    Variable (Skalar oder Array) mit Hilfe des eingebauten SIZE -Funktion.
    Jede Version wird davon ausgegangen, dass in einer Datei namens get_dim1.pro gespeichert werden
    in Ihrer IDL-Pfad.

      [Zur Definition der SIZE Siehe -Funktion in der IDL
      Hilfe-Dateien. Beachten Sie, dass die Form der Ausgabe - die Zwischenschicht
      Variable s in den Beispielen - abhängig von der Anzahl der
      Abmessungen der Eingangsgröße. Seine erste Element enthält die
      Anzahl der Dimensionen (Null für einen Skalar); seine zweite Element ist die
      Länge von der ersten Dimension. Beachten Sie, dass jeder Text nach einem Strichpunkt
      (; ). Ist optional und wird vom Compiler ignoriert]

    1. Hauptprogramm
       
               ; Hauptprogramm: get_dim1.pro
               s = size (A_IN)
               if (s [0] eq 0) dann D1 = 0 sonst d1 = s [1]
               Ende
      
    2. Procedure
       
               PRO get_dim1, A_IN, d1
               s = size (A_IN)
               if (s [0] eq 0) dann D1 = 0 sonst d1 = s [1]
               zurückkehren
               Ende
      
      
    3. Funktion
       
               FUNKTION get_dim1, A_IN
               s = size (A_IN)
               if (s [0] eq 0) dann D1 = 0 sonst d1 = s [1]
               Rückkehr, d1
               Ende
      

    Um diese drei Routinen während einer interaktiven Sitzung ausführen und auf
    Drucken mit dem Anschluß Befehlsfenster den resultierenden Wert für die erste
    Dimension könnte die Befehle wie folgt sein. In allen Fällen, die Eingabe
    Variable A_IN muss bereits während der definiert wurden
    Sitzung. Beachten Sie, dass Sie nicht über einen geben. Laufen -Befehl
    , eine Prozedur oder eine Funktion, solange dessen Dateinamen Übereinstimmungen zusammen
    ihrem logischen Namen (mit Ausnahme des . Pro Erweiterung).

    1. Hauptprogramm
       
                . Run get_dim1
                Print-, D1
      
    2. Procedure
       
                get_dim1, A_IN, d1
                Print-, D1
      
    3. Funktion
       
                Print, get_dim1 (A_IN)
      

    Tipps

    • einen Kommentar hinzufügen und Programmdateien und Scripte durch ein Semikolon (; ).
      Jeder Text in einer bestimmten Zeile nach einem Semikolon wird vom Compiler ignoriert.
      Ausführbare Anweisungen kann vor das Semikolon.

    href=”#contents”> [Bis zu Inhalt]

    href=”#store”> [Down zu Daten-und Bildspeicherung]

    Datentransfer zum Speicher

      • (In bestimmten Situationen kann es vorteilhaft sein, um nicht IDL haben
        lesen eine ganze Datei in den Arbeitsspeicher. Hier können Sie stattdessen die
        ASSOC -Funktion zu übertragen, nur ein Teil einer Datei, wie sie ist
        erforderlich, die Daten werden nicht im RAM gehalten werden)

        .

    • Während einer aktiven Sitzung,
      IDL trägt Daten in Speicher mit wahlfreiem Zugriff gespeichert
      Variablen mit beliebigen Namen vom Benutzer gewählt. Der erste Schritt
      in IDL Datenanalyse ist in der Regel daher, Daten lesen oder Bilddateien
      vom Plattenspeicher in IDL-Variablen im RAM
      . Diese Variablen können sein
      manipuliert nach Belieben mit Arithmetik, Extraktion, Verdichtung,
      Expansion, Umbenennen, Konvertieren und eine Vielzahl von anderen eingebauten und
      Funktionen vom Benutzer gestellt. Sie können zurück auf die Festplatte geschrieben werden als Dateien
      in verschiedenen Formaten.

      Beachten Sie, dass diese steht im Gegensatz zu IRAF und die meisten anderen Standard-Astronomie
      Softwarepakete
      , wo es keine Zwischenspeicherung von Daten, alle
      Manipulation beginnt und endet mit Daten wie Dateien , und einer gespeicherten
      müssen, um Datensätze von ihren Dateinamen verweisen auf allen Stufen in der Analyse
      Prozess.

      IDL kann lesen / schreiben Dateien bis zu 2,2 GB groß (und mehr auf einige
      Plattformen). Jedoch kann Ihr Host-Computer sind mit Einschränkungen verbunden, dass
      verhindern den Zugriff auf Dateien dieses große. Siehe “Dateien und I / O”
      Kapitel der Gebäude IDL Anwendungen / Application
      Programmierung Handbuch für Informationen zum Umgang mit großen Dateien.

      Beachten Sie, dass alle Dateinamen als Zeichenfolge in der eingeräumt werden muss
      nachfolgend beschriebenen Befehle. Das heißt, es muss zitiert (es sei denn, Sie verwenden ein
      vordefinierten String-Variable). Beispiel:
      fits_info, 'm87_nucleus.fits (Trailing die Anführungszeichen kann
      weggelassen werden, wenn es der letzte Eintrag in einer Zeile) ist. Wildcard-Notation kann
      verwendeten Routinen, die mit mehreren Datei-Eingang nehmen können (z. B.
      fits_info, "M87 *. Passungen ).

    Directory-Routinen

    • sd, [Verzeichnis] ​​ oder cd [Verzeichnis] ​​: Änderung
      Verzeichnis in das Image-Verzeichnis, wie cd unter Linux. Die
      Verzeichnis-Name muss ein Zeichenfolge .
      sd , ohne Argument ist äquivalent zu
      $ pwd .

        Hinweis: a $ cd -Befehl an die Schale
        werden nicht ändern Sie Ihr Standard-IDL-Verzeichnis.
    • dir :. Liste der Inhalt des aktuellen Verzeichnisses
    • Print, file_which ([name]) : gibt den Speicherort einer Datei
      mit einem bestimmten Namen. Die Datei muss in einem Verzeichnis in Ihrem Pfad sein.

    Plotten Beispiel 4 gegeben
    unten.

      Syntax: readcol, '[Dateiname] ", V1, V2, V3, V4 ...

      Die Spalten können getrennt werden
      durch Leerzeichen oder Komma
      (oder andere Zeichen durch den optional angegeben
      Trennzeichen Stichwort) aber nicht ausgerichtet werden .

      Die Vektor-Variablen in der die Spalten durch gelesen werden
      readcol weiß nicht sein vordefinierten .

      Die offen und nahe Befehle werden innerhalb einbezogen
      readcol , so dass keine separate Befehle benötigt werden.

      readcol
      akzeptiert vereinfachten Format-Spezifikationen und kann alphanumerische Felder lesen
      sowie numerische Felder (können jedoch keine Leerzeichen oder Kommas in alphanumerischer erscheinen
      Felder).

      readcol ist gut, um das Lesen der kommagetrennten-Wert geeignet
      Dateien, die von Tabellenkalkulationsprogrammen produziert .

      readfmt ist eine entsprechende AstUseLib Dienstprogramm für die Festnetz-Format
      Eingaben. Sie müssen das Format, aber die Routine wird ausgeführt
      viel schneller, weil sie nicht nur die Struktur von jeder testen
      Eingabezeile.

      Beide der readcol und readfmt -Routinen haben die
      nettes Feature, dass sie über Kommentarzeilen überspringen (oder andere
      Linien mit nicht passenden Formate) ohne Würgen.

    Flexible Image Transport System
    (FITS)
    -Format. Die IDL Astronomy Benutzer-Bibliothek enthält eine große
    Paket von Routinen, um FITS-Dateien zu manipulieren. Intrinsic IDL unterstützt
    eine Vielzahl von anderen gemeinsamen wissenschaftlichen Datenformate (siehe Handbücher für
    Details) mit ähnlicher Funktionalität.

    • FITS-Datei Informationen Dienstprogramme
        • ZB: hprint, headfits ('m87_nucleus.fits.gz')
      • fitsdir : Liste (wählbar) Schlüsselwörter aus den Headern
        FITS-Dateien im aktuellen Verzeichnis.

        fits_info und fits_help Liste Informationen
        über die Struktur eines FITS Datei (Anzahl der Nebenstellen, Größen
        von Kopf-und Arrays, etc.) ohne das Lesen der gesamten Datei.
        Dies kann wichtig sein, um den Typ zu bestätigen
        der Datei (Bild, Tabelle, etc.), mit denen Sie es zu tun. fits_info
        wird auf einer Liste von Dateien zu betreiben.

        headfits (eine Funktion) liest den vollständigen Header einer
        FITS Datei auf der Festplatte in einer IDL-Variablen (ohne das Lesen der
        Daten). Anschließend können Sie den Inhalt der Header mit
        entweder die Print oder hprint Befehle (die
        letztere für FITS-Header bestimmt). headfits wird funktionieren
        auf komprimierte Dateien (*. Z oder *. gz).

    • FITS Datei Leseroutinen . Es gibt verschiedene
      Sätze von Dienstprogrammen für den Zugriff auf FITS-Dateien. Für einen Vergleich ihrer
      Vor-und Nachteile, siehe
      http://idlastro.gsfc.nasa.gov/fitsio.html
      . Die zwei am häufigsten
      verwendet werden, sind wahrscheinlich fits_read und
      mrdfits .

      • fits_read, [Dateiname], [Bild Variablenname], [Header-Variable
        name], ...
        : Lesen einer FITS Datenträgerdatei in IDL und Header-Bild
        Variablen.

          Beispiel: fits_read, 'm87_nucleus.fits', M87, hdm87, / noscale

          Dieser Befehl liest die Bilddaten im FITS-Image-Datei
          m87_nucleus.fits im aktuellen Verzeichnis in das aktive
          Variable M87 und der
          entsprechende Header-Abschnitt der Datei in das aktive
          String-Array mit variabler hdm87.
          M87 wird der
          Merkmale (Byte, Integer, Float, etc.) der FITS-Datei Daten.

          <-! Folgende Patch funktioniert bei SDAS Dateien, passt nicht

          Wenn der Header enthält keine Parameter, die richtig passen
          die Datei (zB Naxi, BITPIX, DATATYPE ), dann ist ein Fehler
          Meldung erscheint. Sie können jedoch eine Dummy-Header,
          hat die Daten in diesem Fall passen und speichern sie auf das Bild
          Verzeichnis;. siehe “Bildspeicher” unten

          ->

          Die optionale noscale -Schlüsselwort verwendet hier verhindert die
          (Standardeinstellung), die automatische Skalierung der Bildwerte umwandelt
          Flüsse mit Kalibrierparameter in der Kopfzeile. Für viele
          Zwecke, ist die Skalierung ein Ärgernis.

      • fits_read Erweiterungen handhaben können und
        Gruppen in FITS-Dateien. Zu den Alternativen,
        fits_read ist die beste Wahl für HST aktuellen Datensätzen,
        zum Beispiel.
      • Die entsprechende Routine, um eine FITS-Datei zu schreiben ist fits_write
        (Siehe unten ).
    • FITS Tabelle Dienstprogramme . Es gibt eine ganze Reihe von
      Astronomie Benutzerhandbuch Bibliothek Routinen zum Lesen, Schreiben oder manipulieren FITS
      ASCII-oder Binär
      Tabellen . Weitere Informationen finden Sie unter
      http://idlastro.gsfc.nasa.gov/ftp/pro/fits_table/aaareadme.txt
      .

        •  
                 fits_read, 'sources_file.fits', Tisch, hdtable
          
                 tbhelp, hdtable; Liste den Inhalt der einzelnen Felder
                                    ; Aus dem Header
          
                         ; Extract RA und DEC-Vektoren, basierend auf
                         ; Tbhelp Auflistung:
          
                 rad = tbget (hdtable, Tisch, 1)
                 DECD = tbget (hdtable, Tisch, 2)
                    
           
                  ftab_help, 'sources_file.fits'; Liste Inhalt
                  ftab_ext, 'sources_file.fits', 'RA', 'Dezember', rad, DECD 
      • Zum Beispiel zum Lesen einer Datei mit einem FITS
        Binärtabelle von Quellen und extrahieren Koordinatensystem Informationen:

        Alternativ könnten Sie die gleiche Extraktion wie folgt:

    • FITS-Header Schlüsselwort Extraktion / Manipulation. Es gibt viele Befehle, meist beginnend mit dem Präfix sx , dass Genehmigungsauflagen Extraktion und Manipulation von FITS Stichworte.
        • Targ = sxpar (hdm87, 'TARGNAME') & Print, Targ .
          sxaddhist, '22 August 2004: Die abgezogenen bedeuten Himmel im Hintergrund ', hdm87
      • Zum Beispiel, zu extrahieren und Drucken des Namens eines Ziels aus einer PASST Bild-Header-Variable: Um einen Kommentar zu einer Geschichte FITS-Header-Variable hinzufügen: Um einen neuen Parameter in einer FITS-Header-Variablen hinzufügen oder ein vorhandenes ändern ein, Verwendung sxaddpar .

    SDAS und IRAF Dateien : Diese Dateiformate, die Daten zur und Header-Segmente getrennt, sind jetzt veraltet, aber die AstUseLib hat Lese / Schreib-Routinen für sie. Siehe strD und irafrd , beziehungsweise. andere Bildformate :

      Die Benutzer haben IDL Routinen zu fertigenden lesen die meisten anderen Standard-Image Speicherformate. Siehe: read_gif, read_jpeg, read_srf, read_tiff, usw. Es gibt entsprechende schreiben -Routinen für alle diese.

      Exelis liefert auch eine intrinsische Datei Leser, die am meisten gelesen wird kommerziell wichtigen Image-Dateitypen. Verwenden Sie den Befehl checkim query_image = ([Dateiname], info) , um festzustellen, ob ein bestimmte Datei in einem geeigneten Format. Wenn ja, der zurückgegebene Wert von checkim wird 1 sein (0, wenn nicht). Einzelheiten zur Datei Struktur, Typ Print, info, / str . Verwenden Sie die read_image -Funktion, um die Datei zu lesen und die damit verbundenen Farbtabellen, wenn überhaupt (siehe die Hilfe-Dateien und der nächste Abschnitt Informationen über Farbtabellen).

    Endian-Konvertierung

      •  
        a = 3.0e5; Definieren Sie eine große Anzahl
        b = swap_endian (a, / swap_if_big_endian) & Print, b
             ; Wenn b unterscheidet sich von einem, ist Ihre Maschine Big-Endian-
             ; Wenn b ist das gleiche wie a, ist Ihre Maschine Little-Endian-
        
    • “Endian” bezieht sich auf die Speicherung Konvention angenommen für Mehr-Byte-Mengen von Ihrem Computer Speicherverwaltungssystem. Wenn das höchstwertige Byte gespeichert wird Erstens ist dies eine “Big-Endian” Konvention. Wenn das niedrigstwertige Byte zuerst gespeichert wird, ist dies ein “Little-Endian” Konvention. Wie Sie erwarten könnte, haben die Hersteller nicht in der Lage, auf einer universellen zustimmen Standard für die Byte-Reihenfolge. Deshalb werden Sie wahrscheinlich konfrontiert werden gelegentlich mit dem Müssen konvertieren Byte-Reihenfolge für die Daten zu lesen von Dateien auf anderen Computern generiert. Dies ist nicht ein Thema im Lesen / Schreiben von FITS-Dateien. Aber es könnte bei der Lektüre entstehen andere Arten von Binärdateien auf einem anderen Computer geschrieben Architektur. Ein Symptom für eine “Endian-ness mismatch” ist ungewöhnlich große oder kleine Zahlen in Daten, wenn diese Es wird nicht erwartet.

      IDL beinhaltet die swap_endian -Funktion, die ermöglicht Sie ändern die Speicherung Konvention für die Daten in Ihrer Sitzung. Es erlaubt Ihnen auch, den Konventionen, die Ihren Computer zu identifizieren angenommen, wie im folgenden:Wenn Ihr Rechner nicht mit dem Computer, der die erzeugte
      relevanten Daten-Datei, dann verwenden Sie swap_endian zu tauschen
      die gespeicherten Daten.


    href=”#contents”> [Bis zu Inhalt]

    Ein Großteil der Macht von interaktiven Computing kommt aus Ihrer Fähigkeit
    zur sofortigen Anzeigen von Grundstücken oder Bilder auf Ihrem Terminal zu machen.
    Hardware-Überlegungen treffen auf mehr machen als auf solchen Displays
    andere Aspekte der interaktiven Computing.

    Dieser Abschnitt beschreibt die zugrunde liegende Mechanik von Bild und Grafik
    die grundlegenden IDL Kommandozeilen-Routinen für die Herstellung Bild angezeigt wird. Wenn Sie
    werden nur in immer eine schnelle Anzeige von astronomischen Bildern interessiert sind,
    fahren Sie mit der Beschreibung der
    das ATV-Anzeige-Tool in
    Der nächste Abschnitt. Zur Herstellung von Plots, siehe 10. Grundstücke
    unten.

    Color Graphics Displays

      • Die Gründe dafür sind erstens, dass das menschliche Auge normalerweise nicht unterscheiden kann,
        sogar 256 Stufen der Intensität oder Farbe, so dass die zusätzliche Farbe
        Auflösung möglich in 24-Bit-Displays ist nur selten von wissenschaftlichem Wert.
        (Ästhetik ist eine andere Sache.) Zweitens, die meisten Bilder von Interesse für
        sind Sie in der eigensicheren monochromatisch. In der Tat, die meisten grundlegenden Bild
        Analyse der Arbeit in der Astronomie auf Graustufen--Displays basiert.
        Schließlich erfordert der Einsatz von True-Color-Displays die Schaffung von
        3-dimensionale Arrays (drei Elemente werden zu jedem x, y-Position erforderlich
        um die drei Farb-Injektoren zu füttern), während die wissenschaftlichen Bilder, die Sie
        wird aus sind in der Regel 2-dimensionale starten. Conversion und zurück
        Her zwischen 2-D und 3-D fügt unnötige Komplikationen.
    • Farbmonitore verwenden drei Farben Injektoren — rot, grün und blau
      (RGB) — die jeweils zu 256 verschiedene Intensität eingestellt werden
      Ebenen zu einem bestimmten Stelle des Bildschirms. Im Prinzip können sie daher
      Anzeige 256 ^ 3 = 16,8 Millionen verschiedene Farben an jeder beliebigen Stelle. Bis das
      vergangenen zehn Jahren oder so, waren jedoch die meisten Computer-Monitore in der Lage
      Anzeigen von lediglich ein Byte (8 Bits oder 256 verschiedenen Ebenen) von
      Informationen an einem bestimmten Standort. Diese werden als 8-Bit-Monitoren bekannt.
      Nutzer mussten nur 256 aus dem 16,8 Millionen möglich wählen
      Farbwerte für ihre Displays. Diese Art der eingeschränkten Darstellung
      Umwelt ist ein Pseudo-Farbe namens oder indizierten Farben
      anzuzeigen. Die meisten IDL (und andere wissenschaftliche Bildverarbeitung) Software
      bis zum Jahr 2001 geschrieben, geht davon aus pseudo-Farbdisplays.

      Moderne Computer-Monitore, wahrscheinlich einschließlich der, die Sie verwenden,
      verfügen über 24-Bit-Displays. Das heißt, sie sind in der Lage ist, sämtliche
      möglich, 3-Farben-Kombinationen. IDL-Bild Displays mit dieser
      maximale Farbpalette als true-color -Displays bekannt.

      Naiv würde man erwarten, dass alles, was mit der Aufschrift “true” gehen soll
      etwas besser als mit der Bezeichnung “Pseudo.” Und Sie haben Recht, wenn —
      Sie wurden in der Verarbeitung von kommerziellen Digitalkamera Bilder interessiert sind oder
      machen glamourösen Presse-Release-Versionen von astronomischen Bildern. Aber
      das ist nicht das Hauptanliegen der meisten Astronomen. Stattdessen werden Sie
      entdecken, dass die Arbeit mit Displays in Pseudo-Farbe (nativ auf einem 8-Bit
      Monitor oder emulierte auf einer 24-Bit-Monitor) am besten geeignet ist und
      bequem.

      Dementsprechend meisten von der anschließenden Diskussion richtet sich an
      indexed-color/pseudo-color Displays
      , ob auf 8-Bit-oder 24-Bit
      Monitore.

    Angezeigt Arrays und Farbtabellen

      Das Array, das gesendet wird
      Monitor-Hardware für die Anzeige muss eine Byte-Array sein , die
      bedeutet, dass ihre Werte immer Element sind im Bereich von 0-255.

    • 24-Bit-Monitore : Auf einem 24-Bit-Monitor, der angezeigte Array
      ist immer ein 3-D IDL Byte-Array, und von denen eine immer 3.
      Jeder Index in dieser Dimension für eines der drei farbselektiven
      Injektoren. Die Array-Struktur kann im (3, Breite, Höhe) sein,
      im (Breite, 3, Höhe) oder im (Breite, Höhe, 3) . In
      die letzte dieser Formen, sind die roten, grünen und blauen Bildebenen
      sequenziell gespeichert. In der ersten dieser Formen, die “Farbe-Tripel”
      bei jedem Pixel zusammen gespeichert werden: das heißt, die ersten sechs Elemente in
      Lagerung wird r_00, g_00, b_00, r_10, g_10, b_10 sein , wo
      r_00 ist die Rotintensität in der (0,0)-Pixel, und so
      weiter. Die eingegebenen Werte werden direkt in Helligkeiten umgerechnet
      der Monitor-3-farbige Injektoren.

      Bei einer Farbphotographie, zum Beispiel kann ein 24-Bit-Monitor
      zeigen die volle Palette von Farben, die im Bild eingebettet sind, und
      also 24-Bit-Displays werden als “True-Color” angezeigt.
      Allerdings sind die Farben nicht unbedingt wahrgenommen zu entsprechen
      diejenigen. Die am weitesten verbreitete Echtfarbenbild Dateiformat ist heute
      JPEG -Format (obwohl dies normalerweise nicht für den wissenschaftlichen Einsatz
      Daten).

    • 8-Bit-Monitore : Auf einem 8-Bit-Monitor, ist das angezeigte Array
      immer ein 2-D-IDL-Byte-Array, im (x, y) = n , wo n
      nennt man die Übersicht des Displays bei Pixel (x, y) .
      Der eingegebene Indexwert muss in Helligkeiten werden für umgerechnet
      den 3-Farben-Injektoren mit Hilfe eines Vermittlers als Farbnachschlagtabelle bekannt
      Tabelle
      .

        Farbtabellen : Ein Farb-Tabelle besteht aus drei Byte-Vektoren
        R, G, B , je 256 Elemente lang, mit Werten zwischen 0
        und 255. Wenn ein gegebenes Pixel enthält den Indexwert n , die
        Rot, Grün und Blau Injektoren an diesem Pixel werden auf Werte gesetzt
        [R [n], G [n], B [n]] . Das resultierende Auftritt
        dem Bildschirm Ihres Computers hängt daher sowohl auf dem Array
        Werte und die Farbtabelle.

        Für eine “Graustufen” Farbtabelle, R [n] = G [n] = B [n] . Wenn die
        drei Vektoren enthalten verschiedene Einträge, erscheint ein farbiger Anzeige
        erscheinen. Diese Farben haben keine notwendige Beziehung zum physischen
        Erscheinungsbild oder die Eigenschaften des Objekts in dem Bild, daher wie
        Displays werden als “Pseudo-Farbe” Anzeigen; allgemein
        man nennt sie “indizierten Farben” angezeigt. Allerdings gibt es einen
        direkte Übereinstimmung zwischen den Index-Werten in der Bild-Array und
        die Farben, die auf dem Bildschirm erscheinen. Obwohl es nicht hinzufügen
        grundlegende Informationen, sich pseudo-Farbdisplay einer 1-Byte-Array
        sehr nützlich bei der Erforschung subtiler Strukturen in einem komplexen Bild, für
        Instanz. Pseudo-Farb-Displays benötigen nicht angezeigt “unnatürlich”, sie können
        sehr nahe kommen ein True-Color-Display, sind aber von Natur aus begrenzt
        nur 256 Stufen von Farbe / Intensität. Die GIF -Format speichert Bilder in
        2-D indiziert Form mit einer begleitenden Farbtabelle.

        Auf einer 24-Bit-Monitor wird eine Farbe in der Tabelle “emuliert” verwendet
        Index-Farben-Modus mit dem Gerät eingestellt ist, zerlegt = 0 -Befehl
        (Siehe nächsten Punkt). Aber Farbtabellen haben keinen Einfluss in der Norm
        True-Color-Modus
        oben beschrieben.

    • indizierten Farben zeigt auf einem 24-Bit-Monitor : Weil
      indexiert / pseudo-Farbdisplays sind nützlicher in vielen wissenschaftlichen
      Anwendungen, als es True-Color-, IDL ermöglicht Ihnen, emulieren
      indizierten Farben Displays
      auf einem 24-Bit-Monitor. In diesem Modus wieder Sie
      muß ein 2-Byte-D Bild-Array und eine Farbtabelle (als liefern
      für einen 8-Bit-Monitor). Die Display-Befehle werden dann mit der Farbe
      Tabelle, um eine 3-D Echtfarbenbild welche erstellen wird auf dem Display
      überwachen ebenso wie die Pseudo-Farbbild auf einem 8-Bit erschienen wäre
      zu überwachen. Um diesen Modus zu verwenden, müssen Sie erklären Gerät,
      zerlegt = 0
      (weitere Details im nächsten Abschnitt).

      <-! Im Vergleich zu einfachen
      8-Bit-Darstellungen, gibt es mehrere unbequem sind auf diesem Gebiet
      Modus emuliert, aber sie können überwunden werden (siehe nächster Abschnitt) werden.

      ->

    Festlegen einer visuellen Anzeige-Modus auf dem Computer

    1. Der erste Schritt ist zu ermitteln, welche “visuelle Anzeige Klassen”
      Ihre Hardware unterstützt
      . Auf der Linux-Eingabeaufforderung, geben Sie
      xdpyinfo . (Sie müssen alle X-windows sein, um diesen Befehl zu verwenden.)
      Dies gibt eine Liste der Display-Konfigurationen möglich auf Ihrem
      System. Der Eintrag “Klasse: Pseudofarben, Tiefe: 8
      Flugzeuge ” zeigt an, dass Ihr System 8-Bit-Pseudo-Farbe unterstützt
      Displays. Der Eintrag “Klasse: TrueColor, Tiefe: 24
      Flugzeuge ” zeigt Ihr System unterstützt 24-Bit True-Color
      Displays. Einige Systeme unterstützen beides.

        unter Apple Mac OS-X-Systeme, die Standard-X-11-Paket
        können zu unterschiedlichen visuellen Klassen gesetzt werden. Starten Sie X-Windows. Klicken Sie auf
        X11 ===> Preferences ===> Ausgang. Das Menü “Farben” bietet Ihnen eine Auswahl
        der Anzahl von Farben möglich. “256 Farben” ist pseudo-Farbmodus.
        “Millionen von Farben” ist True-Color-Modus. (Die meisten X-11-Versionen Unterstützung
        beides.) Treffen Sie Ihre Auswahl. Sie müssen aufhören die X-11 Programm-und
        starten Sie ihn neu, damit die Änderungen wirksam werden. Sie können Ihre
        Auswahl, indem sie dem xdpyinfo -Befehl in einem X-Fenster.
    2. Definieren Sie eine visuelle Klasse für Ihre Sitzung. Start IDL. Die
      erste Seite Befehl geben Sie die auf eine Auslage
      Funktion oder das Gerät Utility bestimmt die visuelle
      Anzeige-Klasse, die während der Sitzung verwendet werden soll. Sie
      nicht ändern können Klassen nach dem ersten Befehl. Daher ist es
      normalerweise am besten, setzen explizite Konfiguration von Befehlen über
      ein Gerät Anruf in einer Startup-Datei, die ausgeführt wird, bevor Ihr
      interaktive Sitzung beginnt. Die drei relevanten Formen der
      Gerät Aufruf sind die folgenden:

      • für 8-Bit Pseudo-Farbe: Gerät behalten = 2, pseudo_color = 8
      • Für 24-Bit-True-Color: Gerät behalten = 2, true_color = 24, zerlegt = 1
      • für 24-Bit emuliert Pseudo-Farbe:
        Gerät behalten = 2, true_color = 24, zerlegt = 0

      Die behalten = 2 Stichwort Zugriffe IDL, um die “Hintergrundspeicher” für Griff
      Ihre Anzeige (die hält Kopien von Teilen Sie Ihre Anzeige, die seit
      überschrieben); dies vermeidet Störungen, die auftreten können, wenn statt
      Ihr Windows-System funktioniert das Backup.

      Diese Befehle müssen vor ein Fenster erstellt wird während Ihres gegeben werden
      Sitzung.

      In Ermangelung einer Gerät -Befehl, der Standard angenommen auf
      ein 24-Bit-Monitor ist true_color = 24, zerlegt = 1 .

      Um den aktuellen Status Ihrer Grafikkarte, Typ überprüfen
      Hilfe, / dev . (Hinweis: Die emulierten Pseudo-Farben-Modus ist
      angedeutet durch die Eingabe “Graphics Pixel:
      Kombiniert “.)

      Obwohl Sie nicht ändern können, die visuelle Klasse nach ihrem ersten
      Umsetzung während einer Sitzung, in 24-Bit-Modus, den Sie Kann
      Umschalten zwischen Gerät zerlegt = 1 und
      Gerät zerlegt = 0 wie gewünscht.

    3. zurückhaltende Farben auf 8-Bit-Monitore :
      Mit einem 8-Bit-Monitor, die maximale Anzahl von Farben für alle
      Anwendungen ist 256. Wenn IDL aufgerufen wird, wird es normalerweise in der Lage,
      erhalten nur einen Bruchteil dieser etwa 210, für die Verwendung von Ihren
      Fenster-Manager, da andere Anwendungen (Firefox, Acrobat, etc.)
      wird bereits reserviert haben einige Farben. Die Anzahl variiert
      abhängig von der Anzahl der konkurrierenden Anwendungen. Der Standard
      Imagetransfer und Display-Routinen wie tvscl und
      Tvlct berücksichtigen Sie dies mit dem geringeren Anzahl von
      Farbstufen sondern passt sie auf die volle Dynamikumfang möglich auf
      Ihr Terminal-Display. Zum Beispiel kann die Farbe Vektoren nur 210
      Elemente lang, aber diese in Indexwert von 0 bis 255 reichen wird. Die
      Anzahl der verfügbaren Farben wird in der System-Variable enthalten
      ! d.n_colors oder kann mit angezeigt
      Hilfe, / dev .

      “Farbwechsel” : Wenn der Rest Ihrer 8-Bit-Display-Terminal
      blinkt oder ändert sich die Farbe aus, wenn Sie den Cursor zu bewegen in einer IDL
      Fenster, dann IDL wird mit Hilfe eines “private Farbtabelle”, das angewandt wird
      Ihren ganzen Bildschirm, wenn der Cursor aktiviert es. Dies ist wahrscheinlich
      mittels IDL versucht, mehr Farben zu verwenden, als waren frei in der
      geteilt Farbtabelle. Um das Problem zu lindern, versuchen Sie dies:

                     Verlassen Sie IDL
                     Starten Sie IDL
                     Als die ersten zwei Befehle ein:
       Gerät behalten = 2, pseudo_color = 8 
                          Fenster, 0, col = k 

      … Wo k ist die minimale Anzahl von Farbstufen Sie denken wird in Ihrem Displays akzeptabel. Farbe Blinken wird nicht auf einem 24-Bit-Monitor auch bei auftreten emulierten Pseudo-Farbmodus.

    Transforming Bilder für die Anzeige

      Der schwierigste Teil der Anzeige von Bildern ist die Auswahl des Bereichs des Bildes Werte, die Sie anzeigen möchten, und dann macht sie deutlich auf dem Bildschirm. Das Array, das Sie an Ihr Display muss ein 2-D-Byte-Array sein (Pseudo-Farbe) oder ein 3-D-Byte-Array (true-Farbe). Die Beschreibungen Nachstehend sind für intrinsische oder emulierten Pseudo-Farbe auf 2-D-Basis Bilder und mit dem Einsatz von Farbtabellen. Es gibt verschiedene Dienstprogramme für das Umwandeln Ihrer Original-Array (oft Floating-Point), um das richtige Format und die Anzeige automatisch mit vordefinierten Farbtabellen.

    1. Zunächst müssen Sie auf der Größe und Form von der Entscheidung anzuzeigen. Abhängig von der Anwendung und der Größe (in Pixel) Ihres Monitors, können Sie das Originalbild komprimieren oder extrahieren Subarrays von ihm. Um überprüfen Sie die Pixel- Struktur des Bildes, können Sie Bilder zu erweitern, so dass ein Original Pixel einnimmt, sagen wir, ein 10×10 Pixel-Bereich auf dem Bildschirm. Grundlegende Dienstprogramme für die Extraktion oder Erweiterung von Bildern diskutiert werden unter Datenschutzbehörde & Manipulation” unten.
    2. Als Nächstes müssen Sie bestimmen den Umfang des ursprünglichen Bildes Werte, imin , um Imax , die Sie anzeigen möchten . Die menschliche Auge normalerweise nicht zu unterscheiden von entweder 256 Stufen Grauskala oder Farbe, und astronomische Bilder enthalten oft viel mehr als ein 256:1 Intensitätsbereich. Nur selten würden Sie wollen das ganze Display Wertebereich in einem Bild. Normalerweise gibt es eine signifikante Himmel im Hintergrund oder Bias / dunkel aktuellen Sockel, der abgeschnitten werden muss, um heraus. Oft werden die höchsten Werte in den Bildern durch kosmische Strahlung verursacht oder andere Artefakte und liegen weit über wissenschaftlich interessante Werte.
        Um die entsprechenden Min / Max-Werte könnte man fortfahren bestimmen durch Versuch und Irrtum, Iterieren der Bildanzeigevorrichtung. Weitere Zielsetzung Methoden sind mit dem Bild-Histogramm, Bestimmen der Modus der Himmel im Hintergrund und seine Standardabweichung und die Festlegung Plots der Probe Scheiben über das Bild. Oder könnten Sie auf eines verlassen mehrere Programme in den Benutzer-Bibliotheken.

      <-! Intrinsic IDL und die Benutzer-Bibliotheken bieten eine Vielzahl von Werkzeugen, dies zu tun. Sobald Sie einen guten sichtbar gemacht anzuzeigen, der Übertragung auf Hardcopy, so dass ihre Qualität ist erhalten ist noch ein weiterer anspruchsvoller Schritt. Siehe Graphics Hardcopies unten. ->

    3. Als Nächstes müssen Sie auf der Transformation , oder ihres Maßstabs entscheiden, zwischen Bild-Werte und Werte-Display. Am häufigsten ist eine lineare Transformationsfunktion , in dem der Nullpunkt wird bestimmt durch imin und die Steigung wird durch bestimmt Imax-Imin . Das Originalbild Wert ist in 256 gleich Bins unterteilt für anzuzeigen. Kontrast der Darstellung nimmt mit der Neigung, das ist umgekehrt proportional zur Imax-Imin . Die meisten Bild-Anzeige-Routinen (wie tvscl ) beschäftigen linearen Transformation.
        Abhängig von der Verteilung der interessanten Bildwerte in der gewählten Bereich, ein nichtlineare Transformation unter Umständen nützlicher. Für Beispielsweise, um den Kontrast zu niedrigeren Werten Bild vergrößern und verkleinern sie bei höheren Werten, können Sie mithilfe von Transformationen wie alog10 (f) , f ^ 0,3 oder asinh (f) . Segmentierte lineare oder Schritt-Transformationen können ebenfalls nützlich sein. Was auch immer besondere verwandeln Sie auf das Bild anzuwenden, können Sie dann mit dem Standard (Linear)-Routinen, um die transformierten Werte anzuzeigen.

        Alternativ kann in Pseudo-Farbe, die Sie verwenden können, eine lineare Transformation von Bild Werte, sondern manipulieren die Farbtabelle auf nicht-lineare erreichen Diskriminierung auf dem angezeigten Bild. In einigen Situationen kann dies vorzuziehen sein, aber es ist meist komplizierter als einfach Veränderung der mathematischen Transformation.

    4. Schließlich müssen Sie wählen Sie eine Farbe Tabelle für die Anzeige und anzuwenden. Das Aussehen der Bilder kann sich dramatisch verändern, je auf der Farb-Tabelle Einstellungen. In Pseudo-Farbmodus, ist die Farbtabelle getrennt von der Hardware gespeichert und ist stets bemüht, angewendet werden ein angezeigtes Bild. Die Standard-Farbtabelle ist eine lineare Grauskala , die von 0 bis 255. IDL liefert insgesamt 41 vordefinierten Farbe Tische, und es gibt verschiedene Tools zum Modifizieren diese oder die Schaffung neue.

    Die grundlegenden IDL direkten Grafik-Routinen für die Öffnung, Anzeige und Einstellen Bildanzeige-Fenster sind Fenster , die eine schafft neue Fenster und Größen es; WSET , der die “aktuellen” definiert Fenster, und wshow , die (oder verbirgt) zeigt die aktuelle Fenster. wdelete löscht ein Fenster. Diese Routinen werden benutzt in Verbindung mit den beiden grundlegenden Routinen Bildanzeigevorrichtung TV und tvscl .

      Zum Beispiel, um eine 512×512-Fenster mit der Indexnummer 9 öffnen an der unteren rechten Ecke Ihres Terminals Anzeige:

       
                    Fenster, 9, xpos = 750, ypos = 50, xsize = 512, YSize = 512, $
                       title = 'IDL Bildfenster'
                    WSET, 9
                    wshow
      

      (Alle Argumente in der Fenster Routine sind optional.)

      Die grundlegende TV und tvscl Befehle nicht zur Einstellung der
      Größe des Fensters in der Größe des angezeigten Array.

    Die Routinen chan, CDEL, CTV, ctvscl im Folgenden beschrieben werden
    MOUSSE Versionen der intrinsischen IDL-Windowing / Anzeige
    Routinen. Sie bieten wichtige Komfortmerkmale, die Arbeit zu machen
    mit Bildern schneller (zB Skalierung der Fenster-Größen auf das Bild, Größe,
    Kombination aus dem Fenster Set und Show-Funktionen, willkürliche min / max
    Werten für die Anzeige, etc.). Diese Routinen verwenden spezielle gemeinsame
    Blöcke, und zu denen initialisieren müssen Sie das Mousse Startup-Datei
    (siehe Anhang C). Die folgenden Beschreibungen sind
    für diesen Satz von Ersatz für die intrinsische Routinen.

      • Hinweis: CTV und ctvscl sind für 8-Bit bestimmt
        Falschfarben-oder 24-Bit emuliert Pseudo-Farbdisplays nur. Sie
        Sie nicht unterstützt True-Color-Displays . Wenn Sie anzeigen möchten
        eigensicheren farbgetreue Bilder, müssen Sie TV und
        tvscl .
    • chan, N (ähnlich wie intrinsische WSET ): Wählen Sie
      Fenster N für die Anzeige. Dies wird die “aktive” Fenster, d. h.
      für I / O. Der Cursor wird nur auf der aktiven Arbeit
      Fenster. Erstellt und zeigt das Fenster, wenn es nicht vorhanden sein, bevor
      (Dh Ersatz für die Fenster und wshow
      Funktionen). N kann zwischen 0 und 31 liegen. [Obwohl
      Display-Fenster wird automatisch von jedem Display geöffnet werden
      Prozedur das erste Mal aufgerufen wird, sollten Sie das
      chan Verfahren zuerst, ob Sie Anspruch nehmen möchten
      Schaumstoff-Funktionalität. Es ist auch eine gute Idee zu halten und Plotten
      Bild Schaufenster getrennt.]
    • CDEL, N (ähnlich wdelete ): Löschen Fenster
      n . Sie können auch beenden oder iconify Fenster während ein
      IDL-Sitzung, indem Sie die regelmäßige Fenster-Manager-Funktionen.
    • CTV, Bild (ähnlich TV ): Display-Bild in
      aktuellen Fensters (Fenster oder 0, wenn kein anderes Fenster geöffnet wurde)
      ohne Skalierung durch die Übertragung von Bild-Pixel-Werte direkt
      zum Fenster Puffer. Der Bildspeicher enthält
      Byte (Bild) — i. e. Werte zwischen 0 und 255 nur — und
      wird “verpacken” für Werte von 256 und höher. Nur
      ! d.n_colors unterschiedliche Werte können angezeigt werden (bestimmt werden
      von Ihrem Monitor). Die Größe des Fensters wird angepasst, um das Spiel
      Originalbild (in Pixeln). Unter anderem CTV können
      nützlich sein, zum Auffinden von interessanten Features in geringem Kontrast ein
      Bild mit einem großen Dynamikumfang.
    • ctvscl, Bild (ähnlich tvscl ): wie bei
      CTV , außer dass die Puffer-Werte werden skaliert
      linear
      Zwischen Himmel Wert (gesetzt auf den Wert 0 angezeigt)
      und ein Höhepunkt durch die Varianz der Flüsse in die ermittelte
      Bild. Es gibt keine Umhüllung. Die maximale Anzahl von Farbebenen
      auf dem Bildschirm angezeigt ist ! d.n_colors .
      ctvscl ist in der Regel sehr viel nützlicher als
      CTV , es hat eine Reihe optionaler Funktionen, die Sie kann
      erforschen möchten.

        • Aus diesem Beispiel sehen Sie die Vorteile der Umbasierung Bilder
          passende Werte im Bereich von 0 bis einigen tausend anstatt
          unter Verwendung der tatsächlichen Flux-Werte. Um neu zu skalieren, verwenden Sie Befehle wie M87 =
          1.0e15 * M87
          . In der Tat, wenn die Qualität der Anzeige
          Ihre einzige Sorge ist, gibt es keinen Punkt im Beibehaltung tatsächlichen Fluss
          Werte im aktuellen Bild Set. Denken Sie daran, nicht zu
          verwenden Sie das skalierte Bild für Berechnungen, wo die Einheiten Angelegenheit.
      • Wenn Sie nicht wie die Standardwerte können Sie angeben, die maximale und
        mindestens folgende Angaben zu Werten unter Verwendung der optionalen Schlüsselwörter max und
        min . Z.B.

        ctvscl, M87, min = 30, max = 8000

        Es ist leicht, Displays durch Aufruf der Kommandozeile durchlaufen und
        Bearbeitung der min, max -Werte.

        Hinweis: die intrinsische IDL-Routine tvscl nicht akzeptiert
        Min / Max-Schlüsselwörter und immer Skalen zwischen 0 und der maximalen Daten
        Wert im Bild. Wenn das nicht geeignet ist, müssen Sie
        unabhängig Clip das Bild vor dem Eingang zum tvscl .
        Aus diesem Grund, nach der Anzeige des Befehls
        ctvscl, Bild wird von dem unterscheiden
        tvscl, Bild .

    <-! VERALTET BIS Gegensatz dazu sind ETC für 24 Bit-Monitoren Rewritten

    Möglicherweise möchten Sie diese anrufen
    Abschnitt “interaktive Bildeinstellung”? ***

  • Gegensatz : Eine Routine, die interaktiv MOUSSE passt,
    mit dem Cursor, die Farbtabellen, ohne die Einträge in die
    Bildpuffer. Stellt eine lineare Transformationsfunktion im Nullpunkt
    und Steigung
    . Das Erscheinungsbild auf dem Bildschirm des Ergebnisses
    Gegensatz ist identisch mit der Angabe der MIN und
    MAX -Parameter in ctvscl, obwohl das Mittel, durch
    die dies erreicht ist anders. Der Cursor muss in die platziert werden
    aktuelle aktive Fenster.

      Beachten Sie, dass auf 8-Bit-Monitoren, Veränderungen in den Farbtabellen zu beantragen
      alle Bild Schaufenster. Um Bilder vergleichen
      mit verschiedenen Bereichen von Werten, laden Sie sie mit ctvscl
      oder den Gegenwert mit verschiedenen low / high Windowing-Schnitten
      oder mit nicht-linearen Transformationen (siehe unten) vor der Verwendung
      Kontrast
      . Farbtabellen durch Gegensatz eingestellt
      bleiben in Kraft, sofern sie nicht ausdrücklich zurückgesetzt werden (zB durch Verwendung
      die loadct -Befehl). Wenn ein neues Bild sieht seltsam aus, es
      kann sein, weil Sie vergessen haben, die Farbtabellen zurückgesetzt haben.

      Sie können “kippen” die Farbtabelle mit den Maustasten während
      Kontrast
      .

      Beachten Sie, dass die Art der linearen Transformation zwischen dem Bild
      Wert und die Anzeige von Wert eingestellt
      Kontrast
      ist nur ein einer sehr großen
      eingestellt von möglicherweise nützlichen Funktionen Transformation.
      Sie können
      mit verschiedenen logarithmisch, PowerLaw, segmentierte experimentieren, und
      andere Arten von Transformationen, um die beste Anzeige für Ihr Bild zu finden.

      Die “Farb-Karte anpassen”-Funktion in ATV ist ähnlich
      zu Gegensatz .

  • refscl ... : Ein MOUSSE Routine, die eine Referenz zeigt
    Maßstab für die aktuelle Farbe Tabellen. Zeigt die Antwort der
    zeigt auf einen Puffer, einen linearen Bereich von Werten zwischen 0
    und 255. Einstellen Schlüsselwort über Orte den Maßstab in der
    aktuelle Fenster. Nützlich, wenn der Feinabstimmung in Farbe
    Tische und in die Herstellung von Bildern für die Veröffentlichung.

    END VERALTET ABSCHNITT ->

    Farbtabelle Befehle

      • Um die aktuelle Farbtabelle, um Vektoren zu erfassen (zB um sie zu inspizieren
        oder als Grundlage für die Überarbeitung ihnen), verwenden Sie
        tvlct, rr, gg, bb, / get .
        Sie können probieren und laden Sie die mitgelieferten Tabellen in einer GUI mit dem
        intrinsische Routine xloadct .

        Sie
        kann die Korrespondenz zwischen Farbe und Index mit David prüfen
        Fannings CINDEX Routine.

         
                      loadct, 0
                      tvlct, rr, gg, bb, / get
                      RR = reverse (rr)
                      tvlct, RR, RR, RR 
    • Der Befehl zu ändern (“Last”) die gespeicherte Farbtabelle
      tvlct, R, G, B , wo müssen Sie definiert haben, die drei
      Vektoren im Voraus.

      Ein Satz von 41 vordefinierten Farbe Tabellen wird mit IDL geliefert, diese können sein
      beladen mit dem loadct, N -Befehl, wobei N läuft von 0 bis
      40. Die Standard-Graustufen-wird durch den Befehl geladen
      loadct, 0 .

      Auf den meisten 8-Bit-Monitoren, wird die Anzeige automatisch aktualisiert
      wenn der Farb-Tabelle geändert wird (bei einer loadct, N -Befehl,
      zum Beispiel). Allerdings auf 24-Bit-Monitoren müssen Sie laden die
      Bild
      , damit die Änderung in der Farbe Tabelle wirksam werden (auch in
      emulierten Pseudo-Farben-Modus).

      Eine Vielzahl von Werkzeugen ist für die Einstellung der gelieferten Farbe verfügbar
      Tabellen oder neue zu schaffen. Dazu gehören xloadct ,
      xpalette , Stretch und David Fanning
      xcolors .

      Ein schneller Weg, um die Standard-Weiß-auf-schwarzer Farbe umkehren
      Tabelle 0 bis zur schwarz-auf-weiß Sinn bevorzugt durch
      Astronomen, die empfindlicher auf schwache Merkmale ist, ist die
      nach. Dies ist nützlich, um Code als ein Verfahren oder ein Skript.

    Weitere nützliche Befehle Anzeige

    • anzuzeigen logarithmisch gestreckt Bilder:
      ctvscl, alog10 (Bild) . Offensichtlich müssen Sie
      versichern, dass Bild enthält keine Null oder
      negative Zahlen. Eine schnelle Möglichkeit, niedrige Werte abschneiden
      ist es, die Syntax verwenden
      alog10 (Bild> k) . wo k ein Skalar ist.
      Die Notation (x
      > Y)
      bedeutet “das Maximum der Paar x, y .”

      Verwenden Sie einen

    • vordefinierte Lookup-Tabelle Bild zu transformieren
      Werte, z. B. ihre Logarithmen. Schneller als eigentlich Umwandlung
      Werte mit dem ALOG -Funktion. Z. B.: für Integer-Bild
      Arrays mit Werten im Bereich von 0 bis 1000, versuchen Sie dies:

       
                  t = findgen (1000) und t [0] = 1
                  quiklog = alog10 (t)
      
                  ctvscl, quiklog (Bild) 
        Hinweis: In IDL, die Form array1 (array2) gibt die Werte
        von array1 in den Elementen, die durch die Werte in angegebenen
        array2 . array2 muss eine ganze Zahl oder Langwort sein
        Integer-Array.

      <! -

    • Dieselbe Technik funktioniert mit anderen Formen der nichtlinearen Displays:
      z.B. Macht Gesetze mit gebrochenen Exponenten (0,3, 0,5), um
      Dynamikbereich erhöhen; arcsinh, etc.

      ->

    Referenzen auf Bildanzeigen

      Schließlich können Sie mehr lesen wollen, als es hier
      Über Bild-Display-Techniken, obwohl ich empfehlen, dass neue Benutzer nur
      Sprung voraus und Erfahrung Erfolg und Misserfolg auf ihrem ersten eigenen. Ein
      gute Einführung in die Farb-Displays in IDL ist David Fanning
      “Mit Farben arbeiten”
      Dokument. Siehe auch seine “Color Tips”
      Seite. Die grundlegende Einführung Exelis ist Kapitel 5 “Grafikdisplay
      Essentials “in der Mit IDL
      Handbuch. Weitere Details auf das Bild für Displays und Verwendung von Farbe gefunden werden kann
      in der Online-Hilfesystem unter “IDL Tutorials / IDL-Display-Konzepte”;
      die Beispiele meist um Vollfarbbild Formaten (zB JPEG, TIFF,
      PNG). Die v7.0 Bildverarbeitung
      Handbuch deckt Bildtransformation Techniken von Interesse mehr in
      Geowissenschaften und der Medizin wie in der Astronomie. Allgemeine Hintergrundinformationen über
      speziell astronomische Bildverarbeitung, siehe TA Rector et al.
      “Image-Processing-Techniken für die Erstellung von Präsentations-Qualität
      Astronomische Bilder, “AJ, 133, 598, 2007;. Und R. Lupton et al,
      “Vorbereiten von Rot-Grün-Blau Bilder von CCD-Daten”, PASP, 116, 133,
      2004.

    IDL Tutorials => Anzeige Konzepte => Anzeigen von Bildern und
    Arbeit mit Farbe.

    ->


    href=”#contents”> [Bis zu Inhalt]

    Die hier beschriebenen Werkzeuge sind in Richtung Analyse der 2-D Bildern ausgerichtet, aber die meisten
    sind für jede Art von Daten-Array nützlich.

    Array-Manipulation:

    • Sie können auf das Bild mit einem beliebigen IDL-Arrays operieren
      Routine, die 2-D-Eingänge, darunter die gesamte Palette der Standard akzeptiert
      Arithmetik und andere mathematische Funktionen. Die meisten dieser Routinen sind
      Array-orientierte und nicht verlangen, dass Sie über do-Schleifen oder Sorgen
      Element-Struktur in Arrays.

      Die meisten mathematischen

    • IDL
      Funktionen verhalten sich vernünftig und geben Ihnen die Ergebnisse, die Sie intuitiv
      erwarten. Z.B. wenn ein und b Arrays sind mit der
      gleichen Abmessungen, dann c = a * b erzeugt ein Array mit der
      gleichen Dimensionen in der jedes Element das Produkt der
      entsprechenden Elemente in ein und b . (Es gibt
      separaten Betreiber – #, # # — für andere Arten von Matrix
      Multiplikation.)
    • Viele Arten der Bildmanipulation kann mit einem Online-ausgeführt werden
      Befehle in IDL. Z. B.:

        Kantenerkennung: ctvscl, a-Verschiebung (a, 1,1)

        Unscharf maskieren: ctvscl, eine glatte (a, k) zeigt den Unterschied
        zwischen dem Originalbild und einem Güterwagen-geglättete Version mit einer Glättung
        Länge k Pixel. Das ist schnell, aber das geglättete Bild enthält
        die Auswirkungen der scharfen Strukturen (wie Sterne). Besser, wenn auch langsamer
        auszuführen, ist ctvscl, A-Median (a, k) .

    • Änderungen werden natürlich aus der temporäre Daten setzt gespeicherten
      im RAM. Die ursprünglichen Dateien von dem die Daten übertragen wurden in
      Ihre IDL-Sitzung sind nicht betroffen (es sei denn, Sie rufen spezielle Datei
      Manipulation Routinen). Allerdings bedeutet dies auch, dass die ständige
      Versionen der modifizierten Images sind nicht am Ende Ihrer IDL gehalten
      Sitzung, sofern Sie vorsätzlich sparen der Datensatz oder
      schreiben neue Output-Dateien (siehe nächsten Abschnitt ).
    • Wenn Sie wollen, um die Anwendbarkeit des Bildes zu erhalten
      Header zu den manipulierten Bildes, dann müssen Sie das Update
      Header
      nach jeder Änderung. Sie können Kommentare zu den bestehenden hinzufügen
      Header mit dem sxaddhist Routine. Änderungen, die nicht
      Auswirkungen auf die Stichworte, im Header enthalten (z. B. Himmel
      Subtraktion, Exzision von Sternen im Vordergrund) können einfach dokumentiert werden
      auf diese Weise. Allerdings ändert sich in dem Flussmittel Umfangs oder, insbesondere, das Bild
      Format (durch Extraktion, Rotation, Rebinning, etc.) erfordern in der Regel
      dass die Schlüsselwörter geändert, damit später Routinen funktionieren werden
      korrekt. Eine spezielle Gruppe von AstUseLib Routinen, einschließlich
      hextract, hrot, hastrom, hrebin, etc. tun wird Standard-Manipulationen
      auf Bilder und Bild-Header gleichzeitig. Astrometric Informationen für
      So werden erhalten.

    Datenschutzbehörde:

    • Druck, max (a); Druck, min (a); print, MinMax (a); Druck, bedeuten (a);
      Print-, Varianz (a); print, Median (a); Druck, vor (a)
      : print
      verschiedenen statistischen Eigenschaften von Bild-Array. ( Moment
      Drucke ersten vier Momente.)
    • Um den Hintergrund Ebene abzuschätzen, Einsatz Himmel .
        Himmel Werke durch eine Schätzung der Modus der Bildwerte.
        Es geht daher davon gibt es viel mehr Pixel in der Nähe der Himmel im Hintergrund
        Niveau als Quelle gibt es Pixel. Es wird nicht gut in die
        Bei sehr geringen Himmel Hintergründe, wo der Himmel ist nicht Histogramm
        reibungslos kontinuierlich.
    • So extrahieren und untersuchen ein Unterfeld , die Sie verwenden können Standard-IDL
      Index-Notation. Z.B.

              Teil = image [100:200,150:250] 

        extrahiert ein 101×101 Subarray aus dem Bild. Sie können interaktiv
        bestimmen die Kanten einer Fläche von Interesse unter Verwendung curval
        oder Cursor .

    • zu vergrößern (oder komprimieren) ein Array:
      neu = Rebin (Bild, N, M) . N und M
      muss ganzzahligen Vielfachen der aktuellen Dimensionen sein
      Bild . Die Kompression wird oft mit Bildern, die nötig sind,
      zu groß, um auf Ihrem Monitor passen (in der Regel begrenzt auf ca.
      1000×900). Pakete wie ATV und SAOimage tun
      Diese Kompression automatisch.

        Für Vergrößerung, fügen Sie das Schlüsselwort / sample , wenn Sie wollen,
        bewahren die ursprüngliche Pixelstruktur. Das ersetzt nächstgelegene
        Nachbar Probenahme für die bilineare Interpolation ist, die der
        Standard.

        Um ein Bild zu nicht-ganzzahligen Vielfachen von ihrem ursprünglichen Format regrid,
        verwenden frebin oder congrid

        Wenn Sie beabsichtigen, Flussmittel Maßnahmen aus der komprimierten oder erweiterten machen
        Bilder, sicher sein, um das Ergebnis zu skalieren, so dass Flussmittel ist
        erhalten
        in einem bestimmten Bereich des Originals. Für
        Wenn Sie z. B. verwenden Rebin in eine MXM Bild zu komprimieren ein
        NxN Bild mit Probe = 0 , wobei jedes Pixel in der resultierenden
        Bild enthält die Durchschnitt der entsprechenden Pixel
        in der ursprünglichen, so daß der Gesamtfluß ist ein Faktor
        k 2 kleiner als in der ursprünglichen, wobei k = M / N

    • Kennzeichnen von Werten im gegebenen Bereich: Nutzen Sie den wo
      Funktion. ZB: Das Pixel mit einer Flagge markieren -666:

       
      
             tx = Bild; erstellen temporäre Kopie (es sei denn Sie das nicht tun
                               , Geist korrumpieren das ursprüngliche Array)
             finder = wo (tx eq -666); erstellen eine Liste der relevanten Pixel
             TX [Finder] = 10000; wählen Sie sie aus (wir nehmen an normale Werte tx
                               ; Sind << 10000)
             ctvscl, TX, min = 0, max = 9000; markierten Pixel werden nun abheben
         
    • So konvertieren Koordinaten zwischen Dezimal-und sexigesimal Form ,
      verwenden 60 [Dezimalzahl in sexigesimal], zehn [sexigesimal
      zu dezimal], oder Radec [RA und DEC von Grad in sexigesimal].
      Zum Beispiel:

        radegrees = 15,0 * zehn (22,30,17.5)

    Spezial-Displays und Plots

    • Um eine gesamte Spalte zu zeichnen: Plot-, Bild-[N, *] ; zu plotten
      Werte zwischen den Reihen r1 und r2 in einer Spalte:
      Plot-, Bild-[N, R1: R2].
    • Um eine Zeile zu plotten. Handlung, Bild [*, N]
    • Um interaktiv & Plot Zeilen oder Spalten mit dem Cursor: versuchen
      Profile.
    • Um den Mittelwert zu plotten von 5 benachbarten Spalten:
      Grundstück, avg (Bild [c0: c4, *], 0) . Für 5 angrenzenden
      Zeilen: Grundstück, avg (Bild [*, R0: R4]., 1]
    • Um ein Bild Scheibe mit beliebigen Start-und End extrahieren
      Punkte (ausgewählt durch den Cursor aus dem aktiven Fenster und markiert
      mit einem “Gummiband”): Scheibe = Profil (Bild) . Sie können
      zeichnen dann die Extraktion.
    • curval, Bild : abgelesen Bildwerte in jedem Pixel
      interaktiv mit den Cursor im aktuellen Fenster. Um zu konvertieren
      Flüsse, RA, DEC Verwendung von Informationen aus der Bild-Header, verwenden Sie
      curval, hdimage, Bild , wo hdimage ist
      der zugehörige Header-Variable. Die intrinsische IDL-Routine
      zum Ablesen Bildwerten ist rdpix .
    • tvlist, Bild : druckt eine Matrix der Bildwerte in
      Nähe der Cursor-Position im aktuellen Fenster. Optionen, um zu schreiben
      Datei. imlist ist ähnlich, aber Koordinaten werden in getippt
      (Verwendet nicht die Fenster / Cursor).
    • Zoom : zeigt einen vergrößerten Ausschnitt des Bildes in der aktuellen
      Fenster zentriert auf den Cursor. Mittlere Maustaste Änderungen Zoom
      Faktor. Rechts-Taste beendet. Works durch Kopieren des aktuell angezeigten
      Fenster-Puffer, nicht original image-Werte, und die aktuelle Version
      funktioniert nur für Pseudo-Farbdisplays. Gezoomten Fenster verschwindet
      am Ausgang. Stichwort / kontinuierliche kann verwendet werden, um die folgen werden
      Bewegung des Cursors.
    • Bildglättung ist oft im Umgang mit niedrigen nützlich
      Kontrast oder verrauschten Daten. Verschiedene Optionen stehen zur Verfügung in IDL;
      am häufigsten verwendeten sind glatte und Median ,
      welche Rendite er den Waggon Durchschnitt und Median Werte.

        Um ein Bild von einem 5×5 Pixel Güterwagen in einer Linie geglättet anzuzeigen:
        ctvscl, glatt (Bild 5) .
    • Oberfläche, Bild : erzeugt Oberflächen Plot (projizierte 3-D) des Bildes.
      Sehen Sie sich die IDL
      Handbücher zu vielen Verbesserungen in der Oberfläche Plotten
      (Z. B. shade_surface ).
    • plothist, Bild : Histogramm beurteilen Pixelwerte in
      das Bild und Handlung das Ergebnis. Die Standard-Histogramm läuft von der
      Minimum zum Maximum des Feldes mit einem Behälter eine Größe von 1,0 Einheiten.
      Sie müssen die xrange , wenn das Array enthält kleine beschränken
      Zahl der echten oder falschen Werte, die sehr große oder sehr sind
      klein. Standardmäßig wird davon ausgegangen, dass das Array Integer enthält
      Werte. Optionale Parameter einstellen Cutoffs und Binning. Die
      Histogramm -Funktion weckt starke Emotionen, um mehr zu vertiefen
      tief, siehe
      <A
      “Histogramm: Die atemlose Entsetzen und Abscheu” , ein Tutorial von JD Smith.
    • Kontur, Bild : Grundstück eine Kontur-Diagramm. Um die Kontur zu geben
      Ebenen, verwenden Sie die Ebenen Stichwort. Z.B. bis 10 Konturdiagramm
      Ebenen, auf Werte von 25, 50, 100, 200 …:

         
                           nup = findgen (10)
                           CLEV = 25. * 2 ^ NUP
                           Kontur-, Bild-Ebenen = CLEV 

        Ein Beispiel für die Platzierung einer Konturlinie Grundstück über ein Bild-Anzeige,
        finden Sie in der Kopfzeile von Liam Gumley die imdisp Routine.

    • (Beispiel hier) .
    • ATV ist eine schnelle und einfache Möglichkeit der Inspektion Bilder (Helligkeiten, x
      oder y-Profile, Morphologie, etc.), tut Grobanalyse wie immer
      FWHM der Photometrie und der Öffnung der Quellen, und das Extrahieren ra, dec
      Positions-Informationen aus den Kopf. Es ist zu optisch / IR-orientierte
      Bilder, sondern auf jede Art von 2-D-Bild-Daten zu arbeiten. ATV ist die
      beste Ausgangspunkt , wenn Sie wollen, GUI-basierte IDL erkunden
      Displays für die Astronomie. Der Code ist öffentlich verfügbar, und Sie können
      leicht anpassen Standardverhalten, wenn Sie dies wünschen.
    • an der UVA, wird ATV-Software in / astro / IDL / ATV eingeschlossen und wird von immer
      standardmäßig in Ihrem IDL Weg. Um ATV aufrufen, Typ ATV .

      • Um ein vorhandenes Bild-Array in IDL ATV anzuzeigen, geben Sie
        ATV, Bild
      • Um ein Bild direkt anzeigen aus einer FITS-Datei auf der Festplatte, Typ
        ATV, [filename.fits] oder benutzen Sie die “Datei” Pulldown-Menü.
    • ATV ermöglicht Zoomen und Roaming etwa Bilder. (Es wird automatisch
      Kompressen oder Auszüge aus Bildern zu groß für den Bildschirm.) Sie können
      stellen Sie die Skalierung des Bildes, z. B. mit den “Min / Max” Eingabefelder,
      und zwischen linear, logarithmisch oder asinh Skalierung wählen. Sie können
      interaktiv anzupassen, den Nullpunkt und den Kontrast in den Farbtabellen
      (Set MouseMode auf “Color” und ziehen Sie die Maus über das Bild halten
      unten der linken Maustaste).

      Mit

    • einzelne Tastenanschläge, können Sie eine Reihe Plot ( r );
      Spalte Plot ( c ); Oberflächen Plot ( s );
      Konturdiagramm ( t ); ein Histogramm ( h ), oder
      Bild lokalen Statistiken ( i ). Sie können auch schnell
      machen eine Extraktion eines Spektrums aus einem spektralen Bild ( x ).
    • Die p -Befehl tut Apertur-Photometrie (DAOPHOT-Stil,
      mit Hintergrund-Subtraktion) an einer ausgewählten kompakte Quelle mit optionaler
      Anzeige des radialen Profils der Quelle. Photometrie, einschließlich
      FWHM ist, kann in einer Datei gespeichert werden.
    • Bild wird im ATV kann ohne weiteres in PostScript, FITS gespeichert werden,
      JPEG, TIFF, PNG und Ausgabeformate. Sie können die Anzeige oder beschriften
      Hinzufügen Overplots vor der Ausgabe.
    • vs ATV SAOimage (DS9) : Die Standardwerte in ATV zu besseren
      ersten Displays der UV / optisch / IR-Bilder als die in SAOimage, und
      Die Displays sind einfacher einzustellen. Die ATV-Inspektion Werkzeuge sind nicht
      gefunden in SAOimage. Allerdings unterstützt die Identifizierung von SAOimage
      “Regionen” für die Extraktion von anderer Software und ist viel günstiger für
      blinkt zwei oder mehr Bildern und bei der Herstellung eines schnellen RGB-Komposit aus
      3-Farb-Imaging.
    • ATV Links (UCI)

    Herstellung synthetischer Bilder, um Software zu testen :

      •  
        Patt = bytarr (400400)
        q = bytarr (100100) 16
        für i = 0,3 do for j = 0,3 zu tun Patt [i * 100, j * 100] = (i +4 * j) * q
        CTV, Patt
        
         
        b = Größe (Array)
        Lärm = sqrt (Array) * randomn (Seed, b [1], b [2])
        noisyarray = array + Rauschen
        

        (Hier werden Werte pro Pixel in dem Array input davon ausgegangen, dass größere
        als ~ 30 zählt. Ansonsten verwenden Sie den poisson , um ihn
        simulieren Photonenrauschen.)

    • Sie können sofort erstellen Testbilder mit Befehlen wie
      test = findgen (512512) .

      Experimentieren Sie mit Display / Cursor-Routinen mit Hilfe von Testbildern mit “hot
      Pixel “, z. B. test = fltarr (512512) 1000. &
      Test [150250] = 20000.
      , Treppen, Steigungen, und so weiter.

      Um einen 16-Ebene “Testbild” des gestuften, einheitlichen 100×100 erstellen
      Unterbilder mit Pixelwerte läuft von 0 bis 240:

      Synthetische Punktquellen können
      schnell, indem Sie “Hot Pixel”, wo gewünscht und dann erstellt
      Convolvulaceen -Ving das Ergebnis mit einem Point-Spread Funktion.

      Die IDL-Zufallszahlen-Generatoren kann sehr nützlich sein in
      solche Anwendungen. Zum Beispiel, um Gauß Photonenrauschen hinzuzufü
      Array mit vorausgesagt Photonenzählereignisse:


    href=”#contents”> [Bis zu Inhalt]

    href=”#retrieve”> [up to data and Image Retrieval]

    ASCII-Dateien

      Der beste Weg, um kleine Datenmengen zu speichern (zB Photometrie-Ausgang) ist in
      Form von ASCII-Dateien, da diese leicht bearbeitet und transportiert
      (Siehe oben ). Ein Beispiel-Script zu schreiben, ein
      Datei mit Zielnamen, Koordinaten und Helligkeiten aussehen könnte
      wie folgt aus:

       
             get_lun, Einheit
             openw, Einheit, 'Ausgabedatei'
             form = '(A15, 3x, f9.5, 3x, f9.5, 3x, F6.2)'
             für i = 0, numtarg-1 do printf, Einheit, format = Form, $
                     targid [i], radeg [i], decdeg [i], Vmag [i]
             nahe, Einheit
       

      Hinweis: Sie können die Ausgabe formatieren, indem Sie einen Testdruck zu Ihrem prüfen
      Terminal, mit Aussagen wie:

       
             form = '(A15, 3x, f9.5, 3x, f9.5, 3x, F6.2)'
             für i = 0, tun numtarg-1 drucken, format = Form, $
                     targid [i], radeg [i], decdeg [i], Vmag [i]
          

      forprint ist ein praktisches Dienstprogramm zum Drucken AstUseLib mehrere Vektoren
      um den Bildschirm oder ein ASCII-Datei entweder, die Format Schlüsselwort muss nicht
      werden angegeben.

    Binary Files : Siehe Beschreibung der Binärdateien oben . Die grundlegende IDL-Routine zum Schreiben
    unformatierte binäre Dateien ist writeu . Um Dateien zu erstellen, die
    sind portabel zwischen Computer-Betriebssysteme, die optionale
    XDR Keyword mit dem offenen Prozedur.

    FITS-Dateien :
    Um eine FITS Datei von IDL-Variablen schreiben, verwenden Sie
    fits_write .

      fits_write, [Dateiname], [Bild variabel], [header variable] :
      Schreiben Sie Bilder auf der Festplatte im FITS-Format. Die resultierende Datei hat
      der Name [Dateiname]. passt.

      Wenn die Bilder wurden
      manipuliert und ihr habt nicht beschäftigen die AstUseLib Header-Tracking
      Befehle wie hextract, hrot, hastrom, hrebin, und
      so weiter, dann müssen Sie einen neuen Header (verwenden mkhdr )
      oder aktualisieren Sie den vorhandenen Ankoppelung des gespeicherten Bildes.
      fits_write wird optional eine einfache Header erzeugen, oder Sie
      können die SX * Befehle wie sxaddhist verwenden
      oder sxaddpar , dies zu tun. Es ist besonders wichtig,
      sicher sein, dass die Parameter BITPIX, Naxi * und
      DATATYPE korrekt eingegeben haben.
      fits_write schreibt in der aktuellen
      Verzeichnis.

    SDAS oder IRAF Dateien : Verwenden Sie stwrt und
    irafwrt zusammenhängen. Diese (veraltet)-Routinen
    erzeugen jeweils zwei Ausgabe-Dateien (* . hhh und *. HHD
    für SDAS; IMH * und * pix für IRAF)…

    <-! Datei
    Transfer zwischen FITS, SDAS und IRAF Formate können lästig sein,
    da nicht alle Modi wurden sorgfältig geprüft. Dies gilt für
    sowohl IDL
    und IRAF / STSDAS. Überprüfen Sie immer Ergebnisse sicher zu sein.

    ->

    Andere Bildformate

      Output in anderen beliebten, aber nicht spezifisch astronomischen, Bild
      Dateiformaten wird von IDL unterstützt. Siehe write_gif,
      write_jpeg, write_png, write_tiff,
      usw. Eine Alternative ist
      write_image , einer intrinsischen IDL-Prozedur, die auch
      schreibt die Ausgabe-Dateien in Formate wie. IDL unterstützt auch schriftlich
      MPEG-Animationen.

      Eine Beschreibung finden Sie oben auf
      wie man TVRD zu kopieren die Inhalte des
      angezeigte Bild Fenster zu einem IDL-Variable in Vorbereitung
      Schreiben in eine Datei.

      GIF-Format ist ein guter Weg, um Grafiken zu speichern Linie oder verarbeitet
      Bilder (in 2-D-Format) mit speziellen Farbtabellen eingebettet. JPEG,
      was speichert Bilder in 3-D-Format, ist ein natürliches Mittel, um zu sparen
      True-Color-Bilder, obwohl die Kompressions-Algorithmus verwendet, um zu verringern
      Die Dateigröße kann zur Beeinträchtigung Qualität (dies kann eingestellt werden). TIFF
      Dateien speichern Bilder in 3-D-Format verlustfrei in Form, sie werden verwendet,
      zur Publikation in Fotoqualität. GIF und JPEG sind die am weitesten
      verwendeten Standardformate für Internet-Browser. Leider
      keines von beiden, noch die anderen populären kommerziellen Formaten,
      bieten eine Möglichkeit, Header-Informationen zu speichern.

    Instant Storage der Session-Daten

      Die intrinsischen IDL save Befehl retten wird und Variablen
      Programme aus der aktuellen Sitzung
      in einem speziell strukturierten
      Binär-Datei. All dieses Material kann in einem späteren IDL wiederhergestellt werden
      Sitzung
      mit einem einzigen restore -Befehl.

      Sie sollten löschen Sie alle überflüssigen oder sonst uninteressant Variablen
      (Vor allem große Arrays) vor dem Aufruf save .

      Überprüfen Sie die save Stichworte, vor dem Gebrauch. Auf einem LINUX
      System, wird die Ausgabe-Datei in einem universellen XDR -Format vorliegen
      diese kann auf Nicht-Linux-Rechner portiert werden.

      sparen kann sehr nützlich sein für die Lagerung von Zwischenprodukten
      Ergebnisse, sondern ist nicht für die permanente Aufzeichnungen empfohlen .
      Warum? Für eine Sache, es ist zu einfach, was alle Variablen vergessen
      bedeuten, wenn Sie sich die Zeit nehmen, um FITS-oder ASCII-Dateien zu schreiben, Sie
      eher die Arbeit zu dokumentieren. Zum anderen,
      sparen
      ermutigt Einweichen bis Massenspeicher mit redundanten
      Kopien des Arrays, das kann sich nur wenig von ihrer veränderten
      ursprünglichen Werte. Es ist effizienter, ein erstellen
      Skript , die relativ einfache Änderungen an Bildern in macht
      Vorbereitung für die weitere Verarbeitung statt
      die Zwischenschicht Versionen speichern. Schließlich ist die Wiederherstellung der
      sparen Dateien hängt von der Verfügbarkeit von IDL — nicht
      gewährleistet, wenn Sie woanders hinziehen. Standard-IDL passt oder ASCII
      Datei-writing-Routinen sind für permanente Daten vorzuziehen.

      Der Default-Name der Ausgabedatei ist idl.dat ,
      und diese Datei Namen werden überschrieben auf der nächsten
      sparen
      . Am besten, etwas zu ändern, wie informativ
      ngc1068.sav .


    href=”#contents”> [Bis zu Inhalt]

    • Ureinwohner IDL bietet sich für No-Frills- rechteckige Öffnung Photometrie
      durch einfache Befehle wie
      Mittel = Summe (Array) / n_elements (Array) , wo Array
      ist ein Teil eines größeren Bildes (definiert, zum Beispiel unter Verwendung der einfachen
      Index-Schreibweise: array = bigarray [x1: x2, y1: y2] ). Raffiniert
      Versionen dieses einfachste Ansatz kann in avg gefunden werden .
    • Point Source Photometrie:
        Die AstUseLib enthält einen IDL
        Version des DAOPHOT 1987 FORTRAN Version, bei
        http://idlastro.gsfc.nasa.gov/contents.html # C2
        . Dies führt
        Apertur-Photometrie und PSF-Fitting Photometrie auf Punktquellen. Es ist
        funktionell sehr ähnlich DAOPHOT-87, sondern bietet den zusätzlichen
        Vielseitigkeit des IDL interaktive Umgebung. Die Basisroutinen
        finden und aper sind besonders nützlich. Die IDL
        Quellcode ist verfügbar.

        Diese Routinen beinhalten nicht die verbesserte
        Merkmale des DAOPHOT 1991 oder spätere Versionen. Um PSF-Stück zu tun
        Dekonvolution von Blended-Bilder, können Sie versuchen die IDL-Paket Starfinder
        oder benutzen Sie die neueren Stand-alone-oder DAOPHOT DOPHOT Releases. Die
        grundlegende IDL Routinen bleiben sehr nützlich vorläufige Bewertung der Daten
        Rahmen, vor dem Einstellen der mechanischen losen Schnorrer, und
        Analyse der Ergebnisse. (Die Ausgabe-Dateien von Standard-Photometrie
        Programme können einfach wieder in IDL gelesen werden.) IDL ist auch eine ausgezeichnete
        Weg zu synthetischen Daten erstellen Sets mit bekannten Eigenschaften, auf denen
        überprüfen Photometrie Paket Betrieb.

    • Oberfläche Photometrie: Eine Reihe von grundlegenden Routinen wie
      dist_circle und dist_ellipse zur Verfügung stehen
      unterstützen Oberfläche Photometrie, aber es gibt keine “offizielle” AstUseLib Oberfläche
      Photometrie Programmen. Mehrere einzelne Benutzer, einschließlich der RWO haben
      ihre eigenen Routinen, die andere auf einem “auf eigene Gefahr”-Basis.

      verwenden kann

    • Die ATV Bildbetrachter enthält ein
      interaktive kreisrunde Öffnung Photometrie Dienstprogramm, abgeleitet aus
      DAOPHOT, die sehr nützlich für die Erkundung Flüsse, die FWHM ist, und
      Hintergründe ausgewählter kompakte Quellen. ATV macht optional Quellprofil
      Displays.
    • Eine Reihe anderer Benutzer geschriebene Photometrie-Pakete , meist
      für Punktquellen, sind durch die AstUseLib Site zur Verfügung.

      <-! (Bei
      http://idlastro.gsfc.nasa.gov/idlfaq.html # B4
      .)

      ->


    href=”#contents”> [Bis zu Inhalt]

    Dank der Bemühungen von Don Lindler, Wayne Landsman und andere an
    GSFC bietet die IDL Astronomy Benutzerhandbuch Bibliothek bequem und
    leistungsstarken Zugang zu Online-Datenbanken
    . Informationen aus
    diese können direkt in Ihre IDL-Sessions eingebunden werden.
    Zum Beispiel kann die Routine
    imdbase markiert die Positionen der Quellen in ausgewählten
    Kataloge auf Ihrem aktuellen Bild-Anzeige (vorausgesetzt, Sie haben richtig
    Astrometrie für Ihr Bild.)

    Einzelne Befehle in der Datenbank
    Paket werden auf der IDL Astronomie
    Benutzer-Bibliothek Homepage
    . Weitere Details werden in der 2001 gegebenen
    Beschreibung
    AUL-Datenbank-Info-2001.pdf .

    Die Datenbanken müssen in einem speziellen IDL-lesbares Format gebracht wurden
    bevor Sie darauf zugreifen können (Befehle, dies zu tun sind Teil der
    Paket). Eine Auswahl von IDL-Datenbanken von allgemeinem Interesse ist öffentlich
    erhältlich von der IDL Astronomy Benutzerhandbuch
    Bibliothek
    . An der UVA, etwa 95 solcher Datenbanken, in Richtung gewichtet
    UV-Wissenschaft, zur Verfügung. Sie werden derzeit verknüpft:
    / astro / IDL / zdbase .

    Um die Datenbanken verwenden, müssen Sie definiert haben, die
    Umgebungsvariable $ ZDBASE , um zum Verzeichnis zu zeigen
    diese enthalten.

    Um festzustellen, welche Datenbanken verfügbar sind, verwenden Sie den Befehl
    dbhelp, 1 . Um zu sehen, welche Informationen
    enthalten in einer gegebenen Datenbank und Informationen für die Anzeige
    Ausgewählte Einträge (hier Zahlen 10,100,1000), Typ

      dbopen, '[Datenbank name]
                 dbhelp, 1
                 dbprint, [10,100,1000], '*
    

    Abrufen und nutzen die Daten-Einträge, müssen Sie
    verwenden Sie die kompliziertere Befehle in der beschriebenen
    Dokumentation oben zitiert.

    Die Schaffung neuer Datenbanken mit Hilfe der mitgelieferten Tools ist relativ
    unkompliziert, so können Sie andere Datensätze zu konvertieren Online
    IDL-Datenbanken
    wie Sie wollen.


    href=”#contents”> [Bis zu Inhalt]

    IDL macht Plots standardmäßig in der “aktuellen” Terminal Grafikfenster
    welche in Größe, Lage, etc. eingestellt werden, indem die gleichen grundlegenden
    Befehle wie für Image-Anzeigen (siehe
    oben
    ). Rollen sind mit den Abmessungen des aktuellen skaliert
    Fenster.

    Die grundlegenden Befehle zur Herstellung von IDL-Plots sind Grundstück , für
    Schaffung einer neuen Handlung, und oplot , für overplotting auf ein
    bestehenden Grundstück. Das Ziel für das Grundstück (Terminal, PostScript
    Datei, etc.) wird durch die set_plot bestimmt -Befehl (siehe nächsten Abschnitt ).

    Dies ist jedoch nur die Spitze eines riesigen Eisbergs. IDL
    enthält viele Optionen, um ihre Grundstücke — so viele in der Tat, dass die
    schwierigste Teil der Arbeit werden kann, den Überblick über die Vielzahl der
    optionale Parameter. Optionen in Form von Stichworte, kann
    angegeben in den Aufrufen zu den Plot-Funktionen. Alternativ können sie
    können in Form von aufgerufen werden
    Systemvariablen , wie ! p.title , der Wille
    gelten für alle Anrufe, bis später Handlung verändert.

    • Norm Plotten und Grafiken Stichworte werden erläutert in
      Anhang B der v7.0 IDL-Referenz
      Guide oder
      on-line
      Eingabe ? Plot und wählen Sie dann “Grafik Schlüsselwörter.”
    • Die am häufigsten verwendeten Stichworte, Plotten und Systemvariablen
      folgen. Alle sind optional. Anwendungsbeispiele sind unten angegeben.

        • (Um Grundstücke anders als auf den Achsen mit Anmerkungen zu versehen, verwenden Sie die xyouts
          Befehl.)
          Für Hilfe bei der Auswahl von Schriften finden Sie in der ShowFont (Vektor-gezogen),
          xfont (X-Windows-Terminal) oder
          ps_show_fonts (PostScript)-Routinen. Für X-Windows,
          Sie können auch den xlsfonts bei
          der Linux-Eingabeaufforderung erhalten Sie eine Liste der verfügbaren Font-Namen.
          Für weitere Informationen über den Umgang mit Schriften in IDL, Typ ? Schriftarten .
      • Psym oder p.psym :! bestimmt Symboltyp. Ein
        Der Wert 0 (Standard) produziert eine durchgezogene Linie ohne diskrete Punkt
        Symbole, Werte 1 bis 7 wählen Sie andere Arten von (nicht verbundenen)
        Symbole. 8 zeigt, dass der Benutzer ein spezielles Symbol mit definierten
        die usersym oder plotsym Verfahren. 10 Grundstücke
        im Histogramm-Modus. 9 ist nicht definiert. Um Symbole durch ein angeschlossenes plotten
        Linie, können Sie zunächst Grundstück mit Psym = N , dann
        oplot mit Psym = 0 .

        xrange und YRange : 2-Element-Vektoren geben die
        Minimum und Maximum für jede Achse. Wenn nicht definiert, Autoskalierung
        auftreten. Entsprechende System-Variablen sind ! X.range
        und ! y.range .

        / xlog und / oder / ylog : set diese Keywords zu verwenden
        Basis-10 logarithmischer Auftragung auf der entsprechenden Achse.

        linestyle : wählt Stil der Linie gezeichnet (solid, dotted,
        Strich-Punkt, etc.), wenn Psym = 0 .

        xstyle und ystyle : set Achse Optionen (z. B.
        genauen Bereich, anstatt aus)

        gerundet

        p.title , x.title und y.title !:
        Saiten für den Plot Titel (zentriert
        über die obere x-Achse), x-Achse Titel, y-Achse Titel.

        font oder p.font : gibt die Schrift, die im verwendet werden
        Anmerkungen. Die intrinsischen IDL-Fonts werden geliefert “Vektor-gezeichnet
        Hershey “-Schriften. Dies sind zufrieden stellend für Bildschirmanzeigen, sind
        geräteunabhängig und sind notwendig, wenn damit 3-D-Plots. Aber es
        ist besser, die “Hardware”-Schriften von Grafiken Anbietern geliefert für den Einsatz
        veröffentlichungsfähigen Arbeit. Hardware-Schriften werden mit jeder der
        die verschiedenen unterstützten Ausgabegeräten. ! p.font = -1 (Standard)
        wählt die Vektor-Fonts gezogen;! p.font = 0 wählt die
        Hardware-Schriften. Um eine bestimmte Schriftart zu wählen, wenn Sie ausgewählt haben
        Hardware-Fonts, verwenden Sie das Gerät , set_font = "[Name]"
        Befehl.

    Die IDL-Standardwerte sind nicht so “schön” wie die in SUPERMONGO, für
    Beispiel. Sie können jedoch schnell anpassen, um so zu erhalten
    ausgefeilte ein Plotten Stil, wie Sie möchten. Die Funktionalität von
    SUPERMONGO und andere wissenschaftliche Grafik-Pakete ist inhärent
    IDL. Viele der 2-D und 3-D-Grafik-Routinen sind in dem dargestellten
    IDL-Demos, die mit dem System kommen.

    Farbtabellen für Grundstücke:

      Die Plot-Befehle akzeptieren die Schlüsselwörter Hintergrund , die
      setzt die Hintergrundfarbe eines Plots, und Farbe , die
      bestimmt die Farbe für Linien und Symbole verwendet. Standardmäßig auf einem
      Falschfarben-X-Fenster-Anzeige, Hintergrund wird auf Index 0 gesetzt
      und Farbe wird auf Index 255 gesetzt. Diese zeigen daher die
      “Unten” und “top” Ihrer aktuellen Farbtabelle, jeweils. [Farbe
      Tabellen sind unter Bildanzeige .] The erklärt
      tatsächlichen Aussehen Ihrer Parzelle wird dann auf, welche Farbe Tabelle abhängen
      Sie geladen haben (z. B. mit loadct, N ). Die Standard-Tabelle
      ( N = 0 ) erzeugt einen schwarzen Hintergrund und weißen Symbolen. Ihre
      Anzeige wechselt, wenn Sie eine andere Farbe verwenden oder Tisch
      Grundstück / Hintergrund-Indizes. Sie können einen speziellen Satz von Farbe
      Tabellen, um einen definierten Satz von, sagen wir, 10 Standard-Farben für Ihre produzieren
      Parzellen.

      Hinweis: es ist am einfachsten zu Pseudo-Farbe oder emulierten Pseudo-Farbe verwenden
      ( Gerät zerlegt = 0 ) für Grundstücke. In 24-Bit-True-Color
      ( Gerät zerlegt = 1 , müssen Sie angeben Farben
      Langwort als ganze Zahlen.

    Probe Plotten Skripte für die Anzeige von Plots auf Ihrem
    Terminal folgen. Diese beinhalten eine Mischung aus intrinsischen und IDL
    AstUseLib Routinen:

    1. Benutzen diskreten Symbolen (keine angeschlossene Leitung). Auf diesem Grundstück,
      eine Galaxie mit einer Standard-”de Vaucouleurs” Helligkeitsprofil wird
      eine gerade Linie. Dieses Beispiel zeigt auch, wie man schnell kann
      bearbeiten schlechte Daten weist darauf hin, der Grundstücke.

      Angenommen, die (geordnete) Vektoren sb , rad und
      sberr bereits vorhanden sind, mit sb und
      sberr in Einheiten von erg / s / cm ^ 2 und ^ 2/Angstrom/arcsec
      rad in Einheiten von Bogensekunden. Nehmen wir an, wegen der schlechten Daten
      Punkte, die Sie beschneiden muss, das Grundstück an die ersten 3 Einträge zu beseitigen und
      die nach dem 20..

       
      
      mags = -2,5 * alog10 (sb (3.19)) -21,1; Konvertieren SB zu Magnituden pro arcsec ^ 2
                                         ; In der STMAG System, ignorieren schlechte Daten.
                                         ; Annimmt, dass alle SB-Einträge sind> 0 ist.
      
      R25 = Rad (3,19) ^ 0,25; Compute vierte Wurzel aus Radiusvektor,
                                         ; Ignorieren schlechte Dateneingaben
      
      magerr = 1,086 * sberr (3:19) / SB (3:19); Konvertieren Unsicherheiten
                                          ; In SB zu Größen
      
      ! Y.range = [25,18]; Stellen Sie eine Nicht-Standard-y-Achse Bereich, in
                                     ; In diesem Fall die Magnitude hat
                                     , Kleinere (heller) Werte höher
                                     , Auf der y-Achse
      
                                     ; Machen Sie die Titel
      
      ! P.title = 'Probenoberfläche Helligkeit Profil "
      ! X.title = "Radius (Bogensekunden) ^ 0,25 '
      ! Y.title = 'Oberflächen-Bright (Magazine / arcsec ^ 2)'
      
      plotsym, 4,1.5, / zu füllen; Wählen ausgefüllten Dreiecke für das Plotten Symbol,
                                     , 50% größer als der Standardwert
      
      ploterror, R25, Magazine, magerr, Psym = 8
                                    ; Machen Grundstück auf Terminal-Bildschirm mit Fehlerbalken;
                                    ; Psym = 8 gibt eine vom Benutzer erstellte Symbol, das
                                    , In diesem Fall wurde von plotsym definiert.
                                    ; Keine Verbindungslinien zwischen den Punkten.
                                    ; Wenn Psym wurden ausgelassen oder auf 0, keine
                                    ; Symbole würden aufgetragen werden und die Punkte
                                    ; Würden durch gerade Linien verbunden werden.
      
      xyouts, 1.5,20, "NGC 4151", fügen Sie eine Markierung innerhalb der Zeichnungsfläche. Die
                                    ; Positionsparameter (Dateneinheiten) setzen die
                                    ; Äußersten linken Position der Zeichenfolge angezeigt.
                                    ; Wählen Sie diese, so dass die Saite ist klar, der
                                    ; Die Daten und Achsen.
      
      
    2. Machen Sie ein Konturdiagramm von einer geglätteten Bild.
       
      chan, 3; Offene Plotten Fenster 3
      
      ! X.title = 'X'; Machen Titel
      ! Y.title = "Y"
      ! P.title = 'Konturen für Bild "
      
      Quadrat, Set-Seitenverhältnis, um ein Quadrat zu machen Grundstück
                                          ; (Beachten Sie, dass Sie auch geben diesem Befehl
                                          , Nach der PostScript-Gerät wird als
                                          ;. Machen, wenn Hardcopies)
      
      smooth_one = glatt (Bild 5), glatt das Bild von einem 5 Pixel boxcar
      
      CLEV = [10,20,40,80,160]; Define Studie Kontur Ebenen - davon ausgehen,
                                          ; Diese Werte umspannen den Bereich von Interesse
      
      Kontur, smooth_one, levels = CLEV; Do schnellen Test der Konturdiagramm. Check &
                                           ; Iterieren CLEV für beste Optik
      
      Kontur, smooth_one, levels = CLEV, / zu folgen; Do genauer (langsam) Plot,
                                              ; Mit Etiketten
      

    3. Angenommen x ist ein Vektor mit den Werten im Bereich von 0
      bis 5 und dass y ist der entsprechende abhängige Variable.
      Annehmen, dass diese aus einer ASCII-Datei mit dem Namen zu lesen sind
      xy.dat , die enthält x und y in
      separaten Spalten. xy.dat kann einen ersten erläuternden
      Abschnitt und andere Abscheider Header, solange keiner davon enthalten
      nur ein oder zwei Fließkommazahlen (seit readcol wird
      Fehler, die für Datenleitungen). Die Daten Spalten müssen nicht ausgerichtet werden.
      Standardmäßig ist die readcol Routine wird in der numerischen lesen
      x, y Daten ohne Berücksichtigung einer Linie mit alphabetischen
      Zeichen. Keine Etiketten werden auf dem Grundstück in diesem Beispiel setzen.

       
      readcol, 'xy.dat', xx, yy; Lesen von Daten aus der Datei. Beachten Sie, dass ein Format
                                     ; Und Verlustrechnung und "Open"-Befehl ist nicht erforderlich,
                                     ; Noch tun xx und yy müssen im Voraus festgelegt werden
      
      index = sort (xx); sortieren Arrays in absteigender Reihenfolge der x
      x = xx (Index)
      y = yy (Index)
      
      chan, 1; Open Window 1 zum Plotten
      
      Diagramm, x, y, Psym = 5; zeichnet die Daten mit offenen Dreiecken
      
      quadcoeff = poly_fit (x, y, 2); Leiten Koeffizienten für die besten quadratischen
                                     ; Polynomfit
      Print, quadcoeff; drucken Sie diese aus (optional) [Anmerkung:
                                     ; Quadcoeff ist ein Vektor]
      
      tx = findgen (101) / 20. ; Erstellen unabhängige Variable Vektor für Einbauküche
                                     ; Werte (Uniform x-Intervall von 0,05 Einheiten)
      
      quadtesty = Poly (tx, quadcoeff); erstellen die angepassten Werte quadratische
      
      oplot, TX, quadtesty, Psym = 1; Overplot der quadratischen Anpassung mit Pluszeichen
      
      cubcoeff = poly_fit (x, y, 3); Leiten Koeffizienten für kubische Sitz
      cubtesty = Poly (tx, cubcoeff); erstellen die angepassten Werte kubische
      
      oplot, TX, cubtesty, Psym = 3; Overplot die kubischen Werte mit kleinen Punkten
      
                                     ; [Angenommen, der quadratischen Anpassung war ausreichend]
      
      Delta = y-Poly (x, quadcoeff); Berechnen Sie die Differenz zwischen y-Daten und
                                     ; Die beste quadratischen Anpassung
      
      nix = wo (abs (delta) gt 2.); liegen diese y-Werte, die mehr sind
                                      ; Als 2 Einheiten aus der Best-Fit-
      
      Gewicht = fltarr (n_elements (x)) ein. ; Erstellen Sie ein Gewichtsvektor entsprechend
                                      ; X mit Einheit Einträge
      
      Gewicht (nix) = 0,0; Gib abweichenden Punkte Nullgewicht
      
      newquadcoeff = polyfitw (x, y, Gewicht, 2); Leiten verbessert quadratischen coeffs.
                                          ; Einsatz wiegt nur zugewiesen
      
      Finale = Poly (tx, newquadcoeff); Erstellen verbesserte Passform Werte
      
      chan, 2; Open Window 2 für die endgültige, saubere Plot.
                                     ; (Fenster 1 wird für den Vergleich erhalten.)
      
      Diagramm, x, y, Psym = 5, xrange = [1,3.5]; zeichnet die Daten mit offenen Dreiecke
                                     ; Fenster 2.
                                     ; Angenommen Interesse gilt nur beschränkt
      ; Teil der Daten x-Bereich.
      
      oplot, TX, Finale, Psym = 0; Overplot endgültige Montage mit durchgezogener Linie
      
    4. Unterscheiden zwei Proben in einem Histogramm Plot Angenommen, Sie haben Messungen einer Menge val für zwei Proben
      von Objekten mit einem ähnlichen Bereich von Werten und die Sie vergleichen möchten
      die Histogramme der beiden in einer einzigen Handlung. Eine einfache Weise zu tun,
      dies in IDL ist es, die Vereinigung der beiden Datensätze für ein erstes erstellen
      Plot und dann overplot einen schattigen Histogramm des zweiten Satzes. Wenn
      Die Daten bestehen aus zwei Vektoren, val1 und
      val2 ,

       
           allval = [wert1, wert2]
           plothist, allval, bin = 0,2, xrange = [0,8]
           plothist, val2, bin = 0,2, / über, / zu füllen, fcolor = 200
      

      In der resultierende Diagramm, die Einträge val1 unschattiert werden, während die
      val2 Einsendungen werden mit der Füllfarbe Wert 200 (die schattiert werden
      Bildschirmdarstellung wird durch die vorinstallierte Farbe bestimmt werden
      Tabelle).

        Standardmäßig wird plothist plotten das gesamte Spektrum der
        Werte in den Daten. In Histogramme, ist dies oft unerwünscht, da
        Extremwerte haben in der Regel kleine Populationen. Es ist hilfreich,
        schränken die Reichweite für eine bessere Anzeige der wichtigsten Werte, hier haben wir
        verwendet xrange das zu tun.

      Auch im Falle einer Teilmenge von Datenwerten, die sollen
      zeichnet sich durch einige zweite Parameter:

       
           plothist, val1, bin = 0,2, xrange = [0,8]
           gut = wo (param GE 0)
           plothist, val1 (gut), bin = 0,2, / über, / zu füllen, fcolor = 200
      
        Hier sind die Vektor param müssen die gleiche Länge wie
        val1 , und wir übernehmen die Teilmenge von Interesse definiert ist durch
        mit einer nicht-negativen Wert von param .

    href=”#contents”> [Bis zu Inhalt]

    Die häufigste Methode zur Gewinnung von Hardcopies oder dauerhafte Speicherung
    von Grafik-Ausgang (Grundstücke oder Bilder) ist es, PostScript verwenden
    Dateien
    , da diese am meisten Laserdruckern bedruckt werden.
    PostScript-Dateien können später bearbeitet werden und neu formatiert, wenn besondere
    (Nicht-IDL)-Programme benötigt werden.

    IDL unterstützt auch die Ausgabe von GIF, JPEG, TIFF, PNG, und andere
    Dateiformate. GIF und JPEG sind Standard für Internet-Web-Browsern.
    GIF ist für Line-Zeichnung und Plotausgabe Lagerung empfohlen. TIFF ist
    empfohlen für hohe Qualität im Farbdruck Reproduktionen (zB
    Transport von Image-Dateien auf Anbieter für Hardcopies oder Veröffentlichung).

    Sie sollten immer auf dem Terminal-Bildschirm Experimentieren Sie mit Ihrem Grundstück
    Format vor Dumping in eine Ausgabedatei. Es ist leicht, dies zu tun, indem
    Ausarbeitung der Satz von Befehlen, Sie wollen beim Plotten auf dem Bildschirm,
    dann eingeben set_plot, 'ps (im Falle von PostScript-Ausgabe)
    und wiederholen Sie die Befehle mit dem Befehl Rückruf Puffer .

    Bei komplexeren Plots, verwenden Sie die Zeitschrift Dienstprogramm, dann bearbeiten
    und erneut ausführen, die resultierende Datei (oder Ausschneiden und Einfügen auf Windows).

    Die set_plot Befehl bestimmt
    welcher Ausgang Grafikkarte Sie verwenden
    .
    Die gängigsten Versionen von diesen Befehl sind:

     
            set_plot, 'x : Senden Ausgabe auf X-Windows (Standard) 
            set_plot, 'ps : Senden Ausgang mit dem PostScript-Datei "idl.ps"

    Die nachfolgenden Befehle zum Senden von Daten an die PS-Datei sind (Meistens) das gleiche wie für die Ablage von Daten auf Ihrem Bildschirm, da Monitore und PS-Dateien sind austauschbar Ausgabegeräte für IDL. Sie können immer überprüfen Sie die Eigenschaften der aktuellen Grafik Ausgabegerät, indem Sie Hilfe, / dev . können Sie ändern diese Vorgaben mit dem Gerät -Befehl. Die Hardware / Software-Schnittstellen sind manchmal nicht trivial, und du wirst wollen für eine signifikante Lernkurve in Dinge zu tun, planen die sind nicht “Vanille”. Vor dem Senden großer Aufträge an Drucker, Lieferanten, usw., lesen Sie überprüfen die Dateien mit LINUX ghostview, XV, oder anderen Programmen Bildschirmanzeige. Hier sind einige Methoden für die Grafikausgabe gemeinsame Situationen:

    • Um eine PostScript-Hardcopy eines Grundstück .
      1. Typ set_plot, 'ps die Ausgabe auf “idl.ps” senden
      2. Optional Anpassungen vornehmen, um die Handlung Größe, Seitenverhältnis, Orientierung, Schriften Schriften, etc. mit dem Gerät Befehl
      3. Geben Sie dem Satz von Plott-Befehle — hier genauso wie für eine Bildschirm-Grundstück; alle Systemvariablen wird noch in Kraft sein
      4. Typ Gerät / schließen , um die Datei zu schließen idl.ps . (Hinweis: Die PostScript-Datei wird nicht wirklich auf die Festplatte geschrieben, bis Die enge Befehl gegeben wird.)
      5. Typ $ lp idl.ps , um die Datei auf dem Standarddrucker gedruckt.
      6. Der nächste Befehl Plotten überschreibt idl.ps . Wenn Sie speichern möchten, müssen Sie seinen Namen ändern. Z.B. $ mv idl.ps bossplot.ps .
      7. Beispiel (basierend auf weiter Plotten Beispiel # 2 Plots oben.)
           
          set_plot, 'ps; Plot wird auf PostScript-Datei "idl.ps" gesendet werden,
                                        , Nicht auf dem Bildschirm
          
                                        ; Beachten Sie, dass Ihre Definitionen von plotsym und
                                        ; Systemvariablen wie Achsenbeschriftungen
                                        ; Noch in Kraft sind
          
          ! P.font = 0
          Gerät / Helvetica, FONT_SIZE = 12; s Helvetica PostScript-Schriften für Etiketten
          
          ploterror, R25, Magazine, magerr, Psym = 8
          xyouts, 2.5,17, "NGC 4151"
                                        ; Machen PS Darstellung mit Fehlerbalken, und fügte hinzu, die
                                        ; Typenschild im Inneren der Fläche des Hofs
          
          Gerät / schließen; schließen PS-Datei
          
          $ Lp idl.ps; senden Datei an den Drucker
          
          $ Mv idl.ps surbriteplot.ps; Umbenennen PS-Datei zu speichern.
          
          set_plot, 'x; Senden weiterer Ausgang zum Terminal
          
          cleanplot; Setzen Sie die Plot-System Variablen auf Standardwerte
          
      8. Die Ausgabedatei wird die erwartete “schwarz-auf-weiß” Sinn, es sei denn,
        Sie Gebrauch machen von den Schlüsselwörtern als nächstes beschrieben.
      9. Sie können Farbe PostScript-Dateien, indem Sie machen
        Gerät / Farbe und mit Hilfe der
        Hintergrund und Farbe Stichworte (siehe
        die Plots Abschnitt). Allerdings ist die Behandlung von
        Farbtabellen unterscheidet sich von der X-Windows Fall. Wenden Sie die
        IDL-Handbüchern.
    • Um eine PostScript-Hardcopy von einem angezeigten Bild machen :
      verwenden tvlaser . Dieser lädt eine Bitmap des aktuellen Fensters
      (Unter Verwendung des TVRD Utility), um eine PostScript-Datei und
      druckt sie auf dem Standard-PS-Druckertreiber. Verschiedene Optionen hinzufügen
      Kommentare, Informationen aus dem Header, ändern Sie das Format, und so
      weiter. Wenn Sie den PostScript-Datei speichern möchten, beantworten
      kein , um die Abfrage über “Entfernen” es. Für Farbdrucke,
      Mit den colorps Stichwort. Für farbgetreue Bilder, verwenden Sie
      die TrueColor = N Stichwort.

        Sie können tvlaser , um eine Handlung angezeigt kopieren
        Fenster. Das ist praktisch für die schnelle Arbeit Hardcopies von Grundstücken.
        Jedoch die Auflösung und das Aussehen des Standard-PostScript
        Ausgang oben beschriebene Vorgehensweise ist fast immer besser.
    • Andere Ausgabeformate . Für die Bildausgabe in den Formaten GIF, JPEG, TIFF,
      PNG und andere populäre Ausgabeformate, zuerst fangen die
      angezeigte Bild mit dem TVRD -Befehl (siehe
      oben ). Sie brauchen nicht auf die Verwendung
      set_plot -Befehl. Senden Sie einfach das aufgenommene Bild
      in eine Ausgabedatei mit dem entsprechenden Schreiben -Befehl.
      David Fanning tvread
      Programm kann dump ein Bild machen und eine Ausgabedatei in einem Schritt
      durch die Verwendung von Schlüsselwörtern wie / jpeg .

        Tipp: bei der Erzeugung von PostScript-Ausgabe-Dateien der Bilder für die Veröffentlichung,
        ist es sinnvoll, auch eine GIF-Version, da diese wieder gelesen werden können
        in IDL später, wenn Ausbesserungen nötig sind. IDL nicht lesen können PS-Dateien (obwohl
        LINUX xv kann die PS zu GIF konvertieren).
    • Ausgabe von großen Bildern : Bildausgabe muss nicht auf diejenigen Größen beschränkt werden
      Sie können auf Ihrem Bildschirm angezeigt werden, wie in den obigen Beispielen. Größeres Bild
      Arrays können direkt auf Dateien mit dem write_gif geschrieben werden,
      fits_write und ähnliche Befehle.

      <-! Wandeln Sie das Bild an
      Byte-Format vor der Ausgabe mit dem bytscl -Befehl, wie
      in:

            pic = bytscl (bigim, min = 0, Max = 1835, top = 255) 

      -> <-! VERALTET

    • Hinweis: einige Dia-Making-Software davon aus, dass das Bild in sein Landscape-Modus — i.e. lange Achse horizontal. Wenn Sie exportieren Bilder für Dias vorgesehen ist, ist es am einfachsten, Landscape-Modus annehmen hier. Wenn Ihr Bild ist deutlich höher als breit, drehen Sie es um 90 Grad mit einer der IDL-Dienstprogramme vor dem Speichern. Z.B. picname = drehen (picname, 3) .->

    Technische Probleme:

      • Als eine Alternative zu der Screen-Capture- tvlaser oben beschriebenen Methode können Sie schreiben, Bilder und Beschriftung direkt in eine PostScript-Datei mit dem Standard TV, tvscl, xyouts und andere Routinen. Die Hauptschwierigkeit ist Verstehen Sie das Koordinatensystem in der PS-Datei und verwendet Anordnen der verschiedenen Elemente einer Ausgabeseite in der rechten Positionen. Personen eingereicht mit Versuch und Irrtum (einfach durch das Schreiben die PS-Datei, dann geben einen $ ghostview [Dateiname] -Befehl innerhalb von IDL).
    • PostScript-Dateien sind der beste Weg, um qualitativ hochwertige Line-Zeichnung zu erhalten Plots und sind im Allgemeinen gut von den Verlagen behandelt. Graustufen oder Farbe Bilder sind eine andere Sache, jedoch sollte und angefahren werden iterative Weise. Eine veröffentlichte PS Bild kann sehr unterschiedlich aussehen von der, die Sie direkt vor Ort gedruckt. GIF-oder TIFF-Dateien kann zu einer besseren Ergebnisse als PS. Es können auch Schwierigkeiten mit der endlichen Auflösung des Bildschirms sein zeigt mit dem Snap- TVRD Routine. Dies gilt für die Qualität sowohl des Bildes und jede Beschriftung aufweisen kann wurde es aufgenommen. An einem typischen Computer-Bildschirm, werden Sie nicht bekommen mehr als etwa 900×900 Auflösung. Jedoch eine PostScript-Datei an 300 dpi ergeben können viel höhere Auflösung (1800×1800 in einem 6 ” Bild).

      Wenn Sie speichern Duplikate Ihrer Grafik-Ausgabe in den Formaten GIF, TIFF, JPG, etc-Dateien können Sie nicht-IDL-Utilities wie xv verwenden , Gimp , Photoshop , etc. zu manipulieren, weiter: in der Größe, Drehung, Kontrast, Farbe Tisch, und durch Anwendung verschiedener Bildverbesserung. xv umwandeln kann GIF zu PostScript und umgekehrt. Besonders nützlich für Komprimieren Bildgrößen für den Einsatz im Internet, die arXiv Preprint Server und so weiter.

      Für weitere Tipps, wie gut PS-Grafiken finden Sie unter Figuren aus den IDL von Cruz und Kelle David Fanning http://www.dfanning.com/documents/tips.html # PostScript


    href=”#contents”> [Bis zu Inhalt] Nicht viele Menschen haben vollständig interaktiv erleben Computing , bevor sie zu IDL verwenden zu beginnen. Es gibt enorme Vorteile, aber auch viele Fallstricke für den unvorsichtigen. Die Tücken werden, Natürlich, meist scheint offensichtlich und trivial im Rückblick — dh nach Sie haben gelernt, sie zu vermeiden. Eine Reihe von Tipps und Warnungen für IDL-Anfänger sind in diesem Abschnitt diskutiert.

    Wege, Verfahren, Verzeichnisse

    • Wenn ein Prozedur Name ist unerkannt oder gibt unerwarteter Fehler Nachrichten, überprüfen Sie, ob Ihr Verzeichnispfad (! Weg innerhalb IDL) ist richtig eingestellt. Der Anfangswert der ! Weg wird aus der Schale genommen Variable $ IDL_PATH . Überprüfen Sie die Verzeichnisse in dem Pfad für die Verfahren.
    • Unerwartetes Verhalten kann auch auftreten, wenn Sie den Hörer des falsch Version eines Programms , für die es mehrere Kopien in Ihrem ! Weg . Zwei Möglichkeiten heraus zu überprüfen eventuelle Fehler von diesem Art:. Print, file_which ([program_name.pro]) ; oder laufen-t [Programmname] und überprüfen Sie die Auflistung des Programms für Versionsinformationen. Die file_which Routine arbeitet wie LINUX, welche . Wenn Ihr ! Weg nicht ausdrücklich auch das aktuelle Verzeichnis (was empfohlen wird, siehe unten ), dann sollten Sie hinzufügen / include_current_dir Stichwort.
    • Die Notation : + / Verzeichnisname in die $ IDL_PATH Definition erweitert den Pfad auf alle Unterverzeichnisse des angegebenen Verzeichnis, das *. Pro -Dateien enthalten. Verwenden sparsam , um zu vermeiden Abholung alte Versionen von Routinen, die sind oft in Unterverzeichnissen des aktiven Versionen gespeichert.
    • Fehler tritt auch auf, wenn Sie nennen eine Funktion als einen Versuch Verfahren oder umgekehrt. Ein Verfahren erfordert eine [name], parm, ... Anruf, während eine Funktion erfordert ein [var] = [name] (parm, ...) Anruf. Verwenden Sie Hilfe / rou , um Funktionen und Prozeduren halten gerade. Wenn Sie versuchen, eine Haupt-Ausführung Programm durch Eingabe seines Namens, anstatt durch die Eingabe von . laufen [name] , Sie wird eine Fehlermeldung angezeigt wird. Bedenken Sie, dass
    • Datenausgabe in das Verzeichnis geschrieben werden was Strom , wenn der Ausgang Befehl gegeben wurde. Wenn Sie sd häufig durch die Verzeichnisse zu verschieben, verlieren Sie möglicherweise verfolgen, wo der Ausgang war (wenn auch ein Journal-Datei kann sagen, Sie). Wenn Du Dich gerade befindest jemand anderes Verzeichnis, auf dem Sie haben keine Berechtigung zu schreiben, wird die Ausgabe-Befehle nicht funktionieren. Einige Befehle (z. B. tvlaser ) erzeugen kann große Kratzer Dateien . “Unbekannte Datei” Fehler bei der Eingabe von Befehlen oft bedeuten, dass Sie in die falsche Standard-Verzeichnis. Erkundigen Sie sich bei sd .
    • nach dem Ändern einer [name]. Pro Prozedurdatei, achten Sie darauf, kompilieren mit . laufen [name] , bevor Sie verwenden es. Wenn die Routine worden kompiliert werden, bevor Sie es modifiziert, einfach Eingabe [name] wird die alte Version auszuführen.

    Spezielle IDL Interactive Aids & Accelerators

    • Bei der Programmierung beachten Sie den großen Nutzen von interaktiven Hilfsmittel in intrinsische IDL. wie Größe, n_params, n_elements, keyword_set, und andere. Diese erlauben Sie den Status der Variablen in Ihrem Programm zu jeder Zeit zu beurteilen.
    • Print können Sie ausdrucken den aktuellen Wert einer Variablen auf dem Bildschirm zu jedem Zeitpunkt während einer interaktiven Sitzung (Vorsicht jedoch bei großen Arrays). Ein Format-Anweisung ist optional. Standard-Formatierung: Zeilenvektoren sind über die gedruckte Bildschirm; Spaltenvektoren, nach unten. printf ist der entsprechende Befehl an einen Ausgang zu drucken Datei . Beide Befehle können in Programmen verwendet werden.
    • readf ist die Standard-Befehl, um interaktive Lesen von Daten aus einer ASCII-Datei . Ein Format-Anweisung ist optional. Die Derselbe Befehl kann innerhalb von Programmen verwendet werden. Um Eingaben von der Tastatur lesen aus einem Programm, verwenden Sie die lesen -Befehl.
    • readcol ist ein handliches Dienstprogramm für AstUseLib Lesung im ASCII-Dateien von säulenförmigen Daten (siehe oben ). Ein Format-Anweisung ist optional (je nach dem Inhalt des Dateien); Zeilen mit unerwarteten Zeichen werden automatisch übersprungen. Für Festnetz-Format ASCII-I / O, siehe readfmt und forprint .
    • IDL-Array-orientierten Mathematik oft eliminiert die Notwendigkeit für do-Schleifen oder Index-Programmierung, und Sie sollten verwenden Index-Notation kostenlos , wo immer möglich. (IDL ist deutlich langsamer, wenn Datenelemente werden durch Indizes verwiesen.)
    • Es gibt etwa 20 intrinsische IDL-Funktionen für die Erstellung von Arrays von verschiedene Arten und Füllen von Anfangswerten, einschließlich intArr , fltarr , indgen , findgen , replicate und make_array .
    • Es gibt eine große Reihe von anderen Array-orientierte Arithmetik Funktionen , wie erweitern , Rebin , Reverse , glatte , Art , insgesamt , transponieren und so weiter.
    • Sie noch viele andere Einsatzgebiete für die wo finden Funktion. Z.B. , um alle nicht-positive Werte in einem Array zu finden, um um Fehler zu vermeiden, wenn man Logarithmen, Typ finden, wo = (a le 0) . finden wird ein Vektor mit den Indexpositionen sein die nicht-positiven Einträgen. Die Subarray a (finden) dann wird enthalten alle diese Punkte.
        • finden, wo = (a lt 1, Anzahl) & print count
      • Zum Beispiel: um alle Werte zu ersetzen, weniger als 1 in einem Array mit 1, Typ a (wo (a lt 1)) = 1 . Wenn Sie hingegen wollen einfach nur einen Zähler für die Anzahl der Einträge mit Werten von weniger als 1, Typ:

    • Eine weitere schnelle Möglichkeit, einen Boden, auf Elemente in einem Array zu platzieren: a = (a> 1) Ersetzt alle Elemente Werte mit weniger als 1 von Array a mit 1. (Die Bezeichnung a> 1 bedeutet “ein Array mit der Maximum von 1 und die ursprünglichen Elemente des a “.)
    • Die Menge / edit und Zeitschrift Dienstprogramme sind unverzichtbar bedeutet, Iteration und Aufzeichnung IDL-Code.

    Definition und Stabilität von Variablen

    • Denken Sie daran, dass das erste Element von Vektoren und Arrays ist immer am Index 0. (Dies ist die herkömmliche Achse erhalten Notation für Diagramme.) Wenn b enthält zehn Elemente, Element Indizes laufen von 0 bis 9, nicht von 1 bis 10 . Ein Verweis auf b (10) ist aus der Vektor nicht mehr grenzenlos. Dies wird töten ein Unterprogramm, obwohl es erzeugt nur eine Fehlermeldung, wenn sie auftritt auf die Befehlszeile.
    • Wenn einige vorher definierten Variablen zu haben scheinen “Verschwunden” oder andere eigenartige Verhalten tritt auf, überprüfen (z. B. Art helfen ), um zu sehen, dass Sie im Hauptfenster des Programms sind und nicht ein Subroutine. Siehe Retall oben .Um
        automatisch zurück zu dem Hauptprogramm, wenn ein Fehler auftritt in Unterprogramm, geben Sie on_error, 1 am Anfang Ihrer IDL Sitzung (außer beim Debuggen stark empfohlen).
    • Um Test-Arrays / Vektoren erstellen , um zu experimentieren mit IDL Verfahren, verwenden indgen, findgen , etc. Zum Beispiel:
        a = findgen (100,100) schafft ein 100×100 Floating Point Array mit einzigartigen Element Werte, die zwischen 0 und 9999,0.

        a = fltarr (100100) 10. erstellt ein Array mit 100×100 10,0 überall.

        Erstellen Sie Vektoren mit einfachen Definition Aussagen wie z = [1,3,9,27] ; Aussagen wie z = [z, 81] Vergrößern Vektoren. Sie können zu extrahieren Subarrays über Index Notation, wie in parta = a [100:156,200:296] .

    • Die Maximalwert eines IDL Fließkomma konstant ist etwa 3e38. Um mit größeren Zahlen umgehen, müssen Sie doppelter Genauigkeit . Z.B. in Berechnungen mit der Lichtgeschwindigkeit, ist gute Praxis, define c = 3.0d10 anstatt c = 3.0e10 . Die größte mit doppelter Genauigkeit konstant erlaubt ist etwa 4d88. (Mindestwerte sind die Inversen von diesen.) Berechnungen, die out-of-Bereich erzeugen Werte werden auf “overflow” oder “Unterlauf” Fehlermeldungen führen.
    • Beware of implizite Definition von Variablen .
        • 
                    IDL> print, 6. * 500. * 70. * 70.
                        1.47000e 07
          
                    IDL> Print, 6 * 500 * 70 * 70
                        19936
          
                    IDL> Print, 6 * 500 * 70 * 70.
                        937440.
          
                    IDL> print, 6 * 500 * 70. * 70
                        1.47000e 07
          
      • IDL dynamisch definiert Variablen-Typ, und das ist ein Klassiker Quelle der IDL Anfänger Fehler. Zum Beispiel x = 5/2 gibt den Wert 2 (Integer), während x = 5,0 / 2 kehrt 2,5 (Gleitkomma). x hat unterschiedliche Werte und Attribute in Folge. Watch out! Für Versicherung, ist eine gute Gewohnheit immer auf Zahlen in Gleitkommazahlen geben Berechnungen mit Dezimalstellen. Z.B. diam = 2. * Radius .

        Das Ergebnis einer Berechnung mit gemischten Typen beeinflusst wird durch die Reihenfolge, in der IDL wertet einen Ausdruck:

    • Implizite Neudefinition der Array-Variablen kann zu großen Schwierigkeiten führen wie im folgenden:
       
             A = fltarr (200.200); Definieren Sie Floating Point Array mit allen Elementen
                                  ; = 0,0
             A (*, *) = 1.  ODER  A = A +1. ; Richtige Weg, um ein Array mit 1,0 füllen
      
             A = 1,0; falsche Weg, um ein Array mit 1,0 zu füllen.
                                  ; Sie haben gerade eine auf den skalaren 1,0 geändert!
      
    • Ein weiteres mögliches Problem liegt im Bereich Extrahieren von Vektoren
      Arrays.
      In IDL ein 1-D-Vektor wird angenommen, dass ein ROW sein
      Vektor.

        Wenn also ein wird ein 100×100 Array, b = a [*, 40] wird
        eine Zeilen-Vektor der Dimension (100). Aber b = a [40, *] wird
        erstellen Sie einen 2-D-Arrays mit Dimension (1100) (= eine Spalte
        Vektor).

        Um den Orphan-Dimension hier zu eliminieren und erhalten eine Standard-Reihe
        Vektor, verwenden Sie die Reform -Funktion: b = Reform (b) .
        Sie können auch die Umsetzung -Funktion zum Konvertieren
        der Spaltenvektor in einen Zeilenvektor.

        Sie können die aktuelle Struktur
        für eine Variable mit dem Hilfe -Befehl.

        <-! Dies ist nicht nur für den Fall diskutiert wahr. Offensichtlich, wenn die
        führenden Dimension 1 ist, werden die Werte längs bedruckt.
        Auch die
        Print Befehl druckt Zeilenvektoren über den Bildschirm und
        Spaltenvektoren unten im Bildschirm.

        ->

    • Hier ist ein Beispiel von einem anderen Problem, das Sie mit IDL Begegnung kann
      implizite Definition von Variablen-Typ in denen unterhaltsberechtigte
      Variablen-Array, aus dem Sie einen bestimmten Wert zu extrahieren. Wenn
      Zeit wird die unabhängige Variable und Wert ist
      die abhängige Variable, möchten Sie vielleicht einen bestimmten Eintrag in lokalisieren
      Wert und wie folgt renormieren den Wert Array:

       
                 finden, wo = (eq Zeit 1000.)
                 norm0 = Wert (zu finden)
                 normalval = value/norm0 
        Naiv, erwarten Sie norm0 , um ein Skalar sein, wie es sein würde,
        Wenn Sie tippte norm0 = Wert (151) , zum Beispiel. Wenn jedoch
        Sie versuchen dies, werden Sie feststellen, dass es hier nicht ein Skalar, sondern
        Typ hat Array (1) . Dies liegt daran, das wo
        Routine gibt einen Vektor , propagiert die Definition bis hin zur
        Definition von norm0 . Die daraus resultierende Menge,
        normalval , die zwei Vektoren unterschiedlicher Länge unterteilt,
        Daher ist ein Skalar, kein Vektor! Die Reform -Funktion
        wird nicht dabei helfen. Um das gewünschte Ergebnis zu erhalten, müssen Sie festlegen,
        die Normalisierung konstant wie: norm0 = Wert (zu finden [0]) .

        <-! Sie könnte auch konvertieren
        norm0 auf einen Skalar mit einem Array-Funktion mit einem Skalar
        Ausgang: z. B. norm0 = Summe (Wert (zu finden)) oder = norm0
        max (Wert (zu finden))
        .
        ->

        Wenn Sie das Schreiben von Code für die allgemeine Anwendung würden Sie auch
        wollen, um zu bestätigen, dass finden gibt nur einen einzigen
        nicht negatives Element. Die Anzahl der Elemente von der zurückgegeben
        wo Funktion kann bestimmt werden, zum Beispiel wie folgt:

         
                   finden, wo = (eq Zeit 1000., Anzahl)
                   if (count eq 1) then begin ... 
    • Bei der Arbeit mit Arrays (z. B. CCD-Aufnahmen), wo die Daten
      hat begrenzten dynamischen Bereich und erfordert keine mehr als 2-Byte
      Präzision, kann es schneller und bequemer zu konvertieren Sie sie in
      Integer-Formular
      nach Multiplikation mit einem Skalierungsfaktor, als sie zu verlassen, in
      Floating-Point-Form. Dies spart Speicherplatz, erhöht die Ausführungsgeschwindigkeit,
      und oft reduziert eingeben. Sie können manipulierte Versionen von speichern
      Back-Konvertierung, aber man muss vorsichtig sein, um zu überprüfen, dass Sie nicht über
      verloren alle Bits vom Ende.
    • Prozeduren, die Vektor Argumente erfordern enthalten
      max und min . Wenn a, b, c, d sind Skalare,
      müssen Sie Druck, max ([a, b, c, d]) anstatt
      Druck, max (a, b, c, d) .

        Miswriting Aussagen wie x = max (a, b) kann tatsächlich in einem Ergebnis
        geänderte Wert für b . Beware.
    • Funktionen wie glatt, Rebin, und andere Resampling-Routinen
      in der Regel erhalten Sie den Variablentyp. Wenn zu Integer-Arrays angewandt,
      numerische Fehler kann durch Abschneiden eingeführt werden
      . Wenn Sie
      sind an der Erhaltung Datenwerte mit solchen Routinen interessiert sind, Sie
      sollten sie nur auf Gleitkomma-Arrays. So konvertieren
      ein Integer-Array zu Fließkomma, geben Sie a = float (a) .
    • Denken Sie daran, dass das Niveau der wichtigsten IDL nicht erkennen Variablen
      welche in der Geschäftsordnung definiert werden
      (Unterprogramme), sind aber nicht bestanden
      durch Aufrufparameter zurück zum Hauptprogramm. (Das Gleiche wie in
      FORTRAN.) Interne Variablen verschwinden auf einem normalen Ausstieg aus einem
      Verfahren. Um festzustellen, welche Variablen sind aktiv, nutzen
      Hilfe . Sie können jedoch gemeinsam nutzen Blöcke (wie in
      FORTRAN) eine Verbindung zwischen Haupt-Ebene und Unterprogrammebene
      Variablen, die nicht in der Abrufsequenz. Wichtigste Programme haben
      Zugriff auf alle Variablen, die an der “main” definiert wurden,
      Ebene.
    • Sie können auch
      definieren Sie Ihre eigenen System-Variablen sind der allen bekannten
      Programme, mit defsysv .
    • IDL Strukturen sind eine kompakte und komfortable Möglichkeit,
      Verschieben zahlreicher Variablen verschiedener Typen (Skalare,
      Arrays, Strings) zwischen Verfahren und wichtigsten Programme.

    Unterschiede von FORTRAN & C

    • Eine häufige Quelle für kleinere Probleme für die Benutzer von anderen hochrangigen
      Sprachen sind die kleine Unterschiede in der IDL-Syntax für die, wenn
      Aussagen, dann Aussagen, do-Schleifen,
      usw. Letztere sind in IDL
      for-Schleifen . Beachten Sie auch die Verwendung des Fall und
      goto -Anweisungen. Es lohnt sich, verbringen einige Zeit überprüfen
      diese Bereiche vor der Erstellung von IDL-Code.

      <! -
      wenn,
      dann, nach, tun,
      usw., Aussagen und in logischen Ausdrücken.
      ->

    • IDL Element Indizierung Konvention für 2-D-Arrays umgekehrt wird
      von FORTRAN.
      In FORTRAN, A [i, j [ entspricht der
      Element in der ten Zeile und j-ten Spalte. Aber in IDL,
      A [i, j] entspricht dem Element in der i-ten Spalte und
      j-ten Zeile.
      A [*, j] ist ein Zeilenvektor .
      A [i, *] ist ein Spaltenvektor.

        Diese Konvention wurde für IDL angenommen, weil es die Norm produziert
        Sinn für (x, y) Displays. Die Standard-Display-Befehle
        wird ein Array zeigen A (x, y) beginnend mit Spalte 0 bei der
        linken Seite des Bildschirms und Zeile 0 am unteren Rand. Wenn angezeigt,
        A (4,1) wird vier Einheiten nach rechts und eine Einheit aus sein
        der Ursprung. Diese Änderung in der Konvention erfordert natürlich vorsichtig, wenn ein
        versucht, auf einen gegebenen Datensatz sowohl mit IDL und FORTRAN zu betreiben.

    Zeichensetzung, Syntax, etc

    • Sie eine kurze Übersicht der IDL-Syntax finden Sie Ray Sterners IDL
      Anweisungssyntax Seite
      .
    • IDL ist keine Groß-und Kleinschreibung, aber Linux ist. Befehle werden die
      beinhalten das Betriebssystem (zB Lesen / Schreiben von Dateien) daher
      Fall muss Konventionen zu beachten.
    • Die Zeitraum in leitenden Befehle (z. B.
      . Run
      ) muss als das erscheinen,
      erste Seite Charakter von der Kommandozeile aus (keine Leerzeichen vorangeht).
    • Die “einfachen Anführungszeichen” -Zeichen für Strings, Dateinamen, etc., ist die
      Apostroph (‘), nicht die “Spitzen-single-quote-mark” (`). Syntax
      Fehler treten auf, wenn Sie uns diese zu wechseln. Leider zu viele Terminal
      Bildschirme, sind diese schwer zu unterscheiden. Auf einigen Tastaturen
      sie sind auch auf benachbarten Tasten, die Tippfehler fördert.
    • Strings müssen immer in Anführungszeichen erscheinen; Dateinamen werden wie behandelt
      Strings in den meisten Routinen mit Dateien.

        Wenn ein String ist die letzte
        Eintrag auf einer Linie (keine weiteren Parameter oder Satzzeichen), dann die
        Trailing Anführungszeichen müssen nicht eingegeben werden. Aber in diesem Fall sicher sein,
        Sie geben Sie keine zusätzlichen Leerzeichen auf dem Terminal vor
        Taste “Return” oder die Zeichenfolge möglicherweise falsch gelesen werden.
    • Eine gemeinsame Tippfehler, die zu einem Syntax-Fehler führen können, ist die
      Substitution einer Frist für ein Komma in einer Prozedur Argumentliste.
    • erinnern, dass ein Vektor durch umschließenden Klammern identifiziert wird, nicht
      Klammern:.
      x = [47,29,135] , nicht x = (47,29,135)
    • von versehentlich eingeben mathematische Operatoren, wo Sie in Acht nehmen sollten
      verwenden relationalen Operatoren . Z. B.: if (x = 5) dann ... statt
      die richtige if (x eq 5) dann ... . Dies kann zu schwerwiegenden Fehlern
      , die nicht unbedingt erhöhen Fehler-Flags.
    • Recall, dass die > und
      < Beschilderung berufen sich auf die “maximale” und “Minimum” Betreiber, bzw..
      Z.B. 10> 15 ist der Skalar 15 .

    Andere Probleme

    • Es ist eine gute Idee, den großzügigen Einsatz des sxaddhist machen
      Routine, um aktualisieren Sie die Kommentare in Ihrem Datensatz wie Sie lesen,
      Prozess, und speichern Sie FITS Bilder.

      Da interaktive

    • IDL-Sitzungen oft eine große Anzahl von
      aktiven Variablen, ist es sinnvoll, sein bei der Benennung jedes neue systematische
      Variable.
      Z. B. beim Lesen von Arrays, verwenden Konventionen wie:
      fits_read, 'Dateiname', pic1, hdpic1 zu halten
      Bild-und Header-Arrays gerade.
    • eingeben und blickte lange Dateipfade zu sparen, ist es nützlich,
      definieren spezielle String-Variablen , die den voll
      qualifizierte Namen Ihrer häufig verwendeten Verzeichnisse. Dann können Sie
      nur sd, [Stringname] , um Verzeichnisse zu ändern.
    • Wenn Sie manipulieren die Farbtabellen , werden Sie wahrscheinlich wollen
      um eine Standard-Tabelle neu zu laden (zB loadct, 0 ) vor
      Anzeigen eines neuen Bildes.

    Programmierung Philosophie

    • Einige IDL-Anwender gerne eine spezifische , Einzweck-Haupt schreiben
      Programm
      , um eine bestimmte Aufgabe ausführen und dann ändern Sie es, oder
      vermehren sich mehrere Versionen, zu behandeln ähnlichen, aber etwas
      verschiedene Anwendungen (z. B. ein neuer Datensatz). Da jedoch Haupt
      Programm Input / Output wird nicht klar, wenn man . laufen ein
      Hauptprogramm, wird die Zeitschrift Datei nicht treffend einfangen.
      Darüber hinaus sei denn, man bewusst benennt und speichert das Hauptprogramm
      jedesmal, wenn es verändert wird, kann es nicht möglich sein, was tatsächlich zu rekonstruieren
      passiert ist.
    • Andere Benutzer lieber schreiben
      mehr generalisierten Subroutinen , zu ergreifen, die definiert
      Sätze von Input-Parameter, aber die Aufgabe auf ein ausführen können
      Vielzahl von unterschiedlichen Eingängen. Dann Zeitschrift die Sitzungen, in denen
      die Routine angewandt wird. Bei diesem Verfahren wird das spezifische eingegeben
      und Ausgabe von jeder Subroutine werden übersichtlich und anschaulich dokumentiert.
    • Der letztgenannte Ansatz stellt Software die in der Regel mehr
      zuverlässig und stabil über einen langen Zeitraum
      (ganz zu schweigen nutzbar
      von anderen), und es ist einfacher zu rekonstruieren, was in einer getan
      bestimmten Zeit. Weitere Vorteile, die von entscheidender Bedeutung sein kann, ist, dass in
      Schreiben eines allgemeineren Subroutine, sind Sie eher zu verbringen
      die Zeit, um die Logik zu überprüfen, adäquat zu dokumentieren, was die Routine
      bedeutet, und Tippfehler zu fangen (das kann man in der Haupt sinken
      Programm-Ansatz). Ich habe festgestellt, dass dies sehr viel zuverlässiger als
      der “single-shot” Hauptprogramm Ansatz.
    • Egal welche Methode Sie verwenden, sollten Sie Zeitschrift
      alles, wenn du tust, ernsthafte Arbeit. <p
    • Obwohl es möglich ist, viele IDL Prozeduren in eine Verkettung
      Single *. Pro -Datei und sie alle mit einem Befehl zu kompilieren,
      Dies verhindert, dass Sie mit dem Mann Hilfe Verfahren, das
      Listen-Header auf angenommenen Dateinamen. Es wird auch verhindert,
      file_which Ortung von eingebetteten Programmen. Sofern Sie nicht
      Umgang mit großen Paketen mit zahlreichen Unterprogrammen, die besser sind
      zusammen gehalten, es ist sauberer und weniger verwirrend auf lange Sicht zu
      halten alle Prozeduren in separaten Dateien. Sie können jederzeit schreiben
      Batchkompilierung Dateien, die alle Vorgänge für einen bestimmten Bedarf zu fangen
      Aufgabe. Oder Sie können einfach lassen Sie die automatische Zusammenstellung System zu finden und
      Programme kompilieren, wenn sie zuerst referenziert werden. Das ist weniger Ärger
      und genauso schnell.

    III. ANHÄNGE


    href=”#contents”> [Bis zu Inhalt]

    Vor der Ausführung

    IDL, müssen Sie einen speziellen Satz von IDL-Umgebung
    Variablen, so dass Linux und IDL, wo man für die verschiedenen schauen wissen
    IDL und ausführbare Programm-Pakete.

    Wenn Sie die UVA Astronomie Abteilung System-Standardeinstellungen zu verwenden, Sie
    wird automatisch eingestellt bis die neueste Version von IDL verwenden
    darunter die Mousse-Paket als auf unseren lokalen Servern installiert. Wenn Sie
    wollen die Standardeinstellungen des Systems verwenden, können Sie ignorieren den Rest dieses
    Abschnitt
    mit Ausnahme von morbider Neugier.

    Auf der anderen Seite, wenn Sie wollen, um passen Sie Ihre
    IDL-Konfiguration müssen Sie die Details der verschiedenen wissen
    Umgebungsvariablen.

    Um zu definieren, die IDL Umgebungsvariablen Sie müssen
    Quelle ein spezieller idl_env -Datei.

      Sie können nicht ändern, den Inhalt der
      idl_env -Datei oder die definierten Umgebungsvariablen nach IDL
      Ausführung beginnt.

      Die Datei, die eine Standard-Sitzung auf die konfiguriert
      Astronomie-Abteilung Netzwerk / astro / IDL / idl_env.csh benannt.
      (Für eine BASH-Sitzung verwenden idl_env.sh .)

      Alternativ können Sie definieren die verschiedenen erforderlichen IDL-Umgebung
      Variablen in Ihrem . Login oder . cshrc -Dateien. Jedoch
      es ist sauberer, alle diese Definitionen zusammen zu halten in der
      idl_env Datei.

    Das erste Element, die definiert werden müssen, ist
    $ IDL_DIR , die Standort der Haupt-IDL-Verzeichnis .
    Intrinsic IDL ausführbaren Dateien werden dort gehalten. Welche $ IDL_DIR
    Sie definieren, wird bestimmt, welche Version von IDL Sie werden ausgeführt.

      Jeder Satz von ausführbaren Dateien wird durch Exelis berechtigt, auf nur bestimmte laufen

    Die UVA-Lizenz unterstützt 50 Hosts gleichzeitig.

      • [Aktuelles Verzeichnis], [Ihr IDL-Verzeichnis], [anderer lokaler
        *. Pro-Bibliotheken, wenn überhaupt], ​​[Astronomie Benutzer-Bibliothek], [MOUSSE]
        [ATV], [IDL Benutzer-Bibliothek].

    Sitzung.

      • Verfahren.
    1. <! -

      ->


    href=”#contents”> [Bis zu Inhalt]

    
    # # # Dies ist die UVA-Astronomie LINUX-System standardmäßig env-Datei
    # # # Wie auf dem Server-Abteilung, im März 2009 installiert.
    # # # Die Lage ist: / astro / IDL / idl_env.csh
    
    
    # C-Shell-Befehle zu IDL Umgebungsvariablen und Aliase definieren.
    #
    # Script Name: idl_env.csh
    #
    # Dieses Skript wird von C-Shell-Benutzer verwendet werden, um zu definieren
    # Die Umgebungsvariablen und Aliase von IDL notwendig
    # Verwandte Befehle.
    #
    # Um dieses Skript auszuführen, geben Sie folgenden Befehl ein, oder,
    # Für die automatische Ausführung, legen Sie sie in Ihre. Cshrc.
    #
    # Source / astro / IDL / idl_env.csh
    #
    # Um die Standardwerte in dieser Datei gesetzt überschreiben, können Sie anderen Quelle
    # Setup-Dateien von Ihrer Person. Cshrc.
    #
    
    # # # # #
    # System Wahl - 03-07-11 veraltet
    # # # # #
    # Set sys = `uname-a | awk '{print $ 3}'`
    # If ($ sys == 5.6) dann
    # Setenv IDL_DIR / net / astsun.astrosw / IDL /
    # Else
    # Setenv IDL_DIR / net / jeeves.common / RSI / IDL /
    # Endif
    
    # Hinweis: Die Konfiguration März 2009 ersetzt eine Abteilungs-Version
    # Von IDL v7.0 (/ astro / itt / IDL) für UVA-Version v6.4
    # (/ Common / RSI / IDL).
    
    # Setenv IDL_DIR / common / RSI / IDL /
    setenv IDL_DIR / astro / itt / IDL /
    setenv IDL_HOME $ {} IDL_DIR
    # Setenv IDL_HELP / common / RSI / IDL / Hilfe
    setenv IDL_HELP / astro / itt / IDL / help
    
    # Lizenz-Datei
    
    # Setenv LM_LICENSE_FILE / common / RSI / license / license.dat
    setenv LM_LICENSE_FILE / astro / itt / license / license.dat
    
    # Lokale Pakete
    
    setenv ASTROLIB_DIR / astro / IDL / Astrolib
    setenv MOUSSE_DIR / astro / IDL / Mousse
    setenv MOUSSE98_DIR / astro/idl/Mousse.98
    setenv PIA_LOC_GEN / astro / IDL / PIA /
    setenv ATV_DIR / astro / IDL / ATV
    setenv FUSE_DIR / astro / IDL / FUSE
    
    setenv IDL_HELP_PATH "+ $ {} MOUSSE_DIR: + $ {} ASTROLIB_DIR: + $ {} IDL_HELP"
    
    # ZDBASE ist die Lage der IDL-formatierte Datenbank
    
    setenv ZDBASE / astro / IDL / zdbase
    
    # Hinweise auf IDL_PATH
    #
    # Symbol "+" bedeutet, dass der Pfad erweitert werden auf alle ausgedehnt werden
    # Unterverzeichnisse im angegebenen Verzeichnis.
    # Der Anwender eigene IDL Programme sind davon ausgegangen, dass in einem Verzeichnis mit dem Namen sein,
    # Oder "IDL" unter dem Basisverzeichnis des Benutzers verbunden
    # Verzeichnis $ IDL_HOME / lib Enthält die IDL-Benutzerhandbuch Library of
    # Standard-Benutzer-Dienstprogramm-Routinen geschrieben.
    
    setenv IDL_PATH ":. + ~ / IDL :/ astro / IDL / UVAlocal: + $ {ASTROLIB_DIR}: $ {} ATV_DIR: + $ {MO
    USSE_DIR}: $ {+} MOUSSE98_DIR: + $ {IDL_HOME} / lib: $ {+} IDL_HOME / Beispiele: + $ {} PIA_LOC_GEN: + $ {FU
    SE_DIR} "
    
    setenv UIT_DATA $ {} IDL_HOME / Daten
    
    setenv IDLUSR $ {HOME}
    setenv IDLUSER $ {HOME}
    
    alias idl $ IDL_DIR / bin / idl
    alias idlde IDL_DIR $ / bin / idlde
    alias idldeclient IDL_DIR $ / bin / idldeclient
    alias idlhelp IDL_DIR $ / bin / idlhelp
    alias idlrpc IDL_DIR $ / bin / idlrpc
    alias Einblick IDL_DIR $ / bin / insight
    alias idldemo IDL_DIR $ / bin / idldemo
    
    alias Pia $ PIA_LOC_GEN / PIA
    
    # Die folgende IDL-Startup-Datei wird ausgeführt, bevor sein
    # Jede IDL-Sitzung. Benutzer können einen anderen
    # Start in seine / ihre. Cshrc.
    
    setenv IDL_STARTUP / astro / IDL / startup / mousse_startup.pro

    href=”#contents”> [Bis zu Inhalt]

    überall.

    Diese

      ; Startup-Datei mousse_startup.pro
      ; Zuletzt geändert: 15. Mai 1992, 30. September 93, 27. Dezember 93, 22. August 97
    
    zu drucken, "Running mousse_startup.pro ..."
    print, "Hilfe zur AstUseLib und Mousse-Routinen, verwenden Sie die Mousse MAN Verfahren."
    
    setplot, 'X'
    DEFSYSV, '! DEBUG', 0
    DEFSYSV, '! TEXTUNIT', 0
    DEFSYSV, '! TextOut', 1
    DEFSYSV, '! PRIV', 0
    '! psprinter' defsysv, "Astro-PS '; UVA-Standard-Drucker
    cinit; cinit richtet MOUSSE gemeinsamen Blöcke
    ! PROMPT = 'IDL>'
    ! EDIT_INPUT = 100
    on_error, 1; an Hauptprogramm zurück im Fehlerfall
    print, '*** on_error, 1 ist standardmäßig ***'
    print, '*** Wenn Terminal ist vt100/tek, Typ SETPLOT, 0'

    Umwelt.

    Die möglich. Sie können bewegen vorhandenen Fenster mit der Maus.

    Programm.