Program structure
A SWIP5 program is made up of a program kernel (in Windows it is the SWIP5.exe file together with dynamic libraries of kernel libraries kept in the same directory as SWIP5.exe) and modules extending the functionality of the program implemented by SWIP5 plugins (in Windows these are dll files and in Linux they are so files) (Fig. 1). All plugins are kept in the Plugins subdirectory.
Jądro programu zawiera możliwości wyświetlania sejsmogramów (patrz Okno główne programu, Okna dodatkowe, Sterowanie wyglądem sejsmogramu), zaznaczania faz sejsmicznych (patrz Zaznaczanie faz sejsmicznych), przeglądania i edytowania opracowania sejsmicznego (patrz Zapisywanie i czytanie wyników opracowania sejsmicznego), raportowania pracy całego pakietu, podłączania modułów oraz przekazywania danych do modułów. Jądro posiada również bibliotekę funkcji przydatnych w różnych modułach.
The program kernel includes the ability to display seismograms (see The main window of the program, Extra windows of the program, Controlling the view of seismograms), pick seismic phases (see Picking phases), browse and edit the elaboration in QuakeML (see Elaboration window), save and read the elaboration in
...
QuakeML XML file (see Writing and reading the seismic study results), report the work, connect modules, and transfer data to modules. The kernel also has a library of functions useful for various modules.
...
The functionality of the kernel is based on four main windows (Fig. 2):
...
- The main window of the program (SWIP5),
...
...
...
...
...
...
- Report window (Report).
Moduły rozszerzające funkcjonalność programu dodawane są do programu w trakcie jego uruchomienia. Program czyta wtyczki zawierające moduły. Niektóre moduły wykorzystują dodatkowo inne wtyczki do swojej pracy. Mogą to być konkretne, pojedyncze komponenty lub wszystkie wtyczki danego typu. Na przykład moduł do czytania sejsmogramów z plików, potrzebuje wszystkich wtyczek do czytania formatów sejsmicznych, natomiast moduł do obliczania magnitudy ML potrzebuje wtyczki z konkretnym modułem do filtracji symulującej sejsmometr Wooda-Andersona. Brak niezbędnych, dodatkowych komponentów może powodować całkowite odłączenie danego modułu lub ograniczenie jego funkcjonalności. Wtyczki podzielone zostały na 5 typów:
...
Modules extend the functionality of the program. They are added to the program during its starup. The program reads plugins that contain modules. Some modules use other plugins additionally for their work. They can be specific, individual plugins or all plugs of a given type. For example, a module for reading seismograms from files needs all plugins to read seismic formats, while a module for ML magnitude calculation needs a plug with a specific filter module simulating a Wood-Anderson seismometer. The lack of the necessary additional plugins may completely disconnect a given module or limit its functionality. Plugins are divided into 5 types:
- Filters (see e.g. Całkowanie, Różniczkowanie, Filtr drugiego rzędu IIR2)
...
...
- Optimisation (
...
- see Optymalizacje),
...
- Seismic formats (e.g. Wtyczki formatów sejsmicznych)
...
- Databases (e.g. Czytanie i pisanie opracowań do SC3DB),
...
Moduły podczas uruchamiania modyfikują menu programu ze względu na fakt iż posiadają one dwa typy funkcjonalności: obliczeniową i graficzną. W przypadku funkcjonalności graficznej otwierane jest własne okno obsługi. Pojedyncze moduły mogą dostarczać programowi kilka funkcjonalności, dawać możliwości otwierania wielu różnych okien i jednocześnie dodawać wiele pozycji do menu programu. Dobierając wtyczki można modyfikować wygląd i funkcjonalność programu. Istnie obecnie biblioteka modułów napisana dla SWIP5 (patrz Podręcznik modułów programu). Można również dodawać własne modułu przez zaprogramowanie odpowiednich wtyczek.
...
During startup, modules modify the program menu. They have two types of functionality: computational and graphical. In the case of graphical functionality, a separate operating window is opened. Single modules can provide a program with several functionalities, give the possibility to open many different windows and add many items to the program menu. By selecting plugins, you can modify the appearance and functionality of the program. There is now a module library written for SWIP5 (see Program manual (modules)). You can also add your own module by writing the program of the appropriate plugin.
The modules work on data kept by n the SWIP program, therefore, inter alia, processing modules do not know where the data is saved or read.
Fig. 1 Scheme of the SWIP5 modular structure
Fig. 2 Windows of SWIP kernel