Python API

openvds.open(*args, **kwargs)

Overloaded function.

  1. open(url: str, connectionString: str, error: OpenVDS::VDSError) -> openvds.core.VDS

Open an existing VDS

Parameters:

url :

The url scheme specific to each cloud provider Available schemes are s3:// azure://

connectionString :

The cloud provider specific connection string Specifies additional arguments for the cloud provider

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. open(url: str, connectionString: str) -> openvds.core.VDS

  2. open(url: str, error: OpenVDS::VDSError) -> openvds.core.VDS

Open an existing VDS. This is a simple wrapper that uses an empty connectionString

Parameters:

url :

The url scheme specific to each cloud provider Available schemes are s3:// azure://

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. open(url: str) -> openvds.core.VDS

  2. open(options: openvds.core.OpenOptions, error: OpenVDS::VDSError) -> openvds.core.VDS

Open an existing VDS

Parameters:

options :

The options for the connection

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. open(options: openvds.core.OpenOptions) -> openvds.core.VDS

  2. open(ioManager: openvds.core.IOManager, error: OpenVDS::VDSError) -> openvds.core.VDS

Open an existing VDS

Parameters:

ioManager :

The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. open(ioManager: openvds.core.IOManager) -> openvds.core.VDS

  2. open(ioManager: openvds.core.IOManager, logLevel: OpenVDS::LogLevel, error: OpenVDS::VDSError) -> openvds.core.VDS

Open an existing VDS

Parameters:

ioManager :

The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

logLevel :

The logging threshold

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. open(ioManager: openvds.core.IOManager, logLevel: OpenVDS::LogLevel) -> openvds.core.VDS

openvds.openWithAdaptiveCompressionTolerance(*args, **kwargs)

Overloaded function.

  1. openWithAdaptiveCompressionTolerance(url: str, connectionString: str, waveletAdaptiveTolerance: float, error: OpenVDS::VDSError) -> openvds.core.VDS

Open an existing VDS with adaptive compression tolerance.

Parameters:

url :

The url scheme specific to each cloud provider Available schemes are s3:// azure://

connectionString :

The cloud provider specific connection string Specifies additional arguments for the cloud provider

waveletAdaptiveTolerance :

Wavelet adaptive tolerance. This will try to read the dataset as- if it was compressed with the given tolerance even if it was compressed with a lower tolerance or lossless.

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. openWithAdaptiveCompressionTolerance(url: str, connectionString: str, waveletAdaptiveTolerance: float) -> openvds.core.VDS

openvds.openWithAdaptiveCompressionRatio(*args, **kwargs)

Overloaded function.

  1. openWithAdaptiveCompressionRatio(url: str, connectionString: str, waveletAdaptiveRatio: float, error: OpenVDS::VDSError) -> openvds.core.VDS

Open an existing VDS with adaptive compression ratio.

Parameters:

url :

The url scheme specific to each cloud provider Available schemes are s3:// azure://

connectionString :

The cloud provider specific connection string Specifies additional arguments for the cloud provider

waveletAdaptiveRatio :

Wavelet adaptive ratio. This will try to read the dataset as-if it was compressed with the given ratio even if it was compressed with a lower ratio or lossless. A compression ratio of 5.0 corresponds to compressed data which is 20% of the original.

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. openWithAdaptiveCompressionRatio(url: str, connectionString: str, waveletAdaptiveRatio: float) -> openvds.core.VDS

openvds.create(*args, **kwargs)

Overloaded function.

  1. create(url: str, connectionString: str, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, compressionMethod: OpenVDS::CompressionMethod, compressionTolerance: float, error: OpenVDS::VDSError) -> openvds.core.VDS

Create a new VDS.

Parameters:

url :

The url scheme specific to each cloud provider Available schemes are s3:// azure://

connectionString :

The cloud provider specific connection string Specifies additional arguments for the cloud provider

compressionMethod :

The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.

compressionTolerance :

This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. create(url: str, connectionString: str, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, compressionMethod: OpenVDS::CompressionMethod, compressionTolerance: float) -> openvds.core.VDS

  2. create(url: str, connectionString: str, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, error: OpenVDS::VDSError) -> openvds.core.VDS

Create a new VDS.

Parameters:

url :

The url scheme specific to each cloud provider Available schemes are s3:// azure://

connectionString :

The cloud provider specific connection string Specifies additional arguments for the cloud provider

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. create(url: str, connectionString: str, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess) -> openvds.core.VDS

  2. create(url: str, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, compressionMethod: OpenVDS::CompressionMethod, compressionTolerance: float, error: OpenVDS::VDSError) -> openvds.core.VDS

Create a new VDS. This is a simple wrapper that uses an empty connectionString

Parameters:

url :

The url scheme specific to each cloud provider Available schemes are s3:// azure://

compressionMethod :

The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.

compressionTolerance :

This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. create(url: str, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, compressionMethod: OpenVDS::CompressionMethod, compressionTolerance: float) -> openvds.core.VDS

  2. create(url: str, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, error: OpenVDS::VDSError) -> openvds.core.VDS

Create a new VDS. This is a simple wrapper that uses an empty connectionString

Parameters:

url :

The url scheme specific to each cloud provider Available schemes are s3:// azure://

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. create(url: str, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess) -> openvds.core.VDS

  2. create(options: openvds.core.OpenOptions, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, compressionMethod: OpenVDS::CompressionMethod, compressionTolerance: float, error: OpenVDS::VDSError) -> openvds.core.VDS

Create a new VDS.

Parameters:

options :

The options for the connection

compressionMethod :

The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.

compressionTolerance :

This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. create(options: openvds.core.OpenOptions, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, compressionMethod: OpenVDS::CompressionMethod, compressionTolerance: float) -> openvds.core.VDS

  2. create(options: openvds.core.OpenOptions, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, error: OpenVDS::VDSError) -> openvds.core.VDS

Create a new VDS.

Parameters:

options :

The options for the connection

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. create(options: openvds.core.OpenOptions, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess) -> openvds.core.VDS

  2. create(ioManager: openvds.core.IOManager, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, compressionMethod: OpenVDS::CompressionMethod, compressionTolerance: float, error: OpenVDS::VDSError) -> openvds.core.VDS

Create a new VDS.

Parameters:

ioManager :

The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

compressionMethod :

The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.

compressionTolerance :

This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. create(ioManager: openvds.core.IOManager, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, compressionMethod: OpenVDS::CompressionMethod, compressionTolerance: float) -> openvds.core.VDS

  2. create(ioManager: openvds.core.IOManager, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, compressionMethod: OpenVDS::CompressionMethod, compressionTolerance: float, logLevel: OpenVDS::LogLevel, error: OpenVDS::VDSError) -> openvds.core.VDS

Create a new VDS.

Parameters:

ioManager :

The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

compressionMethod :

The overall compression method to be used for the VDS. The channel descriptors can have additional options to control how a channel is compressed.

compressionTolerance :

This property specifies the compression tolerance [1..255] when using the wavelet compression method. This value is the maximum deviation from the original data value when the data is converted to 8-bit using the value range. A value of 1 means the maximum allowable loss is the same as quantizing to 8-bit (but the average loss will be much much lower than quantizing to 8-bit). It is not a good idea to directly relate the tolerance to the quality of the compressed data, as the average loss will in general be an order of magnitude lower than the allowable loss.

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. create(ioManager: openvds.core.IOManager, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, compressionMethod: OpenVDS::CompressionMethod, compressionTolerance: float, logLevel: OpenVDS::LogLevel) -> openvds.core.VDS

  2. create(ioManager: openvds.core.IOManager, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, error: OpenVDS::VDSError) -> openvds.core.VDS

