[Developers] The UIDPSDemo plugin

Bert Bril bert at opendtect.org
Tue Nov 24 14:13:34 CET 2009


Hi all,


Further along the road to a good full uiDPSDemo we first implement a 
basic data collection part. This is what you can find in:

ftp://ftp.opendtect.org/pub/src/uidpsdemo_3.tgz


First, the extraction. We want a number of random points on a horizon. 
An easy way to do that is to give each node a number [0,N-1] , and draw 
a random number. In Algo/statrand.h we have for this purpose 
Stats::RandGen::getIndex(). The two main problems are:
(1) horizons can have multiple sections
(2) Some positions have no nodes ('undefined nodes').
(3) We don't want positions to be duplicated

For (1), we register the number of nodes for each section. For (2), we 
need to make provisions in the iteration, with protection against 
endless loops. For (3), we'll use the BinIDValueSet's quick searching 
facilities.

When we have the positions, we need to extract data along the horizon. 
To get the seismic data, we use a SeisTrcReader, which we can pass a 
Seis::SelData based on BinIDValueSet: the Seis::TableSelData. We can 
then execute a SeisBufReader.

Now we have the traces available, we'll need to extract some 
'interesting' things. This time, basically, some crappy 'attributes'. If 
you like, you can calculate nice, useful, interesting stuff there.

In any case, we put the calculated values into the DataPointSet, and 
we're done. From there, the uiDataPointSet will take over and allow the 
user to look at the data, cross-plot it, select, remove, add, edit, 
save, retrieve, ...

Notice that there is no connection to the 3D visualization yet. That 
will be added later, by an expert (Satyaki).



Bert

-- 
-- Bert Bril / OpendTect developer at dGB
-- mailto:Bert.Bril at opendtect.org , http://opendtect.org





More information about the Developers mailing list