EMAN2
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
EMAN::SpiderIO Class Reference

SPIDER: (System for Processing Image Data from Electron microscopy and Related fields) is an image processing system for electron microscopy. More...

#include <spiderio.h>

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

Classes

struct  SpiderHeader
 

Public Member Functions

 SpiderIO (const string &fname, IOMode rw_mode=READ_ONLY)
 
 ~SpiderIO ()
 
bool is_single_image_format () const
 Is this image format only storing 1 image or not. More...
 
int get_nimg ()
 get the number of images in this stacked SPIDER image More...
 
- Public Member Functions inherited from EMAN::ImageIO
 ImageIO (const string &fname, IOMode rw)
 
virtual ~ImageIO ()
 
virtual int read_header (Dict &dict, int image_index=0, const Region *area=0, bool is_3d=false)=0
 Read the header from an image. More...
 
virtual int write_header (const Dict &dict, int image_index=0, const Region *area=0, EMUtil::EMDataType filestoragetype=EMUtil::EM_FLOAT, bool use_host_endian=true)=0
 Write a header to an image. More...
 
virtual int read_data (float *data, int image_index=0, const Region *area=0, bool is_3d=false)=0
 Read the data from an image. More...
 
virtual int read_data_8bit (unsigned char *data, int image_index=0, const Region *area=0, bool is_3d=false, float minval=0.0f, float maxval=0.0f)
 Read the data from an image as an 8 bit array, regardless of format. More...
 
virtual int write_data (float *data, int image_index=0, const Region *area=0, EMUtil::EMDataType filestoragetype=EMUtil::EM_FLOAT, bool use_host_endian=true)=0
 Write data to an image. More...
 
virtual int read_ctf (Ctf &ctf, int image_index=0)
 Read CTF data from this image. More...
 
virtual void write_ctf (const Ctf &ctf, int image_index=0)
 Write CTF data to this image. More...
 
virtual void flush ()=0
 Flush the IO buffer. More...
 
virtual bool is_complex_mode ()=0
 Is this an complex image or not. More...
 
virtual bool is_image_big_endian ()=0
 Is this image in big endian or not. More...
 
template<class T >
void become_host_endian (T *data, size_t n=1)
 Convert data of this image into host endian format. More...
 
string get_filename () const
 

Static Public Member Functions

static bool is_valid (const void *first_block)
 

Public Attributes

 DEFINE_IMAGEIO_FUNC
 

Protected Types

enum  SpiderType {
  IMAGE_2D = 1 , IMAGE_3D = 3 , IMAGE_2D_FFT_ODD = -11 , IMAGE_2D_FFT_EVEN = -12 ,
  IMAGE_3D_FFT_ODD = -21 , IMAGE_3D_FFT_EVEN = -22
}
 
enum  { SINGLE_IMAGE_HEADER = 0 , OVERALL_STACK_HEADER = 2 , NUM_FLOATS_IN_HEADER = 211 }
 

Protected Member Functions

int write_single_header (const Dict &dict, const Region *area, int image_index, size_t offset, SpiderHeader *&hp, int ISTACK, int MAXIM=1, int IMGNUM=1, bool use_host_endian=true)
 write a SPIDER header to spider_file More...
 
int write_single_data (float *data, const Region *area, SpiderHeader *&hp, size_t offset, int img_index, int max_nimg, bool use_host_endian=true)
 write a single image data More...
 
virtual bool is_valid_spider (const void *first_block)
 check the data block to see if it represents valid stacked SPIDER image file header More...
 
bool need_swap () const
 
void swap_data (float *data, size_t nitems)
 
void swap_header (SpiderHeader *header)
 
- Protected Member Functions inherited from EMAN::ImageIO
virtual void init ()=0
 Do some initialization before doing the read/write. More...
 
void check_read_access (int image_index)
 Validate 'image_index' in file reading. More...
 
void check_read_access (int image_index, const float *data)
 Validate 'image_index' and 'data' in file reading. More...
 
void check_write_access (IOMode rw_mode, int image_index, int max_nimg=0)
 Validate rw_mode and image_index in file writing. More...
 
void check_write_access (IOMode rw_mode, int image_index, int max_nimg, const float *data)
 Validate rw_mode, image_index, and data pointer in file writing. More...
 
void check_region (const Region *area, const FloatSize &max_size, bool is_new_file=false, bool inbounds_only=true)
 Validate image I/O region. More...
 
