Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Moduł Python umożliwia wykorzystanie języka i środowiska Python do rozszerzenia możliwości SWIP5. W szczególności bibliotek sejsmicznych m.in ObsPy. Można tworzyć własne skrypty Pythona, które zachowują się jak wtyczki programu SWIP5, m.in rozbudowują menu programu i mogą być z menu wywoływane.

...

Wtyczkami napisanymi w Python, są odpowiednie skrypty napisane w języku Python, zawierające informacje potrzebne do rozpoznania ich jak moduły dla SWIP5  i umieszczone w podkatalogu Python. Skrypty te będą widoczne, jako pozycje w menu programu SWIP5, których wybranie powoduje przesłanie odpowiednich danych do programu Python, wykonanie zadanego programu i przekazanie odpowiednich danych z powrotem do programu SWIP5. Są to typowe skrypty Pythona poprzedzone definicjami dla SWIP, które są odpowiednimi liniami na początku skryptu traktowanymi przez Python, 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 Python.Skrypty te mogą być wywoływane w programie Python bez pośrednictwa SWIP-a, co pozwala je testować przed dodaniem do programu.

...

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 Python . Oczywiście w przypadku testowania skryptów w samym Pythonie dane trzeba wczytać przed wywołaniem skryptu. Można korzystać w skryptach z innych bibliotek, ale trzeba zdefiniować do nich dostęp.

...

# !SWIP5
# !MENU Create IS-EPOS catalog
# !QUAKEML
catalogSWIP5.write("example.dat", format="NORDIC")

Anchor
Konfiguracja menu w skryptach Python
Konfiguracja menu w skryptach Python
Konfiguracja menu w skryptach Python

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

...

# !SWIP5
# !MENU Create IS-EPOS catalog

Python→Create IS-EPOS catalog

# !SWIP5
# !MENU Create catalogs
# !MENU IS-EPOS catalog

Python→Create catalogs→

# !SWIP5
# !TOP MENU Filters
# !MENU Python filter


Anchor
Konfiguracja przekazywania danych do programu Python
Konfiguracja przekazywania danych do programu Python
Konfiguracja 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 dostępne w skrypcie jako zmienna globalna catalogSWIP5 typu EventQuakeML.

# !CURRENT EVENT

2

EventParameters QuakeML – cała struktura QuakeML, w tym wszystkie wczytane zjawiska, jest przekazywana do programu Maltab Python. 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 dostępny w skrypcie jako zmienna globalna catalogSWIP5 typu EventQuakeML.

# !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 dostępne 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 dostępne 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 dostępne w skrypcie jako zmienna globalna streamSWIP5 typu Stream.

# !DATA FROM SELECTION


Dane importowane z Pythona


6Opracowanie zjawiska trzymane w zmiennej catalogSWIP5zostaje zaimportowane do SWIP5 zastepując istniejace zastępując istniejące opracowanie lub katalog# !REPLACE QUAKEML
7Opracowanie zjawiska trzymane w zmiennej catalogSWIP5zostaje zaimportowane do SWIP5. Dodawane są do bieżacego bieżącego opracowania zjawiska nowe wartości: originu, magnitudy, magnitudy stacyjnej, amplitutyamplitudy, mechanizmy lub piku. Dodawane są tylko nowe wartości. Nie zmienia się  już stniejacychistniejących. W opracowaniu eksportowanym z pythona musi być zjawisko z ID takim samym jak bieżące zjawiskao zjawisko w SWIP5. W przeciwnym wypadku dane są ignorowane.# !INSERT TO QUAKEML
8Wczytywany jest do SWIP5 plik zapisywany przez skrypt Pythona. W skrypcie musi być komenda zapisu do pliku, którego nazawa nazwa jest w zbiorze konfiguracyjnym.# !READ MINISEED
9Dodawane są do sejsmogramu w SWIP5 kanały z pliku zapisanego przez skrypt Pythona. W skrypcie musi być komenda zapisu do pliku, którego nazawa nazwa jest w zbiorze konfiguracyjnym.# !ADD MINISEED

Parametry zjawisk lub całych biuletynów z QuakeML są przekazywane do Pythona w formacie QuakeML i widzianesą widziane są jako zmienna zmienna catalogSWIP5 bez wgledu względu ile kanałów jest przekazywanych, natomiast zapisy sejsmiczne w formacie MiniSEED i widziane są jakp jako 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.

...