Back to site

КІРАЎНІЦТВА ПА IDL для астраномаў

This Guide is copyright © 1991-2010 by Robert W. O'Connell. All rights reserved.
Reproduction or distribution without attribution and commercial uses are prohibited.

I. УВОДЗІНЫ



У раздзеле I гэтага Кіраўніцтва для тых, хто не знаёмы з IDL ці якія спрабуюць вырашыць, ці варта прыняць яго. У раздзелах II і III прызначаныя для карыстальнікаў.

1. Асноўныя характарыстыкі IDL

[Да Змест]

Interactive Data Language (IDL) з'яўляецца запатэнтаваная сістэма праграмнага забеспячэння, які распаўсюджваецца па ITT Visual Information Solutions, Inc, (http://www.ittvis.com), раней Research Systems, Inc IDL вырасла з праграм, напісаных для аналізу дадзеных НАСА місій, такіх як Марынэр і Міжнароднага ультрафіялетавага Explorer. Таму арыентаваны на выкарыстанне вучоных і інжынераў у аналіз адно-, двух-або трохмерныя набораў дадзеных. ITTVIS прэтэнзій больш 150000 карыстальнікаў.

IDL ў цяперашні час даступная ў Linux, UNIX / Solaris, Windows, Macintosh і версій. IDL драйвераў прыладаў даступныя для большасці стандартных апаратных сродкаў (тэрміналаў, выявы дысплеяў, друкарак) для інтэрактыўнага адлюстравання выявы або графічных дадзеных.

IDL гэта не проста пакет мэтанакіраванай працэдуры ў стылі Ирафского або Ciao. Замест гэтага, ён сапраўды кампутарным мовай, лёгка зразумелых любы камп'ютэрнай пісьменнасцю карыстальнікаў. Ён прапануе ўсе магутнасць, унівэрсальнасьць і магчымасць праграмавання моў высокага ўзроўню, як Фартран і С. Але гэта ўключае ў сябе тры спецыяльныя магчымасці, якія неабходныя для сучаснага аналізу дадзеных:

Карыстальнікі, якія знаёмыя з Fortran, C, C + + або іншых мовах высокага ўзроўню будзе мала разумення праблемы IDL. Яго сінтаксіс і эксплуатацыі ясна, разумна, і зручна (найбольш блізкі да FORTRAN's). Таму што гэта інтэрактыўнае, навучанне IDL праз он-лайн спроб і памылак з'яўляецца хуткім.

IDL забяспечвае навукоўцам лепш зразумець і кантроль разлікаў і аналізу дадзеных у сілу вялікага ліку спецыяльных функцый:

Функцыянальнае апісанне IDL даступная на http://www.ittvis.com/portals/0/pdfs/idl/IDL7_FuncSumm.pdf. Больш гісторыі, фон і кантэкст можа быць знойдзена на http://en.wikipedia.org/wiki/IDL_ (programming_language). Апісанне каманднага радка асяроддзя IDL як відаць карыстачу даецца ніжэй.

Сем версій IDL з'явіліся на сённяшні дзень. Версія 07/01 зараз стандарт.


2. IDL ў кантэксце

[Да Змест]

Якую ролю адыгрываюць IDL ў кантэксце іншых праграм даступныя для астраномаў?

Fortran, C або C + + не можа здавальняюча абслугоўваць патрэбы індывідуальных карыстальнікаў для інтэрактыўнага аналізу дадзеных, паколькі яны не забяспечваюць стандартныя інтэрактыўную сераду з пастаўленымі прылады графічных драйвераў.

Апрацоўкі дадзеных і адлюстравання праграмнага забеспячэння, з якім большасць астраномаў ведаеш, у тым ліку Ирафского, STSDAS, АСМП, АСМП + +, чао, MIDAS, і SUPERMONGO, складаецца ў асноўным з калекцыі спецыялізаваных, мэтанакіраванай працэдуры. Яны з'яўляюцца інтэрактыўнымі і графіка-арыентаванай, але яны працуюць толькі ў папярэдне скампіляванай форме, якая прапануе карыстальніку мала магчымасцяў для абнаўлення або налады. Устаноўчы працэдур функцыі, як "чорныя скрыні" і не прадастаўляюць карыстальніку лёгка зразумелым доступ да сваёй унутранай працы. Гэтыя пакеты могуць быць выкананыя з сцэнарыяў, але яны не прызначаныя ў якасці асновы для напісаных карыстальнікам прыкладанняў. Яны дастаткова складаныя, што прафесійныя праграмісты, неабходных для падтрымання і ўмацавання іх. Яны наладзіць толькі павольна з патрабаваннямі карыстальніка. У адрозненне ад гэтага, не толькі IDL прапануюць большай празрыстасці, гнуткасці і эфектыўнасці, але і ўвесь камп'ютэрнай пісьменнасцю карыстальнікаў могуць быць задзейнічаныя, каб пашырыць і палепшыць IDL прыкладанняў.

Параўнанне з іншымі папулярнымі сістэмамі:

Ўласных магчымасцяў IDL ў спалучэнні з яго шырокай бібліятэкі кода карыстачу значна павысіць эфектыўнасць навукоўца.


3. IDL пакетаў прыкладанняў

[Да Змест]

З-за ўніверсальнасці ў IDL, транспартабельнасць, і прастата ў выкарыстанні, ёсць вялікія, напісаныя карыстальнікам, публічная бібліятэка інтэрактыўнага праграмнага забеспячэння IDL, у цяперашні час больш за 10000 праграм.

Многія астраноміі арыентаваных IDL працэдуры і пакеты ў грамадскую ўласнасць.

Зыходны код IDL для пакетаў прыкладанняў аўтаматычна даступныя, так што карыстальнік можа выкарыстоўваць працэдуры, як напісана ці, наадварот, лёгка змяняць іх кампанентаў (як можна было б FORTRAN падпраграм), каб наладзіць іх.

IDL ідэальна падыходзіць для праграмнага забеспячэння абмену праз Інтэрнэт. Паколькі ніякай папярэдняй кампіляцыі патрабуецца, ўстаноўка новага пакета, напрыклад, гэта проста пытанне здачы крыніца ASCII файлаў на вашым шляху IDL. крос-платформенная распрацоўка IDL гарантуе, што вы можаце ўпэўнена код перакладу з аднаго месца (напрыклад, з працоўнага стала АС Solaris на ноўтбук Macintosh).

C ці FORTRAN праграмы могуць быць выкананы з ў IDL і абмен дадзенымі паміж сістэмамі.

Прыклады IDL вылічальных і графічных прыкладанняў, выканайце idldemo дэманстрацыі з каманднага радка.

Гл. ніжэй крыніц прыкладання код IDL.


4. IDL НАВАКОЛЬНАГА АСЯРОДДЗЯ

[Да Змест]

Як толькі вы пачынаеце IDL і пачаць друкаваць на вашай кансолі, вы маеце зносіны з галоўным узроўні калі заўгодна вялікі камп'ютэрнай праграмы, над якімі вы (амаль) поўны кантроль.

Людзі, якія знаёмыя з Ирафского, чао, або АСМП адразу зразумеюць асноўных новых магчымасцяў у асяроддзі IDL.

IDL арыентаваны аналізу малюнкаў і апрацоўкі сігналаў, а ў параўнанні з Ирафского і г.д. Яна таксама адкрывае новыя гарызонты магчымасцяў, каб зрабіць іншыя віды важных лікавых разлікаў з вялікай эфектыўнасцю і для стварэння графічнага або таблічнага прадстаўлення з іх. У гэтай сувязі, ён дубліруе большую частку функцыянальнасці Mathematica, Maple і MATLAB (хоць і без сімвалічных маніпуляцый).

Асноўныя IDL функцыянальнасць не змянілася за апошнія некалькі буйных рэлізаў. Замест гэтага дапаўненні ўдзел такіх галінах, як графічны інтэрфейс і падтрымка аб'ектна-арыентаванага праграмавання, якія накіраваны больш на распрацоўшчыкаў праграмнага забеспячэння, чым карыстальнікаў, зацікаўленых у аналізе дадзеных.


5. IDL Абмежаванні

[Да Змест]

IDL мае шмат добрых якасцяў, але якія яе абмежаванні?

Відавочнае абмежаванне, і істотным бар'ерам для некаторых людзей, з'яўляецца тое, што IDL з'яўляецца запатэнтаваная сістэма, якая азначае, што кожны сайт павінен набыць ліцэнзію IDL. Некаторыя астраномы аб'екта на прынцыпе плаціць за праграмнае забеспячэнне.

IDL з'яўляецца інтэрпрэтаваны, а не кампіляваная мову. Гэта азначае, што вялікія праграмы IDL могуць выконваць менш хутка, чым эквівалентныя складзены праграм, напісаных на FORTRAN або C.

IDL лепш за ўсё працуе на сярэдніх памераў набораў дадзеных (скажам, да 1 Гб) і дзе не трэба спасылацца на асобныя элементы масіва. Карыстальнікаў, якія маюць патрэбу ў пакетнай апрацоўкі вялікіх аб'ёмаў дадзеных з больш складаныя алгарытмы могуць знайсці FORTRAN або C працэдур пераважней. Аднак, яны могуць быць звязаны ў IDL інтэрактыўнай асяроддзі і выканана з рамках IDL.

З-за яго аптымізацыі для інтэрактыўных вылічэнняў, IDL не сістэма для буйнамаштабных лікавых вылічэнняў (напрыклад, гідрадынамічныя або N-мадэлявання цела). Аднак, было б карысна ў якасці сродку для вывучэння новых вылічальных падыходах у абстаноўцы, дзе менш сыравіны хуткасць не важная, і ён таксама выдатна падыходзіць для візуалізацыі, аналізу, рэдагавання і адлюстравання лікавых даных мностваў, спароджаных мадэлявання праграмнага забеспячэння.

Праблема для пачаткоўцаў ў тым, што дапамога ў IDL можа быць цяжка знайсці ў новай устаноўкі. Ёсць, аднак, кансультанты даступныя на ITTVIS, вэб-сайты парады, вялікая колькасць он-лайн ці друкаванай дакументацыі, а таксама прыклады тысяч працоўных IDL працэдур у публічныя бібліятэкі, якія могуць дапамагчы вырашыць шматлікія цяжкасці, праграмнага забеспячэння.

Пакеты дадзеных скарачэння не даступныя ў IDL для большасці канкрэтных прыбораў даступныя на буйных абсерваторый (напрыклад, ПЗС мазаікі малюнкаў, мульты-аб'ект спектрограф, эшелле спектраў і г.д.).

Нарэшце, хутка размнажаюцца мноства IDL прыкладанняў працэдур з'яўляецца як сіла і слабасць. Хоць адзін мае доступ да шырокага спектру карысных праграм, гэта не заўсёды цалкам пратэставаны з аўтарамі звычайна іх прымянення ў задачах абмежаваны характар. Самая цяжкая частка выкарыстаннем IDL часта вызначэнні таго, што працэдуры даступныя для дадзенага дадатку і выбраць прыдатны для выкарыстання.

У цэлым, у абмен на паляпшэнне гнуткасці і магутнасці, IDL патрабуе больш высокага ўзроўню камп'ютэрнай навыкаў, чым у сістэм, такіх як Ирафского, АСМП, або Ciao.

У цэлым, IDL з'яўляецца неацэнным інструментам для большасці назіранняў або тэарэтычных астраномаў.


6. Демос, навучальныя дапаможнікі, спіс праграмнага забеспячэння

[Да Змест]

Рэсурсы: Для спісаў важных астраноміі-арыентаваных рэсурсаў IDL (кіраўніцтва, файлы даведкі, дэманстрацыі, навучальныя дапаможнікі, праграмнае забеспячэнне), акрамя тых, у камплекце з размеркаваннем ITTVIS, глядзіце таксама:

Дэманстрацыі: Каб адчуць, што IDL можа зрабіць, паспрабуйце запусціць пакет стандартнага дэма IDL пастаўляецца ITTVIS. Пачаць з LINUX радка (у X-Window) і тыпу idldemo.

Падручнікі: набор з трох уступных практыкаванняў IDL, якія ўводзяць яго асноўных асаблівасцяў можна азнаёміцца ​​на UVa астранамічны 511 галоўнай старонцы. Іншыя сайты, якія прапануюць IDL падручнікі звязаныя з карыстальнікаў бібліятэкі астраноміі.

Спіс праграмнага забеспячэння: шэсць розных узроўняў код IDL будзе карысная для Вас:

Падзякі: У любым апублікаваных работ выкарыстаннем IDL праграмнага забеспячэння, напісанага на іншых, вы павінны прызнаць аўтара. Калі вы выкарыстоўваеце праграмнае забеспячэнне Годдард, Бібліятэка групы GSFC астраноміі карыстальніка і Уэйн Ландсман павінны быць прызнаныя. Мадыфікаваныя версіі праграмнага забеспячэння іншых павінны распаўсюджвацца аўтарства спісу ў загалоўку кожнага дня.



II. КІРАЎНІЦТВА для апрацоўкі выяваў
З IDL


[Да Змест]

Гэты раздзел уяўляе сабой ўвядзенне ў ўласнай IDL і карыстачом прыкладанняў працэдуры часта выкарыстоўваюцца ў 2-D апрацоўкі малюнкаў. Толькі самыя агульныя параметры для кожнай каманды пералічаныя.

Мяркуецца:

Гэта кіраўніцтва арыентавана на UVA / LINUX ўстаноўка IDL. Тым не менш, я паспрабаваў выразна адрозніваць дэталі, якія з'яўляюцца спецыфічнымі для мясцовых сістэму так, каб іншыя карыстальнікі змогуць выкарыстоўваць кіраўніцтва.



1. Запуск і прыпынак IDL

[Да Змест]

  • Для ўводу IDL: тыпу IDL на LINUX падказку ў X-Window. Гэта пачынаецца IDL, які працуе ў "рэжыме каманднага радка" ў акне тэрмінала, з якога яна была выклікана. Я рэкамендую IDL пачаткоўцаў план, каб даведацца асновы ў гэтым асяроддзі, хоць яны, безумоўна, павінны вывучыць альтэрнатывы паказаны побач.

    • У версіях 5 і 6 вы можаце замест гэтага выкарыстоўваць графічны інтэрфейс, "IDL развіцця навакольнага асяроддзя." Для ўводу, што, тыпу idlde. IDLDE прапануе шэраг зручных функцый для дасведчаных карыстальнікаў.

    • У версіі 7, больш складаны графічны інтэрфейс, які называецца "IDL Workbench" замяніў развіцця навакольнага асяроддзя. Зноў жа, для выкліку Workbench, увядзіце idlde. Тут прадстаўлены скрыншот Workbench сесіі IDL. Калі вы жадаеце вывучыць падыход Workbench, паспрабуйце практыкаванні, прапанаваныя ў главе 2 версіі 7 Прыступаючы да працы кіраўніцтва.

    • Іншы альтэрнатывай з'яўляецца выкарыстанне IDLWAVE Гэта убудаваным рэдактарам / IDL выканання аб'екта на аснове GNU Emacs. Мноства магутных функцый выгоды ў IDLWAVE карысныя галоўным чынам для вопытных праграмістаў IDL. Тут прадстаўлены скрыншот сесіі IDLWAVE.

    • Апісання ніжэй для каманднага радка асяроддзя выклікаецца IDL каманду і выкарыстоўваць "прамыя графіка" каманды (у адрозненне ад "аб'ектна-арыентаванага графіка" выкарыстоўваецца для стварэння GUI дысплеяў). Аднак, асноўныя каманды ўвайшлі ў інтэрактыўнай сесіі з'яўляюцца аднолькавымі для ўсіх асяроддзях (напрыклад, у Workbench, неабходна ўвесці іх у акне камандным лініі насупраць> цэтлік IDL).

  • Ліквідацыя непаладак пры запуску

    • Калі вы атрымліваеце паведамленні скардзіцца на "сервер ліцэнзій", ці пра тое, што вы былі перанесеныя ў "7 хвілін дэманстрацыйным рэжыме", то ёсць праблемы з ліцэнзаваннем праграмнага забеспячэння, якое дазваляе асобным карыстальнікам доступ да IDL выкананых файлаў. Гэта можа быць таму, што занадта шмат карыстальнікаў (на UVA, больш 50) спрабуе атрымаць доступ да IDL (у гэтым выпадку, вам проста прыйдзецца пачакаць). Акрамя таго, існуе, магчыма, быў адмову ў ліцэнзіі дэман, які дазваляе Вам стварыць спасылку на зыходны код IDL. Вам неабходна на сістэмным узроўні дапаможа вырашыць апошні цяжкасці. У UVA, IDL зыходны код падтрымліваецца МТЦ ў каталогу / агульныя / RSI.

    • Калі вы не можаце атрымаць доступ да вызначаных працэдур, праверце, каб пераканацца, што Вы вызначылі ўсе неабходныя зменныя абалонкі і псеўданімы пункту правільна розных каталогах IDL. Глядзіце "Налады" падзел у канцы гэтай рэцэнзіі. няправільны шлях з'яўляецца адным з найбольш распаўсюджаных крыніц праблем у рабоце сесій IDL.

        Калі вы ўваходзіце ў сетку UVa астраноміі LINUX і канкрэтна не вызначае ніякіх зменных IDL навакольнага асяроддзя, вы будзеце аўтаматычна наладзіць для запуску апошняй версіі IDL з належнай спасылкі на ўсе існуючыя каталогі праграмнага забеспячэння, у тым ліку бібліятэкі астраноміі карыстальніка, мус, і ATV.

    • Калі сераду Windows не рэагуе належным чынам, праверце, каб пераканацца, што вы працуеце ў X-Windows і Windows параметры былі правільна ўсталяваць для выгляду візуальнай асяроддзя дысплея, які вы збіраецеся выкарыстоўваць (8-біт псеўда напрыклад, 24-бітны поўнакаляровы, і г.д.). Тэрмінал каманды LINUX xdpyinfo будзе спіс падтрымоўваных рэжымаў для вашага дысплея. Каманда дапамогі IDL, / Dev будзе спіс бягучых уласцівасцяў экрана на сябе IDL. Дадатковыя звесткі см. ў раздзеле Паказ выявы ніжэй.

    • Калі ў вас узніклі праблемы з кветак на ваш тэрмінал змене або "міргаць" пры перамяшчэнні курсора падчас сесіі IDL, глядзіце малюнак дысплея ніжэй.

    • Ваша асабістая "IDL каталог", калі ў вас ёсць, не будуць даступныя, калі яно не ў бягучым каталогу ці ён уключаны ў пераменную асяроддзя IDL_PATH абалонкі. У UVA, гэта будзе аўтаматычна, калі каталог у каранёвай каталогу і завецца, або псеўданім, "IDL". (Гл. файл устаноўкі асяроддзя прыклад ніжэй).

  • Для настройкі асяроддзя IDL, вы можаце запусціць любую колькасць спецыяльных інструкцый у пачатку кожнай сесіі.

      IDL заўсёды будзе выконваць спецыяльныя "Аўтазагрузка" файл, вызначаны ў зменнай асяроддзі $ IDL_STARTUP. Стандартная версія гэтага файла павінны быць выкананы, перш чым мус працэдур будзе працаваць належным чынам. Гэта робіцца па змоўчванні для карыстальнікаў UVa астраноміі. Глядзіце "Наладка" ніжэй. Вы можаце змяніць файл запуску, як вам падабаецца (напрыклад, каб адкрыць спецыяльны змова Windows або ўсталяваць асноўныя ўзроўні агульных блокаў).

      Вы таксама можаце выканаць свае файлы загрузкі для далейшай наладкі сесіі. Гэтыя, як правіла, камандныя файлы (гл. "выканання праграмы" ніжэй), выкананы, набраўшы @ [імя файла].

  • Каб даць LINUX сістэмы каманд у IDL: увядзіце $ як першы знак у камандным радку

  • Каб перапыніць і аднавіць IDL: выкарыстанне стандартных Z ^ і FG Каманды Linux.

  • Каб перапыніць IDL руціна: тып C ^. Працягваць ж звычайная справа, тыпу. Con. Каб выйсці з руціннай пасля перапынення і вяртання да асноўнага ўзроўню, тыпу retall.

      Калі вы знаходзіцеся ў рэжым курсора, вы можаце перамясціць курсор ў актыўным акне і націсніце кнопкі мышы для завяршэння перапынення. Аб некаторых камандаў (напрыклад, масіў разлікаў ці I / O) перапынення можа спатрэбіцца некаторы час ўступілі ў сілу.

  • Каб паўтарыць ці рэдагаваць і выконваць раней каманду:

      Падчас інтэрактыўнай сесіі, ваша лінія запісу каманды захоўваюцца ў буферы Нагадаем каманду (як у Tcsh Linux). Вы можаце выкарыстоўваць "стрэлка уверх" ("стрэлка ўніз") для перамяшчэння ў зваротным напрамку (наперад) з дапамогай каманды буфера ўспомніць ці змяніць каманды. Выкарыстаньне Emacs-як каманды рэдагавання. Па змаўчанні памер буфера каманд складае 20 каманд. (Гэта карысна, каб усталяваць гэта большы лік шляхам вызначэння сістэмнай зменнай! EDIT_INPUT = 100 у файл запуску. Гэта робіцца па змаўчанні ў мус файлы пры запуску.) Нагадаем, рэдагаваць з'яўляецца выключна карысным сродкам ітэрацыі ў IDL сесіі.

      У рэдагавання, быць асцярожнымі, каб не даць ^ D каманду пустая радок, так як гэта спыніць сеанс!

  • Каб працягваць доўга заяву на наступны радок: канец лініі са знакам даляра ($). Вы можаце зрабіць гэта ў любым месцы ў радку, дзе прастора будзе дазволена толькі ў радковым зменнай.

  • Каб даць некалькі каманд у адной радку: падзеліце іх амперсанда (&). Напрыклад:

      X = A + B & Y = SQRT (X)

      Мноства і звязаныя каманды на адной лініі ўяўляюць сабой "мікра-праграмы", якая можа быць выканана, то рэдагаваць і паўторна выконваецца з парай націскаў клавішаў.

  • Каб пакінуць IDL: або выхад D ^. Тып Усе вокны і дадзеныя ў аператыўнай памяці будуць ачышчаны выхаду. Калі вы хочаце захоўваць дадзеныя, выкарыстоўваць захаваць каманду або розныя іншыя файлы Даць каманды раней.




    2. ДАПАМОГА

    [Да Змест]

    ITTVIS Дакументацыя

      IDL старанна дакументаваны ў электронных навучальных дапаможнікаў. ITTVIS пытанні поўны набор кіраўніцтваў ў фармаце PDF з кожнай ліцэнзіі. Калі PDF версіі былі ўсталяваныя на вашым кампутары, яны могуць быць даступныя праз idlman каманды LINUX. Найбольш важныя кіраўніцтва Выкарыстаньне IDL, IDL HandiGuide / Кароткі даведнік, дом IDL Applications / прыкладнога праграмавання, і IDL даведнік . Яны даступныя он-лайн знутры сесіі IDL праз Hyperhelp аб'екта. (Заўвага: назвы некаторых кіраўніцтвах змяніліся з нумарам версіі.)

        Бягучы уступнае кіраўніцтва IDL называецца Прыступаючы да працы з IDL --- Націсніце для версіі PDF. Друкаваных версій старэй IDL Асновы Кіраўніцтва для V3 і V4 вас праз шэраг цікавых прыкладаў прыкладанняў і ў якасці падказак.

        Самы лепшы спосаб, каб нагадаць сабе хутка аперацыі уласных працэдур IDL з'яўляецца спасылка на IDL Кароткі даведнік. На жаль, гэта "хуткі" кіраўніцтва стала даволі грувасткія, і, па крайняй меры спасылка на базавую функцыянальнасць IDL, гэта можа быць прасцей у выкарыстанні адной з старых версій IDL HandiGuide.

        Верагодна, вы знойдзеце гэта карысным, каб зрабіць раздрукоўку Кароткі даведнік або HandiGuide часткі пад назвай "Функцыянальныя Спіс", "Сінтаксіс", "Заявы", "Выканаўчы Каманды", "Спецыяльныя сімвалы", "Індэксы", "Аператары", "Сістэмныя зменныя" і "Графіка інфармацыі." Гэта складзе толькі каля 30 старонак.

      Браўзэр доступ да дакументацыі:

    Іншыя IDL даведачныя рэсурсы:

    Вызначэнне IDL нумар версіі

    • У LINUX радку увядзіце IDL; нумар версіі адлюстроўваецца на тэрмінал у пачатку кожнай сесіі IDL.

    • Праверце каталог, у якім пераменная абалонкі Linux $ пункту IDL_DIR.

    • У рамках сесіі IDL, тып друку,! Версіі ці дапамога,! Версіі, / вул для адлюстравання інфармацыі аб версіі і меркавалася, аперацыйная сістэма захоўваецца ў сістэмнай зменнай! Версіі.

    Вучыцеся на прыкладах

      Адзін з лепшых спосабаў даведацца, як пісаць і выкарыстоўваць IDL праграмы проста для праверкі існуючых IDL праграм у каталогах AstUseLib. Вы можаце больш іх у LINUX, або выкарыстаць getpro AstUseLib руціны, каб скапіяваць іх на лакальны каталог. Для прагляду грамадскіх працэдур падчас сесіі IDL, тыпу. Ран-T [руціннай імя].

    Інфармацыйныя Каманды

    • idlhelp або idlman: Дадзена з LINUX радкі, гэтыя каманды адкрытага PDF версіі стандартных кіраўніцтваў IDL (калі яны загружаныя ў вашай сістэме).

    • ?: Улічваючы знутры IDL, гэта выклікае IDL аб'екта HyperHelp. Націсніце на "Index" ўкладку спіс усіх запісаў (спісы агульных дыскусій, а таксама асобныя працэдуры, пералічаныя ў апошнім ўсё-каўпачкі). (Папярэджаньне: некалькі версій IDL, напрыклад, 6,0, занятых больш ніякавата PDF аснове даведачнай сістэме Калі вы абцяжараныя гэтым, лепш абнавіць..)

    • ? [Каманды]: забяспечвае HyperHelp інфармацыі па дадзенай уласнай каманды IDL. Не працуе з карыстальнікам працэдуры. Заўвага: няма месца або двукоссі паміж імем? І.

    • [Каманда без аргументаў]: Большасць AstUseLib і іншых карыстальнікам працэдуры кадуюцца так, што калі вы ўводзіце імя руціны без аргументаў, спіс чаканых аргументаў друкуецца на экране. Не працуе для ўласных працэдур IDL (гл., аднак дапамога, / Роу ніжэй). Не працуе на большасць функцый (у адрозненне ад працэдуры).

        Гэта карысна канвенцыі код у сваіх праграмах. Выкарыстоўвайце n_params функцыі сэнсе адсутнасці ўваходных параметраў, як паказана ў наступным:

          калі (n_params (0) раўнанне 0), то пачынаць
                 друку, "паслядоўнасць выкліку: имя_программы, var1, var2, var3"
                 вяртанне
               ENDIF
           

    • чалавека: чалавек каманды без аргументаў вырабляе графіка меню выглядаць прыкладна як спароджаны ад?, але ў якім змяшчаецца інфармацыя аб AstUseLib, мус, і іншых карыстацкіх напісана: працэдуры. Чалавек праграма распаўсюджваецца Уэйн Ландсман http://idlastro. gsfc.nasa.gov / FTP / уклад / Ландсман / Даведка /.

        Заўвага: тэмы ўключаныя толькі тыя "за" файлы, якія былі прааналізаваны па спецыяльнай руціны вымання дакументацыі (mk_library_help) і змяшчаецца ў спецыяльны каталог, дапамогу. Гэта звычайна робіцца з кампаніяй, якая абслугоўвае ваш IDL сістэмы.

    • Чалавек, [імя-каманды радкі]: Гэтая версія чалавек каманды, у якой вы ўводзіце радок, якая змяшчае імя каманды вы хочаце, каб інфармацыя на, друкуе інфармацыю загалоўка руціны ў акне каманд IDL. Яна працуе на любы правільны фармат IDL руціны ў IDL_PATH. Напрыклад, калі Вы жадаеце атрымаць інфармацыю аб камандзе AstUseLib FITS_READ, вы павінны ўвесці:

      Чалавек, "fits_read

        Звярніце ўвагу, што аргумент чалавек павінен быць IDL радкі --- гэта значыць яно павінна быць заключана ў двукоссі (але задні двукоссі можна апусціць). (Не ўводзіце. Pro ​​суфікс для імя файла.) Калі вы ўжо ведаеце імя каманды, цікавасць, гэта хутчэй і зручней, чым выкарыстанне графікі версіі.

        Чалавек функцыя працуе, знайшоўшы першы файл з імем + "і" - ";" [каманды]. Pro ​​"у IDL_PATH і пералічаны ўсе гэтыя радкі ў файл паміж двума лініямі, пачынаючы з"; у першых двух слупках. Настойліва рэкамендуецца змясціць загалоўкі такога тыпу ў вашым родным *. Pro ​​працэдур. Існуе стандартны фармат загалоўка, прынятыя большасцю IDL кодэры, хоць вы не павінны прытрымлівацца гэтага ва ўласных падпраграм.

        На жаль, унутраныя працэдуры IDL не могуць быць даступныя чалавеку.

        Карыстальнікі бібліятэкі IDL руціннай doc_library, [імя-каманды радкі] мае аналагічную функцыянальнасць, але і спісы каталогаў шлях да файла.

    • $ Больш падрабязна [каталог / command.pro]: пералічаны ўсе мясцовыя праграмы. Вы можаце вызначыць пераменныя абалонкі LINUX імем $ ATV_DIR, $ ASTUSE_LIB і г.д., каб яны паказвалі на адпаведныя каталогі, каб пазбегнуць неабходнасці памятаць, якія яны.

    • getpro, [каманды]: піша копію любога немаёмасныя працэдуры файл у бягучым каталогу. Не працуе на ўласных праграмных IDL. Вы можаце адлюстраваць або змяніць працэдуру, каб змяніць сваю функцыю па жаданні. Калі вы не змяняеце імя, і змясціце яго ў шлях IDL наперадзе на ранейшае месца, то ваша версія будзе складзены і выконваецца замест намінальнай. Гэта могуць быць больш бяспечнымі, каб змяніць імя (як імя файла і імя працэдуры ў файле), каб прадухіліць ненаўмыснага памылкі.

        Заўвага: адзін дэфіцыт бягучага карыстальнікам працэдуры дакументацыі з'яўляецца тое, што залежнасці (працэдуры называюць дадзеную працэдуру) не паказваюцца. Калі вы выкарыстоўваеце getpro атрымліваць і рэдагаваць пастаўляецца руціннай паводзіць сябе па-рознаму, гэта можа мець непрадбачаныя наступствы для функцыянавання іншых працэдур. Адзін з метадаў шукае такога ўзаемадзеяння будзе GREP ASCII файлаў у бібліятэку каталогаў для іншых спасылак на руціну вы збіраецеся змяніць. Хуткі спосаб вызначыць, якія падпраграмы завуцца па дадзенай праграме з'яўляецца. Запусціць праграму ў якасці першага кроку ў сесіі IDL. Кожная падпраграма пералічаных на экране, як ён складзены.

    • . Ран-T [каманды]: альтэрнатыўны спосаб атрымання лістынга ў руціне. Гэта будзе складаць [command.pro] і адначасова адправіць аб'яву экран з нумарамі радкоў у дадатку (самай даты, што надрукавана ў заявах IDL памылкі, таму карысна для адладкі). Каб захаваць спіс у файл, выкарыстайце форму:. Ран-L (імя файла) [каманды]. (Увага: калі вы памылкова апускаць файла тут, вы можаце пачаць перазапіс [каманды] файл, калі ён знаходзіцца ў бягучым каталогу.)

    • друку, [пераменная]: Паказвае значэнне любы актыўнай зменнай на ваш тэрмінал. Работы для любой зменнай тыпу, але будзьце асцярожныя ў выпадку вялікіх масіваў (!)

        Фарматаванне: вектары-радка друкуюцца па ўсім экрану, вектары-слупкі друкуюцца ўніз па экране.

        [Заўвага: Е каманда выкарыстоўваецца для накіраваць вывад на выбраны файл або іншыя знешнія прылады.]

    • Даведка: спіс усіх актыўных зменных, іх характарыстыкі, складзеныя праграмы, інфармацыю пра складскія памяшканняў і г.д.; розныя варыянты. Але не тлумачыць каманд. Ёсць мноства дадатковых ключавых слоў для выкарыстання з дапамогай. Прыклады прыведзеныя ніжэй. Каб атрымаць поўны спіс, тыпу? Дапамогу.

      • дапамога, / Роу: друкуе спіс аргументаў для ўсіх складзены працэдуры (акрамя ўласных працэдур IDL). Спісы працэдуры і функцыі асобна.

      • дапамога, / SY: адбіткі бягучыя значэнні ўсіх "сістэмных пераменных", якія спецыяльныя зменныя вядомыя ўсе працэдуры. Назвы яны пачынаюцца з "!", Напрыклад! Радзей,! Шлях, і г.д.

      • дапамога, / REC: друкуе змесціва буфера каманд нагадаць ў зваротным парадку

      • дапамога, / Dev: адбіткі параметраў наладкі для бягучага графічнага прылады

      • дапамога, / MEM: спісы бягучае выкарыстанне памяці

    • друку, р! D або друк:,! друку зменных сістэмы, якія кантралююць прылады адлюстравання і пабудовы асяроддзя, адпаведна. Глядзіце IDL кіраўніцтваў для дэталяў.

    • друку,: шлях друку бягучага спісу шляху каталогаў шукалі *. Pro ​​працэдур. Паколькі шматлікія выпадкі няўдалых або адсутнічае праграмнае забеспячэнне адбыцца, таму што ваш шлях няправільна ўсталяваны, карысна памятаць, каб праверыць! Шлях, калі вы сутыкнецеся з праблемамі. Калі! Шлях Занадта доўгая радок на друк, выкарыстоўваць strmid руціны, каб і друкаваць выпіскі з яго.

    • $ Printenv: будуць пералічаны ўсе абалонкі па змаўчанні параметры, у тым ліку каталог па змаўчанні IDL, калі ён вызначаны.

    • часопіс, [імя файла]: Пачатак часопіс прылада, якая запісвае ў файл усе запісы вы робіце, і найбольш IDL адказаў. Некаторыя адказы (напрыклад, каб дапамагчы) не запісваюцца, каб прадухіліць захламленію файл.

        Любы тэкст, уведзены на дадзенай лініі папярэднічае кропка з коскай будзе ігнаруецца кампілятарам і ўключаны ў файл часопіса ў якасці каментара --- так што вы можаце каментаваць сеансу он-лайн, каб сэрцы вашыя ўтрымання.

        Ваш часопіс файл будзе запісаны і закрываецца пры ўводзе часопіса яшчэ раз ці выхаду вашага IDL сесіі.

        Цяжка пераацаніць значэнне падтрыманню часопіс файлы IDL для сур'ёзнай працы. Добрай практыкай з'яўляецца заўсёды выкарыстоўваць файл часопіса, каб можна было праверыць ці прайграваць тое, што вы зрабілі, аднавіць памылкі, і гэтак далей. Калі вы зменіце з памылак і непажаданых перашкод вашых файлаў часопіса, вы будзеце мець зручны працуе справаздачу аб вашай працы.

        Часопіс файлы дазволу хуткае аднаўленне сесіі IDL, цалкам або часткова, або (калі дзейнасць варта эканоміць і паўтараючы) могуць быць зменены ў выглядзе асноўнай праграмы, падпраграмы або сцэнар.

        Папярэджаньне: часопіс руціннай будзе перазапісваць існуючы файл з дадзенымі [імя файла] без папярэджання сесіі. Выкарыстаньне унікальных імёнаў для кожнага. Акрамя таго, файл часопіса можа быць згубленая ў выпадку аварыі IDL ці збою сістэмы (напрыклад, адключэння электраэнергіі). Для доўгіх сесій, вы можаце планаваць больш аднаго файла часопіса.


    3. Выканання праграмы

    [Да Змест]

    Усе ўласныя праграмы IDL складзеныя і гатовыя да выканання, калі вы пачынаеце вашу сесію. Іншыя праграмы, як правіла, складзеныя толькі тады, калі вы пытаецеся іх. Спіс усіх складзеныя не унутраных працэдур прадстаўлена калі вы ўведзяце дапамогу, / Роу.

    УВАГА: усе IDL асноўных праграм, падпраграм ("працэдуры"), а функцыі мяркуюцца ў файлах з пашырэннем відавочны "Pro"..

    Зменныя

      Стварэнне:

        Каб стварыць ці змяніць зменныя, проста выкарыстоўваць іх у прысвойвання. Памяць для кожнага аўтаматычна ўсталёўваецца ў бок і пашыраецца да бясконцасці. Не трэба папярэдне аб'яву пераменных неабходна. Тып новай зменнай выводзіцца з кантэксту. Падрабязную інфармацыю пра тыпы зменных у IDL, гл. "Частка II: Кампаненты IDL мова" ў Application Programming кіраўніцтва. Напрыклад:

          Z = 1.0e-8 стварае якая плавае кропкай скалярнага
          = C 3.0d10 стварае двайны дакладнасці з якая плавае кропкай скалярнага
          = [1,2,3] і = [а, 4,5], а затым стварае пашырае цэлалікавай вектар

          TestData = fltarr (512256) стварае 512x256 2-D плавае кропкай масіва з нулявымі элементамі.

            Гэты масіў будзе 512 элементаў шырокі (# слупкоў) і 256 элементаў высокага (лік радкоў). Звярніце ўвагу, што гэты слупок / радок Канвенцыі аб саступцы процілеглы FORTRAN і нармальнай матрыцы абазначэння, але, што яна адпавядае нармальнай / (х, у) графічныя абазначэння. IDL масівы захоўваюцца з першым індэкс мяняецца хутчэй. Гэта дазваляе хутчэй адлюстроўваць выявы, так як элементы на кожнай гарызантальнай лініі сканавання захоўваюцца сумежныя.

            Адзначым таксама, што (зноў жа, каб яны адпавядалі графічных стандартаў) першы элемент любога вектара IDL або масіў заўсёды з індэксам 0 не 1. Напрыклад, у масіў Z = [20,30,40,50], Z [0] = 20, Z [3] ​​= 50. Але г [4] не вызначана.

          TestData = findgen (512256) стварае 512x256 2-D плавае кропкай масіва з кожным элементам усталяваны ў значэнне яго 1-D ​​індэкс (пачынаючы з 0). Такім чынам, TestData (100,0) = 100,0 а TestData (0.100) = 51200,0.

          NAME = "Максвелл" стварае радок

            Калі вам неабходна стварыць доўгую радок (напрыклад, у фармаце заявы), можна вызначыць часткі радка на асобныя лініі, а затым аб'яднаць іх. (Напрыклад, stringtot = string1 + string2).

          "Структуры" у IDL з'яўляюцца мноства іншых зменных (адвольная сумесь), якія могуць быць перададзены ад аднаго імя. Яны могуць быць вельмі карысныя ў задачах аналізу дадзеных.

        Дапамагчы камандзе дае вам спіс актыўных зменных і іх уласцівасці.

      Выдаленне:

        Для выдалення зменных (напрыклад, калі ў вас занадта шмат памяці ў выкарыстанні), выкарыстанне delvar. Вы можаце перапісаць змесціва любой зменнай проста з дапамогай аператара прысвойвання. Хуткі спосаб, каб пазбавіцца масівы проста ўсталяваць іх роўнымі скалярнага (напрыклад, = 0). Калі вы выкарыстоўваеце шмат файлаў, гэта таксама добра, каб прадухіліць памылкі квоты файл час ад часу даючы блізка, / усе каманды.

      Сістэмныя зменныя:

        Гэтыя спецыяльныя зменныя з такімі імёнамі, папярэднічае! (Например! Help_path), якія паўсюдна вядомыя ўсім IDL працэдур. Каля 30 з іх загадзя вызначаны і аказання дапамогі ў розных аспектах працы праграмы, у асноўным графіка вываду. Вы можаце ствараць свае ўласныя зменныя сістэмы з дапамогай defsysv каманды. Вы можаце змяніць значэння сістэмных пераменных (за выключэннем "толькі для чытання" зменных) з выкарыстаннем аператараў прысвойвання. Каб убачыць бягучыя значэнні ўсіх сістэмных пераменных, тып дапамогу, / SY.

    Матэматычныя аператары і функцыі

      IDL падтрымлівае поўны набор арыфметычных, рэляцыйныя, лагічныя, мін / макс, і матрычных аператараў. Сярод іншага:

        + - * / ^ + + - MOD> IF THEN НЕ і эквалайзер GE LT #... і г.д.

        Паказаць Будаўніцтва IDL Прыкладанні / Application Programming для поўнага апісання.

      IDL забяспечвае больш за 750 уласных матэматычных і іншых функцый, не кажучы ўжо сотні іншых у бібліятэцы IDL карыстальніка. Напрыклад:

        SQRT EXP ALOG ALOG10 SIN ATAN ASINH GAMMA ROTATE RANDOMN
        GAUSSFIT POLY_FIT INT_3D INTERPOLATE СНП STRMATCH...
        і гэтак далей.

        Паказаць IDL Даведачнае кіраўніцтва падрабязней.

      Многія аператары і матэматычныя функцыі прымаюць вектар або масіў аргументаў, а таксама скаляр.

      Тыповыя каманды IDL ліній можа выглядаць наступным чынам:

       
           = [45, 90, 135, 180] * (! Pi/180.) & Y = SIN ()
      
           Z = ((х-хс) ^ 2) / (2,0 * Sigma ^ 2) і gaussfun = ехр (-Z) / (сігма * SQRT (2,0 *! PI))
      
           sm_im = гладкай (IM, 5) 
      
           калі (photon_count LT 30), то ran_count = randomn (насенне, Пуасона = photon_count)
       

        Тут, і ў вектары, па-першае, устаноўленым гэтым лініі; XC і сігма перадвызначаныя скаляр; х прадвызначаны і можа быць скалярнай або вектарнай, і Z і gaussfun будзе таго ж тыпу; ім з'яўляецца наканаваных вектар або шматмерных масіў, і sm_im будзе таго ж тыпу; photon_count і ran_count скаляр, і photon_count наканаваны; выхад randomn з'яўляецца цэлы лік, калі Пуасона ключавое слова мае значэнне, але яна аўтаматычна пераўтворыцца з якая плавае кропкай, калі насенне не вызначана, яно выкарыстоўваецца ў якасці выхаднога параметра для стварэння серыі выпадковых лікаў на наступныя выклікі (гл. дапамагчы лістынг randomn).

    Выканаўчы Каманды

      . Запусціць [імя]: IDL (працэдуры) або функцыі (ы) у файле. [Імя] кампілюе Pro. Калі гэта асноўная праграма, а таксама выконвае яго.

        IDL будзе знайсці першы файл з такім імем у шляху IDL. Сцеражыцеся выкарыстання імёнаў для вашых уласных працэдур, якія з'яўляюцца такімі ж, як уласных або пастаўляюцца працэдур бібліятэкі (калі вы не маюць намер спецыяльна для замены тых).

        Праграма файлы могуць утрымліваць больш аднаго IDL праграмы. Проста аб'яднаць праграмы разам. Усё будзе складзены. Запусціць каманду і адлюстроўваюцца асобна ў будучых выклікаў. Аднак, гэта не рэкамендуецца пакет праграм такім чынам. Сярод іншага, вы губляеце магчымасць чытання ўнутраных загалоўкаў з чалавекам каманды (гл. вышэй).

        Вы не павінны даць асобнае. Запусціць каманду, каб выканаць падпраграму, якая знаходзіцца ў вашым шляху і імя файла супадае з яго імем працэдуры, за выключэннем дадаў. Pro ​​"пашырэнне. Проста ўвядзіце імя каманды, з усімі неабходнымі параметрамі, і IDL будзе аўтаматычна шукаць шляхі для такой файл і выканаць яго. Калі імя файла не супадае з імем працэдуры яна ўтрымоўвае, то вы павінны. Запусціць файл па асобнасці.

        Вы павінны выкарыстоўваць. Запусціць [NAME] Каманда для выканання асноўнай праграмы ў першы раз. Каб паўторна выканаць, вы можаце выкарыстоўваць. Go.

        . Запусціць імя] каманда [будзе кампілявацца, але не выконваць працэдуры або функцыі файл.

        Вы павінны паўторна выканаць любую каманду якога працэдура файл, які вы рэдагавалі падчас сесіі або змены не ўступяць у сілу.

      . Con: Працяг праграмы перапынена запраграмаваныя каманды прыпынку.

      . Перайсці: Перазагрузка раней скампіляваныя асноўнай праграмы з пачатку.

      @ [Імя]: Выканаць "партыя" файл [NAME] клавіятуры. Pro, які змяшчае спіс каманд IDL у тым жа выглядзе, як яны будуць уведзены з. Можа выкарыстоўвацца для выканання вялікіх працу фону або пэўнага карыстальніка файл ініцыялізацыі ў пачатку сесіі. Пакетныя файлы часта выкарыстоўваюцца, каб дубляваць або ітэрацыя набор каманд вытворным ад раней IDL сесіі (напрыклад, для вываду графікі). Такі набор называецца "сцэнар".

        Кожны радок выканана асобна, з тым, што шматлікія лініі каманды з удзелам рабіць-завес і г.д., не могуць быць уключаны ў сцэнар. (Але падпраграм, якія выклікаюцца з пакетнага файла можна, вядома, уключаць у сябе такія функцыі.)

        Вы можаце наладзіць агульныя блокі, кампіляваць працэдуры, і так далей з пакетных файлаў. Тэкст пасля кропкі з коскай (;) на дадзенай лініі ігнаруецца кампілятарам.

      Эфектыўны спосаб абнаўлення або выканаць часткі скрыпту --- напрыклад, паслядоўнасць каманд атрыманы з дапамогай утыліты часопіс --- гэта запусціць рэдактар ​​сцэнарыяў ў адным акне пры выкананні IDL ў іншай і рэзкі і ўстаўкі зрыўкі Код паміж імі. Гэты метад асабліва карысны, калі ёсць вялікая колькасць опцый (напрыклад, рабіць статыстыкі, гістаграмы і графікаў на файл дадзеных, які змяшчае мноства розных зменных).

    выканаць: выканаць каманду выконвае любыя радок, якая змяшчае каманду належнага IDL. Сінтаксіс

      Вынік = Execute ([радок])

      Тут вынік будзе 1, калі каманда прайшла паспяхова, і 0 ў адваротным выпадку.

      Гэта дае магутны сродак адаптацыі працы праграмы для непрадбачаных выдаткаў падчас выканання. Напрыклад, вы можаце стварыць новую зменную, чыё імя і характарыстыкі заснаваныя на інфармацыі, чытанне з файла, змесціва якіх невядома загадзя. Выкарыстаньне ўбудаваных утыліт радкамі для стварэння каманднага радка.

    Праграмы

    Праграмы структураваныя тэкставыя файлы каманд IDL. Яны могуць захоўвацца ў любым месцы вашага шляху IDL. Існуюць тры розных тыпаў праграм, кожная з якіх ўзаемадзейнічае крыху па-іншаму з вашай актыўнай сесіі IDL. Кадаванне правілы крыху адрозніваюцца ў кожным канкрэтным выпадку.

    • Асноўныя праграмы: асноўная праграма проста файл IDL, якія каманды могуць быць складзеныя і выконваюцца. Запусціць каманду. Асноўныя праграмы вядуць сябе так жа, як калі б Вы набіралі жа каманд з клавіятуры, акрамя таго, што ў вас ёсць поўны доступ да некалькі запісаў лініі, блокі, завесы і г.д., якія не могуць быць выкарыстаны з тэрмінала. Асноўная праграма распазнае любыя зменныя або працэдуры ўжо актыўна на ўзроўні асноўных вашай інтэрактыўнай сесіі, і яны застаюцца актыўнымі, калі праграма завяршаецца.

        Галоўная файлы праграмы не маюць адмысловы загаловак. Проста пачаць з першага выкананага аператара. Асноўны файл праграмы неабходна зачыніць з канца заяве.

        Асноўныя праграмы не могуць быць выкананы працэдуры або функцыі.

    • Працэдуры: IDL "працэдур" выступаць, як падпраграм на Фортране). Усе ўваходы і выхады павінны быць паказаны ў камандным радку, якая выклікае падпраграмы (або праз агульныя блокі або сістэмы IDL пераменных. Працэдуры могуць быць выкліканы з асноўнага ўзроўню або любой іншай працэдуры. Працэдура званкі выглядаць наступным чынам (звярніце ўвагу на адсутнасць дужках):

           PROCEDURE_NAME, input_parm_1, input_parm_2... output_parm_1, $
          output_parm_2... keyword_1 = значение1, keyword_2 = значение2.... 

      • Параметры для ўводу / вываду, падзеленых коскамі. Калі параметр паслядоўнасці гэта занадта шмат для адной лініі, разбіце яго на некалькі ліній з выкарыстаннем працяг знак даляра канвенцыі (як тут). Інфармацыя таксама можа быць прынята агульным блокі або сістэмных пераменных.

      • Працэдуры і функцыі не могуць прызнаць зменных актыўны ўдзел у інтэрактыўнай сесіі, калі яны перадаюцца ў якасці параметраў, у агульных блокаў, ці, як сістэмных пераменных.

      • Аналагічным чынам, асноўнай ўзровень IDL не можа распазнаць зменныя, якія вызначаны ў працэдуры або функцыі, але не перадаюцца праз параметры выкліку, агульных блокаў, або сістэмных пераменных вярнуцца да асноўнай праграме. Унутраныя зменныя роўныя нулю на нармальны выхад з працэдуры.

          У працэсе адладкі працэдуры, вы будзеце жадаць быць пад кіраваннем on_error, 0 (які па змаўчанні). Калі памылка ў працэдуры, гэта спыніць выкананне на ўзроўні працэдуры і дазволіць вам правяраць усе яе лакальныя пераменныя.

      • Як і ў FORTRAN, звычайныя параметры павінны быць уведзеныя ў паказаным парадку. Канцавыя параметры могуць быць апушчаны, калі Ёсць па змаўчанні для іх закадзіраваны ў падпраграму.

      • Ключавыя словы параметраў, якія перадаюць інфармацыю на падпраграмы, але ў адрозненне ад стандартных параметраў, пералічаных у папярэднім прыкладзе (input_parm_1,... output_parm_2..), яны з'яўляюцца неабавязковымі. Яны не павінны з'яўляцца ў выклік падпраграмы, і калі цяпер яны могуць з'яўляцца ў любым парадку. Таму яны ўяўляюць сабой магутны пашырэнне жорсткай падпраграмы канвенцый выкліку іншых мовах высокага ўзроўню, яны асабліва карысныя ў выпадку складаных задач апрацоўкі дадзеных. Значэнні слоў, як правіла, вызначаецца прысвойвання:

        PROCEDURE_NAME, parm_1, parm_2..... KEYWORD_1 = 100., KEYWORD_2 = "Дамба',...

        Акрамя таго, у выпадку перамыкачы, ключавыя словы могуць быць усталяваны ў значэнне 1, выкарыстоўваючы наступны сінтаксіс:

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

        Ключавое слова імя ў выкліку заява можа быць ссечаны як кароткі радкоў, так як дазваляе ключавое слова быць адназначна вызначаны.

        Keyword_set (імя) функцыі могуць быць выкарыстаны ў падпраграму сэнсе ці вызначанага ключавога слова быў усталяваны карыстальнікам у бягучы выклік у падпраграму.

        IDL падтрымлівае "ключавое слова спадчыну" такое, што ключавыя словы, якія не могуць фактычна быць вызначаны ў аб'яве працэдуры, але якія ўключаны ў каманду, якая называецца працэдура можа быць перададзены на іншыя працэдуры, якія прызнаюць іх. Гэта дадае значную гібкасць ў пісьмовай форме інтэрактыўнага праграмнага забеспячэння. Глядзіце IDL кіраўніцтваў для дэталяў.

      • Працэдура файлаў павінны пачынацца з адмысловай радку загалоўка, а менавіта:

        PRO Імя, parm_1, parm_2,... keyword_1 = keyword_1...

        і павінен зачыніць з вяртаннем і канцы заяву.

    • Функцыі: IDL "функцыі" выконвае як функцыі на мове Фартран. Яны вяртаюцца выснова ў адной зменнай, якая з'яўляецца на левым баку аператара прысвойвання:

      Вынік = имя_функции (parm_1, parm_2... keyword_1 = keyword_1...)

      • Дужкі неабходныя, і параметры ў іх павінны быць падзеленыя коскамі. Што тычыцца працэдуры, толькі параметры, названыя ў паслядоўнасць выкліку або праз агульных блокаў або сістэмных пераменных будзе вядомая функцыя.

      • Не трэба ўводзіць у зман фармат выкліку функцыі. Функцыі могуць вяртаць вялікія аб'ёмы інфармацыі. Зменнай на левым баку можа быць масіў ці структуру. Параметры ў дужках можа быць выкарыстана для атрымання вываду (як і ў кол параметр, дзе функцыя). Інфармацыя таксама можа быць прынята агульным блокі або сістэмных пераменных.

      • Звярніце ўвагу на магчымай блытаніны, якая можа паўстаць, паколькі фармат выкліку функцыі аналагічна аператар прысвойвання з удзелам масіў на правай баку. У IDL V5 або больш позняй версіі, па змаўчанні фармат для ўказанні індэксаў у масівах зараз выкарыстоўвае дужках, а не дужках --- напрыклад масіў [I, J, K] --- хоць больш познія версіі яшчэ трываць выкарыстання дужак. У старых версіях IDL, спосаб пазбегнуць блытаніны паміж масівамі і функцый для папярэдняй кампіляцыі (не унутраных) функцый з выкарыстаннем. Запусціць, перш чым збіраць інфармацыю аб любых працэдур, якія выкарыстоўваюць іх ці спрабаваць выкарыстоўваць іх у інтэрактыўным рэжыме. Вы атрымаеце "нявызначаная пераменная" паведамленне пра памылку, калі вы заняхайваеце гэта зрабіць.

      • Функцыя файлаў павінны пачынацца з адмысловай радку загалоўка, а менавіта:

        FUNCTION Name,parm1,parm2,...

        і павінен зачыніць з return,[output] і канец заяву.

    Праграма Прыклады

    Каб праілюстраваць некаторыя з адрозненняў паміж асноўнымі праграмамі, працэдуры і функцыі, вось тры адпаведнай версіі код для вызначэння даўжыні Першы аспект дадзенай зменнай (скаляр або масіў), выкарыстоўваючы ўбудаваны памерах. Кожная версія мяркуецца, будуць захоўвацца ў файле з імем get_dim1.pro на вашым шляху IDL.

      [Глядзіце вызначэння памеру функцыі ў файлах дапамогі IDL. Звярніце ўвагу, што форма яго выхад - S прамежкавых зменных у прыкладах - залежыць ад колькасці вымярэнняў у ўваходная пераменная. Яе першы элемент утрымоўвае лік вымярэнняў (нуль для скалярнага); яго другі элемент даўжыні першага вымярэння. Заўважым, што любы тэкст пасля коскі (;) не з'яўляецца абавязковым і ігнаруецца кампілятарам].

    1. Асноўная праграма

      
               ; MAIN PROGRAM: get_dim1.pro 
               s = size(a_in)
               if (s[0] eq 0) then d1 = 0 else d1 = s[1]
               end
      
    2. Procedure

      
               PRO get_dim1,a_in,d1
               s = size(a_in)
               if (s[0] eq 0) then d1 = 0 else d1 = s[1]
               return
               end
                  
      
    3. Function

      
               FUNCTION get_dim1,a_in
               s = size(a_in)
               if (s[0] eq 0) then d1 = 0 else d1 = s[1]
               return,d1
               end
      
    Для выканання гэтых трох працэдур падчас інтэрактыўнага сеансу і для друку на камандным акне тэрмінала выніковае значэнне для першага вымярэння, каманды будзе выглядаць наступным чынам. Ва ўсіх выпадках, пераменная a_in ўваход павінен ужо вызначаны ў ходзе сесіі. Звярніце ўвагу, што вы не павінны даць. Запусціць каманду для кампіляцыі працэдуры або функцыі, пакуль яго назва файла адпавядае яго лагічнага імя (за выключэннем. Pro ​​пашырэння).

    1. Main Program

      
               .run get_dim1
                print,d1
      
    2. Procedure

      
                get_dim1,a_in,d1
                print,d1
      
    3. Function

      
                print,get_dim1(a_in)
      
    Саветы

    • Дадаць каментар да праграмы файлаў і сцэнарыяў з дапамогай коскі (;). Любы тэкст на гэтай лініі наступныя коскі ігнаруецца кампілятарам. Выкананыя аператары могуць папярэднічаць кропка з коскай.

    • retall: важныя ўтыліты, якая дазваляе вярнуцца да праграмы АСНОЎНЫЯ калі памылка ўзнікае ў падпраграму. Па змаўчанні ў гэтым выпадку павінен заставацца пад кантролем падпраграмы (так што вы можаце адладжваць руціны, вывучыўшы бягучыя значэння зменных, напрыклад).

        Небяспека, калі вы не вернецеся ў галоўнае, што вы будзеце выконваць іншыя задачы (напрыклад, чытанне ў новых дадзеных) пад кіраваннем падпраграмы, але пазней выхаду руціны, што прыводзіць да выдалення ўсіх такіх дадзеных. Тып retall бегчы падпраграмы.

        Альтэрнатывай з'яўляецца ўстаноўка on_error, 1 у пачатку сесіі, якая аўтаматычна вяртаецца на ўзровень АСНОЎНЫЯ пасля памылкі. On_error, 0 усталёўвае рэжым па змаўчанні (знаходжанне ў падпраграму).

        Вы можаце праверыць, дзе вы знаходзіцеся, набраўшы дапамогу. Першая лінія друкаванай інфармацыі чорныя спісы Імя бягучае месцазнаходжанне (імя працэдуры і лінія).

    • Пры выкарыстанні курсора, не забудзьцеся змясціць яго на актыўнае акно (вызначаецца WSET або Чан руцінных) да націску кнопкі; вынік памылкі ў адваротным выпадку. Вярнуцца курсор у акно каманд, калі скончыў з курсорам функцыі.

    Імпарт праграмнага забеспячэння

      Ёсць мноства сайтаў у Інтэрнэце, якія размяркоўваюць IDL праграм. Каб выкарыстоўваць гэтыя, усё што вам трэба зрабіць, гэта загрузіць іх, распакаваць (пры неабходнасці) на крыніцу-фармаце (ASCII), і змясціць іх у дырэкторыю ў вашым шляху IDL. Шляхам пошуку пратакол, апісаны вышэй у раздзеле. Запусціць каманду будзе знайсці і выканаць кожны файл праграмы, калі вы просіце аб гэтым.

      Вы можаце зрабіць гэта да або падчас інтэрактыўнай сесіі IDL (хоць вы не можаце змяніць IDL шляху падчас сесіі). Вы павінны, вядома, пераканайцеся, што ў вас ёсць усе дапаможныя праграмы, неабходныя новае праграмнае забеспячэнне таксама на вашым шляху.


    4. ДАДЗЕНЫЯ І пошуку малюнкаў

    [Да Змест]

    [Уніз да дадзеных і захоўвання выявы]

    Перадача дадзеных у памяць

      Падчас актыўнай сесіі, IDL падтрымлівае адпаведныя дадзеныя ў памяць выпадковага захоўваюцца ў зменных з адвольнымі імёнамі, выбраных карыстальнікам. Першым крокам у аналізе дадзеных IDL, як правіла, таму для чытання дадзеных або файлы малюнкаў з дыска захоўвання ў зменныя IDL ў аператыўнай памяці. Гэтыя зменныя можна кіраваць па жаданні выкарыстаннем арыфметыкі, вытрымкi, сціску, пашырэння, перайменавання, пераўтварэння, і мноства іншых ўбудаваных і карыстальнікам функцый. Яны могуць быць запісаныя на дыск у выглядзе файлаў у розныя фарматы.

      Адзначым, што гэта, у адрозненне ад Ирафского і большасць іншых стандартных пакетаў праграмнага забеспячэння астраноміі, дзе няма прамежкавага захоўвання дадзеных, усе маніпуляцыі пачынаецца і заканчваецца з дадзенымі, якія захоўваюцца ў выглядзе файлаў, і трэба звярнуцца да наборам дадзеных, іх імёны файлаў на ўсіх этапах Аналіз працэсу.

      IDL можа чытаць / запісваць файлы да 2,2 Гб (і больш на некаторых платформах). Аднак, ваш кампутар можа мець абмежаванні, якія перашкаджаюць доступу да файлаў гэта вялікае. Гл. "Файлы і I / O" кіраўнік Будаўніцтва IDL Прыкладанні / Application Programming ў кіраўніцтве па працы з вялікімі файламі.

        (У некаторых сітуацыях гэта можа быць пераважней не мець IDL чытаць увесь файл у памяці;. Тут вы можаце замест гэтага выкарыстаць ASSOC функцыі перадаць толькі частка файла, як гэта неабходна дадзеныя не будуць праведзены ў аператыўнай памяці.)

      Звярніце ўвагу, што любое імя файла павінны быць зададзены як радкі ў каманды, апісаныя ніжэй. Гэта значыць, яно павінна быць заключана ў двукоссі (калі вы выкарыстоўваеце наканаваныя радкі зменнай). Прыклад: fits_info, "m87_nucleus.fits (задні двукоссі можна апусціць, калі гэта апошняя запіс на лініі). Wildcard абазначэння могуць быць выкарыстаны з падпраграмы, якія могуць прымаць некалькі ўваходных файлаў (напрыклад, fits_info, "*. M87 падыходзіць).

    Каталог Падпраграмы

    • SD, [каталог] або CD, [каталог]: змяніць дырэкторыю на дырэкторыю ладу дыска, як CD у Linux. Імя каталога павінна быць радком. SD, без аргументаў, эквівалентна $ PWD.

        Заўвага: $ CD каманды абалонкі не змяніць налады па змаўчанні IDL каталога.

    • Dir: спіс змесціва бягучага каталога.

    • друку, file_which ([назва]): адбіткі месцазнаходжанне файла з зададзеным імем. Файл павінен быць у дырэкторыю ў вашым шляху.

    ASCII-файлаў

      ASCII-файлаў складаюцца з літарна-лічбавых адфарматаваны і звязаных з імі знакаў. Іх лёгка чытаць і рэдагаваць, і яны лёгка перадаецца паміж аперацыйных сістэм. ASCII-файлы шырока выкарыстоўваюцца для захоўвання сціплых аб'ёмаў дадзеных і, як правіла, выкарыстоўваецца для вываду інфармацыі з электронных табліц, лічбавых астранамічных каталогах і г.д.

      Асноўныя руціннай IDL для чытання ASCII файлаў readf. Звычайна ён выкарыстоўваецца ў фармаце ключавое слова, якое вызначае структуру файла.

        Фармат справаздачнасці ў IDL вельмі падобныя на тых, у FORTRAN або C. Прыклад кода чытаць файл, які змяшчае імёны мэтаў, каардынаты, і яркасць можа выглядаць наступным чынам:

        
               get_lun,unit
               openw,unit,'InputFile'
               form='(a15,3x,f9.5,3x,f9.5,3x,f6.2)'
               for i=0,numtarg-1 do readf,unit,format=form,$
                       targid[i],radeg[i],decdeg[i],vmag[i]
               close,unit
         

        Пры такім падыходзе лік ліній дадзеных у файл (numtarg) павінны быць вызначаны загадзя. Уласная ўтыліта IDL, якія могуць дапамагчы ў вырашэнні гэтай задачы для файлаў ASCII з'яўляецца file_lines.

        Таму што за заяву, у гэты сцэнар ставіцца да асобных элементаў масіваў прызначаны для захоўвання ўваходных дадзеных, гэтыя масівы павінны быць папярэдне вызначаны для размяшчэння тых элементаў як чакаецца, будзе ў InputFile. Напрыклад radeg = fltarr (numtarg). Масівы таксама могуць быць вызначаны, больш, чым запісы ў любыя магчымыя ўваходнага файла, а затым ўсечаны пасля сцэнар выконваецца.

      У залежнасці ад структуры зыходнага файла, readf таксама можа быць выкарыстаны ў вольнай форме рэжым, у якім фармат ключавое слова не патрэбныя і файл элементаў, падзеленых коскамі або прабеламі. Глядзіце IDL дапаможнікаў.

    readcol з'яўляецца вельмі зручным AstUseLib ўтыліта для чытання файлаў ASCII, якая складаецца з асобных слупкоў лікавых даных без ўказанні фармату файла. Прыклад выкарыстання readcol дадзена ў Пабудова прыкладу 4 ніжэй.

      Syntax: readcol,'[Filename]',v1,v2,v3,v4...

      Стоўбцы могуць быць падзеленыя прабеламі або коскамі (або іншых знакаў, указаных у Факультатыўным delimiter keyword) але не павінны быць выраўнаваны.

      Вектар зменных, у якім слупкі чытаюць readcol do не павінны быць перадвызначаныя.

      open and close Каманды, якія ўваходзяць у склад readcol, так няма асобнай каманды неабходныя.

      readcolпрымае спрошчанай спецыфікацыі фармату і можа чытаць літарна-лічбавай абласцях, а таксама лікавых палях (аднак, без прабелаў ці косак можа з'явіцца ў літарна-лічбавых палёў).

      readcol добра падыходзіць для чытання коску кошт файлы, створаныя электронныя табліцы.

      readfmt адпаведная ўтыліта AstUseLib для фіксаванага фармату запісу. Вы павінны паказаць фармат, але руціна будуць выконвацца нашмат хутчэй, таму што яна не мае для праверкі структуры кожнай радку.

      Абодва readcol і readfmt працэдуры ёсць добрая асаблівасць, што яны будуць прапускаць каментар лініі (ці іншай лініі з несупадаючыя фарматаў) без удушша.

    Двайковых файлаў

    ПАДЫХОДЫ Файлы

    Стандартны фармат дадзеных для большасці астранамічных набораў дадзеных на сённяшні дзень з'яўляецца гнуткая Выява транспартнай сістэмы (падыходзіць) фармаце. IDL астраноміі карыстальніка Бібліятэка змяшчае вялікі пакет працэдур для кіравання ПАДЫХОДЫ файлаў. Унутраная IDL падтрымлівае шэраг іншых агульных навуковых фарматы даных (гл. кіраўніцтва па падрабязней) з аналагічнай функцыянальнасцю.

    • ПАДЫХОДЫ інфармацыю аб файле ўтыліты

        fitsdir: спіс (па выбары) ключавыя словы з загалоўкаў ПАДЫХОДЫ файлаў у бягучым каталогу.

        fits_info і fits_help пералік інфармацыі аб структуры файла падыход (колькасць пашырэнняў, памераў загалоўкаў і масівы, і г.д.), не чытаючы ўвесь файл. Гэта можа быць важна, каб пацвердзіць тып файлаў (малюнкі, табліцы і г.д.), з якім вы маеце справу. Fits_info будзе працаваць на спіс файлаў.

        headfits (функцыя) будзе чытаць поўны загаловак ПАДЫХОДЫ файл на дыску ў зменную IDL (без чытання дадзеных). Затым можна адлюстраваць змесціва загалоўка або з пячаткай або hprint каманды (апошні прызначаны для загалоўкаў падыход). Headfits будзе працаваць на сціснутыя файлы (*. Z або *. GZ).

          Напрыклад: hprint, headfits ('m87_nucleus.fits.gz)

    • ПАДЫХОДЫ чытання файла працэдур. Ёсць некалькі розных набораў утыліт для доступу да падыходу файлаў. Для параўнання іх перавагі і недахопы, гл http://idlastro.gsfc.nasa.gov/fitsio.html. Два найбольш шырока выкарыстоўваюцца, верагодна, fits_read і mrdfits.

      • fits_read,[filename],[image variable name],[header variable name],... : прачытаць файл ПАДЫХОДЫ дыск у IDL выявы і загалоўка пераменных.

          Прыклад: fits_read,'m87_nucleus.fits',m87,hdm87,/noscale

          Гэтая каманда чытае дадзеныя выявы ў падыходзе файл m87_nucleus.fits выявы ў бягучы каталог у актыўнай зменнай M87 і адпаведны падзел загалоўка файла ў актыўнай зменнай масіў радкоў hdm87. M87 будзе мець характарыстыкі (байт, цэлага, які плавае і г.д..) дадзеных ПАДЫХОДЫ файл.

          Факультатыўны noscale ключавое слова, якое выкарыстоўваецца тут замінае (па змаўчанні) аўтаматычнае маштабаванне, які пераўтварае малюнак значэння патокаў выкарыстаннем калібровачнае параметраў ў загалоўку. Для многіх мэтаў, маштабаванне непрыемнасць.

      • fits_read можа апрацоўваць пашырэнняў і груп у падыходзе файлаў. Сярод альтэрнатыў, fits_read з'яўляецца лепшым выбарам для бягучага набору дадзеных HST, напрыклад.

      • Адпаведных руцінных пісаць ПАДЫХОДЫ файл fits_write (гл. ніжэй).

    • ПАДЫХОДЫ табліцы камунальныя паслугі. Існуе цэлы набор працэдур Бібліятэку Карыстальнік астраноміі чытаць, пісаць, або маніпуляваць ПАДЫХОДЫ ASCII або двайковы табліц. Дадатковыя звесткі см. ў раздзеле http://idlastro.gsfc.nasa.gov/ftp/pro/fits_table/aaareadme.txt.

        Напрыклад, каб прачытаць ПАДЫХОДЫ файл, які змяшчае двайковы табліцы крыніц і атрымаць інфармацыю аб каардынатах:

           
                 fits_read, "sources_file.fits, стол, hdtable
          
                 tbhelp, hdtable; Спіс змесціва кожнага поля 
                                    ; З загалоўка
          
                         ; Вытрымка РА і снежні вектараў, заснаваных на
                         ; Tbhelp лістынг:
          
                 рады = tbget (hdtable, стол, 1)
                 які памёр = tbget (hdtable, стол, 2)
                     
        Акрамя таго, можна выконваць тыя ж здабыча наступным чынам:

          
                  ftab_help,'sources_file.fits'   ; List contents  
                  ftab_ext,'sources_file.fits','RA','DEC',rad,decd  
               
    • ПАДЫХОДЫ заголовке ключавое слова здабычы / маніпуляцыі. Ёсць шмат камандаў, у асноўным, пачынаючы з прэфіксам SX, якія дазваляюць здабычы і апрацоўкі ПАДЫХОДЫ ключавыя словы.

        Напрыклад, каб атрымаць і надрукаваць імя мэты з загалоўка зменнай выявы падыход:

          Тарг = sxpar (hdm87, "TARGNAME ') і друк, Тарг.

        Каб дадаць каментар да гісторыі зменнай загалоўка падыход:

          sxaddhist, '22 жнівень 2004: адымаецца сярэдняе фоне неба, hdm87

        Каб дадаць новы параметр ў зменнай загалоўка падыходы або змяніць існуючы, выкарыстанне sxaddpar.

    СОУ і Ирафского файлаў: Гэтыя фарматы файлаў, якія захоўваюць дадзеныя і загаловак сегментаў ў асобнасці, з'яўляюцца састарэлымі, але AstUseLib чытання / запісу працэдуры для іх. Глядзіце strd і irafrd, адпаведна.

    Іншыя фарматы выяваў:
      Карыстальнікі вырабляецца IDL працэдур чытаць большасць іншых стандартных фарматаў для захоўвання малюнкаў. Глядзіце: read_gif, read_jpeg, read_srf, read_tiff і г.д. Ёсць адпаведныя запісы працэдур для ўсіх з іх.

      ITTVIS таксама пастаўкі ўласнага чытача файл, які будзе чытаць найбольш камерцыйна важных тыпаў файлаў выяваў. Выкарыстоўвайце каманду checkim = query_image ([імя файла], дадзеныя), каб вызначыць, ці з'яўляецца канкрэтны файл у падыходным фармаце. Калі так, то вяртаецца значэнне checkim будзе 1 (0, калі няма). Падрабязную інфармацыю аб файлавай структуры, тып друку, інфармацыя, / вул. Выкарыстоўвайце read_image функцыі, каб прачытаць файл і звязаных з ёй табліц колеру, калі такія маюцца (гл. файлы даведкі і наступны падзел для атрымання інфармацыі аб табліцы колераў).

    Endian-пераўтварэнне

      "Endian" ставіцца да захоўвання канвенцыі, прынятай для некалькіх байт колькасцях памяці сістэмы кіравання вашага кампутара. Калі самы старэйшы байт захоўваецца па-першае, гэта "ад старэйшага да малодшага" Канвенцыі. Калі малодшы байт захоўваецца па-першае, гэта "прамы парадак байтаў" Канвенцыі. Як і варта было чакаць, вытворцы не змаглі дамовіцца аб універсальным стандартам для байт. Такім чынам, вы, верагодна, будзе сутыкаюцца часам з таго, каб пераўтварыць б для счытвання дадзеных з файлаў, створанымі на іншых кампутарах. Гэта не праблема пры чытанні / запісу файлаў Падыход. Але яна можа ўзнікнуць пры чытанні іншых тыпаў двайковых файлаў, напісаных на розных архітэктуры сістэмы. Сімптомам "неадпаведнасць байтаў-Нес" незвычайна вялікіх ці малых лікаў у дадзеных, у якой яны не чакалі.

      IDL ўключае swap_endian функцыя, якая дазваляе змяняць захоўвання канвенцыі аб дадзеных у сесіі. Яна таксама дазваляе вам вызначыць канвенцыі, прынятыя вашым кампутарам, як у наступным:

         
        = 3.0e5; Вызначыць вялікая колькасць
        B = swap_endian (, / swap_if_big_endian) і друк, B
             ; Калі б адрозніваецца ад, ваша машына Big Endian
             ; Калі б такая ж, як, ваша машына зваротным парадкам байтаў
         
      Калі ваша машына не адпавядае кампутар, спароджаных адпаведны файл дадзеных, а затым выкарыстоўваць swap_endian памяняць захоўваемых дадзеных.



    5. Паказ выявы

    [Да Змест]

    Большая частка ўлады інтэрактыўных вылічальных зыходзіць ад вашай здольнасці зрабіць неадкладна адлюстроўвае участкаў або малюнка на вашым тэрмінале. Абсталяванне меркаванняў пасягаюць больш аб унясенні такіх дысплеяў, чым на іншыя аспекты інтэрактыўных вылічэнняў.

    У гэтым раздзеле апісваюцца асноўныя механікі малюнак графіка і асноўныя IDL-лініі працэдур каманды для стварэння малюнка дысплеяў. Калі вы зацікаўлены толькі ў атрыманні хуткага адлюстравання астранамічных малюнкаў, перайдзіце да апісання інструмент адлюстравання ATV ў наступным раздзеле. Для стварэння участкаў, гл 10. Участкі ніжэй.

    Колер графічнымі дысплеямі

      Каляровыя маніторы выкарыстоўваць тры колеру інжэктараў --- чырвоны, зялёны і сіні (RGB) --- кожны з якіх можа быць скарэкціравана да 256 розных узроўнях інтэнсіўнасці ў дадзеным становішча на экране. У прынцыпе, таму яны могуць адлюстроўваць 256 ^ 3 = 16800000 кветак у любы момант. Да апошніх дзесяці гадоў ці каля таго, аднак, большасць камп'ютэрных манітораў былі здольныя адлюстроўваць толькі адзін байт (8 біт, або 256 розных узроўняў) інфармацыі ў дадзеным месцы. Яны вядомыя як 8-бітных манітораў. Карыстальнікі вымушаныя былі выбраць толькі 256 з 16800000 магчымых значэнняў колеру для сваіх дысплеяў. Гэты выгляд абмежаванай асяроддзі Дысплэй называецца псеўда-колер або індэксавацца кветак дысплей. Большасць IDL (і іншых навуковых апрацоўкі малюнкаў) праграмнае забеспячэнне, напісанае да 2001 года прадугледжвае, псеўда-каляровымі дысплея.

      Сучасныя кампутарныя маніторы, верагодна, у тым ліку той, які вы выкарыстоўваеце, функцыю 24-бітнай адлюстравання кветак. Гэта азначае, што яны здольныя выкарыстаць усе магчымыя 3-каляровых камбінацый. IDL выява адлюстроўваецца выкарыстання гэтага максімальную каляровую палітру вядомыя як поўнакаляровыя дысплеі.

      Наіўна, можна чакаць, што ўсе пазначаныя "праўдзівай" трэба быць лепш, чым што-та назовай "псеўда". І вы былі б правы --- Калі вы зацікаўлены ў камерцыйнай апрацоўкі лічбавых малюнкаў камеры або прыняцця гламурнай версіі прэс-рэліз астранамічных малюнкаў. Але гэта не галоўная клопат большасць астраномаў. Замест гэтага, вы выявіце, што праца з дысплеямі ў псеўда-колер (родам з-бітны манітор 8 або пераймання па-бітны манітор 24) з'яўляецца найбольш прыдатным і зручным.

        Прычынах, па-першае, што чалавечы вока не можа адрозніць нават 256 узроўняў інтэнсіўнасці ці колеры так, што дадатковыя каляровы магчыма ў 24-бітных дысплеяў рэдка навуковую каштоўнасць. (Эстэтыка іншае пытанне.) Па-другое, большасць малюнкаў, якія ўяўляюць цікавасць для вас будзе ўнутрана манахраматычнага. На самай справе, большасць асноўных аналіз работы выявы ў астраноміі на аснове шэрага дысплеяў. Нарэшце, выкарыстанне поўнакаляровыя дысплеі патрабуе стварэння 3-мерных масіваў (тры элемента неабходныя ў кожнай кропцы х, у пазіцыі карміць тры інжэктараў колеру), у той час як навуковыя выявы, якія будуць зыходзіць з, як правіла, 2-мерны. Пераўтварэнне наперад і назад паміж 2-х і 3-D дадае непатрэбныя ўскладненні.

      Адпаведна, большасць з наступнага абмеркавання, накіраваныя на indexed-color/pseudo-color паказвае, як на 8-бітнай або 24-бітных манітораў.

    Праглядаў масіваў і табліц кветак

      Масіў, які перадаецца на манітор абсталявання для адлюстравання павінны быць масіў, які азначае, што яго значэння элемента заўсёды знаходзяцца ў дыяпазоне 0-255.

    • 24-бітны Маніторы: О-бітны манітор 24, адлюстроўваецца масіў заўсёды 3-D IDL масіў, адзін з якіх памеры заўсёды 3. Кожны індэкс у гэтым вымярэнні кодаў для адной з трох інжэктараў колеру. Структура масіва можа быць ім (3, шырыня, вышыня), І. М. (шырыня, 3, вышыня), або ў / м (шырыня, вышыня, 3). У апошняй з гэтых формаў, чырвонага, зялёнага і сіняга плоскасцяў выявы захоўваюцца паслядоўна. У першай з гэтых формаў, "колер-троек" у кожным пікселі захоўваюцца разам: гэта значыць, першыя шэсць элементаў у сховішча будзе r_00, g_00, b_00, r_10, g_10, b_10, дзе r_00 з'яўляецца чырвоны інтэнсіўнасці ў (0,0) пікселяў, і гэтак далей. Уведзеныя значэння пераўтворацца непасрэдна ў яркасці ад 3 манітора колер інжэктараў.

      У выпадку каляровай фатаграфіі, напрыклад, 24 біт манітор можа адлюстроўваць ўсю палітру колераў, убудаваныя ў малюнак, і, такім чынам, 24-бітнай адлюстравання называюцца "сапраўдныя колеру" дысплеяў. Аднак, колеру не абавязкова павінны адпавядаць ўспрымаецца іх. Найбольш шырока выкарыстоўваецца поўнакаляровы фармат файла малюнка на сённяшні дзень з'яўляецца фармат JPEG (хоць гэта звычайна не выкарыстоўваюцца для навуковых дадзеных).

    • 8-бітных манітораў: З-бітны манітор 8, адлюстроўваецца масіў заўсёды 2-D IDL масіў, І. М. (X, Y) = N, дзе N называецца індэксам дысплей на піксель (х, у). Уступіў значэнне індэкса павінна быць пераўтворана ў яркасці для 3 інжэктараў колеру з дапамогай пасярэдніка вядомы як колер табліцу.

        Колер Табліцы: Табліца кветак складаецца з трох байт вектараў R, G, B, кожны 256 элементаў доўга, якія змяшчаюць значэння ад 0 да 255. Калі дадзены піксель утрымоўвае значэнне індэкса п, чырвоны, зялёны і сіні інжэктараў на піксель, што ўсталяваныя на значэнні [R [п], G [п], У [п]]. У выніку з'яўлення на экране кампутара, таму залежыць як ад значэння масіва і табліцы кветак.

        Для "шэрага" табліцы колераў, R [п] = G [п] = B [п]. Калі тры вектара ўтрымліваюць розныя запісы, каляровы дысплей з'явіцца. Гэтыя колеру не маюць неабходных адносінах да знешнасці або уласцівасцяў аб'екта на малюнку, таму такія дысплеі называюць "псеўда-колер" паказвае, у цэлым, яны называюцца "індэксавацца кветак" дысплеяў. Аднак, ёсць прамое адпаведнасць паміж значэннямі індэкса ў масіве малюнка і колеру, якія з'яўляюцца на экране. Хоць ён не дадае фундаментальную інфармацыю, псеўда-каляровы дысплей з 1-масіў можа быць вельмі карысна ў вывучэнні тонкай структуры ў складаны вобраз, напрыклад. Псеўда-каляровымі дысплея могуць не знаходзіцца "ненатуральным", яны могуць цесна набліжанага поўнакаляровы дысплей, але па сваёй прыродзе абмежаваны толькі 256 узроўняў колер / інтэнсіўнасць. Фармат GIF захоўвае выявы ў 2-D індэксавацца формы з прыкладаемай табліцы колеру.

        Па-бітны манітор 24, табліца кветак выкарыстоўваецца ў "пераймання" ИНДЭКС-каляровым рэжыме камплекце з прыстасаваннем, раскласці = 0 каманды (гл. наступны пункт). Але табліц кветак не маюць эфекту ў стандартных поўнакаляровы рэжым, апісаных вышэй.

    • Індэксавацца колераў адлюстроўвае на 24-бітных манітораў: Паколькі індэксаваць / псеўда-каляровыя дысплеі, больш карысныя ў многіх навуковых прыкладанняў, чым гэта поўнакаляровы, IDL дазваляе эмуляваць індэксавацца колераў адлюстроўвае на-бітны манітор 24. У гэтым рэжыме вы зноў павінны прадаставіць 2-D масіў малюнак і колер табліцы пошуку (як для манітора 8-біт). Адлюстравання каманд будзе выкарыстоўваць табліцы колераў для стварэння 3-D поўнакаляровыя выявы, якое будзе з'яўляцца на маніторы гэтак жа, як псеўда-каляровы малюнак з'явіліся б на манітор 8-біт. Для таго, каб выкарыстаць гэты рэжым, вы павінны абвясьціць прылады, раскласці = 0 (больш падрабязна ў наступным раздзеле).

    Настройка Visual Дысплей у рэжыме з кампутарам

    1. Першым крокам з'яўляецца вызначэнне якой "візуальнага адлюстравання класаў" ваша абсталяванне можа падтрымліваць. У LINUX радку увядзіце xdpyinfo. (Вы павінны быць у X-Windows, каб выкарыстоўваць гэтую каманду.) Гэта выведзе спіс адлюстравання канфігурацый магчыма ў вашай сістэме. Запіс "Клас: псеўда, глыбіня: 8 самалётаў" паказвае, што ваша сістэма падтрымлівае 8-бітныя псеўда-каляровымі дысплея. Запіс "Класа: TrueColor, глыбіня: 24 самалётаў" паказвае ваша сістэма падтрымлівае 24-бітны колер-дысплеяў. Некаторыя сістэмы падтрымкі абодвух з іх.

        На Apple Mac OS-X сістэм, стандарт X-11 Пакет можа быць усталяваны ў розных візуальных класаў. Пачатак X-Windows. Націсніце на X11 ===> Налады ===> Output ". "Кветкі" меню дае вам выбар з ліку магчымых кветак. "256 колераў" псеўда-каляровым рэжыме. "Мільёны кветак" праўдзіва-каляровым рэжыме. (Большасць X-11-рэлізы падтрымку абодвух.) Зрабіць свой выбар. Вы павінны выйсці з X-11 праграмы і перазапусьціць яго, каб змяненні ўступілі ў сілу. Вы можаце праверыць свой ​​выбар, даючы xdpyinfo каманды ў X-Window.

    2. Вызначце візуальны клас для вашай сесіі. Пачатак IDL. Першая каманда, што вы даеце спасылкі Функцыя адлюстравання акна або прылады ўтыліта вызначае візуальнае адлюстраванне класа, якія будуць выкарыстоўвацца на працягу сеансу. Вы не можаце змяніць клас пасля першай каманды. Таму, як правіла, лепш стварыць для відавочнага канфігурацыі каманды, выкарыстоўваючы прыладу выкліку ў файл запуску, які выконваецца перад інтэрактыўны сеанс пачынаецца. Тры адпаведных формаў прылады размовы, з'яўляюцца наступныя:

      • Для 8-бітных псеўда-колер: прылады, захаваць = 2, pseudo_color = 8

      • Для 24-бітны колер: прылады, захаваць = 2, true_color = 24, раскласці = 1

      • Для 24-бітнай пераймання псеўда-колер: прылады, захаваць = 2, true_color = 24, раскласці = 0

      Захаваць = 2 запыту ключавое слова IDL для апрацоўкі "рэзервовае сховішча" для экрана (які змяшчае копіі частцы экрана, якія былі перазапісаны), што дазваляе пазбегнуць збояў, якія могуць паўстаць, калі замест акна сістэмы робіць рэзервовую копію.

      Гэтыя каманды павінны быць прадастаўлены да любога акна ствараецца падчас сесіі.

      У адсутнасць прылады каманды, па змаўчанні меркавалася, па-бітны манітор 24 з'яўляецца true_color = 24, раскласці = 1.

      Каб праверыць бягучы стан вашага графічнага прылады, тып дапамогу, / Dev. (Заўвага: пераймання псеўда-каляровым рэжыме сведчыць запіс "Графіка пікселяў: Камбінаваны" .)

      Хаця вы не можаце змяніць візуальны клас пасля яе першай рэалізацыі ў працягу гэтай сесіі, па-бітным рэжыме, 24 вы можаце пераключацца паміж прыладай, раскласці = 1 і прылады, раскласці = 0 як хацелася б.

    3. Замовіць кветкі на 8-бітных манітораў: З-бітны манітор 8, максімальную колькасць кветак, даступных для ўсіх прыкладанняў складае 256. Калі IDL выклікаецца, яна, як правіла, у стане атрымаць толькі частка з іх, скажам, 210, для яе выкарыстання з вашым мэнэджэрам вокнаў, таму што іншыя прыкладанні (Firefox, Acrobat і г.д.) будуць мець ужо зарэзервавана некалькі кветак. Лік будзе вар'іравацца ў залежнасці ад колькасці канкуруючых прыкладанняў. Стандарт перадачы малюнкаў і адлюстравання працэдуры, як tvscl і tvlct прыняць гэта пад увагу, выкарыстоўваючы меншае колькасць каляровых узроўняў, але прыстасоўваючы іх да поўным дынамічным дыяпазонам магчымых на ваш тэрмінал. Напрыклад, колер вектараў можа быць усяго 210 элементаў доўга, але гэта будзе вагацца ў значэнне індэкса ад 0 да 255. Лік кветак, даступных змяшчаецца ў сістэмнай зменнай! D.n_colors або могуць быць адлюстраваны з дапамогай, / Dev.

      "Колер перарывісты": Калі астатняй часткі 8-бітных тэрмінала міргае з або мяняе колер пры перамяшчэнні курсора ў акне IDL, то IDL выкарыстоўваецца "прыватных табліцу кветак", які будзе прымяняцца да вашага ўвесь экран, калі курсор актывуе яго. Магчыма, гэта азначае IDL спрабуе выкарыстаць больш кветак, чым было бясплатна ў агульную табліцу кветак. Для паляпшэння праблемы, паспрабуйце наступнае:
                     Выхад IDL
                     Перазагрузіце IDL
                     Як першыя дзве каманды, тыпу:
      	           прылады, захоўваюць = 2, pseudo_color = 8
                         акна, 0, Col = K
      
      ... Дзе да мінімальным лікам узроўняў колеру вы думаеце, будзе прымальна ў вашай дысплеяў.

      Колер мігцення не будзе адбывацца на манітор 24-бітны нават імітацыя рэжыме псеўда-колер.

    Пераўтварэнне малюнка для дысплея

      Самая цяжкая частка адлюстравання малюнкаў выбару дыяпазону малюнкаў значэння, якія трэба адлюстраваць, а затым зрабіць іх выдатнымі ад экрана.

      Масіў адпраўцы на ваш дысплей павінен быць 2-D масіў (псеўда-колер) ці 3-D масіў (праўдзівы колер). Апісанні ніжэй для ўнутранага ці пераймання псеўда-колеру на аснове 2-D выявы і звязаныя з выкарыстаннем табліцы кветак. Існуюць розныя ўтыліты для пераўтварэння зыходнага масіва (часта з якая плавае кропкай) ў неабходны фармат і аўтаматычна адлюстроўваючы яго з загадзя вызначанымі табліцамі колеру.

    1. Па-першае, вы павінны прыняць рашэнне аб памеры і форме адлюстравання. У залежнасці ад прымянення і памер (у пікселях) на вашым маніторы, вы можаце сціснуць зыходнае выява або выпіскі з яе подмассивов. Для таго, каб праверыць піксельных структура малюнка, вы можаце пашырыць малюнка так, што адзін арыгінальны кропак займае, скажам, 10x10 пікселяў вобласці на экране. Асноўныя утыліты для вымання або пашырэння выявы абмяркоўвацца ў рамках " інспекцыя дадзеных і маніпуляцыі " ніжэй.

    2. Далей, неабходна вызначыць дыяпазон зыходных значэнняў выявы, Imin ў IMAX, вы хочаце ўбачыць. Чалавечы вока не можа нармальна адрозніваць 256 узроўняў альбо шэрага або колеру скуры, і астранамічныя выявы часта ўтрымліваюць значна больш, чым 256:1 дыяпазоне інтэнсіўнасці. Толькі ў рэдкіх выпадках вы жадаеце паказаць увесь дыяпазон значэнняў прысутнічае ў малюнку. Звычайна існуе значнае фоне неба або зрушэння / темнового ток пастамента які павінен быць абрэзаны з. Часта, высокія значэння ў вобразах выкліканыя касмічнымі прамянямі або іншыя артэфакты і ляжаць значна вышэй навукова цікавыя значэння.

        Для вызначэння адпаведных мін / макс значэння, якія могуць зыходзіць метадам спроб і памылак, ітэрацыі малюнкам. Больш аб'ектыўныя метады ўключаюць выкарыстанне гістаграмы выявы значэнне, вызначэнне рэжыму фоне неба і яго стандартнае адхіленне, а таксама рашэнняў участкаў ўзору лустачкамі папярок малюнка. Або, вы можаце разлічваць на любога з некалькіх праграм у карыстацкіх бібліятэк.

    3. Далей, вы павінны прыняць рашэнне аб пераўтварэнні, або маштабаванне, паміж малюнкам каштоўнасцяў і адлюстравання значэнняў. Найбольш распаўсюджаным з'яўляецца лінейнай функцыі пераўтварэнні, у якім нулявой кропкі вызначаецца Imin і нахіл вызначаецца IMAX-Imin. Зыходны дыяпазон значэння выява дзеліцца на 256 роўных бункераў для адлюстравання. Кантраснасці на дысплеі павялічваецца з нахілам, якая зваротна прапарцыйная IMAX-Imin. Большасць малюнкаў дысплей працэдур (такіх, як tvscl) выкарыстаюць лінейнае пераўтварэнне.

        У залежнасці ад размеркавання цікавыя значэння выявы ў выбраны дыяпазон, нелінейныя пераўтварэнні могуць быць больш карыснымі. Напрыклад, для павелічэння кантрасту пры меншых значэннях выявы і паменшыць яго на больш высокія значэнні, можна выкарыстоўваць пераўтварэнні, такія як alog10 (F), F ^ 0,3, або ASINH (F). Сегментаваць лінейнай або крок-пераўтварэнняў таксама можа быць карысным. Незалежна ад адмысловых ператварыць вас прымяніць да выявы, вы можаце выкарыстоўваць стандартныя (лінейны) працэдур для адлюстравання ператворанага значэння.

        Акрамя таго, у псеўда-колер можна выкарыстоўваць лінейнае пераўтварэнне выявы значэння, але маніпуляваць табліцы кветак для дасягнення нелінейнай дыскрымінацыі ў малюнак. У некаторых сітуацыях гэта можа быць пераважней, але гэта, як правіла, складаней, чым проста змяненне матэматычныя пераўтварэнні.

    4. Нарэшце, неабходна выбраць табліцы кветак для адлюстравання і прымяніць яго. З'яўленне малюнка можа рэзка змяніцца ў залежнасці ад наладкі колеру табліцы. У псеўда-каляровым рэжыме, колер табліца захоўваецца асобна ад абсталявання і заўсёды гатовы быць ужытыя да выявы. Табліцы па змаўчанні колер лінейных шэрага працуе ад 0 да 255. IDL пастаўкі ў агульнай складанасці 41 наканаваныя табліцы колераў, а Існуюць розныя прылады для змены тых або стварэння новых.


    Паказаць Каманды Выява:

    Асноўныя IDL прамых графічных падпраграм для адкрыцця, адлюстравання і налады адлюстравання акна выявы вокны, што стварае новае акно і памеры яго; WSET, які вызначае "бягучае" акно і wshow, які паказвае (або хавае) бягучага акна. wdelete выдаляе акно. Гэтыя працэдуры выкарыстоўваюцца ў спалучэнні з двума асноўнымі дысплей выявы працэдур тэлебачанне і tvscl.

      Напрыклад, каб адкрыць акно 512x512 з нумарам № 9 у ніжнім правым куце тэрмінала:

                
                    window,9,xpos=750,ypos=50,xsize=512,ysize=512,$        
                       title='IDL IMAGE WINDOW'
                    wset,9
                    wshow
      

      (Усе аргументы ў акне руціннай з'яўляюцца неабавязковымі.)

      Асноўных тэле-і tvscl каманды не рэгуляваць памер бягучага акна на памер паказу масіва.

    Працэдуры Чэн, cdel, CTV, ctvscl, апісаныя ніжэй, мус версіі ўласнай аконнай IDL / дысплей працэдур. Яны прапануюць важныя асаблівасці выгоды, якія робяць працу з выявамі хутчэй (напрыклад, маштабаванне ад памераў вокны, каб памер выявы, спалучэння мноства акно і паказаць функцый, адвольных мін / макс значэння для адлюстравання і г.д.). Гэтыя працэдуры выкарыстоўваюцца спецыяльныя агульных блокаў, і для ініцыялізацыі тых, каго вы павінны запусціць Мус файл запуску (гл. Дадатак C). апісання ніжэй для гэтага мноства заменнікаў для ўласных падпраграм.

        Заўвага: CTV і ctvscl прызначаныя для 8-бітных псеўда-колер або 24-бітны пераймання псеўда-каляровымі дысплея толькі. Яны не падтрымліваюць поўнакаляровыя дысплеі. Калі вы хочаце, каб адлюстраваць ўнутрана поўнакаляровыя малюнка, вы павінны выкарыстоўваць тэлебачанне і tvscl.

    • Чэн, N (па аналогіі з уласнай WSET): акно выбару N для адлюстравання. Гэта становіцца "актыўным" вокны, то ёсць даступныя для ўводу / вываду Курсор будзе працаваць толькі на актыўнае акно. Стварае і адлюстроўвае акно, калі яно раней не было (г.зн. заменнікаў вокны і wshow функцый). N можа быць паміж 0 і 31. [Хоць дысплеі будзе аўтаматычна адкрыты любым адлюстравання працэдуры упершыню яна называецца, вы павінны выкарыстоўваць Чэн працэдуру спачатку, калі Вы хочаце, каб скарыстацца функцыянальнасцю мус. Гэта таксама добрая ідэя трымаць змове і вокны дысплей выявы асобна.]

    • cdel, N (па аналогіі з wdelete): Выключыць п акна. Вы таксама можаце выйсці або згортвання вокны падчас сесіі IDL з дапамогай рэгулярнай функцыі аконнага мэнэджара.

    • CTV, выявы (па аналогіі з ТБ): дысплей малюнак у бягучае акно (або вокны 0, калі іншае акно было адкрыта) без маштабавання шляхам перадачы выявы піксель значэння непасрэдна ў акне буфера. Выява буфер будзе змяшчаць байт (малюнак) --- г.зн. значэння ад 0 да 255 --- толькі і будзе "абгарнуць" для значэнняў 256 і вышэй. Толькі! D.n_colors розных значэнняў можа быць адлюстраваная (вызначаецца вашым маніторам). Памер акна рэгулюецца ў адпаведнасці з арыгінальнага малюнка (у піксэлях). Сярод іншага, CTV можа быць карысная для пошуку цікавых асаблівасцяў нізкі кантраст выявы з вялікім дынамічным дыяпазонам.

    • ctvscl, выявы (па аналогіі з tvscl): як для CTV выключэннем таго, што буфер значэння маштабуецца лінейна паміж небам значэнне (набор для адлюстравання значэнне 0) і высокай кропцы вызначаецца дысперсіі патокаў у малюнак. Існуе не абгортваць. Максімальнае колькасць узроўняў колеру адлюстроўваюцца на экране CTV!; D.n_colors. Ctvscl, як правіла, значна больш карыснай, чым яна мае шэраг дадатковых магчымасцяў вы можаце вывучыць.

        Калі вам не падабаюцца значэнні па змаўчанні, вы можаце паказаць максімальнае і мінімальнае значэння дадзеных з дапамогай дадатковага макс ключавыя словы і мін. Напрыклад,

        ctvscl, M87, мін = 30, макс = 8000

        Лёгка ітэрацыі дысплеяў спасылаючыся на камандным радку і рэдагавання мін, макс значэння.

          На гэтым прыкладзе вы можаце ўбачыць перавагі маштабавання выявы ў зручны значэння ў дыяпазоне ад 0 да некалькіх тысяч, а не зыходзячы з фактычных значэнняў патоку. Для пераліку, выкарыстоўваць такія каманды, як M87 = 1.0e15 * M87. На самай справе, калі якасць адлюстравання ваша адзіная клопат, няма ніякага сэнсу ў захаванні фактычныя значэння патоку ў рабочай набор малюнкаў. Проста памятайце, не выкарыстоўваць выява маштабуецца для вылічэнняў, дзе адзінкі матэрыі.

        Звярніце ўвагу: ўнутраны IDL руціннай tvscl не прымае мін / макс ключавыя словы і заўсёды шалі ад 0 да максімальнага значэння дадзеных у малюнак. Калі гэта не падыходзіць, вы павінны самастойна кліп малюнка да ўводу ў tvscl. З-за гэтага, дысплей наступныя каманды ctvscl, малюнак будзе адрознівацца ад tvscl, вобраз.

    Табліца кветак Каманды

      Каманду для змены ("нагрузка") захоўваецца табліца кветак з'яўляецца tvlct, R, G, B, дзе павінен быць вызначаны загадзя трох вектараў.

        Для захопу бягучай табліцы колер вектараў (напрыклад, для праверкі іх стану або ў якасці асновы для іх перагляду), выкарыстанне tvlct, RR, GG, BB, / атрымаць.

      Набор з 41 наканаваных табліц колеру пастаўляецца з IDL; яны могуць быць загружаны з loadct, N каманду, дзе N ад 0 да 40. Змаўчанні шэрага загружаецца каманды loadct, 0.

        Вы можаце паспрабаваць і нагрузкі пастаўляюцца табліц у GUI выкарыстаннем уласных руціннай xloadct.

        Вы можаце даследаваць адпаведнасць паміж колерам і індэкс, выкарыстоўваючы ў cindex руціннай Дэвід Фэннинг.

      На большасці 8-бітных манітораў, на дысплеі будзе аўтаматычна абнаўляцца, калі табліца кветак змяняецца (у loadct, N каманды, напрыклад). Аднак, на 24-бітных манітораў неабходна перазагрузіць малюнак для таго, каб зьмены ў табліцы колераў ўступілі ў сілу (нават імітацыя-каляровым рэжыме псеўда).

      Разнастайнасць інструментаў для наладкі пастаўляецца табліцы колераў або стварэння новых. Да іх ставяцца xloadct, xpalette, стрейч, і Фаннинг xcolors Давіда.

      Хуткі спосаб зваротнай стандартны белы-на-чорны колер табліцы ад 0 да чорнага колеру на белым сэнсе пераважней астраномамі, якія больш адчувальныя да слабым асаблівасці, складаецца ў наступным. Гэта было б карысна код працэдуры ці сцэнар.

           
                      loadct,0
                      tvlct,rr,gg,bb,/get
                      rr=reverse(rr)
                      tvlct,rr,rr,rr    

    Іншыя карысныя загады дысплея

    Аб'ект графічнага дысплея вобраз праграмнага забеспячэння

      Апісанні вышэй, для асноўных IDL "прамой графіка" каманды дысплей, але план меркаванні, што ляжаць ў сістэмы адлюстравання выявы. IDL таксама прапануе апаратна-незалежныя "аб'ект графіка" ў рэжым праграмавання, які з'яўляецца асновай для прыняцця больш складаных GUI дысплеяў. Вы павінны некаторы досвед працы з IDL, перш чым зрабіць свой уласны аб'ектна-арыентаванага праграмавання. Аднак, лік прыкладанняў з графічным інтэрфейсам з'яўляюцца даступнымі: напрыклад, які пастаўляецца "Workbench" Навакольнае асяроддзе і адлюстравання інструмент iImage; Гамла ў imdisp Ліам і Фаннинг tvimage Давіда. Вы павінны вывучыць гэтыя і прадумаць свае моцныя і слабыя бакі. Большасць такіх прылад не арыентаваны на астранамічных малюнкаў. Важным выключэннем, ATV, апісаны ў наступным раздзеле.

    Спасылкі на здымку

      У рэшце рэшт, вы можаце прачытаць больш, чым тут пра тэхнічныя сродкі візуальнага адлюстравання, хоць я рэкамендую, каб новыя карыстальнікі проста акунуцца наперад і поспеху вопыт і няўдачы на ​​сваіх першых. Добрае ўвядзенне ў каляровых дысплеяў у IDL з'яўляецца Дэвід Фаннинг "Праца з колерам" падрабязьней. Таксама гл. яго "Колер Саветы" старонкі. Асноўныя ўвядзенне ITTVIS з'яўляецца раздзел 5 "графічны дысплей Essentials" у Выкарыстаньне IDL кіраўніцтва. Больш падрабязную інфармацыю аб здымку і выкарыстанне колеру можа быць знойдзены ў сістэме он-лайн дапамогу ў раздзеле "Падручнікі IDL / IDL Паказаць канцэпцыі"; прыклады асноўным звязаныя поўнакаляровага выявы фарматаў (напрыклад, JPEG, TIFF, PNG). V7.0 Апрацоўка малюнкаў Кіраўніцтва ахоплівае метады пераўтварэння малюнкаў цікавасць больш у навуках аб Зямлі і медыцыны, чым астраномія. Для агульнага фону на спецыяльна астранамічных апрацоўкі малюнкаў, гл. Т. А. Рэктар і інш, "апрацоўкі выяваў для стварэння прэзентацыйнага якасці астранамічных выяваў", AJ, 133, 598, 2007;. Люптон і Р. і інш, "Падрыхтоўка. Чырвона-зялёны-сіні Выявы з ПЗС даных ", PASP, 116, 133, 2004.



    6. Інспекцыя дадзеных і маніпулявання

    [Да Змест]

    Інструменты, апісаныя тут, арыентаваных на аналіз 2-D малюнка, але большасць з іх карысныя для любога тыпу масіва дадзеных.

    Array Маніпуляцыя:

    • Вы можаце працаваць на імідж масіваў, выкарыстоўваючы любы руціны IDL, якая прымае 2-D ўваходы, уключаючы поўны спектр стандартных арыфметычных і іншых матэматычных функцый. Большасць такіх падпраграмы масіў-арыентаваных і не патрабуюць ад вас турбавацца аб Зрабі петлі або элемента структуры ў масівах.

    • Большасць IDL матэматычных функцый, весці сябе разумна і даць вам вынікі, якія вы інтуітыўна чакаеце. Напрыклад, калі А і У масіваў з аднолькавымі памерамі, то C = A * B вырабляе масіў з такімі ж памерамі, у якім кожны элемент з'яўляецца твор адпаведных элементаў у і б. (Ёсць асобныя аператары -, # # --- для іншых тыпаў матрычнага множання. #)

    • Многія віды апрацоўкі малюнкаў могуць быць выкананы з адной лініі каманды ў IDL. Напрыклад:

        Edge выяўлення: ctvscl, зруху (, 1,1)

        Нярэзкім маска: ctvscl,-гладкая (А, Да) паказвае рознасць паміж зыходным малюнкам і вагон-згладжаны версіі з згладжвання даўжыні K пікселяў. Гэта хутка, але згладжаны малюнкаў ўключае ў сябе наступстваў рэзкіх структур (напрыклад, зорак). Лепш, хоць і павольней, каб выканаць, з'яўляецца ctvscl,-медыяну (А, Да).

    • Змены, вядома, зроблена, каб часовыя наборы дадзеных, якія захоўваюцца ў аператыўнай памяці. Арыгінальныя файлы, з якіх дадзеныя былі перададзеныя ў сеанс IDL не ўплывае (калі Вы тэлефануеце спецыяльных працэдур для маніпулявання файламі). Аднак гэта таксама азначае, што сталае версіі старонка выявы не захоўваюцца ў канцы сеансу IDL, калі вы наўмысна захаваць набор дадзеных або запісу новых файлаў вываду (гл. наступны раздзел).

    • Калі вы жадаеце захаваць прымянімасць выява загалоўка маніпуляваць малюнкам, то вы павінны абнавіць загаловак пасля кожнага змены. Вы можаце дадаваць каментары да існуючых загалоўкам, выкарыстоўваючы sxaddhist руціны. Змены, якія не закранаюць ключавыя словы ўключаны ў загаловак (напрыклад, адніманне небе, сячэнне пярэднім плане зоркі) можа быць проста дакументальна гэты шлях. Аднак, змены ў маштабах патоку або, асабліва, фармат малюнка (пасродкам вымання, кручэнне, rebinning і г.д.) звычайна патрабуюць, каб словы быць зменены для таго, каб пазней працэдур будзе функцыянаваць належным чынам. Спецыяльны набор працэдур AstUseLib, у тым ліку hextract, hrot, hastrom, hrebin і г.д. будзе рабіць стандартныя маніпуляцыі з выявамі і малюнкі загалоўкаў адначасова. Астрометрические інфармацыі, напрыклад, будуць захаваныя.

    Інспекцыя дадзеных:

    • print,max(a); print,min(a); print,minmax(a); print,mean(a); print,variance(a); print,median(a); print,moment(a): print various statistical properties of image array. (moment prints first four moments.)

    • Для ацэнкі ўзроўню фону, выкарыстанне неба.

        Неба работ шляхам ацэнкі рэжым выявы значэння. Таму ён мяркуе Ёсць яшчэ вельмі шмат пікселяў паблізу ўзроўню фоне неба, чым Ёсць крыніца пікселяў. Гэта не будзе добра працаваць ў выпадку вельмі нізкіх фон неба, дзе неба гістаграма не плыўна, бесперапынна.

    • Каб атрымаць і вывучыць подмассива, вы можаце выкарыстоўваць стандартны індэкс IDL абазначэння. Напрыклад,

             частка = выява [100:200,150:250] 

        экстракты 101x101 подмассива ад малюнка. Вы можаце інтэрактыўна вызначыць краю сферу інтарэсаў выкарыстаннем curval або курсора.

    • Каб павялічыць (або сціск) масіва: = rebin (выява, N, M). Новы N і M павінны быць цэлымі кратнымі бягучыя памеры малюнка. Сціск часта неабходна з малюнкамі, якія занадта вялікія, каб змясціцца на экране манітора (як правіла, абмяжоўваецца прыкладна 1000x900). Пакеты, як ATV і SAOimage гэтага сціску аўтаматычна.

        Для павелічэння, дадаць ключавое слова / ўзор, калі вы хочаце захаваць першапачатковую структуру пікселяў. Гэта заменнікі бліжэйшага суседа выбаркі для билинейной інтэрпаляцыі які па змаўчанні.

        Для regrid выявы, не-кратныя арыгінальным фармаце, выкарыстоўвайце frebin або congrid Калі вы маюць намер зрабіць паток меры з сціснуты або пашыраны выявы, пераканайцеся, што маштаб выніку так, што паток захоўваецца ў гэтай галіне арыгінальны малюнка. Напрыклад, калі вы выкарыстоўваеце rebin сціснуць MxM малюнак у выява NxN выкарыстаннем ўзору = 0, кожны піксель ў выніку малюнак будзе ўтрымліваць сярэднім адпаведных пікселяў у арыгінале, так што поўны паток фактар ​​K 2 менш, чым у арыгінале, дзе K = M / N.

    • Адзнака значэння ў зададзеным дыяпазоне: выкарыстаць дзе функцыі. Напрыклад: каб вылучыць пікселы змяшчаюць -666 сьцяг:

       
      
             TX = малюнак, стварыць часовую копію (калі вы не 
                               ; Розум разбэшчвае зыходнага масіва)
             Finder = дзе (TX экв -666); стварыць пералік адпаведных пікселяў
             TX [пошуку] = 10000; вылучыце іх (мы лічым нармальным значэнняў TX
                               ; З'яўляюцца<< 10000)
             ctvscl,tx,min=0,max=9000  ; flagged pixels will now stand out
         

    • Для пераўтварэнні каардынатаў паміж дзесятковымі і sexigesimal формы, выкарыстоўвайце шэсцьдзесят [дзесятковых лікаў на sexigesimal], дзесяць [sexigesimal ў дзесятковую], або radec [РА і снежні з градусаў у sexigesimal]. Напрыклад:

        radegrees = 15,0 * дзесяці (22,30,17.5)

    Спецыяльны Адлюстроўвае Участкі

    • Для пабудовы ўвесь слупок: сюжэт, малюнак [N *], для пабудовы значэння паміж радкоў R1 і R2 ў калонцы: сюжэт, малюнак [N, r1: r2].

    • Для пабудовы радкі: сюжэт,] лад [*, Н.

    • Для інтэрактыўнага выбару і ўчастак радкі або слупкі з курсорам: паспрабуйце профіляў.

    • Для пабудовы сярэднім 5 суседнія слупкі: сюжэт, сярэднія (выява [c0: C4, *], 0). За 5 суседніх радках: сюжэт, сярэднія (выява [*, r0: R4], 1].

    • Каб атрымаць малюнак зрэзу з адвольнай пачатковай і канчатковай кропкі (выбраныя курсора з актыўнага вокны і адзначаныя "гумкі"): лустачку = профілю (малюнак). Вы можаце ўчастка здабычы.

    • curval, вобраз: счытваць малюнак значэнняў у кожным пікселі у інтэрактыўным рэжыме з курсорам у бягучым акне. Перавесці ў патокі, RA, снежань з выкарыстаннем інфармацыі з малюнка загалоўка, выкарыстоўвайце curval, вобраз дыска, выява, вобраз дыска, дзе гэта звязана зменнай загалоўка. Уласных руціннай IDL для счытвання выявы значэнняў rdpix.

    • tvlist, малюнкаў: адбіткі матрыцы выявы значэнняў у наваколлі курсора ў бягучым акне. Параметры запісы ў файл. Imlist аналагічна, але каардынаты ўводзяцца ў (не выкарыстоўваць акно / курсор).

    • зум: адлюстроўвае павялічаны сегмент выявы ў бягучым акне па цэнтры курсора. Блізкі змены кнопкі мышы маштаб. Правая кнопка выхаду. Работы па капіяванні ў цяперашні час акне, якое адкрылася буфера, а не зыходныя значэння малюнка, і бягучая версія працуе толькі для псеўда-каляровымі дысплея. Павялічаны акно знікае пры выхадзе. Ключавое слова / бесперапынная можа быць выкарыстана для наступнай руху курсора.

    • Згладжванне малюнкаў часта бывае карысна ў барацьбе з нізкім кантрастам або зашумленності дадзеных. Розныя опцыі даступныя ў IDL, найбольш шырока выкарыстоўваюцца гладкія і сярэдні, якія даюць вагон сярэдняй і сярэдняй велічыні, адпаведна.

        Для адлюстравання выявы згладжваюцца 5x5 вагон пікселяў ў адной радку: ctvscl, гладкая (малюнкі, 5).

    • паверхні, малюнак: вырабляе паверхні ўчастка (прагноз 3-D) малюнка. Глядзіце IDL кіраўніцтва карыстальніка для многіх удасканаленняў, якія з'явіліся ў змове паверхні (напрыклад, shade_surface).

    • plothist, выява: ацэнка гістаграмы значэнняў пікселяў ў малюнку і сюжэт вынік. Змаўчанні гістаграма ідзе ад мінімальнага да максімальнага масіва з бен памер 1,0 адзінкі. Вы павінны абмежаваць xrange, калі масіў змяшчае невялікая колькасць рэальных ці памылковых значэнняў, якія з'яўляюцца вельмі вялікімі ці вельмі мала. Па змаўчанні мяркуецца, што масіў змяшчае цэлыя значэння. Дадатковыя параметры налады абразанне і биннинга. Гістаграма функцыя выклікае моцныя эмоцыі, каб больш глыбока, гл. "Гістаграма: Breathless жах і агіда", падручнік па JD Сміт.

    • контуры, выявы: участак контуру дыяграмы. Каб задаць контур узроўнях, выкарыстанне ўзроўню ключавога слова. Напрыклад, на ўчастку 10 узроўняў контуру пры значэннях 25, 50, 100, 200...:

         
                           NUP = findgen (10)
                           clev = 25.* 2 ^ NUP
                           контуры, выявы, узроўні = clev 

        Для прыкладу размяшчэння сюжэтнай лініі контуру на дысплей выявы, гл. загаловак у imdisp руціннай Liam Гамла.

    Дысплэй малюнкаў ATV & Inspection Tool

    • ATV з'яўляецца IDL графічны інтэрфейс праграмы, напісанай Ааронам Барт які спалучае ў сабе магчымасці адлюстравання малюнкаў з многімі з малюнкаў інспекцыі інструментаў, апісаных вышэй. Ён прызначаны для астранамічных малюнкаў, і яго знешні выгляд і паводзіны падобна на SAOimage (напрыклад, тут).

    • ATV з'яўляецца хуткі і просты спосаб праверкі выявы (яркасць, X або Y профіляў, марфалогія і г.д.), робіць грубы аналіз як атрыманне FWHM і дыяфрагмы фотамэтрыі крыніц, а таксама здабывання РА, DEC пазіцыйнай інфармацыі з загалоўкаў. Ён арыентаваны на аптычны / ВК-малюнкаў, але будзе працаваць на любым выглядзе 2-D дадзеных малюнкаў. ATV з'яўляецца лепшым месцам для пачатку, калі вы хочаце вывучыць на аснове графічнага інтэрфейсу IDL дысплеі для астраноміі. Код агульнадаступнай, і вы можаце лёгка наладзіць паводзіны па змаўчанні, калі вы таго пажадаеце.

    • У UVA, ATV праграмнае забеспячэнне захоўваецца ў / Astro / IDL / ATV і ўключана па змаўчанні на вашым шляху IDL. Каб запусціць ATV, тыпу ATV.

      • Для адлюстравання існуючых малюнкаў IDL масіва ў ATV, тыпу ATV, вобраз

      • Для прагляду малюнкаў непасрэдна з падыходу файл на дыску, тыпу ATV, [filename.fits] або выкарыстоўваць "Файл" ў спадальнай меню.

    • ATV дазваляе маштабаванне і роўмінг вакол малюнка. (Ён аўтаматычна сціскаецца або выпіскі з малюнка занадта вялікія для экрана.) Вы можаце наладзіць маштабаванне выявы, напрыклад, з "Мін / Макс" скрынкі запіс і абраць паміж лінейнай, увайдзіце або ASINH маштабавання. Вы можаце інтэрактыўна рэгуляваць zeropoint і кантраст ў каляровай табліцы (набор MouseMode на "Колер" і перацягнуць курсор на малюнак, утрымліваючы кнопку левай мышы).

    • Выкарыстанне аднаго націску клавішы, вы можаце адлюстраваць радкі ўчастка (г); калонцы ўчастка (C), паверхня ўчастка (S); контур ўчастка (T), гістаграмы (H), або мясцовая статыстыка выява (я). Вы таксама можаце хутка зрабіць здабычу спектр ад спектральнага выявы (х).

    • Р каманда робіць адтуліну фотамэтрыі (DAOPHOT-стылі, з адніманне фону) на выбраныя кампактнага крыніцы, з магчымасцю адлюстравання радыяльнага профілю крыніцы. Фотамэтрыя, у тым ліку FWHM, можа быць захавана ў файл.

    • Выява адлюстроўваецца ў ATV можна лёгка захоўваць у PostScript, падыходзіць, JPEG, TIFF, PNG і фарматы файлаў. Вы можаце адзначыць дысплей або дадаць overplots перад высновай.

    • ATV супраць SAOimage (ds9): па змаўчанні ў ATV вытворчасці лепш пачатковымі праявамі УФ / аптычнага / ВК-малюнкаў, чым у SAOimage, і адлюстроўвае лягчэй прыстасавацца. Інструменты ATV агляд не выявіў у SAOimage. Аднак, SAOimage падтрымлівае азначэнне "рэгіёны" для здабычы і іншымі прыкладаннямі і больш лёгкая для міргаць два ці больш малюнкаў і ў прыняцці хуткіх кампазітны RGB ад 3-каляровых малюнкаў.

    • ATV спасылкі (UCI)

    Стварэнне сінтэтычных выяваў для тэсціравання праграмнага забеспячэння:

      Вы можаце імгненна ствараць тэставыя выявы з камандамі, як выпрабаванне = findgen (512 512).

      Эксперымент з дысплеем / курсор працэдур на тэставых малюнкаў, якія змяшчаюць "гарачых пікселяў", напрыклад, тэст = fltarr (512512) 1000. І тэст [150250] = 20000., Крокі, градыент, і так далей.

      Для стварэння 16-ўзроўню "тэставы ўзор" ступеністага, раўнамернае 100x100 subimages Значэнне піксела працуе ад 0 да 240:

        
        patt=bytarr(400,400)
        q=bytarr(100,100)+16
        for i=0,3 do for j=0,3 do patt[i*100,j*100]=(i+4*j)*q
        ctv,patt
        
      кропкавых крыніц Сінтэтычныя могуць быць створаны хутка, паставіўшы "гарачых пікселяў", дзе жаданае, а затым convol-Винг вынік з функцыяй рассеяння кропкі.

      IDL на генератары выпадковых лікаў можа быць вельмі карысна ў такіх дадатках. Напрыклад, каб дадаць гаўсаўскага шумам фатонаў на масіў, які змяшчае прадказаў разлічвае фатона:

         
        B = памер (масіў)
        шум = SQRT (масіў) * randomn (насенне, B [1], B [2])
        noisyarray = масіў + шум
         
        (Тут, на піксель значэння ў ўваходным масіве мяркуюцца быць больш, чым ~ 30 пунктах. У адваротным выпадку выкарыстоўвайце Пуасона ключавое слова для імітацыі фатоннага шуму.)



    7. Дадзеных і малюнкаў ЗАХОЎВАННЯ

    [Да Змест]

    [Уверх да дадзеных і пошуку малюнкаў]

    ASCII-файлаў

      Лепшы спосаб захаваць невялікіх набораў дадзеных (напрыклад, фотамэтрыі выхад) у выглядзе файлаў ASCII, так як яны лёгка рэдагаваць і транспарціроўцы. Прыклад сцэнарыя для запісу файла, які змяшчае імёны мэтаў, каардынаты, і яркасць можа выглядаць наступным чынам:

       
             get_lun, адзінка
             openw, блок "OutputFile"
             выгляд = '(A15, 3x, f9.5, 3x, f9.5, 3x, F6.2) "
             для я = 0, numtarg-1 робяць Е, адзінка, фармат = выгляд, $
                     targid [я], radeg [я], decdeg [я], vmag [я]
             блізка, блок
        

      Заўвага: вы можаце праверыць выхад фарматаванне робіць пробную друк на тэрмінал, выкарыстоўваючы заявы як:

      
             form='(a15,3x,f9.5,3x,f9.5,3x,f6.2)'
             for i=0,numtarg-1 do print,format=form,$
                     targid[i],radeg[i],decdeg[i],vmag[i]
          

      forprint гэта зручная ўтыліта AstUseLib для друку некалькіх вектараў альбо экран або файл ASCII, фармат ключавое слова не павінна быць паказана.

    Двайковых файлаў: гл апісанне бінарных файлаў вышэй. Асноўныя руціннай IDL для запісу неформатированного бінарных файлаў writeu. Для стварэння файлаў, якія з'яўляюцца партатыўнымі паміж аперацыйнымі сістэмамі кампутар, выкарыстоўвайце дадатковае ключавое слова XDR з адкрытай працэдурай.

    FITS files: To write a FITS file from IDL variables, use fits_write.

      fits_write,[filename],[image variable],[header variable]: Стварыць малюнка на дыск у фармаце Падыход. Атрыманы файл будзе мець імя [імя файла]. Падыходзіць.

      Калі малюнка былі зменены, і вы не выкарыстоўвалі AstUseLib загалоўка адсочвання такіх каманд, як hextract, hrot, hastrom, hrebin, і гэтак далей, то вы павінны стварыць новы загаловак (выкарыстанне mkhdr) або абнавіць існуючы правільна матч захоўваюцца выявы. fits_write будзе дадаткова вырабіць просты загаловак, або вы можаце выкарыстоўваць SX каманды *, такія як sxaddhist або sxaddpar гэта зрабіць. Асабліва важна, каб пераканацца, што параметры BITPIX, NAXIS *, і DataType правільна ўведзеныя. Fits_write піша ў бягучым каталогу.

    SDAS або Ирафского файлаў: Выкарыстоўвайце stwrt і irafwrt, адпаведна. Гэтыя (не рэкамендуецца) працэдуры кожны вырабляюць два выходных файлаў (*. HHH і *. HHD для SDAS; *. IMH і *. пікселяў для Ирафского).

    Іншыя фарматы выяваў

      Выхад у іншых папулярных, але канкрэтна не астранамічных, графічных фарматаў файлаў падтрымліваецца IDL. Глядзіце write_gif, write_jpeg, write_png, write_tiff і г.д. Альтэрнатыва write_image, уласнай працэдуры IDL, што таксама піша выходныя файлы ў такіх фарматах. IDL таксама падтрымлівае запіс MPEG анімацыі.

      Глядзіце апісанне вышэй аб тым, як выкарыстоўваць tvrd скапіяваць змесціва адлюстроўваецца выява акна зменнай IDL ў рамках падрыхтоўкі да запісу ў файл.

      GIF фармат добры спосаб для захоўвання лініі графіка або апрацаваных малюнкаў (у 2-D фармаце) з адмысловымі табліцамі колеру убудаваныя. JPEG, у якім захоўваюцца выявы ў 3-D фармаце, з'яўляецца натуральным сродкам для захавання поўнакаляровыя малюнка, хоць алгарытм сціску выкарыстоўваецца для памяншэння памеру файла можа паставіць пад пагрозу якасць (гэта можа быць скарэкціравана). TIFF файлы захоўваць выявы ў 3-D фармаце без страт у форме, яны выкарыстоўваюцца для публікацыі якасць малюнка. GIF і JPEG з'яўляюцца найбольш шырока выкарыстоўваюцца па змаўчанні фарматаў для Інтэрнэт-браўзэраў. На жаль, ні адзін з гэтых, ні іншых папулярных камерцыйных фарматаў, забяспечваюць спосаб захаваць інфармацыю загалоўка.

    Імгненнае захоўвання дадзеных сесіі

      Уласных IDL захаваць каманду выратуе зменных і праграм з бягучай сесіі ў спецыяльна структураваных бінарных файлаў. Увесь гэты матэрыял можа быць адноўлены ў позні IDL сесіі з адной аднаўлення каманды.

      Вы павінны выдаліць усе залішнія ці інакш нецікава зменных (асабліва вялікіх масіваў) перад выклікам захаваць. Агляд захаваць ключавыя словы перад выкарыстаннем. Аб сістэме LINUX, выхадны файл будзе ў універсальны фармат XDR, якія могуць быць перанесеныя, не-Linux кампутараў.

      захавання могуць быць вельмі карысныя для захоўвання прамежкавых вынікаў, але не рэкамендуецца для пастаяннага захоўвання. Чаму? З аднаго боку, гэта занадта лёгка забыцца, што ўсё зменныя азначаюць, калі вы выдаткуеце час, каб напісаць падыходы або ASCII файлы, вы, хутчэй за ўсё, дакумент працы. З іншага боку, захаваць заклікае грэючыся назапашвальнік з рэзервовымі копіямі масівы, якія могуць быць нязначна змененыя ад іх зыходных значэнняў. Гэта больш эфектыўна, каб стварыць скрыпт, які робіць параўнальна простыя змены да выявы ў рамках падрыхтоўкі да далейшай апрацоўкі, а не для захоўвання прамежкавых версій. Нарэшце, аднаўленне захавання файлаў залежыць ад наяўнасці IDL --- не гарантуецца пры перамяшчэнні ў іншае месца. Стандартны IDL падыходы або ASCII файлаў пісьмовай працэдуры з'яўляюцца больш пераважнымі для пастаянных дадзеных.

      Ўмоўчання імя выходнага файла idl.dat, і гэта імя файла будзе перазапісаны на наступны захаваць. Лепшы змяняць на нешта інфарматыўна, як ngc1068.sav.



    8. IMAGE Фотамэтрыя

    [Да Змест]

    • Родныя IDL паддаецца без празмернасцяў прастакутнай фотамэтрыі адтуліну, праз простыя каманды, такія як сярэдняе = агульнае (масіў) / n_elements (масіў), дзе масіў частка вялікіх малюнкаў (вызначаецца, напрыклад, з дапамогай простага абазначэння індэкс: масіў = bigarray [x1: x2, y1: y2]). Удакладненыя версіі гэтай простай падыход можа быць знойдзены ў сярэднія.

    • Кропкавай крыніцы Фотамэтрыя:

        AstUseLib змяшчае IDL версія DAOPHOT Год выпуску 1987 FORTRAN, апісаныя ў http://idlastro.gsfc.nasa.gov/contents.html # C2. Гэта выконвае фотамэтрыі дыяфрагмы і ФСФ-ўстаноўкі фотамэтрыі на кропкавых крыніц. Гэта функцыянальна вельмі падобная на DAOPHOT-87, але прапануе дадаць ўніверсальнасць IDL інтэрактыўнай асяроддзі. Асноўныя працэдуры знайсці і апертуры асабліва карысныя. Код IDL крыніца даступны.

        Гэтыя працэдуры не ўключаюць у сябе паляпшэнне асаблівасці DAOPHOT 1991 або больш позніх версій. Для ФСФ-ўстаноўкі деконволюции змешаных малюнкаў, вы можаце паспрабаваць пакет IDL Starfinder або выкарыстоўваць больш сучасныя аўтаномныя DAOPHOT або DOPHOT рэлізы. Асноўныя працэдуры IDL застаюцца вельмі карыснымі ў папярэдняй ацэнцы кадраў дадзеных, да напуском механічных шкурников, і пры аналізе вынікаў. (Выхадныя файлы стандартных праграм фотамэтрыі могуць быць лёгка прачытаныя назад у IDL.) IDL з'яўляецца таксама выдатным спосабам для стварэння сінтэтычных набораў дадзеных з вядомымі ўласцівасцямі, на якім праверыць аперацыі фотамэтрыі пакет.

    • Павярхоўнай фотамэтрыі: колькасць асноўных працэдуры, такія як dist_circle і dist_ellipse даступныя для падтрымкі павярхоўнай фотамэтрыі, але Ёсць няма "афіцыйных" AstUseLib фотамэтрыі праграм паверхні. Некалькі асобных карыстальнікаў, у тым ліку RWO, маюць свае ўласныя працэдуры якія іншыя могуць выкарыстоўваць на "на свой страх і рызыку" аснове.

    • Прагляду малюнкаў ATV змяшчае інтэрактыўныя кругавыя ўтыліта фотамэтрыі дыяфрагмы, атрыманых ад DAOPHOT, што вельмі карысна для вывучэння патокаў, FWHM, і фоны асобных кампактных крыніц. ATV складае дадаткова адлюстроўвае профіль крыніца.

    • Шэраг іншых напісаных карыстальнікам пакетаў фотамэтрыі, у асноўным для кропкавых крыніц, якія даступныя праз сайт AstUseLib.



    9. Доступ да базы дадзеных

    [Да Змест]

    Дзякуючы намаганням Дон Линдлер, Уэйн Ландсман і іншыя ў GSFC, IDL астраноміі карыстальніка бібліятэка прапануе зручны і магутны доступ да он-лайн баз дадзеных. Інфармацыя з гэтых могуць быць непасрэдна ўключаны ў ваш IDL сесій. Напрыклад, звычайны imdbase знакі месцах крыніц у асобных каталогах на бягучым дысплеі выява (калі ў вас ёсць дакладныя Астраметрыя для вашага малюнка.)

    Асобныя каманды ў базе дадзеных пакетаў апісаны на Бібліятэку Галоўная IDL Карыстальнік астраноміі. Больш падрабязная інфармацыя прыведзеная ў 2001 апісанне аула-базы дадзеных інфармацыйна-2001.pdf.

    Базы дадзеных павінны былі пакласці ў спецыяльны IDL-чытаная фармаце, перш чым вы можаце атрымаць да іх доступ (каманды для гэтага з'яўляюцца часткай пакета). Выбар базы дадзеных IDL, якія прадстаўляюць агульны інтарэс з'яўляецца агульнадаступнай ад астраноміі карыстальнікаў бібліятэкі IDL. У UVA, каля 95 такіх баз даных, узважаных па адносінах да навукі УФ, маюцца. Яны ў цяперашні час звязаны з: / Astro / IDL / zdbase.

    Для выкарыстання базы дадзеных, вы павінны мець пэўны зменнай асяроддзі $ ZDBASE каб яна паказвала на каталог, які змяшчае іх.

    Каб убачыць, якія базы дадзеных даступныя, выкарыстоўвайце каманду dbhelp, 1. Каб убачыць, якая інфармацыя змяшчаецца ў базе дадзеных і адлюстроўваць інфармацыю пра абраныя запісаў (тут нумары 10,100,1000), тып

     Dbopen, [імя базы дадзеных]
                 dbhelp, 1
                 dbprint, [10,100,1000], '*
     
    Для атрымання і выкарыстання даных запісаў, то вам трэба выкарыстаць больш складаныя каманды, апісаныя ў дакументацыі, прыведзеныя вышэй.

    Стварэнне новых баз дадзеных з дапамогай прадстаўленых інструментаў адносна простая, так што вы можаце канвертаваць іншыя наборы даных для анлайнавых баз даных IDL, як вы хочаце.



    10. Зямельны ЎЧАСТКІ

    [Да Змест]

    IDL робіць участкаў па змаўчанні ў "бягучай" Тэрмінал графічнае акно, якое можа быць скарэкціравана ў памер, месцазнаходжанне і г.д., з выкарыстаннем тых жа асноўных каманд як з выяваў адлюстроўваюцца (гл. вышэй). Участкі маштабуецца да памераў бягучага акна.

    Асноўныя каманды IDL для стварэння участкаў ўчастка, для стварэння новага ўчастка, і Апора, для overplotting на існуючых ўчастка. Участкі могуць быць адпраўлены на ваш тэрмінал ці на розныя знешнія прылады выбраны set_plot каманды (гл. наступны раздзел).

    Гэта, аднак, гэта толькі верхавіна велізарнага айсберга. IDL змяшчае шмат варыянтаў для стварэння участкаў --- так шмат, на самай справе, што самая цяжкая частка працы можна адсочваць мноства дадатковых параметраў. Функцыі ў выглядзе ключавых слоў могуць быць паказаны ў выклікі функцый змове. Акрамя таго, яны могуць быць выкарыстаны ў выглядзе сістэмных пераменных, такіх як! P.title, якія будуць прымяняцца да ўсіх назаве пазней ўчастка да змянілася.

    • Стандартная пракладка і графікі словы апісаны ў Дадатку Б v7.0 IDL Даведачнае кіраўніцтва ці ён-лайн, увёўшы? ўчастка, а затым выберыце "Графіка Ключавыя словы".

    • Найбольш часта выкарыстоўваюцца ключавых слоў і пабудовы сістэмы зменных прытрымлівацца. Усе з'яўляюцца неабавязковымі. Прыклады выкарыстання прыведзены ніжэй.

        psym або: p.psym вызначае тып знака. Значэнне 0 (па змаўчанні) вырабляе суцэльнай лініяй з не дыскрэтных знакаў кропкі, значэння ад 1 да 7 выбраць іншыя тыпы (не звязаных) знакаў. 8 паказвае, што карыстальнік вызначыў спецыяльны сымбаль выкарыстаннем usersym або plotsym працэдур. 10 участкаў у рэжыме гістаграма. 9 не вызначана. Для пабудовы сімвалаў, злучаных лініяй, вы можаце спачатку ўчастак з psym = N, то Апора з psym = 0.

        xrange і yrange: 2-элемент вектараў дае мінімальнае ці максімальнае для кожнай восі. Калі не вызначана, аўтаматычнае маштабаванне будзе адбывацца. Адпаведных зменных сістэмы! X.range і! Y.range.

        / Xlog і / ці / ylog: усталяваць гэтыя ключавыя словы для выкарыстання базы-10 лагарыфмічнай змова на адпаведнай восі.

        LineStyle: Выбар стылю лініі, праведзенай (суцэльная, пункцірна, штрых-пункцірныя і г.д.), калі psym = 0.

        xstyle і ystyle: набор параметраў восяў (напрыклад, дакладны дыяпазон, а не акругляецца)

        !,! P.title x.title, і:! Y.title радка для ўчастка тытул (з цэнтрам над верхняй восі Х), X-загаловак восі Y-вось тытул.

          (Каб каментаваць ўчасткі інакш, як на восі, выкарыстоўвайце xyouts каманды.)

        шрыфт або: p.font паказвае шрыфт, які выкарыстоўваецца для анатацыі. Уласных IDL пастаўляюцца шрыфты "Вектар-звернута Херши" шрыфтоў. Гэтыя з'яўляюцца здавальняючымі для экране, з'яўляюцца апаратна-незалежнымі, і неабходныя пры стварэнні 3-D участкаў. Але лепш выкарыстоўваць "апаратных" шрыфты пастаўляюцца графікі пастаўшчыкоў для публікуемыя якасць працы. звязаныя з кожным з розных падтрымліваемых прыладаў вываду!. апаратным шрыфты p.font =- 1 (па змаўчанні) выбірае вектар-звернута шрыфтоў;! p.font = 0 выбірае апаратных шрыфтоў. Каб выбраць канкрэтны шрыфт, як толькі вы выбралі апаратную вызначаны шрыфты, выкарыстоўваць прыладу, set_font = "[імя]" каманды.

          Для атрымання дапамогі ў выбары шрыфтоў, гл showfont (вектар цягі), xfont (X-Windows Terminal), або ps_show_fonts (PostScript) працэдур. Для X-Windows, вы можаце таксама ўвесці xlsfonts на LINUX радку, каб атрымаць спіс даступных імёнаў шрыфтоў. Для атрымання дадатковай інфармацыі аб апрацоўцы шрыфтоў у IDL, тыпу? Шрыфтоў.

    IDL па змаўчанні не так "добра", як у SUPERMONGO, напрыклад. Аднак, вы можаце хутка наладзіць для атрымання як складаны змова стылі, як вам падабаецца. Усе функцыянальныя SUPERMONGO і іншых навуковых графічных пакетаў ўласцівая IDL. Многія з 2-х і 3-D графікі працэдуры паказаны на дэманстрацыі IDL, якія пастаўляюцца з сістэмай.

    Колер табліцы для участкаў:

      Участак каманды прымаюць ключавыя словы фон, які ўсталёўвае колер фону сюжэт, і колер, які вызначае колер, які выкарыстоўваецца для ліній і сімвалаў. Па змаўчанні на псеўда-колер-вітрыны X, фон мае значэнне індэкса 0 і колер мае значэнне індэкса 255. Гэтыя таму дысплей "знізу" і "па-над" бягучай табліцы колераў, адпаведна. [Колер табліцы патлумачыў пад Дысплэй малюнкаў.] Знешні выгляд вашага ўчастка будзе залежаць ад таго, што табліцы кветак вы загрузілі (напрыклад, з loadct, N). Табліцы па змаўчанні (N = 0) вырабляе чорны фон і белыя сімвалы. На дысплеі будзе мяняцца, калі вы карыстаецеся іншую табліцу кветак або ўчастка / Індэксы фоне. Вы можаце стварыць спецыяльны набор табліц кветак для атрымання пэўнага набору, скажам, 10 стандартных кветак для вашага ўчастка.

      Заўвага: гэта просты ў выкарыстанні псеўда-колер або пераймання псеўда-колер (прылады, раскласці = 0) для участкаў. У 24-бітны колер (прылады, раскласці = 1, вы павінны пазначыць колеру, як доўгае слова цэлыя лікі.

    Прыклад пабудовы сцэнарыяў для адлюстравання участкаў, на ваш тэрмінал прытрымлівацца. Яны ўключаюць сумесі ўласнага IDL і AstUseLib працэдуры:

    1. Участак аналітычнай функцыі, выкарыстоўваецца па змоўчванні восі маркіроўкі.

       
      х = findgen (10000) / 10. ; Стварэнне незалежнай зменнай,
                                    , Тут працуе ад 0 да 1000
                                     ; У інтэрвалах ад 0,1
      
      Y = X * граху (Х/15.) Стварыць функцыю цікавасць
      
      Участак, х, у; Участак функцыі ў дачыненні да
                                     ; Незалежнай зменнай з цвёрдай лініі. 
                                     ; Участак з'явіцца ў бягучым акне
                                     ; (Або акна 0, калі ні адна з іх адкрыта) з восямі
                                     ; Маштабуецца ў адпаведнасці з максімальнай х, у дыяпазонах.
                               
      Участак, х, у, xrange = [0,50]; Абмежаваць змова з мэтай х значэнняў у дыяпазоне
                                     ; [0,50]. У дыяпазону аўтаматычна маштабуецца.
      
      Участак, х [99:199], у [99:199]; Абмежаваць ўчастак 100-праз
                                     ; Двухсоты элементаў масіваў.
      
      Участак, х, у, xrange = [0,5], psym = 1; Абмежаваць змова з мэтай х значэння паміж
                                     ; 0 і 5, і сюжэт пункту асобна
                                     ; Як знакі "плюс".
      
      Апора, х, у; Дадаць бесперапыннага сюжэтнай лініі да папярэдняга экране,
                                     ; Выкарыстання існуючых маштабах восі
      
      Участак, х, 1 + Y ^ 2, / ylog; Участак новай функцыі (назавем станоўчай
                                     ; Вызначана), выкарыстоўваючы базы-10 лагарыфмічнай маштабе па
                                     ; Восі ў
      
       
    2. Участак павярхоўнай яркасці галактыкі дадзеных (у велічынях) з памылкамі ў параўнанні з радыюсам у адну чвэрць магутнасці. Выкарыстаньне дыскрэтных сімвалаў (не звязаныя лінія). На гэтым участку, галяктыка з стандарт "дэ Vaucouleurs" яркасць профілю будзе вырабляць прамой лініі. Гэты прыклад таксама паказвае, як можна хутка змяніць мінусы дадзеныя з участкаў.

      Выкажам здагадку, што (загадаў) вектараў СА, рады, і sberr ўжо існуюць, з СА і sberr ў адзінках эрг / с / см ^ 2/Angstrom/arcsec ^ 2 і рады ў адзінках кутняй сэкунды. Выкажам здагадку, што з-за дрэнных кропак дадзеных, якія вы павінны абрэзаць змова з мэтай устаранення першыя 3 запісу і тыя, пасля 20-га.

       
      
      часопісаў =- 2,5 * alog10 (СА (3:19)) -21,1; Пераўтварэнне СА да велічынь у угл ^ 2
                                         ; У сістэме STMAG, ігнаруючы дрэнныя дадзеныя.
                                         ; Прымае на сябе ўсе СА запісы> 0. 
                                       
      
      R25 = рады (3:19) ^ 0,25; Вылічыць корань чацвёртай ступені з радыус-вектар
      
      magerr = 1,086 * sberr (3:19) / СА (3:19); Пераўтварэнне нявызначанасці 
                                          ; У СА да велічынь
      
      ! Y.range = [25,18]; Устанавіць нестандартнай Y-вось дыяпазону, у
                                     ; Гэтым выпадку велічыня маштабе 
                                     ; Менш (ярчэй) больш высокія значэнні
                                     ; Па восі ардынат
      
                                     ; Зрабіць назвы
      
      ! P.title = 'Sample Яркасць профіль "
      ! X.title = 'Радыус (кутніх секунд) ^ 0,25 "
      ! Y.title = 'Паверхня Bright (часопісах / угл ^ 2)'
      
      plotsym, 4,1.5, / запаўнення; Выберыце цёмныя трыкутнікі для пабудовы сімвалаў,
                                     ; 50% больш, чым па змаўчанні
      
      ploterror, R25, часопісаў, magerr, psym = 8
                                    ; Зрабіць ўчастка, на экране тэрмінала з памылкамі; 
                                    ; Psym = 8 паказвае, створаных карыстальнікам знакаў, якія
                                   , Пры гэтым быў вызначаны plotsym.
                                    ; Не злучальных ліній паміж кропкамі.
                                    ; Калі psym былі апушчаныя або ўстаноўлены ў 0, не
                                    ; Сімвалы будуць нанесеныя і пункту
                                    ; Былі б звязаны прамымі лініямі.
      
      xyouts, 2.5,17, "NGC 4151"; Дадаць каментар у ўчастак. 
                                    ; Пазіцыйных параметраў, устаноўленых левы
                                    ; Палажэнне адлюстроўваецца радок. Выбраць
                                    ; Гэтыя так радок у баку ад дадзеных і
                                    ; Восяў. 
      
       
    3. Зрабіць контуру ўчастак згладжаныя малюнка.
       
      Чан, 3; Адкрыць змове Акно 3
      
      ! X.title = 'X'; Зрабіць назвы
      ! Y.title = "Y"
      ! P.title = 'Контуры для малюнкі "
      
      плошчу; Устанавіць суадносіны бакоў, каб зрабіць квадратны ўчастак
                                          ; (Звярніце ўвагу, што вы таксама павінны даць гэтую каманду
                                         , Пасля прылада PostScript называецца
                                          ; Пры прыняцці друкаваным выглядзе).
      
      smooth_one = гладкай (малюнкі, 5); Гладкі малюнак 5 пікселяў вагон clev = [10,20,40,80,160]; Вызначэнне узроўняў суда контур - Выкажам здагадку, гэтыя значэнні ахопліваюць дыяпазон інтарэсаў контуру, smooth_one, узроўні = clev; ці хутка выпрабаванне контуру ўчастка. Праверыць &; ітэрацыі clev за лепшы знешні выгляд контуру, smooth_one, узроўні = clev, / прытрымлівацца; ці больш дакладныя (павольна) сюжэт,; з этыкеткамі 
    4. Чытайце, сартавання і ўчастак дадзеныя з файлаў ASCII; зрабіць і адлюстравання суда паліном падыходзіць

      Выкажам здагадку, што X з'яўляецца вектар, які змяшчае значэння ў дыяпазоне ад 0 да 5, і што ў адпаведных залежнай пераменнай. Выкажам здагадку, што яны павінны быць прачытаныя з файла ASCII імя xy.dat, які змяшчае X і Y ў асобных слупках. Xy.dat можа ўтрымліваць пачатковых тлумачальнай раздзел і іншыя загалоўкі сепаратар, пакуль ні адзін з іх утрымоўваюць толькі адзін або два лікаў з плаваючай кропкай (з readcol будзе памылкай тых, для ліній перадачы дадзеных). Слупкі дадзеных не павінны быць выраўнаваны. Па змаўчанні, readcol руціннай будзе чытаць у лікавым х, у дадзеных ігнаруючы любыя радкі, якая змяшчае сімвалы алфавіту. Няма этыкеткі ставяцца на ўчастак у гэтым прыкладзе.

       
      readcol, "xy.dat, XX, YY, Чытанне даных з файла. Звярніце ўвагу, што фармат 
                                     ; Заява і "адкрытай" каманда не патрабуецца,
                                     ; І не XX і YY павінны быць папярэдне вызначаны
      
      індэкс = выгляд (XX); Сартаванне масіваў у парадку ўзрастання хх хх = (індэкс)
      Y = гг (індэкс)
      
      Чан, 1; Адкрытае акно 1 для пабудовы
      
      Участак, х, у, psym = 5; ўчастак дадзеных з адкрытым трыкутнікаў
      
      quadcoeff = poly_fit (х, у, 2); Вывесці каэфіцыенты для найлепшага квадратычна
                                     ; Палінома падыходзіць
      друку, quadcoeff; друку гэтых выхад (апцыянальна) [Заўвага: 
                                     ; Quadcoeff з'яўляецца вектар]
      
      TX = findgen (101) / 20. ; Стварэнне незалежных вектар зменнай для абсталяваная
                                     ; Значэнні (раўнамерная х інтэрвале ад 0,05 адзінкі)
      
      quadtesty = полі (TX, quadcoeff); Стварэнне абсталяваны квадратычна значэння
      
      Апора, штат Тэхас, quadtesty, psym = 1; Overplot квадратычным падыходзіць знак "плюс"
      
      cubcoeff = poly_fit (х, у, 3); Вывесці каэфіцыенты для кубічных падыходзіць
      cubtesty = полі (TX, cubcoeff); Стварэнне абсталяваны кубічных значэння
      Апора, штат Тэхас, cubtesty, psym = 3; Overplot кубічных значэння з маленькімі кропкамі; [Няхай квадратычнай падыходзяць была адэкватнай] дэльта = Y-полі (х, quadcoeff); Вылічыць розніцу паміж Y і даных; найлепшага квадратычна падыходзяць Нікс =, дзе (ABS (дэльта) GT 2.) Знайдзіце тых, у каштоўнасці, якія больш, чым на 2 адзінкі з найлепшым чынам адпавядае вага = fltarr (n_elements (х)) 1. ; Стварэнне вага вектар, які адпавядае; X з адзінкай запісу вагі (Nix) = 0.0; Дайце дэвіянтнымі пункту нулявога вагі newquadcoeff = polyfitw (х, у, вага, 2); выведзіце паляпшэнне квадратычным coeffs. ; Выкарыстаннем ваг проста прызначаныя канчатковыя = полі (TX, newquadcoeff); стварэння больш дасканалых адпавядаюць значэння канала, 2; адкрытага акна 2 для канчатковага, чыстага ўчастка. ; (Акно 1 захоўваецца для параўнання.) Сюжэт, х, у, psym = 5, xrange = [1,3.5]; ўчастак дадзеных з адкрытым трыкутнікаў; Акно 2. ; Хай цікавасць абмяжоўваецца толькі, частка дадзеных X-дыяпазону. Апора, штат Тэхас, канчатковым, psym = 0; Overplot канчатковага адпаведнасці з суцэльная лінія 
    5. Адрозніваюць два ўзору гістаграмы

      Выкажам здагадку, у вас вымярэння колькасці значэння для двух узораў аб'ектаў з аналагічнымі дыяпазон значэнняў, і вы хочаце параўнаць гістаграмы два ў адзін сюжэт. Просты спосаб зрабіць гэта ў IDL з'яўляецца стварэнне саюза двух набораў дадзеных для першага ўчастка, а затым overplot зацененых гістаграма другім сэце. Калі дадзеныя складаюцца з двух вектараў, val1 і val2,

      
           allval=[val1,val2]
           plothist,allval,bin=0.2,xrange=[0,8]
           plothist,val2,bin=0.2,/over,/fill,fcolor=200
      
      У выніку змовы, val1 запісы будуць незаштрихованных, а val2 запісы будуць затенены са значэннем колеру залівання 200 (на экране з'яўленне будзе вызначацца папярэдне загружаным табліцу кветак).

        Па змаўчанні, plothist будзе сюжэт поўны спектр значэнняў у дадзеных. У гістаграмы, гэта часта непажадана, паколькі экстрэмальныя значэння звычайна маюць невялікае насельніцтва. Гэта карысна для абмежавання дыяпазону для лепшага адлюстравання важных каштоўнасцяў, тут мы выкарыстоўвалі xrange гэта зрабіць.

      Аналагічным чынам, у выпадку падмноства значэнняў дадзеных, якія варта адрозніваць ад некаторых Другі параметр:

      
           plothist,val1,bin=0.2,xrange=[0,8]
           good=where(param ge 0) 
           plothist,val1(good),bin=0.2,/over,/fill,fcolor=200
      
        Тут вектар параметраў павінен мець тую ж даўжыню, val1, і мы мяркуем, падмноства цікавасць вызначаецца з неадмоўных значэннем параметру.



    11. ГРАФІКА друкаваным

    [Да Змест]

    Найбольш распаўсюджаны метад атрымання друкаваным або пастаяннага захоўвання графікі вываду (участкаў або выяваў) з'яўляецца выкарыстанне файлаў PostScript, так як яны могуць быць надрукаваныя на большасці лазерных друкарак. PostScript файлы могуць быць адрэдагаваныя і пазней перафарматаваць, хоць спецыяльных (не IDL) праграмы неабходныя.

    IDL таксама падтрымлівае выснову GIF, JPEG, TIFF, PNG і іншыя фарматы файлаў. GIF і JPEG з'яўляюцца стандартнымі для Інтэрнэт-браўзэраў. GIF рэкамендаваны для малявання ліній і захоўвання ўчастка выхаду. TIFF Рэкамендуецца для высокай якасці, поўны рэпрадукцыі колеру (напрыклад, транспарціроўкі файлаў малюнкаў з пастаўшчыкамі для друкаваным або публікацыі).

    Вы павінны заўсёды эксперымент на экране тэрмінала з участку фармат перад скідам ў выходны файл. Гэта лёгка зрабіць пры распрацоўцы набору камандаў Вы хочаце ў той час як у змове з мэтай экрана, затым увесці set_plot, "PS (у выпадку выхаду PostScript) і паўтараючы каманды, з выкарыстаннем буфера Нагадаем каманды.

    Для больш складаных участкаў, выкарыстанне часопіса ўтыліты, рэдагаваць і паўторна выканаць атрыманы файл (ці выразаць і ўстаўляць праз вокны).

    Set_plot каманда вызначае, якія графічныя прылады высновы вы выкарыстоўваеце. Найбольш распаўсюджаныя версіі гэтай каманды:

     
            set_plot, "X: Адправіць выснова ў X Windows (па змаўчанні) 
            set_plot, "PS: Даслаць вывад у файл PostScript" idl.ps "
    

    Наступныя каманды для адпраўкі дадзеных у файл ПС (у асноўным) так жа, як для Размяшчэнне дадзеных на экране манітора, так як маніторы і PS файлы з'яўляюцца ўзаемазаменнымі прыладамі высновы для IDL.

    Вы заўсёды можаце праверыць ўласцівасці бягучага прылады вываду графікі, набраўшы дапамогу, / Dev. Вы можаце змяніць гэтыя наладкі з дапамогай прылады каманды. Апаратна-праграмных інтэрфейсаў часам нетрывіяльных, і вы хочаце, каб план значнага навучання ў рабіць рэчы, якія не з'яўляюцца "ваніль". Перад адпраўкай вялікіх працоўных месцаў для друкарак, пастаўшчыкі і г.д., не забудзьцеся праверыць файлы, выкарыстоўваючы LINUX Ghostview, XV, або іншых праграм экран.

    Вось некаторыя графічныя метады вываду для агульнай сітуацыі:

    • Каб друкаваны PostScript ўчастка.

      1. Тып set_plot, "PS накіраваць вывад у" idl.ps "

      2. Пры неабходнасці, унесці карэктывы ў памер ўчастка, прапорцыі, арыентацыі, літары шрыфтоў і г.д., выкарыстоўваючы прылада каманды

      3. Дайце мноства пабудовы каманд тут --- як і для экрана сюжэт, усе сістэмныя зменныя будуць па-ранейшаму ў сіле

      4. Тып прылады / Зачыніць, каб закрыць файл idl.ps. (Заўвага: файл PostScript на самай справе не запісаныя на дыск да закрыцця даецца каманда.)

      5. Тып $ Л. П. idl.ps для друку файла на прынтэр па змоўчванні.

      6. Наступны пабудовы каманды будуць перазапісаны idl.ps. Калі вы жадаеце захаваць яго, вы павінны змяніць сваю назву. Напрыклад, $ М. В. idl.ps bossplot.ps.

      7. Прыклад (на аснове працягваецца Пабудова Прыклад № 2 пад Участкі вышэй.)

           
          set_plot, "пс, участак будзе адпраўлены на PostScript-файл" idl.ps ", 
                                       , А не на экран
          
          plotsym, 4,1.5, / запаўнення; Выберыце цёмныя трыкутнікі для пабудовы сімвалаў,
                                         ; 50% больш, чым па змаўчанні
          
          
          !p.font=0
          device,/helvetica,font_size=12 ;Выкарыстоўвайце Helvetica PostScript шрыфтоў ploterror, R25, часопісаў, magerr, psym = 8 xyouts, 2.5,17, "NGC 4151"; Зрабіць PS ўчастка з памылкамі;; вызначэнне Карыстальнікам plotsym і іншыя; сістэмных пераменных застаюцца ў сіле прылады, / блізка; Зачыніць файл $ Л. П. idl.ps; Даслаць файл на друк $ М. В. idl.ps surbriteplot.ps; Перайменаваць PS файл для яго захавання. set_plot, 'X; Адаслаць далейшы вывад на тэрмінал cleanplot; Скід пабудовы сістэмы зменных па змаўчанні 
      8. Выхадны файл будзе мець чаканага "чорны на белым" сэнс, калі Вы карыстаецеся ключавыя словы апісаны ніжэй.

      9. Вы можаце зрабіць колер файлаў PostScript, усталяваўшы прылада, / колер і выкарыстанне фонавага колеру і ключавыя словы (гл. Зямля раздзел). Аднак, лячэнне табліцы колераў адрозніваецца ад выпадку X-Windows. Звярніцеся IDL дапаможнікаў.

    • Каб друкаваны PostScript з адлюстроўваецца малюнка: выкарыстанне tvlaser. Гэта звалкі растравае бягучага акна (з дапамогай утыліты tvrd) у файл PostScript і выводзіць яго на PS прынтэр па змоўчванні. Розныя варыянты дадаваць каментары, інфармацыя з загалоўка, змяніць фармат, і гэтак далей. Калі вы хочаце, каб захаваць файл PostScript, адказ "не" на запыт аб "выдалення" яго. Для каляровага друку, выкарыстоўвайце colorps ключавое слова. Для сапраўдных кветак выявы, выкарыстоўваць поўнакаляровы = N ключавое слова.

        Вы можаце выкарыстоўваць tvlaser для капіявання адлюстроўваецца акно ўчастка. Гэта зручна для прыняцця хуткіх працоўных друкаваным участкаў. Аднак, рэзалюцыі і знешні выгляд стандартнай працэдурай выхаду PostScript апісана вышэй амаль заўсёды будзе лепш.

    • Іншыя фарматы. Для высновы малюнка ў фармаце GIF, JPEG, TIFF, PNG, і іншых папулярных фарматаў выхаднога файла, у першую захопу адлюстроўваецца малюнак з дапамогай tvrd каманды (гл. вышэй). Вам не трэба выкарыстоўваць set_plot каманды. Проста адпраўце захопленае малюнак у выхадны файл, выкарыстоўваючы адпаведныя каманды запісу. Фаннинг tvread Дэвід праграма можа выдаваць малюнак і зрабіць выхадны файл у адзін крок шляхам выкарыстання ключавых словаў, як / JPEG.

        Савет: пры вытворчасці выхаду PostScript файлаў выяваў для публікацыі, карысна таксама зрабіць версію GIF, так як гэта можа быць прачытаны назад у IDL пазней, калі крануць акна неабходныя. IDL не можаце прачытаць PS файлаў (хоць LINUX XV можа канвертаваць PS да GIF's).

    • Выхад з вялікіх малюнкаў: выснова выявы не павінны быць абмежаваныя тымі памерамі можна адлюстраваць на экране, як у прыведзеных вышэй прыкладах. выявы масіваў большага можна запісаць непасрэдна ў файлы, выкарыстоўваючы write_gif, fits_write, і падобныя каманды.
    Тэхнічныя пытанні:

      PostScript файлы лепшы спосаб атрымаць высокую якасць выцяжкі участкаў лініі і, як правіла, добра звярталіся выдаўцы. Адценні шэрага ці каляровыя малюнкі, іншая справа, аднак, і варта падыходзіць у итерационный спосаб. Апублікавана PS малюнак можа выглядаць вельмі адрозніваецца ад той, раздрукаванай на мясцовым узроўні. GIF або TIFF файлы могуць даць лепшыя вынікі, чым PS.

      Там таксама можа быць цяжкасці з канчатковым дазволам экране скапіяваныя з дапамогай tvrd руціны. Гэта дакладна для якасці як малюнак і любыя літары, якія могуць быць дададзеныя да яго. Аб тыповым экране кампутара, вы не атрымаеце больш, чым пра 900x900 рэзалюцыі. Аднак, файл PostScript 300 кропак на цалю можа даць значна больш высокім дазволам (1800x1800 ў 6 "малюнкі).

        У якасці альтэрнатывы захопу tvlaser метад экране, апісаных вышэй, вы можаце напісаць выявы і маркіроўкі непасрэдна ў файл PostScript выкарыстаннем стандартнага ТБ, tvscl, xyouts і іншыя працэдуры. Асноўная цяжкасць складаецца ў разуменні сістэмы каардынат, якія выкарыстоўваюцца ў файле PS і размяшчэнне розных элементаў выхадны старонцы ў правай пазіцыі. Людзі ветру з выкарыстаннем метаду спроб і памылак (лёгкі ў пісьмовым выглядзе файла PS, затым даць $ Ghostview [імя файла] каманды з IDL).

      Калі вы захоўвайце копіі вашага графіка выхаду ў GIF, TIFF, JPG і г.д. файлы, вы можаце выкарыстоўваць не-IDL ўтыліты, як XV, Gimp, Photoshop і г.д., каб маніпуляваць імі далей: у памер, кручэнне, кантрастнасць, каляровай табліцы, і, ужываючы розныя паляпшэння малюнка. XV можа канвертаваць GIF ў PostScript, і наадварот. Асабліва карысна для сціску выявы памераў для выкарыстання ў Інтэрнэце, Server ArXiv ІПМ, і так далей.

      Дадатковыя парады па стварэнні добрай графікай PS гл. у раздзеле Стварэнне фігур з IDL па Кэлі-Крус і Дэвід Фаннинг http://www.dfanning.com/documents/tips.html # PostScript



    12. IDL САВЕТЫ І непрыемнасці

    [Да Змест]

    Не многія людзі адчулі цалкам інтэрактыўных вылічэнняў, перш чым пачаць выкарыстоўваць IDL. Ёсць вялікія перавагі, але і шмат пастак для неасцярожных. Пастак, вядома, у асноўным, здаецца відавочным і трывіяльным ў рэтраспектыве --- гэта значыць пасля таго як вы навучыліся іх пазбягаць. Некалькі саветаў і папярэджанняў для пачаткоўцаў IDL абмяркоўваюцца ў гэтым раздзеле.

    Шляхі, працэдуры, Даведнікі

    • Калі імя працэдуры з'яўляецца непрызнаным або дае нечаканыя паведамленні пра памылку, пераканайцеся ў тым, ваш шлях да каталога (! Шлях ўнутры IDL) усталяваны правільна. Пачатковая значэнне! Шлях бярэцца з зменнай абалонкі $ IDL_PATH. Праверце каталогі ў шляху для працэдуры.

    • Нечаканае паводзіны можа таксама паўстаць, калі вы выбіраеце тую версію праграмы, для якіх Ёсць некалькі копій у вашым! Шлях. Два спосабу, каб праверыць магчымыя памылкі такога роду: друк, file_which ([program_name.pro]); або інфармацыі. Ран-T [назва праграмы] і праверце спіс праграмы для версіі. File_which руціннай працуе як LINUX якія. Калі ваш! Шлях прама не прадугледжвае, у бягучым каталогу (які рэкамендуецца, гл. ніжэй), то вы павінны дадаць / include_current_dir ключавое слова.

    • Пазначэньні: + / Имя_папки ў $ вызначэння IDL_PATH пашырае шлях, каб ўключыць усе падкаталогі імя каталога, якія ўтрымліваюць *. Pro ​​файлаў. Выкарыстоўвайце асцярожна, каб пазбегнуць збіранне "старой" версіі працэдур, якія часта захоўваюцца ў падкаталогах актыўныя версіі.

    • Памылкі таксама будзе адбывацца, калі вы паспрабуеце выклікаць функцыю як працэдуру або наадварот. Працэдура патрабуе [імя], Парма,... выкліку падчас функцыя патрабуе [VAR] = [імя] (,...) выкліку Парма. Выкарыстоўвайце дапамогу, / Роу захаваць функцыі і працэдуры прамой. Калі вы паспрабуеце выканаць асноўныя праграмы, увядзiце яго імя, а не друкаваць. Запусціць [імя], вы атрымаеце паведамленне пра памылку.

    • Памятайце, што выходныя дадзеныя будуць запісаныя ў каталог, які з'яўляецца бягучых, калі выхад каманда. Калі вы выкарыстоўваеце SD часта перамяшчацца па каталогах, вы можаце страціць след, дзе выхад пайшоў (хоць файл часопіса магу сказаць вам). Калі вы ў цяперашні час у чужой каталога, на якім у вас няма правоў на запіс, выхад каманды не будуць працаваць. Некаторыя каманды (напрыклад, tvlaser) можа вырабіць вялікія файлы за нуль. "Невядомы файл" памылкі пры ўводзе каманды часта азначае, што вы знаходзіцеся ў няправільным каталогу па змаўчанні. Праверце з SD.

    • Пасля змены [імя]. Pro ​​файл працэдуры, пераканайцеся, што перакампіляваць яго. Запусціць [імя], перш чым спрабаваць яго выкарыстоўваць. Калі руціны быў складзены, перш чым змяненне яго, проста увёўшы [імя] будзе выконваць версіі Гісторыя.

    Спецыяльны IDL інтэрактыўных матэрыялаў і паскаральнікі

    • У праграмаванні, звярніце ўвагу на вялікую карыснасць інтэрактыўных матэрыялаў ва ўласным IDL. такія як памер, n_params, n_elements, keyword_set, і іншыя. Яны дазваляюць ацаніць стан зменных у праграме ў любы час.

    • друку дазваляе друкаваць бягучае значэнне любы зменнай на экран у любы час інтэрактыўнай сесіі (майце на ўвазе, аднак, у выпадку вялікіх масіваў). Фармат заявы не з'яўляецца абавязковым. Фарматаванне па змаўчанні: вектары-радка друкуюцца па экране; вектары-слупкі, уніз файл. Е з'яўляецца адпаведную каманду для друку на выхадзе. Абедзве каманды могуць быць выкарыстаны ў рамках праграм.

    • readf з'яўляецца стандартным інтэрактыўная каманду для чытання дадзеных з файла ASCII. Фармат заявы не з'яўляецца абавязковым. Тая ж каманда можа быць выкарыстана ў працягу праграмы. Каб чытаць ўвод з клавіятуры з праграмы, выкарыстайце каманды чытання.

    • readcol гэта зручная праграма для чытання AstUseLib ў файлы ASCII столбчатых дадзеных. Фармат заявы не з'яўляецца абавязковым (у залежнасці ад зместу файлаў); радкоў, якія змяшчаюць сімвалы нечаканым аўтаматычна прапускаюцца. Для фіксаванага фармату ASCII ўводу / вываду, гл readfmt і forprint.

    • IDL масіў арыентаваных матэматыцы часта пазбаўляе ад неабходнасці рабіць-завесы або індэкс канкрэтных праграмавання, і вы павінны выкарыстоўваць індэкс без пазначэння дзе гэта магчыма. (IDL значна павольней, калі элементы дадзеных, на якія спасылаецца індэксаў.)

    • Ёсць каля 20 уласных функцый IDL для стварэння масіваў розных тыпаў і напаўнення іх пачатковыя значэнні, у тым ліку intarr, fltarr, indgen, findgen, рэплікацыі і make_array.

    • Існуе вялікі набор іншых масіваў арыентаваных арыфметычных функцый, такіх, як пашырэнне, rebin, наадварот, гладкай, сартыроўкі, за ўсё, транспонировать, і так далей.

    • Вы знойдзеце мноства ужыванняў для функцыі, дзе. Напрыклад, каб знайсці ўсіх не-станоўчых значэнняў у масіве, каб пазбегнуць памылак пры прыняцці лагарыфмы, тыпу знайсці = дзе (Le 0). Знайсці будзе вектар, які змяшчае паказчыкі не-станоўчыя запісу. Подмассива (знайсці), то будзе трымаць усе гэтыя пытанні.

        Напрыклад: каб замяніць усе значэння менш 1 у масіў з 1, тып
        (Дзе (LT 1)) = 1.

        Замест гэтага, калі вы проста хочаце кол-у лік запісаў са значэннямі менш 1, тыпу:

          Знайсці = дзе (LT 1, у рахунак) і друку кол

    • Іншы хуткі спосаб месца на падлозе элементаў масіва: = (> 1) замяняе ўсе элементы са значэннямі менш 1 у масіве з 1. (Пазначэнне> 1 азначае "масіў, які змяшчае максімум 1 і арыгінальныя элементы a".)

    • Нагадаем / рэдагаваць і часопіс утыліты з'яўляюцца незаменнымі сродкамі для ітэрацыі і запісы IDL кода.

    Вызначэнне і стабільнасці зменных

    • Памятайце, што першы элемент вектараў і масіваў заўсёды з індэксам 0. (Гэта захаваць агульнапрынятыя абазначэння восі для участкаў). Калі б ня дзесяць элементаў, элемент індэксы прабягаюць ад 0 да 9, а не 1 да 10. Спасылка на B (10), з вектара мяжы. Гэта заб'е падпраграма, хоць яна толькі генеруе паведамленне пра памылку, калі гэта адбываецца ў камандным радку.

    • Калі некаторыя з раней вызначаных зменных, падобна, "зніклі" ці іншыя асаблівасці паводзінаў адбываецца, пераканайцеся, што вы знаходзіцеся ў асноўнай праграме, а не падпраграмы. Глядзіце retall вышэй. Для вяртання аўтаматычна ў галоўнае меню праграмы, калі памылкі ў падпраграму, увядзіце on_error, 1 у пачатку сеансу IDL (настойліва рэкамендуецца выключэннем выпадкаў, калі адладкі).

    • Для стварэння тэставых масіваў / вектары для таго, каб эксперыментаваць з працэдурамі IDL, выкарыстанне indgen, findgen і г.д. Напрыклад:

        = Findgen (100,100) стварае 100x100 плавае кропкай масіва з унікальнымі значэннямі элемент працуе ад 0 да 9999,0.

        = Fltarr (100,100) 10. Стварае 100x100 масіў, які змяшчае 10,0 ўсюды.

        Стварэнне вектараў з простымі заявамі вызначэнне як Z = [1,3,9,27]; заявы тыпу Z = [г, 81] павялічыць вектараў.

        Вы можаце атрымаць подмассивов па індэксе абазначэння, як і ў Партыі = [100:156,200:296].

    • Максімальнае значэнне IDL з якая плавае кропкай канстанта аб 3e38. Каб мець справу з вялікімі лікамі, вы павінны выкарыстоўваць двайны дакладнасці. Напрыклад, у разліках з удзелам хуткасць святла, добрай практыкай з'яўляецца вызначэнне C = 3.0d10, а не з = 3.0e10. Найбуйнейшы двайны дакладнасці пастаяннай дазволіла прыкладна 4d88. (Мінімальныя значэння зваротных з іх.) Вылічэнняў, якія вырабляюць па-за дыяпазону значэнняў прывядзе да "перапаўнення" ці "перапаўненьне" паведамленні аб памылках.

    • Сцеражыцеся няяўна вызначэнне пераменных.

        IDL дынамічна вызначае тып зменнай, і гэта класічны крыніца памылкі пачаткоўцаў IDL.

        Напрыклад, X = 5 / 2 вяртае значэнне 2 (цэлае лік), а X = 5,0 / 2 вяртае 2,5 (з якая плавае кропкай). X мае розныя значэнні і атрыбуты ў следства. Асцярожна! Для страхавання, добрая звычка заўсёды для уводу лічбаў з якая плавае кропкай разлікаў з дзесятковай кропкі. Напрыклад, дыяметр = 2.* радыусу.

        Вынік вылічэнняў з удзелам змешаных тыпаў залежыць ад парадку, у якім IDL ацэньвае выраз:
          
                    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
          
          
    • Няяўныя пераазначэнне масіва зменных можа прывесці да вялікай цяжкасці як у наступным:

       
             = Fltarr (200,200); Вызначыць плавае кропкай масіў з усімі элементамі
                                  ; = 0,0
             (*,*)= 1. OR = +1. ; Як правільна запоўніць масіў з 1,0
      
             = 1,0; няправільны спосаб запоўніць масіў з 1,0.  
                                  ; Вы толькі што змянілі для скалярнага 1,0!
       
    • Іншы патэнцыйнай вобласцю праблема заключаецца ў выманні вектараў з масіваў. У IDL 1-D вектар лічыцца вектар-радок.

        Такім чынам, калі гэта масіў 100x100, У = [*, 40] створыць вектар-радок памернасці (100). Але B = [40 *] створыць 2-D масіў з памерам (1100) (= вектар-слупок).

        Для ліквідацыі сірот памернасці тут і атрымаць стандартны вектар-радок, выкарыстанне рэформы функцыі: B = рэформы (б). Вы можаце таксама выкарыстоўваць функцыю Транспанаванне, каб пераўтварыць слупок вэктару ў вектар-радок.

        Вы можаце праверыць бягучую структуру для зменнай, выкарыстоўваючы дапамагчы камандзе.

    • Вось прыклад яшчэ адной праблемай вы можаце сутыкнуцца з няяўнай вызначэнне IDL ў зменнай тыпу з удзелам залежнай пераменнай масіва, з якога вы хочаце атрымаць асаблівую каштоўнасць. Калі час незалежнай зменнай і значэнне залежнай пераменнай, вы можаце знайсці які-небудзь запісы ў наступнае значэнне і перенормируют масіў значэнняў:

      
                 find=where(time eq 1000.)
                 norm0=value(find)
                 normalval=value/norm0  

        Наіўна, вы чакаеце norm0 быць скалярнай, як гэта было б, калі вы набралі norm0 = значэнне (151), напрыклад. Аднак, калі вы паспрабуеце гэта зрабіць, вы ўбачыце, што тут гэта не скаляр, а замест гэтага мае тып масіва (1). Гэта таму, што дзе функцыя вяртае вектар, вызначэнне распаўсюджваецца па вызначэнні norm0. У выніку колькасць, normalval, якая падзяляе два вектары рознай даўжыні, таму скалярны, а не вектар! Рэформы функцыя не дапаможа тут. Каб атрымаць жаданы вынік, вы павінны вызначыць нармалізацыі пастаяннай як: norm0 = значэнне (Знайсці [0]).

        Калі вы пішаце код для агульнага прымянення, вы таксама хацелі б пацвердзіць, што знайсці вяртае толькі аднаго неадмоўнае элемента. Лік элементаў вяртаецца дзе функцыя можа быць вызначана, напрыклад, наступным чынам:

         
                   find=where(time eq 1000.,count) 
                   if (count eq 1) then begin...   
    • Пры працы з масівамі дадзеных (напрыклад, ПЗС або HST дадзеных), дзе дадзеныя абмежаваны дынамічны дыяпазон і не патрабуе больш чым у 2 байта дакладнасць, гэта можа быць хутчэй і зручней, каб пераўтварыць іх у цэлае форму пасля множання на каэфіцыент маштабавання, чым пакінуць іх у плавае кропкай форме. Гэта эканоміць захоўвання, павялічвае хуткасць выканання, а часцяком зводзіцца друку. Вы можаце захаваць маніпуляваць версіі бэк-пераўтварэнні, але вы павінны быць асцярожныя, каб праверыць, што вы не страцілі біт з канца.

    • Працэдуры, якія патрабуюць вектарных аргументаў ўключаюць максімальны і мінімальны. Калі A, B, C, D з'яўляюцца скаляр, неабходна ўвесці друку, не больш ([A, B, C, D]), а не друкаваць, не больш (A, B, C, D).

        Miswriting заявы, як X = тах (а, b) можа фактычна прывесці да змяніў значэнне для б. Асцярожна.

    • Такія функцыі, як гладкія, rebin, і іншыя працэдуры передискретизации звычайна захаваць тып зменнай. Пры нанясенні на цэлых масіваў, лікавыя памылкі могуць быць уведзеныя ўсячэння. Калі вы зацікаўлены ў захаванні значэння дадзеных з такіх працэдур, вы павінны ўжываць іх толькі з якая плавае кропкай масіваў. Для пераўтварэння масіва цэлых лікаў з плаваючай кропкай, увядзіце = паплавок ().

    • Памятайце, што асноўнай ўзровень IDL не прызнае зменныя, якія вызначаны ў працэдур (падпраграм), але не прайшоў выкліку параметры зваротна ў галоўнае меню праграмы. (Тое ж, у FORTRAN.) Унутраных зменных роўныя нулю на нармальны выхад з працэдуры. Каб вызначыць, якія зменныя з'яўляюцца актыўнымі, выкарыстоўваць дапамогу. Вы можаце, аднак, выкарыстанне агульных блокаў (як у Фортране) для ўсталявання сувязі паміж асноўным узроўнем і падпраграмы зменных ўзроўню, якія не ў выклікалай паслядоўнасці. Асноўныя праграмы маюць доступ да ўсіх пераменным, якія былі вызначаны на "асноўныя" узроўні.

    • Вы можаце таксама вызначыць вашы ўласныя зменныя сістэмы, якая, як вядома, усе праграмы, выкарыстоўваючы defsysv.

    • IDL структуры забяспечваюць кампактны і зручны спосаб перамяшчэння вялікай колькасці звязаных зменных розных тыпаў (скаляр, масівы, радкі) паміж працэдурамі і асноўных праграм.

    Адрозненні ад FORTRAN і C

    • Часты крыніца нязначныя непрыемнасці для карыстальнікаў іншых моў высокага ўзроўню невялікія адрозненні ў сінтаксісе IDL бо, калі заявы, то заявы, рабіць петлі, і г.д. Апошні ў IDL прызначаныя для завес. Таксама зьвярніце ўвагу на выкарыстанне дадзенага справы і перайсці да справаздачнасці. Варта патраціць некаторы час на прагляд гэтых галінах, перш чым пісаць IDL кода.

    • ў элемент IDL індэксацыі канвенцыі для 2-D масіваў процілеглы FORTRAN. У FORTRAN, [I, J [адпавядае элемент га радка і-й слупок. Але ў IDL, [I, J] адпавядае элемент га слупкі і й радку. [*, J] з'яўляецца вектарам-радком. [я, *] з'яўляецца вектар-слупок.

        Дадзеная Канвенцыя была прынята на IDL, паколькі ён вырабляе звычайным сэнсе пры (х, у) дысплеяў. Адлюстравання каманд па змаўчанні будзе паказваць масіва (х, у), пачынаючы з калонкі 0 у левай частцы экрана і радок 0 у ніжняй часткі. Пры адлюстраванні, (4,1) будзе чатыры адзінкі направа і адну адзінку ў параўнанні з паходжання. Гэта змяненне ў Канвенцыю, відавочна, патрабуе сыходу, калі ён спрабуе дзейнічаць на дадзеным наборы дадзеных як з IDL і Фартран.

    Пунктуацыі, сінтаксісу і г.д.

    • Для хуткага напамін пра сінтаксіс IDL, гл Стернер ў IDL Ray Заява Сінтаксіс старонкі.

    • IDL не адчувальныя да рэгістра, хоць гэта LINUX. Каманды, якія прымуць удзел аперацыйнай сістэмы (напрыклад, чытанне / запіс файлаў), такім чынам, павінны выконваць выпадку канвенцый.

    • Перыяд ў выканаўчых каманд (напрыклад,. Запусціць) павінна з'явіцца як першы знак каманднага радка (без папярэдняга прабелы).

    • "Адзіночныя двукоссі" знак для струнных, імёны файлаў і г.д., апостраф ('), а не "вядучы-адзіночнай двукоссі-Марк" (`). Сінтаксічныя памылкі ўзнікаюць, калі вы іх адключэнні. На жаль, на шматлікіх экранах тэрмінала, гэта цяжка адрозніць. На некаторых кампутарах, яны таксама на суседніх клявішаў, якая спрыяе памылкі друку.

    • Радкі павінны заўсёды з'яўляюцца ў двукоссі, імёны файлаў, разглядаюцца як радкі ў большасці працэдур над файламі.

        Калі радок апошняй запісу на лініі (не далей параметры або знакі прыпынку), то задні двукоссі не павінны быць уведзены. Але ў гэтым выпадку, пераканайцеся, што вы не ўводзіце лішнія пустыя месцы на тэрмінал перад націскам "зварот", ці радок можа быць няправільна прачытаў.

    • Агульныя памылку друку, якая можа прывесці да сінтаксічная памылкі замена перыяд коска ў спісе аргументаў працэдуры.

    • Нагадаем, што вектар вызначаецца шляхам заключэння дужках, не дужках: X = [47,29,135], а не X = (47,29,135).

    • Сцеражыцеся ненаўмысна ўводу матэматычных аператараў, дзе вы павінны выкарыстоўваць аператары адносіны. Напрыклад: калі (X = 5), то... замест таго, правільна, калі (х экв 5), то.... Гэта можа выклікаць сур'ёзныя памылкі, якія не абавязкова падымаць сцягі памылак.

    • Нагадаем, што> і <прыкметы спасылацца "Максімум" і "мінімальны" аператараў, адпаведна. Напрыклад, 10> 15, скалярны 15.

    Іншыя пытанні

    • Гэта добрая ідэя, каб зрабіць ліберальным выкарыстаннем sxaddhist руціннай для абнаўлення каментарыі на ваш набор дадзеных, як вы чытаеце, апрацоўваць і захоўваць выявы Падыход.

    • Так як інтэрактыўныя заняткі IDL часта вырабляюць вялікая колькасць актыўных зменных, карысна насіць сістэматычны характар ​​у назвах кожнай новай зменнай:. Напрыклад, пры чытанні масівы, выкарыстоўваць канвенцый, як fits_read, "Файл", pic1, hdpic1 захаваць малюнак і загаловак масіваў прама.

    • Для захавання набору і пошуку шляхоў да файлаў доўга, гэта карысна для вызначэння спецыяльных зменных радкі, якія ўтрымліваюць поўныя імёны вашых часта выкарыстоўваюцца дырэкторый. Тады вы можаце проста SD, [stringname] для пераходу ў каталог.

    • Калі вы маніпуляваць табліцы кветак, верагодна, вы захочаце, каб перазагрузіць стандартнай табліцы (напрыклад, loadct, 0) перад высновай новага малюнка.

    Філасофія праграмавання

    • Некаторыя IDL карыстальнікі хацелі б напісаць канкрэтныя, спецыялізаваныя асноўную праграму для выканання канкрэтнай задачы, а затым змяніць яго, або хуткага размнажэння некалькі версій, для вырашэння аналагічных, але некалькі розных прыкладанняў (напрыклад, новы набор дадзеных). Аднак, паколькі асноўны ўклад праграмы / вываду не зрабілі відавочным, калі вы. Запусціць асноўную праграму, файл часопіса не сціснута захапіць яго. Акрамя таго, калі хто свядома пераназывае і захоўвае асноўную праграму кожны раз, калі ён змяняецца, яно не можа быць можна аднавіць тое, што адбылося на самай справе.

    • Іншыя карыстальнікі аддаюць перавагу ствараць больш абагульненыя падпраграм, якія прымаюць пэўныя наборы ўваходных параметраў, але можа выконваць функцыі на розныя ўваходы. Затым яны часопісе пасяджэнняў, на якіх працэдура фактычна ўжываецца. У гэтым метадзе, канкрэтны ўклад у і выхаду з кожнай падпраграмы выразна і лаканічна дакументальна.

    • Апошні падыход вырабляе праграмнае забеспячэнне, якое, як правіла, больш надзейнай і стабільнай на працягу доўгага часу (не кажучы ўжо выкарыстоўвацца іншымі), і лягчэй аднавіць, што было зроблена ў пэўны час. Іншыя перавагі, якія могуць мець вырашальнае значэнне, у тым, што ў пісьмовым выглядзе больш абагульненыя падпраграмы, у вас больш шанцаў правесці час перагледзець логіку, адэкватна дакумент, што працэдура робіць, і лавіць памылкі друку (якія могуць вам у ракавіне Асноўны падыход праграмы). Я знайшоў, што гэта значна больш надзейнымі, чым "адным стрэлам" Асноўны праграмны падыход.

    • Які б метад вы карыстаецеся, вы павінны часопіс усё, калі вы робіце сур'ёзную працу.

    • Хоць магчыма для аб'яднання шматлікіх працэдур IDL ў адзін файл *. Pro ​​і сабраць іх усе з дапамогай адной каманды, гэта прадухіляе вас ад выкарыстаньня дапамогі працэдуры чалавек, у якім пералічаны загалоўкі на аснове выдуманымі імёнамі файлаў. Гэта таксама дазволіць прадухіліць file_which ад размяшчэння убудаваных праграм. Калі вы маеце справу з вялікімі пакетамі з шматлікімі падпраграм, якія лепш трымаліся разам, гэта больш чыстых і менш заблытанай ў доўгатэрміновай перспектыве захаваць усе працэдуры ў асобных файлах. Вы заўсёды можаце напісаць пакетнай кампіляцыі файлаў, якія злавіць ўсіх працэдур, неабходных для дадзенай задачы. Ці вы можаце проста дазволіць аўтаматычная сістэма кампіляцыі знайсці і сабраць праграмы, калі яны ўпершыню спасылкі. Гэта менш праблем і гэтак жа хутка.



    III. Дабаўленую


    ДАДАТАК: IDL SETUP

    [Да Змест]

    Перад выкананнем IDL, вы павінны вызначыць адмысловы набор зменных IDL навакольнага асяроддзя, так што LINUX і IDL ведаць, дзе шукаць розныя IDL выкананы і праграмныя пакеты.

    Калі вы выкарыстоўваеце UVa астраноміі сістэма па змаўчанні дэпартамента, вам будзе аўтаматычна настроены на выкарыстанне апошняй версіі IDL у тым ліку мус пакет усталяваны на нашых лакальных сервераў. Калі вы хочаце выкарыстаць сістэмы па змоўчванні, вы можаце ігнараваць астатнюю частку гэтага раздзела, за выключэннем хваравітае цікаўнасць.

    З іншага боку, калі вы хочаце наладзіць IDL канфігурацыі, вам неабходна ведаць дэталі розныя зменныя асяроддзя.

    Каб вызначыць асяроддзя IDL зменных, якія вы павінны крыніца спецыяльны файл idl_env.

      Вы не можаце змяніць змест idl_env файл або зменныя асяроддзя пасля IDL пачынае выкананне.

      Файл, які наладжвае змаўчанні сесіі на Дэпартамент сеткі астраноміі называецца / Astro / IDL / idl_env.csh. (Для BASH сесіі, выкарыстоўваць idl_env.sh.)

      Акрамя таго, вы можаце вызначыць розныя неабходныя IDL зменныя асяроддзі ст. Увайсці або. Cshrc файлаў. Аднак, гэта чыстай захаваць усе гэтыя азначэнні разам у idl_env файл.

    Першы элемент, які павінен быць вызначаны складае $ IDL_DIR, размяшчэнне галоўнай дырэкторыі IDL. Унутраная IDL выкананых файлаў захоўваюцца там. Якія $ IDL_DIR вы вызначаеце вызначае, якую версію IDL вы будзеце выконваць.

      Кожны набор выкананых файлаў упаўнаважаным ITTVIS для запуску толькі на пэўных хастоў, так што вы павінны паказаць $ IDL_DIR ў адпаведны каталог для вашага бягучага хаста для запуску IDL іншыя, чым у 7 хвілін, зрэзаная, "дэма" рэжыме. Выкананыя файлы павінны быць сумяшчальныя з бягучай версіяй аперацыйнай сістэмы працуюць на вашым кампутары.

    Вы таксама павінны пазначыць размяшчэнне файла ліцэнзіі IDL, які дазваляе хост выканаць IDL. Ліцэнзіі выдаюцца на адзін або некалькі хастоў. Ліцэнзія UVA падтрымлівае 50 хастоў адначасова. Пераменная асяродку, якія паказваюць на файл ліцэнзіі з імем $ LM_LICENSE_FILE.

    Вы таксама павінны ўказаць шлях пошуку для ўсіх *. Pro ​​працэдуры вы жадаеце выкарыстоўваць (акрамя ўласных працэдур ITTVIS).

      Шлях вызначаны ў зменнай абалонкі Linux $ IDL_PATH, які ператвараецца ў сістэмнай зменнай IDL! Шлях.

      Як толькі $ IDL_PATH была вызначана, яна не можа быць зменены на працягу сесіі IDL.

      па змаўчанні IDL ў адсутнасць ўказанага шляху з'яўляецца выкарыстанне толькі бягучых каталогам.

      Калі IDL шукае імя руціны, шлях шукаецца ў парадку ад першай пазіцыі да апошняга. Першы файл з чаканым імя выконваецца.

      Шлях пошуку павінна ўключаць у сябе бібліятэку IDL карыстальніка (распаўсюджваецца з роднай IDL), бібліятэка IDL Астранамічныя карыстальніка, каталог ATV, і мусам з каталога.

      Шлях павінен таксама ўключаць уласны IDL каталогаў і любых іншых каталогаў, якія змяшчаюць падганяць працэдуры якога вы хочаце выклікаць не рабіць іх у бягучым каталогу.

      Сцеражыцеся некалькі версій той жа праграмы (напрыклад, версія AstUseLib і версію бібліятэкі карыстальніка)! Вы павінны арганізаваць свой ​​шлях так, што пераважная версія адбываецца спачатку ў шляху.

      У UVA, AstUseLib версіі з'яўляюцца пераважнымі, і павінен быць змешчаны спачатку ў вашым шляху, за выключэннем уласнага IDL каталога.

      Рэкамендаваны шляху структуры (гл. прыклады ніжэй сінтаксіс):

         
          [Бягучы каталог], [ваш IDL каталог], [іншыя спецыяльныя мясцовыя
          *. Пра бібліятэкі, калі такія маюцца], [Астраномія карыстальніка Бібліятэка], [мус] 
          [ATV], [IDL Бібліятэка карыстальніка]. 

    Асобна, калі вы хочаце выкарыстоўваць databasing праграмнае забеспячэнне, вы павінны пазначыць размяшчэнне базы дадзеных IDL (zdbase каталог)..

    Для таго, каб наладзіць IDL сесіі Акрамя таго, вы можаце вызначыць $ IDL_STARTUP зменнай асяроддзя. Файла, у якім гэтая пераменная пункту будзе выкананы ў пачатку сеансу IDL. Гэты файл запуску можа выканаць адвольны лік іншых праграм IDL і сцэнарыяў. Па змаўчанні ў UVa гэта выканаць запуск mousse_startup.pro файл. Сярод іншага, гэта выконвае працэдуру cinit.pro, многія працэдуры мус будзе памылкай, калі cinit не выконваецца.

    Нарэшце, idl_env файл таксама ўстанаўлівае псеўданімаў для розных IDL выкананых файлаў.

    Калі вы даеце каманду IDL пад наступныя наладкі, гэта тое, што адбываецца:

    1. Выкананы IDL, размешчаны ў $ IDL_DIR здабываецца

    2. ITTVIS / IDL ліцэнзіі правяраецца

    3. Калі ваш кампутар мае права выкарыстоўваць IDL, нармальная праграма выканана

    4. Калі вы не ліцэнзаваны для IDL, праграма працуе ў 7-хвілінны "Дэма" рэжыме

    5. Зменных абалонкі, пачынаючы з IDL пераўтворацца ў адпаведныя сістэмы ўнутранага IDL зменных

    6. Файл $ IDL_STARTUP выконваецца, калі ён вызначаны.



    ДАДАТАК B: SETUP тэставай асяроддзі

    [Да Змест]

    
    
    ### This is the UVa Astronomy LINUX system default env file 
    ### as installed on the department server, March 2009.
    ### Location is:  /astro/idl/idl_env.csh
    
    
    # C shell commands to define IDL environment variables and aliases.
    #
    # Script name: idl_env.csh
    #
    # This script is used by C shell users to define 
    # the environment variables and aliases required by IDL
    # related commands.
    #
    # To execute this script, give the following command; or,
    # for automatic execution, place it in your.cshrc file.
    #
    #    source /astro/idl/idl_env.csh
    #
    # To overwrite the defaults set in this file, you can source other
    # setup files from your individual.cshrc file.
    #
    
    ##### 
    # System choice - deprecated 03-07-11
    #####
    # set sys=`uname -a | awk '{print $3}'`
    # if ($sys == 5.6) then
    #          setenv IDL_DIR          /net/astsun.astrosw/idl/
    #       else
    #          setenv IDL_DIR          /net/jeeves.common/rsi/idl/
    # endif
    
    # Note: the March 2009 configuration substitutes a departmental version
    #       of IDL v7.0 (/astro/itt/idl) for the UVa v6.4 version
    #       (/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/help
    setenv IDL_HELP         /astro/itt/idl/help
    
    # License file
    
    #setenv LM_LICENSE_FILE /common/rsi/license/license.dat
    setenv LM_LICENSE_FILE /astro/itt/license/license.dat
    
    # Local packages
    
    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 is the location of the IDL-formatted databases 
    
    setenv ZDBASE           /astro/idl/zdbase
    
    # Notes on IDL_PATH
    # 
    # Symbol "+" means that the path will be expanded to include all
    #   subdirectories within the given directory.  
    # The user's own IDL programs are assumed to be in a directory named,
    #   or linked to, "idl" under the user's home directory
    # Directory $IDL_HOME/lib contains the IDL User's Library of
    #   standard user-written utility routines.  
    
    setenv IDL_PATH         ".:+~/idl:/astro/idl/UVAlocal:+${ASTROLIB_DIR}:${ATV_DIR}:+${MO
    USSE_DIR}:+${MOUSSE98_DIR}:+${IDL_HOME}/lib:+${IDL_HOME}/examples:+${PIA_LOC_GEN}:+${FU
    SE_DIR}"
    
    setenv UIT_DATA         ${IDL_HOME}/data
    
    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 insight $IDL_DIR/bin/insight
    alias idldemo $IDL_DIR/bin/idldemo
    
    alias pia $PIA_LOC_GEN/PIA
    
    # The following IDL startup file will be executed before
    #    each IDL session.  User can specify a different
    #    startup in his/her.cshrc file.
    
    setenv IDL_STARTUP /astro/idl/startup/mousse_startup.pro
    
    

    ДАДАТАК C: мус файл запуску ПРЫКЛАД

    [Да Змест]

    "Запуск" файлы камандныя файлы, якія аўтаматычна выконваюцца пры IDL пачынае працаваць. Яны дазваляюць карыстачу наладзіць яго / яе IDL сесіі.

    Файл запуску часта змяшчаюцца ў $ IDL_DIR. Аднак, ён можа быць дзе заўгодна. Для таго, каб IDL, каб знайсці яго, неабходна паказаць у зменнай асяроддзі $ IDL_STARTUP да яго. Калі гэтая пераменная не вызначана, не запуску файла будзе выкананы.

    Гэты прыватны прыклад вызначае спецыяльныя "сістэмы зменных" і агульных блокаў выкарыстоўваюцца мус пакет для апрацоўкі малюнкаў. Гэтыя паляпшэння эфектыўнасці пакета і скараціць лік надрукаваныя на машынцы запісу карыстальнік павінен зрабіць, каб выкарыстоўваць яго.

    Змест mousse_startup.pro:

    
      ; STARTUP FILE mousse_startup.pro
      ; Last Modified: 15 May 1992, 30 Sep 93, 27 Dec 93, 22 Aug 97
    
    print, "Running mousse_startup.pro..."
    print, "For help on AstUseLib and Mousse routines, use the Mousse MAN procedure."
    
    setplot, 'X'
    DEFSYSV,'!DEBUG',0
    DEFSYSV,'!TEXTUNIT',0
    DEFSYSV,'!TEXTOUT',1
    DEFSYSV,'!PRIV',0
    defsysv,'!psprinter','astro-hp'     ;  UVA default printer
    cinit              ; CINIT sets up MOUSSE common blocks 
    !PROMPT = 'IDL>'
    !EDIT_INPUT = 100
    on_error,1         ; Return to main program in case of error
    print,' *** on_error,1 is default ***'
    print,' *** If terminal is vt100/tek, type SETPLOT,0'
    
    

    ДАДАТАК D: X-Windows УВАГА

    [Да Змест]

    Гэта кіраўніцтва мяркуе, што вы выконваеце IDL знутры асяроддзі X-Windows. Дык вось: па-першае, вы павінны пачаць вашыя вокны сістэмы і адкрытых адпаведнае акно для ўводу каманд IDL. Размяшчэнне вітрын адкрыты розныя дадаткі IDL можна кіраваць у многіх выпадках. Звярніцеся да апісання XPos пад акном каманды. Карысна месца вітрын ад вашага акна каманднага радка, дзе гэта магчыма. Вы можаце перамяшчаць існуючыя вокны з дапамогай мышы.

    На Apple Mac, вы павінны звычайна ўручную запусціць X11 праграмы. Вы можаце выбраць адлюстраванне класа манітора з яго меню наладкі, змены тут не ўступяць у сілу толькі пасля выхаду і паўторнага запуску X11. Вы павінны выканаць IDL знутры X-Window, каб выкарыстоўваць графіку.

    Звычайна, вы запускаеце IDL на лакальным кампутары з дысплеем на лакальным тэрмінале. Для запуску IDL на аддалены хост, які падтрымлівае X-акна з дысплеем на лакальным тэрмінале, выканайце наступныя дзеянні:

    1. Змяніць. Xinitrc файл на лакальным кампутары, каб ўключаць заяву xhost [аддалены хост], дзе [аддалены хост] = поўнае імя сеткі прымаючага IDL вы хочаце выкарыстаць. Напрыклад:

      xhost parfait.gsfc.nasa.gov

    2. Пачатак X-Windows на лакальным кампутары.

    3. SSH або Telnet для аддаленага хаста IDL і Увайсці

    4. Для атрымання X-Windows выхад з прымаюць IDL на лакальным кампутары, увядзіце

      SetEnv DISPLAY [мясцовых]: 0,0

      дзе [мясцовых] гэта поўнае сеткавае імя лакальнага кампутара, напрыклад,

      SetEnv DISPLAY bonkers.astro.virginia.edu: 0,0

    5. Пачатак IDL на выдаленай машыне

    6. Новыя вокны створаны IDL павінен з'явіцца на вашым тэрмінале. Вядома, адлюстраванне дадзеных у гэтым рэжыме будзе павольней, чым калі б вы былі запушчаныя на лакальным кампутары.

      Popular Links