Create a new VDS.

Parameters:

ioManager :

The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. create(ioManager: openvds.core.IOManager, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess) -> openvds.core.VDS

  2. create(ioManager: openvds.core.IOManager, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, logLevel: OpenVDS::LogLevel, error: OpenVDS::VDSError) -> openvds.core.VDS

Create a new VDS.

Parameters:

ioManager :

The IOManager for the connection, it will be deleted automatically when the VDS handle is closed

error :

If an error occured, the error code and message will be written to this output parameter

Returns:

The VDS handle that can be used to get the VolumeDataLayout and the VolumeDataAccessManager

  1. create(ioManager: openvds.core.IOManager, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, logLevel: OpenVDS::LogLevel) -> openvds.core.VDS

openvds.close(*args, **kwargs)

Overloaded function.

  1. close(handle: openvds.core.VDS, flush: bool = True) -> None

Close a VDS and free up all associated resources. If an error occurs, an exception will be thrown.

Parameters:

handle :

The handle of the VDS

  1. close(handle: openvds.core.VDS, error: OpenVDS::VDSError, flush: bool = True) -> None

Close a VDS and free up all associated resources

Parameters:

handle :

The handle of the VDS

error :

If an error occured, the error code and message will be written to this output parameter

class openvds.AWSOpenOptions

Options for opening a VDS in AWS

class openvds.AzureOpenOptions

Options for opening a VDS in Azure

class openvds.GoogleOpenOptions

Options for opening a VDS in Google Cloud Storage

class openvds.DMSOpenOptions
class openvds.VDSFileOpenOptions

Options for opening a VDS file

openvds.getAccessManager(handle: int)

Get the VolumeDataAccessManager for a VDS

Parameter handle:

The handle of the VDS

Returns:

The VolumeDataAccessManager of the VDS

openvds.getLayout(handle: openvds.core.VDS) OpenVDS::VolumeDataLayout

Get the VolumeDataLayout for a VDS

Parameters:

handle :

The handle of the VDS

Returns:

The VolumeDataLayout of the VDS

class openvds.VolumeDataAccessManager(handle: int)

Interface class for VDS data access.

This class has functions for making asynchronous data requests on a VDS object using numpy arrays.

Parameters:

handlevds handle

The VDS to interface with.

class AccessMode

Members:

AccessMode_ReadOnly : < The volume data page accessor will only be used for reading

AccessMode_ReadWrite : < The volume data page accessor will be used for reading and writing

(can only be used with LOD 0, the other LODs will be automatically updated)

AccessMode_Create : < The volume data page accessor will be used to write new data,

overwriting any existing data (can only be used with LOD 0, the other LODs will be automatically created)

AccessMode_CreateWithoutLODGeneration : < The volume data page accessor will be used to write new data,

overwriting any existing data (each LOD has to be created separately)

AccessMode_ReadWriteWithoutLODGeneration : < The volume data page accessor will be used used for reading and

writing (each LOD has to be created separately)

property name
createVolumeDataPageAccessor(dimensionsND, lod, channel, maxPages, accessMode, chunkMetadataPageSize=1024)

Create a VolumeDataPageAccessor object for the VDS.

Parameters:

dimensionsND :

The dimensions group that the volume data page accessor will access.

LOD :

The LOD level that the volume data page accessor will access.

channel :

The channel index that the volume data page accessor will access.

maxPages :

The maximum number of pages that the volume data page accessor will cache.

accessMode :

This specifies the access mode (ReadOnly/ReadWrite/Create) of the volume data page accessor.

chunkMetadataPageSize :

The chunk metadata page size of the layer. This controls how many chunk metadata entries are written per page, and is only used when the access mode is Create. If this number is too low it will degrade performance, but in certain situations it can be advantageous to make this number a multiple of the number of chunks in some of the dimensions. Do not change this from the default (1024) unless you know exactly what you are doing.

Returns:

A VolumeDataPageAccessor object for the VDS.

flush()

Flush any pending writes and write updated layer status

getProjectedVolumeSubsetBufferSize(min: Tuple[int], max: Tuple[int], projectedDimensions, format, lod=0, channel=0)

Compute the buffer size (in bytes) for a projected volume subset request.

Parameters:

minVoxelCoordinates :

The minimum voxel coordinates to request in each dimension (inclusive).

maxVoxelCoordinates :

The maximum voxel coordinates to request in each dimension (exclusive).

projectedDimensions :

The 2D dimension group that the plane in the source dimensiongroup is projected into. It must be a 2D subset of the source dimensions.

format :

Voxel format of the destination buffer.

LOD :

The LOD level the requested data is read from.

channel :

The channel index the requested data is read from.

Returns:

The buffer size needed.

getVDSChunkCount(dimensionsND, lod=0, channel=0)

Get the chunk count for the specific DimensionsND/LOD/Channel combination.

Parameters:

dimensionsND :

The dimensions group we’re getting the chunk count for.

LOD :

The LOD level we’re getting the chunk count status for.

channel :

The channel index we’re getting the chunk count status for.

Returns:

The chunk count for the specific DimensionsND/LOD/Channel combination.

getVDSProduceStatus(dimensionsND, lod=0, channel=0)

Get the produce status for the specific DimensionsND/LOD/Channel combination.

Parameters:

dimensionsND :

The dimensions group we’re getting the produce status for.

LOD :

The LOD level we’re getting the produce status for.

channel :

The channel index we’re getting the produce status for.

Returns:

The produce status for the specific DimensionsND/LOD/Channel combination.

getVolumeDataLayout()

Get the VolumeDataLayout object for a VDS.

Returns:

The VolumeDataLayout object associated with the VDS or None if there is no valid VolumeDataLayout.

getVolumeSamplesBufferSize(sampleCount, channel=0)

Compute the buffer size (in bytes) for a volume samples request.

Parameters:

sampleCount :

Number of samples to request.

channel :

The channel index the requested data is read from.

Returns:

The buffer size needed

getVolumeSubsetBufferSize(min: ~typing.Tuple[int], max: ~typing.Tuple[int], format=<VolumeDataFormat.Format_R32: 3>, lod=0, channel=0)

Compute the buffer size (in bytes) for a volume subset request.

Parameters:

minVoxelCoordinates :

The minimum voxel coordinates to request in each dimension (inclusive).

maxVoxelCoordinates :

The maximum voxel coordinates to request in each dimension (exclusive).

format :

Voxel format of the destination buffer.

LOD :

The LOD level the requested data is read from.

channel :

The channel index the requested data is read from.

Returns:

The buffer size needed.

getVolumeTracesBufferSize(traceCount, traceDimension, lod=0, channel=0)

Compute the buffer size (in bytes) for a volume traces request.

Parameters:

traceCount :

Number of traces to request.

traceDimension :

The dimension to trace

LOD :

The LOD level the requested data is read from.

channel :

The channel index the requested data is read from.

Returns:

The buffer size needed.

prefetchVolumeChunk(chunkIndex, dimensionsND=<DimensionsND.Dimensions_012: 0>, lod=0, channel=0)

Force production of a specific volume data chunk.

Parameters

chunkIndex: int

The index of the chunk to prefetch.

dimensionsNDDimensionsND, optional

If specified, determine the dimensiongroup requested. Defaults to Dimensions_012

lodint, optional

Which LOD level to request. Defaults to 0

channelint, optional

Channel index. Defaults to 0.

Returns

requestVolumeDataRequest

An object encapsulating the request, the request state, and the requested data.

requestProjectedVolumeSubset(min: ~typing.Tuple[int], max: ~typing.Tuple[int], data_out=None, dimensionsND=<DimensionsND.Dimensions_012: 0>, lod=0, channel=0, voxelPlane=(1, 1, 0, 0), projectedDimensions=<DimensionsND.Dimensions_12: 25>, interpolationMethod=<InterpolationMethod.Cubic: 2>, format=<VolumeDataFormat.Format_R32: 3>, replacementNoValue=None)

Request a subset of the VDS data, projected onto a plane.

Parameters

mintuple

Specifies the minimum voxel coordinates of the request (inclusive)

maxtuple

Specifies the maximum voxel coordinates of the request (exclusive)

data_outnumpy.ndarray, optional

If specified, the data requested is copied to this array. Otherwise, a suitable numpy array is allocated.

dimensionsNDDimensionsND, optional

If specified, determine the dimensiongroup requested. Defaults to Dimensions_012

lodint, optional

Which LOD level to request. Defaults to 0

channelint, optional

Channel index. Defaults to 0.

voxelPlane: tuple[int,int,int,int], optional

A 4D vector representing the projection plane.

projectedDimensions: DimensionsND, optional

The dimensions to be projected

interpolationMethod: InterpolationMethod, optional

Defaults to InterpolationMethod.Cubic

formatVoxelFormat, optional

Specifies the format of the delivered data: Bytes, floats, doubles. etc.

replacementNoValue: float, optional

If specified, NoValue data in the dataset is replaced with this value.

Returns

requestVolumeDataRequest

An object encapsulating the request, the request state, and the requested data.

requestVolumeSamples(samplePositions, data_out=None, dimensionsND=<DimensionsND.Dimensions_012: 0>, lod=0, channel=0, interpolationMethod=<InterpolationMethod.Cubic: 2>, replacementNoValue=None)

Request a set of samples from the volume. The samples are always in 32-bit floating point format.

Parameters

samplePositions:

A set of voxel coordinates to obtain sample values for.

data_outnumpy.ndarray, optional

If specified, the data requested is copied to this array. Otherwise, a suitable numpy array is allocated.

dimensionsNDDimensionsND, optional

If specified, determine the dimensiongroup requested. Defaults to Dimensions_012

lodint, optional

Which LOD level to request. Defaults to 0

channelint, optional

Channel index. Defaults to 0.

interpolationMethod: InterpolationMethod, optional

Defaults to InterpolationMethod.Cubic

replacementNoValue: float, optional

If specified, NoValue data in the dataset is replaced with this value.

Returns

requestVolumeDataRequest

An object encapsulating the request, the request state, and the requested data.

requestVolumeSubset(min: ~typing.Tuple[int], max: ~typing.Tuple[int], data_out=None, dimensionsND=<DimensionsND.Dimensions_012: 0>, lod=0, channel=0, format=<VolumeDataFormat.Format_R32: 3>, replacementNoValue=None)

Request a subset of the VDS data.

Parameters

mintuple

Specifies the minimum voxel coordinates of the request (inclusive)

maxtuple

Specifies the maximum voxel coordinates of the request (exclusive)

data_outnumpy.ndarray, optional

If specified, the data requested is copied to this array. Otherwise, a suitable numpy array is allocated.

dimensionsNDDimensionsND, optional

If specified, determine the dimensiongroup requested. Defaults to Dimensions_012

lodint, optional

Which LOD level to request. Defaults to 0

channelint, optional

Channel index. Defaults to 0.

formatVoxelFormat, optional

Specifies the format of the delivered data: Bytes, floats, doubles. etc.

replacementNoValue: float, optional

If specified, NoValue data in the dataset is replaced with this value.

Returns

requestVolumeDataRequest

An object encapsulating the request, the request state, and the requested data.

requestVolumeTraces(tracePositions, traceDimension, data_out=None, dimensionsND=<DimensionsND.Dimensions_012: 0>, lod=0, channel=0, interpolationMethod=<InterpolationMethod.Cubic: 2>, replacementNoValue=None)

Request a set of traces from the volume. The traces are always in 32-bit floating point format.

Parameters

tracePositions:

A set of trace coordinates to obtain sample values for.

traceDimension:

The dimension to obtain the traces from.

data_outnumpy.ndarray, optional

If specified, the data requested is copied to this array. Otherwise, a suitable numpy array is allocated.

dimensionsNDDimensionsND, optional

If specified, determine the dimensiongroup requested. Defaults to Dimensions_012

lodint, optional

Which LOD level to request. Defaults to 0

channelint, optional

Channel index. Defaults to 0.

interpolationMethod: InterpolationMethod, optional

Defaults to InterpolationMethod.Cubic

replacementNoValue: float, optional

If specified, NoValue data in the dataset is replaced with this value.

Returns

requestVolumeDataRequest

An object encapsulating the request, the request state, and the requested data.

class openvds.VolumeDataRequest

A VolumeDataRequest encapsulates an asynchronous request for volume data from a VDS object instance.

When created by a VolumeDataAccessManager a VolumeDataRequest will be active. The request remains active until either IsCompleted(), IsCanceled() or WaitForCompletion() returns True.

It is supported to access a VolumeDataRequest from a different thread than where it was created, but concurrent access to the same instance from multiple threads can result in race conditions.

buffer(self: openvds.core.VolumeDataRequest) capsule

Get the pointer to the buffer the request is writing to.

Returns:

The pointer to the buffer the request is writing to.

bufferByteSize(self: openvds.core.VolumeDataRequest) int

Get the size of the buffer the request is writing to.

Returns:

The size of the buffer the request is writing to.

bufferDataType(self: openvds.core.VolumeDataRequest) openvds.core.VolumeDataFormat

Get the volume data format of the buffer the request is writing to.

Returns:

The volume data format of the buffer the request is writing to.

cancel(self: openvds.core.VolumeDataRequest) None

Try to cancel the request. You still have to call WaitForCompletion/IsCanceled to make sure the buffer is not being written to and to take the job out of the system. It is possible that the request has completed concurrently with the call to Cancel in which case WaitForCompletion will return True.

cancelAndWaitForCompletion(self: openvds.core.VolumeDataRequest) None

Cancel the request and wait for it to complete. This call will block until the request has completed so you can be sure the buffer is not being written to and the job is taken out of the system.

property canceled

Check if the request was canceled (e.g. the VDS was invalidated before the request was processed). If the request was canceled, the buffer does not contain valid data.

Returns:

The request is active until either IsCompleted, IsCanceled or WaitForCompletion returns True.

property completed

Check if the request completed successfully. If the request completed, the buffer now contains valid data.

Returns:

The request is active until either IsCompleted, IsCanceled or WaitForCompletion returns True.

property completionFactor

Get the completion factor (between 0 and 1) of the request.

Returns:

A factor (between 0 and 1) indicating how much of the request has been completed.

property errorCode

Get the error code of a request that has been cancelled.

Returns:

The error code. If the error code is positive, it corresponds to the enum values in Hue::HueSpaceLib::ErrorCode. Compute plugins may set their own negative error code, which causes the return value of this method to be a plain int value that does not correspond to one of the enum values.

property errorMessage

Get the error string of a request that has been cancelled.

Returns:

The error string.

getCompletionFactor(self: openvds.core.VolumeDataRequest) float

Get the completion factor (between 0 and 1) of the request.

Returns:

A factor (between 0 and 1) indicating how much of the request has been completed.

getErrorCode(self: openvds.core.VolumeDataRequest) int

Get the error code of a request that has been cancelled.

Returns:

