Skip to content

Cannot produce multiscale sharded volumes #211

@LucaMarconato

Description

@LucaMarconato

I have a small single-scale, unsharded volume that looks like this:

.
├── 100_100_100
├── info
└── provenance

where this is the info file:

{                                                                                                                                       
  "data_type": "uint16",
  "num_channels": 1,
  "scales": [
    {
      "chunk_sizes": [
        [
          512,
          512,
          194
        ]
      ],
      "encoding": "raw",
      "key": "100_100_100",
      "resolution": [
        100,
        100,
        100
      ],
      "size": [
        5440,
        4792,
        194
      ],
      "voxel_offset": [
        0,
        0,
        0
      ]
    }
  ],
  "type": "segmentation"
}

I can successfully use igneous to create a multi-scale unsharded volume with

igneous image downsample . --queue my-queue && igneous execute -x my-queue

I can also create a single-scale, sharded volume using

igneous image xfer . new_sharded_volume --sharded --queue my-queue && igneous execute -x my-queue

But if I try computing a multiscale, sharded volume, with

igneous image downsample . --sharded --queue my-queue && igneous execute -x my-queue           

I get the error ValueError: buffer source array is read-only.

Full traceback.
(tissue-map-tools) macbook@MacBook-Pro-64 invasive_precomputed % igneous image downsample . --sharded      
Volume Bounds:  Bbox([0, 0, 0],[5440, 4792, 194], dtype=np.int32, unit='vx')
Selected ROI:   Bbox([0, 0, 0],[5440, 4792, 194], dtype=np.int32, unit='vx')
Tasks:   0%|                                                                                                      | 0/1 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/bin/igneous", line 10, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/click/core.py", line 1161, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/click/core.py", line 1082, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/click/core.py", line 1697, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/click/core.py", line 1697, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/click/core.py", line 1443, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/click/core.py", line 788, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/igneous_cli/cli.py", line 316, in downsample
    enqueue_tasks(ctx, queue, tasks)
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/igneous_cli/cli.py", line 74, in enqueue_tasks
    tq.insert_all(tasks)
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/taskqueue/taskqueue.py", line 458, in insert_all
    self.execute(self.progress)
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/taskqueue/taskqueue.py", line 480, in execute
    _task_execute(self.queue.pop(0))
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/taskqueue/taskqueue.py", line 508, in _task_execute
    task.execute(*args, **kwargs)
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/taskqueue/queueablefns.py", line 78, in execute
    self(*args, **kwargs)
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/taskqueue/queueablefns.py", line 87, in __call__
    return self.tofunc()()
           ^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/igneous/tasks/image/image.py", line 739, in ImageShardDownsampleTask
    img, mapping = src_vol.download(
                   ^^^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/cloudvolume/frontends/precomputed.py", line 818, in download
    tup = self.image.download(
          ^^^^^^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/cloudvolume/datasource/precomputed/image/__init__.py", line 220, in download
    return rx.download(
           ^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/cloudvolume/datasource/precomputed/image/rx.py", line 314, in download
    download_chunks_threaded(
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/cloudvolume/datasource/precomputed/image/rx.py", line 667, in download_chunks_threaded
    schedule_jobs(
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/cloudvolume/scheduler.py", line 145, in schedule_jobs
    return schedule_single_threaded_jobs(fns, progress, total)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/cloudvolume/scheduler.py", line 112, in schedule_single_threaded_jobs
    res = fn()
          ^^^^
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/cloudvolume/datasource/precomputed/image/rx.py", line 626, in process
    fn(labels, bbox)
  File "/Users/macbook/embl/projects/basel/tissue-map-tools/.venv/lib/python3.11/site-packages/cloudvolume/datasource/precomputed/image/rx.py", line 307, in process_renumber
    fastremap.remap(img3d, remap, in_place=True)
  File "src/fastremap.pyx", line 693, in fastremap.remap
  File "src/fastremap.pyx", line 696, in fastremap._remap
ValueError: buffer source array is read-only

Any advice on how to proceed?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions