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.
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.
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
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
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 IDLWybó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 |