Skip to content

Request for a high level overview of what works and what doesn't. #768

@pkvamme

Description

@pkvamme

Apologies for raising all these questions as an issue. If there is a better forum for questions like this, please let me know.

This is not meant as complaints about missing features in an otherwise great product. What I am trying to do is to understand the current status. Some of the answers might be "Sure you can do this; just read the documentation better". Or, "This is so complicated that you are better off just waiting for us to implement".

  • Is mdio v0.9 no longer supported and not recommended to use at all?

  • Is mdio v1 considered stable enough for production use?

  • Confirm: When you update documentation from v0.9 to v1, the changes seem to become visible in the "stable" readthedocs in spite of that being tagged v0.9.3. There is no pulldown that lets me switch to v1. Note: If I am wrong and I have been missing out of many documentation updates then some of my other questions might have been answered...

  • Can somebody provide a precise list of 3rdparty package versions that is known to work together? E.g. just the output of "pip freeze" for both v0.9 and v1. I have not bee able to find a combination of package versions that doesn't crash ever so often. At least not for v0.9. Should I have fsspec==2024.10.0? Or not?

  • Is there a create_empty() function and example usage for v1? If not, is there example code anywhere that shows how to create and write mdio using a presumably lower level api? I found two branches belonging to Dmitriy Repin that both add create_empty() but neither seem to have been merged. I don't know whether that code would just confuse me if I tried to use it. See pull request 687 and pull request 736

  • Is there a high level api to do coordinate conversion from (inline,crossline) to (world_x, world_y)? Issue 112 already indicates that something is missing. I am trying to understand what I need to do to get this to work.

  • Confirm: Dealing with world coordinates in v0.9 requires knowledge of which Seg-Y dialect was used when ingesting using "mdio segy import". Specifically, where in the trace headers are the world coordinates? This is not an issue in v1 as far as I can see.

  • Confirm: If I need a matrix for converting (il,xl) to world(x,y) then I need to extract this information myself from the Seg-Y headers. This is simple for a rectangular survey with no dead traces. I would just look at the 4 corner points. For oddly shaped surveys it gets trickier. Depending on how pedantic I need to be.

  • Confirm: After calculating the matrix, I cannot store it as such in the mdio file. The only way to store world coordinates is to store the 240-byte Seg-Y trace header for every trace in the survey. Even if the data to be written wasn't originally read from Seg-Y.

  • Confirm: The v1 example code for ingesting teapot ends up with the world coordinates being wrong by a factor of 10. The reason is that teapot has stored the world coordinates both as unscaled integers and as int(coordinate*10). The MDIO code knows that it should (in this case) divide by 10. So it should be using offset 73 and 77.

Name in Seg-Y rev1 Offset in rev1 What Teapot stores here
cdp_x, cdp_y 181, 185 Inline,Crossline
inline, crossline 189, 193 Unscaled world X,Y
source_coord-{x,y} 73, 77 Scaled world X,Y
group_coord-{x,y} 81, 85 Scaled world X,Y

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions