gempy-project / gempy

GemPy is an open-source, Python-based 3-D structural geological modeling software, which allows the implicit (i.e. automatic) creation of complex geological models from interface and orientation data. It also offers support for stochastic modeling to address parameter and model uncertainties.
https://gempy.org
European Union Public License 1.2
934 stars 231 forks source link

Refactor series to stack and geo_features #192

Closed Leguark closed 4 years ago

Leguark commented 5 years ago

Rename series to a more accurate name.

This is the current state: series for the object and the column property

Screenshot 2019-06-26 at 10 05 45

Suggestion

1 - Changing the name of the object to geo_stack since its main goal is to set the order of computation of the scalar fields 2 - Refer to each member of the object as geo_feature

Screenshot 2019-06-26 at 10 07 56

thoughts?

elimh commented 5 years ago

I like the idea of renaming it, but I think if you call it "geo_stack", it could be a bit repetitive with the word geo. How about just calling it "stack" or "bundle" (with or without surface)? Also, I don't think the term geo_features is really clear. I would call it "relative age" or something like that. But that is just my opinion :)

lachlangrose commented 5 years ago

I don't know about geo_stack or stack.. Let me have a think about it. This is really just a graph that repersents the geological topology between the different things in the model....

It depends what you try and represent with the "series"/features class. You could have multiple fields that are the same age describing a different geological feature - so I think age is not enough. Age is a property of a feature.

Leguark commented 5 years ago

This is the strict order of interpolation of different scalar fields - which 95% of cases correlates to the geological timing - and the type of scalar field it is. Some argument for stack is that it is so no intuitive that people needs to check the documentation :D

Features is vague but considering that they can be (so far) stratigraphic series, faults and folds) , we need something a quite general term

lachlangrose commented 5 years ago

But different geological features probably should be daughter classes of the parent class.... so a fold inherets some things from a geological feature... etc. I think it realy depends how object oriented the code is....

Japhiolite commented 5 years ago

I'm with elisa that one can skip the "geo_". And looking strictly at the model without its geological meaning, faults, folds, stratigraphic units would all be equally treated model features, right?

But I don't really understand why change from series to something else in the first place. Because object and property have the same name? In my opinion, series is advantegeous to stack (for example) as the name is already the geoscientific definition. And one could argue that stack is confusing as well for people who normally process seismics ;)

lachlangrose commented 5 years ago

Folds are and faults are described by more than the stratigraphy that is folded/faulted. So you can't describe them as stratigraphy..... Reason to use geological feature over model feature is that a model feature could be the support that represents the geological feature. Think about what is actually being represented in the model, then name it as that. In my opinion and i'm just a structural geologist.... faults/folds/unconformities are not the same as stratigraphy and so we need to distinguish between them in the model....

MichaelHillier commented 5 years ago

I am also not sure about the geo_stack/stack naming. Would geological_history/geo_history be more suitable for describing the order of the computed scalar fields?

@Japhiolite I think series is a okay descriptor for the sequence of stratigraphic and possibly erosional geological events. But for faults and intrusion events no so much.

Also, some questions: 1) In your screenshots, Out[31] shows geo_features as an integer, while Out[32] shows geo_features as a string. Why is that? 2) Is the 'order_surfaces' column the order in which scalar fields are computed for their corresponding geo_features? All the faults in the table have the same order number. What does that mean in terms of how their scalar fields are computed?

flohorovicic commented 5 years ago

Good discussion! Here some (very) quick thoughts:

Japhiolite commented 5 years ago

@lachlangrose and @MichaelHillier ah, I think I misinterpreted how things are currently defined in gempy. I was under the impression that series comprises rock-/ stratigraphic-sequences only in gempy. Obviously, structural features should not fall under that descriptor.

I like @flohorovicic suggestion of separating structural, stratigraphic ... features ..(there it is again). But I'm not sure whether this would increase the complexity unnecessarily?

MichaelHillier commented 5 years ago

Definitely agree with Florian's points.

Thinking about the semantic aspects and including hierarchical features into the data structure now will yield so much more possibilities and better models. This is especially so once the knowledge manager becomes usable.

Japhiolite commented 5 years ago

Just so I am sure this time I understand it correctly, and I'm more of a visual guy in terms of understanding.. something generally in this direction? image

Leguark commented 5 years ago

wow, interesting discussion. Now I am unsure if democracy is the best way to rule GemPy :D

Okay couple of points of how I see it.

What I propose:

Actions:

alex-schaaf commented 5 years ago

I'm with @Japhiolite: renaming series to stack could be confusing for people involved with seismic. basically you replace the geological word series with the geophysical word stack used in seismic processing 😁