Seismic random access

42 views
Skip to first unread message

Fernando Bordignon

unread,
Jun 25, 2017, 4:13:49 PM6/25/17
to OpendTect Developers
Hi, I would like to access a seismic cube in a random mode, i.e. read data from inline 100, 130, 110, 90,150 out of the seistrcreader order.

How can I accomplish that? Do I always need to read the trace that the get(trcinfo) returns?

Thanks, Fernando.

Fernando Bordignon

unread,
Jun 25, 2017, 7:02:49 PM6/25/17
to OpendTect Developers
After some digging I may have found a solution.

Can I use the translator to go to the desired position with:

rdr_->get( trcin_.info() );
trcin_.info().setBinID(BinID(500, trcin_.info().crl()));
translator_->goTo(trcin_.info().binID());
rdr_->get(trcin_);


being 500 the desired inline index

Can I jump to desired inlines as I wish?

Bert Bril

unread,
Jun 25, 2017, 8:11:02 PM6/25/17
to devel...@opendtect.org
Hi Fernando,


> Can I use the translator to go to the desired position with:
>
> rdr_->get( trcin_.info() );
> trcin_.info().setBinID(BinID(500, trcin_.info().crl()));
> translator_->goTo(trcin_.info().binID());
> rdr_->get(trcin_);
>
>
> being 500 the desired inline index
>
> Can I jump to desired inlines as I wish?

Yes, as long as your translator_ returns true when asked for
'supportsGoTo()'. Which is the case for all mainstream formats like
CBVS, SEG-YDirect, PetrelDirect and the new Blocks format.

But there is a snag. The inline may not contain the crossline you are
asking for. Thus, the goTo() call may return false. To get this done
reliably you may want to start at the first crossline of the survey and
try to goTo() that one and the next until you get one that is actually
in the data, and go get()'s from tehre until the inline changes.


All this would be a lot easier in new (trunk -> 6.3 and 7.X) branches .
You'd use Seis::Provider, where both random and natural order access are
always supported. It's easy to find out what positions are present
because there is a call to get the full cube's geometry. Also,
Seis::Provider will check whether the data is pre-loaded and fetch that
rather than reading from disk - something SeisTrcReader does not do.
Moreover, it hides the low-level Translator access fully. All that and
more is why the SeisTrcReader will be deprecated in the coming 6.3
'development' releases.


/Bert

--

Bert Bril
Coach/Consultant Software Development
_________________________________________________

dGB Earth Sciences

Phone: +31 53 4315155
E-mail: bert...@dgbes.com
Internet: http://dgbes.com & http://opendtect.org

<<SEG Distinguished Achievement Award 2016>>
_________________________________________________
Reply all
Reply to author
Forward
0 new messages