Biblioteka funkcji Matlab wspomagająca współpracę ze SWIP5 może być podzielona na kilka rodzajów funkcji
1. Funkcje wspomagające dostęp do pól struktury MatlabQML i operacje na nich
- getOptional - pobiera z obiektu MatlabQML opcjonalne pole. Zwraca jego kopię lub obiekt pusty jeżeli pole jest niezdefiniowane
- getOptionalTree
- [value] = getOptionalValue( owner, field ) - Funkcja zwraca kopię opcjonalnej wartości typu rzeczywistego (obiekt typu RealQuantity), całkowitego (obiekt typu IntQuantity) lub czasu (obiekt typu TimeQuantity) jeśli obiekt istnieje lub NaN, jeśli nie istnieje. W wielu strukturach QuakeML wartość ta i obiekt typu Quantity ją przechowujący nie są opcjonalne i musi być zaznaczona w QuakeML. W takich przypadkach użycie tej funkcja nie jest wymagana. Szybsze jest wywołanie po prostu „owner.field.value”. Wejściowe wartości: owner - struktura zawierająca obiektu typu Quantity, field - nazwa pola (ciąg znaków) z obiektem.
- isOptional - sprawdza, czy w obiekcie MatlabQML jest zdefiniowane opcjonalne pole
- [result] = isOptionalTree( owner, field1, field2,...) - Funkcja testuje istnienie opcjonalnego drzewa obiektów struktury MatlabQML obiektu owner. Zwraca fałsz jeżeli dla kolejnych pół field* w strukturze obiekt o danej nazwie jest pusty lub nie istnieje. W przypadku tylko jednego pola w ścieżce, funkcja isOptionalTree jest wolniejsza niż funkcja isOptional, której należy użyć zamiast tego.
- [chanEq] = channelsEqual( channeln, channel2 ) - Funkcja porównuje dwie nazwy kanałów obejmujące kody sieci, stacji, lokalizacji i kanału w formacie WaveformStreamID. Jeśli w jednej nazwie kod sieci jest pusta lub nie istnieje, ignoruje porównanie sieci kodów sieci. Tak samo jest w przypadku kodu lokalizacji. Pierwsze zmienna wejściowa (channeln) może być wektorem WaveformStreamID, wtedy wynik jest wektorem logicznym. Druga zmienna wejściowa (channel2 ) musi być pojedynczym obiektem WaveformStreamID.
- [staEq] = stationsEqual( stationn, station2 ) - Funkcja porównuje dwie nazwy kanałów obejmujące kody sieci i stacji w formacie WaveformStreamID. Jeśli w jednej nazwie kod sieci jest pusta lub nie istnieje, ignoruje porównanie sieci kodów sieci i porównuje tylko kody stacji. Pierwsze zmienna (stationn) może być wektorem WaveformStreamID, wtedy wynik jest wektorem logicznym. Druga zmienna wejściowa (station2) musi być pojedynczym obiektem WaveformStreamID.
- [item, index] = findPublicID( tabela, id ) - Funkcja wyszukuje w tabeli element o identyfikatorze publicID = id. Tabelą może być dowolna tablica struktur zawierająca obiekty publicID, np.: events, pick, amplitudes, origins. Identyfikator (id) może być ciągiem znaków lub strukturą publicID z polem resourceID. Jeśli szukany identyfikator publiczny nie istnieje lub jest błędny, funkcja zwróci pustą zmienne. Element zwraca kopię znalezionego elementu w tabeli (item) oraz jego indeks (index) w tablicy, jeżeli chcemy modyfikować obiekt.
Funkcje getOptional, getOptionalTree, i getOptionalValue należy zawsze stosować dla pół opcjonalnych- oznaczanych w opise QukeML jako [0..1] lub [0..*]. W przypadku tylko pół struktury, które na pewno występują w QuakeML można stosować odwołania do nich poprzez kropkę, t.j. np. zamiast wywołania value = getOptional( owner, 'field' ) zastosować value =owner.field albo zamiast value = getOptionalTree( owner, 'field1', 'filed2') zastosować value = owner.field1.filed2 .
2. Funkcje zamieniające obiekty MatlabQML na typowe obiekty Matlaba
- stationName2string
- channelName2string
- unixTimeSamples
- timeQML2Date
3. Funkcje ogólne pobierające typowe wartości sejsmiczne z obiektu zjawiska sejsmicznego (event)
- [latitude, longitude, depth, time, porigin] = event2coordinates( event, ... ) - Funkcja zwraca współrzędne zjawiska. Używa getOrigin, aby uzyskać współrzędne. (Zobacz funkcję getOrigin). Wejście: event - obiekt event QuakeML, Parametry opcjonalne: 'methodID', method, ... - znajduje tylko źródła wstrząsu zlokalizowane przez metodę o nazwie method; 'earthModelID', model, ... - znajduje tylko współrzędne zlokalizowany przy użyciu modelu prędkości Ziemi o nazwie model. Wartości wyjściowe: szerokość (latitude) i długość (longitude) geograficzna w stopniach, głębokość (depth) hipocentrum w km, czas wstrząsu (time) w formacie Matlab DateTime, porigin - kopia kopia obiektu origin. Jeśli nie może znaleźć źródła, funkcja zwraca wartości NaN i pusty porigin. Uwaga, w przypadku istnienia kilku lokalizacji i braku lokalizacji preferowanej, wybór lokalizacji, której współrzędne zostaną wypisane, może być losowy.
- [value, type, magnitude] = getMagnitude( event, fn1, fn2, ...) - Funkcja wynajduje magnitudę zjawiska. Najpierw sprawdza, czy którykolwiek z nazw magnitud fn* jest preferowaną magnitudą zjawiska. Następnie szuka nazwy magnitudy fn1. Gdy nie może jej znaleźć, szuka magnitud stacyjnych fn1 i zwraca ich średnią wartość. Gdy nie może znaleźć magnitudy fn1, szuka magnitudy fn2 i tak dalej. Zwraca wartości: value - wartość magnitudy, type - typ magnitudy, magnitude - kopia obiektu magnitudy, lub wartość pustą w przypadku wartości średniej magnitud stacyjnych. Przykładowe wywołanie: magnitude = SWIP5EventMagnitude( event, 'ML' ). Uwaga, w przypadku istnienia kilku równorzędnych magnitud tego samego typu i braku magnitudy preferowanej, wybór magnitudy przez tą funkcję może być losowy.
- getMagnitudeFromStaMagnitudes
- getMeanMag
- getMomentTensor
- [origin] = getOrigin( event, ... ) - Funkcja pobiera obiekt źródła (origin) z obiektu zjawiska sejsmicznego (event). Jeśli preferowane źródło jest niezdefiniowane, przyjmuje ostatnie źródło z listy źródeł. Jeśli jest ich wiele, to ostatnie może być przypadkowe. Parametry opcjonalne: 'methodID', method, ... - znajduje tylko źródła wstrząsu zlokalizowane przez metodę o nazwie method; 'earthModelID', model, ... - znajduje tylko współrzędne zlokalizowany przy użyciu modelu prędkości Ziemi o nazwie model. Wyjście: origin - kopia obiektu źródła w formacie MatlabQML. Jeśli pochodzenie nie istnieje lub nie spełnia opcjonalnego parametru, wyjście jest pustym obiektem. Uwaga, w przypadku istnienia kilku lokalizacji i braku lokalizacji preferowanej, wybór lokalizacji może być losowy.
- getPicks
4. Funkcja do pracy na katalogu (wielu wstrząsach)
- forAllEvents
5. Funkcje pomocnicze do manipulacja na parametrach (opcjach) wołania funkcji matlabowej
- arispar
- armanypars
- aroptions
- arparameters
6. Inne funkcje wspomagające przygotowanie danych do pracy w SWIP5 niezwiązane z MatlabQML.
- createXMLShapes
- ISEPOSVelcityModel_to_Vel2Grid