Nowości w IDL 8.5

Najnowsza wersja programu IDL 8.5 zawiera nowe funkcje i możliwości, tj. nowa dwukierunkowa integracja IDL-Python Bridge, nowe procedury szeregów czasowych, nowy próbnik kolorów, ulepszenia funkcjonalne programowania i wiele innych.

Python Bridge
IDL posiada teraz bezpośrednią dwukierunkową integrację z IDL do języka Python i z Python do IDL. Z utworzonego kodu IDL, można uzyskać dostęp do dowolnego modułu Pythona, transferować zmienne i wywołać wbudowane funkcje. Podobnie z kodu Pythona, można przywołać IDL, transferować zmienne i manipulować obiektami IDL. Python Bridge posiada następujące cechy:
  • Współpraca z Python 2.7+ i Python 3.4+
  • Zapewnienie dostępu do wszystkich procedur IDL i modułów Pythona
  • Możliwość widoku jak dla obiektu IDL lub modułu Pythona
  • Wszystkie informacje wyjściowe Python Bridge są przemapowane na standardowe wyjścia
  • Automatyczne zarządzanie wielkością liter oraz wierszy i kolumn
  • Możliwość wykonywania dowolnych ciągów poleceń w dowolnym języku
  • Automatyczna konwersja danych macierzy IDL do macierzy NumPy
  • Podczas wywoływania procedur / metod dane są przekazywane poprzez odniesienie (referencje)
  • Może przekazywać zmienne main w obie strony

Na przykład w IDL, można od teraz wykonać następujące polecenia Python celem stworzenia wykresu matplotlib:

IDL> ran = Python.Import('numpy.random')
IDL> arr = ran.rand(100) ; call "rand" method
IDL> plt = Python.Import('matplotlib.pyplot')
IDL> p = plt.plot(arr) ; call "plot", pass an array
IDL> void = plt.show(block=(0) ; pass keyword

W IDL, można także bezpośrednio wprowadzić tryb wiersza poleceń Python (konsolę):

IDL> >>>
>>> import matplotlib.pyplot as plt
>>> import numpy.random as ran
>>> arr = ran.rand(100)
>>> p = plt.plot(arr)
>>> plt.show()
>>>
IDL>

Również z poziomu języka Pythona można łatwo uzyskać dostęp do pełnej funkcjonalności IDL:

>>> from idlpy import IDL
>>> import numpy.random as ran
>>> arr = ran.rand(100)
>>> p = IDL.plot(arr, title='My Plot')
>>> p.color = 'red'
>>> p.save('myplot.pdf')
>>> p.close()

Więcej informacji można uzyskać w dokumentacji Python Bridge w pomocy IDL.

IDL IPython Notebook Kernel
Wraz z Python Bridge, IDL posiada teraz jądro pozwalające uruchomić IDL w IPython notebook. Szczegóły zamieszczone są w dokumentacji Python Bridge w Pomocy IDL

Wybór kolorów
Funkcja DIALOG_COLORPICKER pozwala interaktywnie wybrać kolor za pomocą okna dialogowego wyboru. Podstawowe okno dialogowe zawiera 64 standardowych kolorów. Użytkownik może ustawić preferowane kolory za pomocą słów kluczowych.

Wskaźniki funkcji
IDL_Object ma nową metodę _overloadFunction, która pozwala na tworzenie "wskaźników funkcji" w IDL. Poprzez wdrożenie IDL_Object :: _ overloadFunction dla swojej klasy, można mieć swój obiekt , który zachowuje się jak funkcja IDL.

Dynamiczne metody
IDL_Object posiada metodę _overloadMethod, która pozwala na tworzenie dynamicznych metod w IDL. Poprzez użycie IDL_Object :: _ overloadMethod dla danej klasy, użytkownicy mogą przywołać dowolną metodę na swoim obiekcie. Metoda IDL_Variable :: ToList Poprzez użycie nowej metody IDL_Variable :: ToList, w łatwy sposób możliwe jest konwertowanie zmiennych IDL na listy.

Funkcja WGET
Funkcja WGET, pozwala sięgać bezpośrednio do plików poprzez określenie ich adresów URL

IDL> WGET('http://www.google.com/index.html', FILENAME='test.html')
C:test.html

Uaktualnienia
Możliwe wypełnianie wzorami wykresów słupkowych, elips i wielokątów. Wykresy słupkowe, elipsy i wielokąty mają teraz cztery nowe właściwości: PATTERN_BITMAP, PATTERN_ORIENTATION, PATTERN_SPACING i PATTERN_THICK. Można użyć tych właściwości, aby utworzyć wzory wypełnień lub linię wypełnia.

Na przykład:

data = (RANDOMU(s,10)+0.1) < 1
bottom = (data/4-0.1) > 0
b = BARPLOT(data, $
BOTTOM_VALUES=bottom, $
FILL_COLOR='red', $
BOTTOM_COLOR='yellow', $
C_RANGE=[0,1], $
/HORIZONTAL, PATTERN_ORIENTATION=45, $
PATTERN_SPACING=6, $ PATTERN_THICK=3)


Więcej o nowościach w IDL 8.5 można znaleźć na stronie
http://www.exelisvis.com/docs/whatsnew.html

Script logo