verbosity issue
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 160
- Forks
- 113
- Avg merge
- 12d 15h
- Merged PRs (30d)
- 1
Description
I have a STIR parameter file for a reconstruction. At the bottom, outside of the objective function, I set the verbosity:
OSMAPOSLParameters :=
objective function type:= PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotionNew
PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotionNew Parameters:=
...
end PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotionNew Parameters:=
...
verbosity := 0
END :=
Yet the parameter file is interpreted by STIR as:
INFO: osmaposlparameters :=
...
verbosity := -1
objective function type := PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotionNew
poissonloglikelihoodwithlinearmodelformeanandgatedprojdatawithmotionnew parameters :=
...
input file := sinos.txt
zoom := 1
Notice how there is verbosity both inside and outside the objective function definition (despite being a global static variable), but neither is 0, which is my desired value. As such, I'm getting a lot of the computing thread 1/12 output.
Am I doing something silly?
Full recon parameter file attached here.
OSMAPOSLParameters :=
; example file for running OSEM with gated projection data and motion. This uses classes
; inside of the experimental folder. Motion resampling here uses the adjoint, which is
; more correct when doing MCIR.
objective function type:= PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotionNew
PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotionNew Parameters:=
input file := sinos.txt
; if disabled, defaults to maximum segment number in the file
maximum absolute segment number to process := 4
; see User's Guide to see when you need this
zero end planes of segment 0:= 1
projector pair type := NiftyPET
projector pair using NiftyPET parameters :=
verbosity := 0
use_truncation := 1
end projector pair using NiftyPET parameters :=
Bin Normalisation type for gate 1 := Chained
Chained Bin Normalisation Parameters :=
Bin Normalisation to apply first:= From ECAT8
Bin Normalisation From ECAT8 :=
normalisation_filename := ../../sirf/NORM.n.hdr
use gaps:=0
End Bin Normalisation From ECAT8 :=
Bin Normalisation to apply second:= From Attenuation Image
Bin Normalisation From Attenuation Image:=
attenuation_image_filename := ../../sirf/MUH_comb.hv
End Bin Normalisation From Attenuation Image :=
END Chained Bin Normalisation Parameters :=
transformation type for gate 1 := transformation
Transformation Parameters :=
cache_transformed_coords := 1
Transformation Type := BSplines transformation
BSplines Transformation Parameters :=
deformation field multicomponent filename x-component := zero_motion_x.nii
deformation field multicomponent filename y-component := zero_motion_y.nii
deformation field multicomponent filename z-component := zero_motion_z.nii
End BSplines Transformation Parameters :=
End Transformation Parameters :=
; if next is set to 1, sensitivity will be recomputed
; and also written to file (if "sensitivity filename" or "subset sensitivity filenames" is set)
; if it is zero, the sensitivity will be read from file
recompute sensitivity := 0
use subset sensitivities:=1 ; recommended
; ; optional filename to store/read the sensitivity image
; ; (if "use subset sensitivity" is off)
; ;sensitivity filename:=
; ; optional filename to store/read the subsensitivities
; ; use %d where you want the subset-number (a la printf)
subset sensitivity filenames:= sens_GPU_%d.hv
;subset sensitivity filenames:= sens_%d.hv
; choose size of pixels
; x,y pixel size = bin_size/zoom
; zoom := 1
; number of x,y pixels (-1 takes default value to cover the FOV)
xy output image size (in pixels) := 320
end PoissonLogLikelihoodWithLinearModelForMeanAndGatedProjDataWithMotionNew Parameters:=
; Number of subsets should be a divisor of num_views/4
number of subsets:= 1 ; GPU
;number of subsets:= 21
; Use for starting the numbering from something else than 1
;start at subiteration number:=1
; Use if you want to start from another subset than 0 (but why?)
;start at subset:= 0
number of subiterations:= 1
;save estimates at subiteration intervals:= 12
; initial estimate := some_image
; enable this when you read an initial estimate with negative data
enforce initial positivity condition:=0
output filename prefix := stir_mcir_recon_noNorm_noSubsetSensitivities_noMotion_NiftyPET
output file format type := ITK
ITK Output File Format Parameters:=
default extension:=.nii
End ITK Output File Format Parameters:=
end :=
verbosity := 0
END :=
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the reported behavior with the attached STIR reconstruction parameter file, focusing on the two verbosity settings inside and outside the objective-function parameters. Trace how the parameter file is interpreted and determine which value controls the computing-thread output. Done means verbosity 0 is honored consistently and the reported output no longer appears.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-vision
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100