Seismic issueshttps://community.opengroup.org/groups/osdu/platform/domain-data-mgmt-services/seismic/-/issues2023-03-21T20:23:36Zhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/87Get the schemas from the schema service instead of hard-coding them in this repo2023-03-21T20:23:36ZSacha BrantsGet the schemas from the schema service instead of hard-coding them in this repoRashaad GrayRashaad Grayhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/86osdu:wks:work-product-component--NotionalSeismicLine:1.0.02023-03-24T15:58:23ZSacha Brantsosdu:wks:work-product-component--NotionalSeismicLine:1.0.0https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/85osdu:wks:master-data--Seismic3DInterpretationSet:1.1.02023-06-13T19:54:33ZSacha Brantsosdu:wks:master-data--Seismic3DInterpretationSet:1.1.0https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/84osdu:wks:master-data--Seismic2DInterpretationSet:1.1.02023-06-13T19:52:58ZSacha Brantsosdu:wks:master-data--Seismic2DInterpretationSet:1.1.0https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/83osdu:wks:work-product-component--SeismicHorizon:1.1.02023-06-13T19:53:40ZSacha Brantsosdu:wks:work-product-component--SeismicHorizon:1.1.0Nova LaderNova Laderhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/82osdu:wks:work-product-component--NotionalSeismicLine:1.0.02023-07-12T13:48:38ZSacha Brantsosdu:wks:work-product-component--NotionalSeismicLine:1.0.0Nova LaderNova Laderhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/81osdu:wks:master-data--Seismic3DInterpretationSet:1.1.02023-06-06T18:39:50ZSacha Brantsosdu:wks:master-data--Seismic3DInterpretationSet:1.1.0Rashaad GrayRashaad Grayhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/80osdu:wks:master-data--Seismic2DInterpretationSet:1.1.02023-06-06T18:39:25ZSacha Brantsosdu:wks:master-data--Seismic2DInterpretationSet:1.1.0Rashaad GrayRashaad Grayhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/79osdu:wks:work-product-component--SeismicLineGeometry:1.0.02023-03-21T20:23:00ZSacha Brantsosdu:wks:work-product-component--SeismicLineGeometry:1.0.0Rashaad GrayRashaad Grayhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/78osdu:wks:work-product-component--SeismicBinGrid:1.1.02023-03-21T20:22:50ZSacha Brantsosdu:wks:work-product-component--SeismicBinGrid:1.1.0Rashaad GrayRashaad Grayhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/77osdu:wks:work-product-component--SeismicTraceData:1.3.02023-03-21T20:22:11ZSacha Brantsosdu:wks:work-product-component--SeismicTraceData:1.3.0Rashaad GrayRashaad Grayhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/76osdu:wks:master-data--SeismicProcessingProject:1.2.02023-03-21T20:22:35ZSacha Brantsosdu:wks:master-data--SeismicProcessingProject:1.2.0Rashaad GrayRashaad Grayhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/75osdu:wks:master-data--SeismicAcquisitionSurvey:1.2.02023-03-21T20:22:21ZSacha Brantsosdu:wks:master-data--SeismicAcquisitionSurvey:1.2.0Rashaad GrayRashaad Grayhttps://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/74osdu:wks:dataset--FileCollection.Bluware.OpenVDS:1.0.02022-12-01T09:02:52ZSacha Brantsosdu:wks:dataset--FileCollection.Bluware.OpenVDS:1.0.0https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/73osdu:wks:dataset--FileCollection.Slb.OpenZGY:1.0.02022-12-01T09:02:04ZSacha Brantsosdu:wks:dataset--FileCollection.Slb.OpenZGY:1.0.0https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/72osdu:wks:dataset--FileCollection.SEGY:1.0.02022-12-01T09:01:58ZSacha Brantsosdu:wks:dataset--FileCollection.SEGY:1.0.0https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/seismic-dms-suite/seismic-store-service/-/issues/71osdu:wks:dataset--FileCollection.Generic:1.0.02022-12-01T09:01:40ZSacha Brantsosdu:wks:dataset--FileCollection.Generic:1.0.0https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/161World coordinates when cdp is not defined2022-11-30T13:39:02ZAlena ChaikouskayaWorld coordinates when cdp is not definedWe believe that this case is unlikely to happen in real files, but wanted to point that out anyway.
When file has no cdp information, asking for information in World coordinates returns data in Annotation coordinate system. If transfor...We believe that this case is unlikely to happen in real files, but wanted to point that out anyway.
When file has no cdp information, asking for information in World coordinates returns data in Annotation coordinate system. If transformation with missing World coordinates is impossible, I would have expected some error message along the way.
SEGY [without_cdp.segy](/uploads/2af802cd954648a22c6a8b03c6241f54/without_cdp.segy):
```
spec.samples = [4, 8]
spec.ilines = [3, 4, 5]
spec.xlines = [10, 11]
DelayRecordingTime: 5,
```
openvds:
```
auto transformer = OpenVDS::IJKCoordinateTransformer(layout);
auto annotation = transformer.IJKIndexToAnnotation({0, 0, 0})
auto world = transformer.IJKIndexToWorld({ 0, 0, 0 });
```
Result:
```
Annotation: 3 10 5
World: 3 10 -5
```
World coordinates created from transformed I/J are same as annotation, which is misleading.
World coordinate created from transformed K is `-Time` (also in files with cdp), which seems strange, though somewhat understandable.https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/160Extend documentation of examples and supply sample files2022-11-18T12:56:34ZAlexander JaustExtend documentation of examples and supply sample filesIt is great that there are some examples on how to use OpenVDS. It would be even more helpful if there would be a short explanation of what each example does, what assumptions are made and, if necessary, that input files would be include...It is great that there are some examples on how to use OpenVDS. It would be even more helpful if there would be a short explanation of what each example does, what assumptions are made and, if necessary, that input files would be included. I think that would make life much easier for beginners.
For example, the [npz_to_vds.py](https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/blob/master/examples/NpzToVds/npz_to_vds.py) script is really helpful, but it would be nice if the input file would be provided with the script. It is not immediately clear that what assumptions on the file are made. When I looked into the file first I had the following questions:
- Why is there a `--npy` command line parameter that is never used?
- Why do the axis descriptors seem to expect x, y and z to be in a certain range [0,2000]?
- Why is the value range computed in the way it is computed? What is the "correct" way to give a value range? Should it be certain percentiles?
- Where is the input file or how can I create a valid input file myself?
- How does writing data via the page accessor actually work and where do I find more information about that?
- Do I have to use `open` and `close` for interaction with the VDS file or could I also use
```python
...
with openvds.create(
args.url,
args.connection,
layoutDescriptor,
axisDescriptors,
channelDescriptors,
metaData,
compressionMethod,
compressionTolerance
) as vds:
layout = openvds.getLayout(vds)
...
accessor.commit()https://community.opengroup.org/osdu/platform/domain-data-mgmt-services/seismic/open-vds/-/issues/159Online Python documentation incomplete2022-11-21T09:34:46ZAlexander JaustOnline Python documentation incompleteIt seems that the online documentation of the Python interface is incomplete. I did not go through everything, but I found the following inconsistencies and problems.
Would it be possible to expose more documentation on the homepage? I ...It seems that the online documentation of the Python interface is incomplete. I did not go through everything, but I found the following inconsistencies and problems.
Would it be possible to expose more documentation on the homepage? I am not sure if some documentation is simply missing or not generated on purpose. In all cases that I have checked the classes and methods have a documentation accessible via Python's `help(...)` function.
## Observations
### VolumeDataLayoutDescriptor
I do not find anything about the constructors of `class VolumeDataLayoutDescriptor` in the [online documentation](https://osdu.pages.opengroup.org/platform/domain-data-mgmt-services/seismic/open-vds/python-api.html#openvds.VolumeDataLayoutDescriptor). When I query the documentation via Python I get much more information including the constructor.
That means if I do the following in a Python session
```text
import openvds
help(openvds.VolumeDataLayoutDescriptor)
```
gives the following (shortened) output
```text
Help on class VolumeDataLayoutDescriptor in module openvds.core:
class VolumeDataLayoutDescriptor(pybind11_builtins.pybind11_object)
| Method resolution order:
| VolumeDataLayoutDescriptor
| pybind11_builtins.pybind11_object
| builtins.object
|
| Methods defined here:
|
| __init__(...)
| __init__(*args, **kwargs)
| Overloaded function.
|
| 1. __init__(self: openvds.core.VolumeDataLayoutDescriptor) -> None
|
| 2. __init__(self: openvds.core.VolumeDataLayoutDescriptor, brickSize: OpenVDS::VolumeDataLayoutDescriptor::BrickSize, negativeMargin: int, positiveMargin: int, brickSize2DMultiplier: int, lodLevels: OpenVDS::VolumeDataLayoutDescriptor::LODLevels, options: OpenVDS::VolumeDataLayoutDescriptor::Options, fullResolutionDimension: int = 0) -> None
|
...
```
As you can see there is some information on the constructor.
### VolumeDataRequest
There are (at least?) two types of `VolumeDataRequest`, but only one is documented in the [online documentation](https://osdu.pages.opengroup.org/platform/domain-data-mgmt-services/seismic/open-vds/python-api.html#openvds.VolumeDataRequest).
The documentation explains the usage of an object of type `openvds.core.VolumeDataRequest`, see
```text
>>> import openvds
>>> data_request = openvds.VolumeDataRequest
>>> print(data_request)
<class 'openvds.core.VolumeDataRequest'>
>>> buffer = data_request.buffer
>>> data = data_request.data
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'openvds.core.VolumeDataRequest' has no attribute 'data'
```
This class does not have any attribute called `data` so the error is correct.
However, a function call to the function `requestVolumeSubset` of a `VolumeDataAccessManager` will return an object of type `openvds.volumedataaccess.VolumeDataRequest` with different interface which has a property called `data` instead of `buffer`.
```text
>>> import openvds
>>> data_request = openvds.volumedataaccess.VolumeDataRequest
>>> print(data_request)
<class 'openvds.volumedataaccess.VolumeDataRequest'>
>>> buffer = data_request.buffer
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'VolumeDataRequest' has no attribute 'buffer'
>>> data = data_request.data
```
This class does not have a `buffer` attribute so the error message is fine. It is not clear from the documentation of [`VolumeDataAccessManager`](https://osdu.pages.opengroup.org/platform/domain-data-mgmt-services/seismic/open-vds/python-api.html#id59) that the return type is not a `openvds.core.VolumeDataRequest`.
### openvds.IJKCoordinateTransformer
There is no documentation on the `IJKCoordinateTransformer` for Python even though it is accessible from Python
```text
>>> transformer = openvds.IJKCoordinateTransformer
>>> print(transformer)
<class 'openvds.core.IJKCoordinateTransformer'>
```
### VolumeDataAccessManager
The type annotation for the constructor of the `handle` seems to be off as it is `int`, but should be `openvds.core.VDS`.
```text
>>> vdam = openvds.VolumeDataAccessManager
>>> print(vdam)
<class 'openvds.volumedataaccess.VolumeDataAccessManager'>
>>> vdam = openvds.VolumeDataAccessManager(1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/aej/software/openvds-3.0.3-install-python/python/openvds/volumedataaccess.py", line 184, in __init__
self._manager = openvds.core.getAccessManager(handle)
TypeError: getAccessManager(): incompatible function arguments. The following argument types are supported:
1. (handle: openvds.core.VDS) -> OpenVDS::VolumeDataAccessManager
Invoked with: 1
```
Update: In the last case, supplying an object of type `openvds.core.VDS` also fails so I assume the documentation might be off here or I misunderstand something.