void check_region (const Region *area, const IntSize &max_size, bool is_new_file=false, bool inbounds_only=true)
 Validate image I/O region. More...
 
FILE * sfopen (const string &filename, IOMode mode, bool *is_new=0, bool overwrite=false)
 Run fopen safely. More...
 

Protected Attributes

SpiderHeaderfirst_h
 
SpiderHeadercur_h
 
bool is_big_endian
 
bool is_new_file
 
- Protected Attributes inherited from EMAN::ImageIO
string filename
 
IOMode rw_mode
 
FILE * file = nullptr
 
bool initialized = false
 

Additional Inherited Members

- Public Types inherited from EMAN::ImageIO
enum  IOMode { READ_ONLY = 1 , READ_WRITE = 2 , WRITE_ONLY = 3 }
 

Detailed Description

SPIDER: (System for Processing Image Data from Electron microscopy and Related fields) is an image processing system for electron microscopy.

SpiderIO reads/writes images used in spider format. (reference: http://www.wadsworth.org/spider_doc/spider/docs/index.html)

A single image = header + data.

header-length = ( ceiling(1024/(nx*4)) * (nx*4) ) where nx is the number of pixels per row. The data is (nx * ny * nslice) of floating numbers, where ny is number of rows per slice. nslice is number of slices.

There are 2 spider image formats:

Record: In spider terminology, each row is called a record.

Note: To read the overall image header in a stacked spider file, use image_index = -1.

Definition at line 71 of file spiderio.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
SINGLE_IMAGE_HEADER 
OVERALL_STACK_HEADER 
NUM_FLOATS_IN_HEADER 

Definition at line 191 of file spiderio.h.

192 {
196 };
@ OVERALL_STACK_HEADER
Definition: spiderio.h:194
@ SINGLE_IMAGE_HEADER
Definition: spiderio.h:193
@ NUM_FLOATS_IN_HEADER
Definition: spiderio.h:195

◆ SpiderType

Enumerator
IMAGE_2D 
IMAGE_3D 
IMAGE_2D_FFT_ODD 
IMAGE_2D_FFT_EVEN 
IMAGE_3D_FFT_ODD 
IMAGE_3D_FFT_EVEN 

Definition at line 181 of file spiderio.h.

182 {
183 IMAGE_2D = 1,
184 IMAGE_3D = 3,
185 IMAGE_2D_FFT_ODD = -11,
186 IMAGE_2D_FFT_EVEN = -12,
187 IMAGE_3D_FFT_ODD = -21,
189 };

Constructor & Destructor Documentation

◆ SpiderIO()

SpiderIO::SpiderIO ( const string &  fname,
IOMode  rw_mode = READ_ONLY 
)
explicit

Definition at line 44 of file spiderio.cpp.

45: ImageIO(fname, rw),
46 first_h(0), cur_h(0),
48{
50}
static bool is_host_big_endian()
Definition: byteorder.cpp:40
string filename
Definition: imageio.h:352
ImageIO(const string &fname, IOMode rw)
Definition: imageio.cpp:40
SpiderHeader * cur_h
Definition: spiderio.h:243
bool is_new_file
Definition: spiderio.h:246
bool is_big_endian
Definition: spiderio.h:245
SpiderHeader * first_h
Definition: spiderio.h:242
static bool is_file_exist(const string &filename)
check whether a file exists or not
Definition: util.cpp:253

References EMAN::ImageIO::filename, EMAN::Util::is_file_exist(), and is_new_file.

◆ ~SpiderIO()

SpiderIO::~SpiderIO ( )

Definition at line 52 of file spiderio.cpp.

53{
54 if (file) {
55 fclose(file);
56 file = 0;
57 }
58
59 if (first_h) {
60 free(first_h);
61 first_h = 0;
62 }
63
64 if (cur_h) {
65 free(cur_h);
66 cur_h = 0;
67 }
68}
FILE * file
Definition: imageio.h:354

References cur_h, EMAN::ImageIO::file, and first_h.

Member Function Documentation

◆ get_nimg()

int SpiderIO::get_nimg ( )
virtual

get the number of images in this stacked SPIDER image

Returns
the number of images

Reimplemented from EMAN::ImageIO.

Definition at line 678 of file spiderio.cpp.

679{
680 init();
681 if (!first_h) {
683 return 0;
684 }
685 else if (first_h->istack > 0) { //image stack
686 return static_cast < int >(first_h->maxim);
687 }
688 else if (first_h->istack == SINGLE_IMAGE_HEADER) { //single 2D/3D image
689 return 1;
690 }
691 else { //complex image
692 throw ImageFormatException("complex spider image not supported.");
693 }
694}
virtual void init()=0
Do some initialization before doing the read/write.
#define Assert(s)
Define Assert() function that is effective only when -DDEBUG is used.
Definition: emassert.h:42
#define ImageFormatException(desc)
Definition: exception.h:147
float maxim
maxim is only used in the overall header for a stacked image file.
Definition: spiderio.h:148
float istack
istack = 0 for simple 2D or 3D (non-stack) files.
Definition: spiderio.h:141

References Assert, first_h, ImageFormatException, EMAN::ImageIO::init(), is_new_file, EMAN::SpiderIO::SpiderHeader::istack, EMAN::SpiderIO::SpiderHeader::maxim, and SINGLE_IMAGE_HEADER.

◆ is_single_image_format()

bool EMAN::SpiderIO::is_single_image_format ( ) const
inlinevirtual

Is this image format only storing 1 image or not.

Some image formats like MRC only store 1 image in a file, so this function returns 'true' for them. Other image formats like IMAGIC/HDF5 may store mutliple images, so this function returns 'false' for them.

Reimplemented from EMAN::ImageIO.

Reimplemented in EMAN::SingleSpiderIO.

Definition at line 80 of file spiderio.h.

80{ return false; }

◆ is_valid()

bool SpiderIO::is_valid ( const void *  first_block)
static

Definition at line 111 of file spiderio.cpp.

112{
113 ENTERFUNC;
114 bool result = false;
115
116 if (first_block) {
117 const float *data = static_cast < const float *>(first_block);
118 float nslice = data[0];
119 float nrow = data[1];
120 float iform = data[4];
121 float nsam = data[11];
122 float labrec = data[12]; //NO. of records in file header
123 float labbyt = data[21]; //total NO. of bytes in header
124 float lenbyt = data[22]; //record length in bytes
125 float istack = data[23];
126
127 bool big_endian = ByteOrder::is_float_big_endian(nslice);
128 if (big_endian != ByteOrder::is_host_big_endian()) {
129 ByteOrder::swap_bytes(&nslice);
131 ByteOrder::swap_bytes(&iform);
133 ByteOrder::swap_bytes(&labrec);
134 ByteOrder::swap_bytes(&labbyt);
135 ByteOrder::swap_bytes(&lenbyt);
136 ByteOrder::swap_bytes(&istack);
137 }
138
139 if( int(nslice) != nslice || int(nrow) != nrow
140 || int(iform) != iform || int(nsam) != nsam
141 || int(labrec) != labrec || int(labbyt) != labbyt
142 || int(lenbyt) != lenbyt ) {
143 result = false;
144 }
145 else {
146 //now we expect this header to be an overall header for SPIDER
147 if( int(istack) > 0 ) {
148 result = true; //istack>0 for overall header, istack<0 for indexed stack of image
149 }
150 }
151
152 int ilabrec = static_cast<int>(labrec);
153 int ilabbyt = static_cast<int>(labbyt);
154 int ilenbyt = static_cast<int>(lenbyt);
155 if( ilabbyt != ilabrec * ilenbyt ) {
156 result = false;
157 }
158 }
159
160 EXITFUNC;
161 return result;
162}
static void swap_bytes(T *data, size_t n=1)
swap the byte order of data with 'n' T-type elements.
Definition: byteorder.h:131
static bool is_float_big_endian(float small_number)
given a small floating number, return whether the number is in big endian or not.
Definition: byteorder.cpp:59
#define ENTERFUNC
Definition: log.h:48
#define EXITFUNC
Definition: log.h:49

References ENTERFUNC, EXITFUNC, EMAN::ByteOrder::is_float_big_endian(), EMAN::ByteOrder::is_host_big_endian(), and EMAN::ByteOrder::swap_bytes().

Referenced by EMAN::EMUtil::fast_get_image_type(), EMAN::EMUtil::get_image_type(), and is_valid_spider().

◆ is_valid_spider()

bool SpiderIO::is_valid_spider ( const void *  first_block)
protectedvirtual

check the data block to see if it represents valid stacked SPIDER image file header

Parameters
first_blockthe pointer to first block of the file
Returns
boolean result of the check, true for valid stacked SPIDER image

Reimplemented in EMAN::SingleSpiderIO.

Definition at line 106 of file spiderio.cpp.

107{
108 return SpiderIO::is_valid(first_block);
109}
static bool is_valid(const void *first_block)
Definition: spiderio.cpp:111

References is_valid().

◆ need_swap()

bool SpiderIO::need_swap ( ) const
protected

Definition at line 696 of file spiderio.cpp.

697{
699 return true;
700 }
701 return false;
702}

References is_big_endian, EMAN::ByteOrder::is_host_big_endian(), and is_new_file.

Referenced by swap_data(), and swap_header().

◆ swap_data()

void SpiderIO::swap_data ( float *  data,
size_t  nitems 
)
protected

Definition at line 647 of file spiderio.cpp.

648{
649 if (data && need_swap()) {
650 ByteOrder::swap_bytes(data, size);
651 }
652}
bool need_swap() const
Definition: spiderio.cpp:696

References need_swap(), and EMAN::ByteOrder::swap_bytes().

◆ swap_header()

void SpiderIO::swap_header ( SpiderHeader header)
protected

Definition at line 654 of file spiderio.cpp.

655{
656 if (header && need_swap()) {
658 }
659}

References need_swap(), NUM_FLOATS_IN_HEADER, and EMAN::ByteOrder::swap_bytes().

◆ write_single_data()

int SpiderIO::write_single_data ( float *  data,
const Region area,
SpiderHeader *&  hp,
size_t  offset,
int  img_index,
int  max_nimg,
bool  use_host_endian = true 
)
protected

write a single image data

Parameters
datathe data block to be written
areathe data region we want to write
hpthe SpiderHeader pointer all header info will write to
offsetthe offset in the spider_file
img_indexthe image index inthe stack, it's 0-indexed
max_nimgmax image number in a stack
use_host_endianuse host machine's endian, set to false will swap the byte order
Exceptions
ImageWriteException
Returns
0 for success

Definition at line 616 of file spiderio.cpp.

618{
619 ENTERFUNC;
620
621 check_write_access(rw_mode, img_index, max_nimg, data);
622
623 if (area) {
624 check_region(area, FloatSize(hp->nsam, hp->nrow, hp->nslice), is_new_file);
625 }
626
627 if (!hp) {
628 throw ImageWriteException(filename, "NULL image header");
629 }
630
631 portable_fseek(file, offset, SEEK_SET);
632
633 int size = (int)(hp->nsam * hp->nrow * hp->nslice);
634 if(!use_host_endian) {
635 ByteOrder::swap_bytes(data, size);
636 }
637
638 // remove the stuff in #if 0 ... #endif if the following works.
639 EMUtil::process_region_io(data, file, WRITE_ONLY,0, sizeof(float),
640 (int) hp->nsam, (int) hp->nrow,
641 (int) hp->nslice, area);
642
643 EXITFUNC;
644 return 0;
645}
static void process_region_io(void *cdata, FILE *file, int rw_mode, int image_index, size_t mode_size, int nx, int ny, int nz=1, const Region *area=0, bool need_flip=false, ImageType imgtype=IMAGE_UNKNOWN, int pre_row=0, int post_row=0)
Process image region IO.
Definition: emutil.cpp:931
FloatSize is used to describe a 1D, 2D or 3D rectangular size in floating numbers.
Definition: geometry.h:105
IOMode rw_mode
Definition: imageio.h:353
void check_region(const Region *area, const FloatSize &max_size, bool is_new_file=false, bool inbounds_only=true)
Validate image I/O region.
Definition: imageio.cpp:58
void check_write_access(IOMode rw_mode, int image_index, int max_nimg=0)
Validate rw_mode and image_index in file writing.
Definition: imageio.cpp:113
#define ImageWriteException(imagename, desc)
Definition: exception.h:223
int portable_fseek(FILE *fp, off_t offset, int whence)

References EMAN::ImageIO::check_region(), EMAN::ImageIO::check_write_access(), ENTERFUNC, EXITFUNC, EMAN::ImageIO::file, EMAN::ImageIO::filename, ImageWriteException, is_new_file, EMAN::SpiderIO::SpiderHeader::nrow, EMAN::SpiderIO::SpiderHeader::nsam, EMAN::SpiderIO::SpiderHeader::nslice, portable_fseek(), EMAN::EMUtil::process_region_io(), EMAN::ImageIO::rw_mode, EMAN::ByteOrder::swap_bytes(), and EMAN::ImageIO::WRITE_ONLY.

Referenced by EMAN::SingleSpiderIO::write_data().

◆ write_single_header()

