Xmipp  v3.23.11-Nereus
Public Member Functions | Public Attributes | List of all members
ProgMrcCreateMetaData Class Reference
Inheritance diagram for ProgMrcCreateMetaData:
Inheritance graph
[legend]
Collaboration diagram for ProgMrcCreateMetaData:
Collaboration graph
[legend]

Public Member Functions

void defineParams ()
 
void readParams ()
 
void show ()
 
void run ()
 
- Public Member Functions inherited from XmippProgram
const char * getParam (const char *param, int arg=0)
 
const char * getParam (const char *param, const char *subparam, int arg=0)
 
int getIntParam (const char *param, int arg=0)
 
int getIntParam (const char *param, const char *subparam, int arg=0)
 
double getDoubleParam (const char *param, int arg=0)
 
double getDoubleParam (const char *param, const char *subparam, int arg=0)
 
float getFloatParam (const char *param, int arg=0)
 
float getFloatParam (const char *param, const char *subparam, int arg=0)
 
void getListParam (const char *param, StringVector &list)
 
int getCountParam (const char *param)
 
bool checkParam (const char *param)
 
bool existsParam (const char *param)
 
void addParamsLine (const String &line)
 
void addParamsLine (const char *line)
 
ParamDefgetParamDef (const char *param) const
 
virtual void quit (int exit_code=0) const
 
virtual int tryRun ()
 
void initProgress (size_t total, size_t stepBin=60)
 
void setProgress (size_t value=0)
 
void endProgress ()
 
void processDefaultComment (const char *param, const char *left)
 
void setDefaultComment (const char *param, const char *comment)
 
virtual void initComments ()
 
void setProgramName (const char *name)
 
void addUsageLine (const char *line, bool verbatim=false)
 
void clearUsage ()
 
void addExampleLine (const char *example, bool verbatim=true)
 
void addSeeAlsoLine (const char *seeAlso)
 
void addKeywords (const char *keywords)
 
const char * name () const
 
virtual void usage (int verb=0) const
 
virtual void usage (const String &param, int verb=2)
 
int version () const
 
virtual void show () const
 
virtual void read (int argc, const char **argv, bool reportErrors=true)
 
virtual void read (int argc, char **argv, bool reportErrors=true)
 
void read (const String &argumentsLine)
 
 XmippProgram ()
 
 XmippProgram (int argc, const char **argv)
 
virtual ~XmippProgram ()
 

Public Attributes

FileName fnStack
 
FileName fnAngles
 
FileName fnOut
 
- Public Attributes inherited from XmippProgram
bool doRun
 
bool runWithoutArgs
 
int verbose
 Verbosity level. More...
 
int debug
 

Additional Inherited Members

- Protected Member Functions inherited from XmippProgram
void defineCommons ()
 
- Protected Attributes inherited from XmippProgram
int errorCode
 
ProgramDefprogDef
 Program definition and arguments parser. More...
 
std::map< String, CommentListdefaultComments
 
int argc
 Original command line arguments. More...
 
const char ** argv
 

Detailed Description

Definition at line 31 of file mrc_create_metadata_main.cpp.

Member Function Documentation

◆ defineParams()

void ProgMrcCreateMetaData::defineParams ( )
inlinevirtual

Function in which the param of each Program are defined.

Reimplemented from XmippProgram.

Definition at line 36 of file mrc_create_metadata_main.cpp.

37  {
38  addUsageLine("Produces a selfile valid for tomography with an MRC stack and a list of angles");
39  addParamsLine(" --stack <stack> : Stack file (not necessarily MRC)");
40  addParamsLine(" --tiltAngles <rawtlt> : Tilt angle file");
41  addParamsLine(" -o <metadata> : Output metadata");
42  }
void addUsageLine(const char *line, bool verbatim=false)
void addParamsLine(const String &line)

◆ readParams()

void ProgMrcCreateMetaData::readParams ( )
inlinevirtual

Function in which each program will read parameters that it need. If some error occurs the usage will be printed out.

Reimplemented from XmippProgram.

Definition at line 44 of file mrc_create_metadata_main.cpp.

45  {
46  fnStack = getParam("--stack");
47  fnAngles = getParam("--tiltAngles");
48  fnOut = getParam("-o");
49  }
const char * getParam(const char *param, int arg=0)

◆ run()

void ProgMrcCreateMetaData::run ( )
inlinevirtual

This function will be start running the program. it also should be implemented by derived classes.

Reimplemented from XmippProgram.

Definition at line 60 of file mrc_create_metadata_main.cpp.

61  {
62  std::string extension=fnStack.getExtension();
63  if (extension=="mrc")
64  fnStack+=":mrcs";
65  else if (extension=="ali")
66  fnStack+=":mrcs";
67 
68  std::ifstream fhAngles;
69  fhAngles.open(fnAngles.c_str());
70  if (!fhAngles)
72 
73  Image<double> stack;
74  stack.read(fnStack, HEADER);
75  size_t xdim, ydim, zdim, ndim;
76  stack.getDimensions(xdim, ydim, zdim, ndim);
77 
78  MetaDataVec MD;
79  FileName fnSlice;
80  for (unsigned long slice = FIRST_IMAGE; slice <= ndim; slice++)
81  {
82  double angle;
83  fhAngles >> angle;
84  fnSlice.compose((int)slice,fnStack);
85  size_t objId=MD.addObject();
86  MD.setValue(MDL_IMAGE,fnSlice,objId);
87  MD.setValue(MDL_ANGLE_TILT,angle,objId);
88  MD.setValue(MDL_ENABLED,1,objId);
89  }
90  MD.write(fnOut);
91  }
#define REPORT_ERROR(nerr, ErrormMsg)
Definition: xmipp_error.h:211
Tilting angle of an image (double,degrees)
void compose(const String &str, const size_t no, const String &ext="")
void write(const FileName &outFile, WriteModeMetaData mode=MD_OVERWRITE) const
Is this image enabled? (int [-1 or 1])
String getExtension() const
bool setValue(const MDObject &mdValueIn, size_t id)
size_t addObject() override
File cannot be open.
Definition: xmipp_error.h:137
int read(const FileName &name, DataMode datamode=DATA, size_t select_img=ALL_IMAGES, bool mapData=false, int mode=WRITE_READONLY)
#define FIRST_IMAGE
Name of an image (std::string)
void getDimensions(size_t &Xdim, size_t &Ydim, size_t &Zdim, size_t &Ndim) const

◆ show()

void ProgMrcCreateMetaData::show ( )
inline

Definition at line 51 of file mrc_create_metadata_main.cpp.

52  {
53  std::cout
54  << "Stack = " << fnStack << std::endl
55  << "Angles = " << fnAngles << std::endl
56  << "Output = " << fnOut << std::endl
57  ;
58  }

Member Data Documentation

◆ fnAngles

FileName ProgMrcCreateMetaData::fnAngles

Definition at line 34 of file mrc_create_metadata_main.cpp.

◆ fnOut

FileName ProgMrcCreateMetaData::fnOut

Definition at line 34 of file mrc_create_metadata_main.cpp.

◆ fnStack

FileName ProgMrcCreateMetaData::fnStack

Definition at line 34 of file mrc_create_metadata_main.cpp.


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