fatiando / rockhound

NOTICE: This library is no longer being developed. Use Ensaio instead (https://www.fatiando.org/ensaio). -- Download geophysical models/datasets and load them in Python
BSD 3-Clause "New" or "Revised" License
34 stars 15 forks source link

[DATASET] SEG/EAGE Salt Dome Model #50

Closed banesullivan closed 2 years ago

banesullivan commented 5 years ago

Desired dataset/model:

Are you willing to help implement and maintain this feature? Somewhat... @prisae, would you want to help me and we could both do this?


NOTE: The SEG website is having some issues and has been down for a few days, but the direct download link still works.

Also, here is a notebook we put together to show how to download and visualize the model and the various accompanying surface meshes using PyVista: https://nbviewer.jupyter.org/github/pyvista/show-room/blob/master/visualize-data.ipynb

(that example notebook might move around so let me know if the link breaks in the future)

Screen Shot 2019-07-01 at 12 08 20 AM Screen Shot 2019-07-01 at 12 07 39 AM
welcome[bot] commented 5 years ago

👋 Thanks for opening your first issue here! Please make sure you filled out the template with as much detail as possible.

You might also want to take a look at our Contributing Guide and Code of Conduct.

prisae commented 5 years ago

Sounds good, although I am not sure if it is that straight forward. How does RockHound work? The zip file contains many different things - SEGY-files, horizons, velocity-zips, and so on.

If we do the Salt Model we should also do the Overthrust model. Both are heavily used examples.

prisae commented 5 years ago

I guess we should add https://wiki.seg.org/wiki/AGL_Elastic_Marmousi to this PR, as they will be very similar to include.

banesullivan commented 5 years ago

I'm not sure how all this works but I imagine it uses pooch to download the data which should be able to handle navigating many files in a single archive.

We should probably wait until a maintainer here provides insight on how these various datasets should be handled

leouieda commented 5 years ago

@banesullivan @prisae thanks for pointing these out! Completely forgot that they existed :)

If we do the Salt Model we should also do the Overthrust model. Both are heavily used examples.

I agree that it would be great to have all of these here.

I guess we should add https://wiki.seg.org/wiki/AGL_Elastic_Marmousi to this PR, as they will be very similar to include.

It would be better to add these models in separate pull requests, though. Would any of you mind opening other issues requesting each model? Who knows, maybe a willing volunteer will show up and implement them for us :)

I'm not sure how all this works but I imagine it uses pooch to download the data which should be able to handle navigating many files in a single archive.

It does use Pooch and the new post-processing hooks in Pooch were motivated by it. So one can download a zip and have pooch unzip/untar/decompress it locally for easy access (which adds a bit of storage requirements).

The bedmap2 code is a good place to start: https://github.com/fatiando/rockhound/blob/master/rockhound/bedmap2.py

leouieda commented 5 years ago

What we need when adding a new data set is:

  1. A download link
  2. The sha256 hash of the file
  3. A way to load the file in Python

1 and 2 are placed in rockhound/registry.txt and pooch will handle the download automatically.

prisae commented 5 years ago

Thanks @leouieda for the info. @bane re initial question about help implementing it. I have not used rockhound so far and haven't planned to use it currently, but I'll keep it on my list ;-)

leouieda commented 5 years ago

Another thing to think about: is it worth repackaging this dataset? I just downloaded the file and it's big (489Mb) but the surfaces and grids loaded in the PyVista notebook only account for ~25Mb of that. If we only need those parts, it might be better to repackage them and host somewhere else (which is allowed under CC-By) so we don't have to download all of it.

banesullivan commented 5 years ago

Where could we store data? GitHub LFS in a repo under @softwareunderground perhaps?

krober10nd commented 4 years ago

Hello, I'm definitely interested in easily obtaining this velocity grid for the Overthrust and Salt model.

In the mean time, the download link provided by the OP has a file that references CD-ROMS and file formats that aren't very clear to me (e.g., ".vo" and "@@saltf"). How do you read these data into Python to create the above image of the salt model? Many thanks.

prisae commented 4 years ago

Hi @krober10nd

The short answer is that I don't know. The original data back in the days was distributed on CD-ROMS, it came in three pieces, you can see them in the scanned manual.

The only thing we did was using the velocity model and a few horizons. I particularly used the Saltf@@ file, which you get from extracting the SALTF.ZIP:

import zipfile
import numpy as np
# Dimensions
nx, ny, nz = 676, 676, 210

# Extract Saltf@@ from SALTF.ZIP
zipfile.ZipFile('./data/SALTF.ZIP', 'r').extract('Saltf@@', path='./data/')

# Load data
with open('./data/Saltf@@', 'r') as file:
    v = np.fromfile(file, dtype=np.dtype('float32').newbyteorder('>'))
    v = v.reshape(nx, ny, nz, order='F')

You can have a look at my example here: https://empymod.github.io/emg3d-gallery/gallery/reproducing/SEG-EAGE_3D_salt_model.html

Bane's example lives here: https://nbviewer.jupyter.org/github/pyvista/show-room/blob/master/seg-eage-3d-salt-model.ipynb which is an adjustment of my examples, adding some of the layers.

Hope that helps.

krober10nd commented 4 years ago

Hey excellent. Thank you. This helps a lot. So @@ indicates binary ? well that’s new to me. :)

On Tue, 17 Mar 2020 at 4:52 PM Dieter Werthmüller notifications@github.com wrote:

Hi @krober10nd https://github.com/krober10nd

The short answer is that I don't know. The original data back in the days was distributed on CD-ROMS, it came in three pieces, you can see them in the scanned manual.

The only thing we did was using the velocity model and a few horizons. I particularly used the Saltf@@ file, which you get from extracting the SALTF.ZIP:

import zipfile import numpy as np

Dimensions

nx, ny, nz = 676, 676, 210

Extract Saltf@@ from SALTF.ZIP

zipfile.ZipFile('./data/SALTF.ZIP', 'r').extract('Saltf@@', path='./data/')

Load data

with open('./data/Saltf@@', 'r') as file: v = np.fromfile(file, dtype=np.dtype('float32').newbyteorder('>')) v = v.reshape(nx, ny, nz, order='F')

You can have a look at my example here:

https://empymod.github.io/emg3d-gallery/gallery/reproducing/SEG-EAGE_3D_salt_model.html

Bane's example lives here:

https://nbviewer.jupyter.org/github/pyvista/show-room/blob/master/seg-eage-3d-salt-model.ipynb which is an adjustment of my examples, adding some of the layers.

Hope that helps.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fatiando/rockhound/issues/50#issuecomment-600266246, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEOBZ7FZCH7RGTO3L4DXKTLRH7IJNANCNFSM4H4O7RLQ .

--

Keith Roberts Post-doctoral researcher University of São Paulo krober@usp.br krober10@nd.edu