TGSAI / mdio-python

Cloud native, scalable storage engine for various types of energy data.
https://mdio.dev/
Apache License 2.0
33 stars 12 forks source link

Mac M2 + segy->mdio conversion error #347

Closed pkfl closed 7 months ago

pkfl commented 7 months ago

I'm trying to convert a sample segy file to a mdio file with Python Version 3.11.7 on Mac M2 is having issues it seems (or perhaps I'm doing something wrong) (I also tried 3.9.18 and got a similar error)

Hopefully this helps in debugging:

$ python3 -m pip install multidimio
Requirement already satisfied: multidimio in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (0.6.0)
Requirement already satisfied: click<9.0.0,>=8.1.7 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from multidimio) (8.1.7)
Requirement already satisfied: click-params<0.6.0,>=0.5.0 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from multidimio) (0.5.0)
Requirement already satisfied: dask>=2023.10.0 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from multidimio) (2024.1.1)
Requirement already satisfied: fsspec>=2023.9.1 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from multidimio) (2024.2.0)
Requirement already satisfied: numba<0.60.0,>=0.59.0rc1 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from multidimio) (0.59.0)
Requirement already satisfied: psutil<6.0.0,>=5.9.5 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from multidimio) (5.9.8)
Requirement already satisfied: segyio<2.0.0,>=1.9.3 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from multidimio) (1.9.12)
Requirement already satisfied: tqdm<5.0.0,>=4.66.1 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from multidimio) (4.66.1)
Requirement already satisfied: urllib3<2.0.0,>=1.26.18 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from multidimio) (1.26.18)
Requirement already satisfied: zarr<3.0.0,>=2.16.1 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from multidimio) (2.16.1)
Requirement already satisfied: deprecated<2.0.0,>=1.2.14 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from click-params<0.6.0,>=0.5.0->multidimio) (1.2.14)
Requirement already satisfied: validators<0.23,>=0.22 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from click-params<0.6.0,>=0.5.0->multidimio) (0.22.0)
Requirement already satisfied: cloudpickle>=1.5.0 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from dask>=2023.10.0->multidimio) (3.0.0)
Requirement already satisfied: packaging>=20.0 in /Users/macuser/.local/lib/python3.11/site-packages (from dask>=2023.10.0->multidimio) (23.2)
Requirement already satisfied: partd>=1.2.0 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from dask>=2023.10.0->multidimio) (1.4.1)
Requirement already satisfied: pyyaml>=5.3.1 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from dask>=2023.10.0->multidimio) (6.0.1)
Requirement already satisfied: toolz>=0.10.0 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from dask>=2023.10.0->multidimio) (0.12.1)
Requirement already satisfied: importlib-metadata>=4.13.0 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from dask>=2023.10.0->multidimio) (7.0.1)
Requirement already satisfied: llvmlite<0.43,>=0.42.0dev0 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from numba<0.60.0,>=0.59.0rc1->multidimio) (0.42.0)
Requirement already satisfied: numpy<1.27,>=1.22 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from numba<0.60.0,>=0.59.0rc1->multidimio) (1.26.3)
Requirement already satisfied: asciitree in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from zarr<3.0.0,>=2.16.1->multidimio) (0.3.3)
Requirement already satisfied: fasteners in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from zarr<3.0.0,>=2.16.1->multidimio) (0.19)
Requirement already satisfied: numcodecs>=0.10.0 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from zarr<3.0.0,>=2.16.1->multidimio) (0.12.1)
Requirement already satisfied: wrapt<2,>=1.10 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from deprecated<2.0.0,>=1.2.14->click-params<0.6.0,>=0.5.0->multidimio) (1.16.0)
Requirement already satisfied: zipp>=0.5 in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from importlib-metadata>=4.13.0->dask>=2023.10.0->multidimio) (3.17.0)
Requirement already satisfied: locket in /Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages (from partd>=1.2.0->dask>=2023.10.0->multidimio) (1.0.0)

$ cat test.py
from mdio import segy_to_mdio

segy_to_mdio(
    segy_path="volve.segy",
    mdio_path_or_buffer="volve1.mdio",
    index_bytes=(189, 193),
    index_names=("inline", "crossline"),
    lossless = True
)

$ python3 test.py
Scanning SEG-Y for geometry attributes:   0%|                                                                  | 0/6 [00:00<?, ?block/s]Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 122, in spawn_main
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 122, in spawn_main
    exitcode = _main(fd, parent_sentinel)
    exitcode = _main(fd, parent_sentinel)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 131, in _main
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 131, in _main
    prepare(preparation_data)
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 246, in prepare
    prepare(preparation_data)
    _fixup_main_from_path(data['init_main_from_path'])
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 246, in prepare
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 297, in _fixup_main_from_path
    _fixup_main_from_path(data['init_main_from_path'])
    main_content = runpy.run_path(main_path,
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen runpy>", line 291, in run_path
  File "<frozen runpy>", line 98, in _run_module_code
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/macuser/Exp/cname/mdio-python/macuser/test.py", line 3, in <module>
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 297, in _fixup_main_from_path
    segy_to_mdio(
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/converters/segy.py", line 352, in segy_to_mdio
    main_content = runpy.run_path(main_path,
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen runpy>", line 291, in run_path
  File "<frozen runpy>", line 98, in _run_module_code
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/macuser/Exp/cname/mdio-python/macuser/test.py", line 3, in <module>
    segy_to_mdio(
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/converters/segy.py", line 352, in segy_to_mdio
    dimensions, chunksize, index_headers = get_grid_plan(
    dimensions, chunksize, index_headers = get_grid_plan(
                                           ^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/segy/utilities.py", line 66, in get_grid_plan
                                           ^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/segy/utilities.py", line 66, in get_grid_plan
    index_headers = parse_trace_headers(
                    ^^^^^^^^^^^^^^^^^^^^
    index_headers = parse_trace_headers(
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/segy/parsers.py", line 119, in parse_trace_headers
                    ^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/segy/parsers.py", line 119, in parse_trace_headers
    lazy_work = executor.map(
                ^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 837, in map
    lazy_work = executor.map(
                ^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 837, in map
    results = super().map(partial(_process_chunk, fn),
    results = super().map(partial(_process_chunk, fn),
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/_base.py", line 608, in map
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/_base.py", line 608, in map
    fs = [self.submit(fn, *args) for args in zip(*iterables)]
    fs = [self.submit(fn, *args) for args in zip(*iterables)]
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/_base.py", line 608, in <listcomp>
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/_base.py", line 608, in <listcomp>
    fs = [self.submit(fn, *args) for args in zip(*iterables)]
    fs = [self.submit(fn, *args) for args in zip(*iterables)]
          ^^^^^^^^^^^^^^^^^^^^^^
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 808, in submit
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 808, in submit
    self._adjust_process_count()
    self._adjust_process_count()
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 767, in _adjust_process_count
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 767, in _adjust_process_count
    self._spawn_process()
    self._spawn_process()
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 785, in _spawn_process
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 785, in _spawn_process
    p.start()
    p.start()
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/process.py", line 121, in start
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/process.py", line 121, in start
    self._popen = self._Popen(self)
    self._popen = self._Popen(self)
                  ^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/context.py", line 288, in _Popen
                  ^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/context.py", line 288, in _Popen
    return Popen(process_obj)
    return Popen(process_obj)
           ^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/popen_spawn_posix.py", line 32, in __init__
           ^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/popen_spawn_posix.py", line 32, in __init__
    super().__init__(process_obj)
    super().__init__(process_obj)
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/popen_fork.py", line 19, in __init__
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/popen_fork.py", line 19, in __init__
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 122, in spawn_main
    exitcode = _main(fd, parent_sentinel)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 131, in _main
    self._launch(process_obj)
    self._launch(process_obj)
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/popen_spawn_posix.py", line 42, in _launch
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/popen_spawn_posix.py", line 42, in _launch
    prep_data = spawn.get_preparation_data(process_obj._name)
    prep_data = spawn.get_preparation_data(process_obj._name)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 164, in get_preparation_data
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 164, in get_preparation_data
    _check_not_importing_main()
    prepare(preparation_data)
    _check_not_importing_main()
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 140, in _check_not_importing_main
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 140, in _check_not_importing_main
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 246, in prepare
    raise RuntimeError('''
RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.

        To fix this issue, refer to the "Safe importing of main module"
        section in https://docs.python.org/3/library/multiprocessing.html

    raise RuntimeError('''
RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.

        To fix this issue, refer to the "Safe importing of main module"
        section in https://docs.python.org/3/library/multiprocessing.html

    _fixup_main_from_path(data['init_main_from_path'])
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 297, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
                   ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen runpy>", line 291, in run_path
  File "<frozen runpy>", line 98, in _run_module_code
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/macuser/Exp/cname/mdio-python/macuser/test.py", line 3, in <module>
    segy_to_mdio(
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/converters/segy.py", line 352, in segy_to_mdio
    dimensions, chunksize, index_headers = get_grid_plan(
                                           ^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/segy/utilities.py", line 66, in get_grid_plan
    index_headers = parse_trace_headers(
                    ^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/segy/parsers.py", line 119, in parse_trace_headers
    lazy_work = executor.map(
                ^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 837, in map
    results = super().map(partial(_process_chunk, fn),
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/_base.py", line 608, in map
    fs = [self.submit(fn, *args) for args in zip(*iterables)]
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/_base.py", line 608, in <listcomp>
    fs = [self.submit(fn, *args) for args in zip(*iterables)]
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 808, in submit
    self._adjust_process_count()
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 767, in _adjust_process_count
    self._spawn_process()
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 785, in _spawn_process
    p.start()
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/process.py", line 121, in start
    self._popen = self._Popen(self)
                  ^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/context.py", line 288, in _Popen
    return Popen(process_obj)
           ^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/popen_spawn_posix.py", line 32, in __init__
    super().__init__(process_obj)
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/popen_fork.py", line 19, in __init__
    self._launch(process_obj)
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/popen_spawn_posix.py", line 42, in _launch
    prep_data = spawn.get_preparation_data(process_obj._name)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 164, in get_preparation_data
    _check_not_importing_main()
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/multiprocessing/spawn.py", line 140, in _check_not_importing_main
    raise RuntimeError('''
RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.

        To fix this issue, refer to the "Safe importing of main module"
        section in https://docs.python.org/3/library/multiprocessing.html

Scanning SEG-Y for geometry attributes:   0%|                                                                  | 0/6 [00:00<?, ?block/s]
Traceback (most recent call last):
  File "/Users/macuser/Exp/cname/mdio-python/macuser/test.py", line 3, in <module>
    segy_to_mdio(
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/converters/segy.py", line 352, in segy_to_mdio
    dimensions, chunksize, index_headers = get_grid_plan(
                                           ^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/segy/utilities.py", line 66, in get_grid_plan
    index_headers = parse_trace_headers(
                    ^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/mdio/segy/parsers.py", line 139, in parse_trace_headers
    headers = list(lazy_work)
              ^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/site-packages/tqdm/std.py", line 1182, in __iter__
    for obj in iterable:
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/process.py", line 620, in _chain_from_iterable_of_lists
    for element in iterable:
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/_base.py", line 619, in result_iterator
    yield _result_or_cancel(fs.pop())
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/_base.py", line 317, in _result_or_cancel
    return fut.result(timeout)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/macuser/.pyenv/versions/3.11.7/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.

=============================================================

On Python 3.8.18 on Ubuntu 22.04.03 LTS, I get the following error:

$ python3 test.py
Scanning SEG-Y for geometry attributes: 100%|██████████████████████████████████████████████████████████| 6/6 [00:00<00:00,  7.85block/s]
Traceback (most recent call last):
  File "test.py", line 3, in <module>
    segy_to_mdio(
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/site-packages/mdio/converters/segy.py", line 329, in segy_to_mdio
    write_attribute(name="created", zarr_group=zarr_root, attribute=iso_datetime)
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/site-packages/mdio/core/utils_write.py", line 17, in write_attribute
    zarr_group.attrs[name] = attribute
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/site-packages/zarr/attrs.py", line 89, in __setitem__
    self._write_op(self._setitem_nosync, item, value)
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/site-packages/zarr/attrs.py", line 83, in _write_op
    return f(*args, **kwargs)
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/site-packages/zarr/attrs.py", line 94, in _setitem_nosync
    d = self._get_nosync()
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/site-packages/zarr/attrs.py", line 47, in _get_nosync
    d = self.store._metadata_class.parse_metadata(data)
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/site-packages/zarr/meta.py", line 104, in parse_metadata
    meta = json_loads(s)
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/site-packages/zarr/util.py", line 75, in json_loads
    return json.loads(ensure_text(s, "utf-8"))
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/json/__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/home/ubuntu_user/.pyenv/versions/3.8.18/lib/python3.8/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
tasansal commented 7 months ago

Hi, it sounds like you are running the conversion from a script. Typically we see this error when there is no main guard on the MDIO call.

If you put your code in a main guard like shown in the note here it should revolve it:

https://mdio-python.readthedocs.io/en/stable/reference.html#seismic-data

Let me know if this works! Thanks.

pkfl commented 7 months ago

@tasansal Thank you! That fixed it. Is this something I can/should ignore ?

/Users/user/.pyenv/versions/3.9.18/lib/python3.9/multiprocessing/resource_tracker.py:216: UserWarning: resource_tracker: There appear to be 11 leaked semaphore objects to clean up at shutdown warnings.warn('resource_tracker: There appear to be %d '