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
- I. Einleitung
- II. Leitfaden zur Bildverarbeitung mit IDL
- III. Anhänge
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.
- Der vollständige mathematische Funktionalität anderer
- 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:
- Meine IDL Seite Ressourcen
- der IDL-Astronomie Benutzer-Library Resources Seite
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.
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).
- 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.)
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] .
$ als erstes Zeichen in der Kommandozeile
fg Linux-Befehle.
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!
Ein Dollarzeichen ($ ). Sie können dies überall in der Zeile, in einem
Platz wäre, außer in einem String-Variable erlaubt sein.
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.
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 einQuick 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.- Exelis IDL Dokumentation Vertrieb
Site - Dokumentation für IDL_5.1 in HTML über einen Webbrowser zugreifen,
klicken Sie hier. und bookmarken Sie die Seite. - IDL Astronomie
Benutzer-Library-Kopie der IDL 6.4 Dokumentation! Eine weitere Quelle für IDL PDF-Dokumentation:: – <2009 Gone IDL Online-Ratgeber
(UCI)->
- Exelis IDL Dokumentation Vertrieb
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 :
- <AMeine IDL Seite Ressourcen
- der IDL-Astronomie
Benutzer-Library Resources Seite -
Die comp.lang.idl-pvwave Newsgroup - Coyote ’s Guide to
IDL-Programmierung (David Fanning)
- Ray
Sterners Kurzanleitung zum IDL-Syntax
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
<-
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 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.
->
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.
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.
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.)
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.
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)->
Variablen, die die Geräte-Display und die Darstellung von Kontrollergebnissen
Umwelt sind. Siehe die IDL-Handbüchern.
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.
IDL-Verzeichnis Standardwerte, falls definiert.
<! -
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. gespeichertBeachten 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.
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
- Hauptprogramm
; Hauptprogramm: get_dim1.pro s = size (A_IN) if (s [0] eq 0) dann D1 = 0 sonst d1 = s [1] Ende - 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 - 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
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]
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).
- Hauptprogramm
. Run get_dim1 Print-, D1 - Procedure
get_dim1, A_IN, d1 Print-, D1 - 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_read, [Dateiname], [Bild Variablenname], [Header-Variable
- 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:
-
- 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
- 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.->
Monitor-Hardware für die Anzeige muss eine Byte-Array sein , die
bedeutet, dass ihre Werte immer Element sind im Bereich von 0-255.
Festlegen einer visuellen Anzeige-Modus auf dem Computer
- 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. - 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. - 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.
- 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.
- 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. ->
- 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.
- 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”? ***
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 .
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 .
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
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
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 = CLEVEin 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ü.
- Um ein vorhandenes Bild-Array in IDL ATV anzuzeigen, geben Sie
- 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)
- <! -
General info (CfA)Eine Anleitung
ATV zu benutzen->
<-! ->
<-! ->
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:
- 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. - 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 - 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 - 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 = 200In 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 .
- Typ set_plot, 'ps die Ausgabe auf “idl.ps” senden
- Optional Anpassungen vornehmen, um die Handlung Größe, Seitenverhältnis, Orientierung, Schriften Schriften, etc. mit dem Gerät Befehl
- Geben Sie dem Satz von Plott-Befehle — hier genauso wie für eine Bildschirm-Grundstück; alle Systemvariablen wird noch in Kraft sein
- 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.)
- Typ $ lp idl.ps , um die Datei auf dem Standarddrucker gedruckt.
- 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 .
- 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
Sie Gebrauch machen von den Schlüsselwörtern als nächstes beschrieben.
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.
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.
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).
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
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:
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!
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.
->
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 ...
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.
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.
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) .
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.
definieren Sie Ihre eigenen System-Variablen sind der allen bekannten
Programme, mit defsysv .
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.
<! -
->
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.