EMAN2
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
EMAN::TomoTiltAngleWeightProcessor Class Reference

A processor that can be used to weight an image by 1/cos(angle) This processor evolved originally as an experimental tool for weighting tomographic data by the width of its cross section relative to the electron beam. More...

#include <processor.h>

Inheritance diagram for EMAN::TomoTiltAngleWeightProcessor:
Inheritance graph
[legend]
Collaboration diagram for EMAN::TomoTiltAngleWeightProcessor:
Collaboration graph
[legend]

Public Member Functions

virtual void process_inplace (EMData *image)
 To process an image in-place. More...
 
virtual string get_name () const
 Get the processor's name. More...
 
virtual TypeDict get_param_types () const
 Get processor parameter information in a dictionary. More...
 
virtual string get_desc () const
 Get the descrition of this specific processor. More...
 
- Public Member Functions inherited from EMAN::Processor
virtual ~Processor ()
 
virtual EMDataprocess (const EMData *const image)
 To proccess an image out-of-place. More...
 
virtual void process_list_inplace (vector< EMData * > &images)
 To process multiple images using the same algorithm. More...
 
virtual Dict get_params () const
 Get the processor parameters in a key/value dictionary. More...
 
virtual void set_params (const Dict &new_params)
 Set the processor parameters using a key/value dictionary. More...
 

Static Public Member Functions

static ProcessorNEW ()
 
- Static Public Member Functions inherited from EMAN::Processor
static string get_group_desc ()
 Get the description of this group of processors. More...
 
static void EMFourierFilterInPlace (EMData *fimage, Dict params)
 Compute a Fourier-filter processed image in place. More...
 
static EMDataEMFourierFilter (EMData *fimage, Dict params)
 Compute a Fourier-processor processed image without altering the original image. More...
 

Static Public Attributes

static const string NAME = "tomo.tiltangleweight"
 

Additional Inherited Members

- Public Types inherited from EMAN::Processor
enum  fourier_filter_types {
  TOP_HAT_LOW_PASS , TOP_HAT_HIGH_PASS , TOP_HAT_BAND_PASS , TOP_HOMOMORPHIC ,
  GAUSS_LOW_PASS , GAUSS_HIGH_PASS , GAUSS_BAND_PASS , GAUSS_INVERSE ,
  GAUSS_HOMOMORPHIC , BUTTERWORTH_LOW_PASS , BUTTERWORTH_HIGH_PASS , BUTTERWORTH_HOMOMORPHIC ,
  KAISER_I0 , KAISER_SINH , KAISER_I0_INVERSE , KAISER_SINH_INVERSE ,
  SHIFT , TANH_LOW_PASS , TANH_HIGH_PASS , TANH_HOMOMORPHIC ,
  TANH_BAND_PASS , RADIAL_TABLE , CTF_
}
 Fourier filter Processor type enum. More...
 
- Protected Attributes inherited from EMAN::Processor
Dict params
 

Detailed Description

A processor that can be used to weight an image by 1/cos(angle) This processor evolved originally as an experimental tool for weighting tomographic data by the width of its cross section relative to the electron beam.

The relative width can be derived using elementary trigonometry to be 1/cos(tiltangle). This processor should hence probably be called OneOverCosineWeightingProcessor. You can specify the angle explicitly (which is the default behavior), or you can force the angle to be the altitude angle as derived from the EMData metadata. The processor could obviously be made more robust if the angle derived from the EMData header could be specified...

Author
David Woolford woolf.nosp@m.ord@.nosp@m.bcm.e.nosp@m.du
Date
02/11/2008
Parameters
angleThe angle that the image is, with respect to the zero tilt image
angle_fimRead fim as 'from image metadata' - this causes the altitude angle stored in by the image object (i.e. as extracted from the header, as currently stored in memory) to be used as the angle. This overrides the angle argument

Definition at line 9070 of file processor.h.

Member Function Documentation

◆ get_desc()

virtual string EMAN::TomoTiltAngleWeightProcessor::get_desc ( ) const
inlinevirtual

Get the descrition of this specific processor.

This function must be overwritten by a subclass.

Returns
The description of this processor.

Implements EMAN::Processor.

Definition at line 9093 of file processor.h.

9094 {
9095 return "Weights the image by 1/cos(angle)";
9096 }

◆ get_name()

virtual string EMAN::TomoTiltAngleWeightProcessor::get_name ( ) const
inlinevirtual

Get the processor's name.

Each processor is identified by a unique name.

Returns
The processor's name.

Implements EMAN::Processor.

Definition at line 9075 of file processor.h.

9076 {
9077 return NAME;
9078 }

References NAME.

◆ get_param_types()

virtual TypeDict EMAN::TomoTiltAngleWeightProcessor::get_param_types ( ) const
inlinevirtual

Get processor parameter information in a dictionary.

Each parameter has one record in the dictionary. Each record contains its name, data-type, and description.

Returns
A dictionary containing the parameter info.

Reimplemented from EMAN::Processor.

Definition at line 9085 of file processor.h.

9086 {
9087 TypeDict d;
9088 d.put("angle", EMObject::INT, "The angle that the image is, with respect to the zero tilt image");
9089 d.put("angle_fim",EMObject::BOOL,"Read fim as 'from image metadata' - this causes the altitude angle stored in by the image object (i.e. as extracted from the header, as currently stored in memory) to be used as the angle. This overrides the angle argument");
9090 return d;
9091 }
TypeDict is a dictionary to store <string, EMObject::ObjectType> pair.
Definition: emobject.h:305
void put(const string &key, EMObject::ObjectType o, const string &desc="")
Definition: emobject.h:330

References EMAN::EMObject::BOOL, EMAN::EMObject::INT, and EMAN::TypeDict::put().

◆ NEW()

static Processor * EMAN::TomoTiltAngleWeightProcessor::NEW ( )
inlinestatic

Definition at line 9080 of file processor.h.

9081 {
9082 return new TomoTiltAngleWeightProcessor();
9083 }
A processor that can be used to weight an image by 1/cos(angle) This processor evolved originally as ...
Definition: processor.h:9071

◆ process_inplace()

void TomoTiltAngleWeightProcessor::process_inplace ( EMData image)
virtual

To process an image in-place.

For those processors which can only be processed out-of-place, override this function to just print out some error message to remind user call the out-of-place version.

Parameters
imageThe image to be processed.

Implements EMAN::Processor.

Definition at line 12762 of file processor.cpp.

12763{
12764 bool fim = params.set_default("angle_fim", false);
12765 float alt;
12766 if ( fim ) {
12767 alt = image->get_attr("euler_alt");
12768 }
12769 else alt = params.set_default("angle", 0.0f);
12770
12771 float cosine = cos(alt*M_PI/180.0f);
12772 float mult_fac = 1.0f/(cosine);
12773 image->mult( mult_fac );
12774}
type set_default(const string &key, type val)
Default setting behavior This can be achieved using a template - d.woolford Jan 2008 (before there wa...
Definition: emobject.h:569

References EMAN::Processor::params, and EMAN::Dict::set_default().

Member Data Documentation

◆ NAME

const string TomoTiltAngleWeightProcessor::NAME = "tomo.tiltangleweight"
static

Definition at line 9098 of file processor.h.

Referenced by get_name().


The documentation for this class was generated from the following files: