Skip to content

Multi-resolution mesh creation fails with resolution as float value #177

@aranega

Description

@aranega

When trying to create a multi-resolution mesh sharded file from segmentation, if the resolution is a float, the collection of the different .frags fails with a message looking like this (where the numbers depends on the input segmentation parameters):

No such file or directory:  'mesh/447-895_0-447_0-447.frags'

The file that is actually generated by the create_meshing_tasks is 448-896_0-448_0-448.frags.

After debugging a little bit, I found that when a float number is used for the resolution, there is some rounding that applies at some point that makes the final file name search wrong.

I modified the code this way: master...aranega:igneous:master and it seems to work considering floating number resolution or int number resolution, but I'm unsure that those modification are enough, or if they will have some unexpected impact that I'm not seeing (the tests are running fine).

The code I'm using to generate the 3D multi-resolution mesh is classical and follows what's written in the README:

from taskqueue import LocalTaskQueue
import igneous.task_creation as tc

mesh_dir = "mesh"

cloudpath = 'precomputed://file://./data/101'

tq = LocalTaskQueue()

tasks = tc.create_meshing_tasks(cloudpath, mip=0, mesh_dir=mesh_dir, sharded=True, spatial_index=True, compress=None)
tq.insert(tasks)
tq.execute()

tasks = tc.create_mesh_manifest_tasks(cloudpath, mesh_dir=mesh_dir, magnitude=3)
tq.insert(tasks)
tq.execute()

tasks = tc.create_sharded_multires_mesh_tasks(cloudpath, mesh_dir=mesh_dir, num_lod=1)
tq.insert(tasks)
tq.execute()

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