ufo-kit / tofu

Helper scripts for tomographic reconstruction using the ufo-core framework
GNU Lesser General Public License v3.0
18 stars 9 forks source link

Many changes in tofu ez #115

Closed sgasilov closed 2 years ago

sgasilov commented 2 years ago
tfarago commented 2 years ago

The input directory is supposed to be a root dir with many data sets, right? I have such a root directory with one subdirectory to simulate the batch processing and when I select root as input it says 0 good data sets, when I specify the data set directory with darks, flats and radios it says 1 good data set. What am I missing here please?

root
└── dset
    ├── darks
    ├── flats
    ├── radios
sgasilov commented 2 years ago

Tomas, hello. These can happen for two reasons: 1) Did you change the "standard" name of your directory with projections to "radios" at the bottom of the main tab? By defaults it is called "tomo" 2) You last-level directories contain other files in addition to "tif". If there is "Thumb.db" file of any metadata in the directory with images it would disqualify it. So each directory with images must only contain one or more tif/bigtiff files with extension "tif".

In regards to latter - has the python argparser been improved? Can we use the wildcard masks now? Years ago it was only possible to pass directory name to tofu commands unlike ufo-launch which can filter the content like tomo/*.tif.

tfarago commented 2 years ago
  1. yes, it's radios and I renamed it accordingly
  2. not that I know of (but I will double check tomorrow)

But the strange this is that when I selected the data set directory it told me it was valid. Is it supposed to work both ways? I mean single data set reco and batch reco?

AFAIK you can use wildcards as long as they are not processed by bash, i.e. you need to pass them in quotes, e.g. --projections "tomo/*.tif".

sgasilov commented 2 years ago

The fact that one data set is identified correctly when you point to it, but it would not be found if you select an upper-level directory is very weird. I've just applied "dry-run" to a big directory with few TB of data and multiple data sets at different depth levels and it found and formatted commands for each one of them correctly image

hmmm....

tfarago commented 2 years ago

tofu_ez_0_good What am I missing?

tfarago commented 2 years ago

Same thing if I remove the params.yaml.

sgasilov commented 2 years ago

Tomas, there is nothing wrong in your input! That must work and it does work for me with exactly the same data structure in my home directory: image

Initially I thought that it can be because of (1) several bigtiff file. While theoretically it must work I only tested soft with either file per image or one bigtiff file. But as you can see it correctly identifies data set and number of projections (1013= 1000 in one file and 13 in another dummy file). (2) You still have a hidden file among your tifs (tree doesn't show them). But the problem is that it doesn't even see the "dset" directory! It count both number of directories and number of "legit" CT directories and prints both. (3) Then I though it may be something related to python os module expansion of "~". So I copied everything over to my home directory and run it and it does format all paths correctly - at least in CentOS7.7 and 3.9.5 python.

I'm totally puzzled...

tfarago commented 2 years ago

As suggested, I am merging so that people can start using this new version and we put off the investigation for later.