Open VDS issueshttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues2023-09-19T10:20:18Zhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/205fail to copy file from cloud server2023-09-19T10:20:18Znanting liufail to copy file from cloud serveri try to read vds from minio(a open-source, S3 compatible object store)
at first step,i try to read a vds file with _OpenVDS.open()_,but failed,
exception is "Error on downloading VolumeDataLayout object: Http error response: 404 -> http...i try to read vds from minio(a open-source, S3 compatible object store)
at first step,i try to read a vds file with _OpenVDS.open()_,but failed,
exception is "Error on downloading VolumeDataLayout object: Http error response: 404 -> https://endpoint/bucket-name/test.vds/VolumeDataLayout: The specified key does not exist.".
then,i realized that _open()_ can not read a vds file directly, cause the file uploaded manually.
and the second step,l try to use VDSCopy to copy the VDS file to the cloud environment,still fail! with error "Error on uploading VolumeDataLayout object: unexpected AWS signing failure",here is my command `VDSCopy.exe E:\PPCoef.vds s3://endpoint/bucket-name/testVDS -d "Region=us-west-rack-2;SecretKey=xxx;SecretAccessKey=xxx"`,my SecretKey&SecretAccessKey is correct,but l dont know why print this...
Could you please help me figure out how to deal with this situation?https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/183Update documentation build system2023-09-15T11:31:24ZMorten OfstadUpdate documentation build systemInclude the sphinx-design module so we can have multi-language example code in tabs:
https://sphinx-design.readthedocs.io/en/rtd-theme/tabs.html
Replace the markdown module with MyST:
https://myst-parser.readthedocs.io/en/v0.15.1/sphinx/...Include the sphinx-design module so we can have multi-language example code in tabs:
https://sphinx-design.readthedocs.io/en/rtd-theme/tabs.html
Replace the markdown module with MyST:
https://myst-parser.readthedocs.io/en/v0.15.1/sphinx/intro.htmlMorten OfstadMorten Ofstadhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/202[docs][webpage] seems Python API docs are gone2023-09-15T11:30:27ZFilip Brzęk[docs][webpage] seems Python API docs are gone[Python API Link](https://osdu.pages.opengroup.org/platform/domain-data-mgmt-services/seismic/open-vds/python-api.html)
![image](/uploads/5fc6bed0cd3a145846b921ac6d2221c1/image.png)[Python API Link](https://osdu.pages.opengroup.org/platform/domain-data-mgmt-services/seismic/open-vds/python-api.html)
![image](/uploads/5fc6bed0cd3a145846b921ac6d2221c1/image.png)https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/203Exec SEGYIMPORT.exe(or .sh) is the only way to convert a .sgy file to .vds file?2023-09-08T08:21:10Znanting liuExec SEGYIMPORT.exe(or .sh) is the only way to convert a .sgy file to .vds file?l am confused that run SEGYIMPORT.exe(or .sh) is the only method to convert a .sgy file to .vds file?l am confused that run SEGYIMPORT.exe(or .sh) is the only method to convert a .sgy file to .vds file?https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/201SEG-Y header field definition at the last byte location doesn't work2023-09-06T10:11:02ZMorten OfstadSEG-Y header field definition at the last byte location doesn't workSEGYImport does not allow reading the last FourByte header word from the SEGY header.
If the crossline in the last header word, you can define a JSON file as follows:
```
{
"InlineNumber" : [ 233, "FourByte"],
"CrosslineNumber"...SEGYImport does not allow reading the last FourByte header word from the SEGY header.
If the crossline in the last header word, you can define a JSON file as follows:
```
{
"InlineNumber" : [ 233, "FourByte"],
"CrosslineNumber" : [ 237, "FourByte"]
}
```
This gives an ‘illegal field’ definition error because the code checks that 237 + 4 is no more than 240 which is off-by-one.https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/200Any hint on generate fast slices?2023-08-30T13:35:01ZQiang FuAny hint on generate fast slices?I would like to read data inline by inline, crl by crl. I saw the documents said it could be done by fast slices, any hint how to handle it? Does segyimport support it?I would like to read data inline by inline, crl by crl. I saw the documents said it could be done by fast slices, any hint how to handle it? Does segyimport support it?https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/167Abort trap 6 on OpenVDS::Open2023-08-29T14:42:46ZErlend HårstadAbort trap 6 on OpenVDS::OpenPassing `OpenVDS::Open` a sas token where the Signed Resource Type (`srt`) parameter contains 'Container' (`c`) and _not_ object (`o`) cause an Abort trap 6. As far as I can tell, this happen for any combination of `srt` options as long ...Passing `OpenVDS::Open` a sas token where the Signed Resource Type (`srt`) parameter contains 'Container' (`c`) and _not_ object (`o`) cause an Abort trap 6. As far as I can tell, this happen for any combination of `srt` options as long as it contains `c` and not `o`. Although this particular combination doesn't make a whole lot of sense when working with VDS, it's still a completely valid sas.
I've only tested this on 3.0.3https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/189Error uploading VDS (VDSCopy) into a OSDU subproject2023-08-29T14:41:36ZJuliana Fernandesjuliana.fernandes@iesbrazil.com.brError uploading VDS (VDSCopy) into a OSDU subprojectHello,
I'm trying to use OpenVDS+ 3.2.6 to upload a vds file into a OSDU subproject at AWS.
The upload goes fine until 84.21% and them stop the progress. I left the process run more than 12 hours without any updates. The VDS file h...Hello,
I'm trying to use OpenVDS+ 3.2.6 to upload a vds file into a OSDU subproject at AWS.
The upload goes fine until 84.21% and them stop the progress. I left the process run more than 12 hours without any updates. The VDS file has around 5.7GB. I can get the dataset info in postman, but the path postman indicates does not exist into the console.
Regards,
Juliana Fernandes
![VDSCopy](/uploads/4b8652d47846bc60428d4d13500de65a/VDSCopy.png)
![dataset_info_postman](/uploads/875e9ae95b1839bc6e5639054e6f5cdb/dataset_info_postman.png)
![aws_console_subproject](/uploads/69272e0e2863e94b1e765d2d130c36c4/aws_console_subproject.png)https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/196Wavelet compression in Python2023-08-29T14:41:08ZVasilii SinkevichWavelet compression in PythonHi,
I am investigating VDS capabilities and trying to convert numpy array into VDS using Wavelet compression.
I am using the example provided along the source code (npy_to_vds.py) with minimal changes
Everything works fine with no com...Hi,
I am investigating VDS capabilities and trying to convert numpy array into VDS using Wavelet compression.
I am using the example provided along the source code (npy_to_vds.py) with minimal changes
Everything works fine with no compression or with Zip or RLE compression, I can write and read data back, but if I try using Wavelet, like this:
```python
compressionMethod = openvds.CompressionMethod(1)
```
the code execution gets stuck at committing changes
```python
accessor.commit()
```
regardless of compression tolerance value. It just hangs here for ages.
I am wondering if python port is actual OpenVDS+ binding, maybe it is actually OpenVDS (without plus) that do not support wavelet compression?
If it *is* OpenVDS+, could you please provide a sample of the code (or maybe edit npy_to_vds.py) that saves VDS format with wavelet compression?
EDIT: I am working on Debian 9, python 3.9, openvds 3.2.6
Thanks,
Vasiliihttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/198Failed to create 3D Prestack container on OSDU2023-08-29T14:40:24ZAnatoly YanchevskyFailed to create 3D Prestack container on OSDUI try to create 3D Prestack with 4 axis:
Sample/Trace(offset)/Crossline/Inline
Error occurred on call "OpenVDS::Create".
Message: "DimensionGroup 41 is not a valid dimension."
Stack: [call_stack.txt](/uploads/fb0ec722ccda7ec907d357aa4b0...I try to create 3D Prestack with 4 axis:
Sample/Trace(offset)/Crossline/Inline
Error occurred on call "OpenVDS::Create".
Message: "DimensionGroup 41 is not a valid dimension."
Stack: [call_stack.txt](/uploads/fb0ec722ccda7ec907d357aa4b03a211/call_stack.txt)
Same volume can be created on local disk.
Output from VDSInfo: [VDSInfo_axis.txt](/uploads/1ecb09ef3ce874ef18686d3397a45a61/VDSInfo_axis.txt) and [VDSInfo_channels.txt](/uploads/bd3daf2ce80b5022ecab479f329109d7/VDSInfo_channels.txt)
Probably, I do something wrong, but I did not understand what exactly.https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/197Deadlock in VolumeDataRequestProcessor::WaitForCompletion after cancel loadin...2023-08-25T07:48:49ZAnatoly YanchevskyDeadlock in VolumeDataRequestProcessor::WaitForCompletion after cancel loading one of LODsWe create several LODs in OpenVDS container. When our viewer display data, some time need to cancel loading one of the LODs.
It produce deadlock in open-vds library.
Two threads that are in the deadlock: [stack_1.txt](/uploads/25ff1d9f8...We create several LODs in OpenVDS container. When our viewer display data, some time need to cancel loading one of the LODs.
It produce deadlock in open-vds library.
Two threads that are in the deadlock: [stack_1.txt](/uploads/25ff1d9f89d453a9b1a11eec99dcb5ab/stack_1.txt) and [stack_2.txt](/uploads/8dfb70257b51f09f3f6c8df050abdc5b/stack_2.txt)
To fix that, we do next changes: [VolumeDataRequestProcessor.patch](/uploads/9ddab5fc678d95834df15a07fc5874d9/VolumeDataRequestProcessor.patch)
Problem occurred on Linux, open-vds 3.0.3. But we found that in latest version function VolumeDataRequestProcessor::WaitForCompletion did not changed.https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/86API to get container size2023-08-14T15:54:50ZAnatoly YanchevskyAPI to get container sizeIt will be really useful to get API for size of OpenVDS container.
Right now we can store only size for input file from with container was created.It will be really useful to get API for size of OpenVDS container.
Right now we can store only size for input file from with container was created.https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/185SEGYImport stucks when importing seg-y with "Wavelet" compression method.2023-07-17T11:53:08ZTimofey AbramovSEGYImport stucks when importing seg-y with "Wavelet" compression method.We have a segy that is big-endian on headers data, but little endian in traces data. So SEGYImport cannot process traces data correctly. But it is not the issue we are reporting (and we [know about it](https://community.opengroup.org/osd...We have a segy that is big-endian on headers data, but little endian in traces data. So SEGYImport cannot process traces data correctly. But it is not the issue we are reporting (and we [know about it](https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/162#note_172762)). The main issue is stucking the SEGYImport utility with "Wavelet" compression method on this file:
```
C:\Users\t.abramov_rogii\Downloads\openvds+-3.2.5\bin\msvc_141>SEGYImport.exe --input "D:/Format8_fixed_cropped.sgy" --vdsfile="D:/out" --compression-method=Wavelet
SEGYImport - OpenVDS+ 3.2.5 - Revision: c2525fbab73bd4977c1b6092fe9785bd612a479f
Importing into: D:/out
87.50 % Done.The value range in the wavelet compression was NaN or close to Inf. Clamping value range to +-10^30.
```
And it stucks at this progress.
SEGY: [Format8_fixed_cropped.sgy](/uploads/655e487aaef0133d347f51d5e61ba6ce/Format8_fixed_cropped.sgy)https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/194allow limiting OpenMP/ThreadPool num of threads at runtime (via omp_num_threads)2023-07-12T13:55:36ZFilip Brzękallow limiting OpenMP/ThreadPool num of threads at runtime (via omp_num_threads)Hello,
It seems, that setting `OMP_NUM_THREADS=<int>` doesn't seem to have an effect, due to constants and limiting logic `src/OpenVDS/VDS/WaveletOpenMP.h`
and
```c++
#define WAVELET_OPENMP_SSE_THREAD_COUNT 4
#define WAVELET_OPENMP_MEM...Hello,
It seems, that setting `OMP_NUM_THREADS=<int>` doesn't seem to have an effect, due to constants and limiting logic `src/OpenVDS/VDS/WaveletOpenMP.h`
and
```c++
#define WAVELET_OPENMP_SSE_THREAD_COUNT 4
#define WAVELET_OPENMP_MEMORY_THREAD_COUNT 2
namespace Wavelet {
inline int Wavelet_GetEffectiveOpenMPThreadCount(int wantedThreadCount)
{
return std::max(1, std::min(omp_get_num_procs() - 2, wantedThreadCount));
}
}
```
and how that's used here
```log
src/OpenVDS/VDS/WaveletAdaptiveLLDecompress.cpp:537: const int threadCount = Wavelet_GetEffectiveOpenMPThreadCount(WAVELET_OPENMP_SSE_THREAD_COUNT);
src/OpenVDS/VDS/WaveletAdaptiveLLDecompress.cpp:666: const int threadCount = Wavelet_GetEffectiveOpenMPThreadCount(WAVELET_OPENMP_SSE_THREAD_COUNT);
src/OpenVDS/VDS/WaveletDecompress.cpp:636: WaveletTransform_InverseTransform_SSE(Wavelet_GetEffectiveOpenMPThreadCount(WAVELET_OPENMP_SSE_THREAD_COUNT), tempBuffer.data(), tempBufferSize, source, m_transformIterations, m_bandSize, m_transformMask, m_allocatedSizeX, m_allocatedSizeXY, m_integerInfo);
```
which always defaults to `omp_get_num_procs`, which is not ideal if the underlying machine is shared between workloads, it's spawning threads either based on `WAVELET_OPENMP_SSE_THREAD_COUNT 4` or `num_procs - 2`, whereas we would like to control max allowed by `OMP_NUM_THREADS`.
Is this something that can be improved? Or there are some designs for WaveletAdaptive implementation, that must have at least 4 compute threads.
context: Our recent observation yielded ~200+ Open VDSCopy threads on a 100+ core machine, which is of a shared nature, causing some other problems and unpredictable bursts of load when VDSCopy is invoked.
EDIT: seems the rest of the threads might be coming from threadPool, can we have a runtime limitation for this as well?
```log
src/OpenVDS/IO/IOManagerInMemory.cpp:11: , m_threadPool(std::thread::hardware_concurrency())
src/OpenVDS/VDS/VolumeDataRequestProcessor.cpp:1721: , m_threadPool(std::thread::hardware_concurrency())
```
I can submit a PR if you like.
Thanks,
Filiphttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/195Missing const in Sample-functions in VolumeDataAxisDescriptor2023-07-04T09:13:40ZAlena ChaikouskayaMissing const in Sample-functions in VolumeDataAxisDescriptor```
SampleIndexToCoordinate
CoordinateToSampleIndex
CoordinateToSamplePosition
```
functions in [OpenVDS::VolumeDataAxisDescriptor](https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/blob/master/s...```
SampleIndexToCoordinate
CoordinateToSampleIndex
CoordinateToSamplePosition
```
functions in [OpenVDS::VolumeDataAxisDescriptor](https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/blob/master/src/OpenVDS/OpenVDS/VolumeDataAxisDescriptor.h#L113) seem to not modify anything, yet they are not marked as const.
Not being able to use const objects with these functions is inconvenient.
Is this an oversight or is it in theory possible for these operations to change something?https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/193Change in behavior of rare formats after upgrade2023-06-23T11:44:23ZAlena ChaikouskayaChange in behavior of rare formats after upgradeHi!
Some of our tests failed after upgrade to openvds master.
Seems to be caused by commit 560aa68029de532bc2a2b1d1c3d28229fcb9ba7a
Tests which started to fail request data from vds created from SEGY in formats [format3.segy](/uploads/...Hi!
Some of our tests failed after upgrade to openvds master.
Seems to be caused by commit 560aa68029de532bc2a2b1d1c3d28229fcb9ba7a
Tests which started to fail request data from vds created from SEGY in formats [format3.segy](/uploads/9e27a6b840c695d308517d1490bb2574/format3.segy), [format8.segy](/uploads/a8a04f7d69d85464db78c4c0f6fb9f4a/format8.segy), [format11.segy](/uploads/71dc95ca89c5c0e3d7869979d12c3f19/format11.segy), [format16.segy](/uploads/d0673ee9e49f08ed0de338a8bc3e46eb/format16.segy) (signed short 2 byte, signed char 1 byte, unsigned short 2 byte, unsigned char 1 byte) by using RequestVolumeTraces.
Per our previous experience, for all supported format this method returned us data in f4. Requested buffer is in floats, after all.
Now the following code [format.cpp](/uploads/38bf2d7b5adecf75b46bcb5f5e1f881b/format.cpp) produces results like that:
| | old openvds | new openvds |
|--------------|-----------------------------------------|-----------------------------------------------------------------------|
| format3.vds | 100 101 102 103 104 105 106 107 108 109 | -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768 |
| format8.vds | 100 101 102 103 104 105 106 107 108 109 | -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 |
| format11.vds | 100 101 102 103 104 105 106 107 108 109 | 0 0 0 0 0 0 0 0 0 0 |
| format16.vds | 100 101 102 103 104 105 106 107 108 109 | 0 0 0 0 0 0 0 0 0 0 |
Did we as usual make some incorrect assumption or is it a breaking change?
[format16.vds](/uploads/c88014b946188f95c4511e7c517d48dd/format16.vds)
[format11.vds](/uploads/5f012a4590218ba68e27648ed06e30b6/format11.vds)
[format8.vds](/uploads/dc1df019ae30dd4863c67bc06f964b5f/format8.vds)
[format3.vds](/uploads/2a23f1b8f8a0155e9f8e1d69f72c7ab0/format3.vds)https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/192Samples order in the SliceRequestTraces does not depend on axis direction.2023-06-22T12:15:33ZTimofey AbramovSamples order in the SliceRequestTraces does not depend on axis direction.We had used the "VolumeDataAccessManager::SliceRequestSamples" api for making slices this way:
1) Obtaining number of samples for each axis via `axisDescriptors[i].GetNumSamples()`;
2) Obtaining min-max world coordinates of boundary poin...We had used the "VolumeDataAccessManager::SliceRequestSamples" api for making slices this way:
1) Obtaining number of samples for each axis via `axisDescriptors[i].GetNumSamples()`;
2) Obtaining min-max world coordinates of boundary points, i.e. at `0` and `GetNumSamples() - 1`;
3) Creating grid of 3D slice world coordinates within the min and max;
4) Translating them to Voxel indexes via `WorldCoordinatesToVoxelIndexFloat`;
5) Applying `RequestVolumeSamples` function.
Now we have migrated to `SliceRequestTraces` along the `traceDimension = 0`, i.e. vertical axis, let us name it "Z" axis. And we noticed in the `RequestVolumeSamples` output a point with min world "Z" coordinate (for example, `-1000`) corresponds to the bottom (deepest) point in the source seg-y, and max (for example,`0`) corresponds to the top, i.e. the "Z" axis directed from deep to surface. But in the `SlicRequestTraces` output the first point in the trace corresponds to the top (surface) sample, last one - to the bottom (deepest) one, as in the surce seg-y. So we have questions:
1) Is the samples order same as in the source seg-y? If yes, are there seg-ys that store trace in inverse order (deepest point first);
2) Is the samples number same as in the source seg-y? I.e. in all obtained by the "SliceRequestTraces" traces?
3) Does the samples number along Z in the `RequestVolumeTraces` result always equal to `axisDescriptors[0].GetNumSamples()`?https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/171Angular interpolation does not return original values2023-06-15T16:21:27ZAlena ChaikouskayaAngular interpolation does not return original valuesHi,
I've been trying to understand openvds interpolation behavior and noticed the following.
Interpolation documentation says that
> The sampled value will be exactly equal to the original at the voxel center, regardless of the interpol...Hi,
I've been trying to understand openvds interpolation behavior and noticed the following.
Interpolation documentation says that
> The sampled value will be exactly equal to the original at the voxel center, regardless of the interpolation method used.
But I observe on my synthetic file [test.vds](/uploads/629b6b4d6052de8a6d2562395cff3721/test.vds) that this doesn't hold. For the voxel middle points 4 methods return same data (as I would expect), but angular interpolation returns something different.
```
#include <OpenVDS/OpenVDS.h>
#include <OpenVDS/VolumeDataLayout.h>
#include <OpenVDS/VolumeDataAccess.h>
#include <iostream>
#include <map>
int main(int argc, char *argv[]) {
/*
| xlines-ilines | 1 | 3 | 5 |
|---------------|--------------------|--------------------|--------------------|
| 10 | 100, 101, 102, 103 | 108, 109, 110, 111 | 116, 117, 118, 119 |
| 11 | 104, 105, 106, 107 | 112, 113, 114, 115 | 120, 121, 122, 123 |
*/
std::string url = "file://test.vds";
std::string connectionString = "";
OpenVDS::Error error;
OpenVDS::VDSHandle handle = OpenVDS::Open(url, connectionString, error);
OpenVDS::VolumeDataAccessManager accessManager = OpenVDS::GetAccessManager(handle);
OpenVDS::VolumeDataLayout const *layout = accessManager.GetVolumeDataLayout();
int sampleCount0 = layout->GetDimensionNumSamples(0);
int traceCount = 1;
// Angular is correct only for (1.5, 0.5)
float inlineValue = 2.5; // choose from 0.5, 1.5 and 2.5
float xlineValue = 1.5; // choose from 0.5 and 1.5
std::vector<float> buffer(traceCount * sampleCount0);
float tracePos[traceCount][6];
for (int trace = 0; trace < traceCount; trace++)
{
tracePos[trace][0] = 0;
tracePos[trace][1] = xlineValue;
tracePos[trace][2] = inlineValue;
tracePos[trace][3] = 0;
tracePos[trace][4] = 0;
tracePos[trace][5] = 0;
}
std::map<std::string, OpenVDS::InterpolationMethod> interpolations{
{"Nearest", OpenVDS::InterpolationMethod::Nearest},
{"Linear", OpenVDS::InterpolationMethod::Linear},
{"Cubic", OpenVDS::InterpolationMethod::Cubic},
{"Triangular", OpenVDS::InterpolationMethod::Triangular},
{"Angular", OpenVDS::InterpolationMethod::Angular}
};
for (const auto& interpolation : interpolations) {
auto request = accessManager.RequestVolumeTraces(
buffer.data(),
buffer.size() * sizeof(float),
OpenVDS::Dimensions_12, // I understand it doesn't matter if it is Dimensions_12 or Dimensions_012
0,
0,
tracePos,
traceCount,
interpolation.second,
0
);
request.get()->WaitForCompletion();
std::cout << "Interpolation " << interpolation.first <<": " ;
for (float f: buffer) {
std::cout << f << ' ';
}
std::cout << "\n" << std::flush;
}
}
```
(my openvds version is some 3.1-ish build, but I do not see anything about changes to angular interpolation in release notes, so I assume it's the same)
Am I doing something wrong?https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/186Error copying VDS (VDSCopy) generated by Headwave to S32023-05-24T07:27:22ZRodrigo EirasError copying VDS (VDSCopy) generated by Headwave to S3I am trying to upload a VDS to a bucket into S3 and the error popped out into the console.
Screenshot attached.
I converted the SEGY to VDS using OpenVDS+ and I could to upload it to S3 bucket.
I converted the same SEGY to VDS using hea...I am trying to upload a VDS to a bucket into S3 and the error popped out into the console.
Screenshot attached.
I converted the SEGY to VDS using OpenVDS+ and I could to upload it to S3 bucket.
I converted the same SEGY to VDS using headwave and throws the error.
![error](/uploads/c9f8ddb5bf08994304e0733a1a4c0726/error.jpg)
This is the command that I used to:
.\VDSCopy.exe "C:\Users\rodri\IesBrazil\IesBrazil - PROJETOS\BLUWARE\VDS EXAMPLE\Sismica3D\Exmouth_tol1_w.vds" -d "Region=sa-east-1; AccessKeyId=xxxx; SecretKey=xxxx" s3://demo-vds-paleoscan/1/Exmouth_tol1_whttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/184Question: How to create VDS with an OpenVDS::VDSError in constructor? (Python...2023-05-16T14:07:50ZFilip BrzękQuestion: How to create VDS with an OpenVDS::VDSError in constructor? (Python API)Dear Devs,
I was trying to use `openvds.create` with an error output parameter, however, seems Pybind11 exports are not happy with accepting `<class 'openvds.core.VDSError'>` for argument typed as `error: OpenVDS::VDSError`.
The snippe...Dear Devs,
I was trying to use `openvds.create` with an error output parameter, however, seems Pybind11 exports are not happy with accepting `<class 'openvds.core.VDSError'>` for argument typed as `error: OpenVDS::VDSError`.
The snippet I'm playing with is something like that:
```Python
import openvds
self.forward_error = openvds.VDSError
self.vds_handle: openvds.core.VDS = openvds.create(
vds_url,
connection_string,
layout_descriptor,
axis_descriptors,
channel_descriptors,
metadata_container,
self.forward_error,
)
```
code without passing `self.forward_error` works correctly. If I try to fill error output parameter I'm getting:
```log
TypeError: create(): incompatible function arguments. The following argument types are supported:
E 1. (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
E 2. (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
E 3. (url: str, connectionString: str, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess, error: OpenVDS::VDSError) -> openvds.core.VDS
E 4. (url: str, connectionString: str, layoutDescriptor: OpenVDS::VolumeDataLayoutDescriptor, axisDescriptors: List[OpenVDS::VolumeDataAxisDescriptor], channelDescriptors: List[OpenVDS::VolumeDataChannelDescriptor], metadata: OpenVDS::MetadataReadAccess) -> openvds.core.VDS
...
E Invoked with: '/tmp/pytest-of-filip/pytest-32/<REDACTED>/subset_0.vds', '', <openvds.core.VolumeDataLayoutDescriptor object at 0x7f80f269c0b0>, [<openvds.core.VolumeDataAxisDescriptor object at 0x7f80f269c830>, <openvds.core.VolumeDataAxisDescriptor object at 0x7f80f269c970>, <openvds.core.VolumeDataAxisDescriptor object at 0x7f80f269cc70>], [<openvds.core.VolumeDataChannelDescriptor object at 0x7f80f269c870>], <openvds.core.MetadataContainer object at 0x7f80f2683fb0>, <class 'openvds.core.VDSError'>
```
From the log message, the constructor that works is number 4, and the one I'm trying to use is 3. Am I doing something dumb, and seeing it?
Context: We're trying to debug a rare issue, where writing data pages fails without apparent exception in Python, causing a zombie Python process in a container, that just hangs; My thought was, we might be able to use an error parameter constructor to have some logs, as the issue occurred a handful of times till then, and we don't have a root cause yet, but neither do we have any logs. If you have any tips, on how to grab any log that might have been created (we're writing to the S3 bucket, behind OSDU SDMS API) I would appreciate it.
Thanks,
Filip