The error code. If the error code is positive, it corresponds to the enum values in Hue::HueSpaceLib::ErrorCode. Compute plugins may set their own negative error code, which causes the return value of this method to be a plain int value that does not correspond to one of the enum values.

getErrorMessage(self: openvds.core.VolumeDataRequest) str

Get the error string of a request that has been cancelled.

Returns:

The error string.

isCanceled(self: openvds.core.VolumeDataRequest) bool

Check if the request was canceled (e.g. the VDS was invalidated before the request was processed). If the request was canceled, the buffer does not contain valid data.

Returns:

The request is active until either IsCompleted, IsCanceled or WaitForCompletion returns True.

isCompleted(self: openvds.core.VolumeDataRequest) bool

Check if the request completed successfully. If the request completed, the buffer now contains valid data.

Returns:

The request is active until either IsCompleted, IsCanceled or WaitForCompletion returns True.

requestID(self: openvds.core.VolumeDataRequest) int

Get the ID of the request.

Returns:

The ID of the request.

validateRequest(self: openvds.core.VolumeDataRequest) None

Check if the request object is valid. Throws an InvalidOperation exception if the request object is not valid.

waitForCompletion(self: openvds.core.VolumeDataRequest, millisecondsBeforeTimeout: int = 0) bool

Wait for the VolumeDataRequest to complete successfully. If the request completed, the buffer now contains valid data.

Parameters:

millisecondsBeforeTimeout :

The number of milliseconds to wait before timing out (optional). A value of 0 indicates there is no timeout and we will wait for however long it takes. Note that the request is not automatically canceled if the wait times out, you can also use this mechanism to e.g. update a progress bar while waiting. If you want to cancel the request you have to explicitly call CancelRequest() and then wait for the request to stop writing to the buffer.

Returns:

The request is active until either IsCompleted, IsCanceled or WaitForCompletion returns True. Whenever WaitForCompletion returns False you need to call IsCanceled() to know if that was because of a timeout or if the request was canceled.

class openvds.VolumeDataLayout
getAxisDescriptor(self: openvds.core.VolumeDataLayout, dimension: int) openvds.core.VolumeDataAxisDescriptor
getChannelComponents(self: openvds.core.VolumeDataLayout, channel: int) openvds.core.VolumeDataComponents
getChannelCount(self: openvds.core.VolumeDataLayout) int
getChannelDescriptor(self: openvds.core.VolumeDataLayout, channel: int) openvds.core.VolumeDataChannelDescriptor
getChannelFormat(self: openvds.core.VolumeDataLayout, channel: int) openvds.core.VolumeDataFormat
getChannelIndex(self: openvds.core.VolumeDataLayout, channelName: str) int
getChannelIntegerOffset(self: openvds.core.VolumeDataLayout, channel: int) float
getChannelIntegerScale(self: openvds.core.VolumeDataLayout, channel: int) float
getChannelMapping(self: openvds.core.VolumeDataLayout, channel: int) openvds.core.VolumeDataMapping
getChannelName(self: openvds.core.VolumeDataLayout, channel: int) str
getChannelNoValue(self: openvds.core.VolumeDataLayout, channel: int) float
getChannelUnit(self: openvds.core.VolumeDataLayout, channel: int) str
getChannelValueRangeMax(self: openvds.core.VolumeDataLayout, channel: int) float
getChannelValueRangeMin(self: openvds.core.VolumeDataLayout, channel: int) float
getContentsHash(self: openvds.core.VolumeDataLayout) int
getDimensionMax(self: openvds.core.VolumeDataLayout, dimension: int) float
getDimensionMin(self: openvds.core.VolumeDataLayout, dimension: int) float
getDimensionName(self: openvds.core.VolumeDataLayout, dimension: int) str
getDimensionNumSamples(self: openvds.core.VolumeDataLayout, dimension: int) int
getDimensionUnit(self: openvds.core.VolumeDataLayout, dimension: int) str
getDimensionality(self: openvds.core.VolumeDataLayout) int
getLayoutDescriptor(self: openvds.core.VolumeDataLayout) OpenVDS::VolumeDataLayoutDescriptor
getLayoutHash(self: openvds.core.VolumeDataLayout) int
getVDSIJKGridDefinitionFromMetadata(self: openvds.core.VolumeDataLayout) OpenVDS::VDSIJKGridDefinition
isChannelAllowingLossyCompression(self: openvds.core.VolumeDataLayout, channel: int) bool
isChannelAvailable(self: openvds.core.VolumeDataLayout, channelName: str) bool
isChannelDiscrete(self: openvds.core.VolumeDataLayout, channel: int) bool
isChannelRenderable(self: openvds.core.VolumeDataLayout, channel: int) bool
isChannelUseNoValue(self: openvds.core.VolumeDataLayout, channel: int) bool
isChannelUseZipForLosslessCompression(self: openvds.core.VolumeDataLayout, channel: int) bool
class openvds.VolumeDataAxisDescriptor

Describes the number of samples, name, unit and coordinates (annotation) of an axis (dimension) of the volume

property coordinateMax

Get the coordinate of the last sample of this axis

Returns:

The coordinate of the last sample of this axis

property coordinateMin

Get the coordinate of the first sample of this axis

Returns:

The coordinate of the first sample of this axis

property coordinateStep

Get the coordiante step size per sample

Returns:

The coordiante step size per sample

coordinateToSampleIndex(self: openvds.core.VolumeDataAxisDescriptor, coordinate: float) int

Convert a coordinate to a sample index (rounding to the closest index)

Parameters:

coordinate :

The coordinate to get the sample index of

Returns:

The sample index of the coordinate

coordinateToSamplePosition(self: openvds.core.VolumeDataAxisDescriptor, coordinate: float) float

Convert a coordinate to a sample position (to use with RequestVolumeSamples or an InterpolatingVolumeDataAccessor)

Parameters:

coordinate :

The coordinate to get the sample position of

Returns:

The sample position of the coordinate

getCoordinateMax(self: openvds.core.VolumeDataAxisDescriptor) float

Get the coordinate of the last sample of this axis

Returns:

The coordinate of the last sample of this axis

getCoordinateMin(self: openvds.core.VolumeDataAxisDescriptor) float

Get the coordinate of the first sample of this axis

Returns:

The coordinate of the first sample of this axis

getCoordinateStep(self: openvds.core.VolumeDataAxisDescriptor) float

Get the coordiante step size per sample

Returns:

The coordiante step size per sample

getName(self: openvds.core.VolumeDataAxisDescriptor) str

Get the name of this axis

Returns:

The name of this axis

getNumSamples(self: openvds.core.VolumeDataAxisDescriptor) int

Get the number of samples along this axis

Returns:

The number of samples along this axis

getUnit(self: openvds.core.VolumeDataAxisDescriptor) str

Get the unit of the coordinates of this axis

Returns:

The unit of the coordinates of this axis

property name

Get the name of this axis

Returns:

The name of this axis

property numSamples

Get the number of samples along this axis

Returns:

The number of samples along this axis

sampleIndexToCoordinate(self: openvds.core.VolumeDataAxisDescriptor, sampleIndex: int) float

Convert a sample index on this axis to a coordinate

Parameters:

sampleIndex :

The sample index get the coordinate of

Returns:

The coordinate of the sample index

property unit

Get the unit of the coordinates of this axis

Returns:

The unit of the coordinates of this axis

class openvds.VolumeDataChannelDescriptor

class VolumeDataChannelDescriptor Describes a channel of a VDS

Components

alias of VolumeDataComponents

class Flags

Flags for this channel

Members:

Default :

DiscreteData : < This channel contains discrete data

NoLossyCompression : < Do not allow lossy compression on this channel

NotRenderable : < This channel is not renderable

NoLossyCompressionUseZip : < Use Zip when compressing this channel

property name
Format

alias of VolumeDataFormat

getComponents(self: openvds.core.VolumeDataChannelDescriptor) openvds.core.VolumeDataComponents
getFlags(self: openvds.core.VolumeDataChannelDescriptor) OpenVDS::VolumeDataChannelDescriptor::Flags
getFormat(self: openvds.core.VolumeDataChannelDescriptor) openvds.core.VolumeDataFormat
getIntegerOffset(self: openvds.core.VolumeDataChannelDescriptor) float
getIntegerScale(self: openvds.core.VolumeDataChannelDescriptor) float
getMappedValueCount(self: openvds.core.VolumeDataChannelDescriptor) int
getMapping(self: openvds.core.VolumeDataChannelDescriptor) openvds.core.VolumeDataMapping
getName(self: openvds.core.VolumeDataChannelDescriptor) str
getNoValue(self: openvds.core.VolumeDataChannelDescriptor) float
getUnit(self: openvds.core.VolumeDataChannelDescriptor) str
getValueRange(self: openvds.core.VolumeDataChannelDescriptor) OpenVDS::Range<float>
getValueRangeMax(self: openvds.core.VolumeDataChannelDescriptor) float
getValueRangeMin(self: openvds.core.VolumeDataChannelDescriptor) float
isAllowLossyCompression(self: openvds.core.VolumeDataChannelDescriptor) bool
isDiscrete(self: openvds.core.VolumeDataChannelDescriptor) bool
isRenderable(self: openvds.core.VolumeDataChannelDescriptor) bool
isUseNoValue(self: openvds.core.VolumeDataChannelDescriptor) bool
isUseZipForLosslessCompression(self: openvds.core.VolumeDataChannelDescriptor) bool
static traceMappedVolumeDataChannelDescriptor(*args, **kwargs)

Overloaded function.

  1. traceMappedVolumeDataChannelDescriptor(format: openvds.core.VolumeDataFormat, components: openvds.core.VolumeDataComponents, name: str, unit: str, valueRangeMin: float, valueRangeMax: float, mappedValueCount: int, flags: openvds.core.VolumeDataChannelDescriptor.Flags) -> openvds.core.VolumeDataChannelDescriptor

Named constructor for a trace mapped channel

Parameters:

format :

the data format for this channel

components :

the number of vector components (1 for scalar data) for this channel

name :

the name of this channel

unit :

the unit of this channel

valueRangeMin :

The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

valueRangeMax :

The estimated maximum value of this channel, with outliers removed

mappedValueCount :

When using per trace mapping, the number of values to store per trace

flags :

the flags for this channel

Returns:

a trace mapped descriptor

  1. traceMappedVolumeDataChannelDescriptor(format: openvds.core.VolumeDataFormat, components: openvds.core.VolumeDataComponents, name: str, unit: str, valueRangeMin: float, valueRangeMax: float, mappedValueCount: int, flags: openvds.core.VolumeDataChannelDescriptor.Flags, noValue: float) -> openvds.core.VolumeDataChannelDescriptor

Named constructor for a trace mapped channel

Parameters:

format :

the data format for this channel

components :

the number of vector components (1 for scalar data) for this channel

name :

the name of this channel

unit :

the unit of this channel

valueRangeMin :

The estimated minimum value of this channel, with outliers removed, suitable for displaying the data and used for automatic conversion between R32 and quantized U8 and U16 representations of the data

valueRangeMax :

The estimated maximum value of this channel, with outliers removed

mappedValueCount :

When using per trace mapping, the number of values to store per trace

flags :

the flags for this channel

noValue :

the No Value for this channel

Returns:

a trace mapped descriptor

class openvds.VolumeDataLayoutDescriptor
class BrickSize

Members:

BrickSize_32 :

BrickSize_64 :

BrickSize_128 :

BrickSize_256 :

BrickSize_512 :

BrickSize_1024 :

BrickSize_2048 :

BrickSize_4096 :

property name
class LODLevels

Members:

LODLevels_None :

LODLevels_1 :

LODLevels_2 :

LODLevels_3 :

LODLevels_4 :

LODLevels_5 :

LODLevels_6 :

LODLevels_7 :

LODLevels_8 :

LODLevels_9 :

LODLevels_10 :

LODLevels_11 :

LODLevels_12 :

property name
class Options

Members:

Options_None :

Options_Create2DLODs :

Options_ForceFullResolutionDimension :

property name
getBrickSize(self: openvds.core.VolumeDataLayoutDescriptor) OpenVDS::VolumeDataLayoutDescriptor::BrickSize
getBrickSizeMultiplier2D(self: openvds.core.VolumeDataLayoutDescriptor) int
getFullResolutionDimension(self: openvds.core.VolumeDataLayoutDescriptor) int
getLODLevels(self: openvds.core.VolumeDataLayoutDescriptor) OpenVDS::VolumeDataLayoutDescriptor::LODLevels
getNegativeMargin(self: openvds.core.VolumeDataLayoutDescriptor) int
getOptions(self: openvds.core.VolumeDataLayoutDescriptor) OpenVDS::VolumeDataLayoutDescriptor::Options
getPositiveMargin(self: openvds.core.VolumeDataLayoutDescriptor) int
isCreate2DLODs(self: openvds.core.VolumeDataLayoutDescriptor) bool
isForceFullResolutionDimension(self: openvds.core.VolumeDataLayoutDescriptor) bool
isValid(self: openvds.core.VolumeDataLayoutDescriptor) bool
class openvds.KnownMetadata
static SEGYBinaryHeader() openvds.core.MetadataKey

The original binary header of the SEG-Y file

static SEGYDataEndianness() openvds.core.MetadataKey

The endianness of the data samples in the SEG-Y file if different from the header endianness. This is a non-standard feature, but some SEG-Y files use it. (0=BigEndian)(1=LittleEndian)

static SEGYDataSampleFormatCode() openvds.core.MetadataKey

The data sample format code of the data samples imported from the SEG-Y file. (0=Unknown)(1=IBMFloat)(2=Int32)(3=Int16)(4=FixedPoint)(5= IEEEFloat)(6=IEEEDouble)(7=Int24)(8=Int8)(9=Int64)(10=UInt32)(11=UInt1 6)(12=UInt64)(15=UInt24)(16=UInt8)

static SEGYEndianness() openvds.core.MetadataKey

The endianness of the SEG-Y file (0=BigEndian)(1=LittleEndian)

static SEGYPrimaryKey() openvds.core.MetadataKey

The primary key (i.e. sort order) of the original SEG-Y file. VDSs are expected to transpose crossline-oriented seismic to use the standard (Sample, Crossline, Inline) axis triple, so in order to export the file in the original order we need to know which dimension to loop over.

static SEGYTextHeader() openvds.core.MetadataKey

The original text header of the SEG-Y file

static actualValueRange() openvds.core.MetadataKey

The actual value range of the data written to the primary channel (excluding NoValues)

static categoryImportInformation() str

The metadata in the ImportInformation category contains information about the initial import to VDS. That is, information about the original file (file name, last modification time etc.) and when/how it was imported. The intended use is e.g. to give a default file name for an export operation or to inform the user about whether the VDS was imported from some particular file.

static categorySEGY() str

The metadata in the SEGY category is intended to capture information required to re-create the original SEG-Y file. It is only present if the VDS was imported from a SEG-Y file.

static categoryStatistics() str

This metadata category has statistics generated from the values written to the VDS.

static categorySurveyCoordinateSystem() str

