Giter VIP home page Giter VIP logo

isis's People

Contributors

derorfa avatar mih avatar ooz avatar rollmops avatar rollwurst avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

isis's Issues

ImageFormat_Vista does not map boolean to VBit

Trying to store a vista file with "-repn boolean" results in "Can't map image type boolean(256) to vista type. Aborting." although vista does have a boolean datatype named "VBit".

Apparently its not mapped correctly.

Error building lib/Adapter/vtk/vtkAdapter.cpp

there are still some API-revamp issues in vtkadapter.cpp -->

isis/lib/Adapter/vtk/vtkAdapter.cpp:37: error: no matching function for call to ‘isis::data::Image::getMinMax(isis::util::ValueReference&, isis::util::ValueReference&)’

Logging broken due to ambiguous overloads in C++11 and later

I was looking at picking up a stalled effort to package this in NeuroFedora, and I encountered many compiler errors like the following on GCC 12.1.1.

Using the latest master from this repository:

In file included from /home/ben/src/forks/isis/lib/Core/CoreUtils/types.hpp:17,
                 from /home/ben/src/forks/isis/lib/Core/CoreUtils/value_base.hpp:20,
                 from /home/ben/src/forks/isis/lib/Core/CoreUtils/value.hpp:16,
                 from /home/ben/src/forks/isis/lib/Core/CoreUtils/property.hpp:18,
                 from /home/ben/src/forks/isis/lib/Core/CoreUtils/progparameter.hpp:22,
                 from /home/ben/src/forks/isis/lib/Core/CoreUtils/application.hpp:27,
                 from /home/ben/src/forks/isis/lib/Core/CoreUtils/application.cpp:23:
/home/ben/src/forks/isis/lib/Core/CoreUtils/vector.hpp:242:33: error: ISO C++17 does not allow dynamic exception specifications
  242 |         const this_class &norm()throw( std::invalid_argument ) {
      |                                 ^~~~~
/home/ben/src/forks/isis/lib/Core/CoreUtils/application.cpp: In member function ‘virtual bool isis::util::Application::init(int, char**, bool)’:
/home/ben/src/forks/isis/lib/Core/CoreUtils/application.cpp:88:39: error: ambiguous overload for ‘operator<<’ (operand types are ‘isis::util::Message’ and ‘const char [33]’)
   88 |                 LOG( Runtime, error ) << "Failed to parse the command line";
      |                                       ^~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                          |
      |                                          const char [33]
In file included from /home/ben/src/forks/isis/lib/Core/CoreUtils/log.hpp:18,
                 from /home/ben/src/forks/isis/lib/Core/CoreUtils/common.hpp:30,
                 from /home/ben/src/forks/isis/lib/Core/CoreUtils/vector.hpp:20:
/home/ben/src/forks/isis/lib/Core/CoreUtils/message.hpp:75:39: note: candidate: ‘isis::util::Message& isis::util::Message::operator<<(T) [with T = const char*]’
   75 |         template<typename T> Message &operator << ( T val ) {
      |                                       ^~~~~~~~
/home/ben/src/forks/isis/lib/Core/CoreUtils/message.hpp:79:18: note: candidate: ‘isis::util::Message& isis::util::Message::operator<<(const isis::util::MSubject&)’
   79 |         Message &operator << ( const MSubject &subj ) {
      |                  ^~~~~~~~

It wasn’t immediately clear to me how best to resolve the ambiguity.

The logging code compiles as expected when I explicitly add -DCMAKE_CXX_STANDARD=98, although there are other unrelated compiler errors.

typeTest fails

Running the unittests from the current master HEAD on Debian wheezy i386 yields this:

3: Test command: /home/michael/debian/lipsia/isis/obj-i486-linux-gnu/tests/CoreUtils/typeTest
3: Test timeout computed to be: 9.99988e+06
3: Running 7 test cases...
3: /home/michael/debian/lipsia/isis/tests/CoreUtils/typeTest.cpp(157): error in "type_conversion_test": check fRef2->as<std::string>() == "3.54150009" failed [3.5415 != 3.54150009]
3: 
3: *** 1 failure detected in test suite "ValueTest"
3/13 Test  #3: typeTest .........................***Failed    0.02 sec

Implement an ISIS IO/Java bridge

We want to access image data from Java via the ISIS ImageIO interface. Evaluate the possibilities to build a basic interface.

isis::Application ignores logger control parameter

Starting an IOApplication like './isisdump -dData error' has no effect at the logging level. The reason for this can be found in the Application:init method and the order in which parameter processing and application initialization are processed.

dicom conversion stops for unknown reason

(1) Datensatz liegt auf
/scr/tee1/isiswillnicht_datensatz

(2) konvertiert mit 0.4.7:
isisconv -in ../13173.4a_20120405.TRIO/DICOM -rf dcm -out {DICOM/PatientID}{sequenceNumber}{sequenceDescription}.nii -wdialect spm -dImageIO info

(3) infos von isis - all libs mit info -> auffällig das Warning von ImageIO
ImageIO:warning[hasOrTell] Missing property DICOM/SeriesDate
ImageIODebug:info[sanitise] Extracting sliceVec from CSAImageHeaderInfo/SliceNormalVector {0,0.405141,0.914254}(list)
ImageIODebug:info[readMosaic] Decomposing a 384x384x1x1 mosaic-image into a <64|64|30|1> volume
ImageIODebug:info[readMosaic] The acquisition time offsets of the slices in the mosaic where {0,67.5,135,200,267.5,335,402.5,467.5,535,602.5,670,737.5,802.5,870,937.5,1005,1070,1137.5,1205,1272.5,1337.5,1405,1472.5,1540,1605,1672.5,1740,1807.5,1875,1940}
*
Data:warning[reIndex] The existing slice distance (voxelGap[2]) "0" differs from the distance between chunk 0 and 1, which is 4.76837e-07

Data:info[chunkListToImageList] Image 1395 with size 64x64x30x1 done.
Data:info[load] Generated 1395 images out of 1397 chunks loaded from directory ../13173.4a_20120405.TRIO/DICOM

boost test framework crashes on mac

The boost test framework causes seg faults on mac.
There's a message on boost list but unanswered.

The first use of any BOOST_CHECK... or end of BOOST_END_TEST_SUITE leads to crash with seg fault in any tests.

some dicom files cause crash

trying to read /scr/mrincoming7t/2011/BSDT110816.SEPT/S108_MIP_Collection will crash.
Aparently the Siemens CSA-header has an unknown dialect.

itkAdapter

itkAdapter_impl.hpp, internCreateItk, line 150 and 195:

spacing is a fvector3 now but it is tried to access spacing[3]

Doku CoreUtils Thomas

isis::util::Application
isis::util::check_type< T > Templated pseudo struct to check for availability of a type at compile time
isis::data::Chunk Main class for four-dimensional random-access data blocks
isis::util::color< T > Class to store a rgb tripel of type T
isis::util::ConsoleFeedback
isis::util::DefaultMsgPrint Default message output class
isis::util::FixedVector< TYPE, SIZE, CONTAINER >
isis::data::Image
isis::data::IOApplication
isis::data::IOFactory
isis::data::MemChunk< TYPE > Chunk class for memory-based buffers
isis::data::MemChunkNonDel< TYPE >
isis::data::MemImage< T > An Image which allways uses its own memory and a specific type
isis::util::MSubject
isis::util::ParameterMap Container for ProgParameter
isis::util::Selection
isis::util::TmpFile
isis::util::DelProxyClassReference

Broken behavior of MessageHandlers

When trying to set an own message handler by:

ENABLE_LOG( MODULE, MyHandler, level );

isis sometimes seems to ignore that handler. An example code for this:

ENABLE_LOG( DataLog, MyHandler, level);
data::IOFactory::load("non_existing_file");

isis now should send an error log to MyHandler but still uses the DefaultMsgPrint as the handler.

If we change the code:

ENABLE_LOG( DataLog, MyHandler, level);
LOG(DataLog, info) << "some message";
data::IOFactory::load("non_existing_file");

as we would expect, all messages are sent to MyHandler.

improve the current and add new tutorial sections.

IMPORTANT: To be done AFTER the trac wiki merge!

The basis of a successful Open Source project is a good documentation and a clever API. Since we lack the second one at the moment we need to make an effort for the Documentation. :-)
To help starters we have to improve the tutorials section. New Tutorials, especially about the ISIS internal structure are to needed to support the use of the API.

Interesting topics may be:

  • Howto do some basic math on voxel data (including read+write)
  • Howto convert image data type
  • Howto handle anatomical, functional and statistical data
  • Howto use ioapplication and command line parameter
  • Howto write an IO plugin
  • etc. pp.

feel free to comment some addtional topics.

Evaluate the current state of the python interface.

To bring the python interface to a bigger audience we should get break down of it's current state and what need to be done. For example, we can provide appropriate API-documentation, Tutorials and integration in the python specific documentation systems.

Rewrite the Vista-IO-Plugin

Since the Vista plugin was written in a very hurry and so lacks of performance and transparancy, we have to start all over again and rewrite it.

Orientation in 0.3.4 is wrong

Since the last tag (0.3.4) orientation of the images witten by nifti (don't know if its broken elsewhere) is wrong.

3/15 tests fails

Hi, I'm packaging isis for Fedora and I see that some tests fails:

The following tests FAILED:
      5 - propMapTest (Failed)
     11 - imageTest (Failed)
     12 - imageListTest (Failed)

I'm using archive from commit c76e32f

5: Test command: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/build/tests/CoreUtils/propMapTest
5: Test timeout computed to be: 1500
5: Running 7 test cases...
5: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/CoreUtils/propMapTest.cpp(71): error: in "propMap_remove_test": check ! map.remove( "sub" ) has failed
5: Core:warning["propmap.cpp":150] Entry sub not found, skipping it
5: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/CoreUtils/propMapTest.cpp(72): error: in "propMap_remove_test": check map.remove( "sub/Test1" ) has failed
5: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/CoreUtils/propMapTest.cpp(73): error: in "propMap_remove_test": check ! map.branch( "sub" ).isEmpty() has failed
5: 
5: *** 3 failures are detected in the test module "PropMapTests"
 5/15 Test  #5: propMapTest ......................***Failed    0.03 sec
11: Test command: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/build/tests/DataStorage/imageTest
11: Test timeout computed to be: 1500
11: Running 27 test cases...
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [12 != 21]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [13 != 22]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [14 != 23]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [15 != 24]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [16 != 25]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [17 != 26]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [18 != 27]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [19 != 28]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [20 != 29]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [21 != 30]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [13 != 31]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [14 != 32]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [15 != 33]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [16 != 34]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [17 != 35]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [18 != 36]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [19 != 37]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [20 != 38]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [21 != 39]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [22 != 40]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [14 != 41]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [15 != 42]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [16 != 43]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [17 != 44]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [18 != 45]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [19 != 46]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [20 != 47]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [21 != 48]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [22 != 49]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [23 != 50]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [15 != 51]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [16 != 52]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [17 != 53]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [18 != 54]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [19 != 55]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [20 != 56]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [21 != 57]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [22 != 58]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [23 != 59]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [24 != 60]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [16 != 61]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [17 != 62]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [18 != 63]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [19 != 64]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [20 != 65]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [21 != 66]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [22 != 67]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [23 != 68]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [24 != 69]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [25 != 70]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [17 != 71]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [18 != 72]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [19 != 73]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [20 != 74]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [21 != 75]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [22 != 76]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [23 != 77]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [24 != 78]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [25 != 79]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [26 != 80]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [18 != 81]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [19 != 82]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [20 != 83]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [21 != 84]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [22 != 85]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [23 != 86]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [24 != 87]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [25 != 88]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [26 != 89]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [27 != 90]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [19 != 91]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [20 != 92]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [21 != 93]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [22 != 94]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [23 != 95]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [24 != 96]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [25 != 97]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [26 != 98]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [27 != 99]
11: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageTest.cpp(934): error: in "image_splice_test": check chunks[i].getPropertyAs<int32_t>( "acquisitionNumber" ) == i + 1 has failed [28 != 100]
11: 
11: *** 80 failures are detected in the test module "ImageTest"
11/15 Test #11: imageTest ........................***Failed    1.19 sec
12: Test command: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/build/tests/DataStorage/imageListTest
12: Test timeout computed to be: 1500
12: Running 1 test case...
12: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageListTest.cpp(41): error: in "imageList_chunk_test": check list.size() == images has failed [50 != 5]
12: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageListTest.cpp(44): error: in "imageList_chunk_test": check ref.getSizeAsVector() == util::fvector4( 3, 3, 3, timesteps ) has failed
12: DataDebug:error["image.hpp":241] Index <0|0|0|1> is out of range (3x3x3x1)
12: DataDebug:error["image.cpp":563] Index is out of the range of the lookup table (1>=1).
12: unknown location(0): fatal error: in "imageList_chunk_test": memory access violation at address: 0x006b00ca: no mapping at fault address
12: /home/brain/rpmbuild/BUILD/isis-c76e32f08eb1fbe44ec1ea5c306c1f7d2c2a2900/tests/DataStorage/imageListTest.cpp(47): last checkpoint
12: 
12: *** 3 failures are detected in the test module "ImageListTest"
12/15 Test #12: imageListTest ....................***Failed    0.05 sec

some more fun with dicom plugin

Okay, next try to convert files (standard dicom files from 3T TRIO) with isisconv via :

isisconv -dCore info -in DICOM/00000010 -rf ima -out image_{sequenceNumber}{DICOM/ImageType}{acquisitionNumber}.nii

Mysterious things happening:

  1. Where do the different indexOrigins come from and what's the decision to reject:

Rejecting property "indexOrigin:{<98.5486|81.7746|-15.4209|0>(fvector4)}" because "{<98.1819|81.0055|-11.5536|0>(fvector4)}" is allready there

  1. the written output filename has no acquisition number although isisdump gives a '5' for this property and no DICOM/ImageType

Image of size <64|64|30|1> written to image_2__.nii using Nifti

  1. a mysterious property that normally should be the DICOM/ImageType

The property "ORIGINAL,PRIMARY,M,ND,NORM,MOCO,WAS_MOSAIC" does not exist - ignoring it

LAST: the whole output on commandline

ImageIO:warning[io_interface.cpp:51] Missing property "DICOM/PatientsAge"
ImageIO:warning[io_interface.cpp:110] The property "subjectName" does not exist - ignoring it
CoreDebug:warning[propmap.hpp:503] Returning <0|0|0|0>(fvector4) because property voxelGap does not exist
CoreDebug:info[propmap.cpp:408] Rejecting property "indexOrigin:{<98.5486|81.7746|-15.4209|0>(fvector4)}" because "{<98.1819|81.0055|-11.5536|0>(fvector4)}" is allready there
ImageIO:notice[io_interface.cpp:33] Image of size <64|64|30|1> written to niftiDialect_postConverted/image__2_.nii using Nifti

192-168-128-39:14328.80_20111018.VER1 Lydi$ isisconv -dCore info -in DICOM/00000010 -rf ima -out niftiDialect_postConverted/image_{sequenceNumber}{DICOM/ImageType}{acquisitionNumber}.nii
ImageIO:warning[io_interface.cpp:51] Missing property "DICOM/PatientsAge"
ImageIO:warning[io_interface.cpp:110] The property "ORIGINAL,PRIMARY,M,ND,NORM,WAS_MOSAIC" does not exist - ignoring it
CoreDebug:warning[propmap.hpp:503] Returning <0|0|0|0>(fvector4) because property voxelGap does not exist
CoreDebug:info[propmap.cpp:408] Rejecting property "indexOrigin:{<98.5486|81.7746|-15.4209|0>(fvector4)}" because "{<98.1819|81.0055|-11.5536|0>(fvector4)}" is allready there
ImageIO:notice[io_interface.cpp:33] Image of size <64|64|30|1> written to niftiDialect_postConverted/image_2__.nii using Nifti

192-168-128-39:14328.80_20111018.VER1 Lydi$ isisconv -dCore info -in DICOM/0000011 -rf ima -out niftiDialect_postConverted/image_{sequenceNumber}{DICOM/ImageType}{acquisitionNumber}.nii
00000110 00000111 00000112 00000113 00000114 00000115 00000116 00000117 00000118 00000119
192-168-128-39:14328.80_20111018.VER1 Lydi$ isisconv -dCore info -in DICOM/00000110 -rf ima -out niftiDialect_postConverted/image_{sequenceNumber}{DICOM/ImageType}{acquisitionNumber}.nii
ImageIO:warning[io_interface.cpp:51] Missing property "DICOM/PatientsAge"
ImageIO:warning[io_interface.cpp:110] The property "ORIGINAL,PRIMARY,M,ND,NORM,MOCO,WAS_MOSAIC" does not exist - ignoring it
CoreDebug:warning[propmap.hpp:503] Returning <0|0|0|0>(fvector4) because property voxelGap does not exist
CoreDebug:info[propmap.cpp:408] Rejecting property "indexOrigin:{<98.5486|81.7746|-15.4209|0>(fvector4)}" because "{<98.1819|81.0055|-11.5536|0>(fvector4)}" is allready there
ImageIO:notice[io_interface.cpp:33] Image of size <64|64|30|1> written to niftiDialect_postConverted/image_7__.nii using Nifti

Nifti_sa doesn't overwrite existing files on MAC

libisis 0.4.1 with libisisImageFormat_Nifti_sa.dylib as only Nifti plugin on a MAC (!!)

example application:
using isisconv to convert whatever data repeatedly with a delay > 1min

result:
the output is just written the first time and not overwritten later on

Okay, for converting the same data this is not a real problem but in 'normal' applications it is!
It seems if the file is explicitly read in the app and then written again, the problem doesn't occur. But only writing on an existing file is not working!

Seems to be a MAC thing:
Same test on "gurke" (with linux) worked fine.

adopt the Null-Plugin to support unit tests

To enable data independent unit testing, we need to provide appropriate test data sets. The null plugin can be used a produce data sets with unique properties for different test cases. This kind of null images can be used to create input data for different test cases. These null image types can be select via different image dialects.

spm dialect from Nifti_sa not working for structural data and spm 8

(1) data to find:
/scr/tee1/isis_spm_dialect_kaputt

(2) converted by:
isisconv -in ../15890.ea_110803_S2_t1_mpr_sag_standard/ -rf dcm -out {DICOM/PatientID}{sequenceNumber}{sequenceDescription}.nii -wdialect spm

-> S-I flip

(3) converted without dialect -> works with SPM 8

Analyze plugin not working

The Nifti plugin that normally should also be able to write the analyze format does following with prefix "hdr":

  1. Just .hdr file is written
  2. This one cannot be read with fslview - error message "multiple image file"

stop using the dictionary of dcmtk

Currently we use the attribute-dictionary of dcmtk to have a flexible mapping from dicom attributes to our properties.

This has some drawbacks:

  • all installations of the dicom-plugin depend on dcmtk, even if its statically linked
  • changes in the attribute will break the mapping

segfault when linked statically

if isiscore is linked statically, the cleanup when after normal execution causes a segfault in PropMap/treeNode.

Program received signal SIGSEGV, Segmentation fault.
0x000000000040f3c8 in boost::checked_delete<isis::util::_internal::ValueBase> (x=0x618640) at /usr/include/boost/checked_delete.hpp:34
34          delete x;
(gdb) bt
#0  0x000000000040f3c8 in boost::checked_delete<isis::util::_internal::ValueBase> (x=0x618640) at /usr/include/boost/checked_delete.hpp:34
#1  0x000000000040ea09 in boost::scoped_ptr<isis::util::_internal::ValueBase>::~scoped_ptr (this=0x702800, __in_chrg=<value optimized out>)
    at /usr/include/boost/smart_ptr/scoped_ptr.hpp:80
#2  0x000000000040e7f8 in isis::util::_internal::ValueReference<isis::util::_internal::ValueBase>::~ValueReference (this=0x702800, __in_chrg=<value optimized out>)
    at /buildfarm/resources/src/isis/lib/Core/DataStorage/../CoreUtils/generic_type.hpp:84
#3  0x000000000040e812 in isis::util::PropertyValue::~PropertyValue (this=0x702800, __in_chrg=<value optimized out>)
    at /buildfarm/resources/src/isis/lib/Core/DataStorage/../CoreUtils/property.hpp:38
#4  0x00007ffff77f3b00 in std::_Destroy<isis::util::PropertyValue> (__pointer=0x702800) at /usr/include/c++/4.5/bits/stl_construct.h:89
#5  0x00007ffff77f326d in std::_Destroy_aux<false>::__destroy<isis::util::PropertyValue*> (__first=0x702800, __last=0x702810) at /usr/include/c++/4.5/bits/stl_construct.h:99
#6  0x00007ffff77f1d7c in std::_Destroy<isis::util::PropertyValue*> (__first=0x702800, __last=0x702810) at /usr/include/c++/4.5/bits/stl_construct.h:122
#7  0x00007ffff77f0613 in std::_Destroy<isis::util::PropertyValue*, isis::util::PropertyValue> (__first=0x702800, __last=0x702810)
    at /usr/include/c++/4.5/bits/stl_construct.h:148
#8  0x00007ffff77ef07a in std::vector<isis::util::PropertyValue, std::allocator<isis::util::PropertyValue> >::~vector (this=0x7ffff7ddbc30, __in_chrg=<value optimized out>)
    at /usr/include/c++/4.5/bits/stl_vector.h:313
#9  0x00007ffff77f30d9 in isis::util::_internal::treeNode::~treeNode (this=0x7ffff7ddbc00, __in_chrg=<value optimized out>)
    at /buildfarm/resources/src/isis/lib/Core/DataStorage/../CoreUtils/propmap.hpp:431
#10 0x00007ffff59f9d3d in __cxa_finalize (d=0x7ffff7dda8e8) at cxa_finalize.c:56
#11 0x00007ffff77ba906 in __do_global_dtors_aux () from /usr/lib/libisis_core.so.0.4.0
#12 0x0000000000000000 in ?? ()

python isis.data.IOFactory.write should accept python lists

This works just fine:

from isis.data import IOFactory
images=IOFactory.load("/scr/mrincoming7t/INC_20120410_162026496")
data.IOFactory.write(images,"/tmp/delme.nii")

But only because images is ImageList:

images?
Type:           ImageList
Base Class:     <class 'isis.data._data.ImageList'>
String Form:    <isis.data._data.ImageList object at 0x17fea28>
Namespace:      Interactive
Length:         17
File:           /tmp/isis/data/_data.so
Docstring:
    <no docstring>                                                                                                                                                                                                                          
Constructor Docstring:
    __init__( (object)arg1 [, (ImageList)arg2]) -> None :                                                                                                                                                                                   

        C++ signature :
            void __init__(_object* [,std::list<isis::data::Image, std::allocator<isis::data::Image> >])

But using a normal list will fail:

imgs=[]
for i in images:imgs.append(i)
data.IOFactory.write(imgs,"/tmp/delme.nii")
---------------------------------------------------------------------------
ArgumentError                             Traceback (most recent call last)

/tmp/boost_1_49_0/<ipython console> in <module>()

ArgumentError: Python argument types in
    IOFactory.write(list, str)
did not match C++ signature:
    write(std::list<isis::data::Image, std::allocator<isis::data::Image> > {lvalue} images, std::string path)
    write(std::list<isis::data::Image, std::allocator<isis::data::Image> > {lvalue} images, std::string path, std::basic_string<char, isis::util::_internal::ichar_traits, std::allocator<char> > suffix_override)
    write(std::list<isis::data::Image, std::allocator<isis::data::Image> > {lvalue} images, std::string path, std::basic_string<char, isis::util::_internal::ichar_traits, std::allocator<char> > suffix_override, std::basic_string<char, isis::util::_internal::ichar_traits, std::allocator<char> > dialect)
    write(isis::data::Image image, std::string path)
    write(isis::data::Image image, std::string path, std::basic_string<char, isis::util::_internal::ichar_traits, std::allocator<char> > suffix_override)
    write(isis::data::Image image, std::string path, std::basic_string<char, isis::util::_internal::ichar_traits, std::allocator<char> > suffix_override, std::basic_string<char, isis::util::_internal::ichar_traits, std::allocator<char> > dialect)

This is bad ..

isis-python does not build on lenny

When trying to build the isis-python package under lenny the compiler fails when resolving namespaces.

isis/python/isis/core/core.cpp +32

dicom plugin crashes for list of file names

try to convert files from dcm to nifti with isisconv:

isisconv -dCore info -in DICOM/00000* -rf ima -out somename.nii

Okay, the error is to use the filenames with * but the result of this is following:

terminate called throwing an exceptionAbort trap: 6

That's nasty - plugin should deal with this!

rename read/phase to column/row

rename read/phase to column/row
It's more correct because we don't care for read and phase so it's not always correct and more confusing than explaining

imageTest doesn't compile

on MAC OSX 10.7 (Lion)
normal procedure to get isis, cmake set BUILD_TEST
compiler gcc-4.2 or llvmgcc doesn't matter
error while compiling:

/Users/Lydi/Development/isis/lib/Core/DataStorage/../CoreUtils/types.hpp: In instantiation of ‘isis::util::checkType’:
/Users/Lydi/Development/isis/lib/Core/DataStorage/../CoreUtils/property.hpp:105: instantiated from ‘bool isis::util::PropertyValue::operator==(const T&) const [with T = long unsigned int]’
/usr/local/include/boost/test/test_tools.hpp:536: instantiated from ‘boost::test_tools::predicate_result boost::test_tools::tt_detail::equal_impl(const Left&, const Right&) [with Left = isis::util::PropertyValue, Right = long unsigned int]’
/usr/local/include/boost/test/test_tools.hpp:560: instantiated from ‘boost::test_tools::predicate_result boost::test_tools::tt_detail::equal_impl_frwd::call_impl(const Left&, const Right&, mpl_::false_) const [with Left = isis::util::PropertyValue, Right = long unsigned int]’
/usr/local/include/boost/test/test_tools.hpp:575: instantiated from ‘boost::test_tools::predicate_result boost::test_tools::tt_detail::equal_impl_frwd::operator()(const Left&, const Right&) const [with Left = isis::util::PropertyValue, Right = long unsigned int]’
/usr/local/include/boost/test/test_tools.hpp:523: instantiated from ‘bool boost::test_tools::tt_detail::check_frwd(Pred, const boost::unit_test::lazy_ostream&, boost::test_tools::const_string, size_t, boost::test_tools::tt_detail::tool_level, boost::test_tools::tt_detail::check_type, const Arg0&, const char_, const Arg1&, const char_) [with Pred = boost::test_tools::tt_detail::equal_impl_frwd, Arg0 = isis::util::PropertyValue, Arg1 = size_t]’
/Users/Lydi/Development/isis/tests/DataStorage/imageTest.cpp:197: instantiated from here
/Users/Lydi/Development/isis/lib/Core/DataStorage/../CoreUtils/types.hpp:73: error: no matching function for call to ‘assertion_failed(mpl_::failed************ (isis::util::checkType::TYPE_IS_NOT_KNOWN::************)(long unsigned int))’

type conversion on empty images is broken

Calling isisconv at any image with only one value (mostly considered "empty" :-) ) and a scaling conversion into another type is done, it will crash.

Example:

isisconv -in /scr/mrincoming7t/PostMortem/PMB100520.PostMortem/nifti/S102_MEAN_mp2rage_7T_0_35_96Avg_T1map.nii -out test.png

aborts with the Assertion "minval < maxval" failing in isis::data::getNumericScaling.

This is actually more troublesome than it might look like. (And a little bit embarrassing - shame on me)

We need minval to be less than maxval to calculate the scaling. And we need the scaling, to make sure the data will fit into the target type (even if there is only one distinct value).

streaming-io

Change the loading system, so it can already process (and deliver) image data even if loading is not completed.
So Applications can start doing whatever they do while loading is still going on.

Doku CoreUtils Erik

isis::data::TypedImage< T > An Image where all chunks are guaranteed to have a specific type
isis::data::TypePtr< TYPE > Generic class for type (and length) - aware pointers
isis::data::TypePtr< TYPE >::BasicDeleter Default delete-functor for c-arrays (uses free())
isis::data::TypePtr< TYPE >::DelProxy Proxy-Deleter to encapsulate the real deleter/shared_ptr when creating shared_ptr for parts of a shared_ptr
isis::data::TypePtr< TYPE >::NonDeleter Delete-functor which does nothing (in case someone else manages the data)
isis::data::TypePtr< TYPE >::ObjectArrayDeleter Default delete-functor for arrays of objects (uses delete[])
isis::data::_internal::TypePtrBase
isis::data::_internal::TypePtrConverterBase
isis::data::_internal::TypePtrConverterMap
isis::util::_internal::TypeReference< TYPE_TYPE > Base class to store and handle references to Type and TypePtr objects
isis::util::TypeValue Common property value class
isis::util::vector4< TYPE >

Doku CoreUtils Lydi

isis::util::ProgParameter Container class for programm parameters
isis::util::ProgressFeedback
isis::util::PropertyMap This class contains a mapping tree to store all kinds of properties (path/key : value)
isis::util::PropertyMap::walkTree< Predicate > Walks the whole tree and inserts any key into out for which the given scalar predicate is true
scoped_ptr
isis::util::Selection Enum-like class for string based selections
isis::util::Singletons Static class to handle singletons of a given type and priority
isis::data::_internal::SortedChunkList
isis::data::_internal::SortedChunkList::chunkPtrOperator
isis::data::_internal::SortedChunkList::posCompare
isis::data::_internal::SortedChunkList::scalarPropCompare
isis::util::TmpFile Class to automatically create and handle a temporary file
isis::util::_internal::treeNode Class treeNode is a basic class for PropertyMap to check some basic graph stuff for each node of the property tree
isis::util::Type< TYPE > Generic class for type aware variables
isis::util::_internal::TypeBase
isis::util::_internal::TypeConverterBase
isis::util::_internal::TypeConverterMap

Evaluate CTest & BOOST unit tests

To improve the handling of our current and new unit tests, we need to find a better solution for integration. For example the integration of unit testing into CMake with the help of the CTest package.

redesign isis-group webpage and setup 'isis-group.github.com'

The excellent ISIS-group definitely needs an excellent representation on the web. So we should 'redesign' the default layout of the githup 'pages' and put it under the URL 'isis-group.github.com'. This URL scheme is similar to the schemes used on other project hosting websites e.g. sourceforge.
Another point for the URL change would be: The ISIS-group manages the ISIS project AND other projects (e.g. the viewer framework). Hence we should decouple the webpage from the ISIS repo.

Any comments on this?

merge the trac and github wiki

There are still some important documentation, ridiculous plans, fancy designs and lost dreams on the ISIS trac wiki. We need to merge it back into the github wiki documentation structure.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.