...
Poniżej dwa przykładowe skrypty:
1. Skrypt rysujący w Maltabie ObsPy 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)
endstreamSWIP5.spectrogram(log=True, title='PL network ' + str(st[0].stats.starttime))
2. Skrypt generujący IS-EPOS NORDIC katalog (wcześniej, należy wczytać wszystkie zjawiska do SWIP):
# !SWIP5
# !MENU Create IS-EPOS catalog
# !QUAKEML
addpath 'c:\Users\jwisz\Documents\Python'
addpath 'c:\Users\jwisz\Documents\Python\SWIDB'
Catalog = QuakeML2Catalog(QuakeML);
save('Catalog_VERIS.mat','Catalog','-v6');catalogSWIP5.write("example.dat", format="NORDIC")
Anchor | ||||
---|---|---|---|---|
|
...
Wtedy nazwa „…” będzie traktowana, jako pozycja na belce głównej menu programu SWIP5 np.
# !TOP MENU OBSPY"
Powyższe definicje muszą wystąpić na początku skryptu po linii
...
Poniżej przedstawione są przykładowe definicje w skrypcie i odpowiadające im pozycje w menu:
# !SWIP5 | Python→Create IS-EPOS catalog |
# !SWIP5 | Python→Create catalogs→ |
# !SWIP5 |
Anchor | ||||
---|---|---|---|---|
|
...
przekazywania danych w skryptach Python
Linie definiujące sposób przekazywania danych do Pythona 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 Python. Przedstawia to poniższa tabela:
Dane eksportowane do Pythona | Linie skryptu Python | |
1 | Bieżące zjawisko. Jeżeli SWIP wczytał wiele zjawisk, tylko bieżąco opracowywane (zaznaczone) zjawisko jest przekazywane (patrz Praca na wielu wstrząsach). Opracowanie zjawiska jest dostepne w skrypcie jako zmienna globalna catalogSWIP5 typu Event. | # !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 Pythonie mamy funkcje do tworzenia katalogu lub chcemy w Pythonie padać sejsmiczność danego obszaru, badać statystyki itp. Katalog jest dostepny w skrypcie jako zmienna globalna catalogSWIP5 typu Event. | # !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 Pythona. Kanały sejsmiczne są dostepne w skrypcie jako zmienna globalna streamSWIP5 typu Stream. | # !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 Pythona. Kanały sejsmiczne są dostepne w skrypcie jako zmienna globalna streamSWIP5 typu Stream. | # !DATA FROM ZOOM WINDOW |
5 | Kanały zaznaczone (widoczne, jako niebieskie w oknie głównym) nieobcinane czasowo są wysyłane do Pythona. Kanały sejsmiczne są dostepne w skrypcie jako zmienna globalna streamSWIP5 typu Stream. | # !DATA FROM SELECTION |
Dane importowane z Pythona | ||
6 | Opracowanie zjawiska trzymane w zmiennej catalogSWIP5zostaje zaimportowane do SWIP5 zastepując istniejace opracowanie lub katalog | # !REPLACE QUAKEML |
7 | Opracowanie zjawiska trzymane w zmiennej catalogSWIP5zostaje zaimportowane do SWIP5. Dodawane są do bieżacego opracowania zjawiska nowe wartości: originu, magnitudy, magnitudy stacyjnej, amplituty, mechanizmy lub piku. Dodawane są tylko nowe wartości. Nie zmienia się już stniejacych. W opracowaniu eksportowanym z pythona musi być zjawisko z ID takim samym jak bieżące zjawiskao w SWIP5. W przeciwnym wypadku dane są ignorowane. | # !INSERT TO QUAKEML |
8 | Wczytywany jest do SWIP5 plik zapisywany przez skrypt Pythona. W skrypcie musi być komenda zapisu do pliku, którego nazawa jest w zbiorze konfiguracyjnym. | # !READ MINISEED |
9 | Dodawane są do sejsmogramu w SWIP5 kanały z pliku zapisanego przez skrypt Pythona. W skrypcie musi być komenda zapisu do pliku, którego nazawa jest w zbiorze konfiguracyjnym. | # !ADD MINISEED |
Parametry zjawisk lub całych biuletynów z QuakeML są przekazywane do Pythona w formacie QuakeML i widzianesą jako zmienna catalogSWIP5 bez wgledu ile kanałów jest przekazywanych, natomiast zapisy sejsmiczne w formacie MiniSEED .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 WaveFormsi widziane są jakp zmienna streamSWIP5. 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.