The metadata in the survey coordinate system category contains either information used to transform from an Inline/Crossline annotation system to XY (Easting, Northing) coordinates or information used to transform from an I/J/K annotation system to XYZ coordinates. <para> In the Inline/Crossline system, the step vector for dimension 0 (Which can be named either Time, Depth or Sample) is always negative Z direction. The origin is the position of (inline, crossline) (0, 0), the inline spacing is the (X, Y) step when the inline position increments by 1 and the crossline spacing is the (X, Y) step when the crossline position increments by 1. </para> <para> In the I/J/K system, all three dimensions have 3D step vectors allowing for any affine tranform to XYZ coordinates. The IJK origin is the position of (I, J, K) (0, 0, 0), the I step vector is the (X, Y, Z) step when the I position increments by 1, the J step vector is the (X, Y, Z) step when the J position increments by 1 and the K step vector is the (X, Y, Z) step when the K position increments by 1. </para> <para> It is also possible to define the X, Y, Z coordinates directly by using X/Y/Z as the axis names. </para> <para> Any dimensions which have names that are not recognized or are missing the Spacing metadata will be given a unit vector perpendicular to the recognized dimensions. </para>

static categoryTraceCoordinates() str

The metadata in the TraceCoordinates category is used for positioning of 2D seismic. It relates to the ‘Trace’ dimension of the VDS where the annotation coordinate is used to look up in the arrays in this category. This allows using the same positions with subsetted and interpolated or decimated data.

static categoryWrittenRegion() str

The metadata in the WrittenRegion category is used to indicate which area is written in a sparsely populated VDS. The guarantee is that values outside the written area will be NoValue if UseNoValue is True, and ValueRange.Min if UseNoValue is False.

static energySourcePointNumbers() openvds.core.MetadataKey

An array of scalar int32 values defining the energy source point number for each trace.

static ensembleNumbers() openvds.core.MetadataKey

An array of scalar int32 values defining the ensemble number for each trace.

static histogram() openvds.core.MetadataKey

An array of histogram counts (int64) for each bucket of the histogram using the channel’s value range of the data written to the primary channel (excluding NoValues)

static importInformationDisplayName() openvds.core.MetadataKey

An informative name that can be displayed to a user but is not necessarily a valid file name.

static importInformationImportTimeStamp() openvds.core.MetadataKey

The time in ISO8601 format when the data was imported to VDS.

static importInformationInputFileName() openvds.core.MetadataKey

The original input file name. In cases where the input is not a simple file this should still be a valid file name that can be used as the default for a subsequent export operation.

static importInformationInputFileSize() openvds.core.MetadataKey

The total size (in bytes) of the input file(s), which is an integer stored as a double because there is no 64-bit integer metadata type.

static importInformationInputTimeStamp() openvds.core.MetadataKey

The last modified time of the input in ISO8601 format.

static surveyCoordinateSystemCRSWkt() openvds.core.MetadataKey

The well-known text representation of the coordinate reference system

static surveyCoordinateSystemCrosslineSpacing() openvds.core.MetadataKey

The XY spacing between units in the Crossline annotation dimension.

static surveyCoordinateSystemGridPoint0() openvds.core.MetadataKey

An optional reference point in the grid, the annotation coordinates for this point are GridPoint0Inline and GridPoint0Crossline

static surveyCoordinateSystemGridPoint0Crossline() openvds.core.MetadataKey

The inline annotation coordinate for the point defined by GridPoint0

static surveyCoordinateSystemGridPoint0Inline() openvds.core.MetadataKey

The inline annotation coordinate for the point defined by GridPoint0

static surveyCoordinateSystemGridPoint1() openvds.core.MetadataKey

An optional reference point in the grid, the annotation coordinates for this point are GridPoint1Inline and GridPoint1Crossline

static surveyCoordinateSystemGridPoint1Crossline() openvds.core.MetadataKey

The inline annotation coordinate for the point defined by GridPoint1

static surveyCoordinateSystemGridPoint1Inline() openvds.core.MetadataKey

The inline annotation coordinate for the point defined by GridPoint1

static surveyCoordinateSystemGridPoint2() openvds.core.MetadataKey

An optional reference point in the grid, the annotation coordinates for this point are GridPoint2Inline and GridPoint2Crossline

static surveyCoordinateSystemGridPoint2Crossline() openvds.core.MetadataKey

The inline annotation coordinate for the point defined by GridPoint2

static surveyCoordinateSystemGridPoint2Inline() openvds.core.MetadataKey

The inline annotation coordinate for the point defined by GridPoint2

static surveyCoordinateSystemGridPoint3() openvds.core.MetadataKey

An optional reference point in the grid, the annotation coordinates for this point are GridPoint3Inline and GridPoint3Crossline

static surveyCoordinateSystemGridPoint3Crossline() openvds.core.MetadataKey

The inline annotation coordinate for the point defined by GridPoint3

static surveyCoordinateSystemGridPoint3Inline() openvds.core.MetadataKey

The inline annotation coordinate for the point defined by GridPoint3

static surveyCoordinateSystemIJKOrigin() openvds.core.MetadataKey

The XYZ position of the origin of the annotation (I/J/K) coordinate system.

static surveyCoordinateSystemIStepVector() openvds.core.MetadataKey

The step vector corresponding to dimension named ‘I’

static surveyCoordinateSystemInlineSpacing() openvds.core.MetadataKey

The XY spacing between units in the Inline annotation dimension.

static surveyCoordinateSystemJStepVector() openvds.core.MetadataKey

The step vector corresponding to dimension named ‘J’

static surveyCoordinateSystemKStepVector() openvds.core.MetadataKey

The step vector corresponding to dimension named ‘K’

static surveyCoordinateSystemOrigin() openvds.core.MetadataKey

The XY position of the origin of the annotation (Inline/Crossline/Time) coordinate system.

static surveyCoordinateSystemUnit() openvds.core.MetadataKey

The unit of the coordinate system

static tracePositions() openvds.core.MetadataKey

An array of DoubleVector2 defining the position for each trace, where (0, 0) is treated as an undefined position.

static traceVerticalOffsets() openvds.core.MetadataKey

An array of doubles defining the offset for each trace from the vertical start position in the Time/Depth/Sample dimension of the VDS

static writtenRegion() openvds.core.MetadataKey

An array of scalar int32 values defining the 6D min and max (NDBox) of the written region

class openvds.MetadataContainer
clearMetadata(*args, **kwargs)

Overloaded function.

  1. clearMetadata(self: openvds.core.MetadataContainer, category: str, name: str) -> None

  2. clearMetadata(self: openvds.core.MetadataContainer, category: str) -> None

