Every time an illegal situation controlled by the package happens to
occur the Error handling
system is activated, an error code and an error message are produced. There
are two possible error handling methods in Xmipp, the first one aborts
the program and the second one throws an exception you can catch, if you
don't catch it a core is generated. In both methods, the error code and
message are the same. Here you can find a list of this error codes and
their meaning. Be careful because there are routines which seem that cannot
generate errors, but they are calling other routines which might do.
Matrix 1D errors
1001 | No memory left for vector array. There
is no more room in memory and a memory allocation operation has been requested.
matrix1D::allocate, matrix1D::resize, matrix1D::Multidim2Buffer |
1002 | Not correct size.
*This error is given when trying to do a vector by vector operation, and one vector is, for instance, 4x1 while the other is 3x1. This error can be produced also if the vectors are of the same size but with different origins (logical accesses). *It can also be produced when the size of a vector is not the expected one (for instance, R2 or R3) matrix1D::array_by_array, translation2D_matrix, rot3D_matrix, translation3D_matrix, dot_product, vector_product, are_orthogonal, are_system, SymList::add_matrix |
1003 | Subscript not defined for this vector:
ie, asking for Z in a R2 vector, for example, or trying to access to index
3 in a 3x1 vector (remind that in C (default indexing unless you define
a logical access) indexes go from 0 to N-1). In this package you can define
logical accesses but this error will be produced if you are not using a
logical index properly. In the former example, if you define a 3x1 vector
to go from -1 to 1, it is not an error to access to index -1, but it is
to access to index 2.
matrix1D::operator (), matrix1D::x(), matrix1D::y(), matrix1D::z() |
1004 | Vector type not recognised. In constructing
a vector you didn't answer 'y' or 'n' to the column variable. You might
answer nothing and 'y' is assumed.
matrix1D() |
1005 | Mode not supported. The valid modes are:
"incr" and "steps" (default); "uniform" (default) and "gaussian"; "abs_above", "abs_below", "above", "below", "range" Depending on the function you are using you should choose the right set of valid modes. matrix1D::init_linear, matrix1D::init_random, matrix1D::add_noise, matrix1D::threshold |
1006 | Unknown operation between vectors, or vector and scalar.
matrix1D::array_by_array, matrix1D::array_by_scalar, matrix1D::scalar_by_array |
1007 | Wrong shape. Vectors of equal size but different shape (row, column)
or viceversa
matrix1D::array_by_array, vector_product |
1101 | No memory left for matrix array. There
is no more room in memory and a memory allocation operation has been requested.
matrix2D::allocate, matrix2D::resize, matrix2D::Multidim2Buffer |
1102 | Not correct size.
*This error is given when trying to do a matrix by matrix operation, and one matrix is, for instance, 4x3 while the other is 3x3. This error can be produced also if the matrices are of the same size but with different origins (logical accesses). *This error can also be given by setCol or setRow when trying to set the column/row of a matrix from a vector which hasn't got the same dimension as the place it should fit. *Even when solving a system equation and Ax=b, and the dimensions of the matrix and known vector are not compatible. *Even more, when the size is not the expected one (3x3, 4x4 or whatever) *When trying to get a vector from a not vector shaped matrix *Algebraic multiplication of matrices whose dimensions doesn't conform (NxM)*(MxP) matrix2D::array_by_array, matrix2D::setCol, matrix2D::setRow, matrix2D::solve, matrix2D::apply_geom, matrix2D::to_vector, matrix2D::mul_matrix, matrix3D::apply_geom, Euler_matrix2angles |
1103 | Subscript not defined for this matrix:
ie, trying to access to index (3,1) in a 3x3 matrix (remind that in C (default
indexing unless you define a logical access) indexes go from 0 to N-1).
In this package you can define logical accesses but this error will be
produced if you are not using a logical index properly. In the former example,
if you define a 3x3 matrix to go from (-1,-1) to (1,1), it is not an error
to access to index (-1,0), but it is to access to index (2,0).
matrix2D::operator(), matrix2D::col, matrix2D::row, matrix2D::setCol, matrix2D::setRow |
1105 | Mode not supported. The valid modes are:
"uniform" (default) and "gaussian"; "abs_above", "abs_below", "above", "below", "range" "X","Y","Z" Depending on the function you are using you should choose the right set of valid modes. matrix2D::init_random, matrix2D::add_noise, matrix2D::threshold, rot3D_matrix |
1106 | Unknown operation between matrices, or matrix and scalar.
matrix2D::array_by_array, matrix2D::array_by_scalar, matrix2D::scalar_by_array |
1107 | Wrong shape. You are trying to set a row vector as column of a matrix
or viceversa. Also when solving an equation system and the vector of knowns
(b in Ax=b) is not a column vector.
matrix2D::setCol, matrix2D::setRow, matrix2D::solve |
1108 | Matrix is empty. And it shouldn't be as for the computation of a determinant
matrix2D::determinant, matrix2D::solve, matrix2D::inv |
1109 | Matrix is not squared. And it should be as for the computation of a
determinant
matrix2D::determinant, matrix2D::solve, matrix2D::inv |
1201 | No memory left for matrix array. There
is no more room in memory and a memory allocation operation has been requested.
matrix3D::allocate, matrix3D::resize, matrix3D::Multidim2Buffer |
1202 | Not correct size.
*This error is given when trying to do a volume by volume operation, and one volume is, for instance, 64x64x64 while the other is 128x128x128. This error can be produced also if the volumes are of the same size but with different origins (logical accesses). *This error can also be given by setSlice when trying to set the slice of a volume from a matrix which hasn't got the same dimension as the place it should fit. *Even more, when the size is not the expected one (3x3 or whatever) matrix3D::array_by_array, matrix3D::setSlice |
1203 | Subscript not defined for this volume:
ie, trying to access to index (2,3,1) in a 3x3x3 volume (remind that in
C (default indexing unless you define a logical access) indexes go from
0 to N-1). In this package you can define logical accesses but this error
will be produced if you are not using a logical index properly. In the
former example, if you define a 3x3x3 volume to go from (-1,-1,-1) to (1,1,1),
it is not an error to access to index (-1,-1,0), but it is to access to
index (0,2,0).
matrix3D::operator(), matrix3D::slice, matrix3D::setSlice |
1205 | Mode not supported. The valid modes are:
"uniform" (default) and "gaussian"; "abs_above", "abs_below", "above", "below", "range" "X", "Y", "Z" Depending on the function you are using you should choose the right set of valid modes. matrix3D::init_random, matrix3D::add_noise, matrix3D::threshold, matrix3D::slice |
1206 | Unknown operation between volumes, or volume and scalar.
matrix3D::array_by_array, matrix3D::array_by_scalar, matrix3D::scalar_by_array |
1301 | Index out of range.
This error is produced when trying to access to a FFT position which is not valid (either an index or a frequency). FFT1D::operator (), FFT2D::operator (), FFT3D::operator () |
|
The FFT is empty
FFT1D::operator (), FFT2D::operator (), FFT3D::operator () |
1501 | File not found.
imageByte::read, imageXmipp::read, volumeXmipp::read, Is_VolumeXmipp, SelFile::ImgSize volume::read, image::read |
1502 | Not correct file format.
The file being read is not of the requested file format. imageByte::read, imageXmipp::read, volumeXmipp::read |
1503 | Problem opening file for output.
The routine cannot open the file for output, ie, to write it. imageByte::write, imageXmipp::write, volumeXmipp::write, volume::write, image::write |
1504 | Data error when reading.
There is an error when trying to read the floating points from the file into the volume (matrix3D) structure of the volume itself. matrix3D::read |
|
Index out of range
The index given to the oversampled image is outside the range definition. ImageOver::over2img, ImageOver::img2over |
1551 | File not found.
SelFile::read |
1552 | Not correct file format.
The file being read is not of the requested file format. See Selection Files for further information about the format. SelLine::operator >> |
1553 | Problem opening file for output.
The routine cannot open the file for output, ie, to write it. SelFile::write |
1601 | File not found.
DocFile::read |
1602 | Not correct file format.
The file being read is not of the requested file format. See Document Files for further information about the format. DocLine::operator >> |
1603 | Problem opening file for output.
The routine cannot open the file for output, ie, to write it. DocFile::write |
1604 | The required data is not in the file.
* The given key is not at the file. You have requested the current line "pointer" to find a certain line using its key, but this key is not present in the file. * The column you are requesting from the current line, is not available. There is no such a column for this line. DocFile::operator (), DocFile::set, DocFile::operator [] |
1605 | Column assignment not complete.
You have specified a column assignment between a column vector and a column of the document file where the column vector has got less values than the column in the document file. So not all values have been possible to be assigned. More than an error is a warning, you can catch it and ignore it DocFile::setCol |
2001 | Percentil greater than 100%.
You have asked for the value of the variable for which the area under the histogram is equal to a number greater than 100%!. Histogram:percentil |
2101 | Error in AtoF
AtoF |
2102 | Error in AtoI
AtoI |
2103 | Error in CtoI
CtoI |
|
Error in get_param
get_param (Invalid argument or argument not found). |
|
Error reading a list of numbers
This error can be produced either because there aren't enough numbers in the string to be read, either because one of the values read is not of the proposed type (float, int, ...) read_float_list |
|
Error reading a word
You have asked to read a word from a line where there is none first_word, next_word |
3001 | The grid vectors are not a true 3D
coordinate system.
You have asked to prepare a grid for work when not all the grid vectors have been set, or they have been set but they are coplanar. SimpleGrid::prepare_grid |
|
The grid hasn't got so many simple grids
You have asked for a simple grid within a complex grid which hasn't got so many simple grids. For instance, in a Grid with 2 simple grids, the only valid indexes are 0 and 1, and you are trying to access to simple grid number 2 Grid::operator() |
|
Error when reading the a phantom file.
Either the file cannot be opened, or the feature description doesn't conform the specifications. Phantom::read, Feature::read_common, Sphere...::read_specific |
|
The two grid volumes are different in shape.
When trying to make an arithmethic operation between two grid volumes, the volume shapes (no. simple volumes, origin, size, ...) are different and the operation cannot be done. GridVolume::+,-,*,/ |
|
Error opening file
There has been an error when trying to open a file. Surely it doesn't exist if you are reading or it cannot be opened for output if you are writing. SymList::read_sym_file, compute_hs_FOMs, compute_dr_FOMs, compute_ds_FOMs |
|
Mode not supported
You have asked for an operation with a mode not supported by the routine For Feature::background the valid modes are ENLARGE_MODE and SPHERE_MODE Feature::background |
|
A parameter is left
You should have given a parameter in a parameter file but the reading routine hasn't been able to find it in the correct place. |
|
Error in ART
ART can produce many kind of different errors. The exact error is shown in the message |