Versions Compared

Key

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

...

1. Funkcje wspomagające dostęp do pól struktury MatlabQML i operacje na nich

Są to funkcje przydatne do pisania własnych procedur operujących na danych MatlabQML.

  • [value] = getOptional( owner, field) - Funkcja pobiera z obiektu MatlabQML opcjonalne polestruktury MatlabQML opcjonalny obiekt o nazwie field. Zwraca jego kopię lub obiekt pusty jeżeli pole jest niezdefiniowane
  • [value] = isOptionalTree( owner, field1, field2,...) - Funkcja testuje istnienie opcjonalnego drzewa obiektów struktury MatlabQML obiektu owner. Zwraca kopię ostatniego obiektu z listy drzewa lub wartość pustą 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 getOptionalTree jest wolniejsza niż funkcja getOptional, której należy użyć zamiast tego.
  • [value] = getOptionalValue( owner, field ) - Funkcja zwraca kopię opcjonalnej wartości wartość value z opcjonalnego obiektu jeśli obiekt istnieje lub NaN, jeśli nie istnieje. W zależności od typu opcjonalnego obiektu może to to być wartość  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 [result] = isOptional( owner, field) - sprawdza, czy w obiekcie MatlabQML owner jest zdefiniowane opcjonalne pole field. Jeżeli brak pola field lub jest w nim pusty obiekt, zwraca fałsz.
  • [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 p oró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 p oró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.

...

2. Funkcje zamieniające obiekty MatlabQML na typowe obiekty Matlaba

Zamieniają one pewne obiekty MatlabQML do postaci ułatwiającej manipulowanie nimi w Matalabie.

  • [staName] = stationName2string( waveformId ) - Funkcja k onwertuje obiekt waveformId na ciąg nazwy stacji (sieć + stacja) do postaci 'nn.ssss', gdzie nn jest kodem sieci a ssss kodem stacji. W przypadku braku kodu sieci nazwa zwracana jest w postaci '.ssss'.
  • [chanName] = channelName2string( waveformId ) - Funkcja k onwertuje obiekt waveformId na ciąg nazwy kanału(sieć + stacja + lokalizacja + strumeniń) do postaci 'nn.ssss.ll.ccc', gdzie nn jest kodem sieci, ssss kodem stacji, ll kodel lokalizacji a ccc kodem kanału. W przypadku braku kodu lokalizacjin nazwa zwracana jest w postaci kropek, np. 'nn.ssss..ccc'.

  • [timesamples] = unixTimeSamples( data ) - Funkcja tworzy próbki z taktami czasowymi w formacie czasu UNIX (sekundy od 1970-01-01) odpowiadające próbkom w przebiegu. Zmwinne wejsciowe: data - struktura danych Waveform. Funkcja zwraca timesamples - tablicę cazsów kolejnych próbek o takim samym rozmiarze jak próbki sygnału. Przykładowe wywołanie:. t = unixTimeSamples(WaveForms(1).data(1)).

  • [data] = timeQML2Date( czas ) - Funkcja konwertuje pełny format czasu SWIP5 MatlabQML (struktura mikrosekund i łańcuch) na format Matlab DateTime Czasem wejściowym może być struktura TimeQuantity lub sam obiekt czasu.

3. Funkcje ogólne pobierające typowe wartości sejsmiczne z obiektu zjawiska sejsmicznego (event)

Są to najczęściej stosowane funkcje przy operacjach na wstrząsach. Napisane są w wykorzystaniem biblioteki funkcji wspomagających (pkt.1).

  • [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 = SWIP5EventMagnitudegetMagnitude( 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.
  • [value, type, ns] = getMagnitudeFromStaMagnitudes( event, fn1, fn2, ...) - Funkcja 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ść średnia magnitud stacyjnych, type - typ magnitudy, ns - ilość stacji użytych do liczenia magnitudy, lub wartości [NaN, '', 0] w przypadku braku magnitud. Przykładowe wywołanie: magnitude = getMagnitudeFromStaMagnitudes( event, 'ML' ).
  • getMeanMag - Inna wersja liczenia magnitudy z magnitud stacyjnych z dodatkowymi opcjonalnymi parametrami.
  • [ value, type ] = getMomentTensor( focalMechanism ) - Funkcja pobiera macierz MT ze struktury focalMechanism (nie momentTensor) lub NaN, jeśli MT nie istnieje. Zwraca wartość macierzy value:
    | Mtt  Mtp  Mrt |
    | Mtp Mpp Mrp |
    | Mrt  Mrp  Mrr |
    i typ tensora momentu - type: „FULL”, „TRACE0”, „DC” lub pusty „”.
  • [origin] = getOrigin( event, ... ) - Funkcja p obiera 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ł. J eś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.
  • [picks] = getPicks (event, ...) - Funkcja pobiera wybrane piki faz z wstrząsu.Wejście: event - obiekt zdarzenia QuakeMLParametry: ..., 'sta', 'NN.SSS', ... - wyszukaj tylko nazwę stacji w postaci: NN - nazwa sieci, SSS - nazwa stacji. Jeśli sieć jest niezdefiniowana (pusta) kropka musi znajdować się na początku nazwy stacji, np. getPicks( zdarzenie, 'sta', 'VN.TLE'); ..., 'nazwa', 'P', ... - znajdź tylko zdefiniowaną fazę, np. getPicks( zdarzenie, 'name','Pg'). Dozwolonych jest wiele parametrów. np. getPicks(Event, 'sta', 'VN.TLE', 'name','Pg', 'name','Sg').

4. Funkcja do pracy na katalogu (wielu wstrząsach)

...

          Przykłady wywołania forAllEvents:
          magnitudes = forAllEvents(QuakeML, @getMagnitude, 'ML')
          dcr = forAllEvents(QuakeML, @CompareFM);
          resCNUD = linkCell(forAllEvents(QuakeML, @getResiduals, 'Stacja', 'CNUD'));
          evt = forAllEvents(QuakeML, @getOrigin, 'methodID', 'smi:igf.edu.pl/LocSAT');

5. Funkcje pomocnicze do manipulacja na parametrach (opcjach) wołania

...

funkcji Matlabowej

Funkcje to są koniecznie, gdyż wiele pozostałych funkcji korzysta z nich. Można z nich korzystać przy pisaniu własnych funkcji

  • arispar
  • armanypars
  • aroptions
  • arparameters

...

Poniższa lista zawiera funkcje i skrypty przydatne do przygotowania pracy w SWIP5. Nie są one związane z przetawraniuem przetwarzaniem wstrząsów i zapisów sejsmicznych w Matlabie. Funkcje te m.in. pozwalają przygotować parametry do pracy w SWIP5 na podstawie obiektów z platformy Episodes.

  • createXMLShapecreateXMLShapes(filename , shape1, shape2, ..., option1, optional_val1, ..., shapeN, ...) - Funkcja createXMLShapes tworzy kształty XML dla map SWIP5. Parametry wejściowe: filename - nazwa pliku, w którym zostanie zapisany kształt. Rozszerzenie nazwy pliku powinno być „.xml”, shape* - tablica struktur kształtów z czterema polami: 1. Lat jest wektorem szerokości punktów polilinii granicy kształtu. 2. Long jest wektorem długości geograficznych punktów polilinii granicy kształtu. Liczba wartości w Lat i Log musi być taka sama. 3. Contour to kolor RGB konturu kształtu, po którym następuje tabela [r,g,b,w] gdzie: r - czerwony, g - zielony, b - niebieski, w - szerokość linii. Zalecana wartość to [0,0,0,1] (czarny) 4. Face to kolor RGB lica kształtu, po którym następuje tabela [r,g,b,a] gdzie a - przezroczystość. Zalecana wartość to [1,1,1,1] (biały) 5. Name - opcjonalny tekst opisujący kształt. Musi być jeden lub wiele kształtów. Jeśli pola Kontur lub Ściana są niezdefiniowane, przyjmowane są domyślne kontury i ściany. Domyślny kontur to [0,7, 0,7, 0,7, 1], podczas gdy domyślna powierzchnia to [0,9, 0,9, 0,9, 0]. Domyślne wartości dla foliowania kształtów można zmienić za pomocą opcji ..., option*, optional_val*, ... - zmiany domyślnego konturu lub twarzy dla kolejnych kształtów. Istnieją trzy możliwości: ..., 'Contour', new_default_contour, ... - definiuje nowy domyślny kolor konturu dla kolejnych kształtów. Wartości konturu znajdują się w parametrze new_default_contour po opcji. ..., 'Face', new_default_face, ... - definiuje nowy domyślny kolor płaszczyzny dla następujących kształtów. ..., 'Default colors', ... - przywraca początkowe kolory konturu i powierzchni. Po opcji nie następuje parametr. Opcje mogą znajdować się przed pierwszym kształtem lub między kształtami w wywołaniu funkcji. Opcje tekstowe: Istnieje 5 opcji pozycji tekstu w stosunku do kształtu: ...,'top',... ...,'bottom',... ...,'left',... ...,'right',... ...,'middle',... Proste użycie createXMLShape z plikiem kształtów odcinków: 1. Wywołać clear; 2. Przeczytać plik kształtów z Episodes; 3. Wywołać createXMLShapes(nazwa pliku, d)
  • ISEPOSVelcityModel_to_Vel2Grid(vp, fileName, ...) Funkcja konwertuje model prędkości ISEPOS na linie tekstowe zgodne z NonLinLoc. Zmienna wejściowe: vp -model prędkości, fileName - nazwa .. Parametr opcjonalny: ..., 'density', den - ustaw domyślną gęstość na den (domyślnie 2700)