copyMetadata(self: openvds.core.MetadataContainer, category: str, metadataReadAccess: openvds.core.MetadataReadAccess) None
getMetadataDouble(self: openvds.core.MetadataContainer, category: str, name: str) float
getMetadataDoubleVector2(self: openvds.core.MetadataContainer, category: str, name: str) Tuple[float, float]
getMetadataDoubleVector3(self: openvds.core.MetadataContainer, category: str, name: str) Tuple[float, float, float]
getMetadataDoubleVector4(self: openvds.core.MetadataContainer, category: str, name: str) Tuple[float, float, float, float]
getMetadataFloat(self: openvds.core.MetadataContainer, category: str, name: str) float
getMetadataFloatVector2(self: openvds.core.MetadataContainer, category: str, name: str) Tuple[float, float]
getMetadataFloatVector3(self: openvds.core.MetadataContainer, category: str, name: str) Tuple[float, float, float]
getMetadataFloatVector4(self: openvds.core.MetadataContainer, category: str, name: str) Tuple[float, float, float, float]
getMetadataInt(self: openvds.core.MetadataContainer, category: str, name: str) int
getMetadataIntVector2(self: openvds.core.MetadataContainer, category: str, name: str) Tuple[int, int]
getMetadataIntVector3(self: openvds.core.MetadataContainer, category: str, name: str) Tuple[int, int, int]
getMetadataIntVector4(self: openvds.core.MetadataContainer, category: str, name: str) Tuple[int, int, int, int]
getMetadataKeys(self: openvds.core.MetadataContainer) openvds.core.MetadataKeyRange
getMetadataString(self: openvds.core.MetadataContainer, category: str, name: str) str
isMetadataBLOBAvailable(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataDoubleAvailable(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataDoubleVector2Available(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataDoubleVector3Available(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataDoubleVector4Available(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataFloatAvailable(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataFloatVector2Available(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataFloatVector3Available(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataFloatVector4Available(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataIntAvailable(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataIntVector2Available(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataIntVector3Available(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataIntVector4Available(self: openvds.core.MetadataContainer, category: str, name: str) bool
isMetadataStringAvailable(self: openvds.core.MetadataContainer, category: str, name: str) bool
setMetadataBLOB(self: openvds.core.MetadataContainer, category: str, name: str, data: buffer) None
setMetadataDouble(self: openvds.core.MetadataContainer, category: str, name: str, value: float) None
setMetadataDoubleVector2(self: openvds.core.MetadataContainer, category: str, name: str, value: Tuple[float, float]) None
setMetadataDoubleVector3(self: openvds.core.MetadataContainer, category: str, name: str, value: Tuple[float, float, float]) None
setMetadataDoubleVector4(self: openvds.core.MetadataContainer, category: str, name: str, value: Tuple[float, float, float, float]) None
setMetadataFloat(self: openvds.core.MetadataContainer, category: str, name: str, value: float) None
setMetadataFloatVector2(self: openvds.core.MetadataContainer, category: str, name: str, value: Tuple[float, float]) None
setMetadataFloatVector3(self: openvds.core.MetadataContainer, category: str, name: str, value: Tuple[float, float, float]) None
setMetadataFloatVector4(self: openvds.core.MetadataContainer, category: str, name: str, value: Tuple[float, float, float, float]) None
setMetadataInt(self: openvds.core.MetadataContainer, category: str, name: str, value: int) None
setMetadataIntVector2(self: openvds.core.MetadataContainer, category: str, name: str, value: Tuple[int, int]) None
setMetadataIntVector3(self: openvds.core.MetadataContainer, category: str, name: str, value: Tuple[int, int, int]) None
setMetadataIntVector4(self: openvds.core.MetadataContainer, category: str, name: str, value: Tuple[int, int, int, int]) None
setMetadataString(self: openvds.core.MetadataContainer, category: str, name: str, value: str) None
class openvds.MetadataReadAccess

Interface for read access to Metadata

getMetadata(*args, **kwargs)

Overloaded function.

  1. getMetadata(self: openvds.core.MetadataReadAccess, key: openvds.core.MetadataKey) -> PyMetadataVariant

  2. getMetadata(self: openvds.core.MetadataReadAccess, category: str, name: str, type: openvds.core.MetadataType) -> PyMetadataVariant

getMetadataBLOB(self: openvds.core.MetadataReadAccess, category: str, name: str) openvds.core.BLOB
getMetadataDouble(self: openvds.core.MetadataReadAccess, category: str, name: str) float
getMetadataDoubleVector2(self: openvds.core.MetadataReadAccess, category: str, name: str) Tuple[float, float]
getMetadataDoubleVector3(self: openvds.core.MetadataReadAccess, category: str, name: str) Tuple[float, float, float]
getMetadataDoubleVector4(self: openvds.core.MetadataReadAccess, category: str, name: str) Tuple[float, float, float, float]
getMetadataFloat(self: openvds.core.MetadataReadAccess, category: str, name: str) float
getMetadataFloatVector2(self: openvds.core.MetadataReadAccess, category: str, name: str) Tuple[float, float]
getMetadataFloatVector3(self: openvds.core.MetadataReadAccess, category: str, name: str) Tuple[float, float, float]
getMetadataFloatVector4(self: openvds.core.MetadataReadAccess, category: str, name: str) Tuple[float, float, float, float]
getMetadataInt(self: openvds.core.MetadataReadAccess, category: str, name: str) int
getMetadataIntVector2(self: openvds.core.MetadataReadAccess, category: str, name: str) Tuple[int, int]
getMetadataIntVector3(self: openvds.core.MetadataReadAccess, category: str, name: str) Tuple[int, int, int]
getMetadataIntVector4(self: openvds.core.MetadataReadAccess, category: str, name: str) Tuple[int, int, int, int]
getMetadataKeys(self: openvds.core.MetadataReadAccess) openvds.core.MetadataKeyRange
getMetadataString(self: openvds.core.MetadataReadAccess, category: str, name: str) str
isMetadataBLOBAvailable(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataDoubleAvailable(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataDoubleVector2Available(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataDoubleVector3Available(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataDoubleVector4Available(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataFloatAvailable(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataFloatVector2Available(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataFloatVector3Available(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataFloatVector4Available(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataIntAvailable(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataIntVector2Available(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataIntVector3Available(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataIntVector4Available(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
isMetadataStringAvailable(self: openvds.core.MetadataReadAccess, category: str, name: str) bool
class openvds.MetadataWriteAccess

Interface for write access to Metadata

clearMetadata(*args, **kwargs)

Overloaded function.

  1. clearMetadata(self: openvds.core.MetadataWriteAccess, category: str, name: str) -> None

  2. clearMetadata(self: openvds.core.MetadataWriteAccess, category: str) -> None

copyMetadata(self: openvds.core.MetadataWriteAccess, category: str, metadataReadAccess: openvds.core.MetadataReadAccess) None

Copy the metadata from another MetadataContainer

Parameters:

category :

the metadata category to copy

metadataReadAccess :

the MetadataReadAccess interface to copy from

setMetadataBLOB(self: openvds.core.MetadataWriteAccess, category: str, name: str, data: buffer) None
setMetadataDouble(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: float) None
setMetadataDoubleVector2(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: Tuple[float, float]) None
setMetadataDoubleVector3(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: Tuple[float, float, float]) None
setMetadataDoubleVector4(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: Tuple[float, float, float, float]) None
setMetadataFloat(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: float) None
setMetadataFloatVector2(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: Tuple[float, float]) None
setMetadataFloatVector3(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: Tuple[float, float, float]) None
setMetadataFloatVector4(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: Tuple[float, float, float, float]) None
setMetadataInt(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: int) None
setMetadataIntVector2(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: Tuple[int, int]) None
setMetadataIntVector3(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: Tuple[int, int, int]) None
setMetadataIntVector4(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: Tuple[int, int, int, int]) None
setMetadataString(*args, **kwargs)

Overloaded function.

  1. setMetadataString(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: str) -> None

  2. setMetadataString(self: openvds.core.MetadataWriteAccess, category: str, name: str, value: str) -> None

class openvds.VolumeDataPageAccessor
class AccessMode

Members:

AccessMode_ReadOnly : < The volume data page accessor will only be used for reading

AccessMode_ReadWrite : < The volume data page accessor will be used for reading and writing

(can only be used with LOD 0, the other LODs will be automatically updated)

AccessMode_Create : < The volume data page accessor will be used to write new data,

overwriting any existing data (can only be used with LOD 0, the other LODs will be automatically created)

AccessMode_CreateWithoutLODGeneration : < The volume data page accessor will be used to write new data,

overwriting any existing data (each LOD has to be created separately)

AccessMode_ReadWriteWithoutLODGeneration : < The volume data page accessor will be used used for reading and

writing (each LOD has to be created separately)

property name
addReference(self: openvds.core.VolumeDataPageAccessor) int
commit(self: openvds.core.VolumeDataPageAccessor) None
copyPage(self: openvds.core.VolumeDataPageAccessor, chunkIndex: int, source: openvds.core.VolumeDataPageAccessor) None

Copy a page of data from another VolumeDataPageAccessor with a compatible layout. This method is not blocking so if you want to access the copied data you need to call ReadPage which will block until the copy is done and return the copied data.

Parameters:

chunkIndex :

The chunk index to copy

source :

The VolumeDataPageAccessor to copy data from

createPage(self: openvds.core.VolumeDataPageAccessor, chunkIndex: int) openvds.core.VolumeDataPage
getChannelDescriptor(self: openvds.core.VolumeDataPageAccessor) OpenVDS::VolumeDataChannelDescriptor
getChannelIndex(self: openvds.core.VolumeDataPageAccessor) int
getChunkCount(self: openvds.core.VolumeDataPageAccessor) int
getChunkIndex(self: openvds.core.VolumeDataPageAccessor, position: numpy.ndarray[numpy.int32]) int
getChunkIndicesInSuperChunk(self: openvds.core.VolumeDataPageAccessor, superChunkIndex: int) List[int]
getChunkMinMax(*args, **kwargs)

Overloaded function.

  1. getChunkMinMax(self: openvds.core.VolumeDataPageAccessor, chunk: int, min: numpy.ndarray[numpy.int32], max: numpy.ndarray[numpy.int32]) -> None

  2. getChunkMinMax(self: openvds.core.VolumeDataPageAccessor, chunk: int) -> Tuple[List[int[6]], List[int[6]]]

getChunkMinMaxExcludingMargin(*args, **kwargs)

Overloaded function.

  1. getChunkMinMaxExcludingMargin(self: openvds.core.VolumeDataPageAccessor, chunk: int, minExcludingMargin: numpy.ndarray[numpy.int32], maxExcludingMargin: numpy.ndarray[numpy.int32]) -> None

  2. getChunkMinMaxExcludingMargin(self: openvds.core.VolumeDataPageAccessor, chunk: int) -> Tuple[List[int[6]], List[int[6]]]

getChunkVolumeDataHash(self: openvds.core.VolumeDataPageAccessor, chunkIndex: int) int

Get the volume data hash for the given chunk index. The value returned may be tested using the methods VolumeDataHash_IsDefined, VolumeDataHash_IsNoValue, and VolumeDataHash_IsConstant defined in VolumeData.h.

Parameters:

chunkIndex :

The chunk index to get the volume data hash for.

Returns:

The volume data hash for the chunk.

getLOD(self: openvds.core.VolumeDataPageAccessor) int
getLayout(self: openvds.core.VolumeDataPageAccessor) OpenVDS::VolumeDataLayout
getMappedChunkIndex(self: openvds.core.VolumeDataPageAccessor, primaryChannelChunkIndex: int) int

Get the chunk index for this VolumeDataPageAccessor corresponding to the given chunk index in the primary channel. Because some channels can have mappings (e.g. one value per trace), the number of chunks can be less than in the primary channel and we need to have a mapping to figure out the chunk index in each channel that is produced together.

Parameters:

primaryChannelChunkIndex :

The index of the chunk in the primary channel (channel 0) that we want to map to a chunk index for this VolumeDataPageAccessor.

Returns:

The chunk index for this VolumeDataPageAccessor corresponding to the given chunk index in the primary channel.

getMaxPages(self: openvds.core.VolumeDataPageAccessor) int
getNumSamples(*args, **kwargs)

Overloaded function.

  1. getNumSamples(self: openvds.core.VolumeDataPageAccessor, numSamples: numpy.ndarray[numpy.int32]) -> None

  2. getNumSamples(self: openvds.core.VolumeDataPageAccessor) -> List[int[6]]

getPrimaryChannelChunkIndex(self: openvds.core.VolumeDataPageAccessor, chunkIndex: int) int

Get the primary channel chunk index corresponding to the given chunk index of this VolumeDataPageAccessor. In order to avoid creating duplicates requests when a channel is mapped, we need to know which primary channel chunk index is representative of a particular mapped chunk index.

Parameters:

chunkIndex :

The chunk index for this VolumeDataPageAccessor that we want the representative primary channel chunk index of.

Returns:

The primary channel chunk index corresponding to the given chunk index for this VolumeDataPageAccessor.

getSuperChunkCount(self: openvds.core.VolumeDataPageAccessor) int

Get the number of super-chunks for this VolumeDataPageAccessor. Each super-chunk is an overlapping block of chunks from the remap source of this VolumeDataPageAccessor and the chunks in this VolumeDataPageAccessor. In order to produce the chunks as efficiently as possible (if there are more chunks than super-chunks), any code that iterates over all the chunks of a page accessor should iterate over the super-chunks and then over the chunks within each super- chunk.

Returns:

The number of super-chunks for this VolumeDataPageAccessor.

readPage(self: openvds.core.VolumeDataPageAccessor, chunkIndex: int) openvds.core.VolumeDataPage
readPageAtPosition(self: openvds.core.VolumeDataPageAccessor, position: numpy.ndarray[numpy.int32]) openvds.core.VolumeDataPage
removeReference(self: openvds.core.VolumeDataPageAccessor) int
setMaxPages(self: openvds.core.VolumeDataPageAccessor, maxPages: int) None
property superChunkCount

Get the number of super-chunks for this VolumeDataPageAccessor. Each super-chunk is an overlapping block of chunks from the remap source of this VolumeDataPageAccessor and the chunks in this VolumeDataPageAccessor. In order to produce the chunks as efficiently as possible (if there are more chunks than super-chunks), any code that iterates over all the chunks of a page accessor should iterate over the super-chunks and then over the chunks within each super- chunk.

Returns:

The number of super-chunks for this VolumeDataPageAccessor.

class openvds.VolumeDataPage
getBuffer(self: openvds.core.VolumeDataPage) memoryview
getError(self: openvds.core.VolumeDataPage) OpenVDS::ReadErrorException
getMinMax(*args, **kwargs)

Overloaded function.

  1. getMinMax(self: openvds.core.VolumeDataPage, min: numpy.ndarray[numpy.int32], max: numpy.ndarray[numpy.int32]) -> None

  2. getMinMax(self: openvds.core.VolumeDataPage) -> Tuple[List[int[6]], List[int[6]]]

getMinMaxExcludingMargin(*args, **kwargs)

Overloaded function.

  1. getMinMaxExcludingMargin(self: openvds.core.VolumeDataPage, minExcludingMargin: numpy.ndarray[numpy.int32], maxExcludingMargin: numpy.ndarray[numpy.int32]) -> None

  2. getMinMaxExcludingMargin(self: openvds.core.VolumeDataPage) -> Tuple[List[int[6]], List[int[6]]]

getVolumeDataPageAccessor(self: openvds.core.VolumeDataPage) OpenVDS::VolumeDataPageAccessor
getWritableBuffer(self: openvds.core.VolumeDataPage) memoryview
release(self: openvds.core.VolumeDataPage) None
updateWrittenRegion(self: openvds.core.VolumeDataPage, writtenMin: numpy.ndarray[numpy.int32], writtenMax: numpy.ndarray[numpy.int32]) None