Skip to content

How to store (serialize) shear-wave splitting results? #2

@adigitoleo

Description

@adigitoleo

Hi,

I'm very interested in doing shear-wave splitting in Julia, and I found this package some time ago but haven't had the time to play around much yet. Currently, I am processing some results from measurements taken in SplitLab. While SplitLab is very feature-rich, there are many reasons that I want to leave it behind (not least that I much prefer Julia to Matlab).

Over the last couple of years, I toyed with some implementations in Python but found the performance to be unreasonably slow (but I'm certainly no NumPy or SciPy guru). Then I discovered Julia, and now I'm just starting to try a few ideas.

I have a lot of notes floating around that I still need to organize, but my first gripe with the SplitLab style implementation is the results have too many "fields", in Julia-speak. In some cases it's obvious: clearly we don't need to store both an array of timestamp components AND a string representation of the date... but in other cases there are some tricky problems, and I'm still on the fence about many things. For example, I've just uploaded some snippets (no splitting yet) with my idea for a more minimalist Result type. So far, I've only used it to process my SplitLab results in Julia.

From your experience of using shear-wave splitting analysis, do we really need to store:

  • the eigenvalues of the grid search matrices
  • the cross-correlation matrix

in the final result?

By including references to the original traces in Result it also becomes harder to serialize, I think (although I do have potential references to SeisIO.SeisChannel in mine, I haven't used them so far). On the other hand, information about the time window, frequency band of the filter, resolution of the search (in both dt and phi) are all important and removing them could make the result harder to reproduce.

The question is: where should we draw the line? What information should persist in files/databases? How much could be factored out into a "configuration file" (e.g. resolution parameters?). I think it's worth thinking about, as more shear-wave splitting packages arise, e.g.:

Sorry that this was a bit long-winded, and I'm still getting around to the SeisModels PR (I'll look into what exactly I need for the ray tracing first).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions