-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Seismic Data Ingestion Without Dimension-Specific Indexing #248
Conversation
…f non-regularized data.
Codecov Report
❗ Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more. @@ Coverage Diff @@
## main #248 +/- ##
==========================================
+ Coverage 84.23% 84.44% +0.21%
==========================================
Files 46 46
Lines 2017 2186 +169
Branches 325 348 +23
==========================================
+ Hits 1699 1846 +147
- Misses 282 297 +15
- Partials 36 43 +7
|
…f non-regularized data.
@markspec we need to change the logic here. When we ingest this way, we are losing self-describing information from the MDIO file. i.e. it is unclear what indices the We need to add dimensions without coordinates; i.e. just dimensions. This way they won't mean anything but we should preserve index keys names. Some examples: ("inline", "crossline", "offset", "azimuth") becomes ("inline", "crossline", "trace") and there is no record of what went into trace. Instead we should still ingest it as: ("inline", "crossline", "offset", "azimuth") However, it should know that |
@tasansal, your proposal is highly confusing to the user. I feel your proposal would confuse the user and only obfuscates what the dataset is. If the user wants or needs a ("inline", "crossline", "offset", "azimuth") from a ("inline", "crossline", "trace") dataset they need to explicitly handle this in a downstream application e.g. through 5D reg. "trace" is in no way related to offset or azimuth and should not be thought of in that way. |
Ok, I see what you're saying. However, still, I wouldn't say I like the API. Will come back to it later :) |
@markspec after speaking w/ Santh, Cable, and @srib we decided on the following. The Non-Binned 3D Seismic Offset Examplesegy_to_mdio(
...,
index_bytes=(189, 193),
index_names=("inline", "crossline"),
chunksize=(4, 4, 1024),
grid_overrides={"NonBinned": True, "chunksize": 16}
) Non-Binned 3D Seismic Offset / Azimuth Examplesegy_to_mdio(
...,
index_bytes=(189, 193),
index_names=("inline", "crossline"),
chunksize=(4, 4, 1024),
grid_overrides={"NonBinned": True, "chunksize": 16}
) Non-Binned 2D Seismic Offset Examplesegy_to_mdio(
...,
index_bytes=(21,),
index_names=("cdp"),
chunksize=(4, 1024),
grid_overrides={"NonBinned": True, "chunksize": 16}
) Binned 2D Seismic Offset with Duplicate Traces Examplesegy_to_mdio(
...,
index_bytes=(21, 37),
index_names=("cdp", "offset"),
chunksize=(4, 16, 1024),
grid_overrides={"HasDuplicates": True} # chunksize would be set to 1
) There may be some things we are all missing; but I'm sure they'll come out while being implemented. |
@tasansal just a note on implications. Currently GridOverrides is setup to modify and return index_headers. To implement your suggested API change would require a refactor of GridOveride to return and modify index_names and chunksize. |
@tasansal , get_grid_plan() would need to modify the chunk_size which is very ugly! |
made some changes to the examples per our discussion |
|
looks like the |
Please check this diff: It is from where you left off f6b64f2 to my final version 3e401e2). PR is ready to merge unless you see something I messed up. All tests pass. |
@tasansal , looks good to me. |
Resolves #241 also fixes typing in a number of places that might also resolve #242. A new "AutoIndex" grid override has been implemented that can be used in conjunction with the "trace" index name to automatically generate a trace index and cn be used to ingest non-regularized data.