GXDBREAD class¶
- class GXDBREAD(handle=0)[source]¶
GXDBREAD class.
The
GXDBREAD
class is used to open and read from databases. Very large lines are split into blocks and served up sequentially to prevent the over-use of virtual memory when channels are read into VVs or VAs. Individual data blocks are limited by default to 1 MB (which is user-alterable). Single lines smaller than the block size are served up whole, one block per line.- add_channel(chan)[source]¶
Add a data channel to the
GXDBREAD
object.- Parameters:
chan (int) – Channel handle (does not need to be locked, but can be.)
- Returns:
Channel index. Use for getting the correct
GXVV
orGXVA
object.- Return type:
int
New in version 8.5.
License: Geosoft Open License
- classmethod create(db, line_lst)[source]¶
Create a
GXDBREAD
object Add channels using theadd_channel
method.channel.- Parameters:
- Returns:
GXDBREAD
object- Return type:
New in version 8.5.
License: Geosoft Open License
- classmethod create_xy(db, line_lst)[source]¶
Create a
GXDBREAD
object for a XY-located data. Add channels using theadd_channel
method.- Parameters:
- Returns:
GXDBREAD
object- Return type:
New in version 8.5.
License: Geosoft Open License
- classmethod create_xyz(db, line_lst)[source]¶
Create a
GXDBREAD
object for a XYZ-located data. Add channels using theadd_channel
method.- Parameters:
- Returns:
GXDBREAD
object- Return type:
New in version 8.5.
License: Geosoft Open License
- get_chan_array_size(chan)[source]¶
Get the number of columns of data in a channel.
- Parameters:
chan (int) – Index of channel to access.
- Returns:
The number of columns (array size) for a channel
- Return type:
int
New in version 8.5.
License: Geosoft Open License
Note: Regular channels have one column of data. Array channels have more than one column of data. This function should be called to determine whether to use
get_vv
orget_va
to access data for a channel.
- get_next_block(line, block, n_blocks)[source]¶
Get the next block of data.
- Parameters:
line (int_ref) – (returned) The index into the input selected line list of the line whose data is contained in the current block
block (int_ref) – (returned) The block index (0 to NBlocks-1) for the current line of data.
n_blocks (int_ref) – (returned) The number of blocks that the current line is split into.
- Returns:
Returns the current block index, or -1 if at end of file (no new data returned).
- Return type:
int
New in version 8.5.
License: Geosoft Open License
Note: The next block of data is read and copied into the channel
GXVV
and/orGXVA
objects, accessed using theget_vv
andget_va
functions.
- get_number_of_blocks_to_process()[source]¶
Get the number of blocks to be served up.
- Returns:
The number of blocks to process in the selected lines.
- Return type:
int
New in version 8.5.
License: Geosoft Open License
Note: The selected lines are scanned. All lines where the served up data is less than the maximum block size for all channels are served as a single block. Any lines where any channel’s data exceeds the maximum block size are split up into blocks. The value returned can be used as the progress message maximum iteration value.
- get_v_vx()[source]¶
Get the X channel
GXVV
handle.New in version 8.5.
License: Geosoft Open License
Note: Only available for the CreateXY or CreateXYZ methods. The
GXVV
is filled anew for each block served up.
- get_v_vy()[source]¶
Get the Y channel
GXVV
handle.New in version 8.5.
License: Geosoft Open License
Note: Only available for the CreateXY or CreateXYZ methods. The
GXVV
is filled anew for each block served up.
- get_v_vz()[source]¶
Get the Z channel
GXVV
handle.New in version 8.5.
License: Geosoft Open License
Note: Only available for the CreateXY or CreateXYZ methods. The
GXVV
is filled anew for each block served up. If the Z channel is an array channel, the returnedGXVV
is the “base”GXVV
of theGXVA
and contains all items sequentially.
- get_va(chan)[source]¶
Get the
GXVA
handle for an array channel.New in version 8.5.
License: Geosoft Open License
Note: Call only for array (multi-column) channels. You can call the
get_chan_array_size
function to find the number fo columns in a given channel, or you can callGXVA.col
on the returnedGXVA
handle. TheGXVA
is filled anew for each block served up.
- get_vv(chan)[source]¶
Get the
GXVV
handle for a channel.New in version 8.5.
License: Geosoft Open License
Note: Call only for single-column (regular) channels. You can call the
get_chan_array_size
function to find the number fo columns in a given channel. TheGXVV
is filled anew for each block served up.