int SpiderIO::write_single_header ( const Dict dict,
const Region area,
int  image_index,
size_t  offset,
SpiderHeader *&  hp,
int  ISTACK,
int  MAXIM = 1,
int  IMGNUM = 1,
bool  use_host_endian = true 
)
protected

write a SPIDER header to spider_file

Parameters
dictthe dictionary contain header information
areathe region we want to write
image_indexthe image index inthe stack, it's 0-indexed
offsetthe offset in the spider_file
hpthe SpiderHeader pointer all header info will write to, then the content of hp will write to spider file
ISTACKthe istack field for SPIDER's header, 0 for dingle image, 2 for stacked image
MAXIMmaxim field for header, only used for overall header
IMGNUMimgnum for header, only used for stacked image header
use_host_endianuse host machine's endian, set to false will swap the byte order
Exceptions
ImageWriteException
Returns
0 for sucess

Definition at line 400 of file spiderio.cpp.

402{
403 ENTERFUNC;
404
405 check_write_access(rw_mode, image_index);
406
407 if (area) {
408 check_region(area, FloatSize(hp->nsam, hp->nrow, hp->nslice), is_new_file);
409 EXITFUNC;
410 return 0;
411 }
412
413 int nx = dict["nx"];
414 int ny = dict["ny"];
415 int nz = dict["nz"];
416
417 size_t header_size = sizeof(SpiderHeader);
418 size_t record_size = nx * sizeof(float);
419 size_t num_records = (header_size % record_size) == 0 ? header_size / record_size : header_size / record_size + 1;
420 size_t header_length = num_records * record_size;
421
422 if (!hp) {
423 hp = static_cast < SpiderHeader * >(calloc(1, header_size));
424 }
425
426 hp->angvalid = 0;
427 hp->scale = 1.0;
428 hp->istack = (float)ISTACK;
429 hp->nslice = (float)nz;
430 hp->nsam = (float)nx;
431 hp->nrow = (float)ny;
432
433 hp->max = dict["maximum"];
434 hp->min = dict["minimum"];
435 hp->mean = dict["mean"];
436 hp->sigma = dict["sigma"];
437 hp->mmvalid = 1;
438
439 if(nz<=1 && dict.has_key("xform.projection")) {
440 hp->angvalid = 1;
441 Transform * t = dict["xform.projection"];
442 Dict d = t->get_params("spider");
443 hp->phi = d["phi"];
444 hp->theta = d["theta"];
445 hp->gamma = d["psi"];
446 hp->dx = d["tx"];
447 hp->dy = d["ty"];
448 hp->dz = d["tz"];
449 hp->scale = d["scale"];
450 if(t) {delete t; t=0;}
451 }
452 else if(nz>1 && dict.has_key("xform.align3d")) {
453 hp->angvalid = 1;
454 Transform * t = dict["xform.align3d"];
455 Dict d = t->get_params("spider");
456 hp->phi = d["phi"];
457 hp->theta = d["theta"];
458 hp->gamma = d["psi"];
459 hp->dx = d["tx"];
460 hp->dy = d["ty"];
461 hp->dz = d["tz"];
462 hp->scale = d["scale"];
463 if(t) {delete t; t=0;}
464 }
465
466 if(nz == 1) {
467 hp->type = IMAGE_2D;
468 }
469 else {
470 hp->type = IMAGE_3D;
471 }
472
473// complex image file not supported in EMAN2
474
475 hp->reclen = (float)record_size;
476 hp->headrec = (float)num_records;
477 hp->headlen = (float)header_length;
478
479 if(ISTACK == OVERALL_STACK_HEADER) {
480 hp->maxim = (float)MAXIM;
481 }
482 hp->irec = (float)(num_records + ny*nz);
483
484 hp->imgnum = (float)IMGNUM;
485
486 time_t tod;
487 time(&tod);
488 struct tm * ttt = localtime(&tod);
489 char ctime[9];
490 char cdate[12];
491 strftime(ctime, 9, "%H:%M:%S", ttt);
492 std::copy(&ctime[0], &ctime[8], hp->time);
493 strftime(cdate, 12, "%d-%b-%Y", ttt);
494 std::copy(&cdate[0], &cdate[11], hp->date);
495
496 if(dict.has_key("SPIDER.title")) {
497 string title = static_cast<string>(dict["SPIDER.title"]);
498 std::copy(&(title[0]), &(title[title.length()]), hp->title);
499 }
500
501 portable_fseek(file, offset, SEEK_SET);
502
503 if(use_host_endian) {
504 if (fwrite(hp, header_size, 1, file) != 1) {
505 throw ImageWriteException(filename, "write spider header failed");
506 }
507 }
508 else { //swap byte order
509 SpiderHeader * hp2 = new SpiderHeader(*hp);
511 if (fwrite(hp2, header_size, 1, file) != 1) {
512 throw ImageWriteException(filename, "write spider header failed");
513 }
514 if(hp2) {delete hp2; hp2=0;}
515 }
516
517 size_t pad_size = header_length - header_size;
518 char *pad = static_cast < char *>(calloc(pad_size, 1));
519 fwrite(pad, pad_size, 1, file);
520 if( pad )
521 {
522 free(pad);
523 pad = 0;
524 }
525
526 EXITFUNC;
527 return 0;
528}
Dict is a dictionary to store <string, EMObject> pair.
Definition: emobject.h:385
bool has_key(const string &key) const
Ask the Dictionary if it as a particular key.
Definition: emobject.h:511
A Transform object is a somewhat specialized object designed specifically for EMAN2/Sparx storage of ...
Definition: transform.h:75
Dict get_params(const string &euler_type) const
Get the parameters of the entire transform, using a specific euler convention.
Definition: transform.cpp:479
EMData * copy() const
This file is a part of "emdata.h", to use functions in this file, you should "#include "emdata....

