You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Current »

Wtyczkami napisanymi w Matlab, są odpowiednie skrypty napisane w języku Matlab, zawierające informacje potrzebne do rozpoznania ich jak moduły dla SWIP5  i umieszczone w podkatalogu Matlab. Skrypty te będą widoczne, jako pozycje w menu programu SWIP5, których wybranie powoduje przesłanie odpowiednich danych do programu Matlab, wykonanie zadanego programu i przekazanie odpowiednich danych z powrotem do programu SWIP5. Są to typowe skrypty Matlaba poprzedzone definicjami dla SWIP, które są odpowiednimi liniami na początku skryptu traktowanymi przez Matlab, jako komentarze. Linie te są poprzedzone znakami "% !"Na ich podstawie  podstawie program SWIP5 rozpoznaje je, jako funkcje dla programu SWIP5, umieszcza w odpowiednich pozycjach menu, przekazuje i odbiera odpowiednie dane z programu Matlab.Skrypty te mogą być wywoływane w programie Matlab bez pośrednictwa SWIP-a, co pozwala je testować przed dodaniem do programu.

Skrypt taki musi zaczynać się linią:

% !SWIP5

informującą program, że jest to skrypt przeznaczony dla programu SWIP5. Następnie musi wystąpić jedna, lub kilka linii opisujących menu:

% !MENU …

a następnie kilka linii opisujących sposób przekazywania danych miedzy SWIP5 a Matlab . Oczywiście w przypadku testowania skryptów w samym Matlabie dane trzeba wczytać przed wywołaniem skryptu. Można korzystać w skryptach z innych bibliotek, ale trzeba zdefiniować do nich dostęp.

Poniżej dwa przykładowe skrypty:

1. Skrypt rysujący w Maltabie sejsmogramy z okna powiększenia:

% !SWIP5
% !MENU Test plot
% !DATA FROM ZOOM WINDOW
for i=1:numel(WaveForms)
    subplot(numel(WaveForms),1,i)
    plot(WaveForms(i).data.data)
    title(WaveForms(i).name)
end

2. Skrypt generujący IS-EPOS katalog (wcześniej, należy wczytać wszystkie zjawiska do SWIP):

% !SWIP5
% !MENU Create IS-EPOS catalog
% !QUAKEML
addpath 'c:\Users\jwisz\Documents\MATLAB'
addpath 'c:\Users\jwisz\Documents\MATLAB\SWIDB'
Catalog = QuakeML2Catalog(QuakeML);
save('Catalog_VERIS.mat','Catalog','-v6');

Konfiguracja menu w skryptach Matlab

Menu definiowane jest przez jedną, lub kilka linii opisujących menu w skrypcie, w postaci:

% !MENU …

gdzie „…” oznaczają hasło menu programu SWIP5. Jeżeli występuje jedna linia opisująca menu, pozycja ta zostanie dopisana bezpośrednio do podmenu Matlab. Jeżeli występuje kilka linii opisujących menu, zostanie stworzone odpowiednie drzewo od podmenu Matlab. Istnieje możliwość dopisania wywołania funkcji poza podmenu Matlab. W tym celu pierwsza i tylko pierwsza pozycja menu powinna być:

% !TOP MENU …

Wtedy nazwa „…” będzie traktowana, jako pozycja na belce głównej menu programu SWIP5. Powyższe definicje muszą wystąpić na początku skryptu po linii

% !SWIP5

W przeciwnym wypadku program SWIP5 ignoruje ten skrypt.

Poniżej przedstawione są przykładowe definicje w skrypcie i odpowiadające im pozycje w menu:

% !SWIP5

% !MENU Create IS-EPOS catalog

% !SWIP5

% !MENU Create catalogs

% !MENU IS-EPOS catalog


% !SWIP5

% !TOP MENU Filters

% !MENU Matlab filter

Konfiguracja menu w skryptach Matlab

Linie definiujące sposób przekazywania danych do Matlaba muszą znajdować się poniżej linii definiujących menu. W zależności od odpowiednich linii na początku skryptu odpowiednie dane są przekazane do programu Matlab przedtawia to poniższa tabela:


Dane

Linie skryptu Matlab

1

Bieżące zjawisko. Jeżeli SWIP wczytał wiele zjawisk, tylko bieżąco opracowywane (zaznaczone) zjawisko jest przekazywane (patrz Praca na wielu wstrząsach)

% !CURRENT EVENT

2

EventParameters QuakeML – cała struktura QuakeML, w tym wszystkie wczytane zjawiska, jest przekazywana do programu Maltab. Jest to przydatne np. gdy w Matlabie mamy funkcje do tworzenia katalogu lub chcemy w Matlabie padać sejsmiczność danego obszaru, badać statystyki itp.

% !QUAKEML

3

Wszystkie kanały widoczne w oknie głównym programu SWIP5 obcinane czasowo do sygnału widocznego w oknie głównym są wysyłane do Matlaba.

% !DATA FROM MAIN WINDOW

4

Wszystkie kanały widoczne w oknie powiększenia programu SWIP5 obcinane czasowo do sygnału widocznego w oknie powiększenia są wysyłane do Matlaba.

% !DATA FROM ZOOM WINDOW

5

Kanały zaznaczone (widoczne, jako niebieskie w oknie głównym) nieobcinane czasowo są wysyłane do Matlaba.

% !DATA FROM SELECTION

Parametry zjawisk lub całych biuletynów z QuakeML są przekazywane do Matlaba w formacie MatlabQML. Istnieje biblioteka wspomagając operacje na danych MatlabQMLw Matlabie (https://git.plgrid.pl/projects/swip/repos/swip5_matlab_library/browse), która może być wykorzystana w skryptach.

Bieżące zjawiska lub cały biuletyn w QuakeML (tabela, linie 1,2) są widziane w skrypcie jako zmienna QuakeML, natomiast zapisy sejsmiczne (tabela linie 3-5) są widziane jak zmienna WaveForms. W skrypcie może wystąpić jedna linia opisująca sposób przekazania QuakeML i jedna linia opisująca sposób przekazania zapisów sejsmicznych. 



  • No labels