References EMAN::SpiderIO::SpiderHeader::angvalid, EMAN::ImageIO::check_region(), EMAN::ImageIO::check_write_access(), copy(), EMAN::SpiderIO::SpiderHeader::date, EMAN::SpiderIO::SpiderHeader::dx, EMAN::SpiderIO::SpiderHeader::dy, EMAN::SpiderIO::SpiderHeader::dz, ENTERFUNC, EXITFUNC, EMAN::ImageIO::file, EMAN::ImageIO::filename, EMAN::SpiderIO::SpiderHeader::gamma, EMAN::Transform::get_params(), EMAN::Dict::has_key(), EMAN::SpiderIO::SpiderHeader::headlen, EMAN::SpiderIO::SpiderHeader::headrec, IMAGE_2D, IMAGE_3D, ImageWriteException, EMAN::SpiderIO::SpiderHeader::imgnum, EMAN::SpiderIO::SpiderHeader::irec, is_new_file, EMAN::SpiderIO::SpiderHeader::istack, EMAN::SpiderIO::SpiderHeader::max, EMAN::SpiderIO::SpiderHeader::maxim, EMAN::SpiderIO::SpiderHeader::mean, EMAN::SpiderIO::SpiderHeader::min, EMAN::SpiderIO::SpiderHeader::mmvalid, EMAN::SpiderIO::SpiderHeader::nrow, EMAN::SpiderIO::SpiderHeader::nsam, EMAN::SpiderIO::SpiderHeader::nslice, NUM_FLOATS_IN_HEADER, OVERALL_STACK_HEADER, EMAN::SpiderIO::SpiderHeader::phi, portable_fseek(), EMAN::SpiderIO::SpiderHeader::reclen, EMAN::ImageIO::rw_mode, EMAN::SpiderIO::SpiderHeader::scale, EMAN::SpiderIO::SpiderHeader::sigma, EMAN::ByteOrder::swap_bytes(), EMAN::SpiderIO::SpiderHeader::theta, EMAN::SpiderIO::SpiderHeader::time, EMAN::SpiderIO::SpiderHeader::title, and EMAN::SpiderIO::SpiderHeader::type.

Referenced by EMAN::SingleSpiderIO::write_header().

Member Data Documentation

◆ cur_h

SpiderHeader* EMAN::SpiderIO::cur_h
protected

Definition at line 243 of file spiderio.h.

Referenced by ~SpiderIO().

◆ DEFINE_IMAGEIO_FUNC

EMAN::SpiderIO::DEFINE_IMAGEIO_FUNC

Definition at line 77 of file spiderio.h.

◆ first_h

SpiderHeader* EMAN::SpiderIO::first_h
protected

◆ is_big_endian

bool EMAN::SpiderIO::is_big_endian
protected

Definition at line 245 of file spiderio.h.

Referenced by need_swap().

◆ is_new_file

bool EMAN::SpiderIO::is_new_file
protected

Definition at line 246 of file spiderio.h.

Referenced by get_nimg(), need_swap(), SpiderIO(), write_single_data(), and write_single_header().


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