EIDORS
(mirror)
Main
Documentation
Tutorials
Download
Contrib Data
GREIT
Browse Docs
Browse SVN
News
Mailing list
(archive)
FAQ
Developer
Hosted by
| |
News
This page is a list of updates, discussions, and
ideas for enhancements to the
EIDORS package.
-
31 December 2019
EIDORS Version 3.10 release
Blobby the walrus is proud to announce the
release of EIDORS version 3.10,
available at www.eidors.org,
and DOI:10.5281/zenodo.3247168.
This is primarily a bug fixing release but it includes
- New electrode models to better support internal electrodes
- Temporal filtering
- Improved octave support
- Datafile utilities and improved fileformat support
- Breath-analysis tools
-
30 June 2019
EIDORS Workshop at EIT 2019
Time: 14h00−15h00, Sainsbury Wellcome Centre, London
Code from workshop:
imdl = mk_common_model('b2c2',16);
fmdl = imdl.fwd_model;
img = mk_image(fmdl,1);
subplot(322);
img.fwd_model.stimulation = stim_meas_list( ...
[1,2,3,4],16);
img.fwd_solve.get_all_meas = true;
vh = fwd_solve(img);
imgv = rmfield(img,'elem_data');
imgv.node_data = vh.volt;
show_fem(imgv,[0,1]);
[stim,msel] = mk_stim_patterns( ...
16,1,[0,1],[0,1],{'no_meas_current'},1);
img.fwd_model.stimulation = stim;
img.fwd_model.meas_select = msel;
vh = fwd_solve(img);
img.elem_data(40) = 1.5;
vi = fwd_solve(img);
subplot(321); show_fem(img,[0,1,1]);
subplot(323);
plot([vh.meas,vi.meas]);
imdl = select_imdl(img.fwd_model, {'Basic GN dif'});
subplot(324);
imdl.hyperparameter.value = 1e-3;
imgr = inv_solve(imdl, vh, vi);
show_fem(imgr);
load montreal_data_1995.mat
vv = zc_demo3;
imdl.hyperparameter.value = 3e-2;
imgr = inv_solve(imdl, vv(:,1), vv(:,3:50));
subplot(325);
imgr.show_slices.img_cols = 5;
show_slices(imgr);
J = calc_jacobian( img);
Jdvol = J(4,:)'./get_elem_volume(img);
img.elem_data = Jdvol
subplot(326); show_fem(img);
return
clf;
for i=1:208
Jdvol = J(i,:)'./get_elem_volume(img);
img.elem_data = Jdvol
show_fem(img);
pause
end
|
-
10 June 2018
EIDORS Workshop at EIT 2018
Time: 14h00−17h00, Sanderson Building, Kings Buildings campus, University of Edinburgh.
Synopsis:
The EIDORS workshop is for beginners and more advanced users of the EIDORS.org
software. We will begin by helping everyone to install and use the software; we
will then have a short presentation on the software and review its use for
forward modelling and inverse solutions. Next we will present some example cases
or solve application examples from workshop attendees.
Workshop tutorial:
Instructions for Windows users
- Create a directory C:\path\to\tutorial
- Download these files and unzip into the directory
- Start Matlab
- In matlab, do
-
cd H:/tutorial/eidors35rc1
cd C:\path\to\tutorial\eidors-v3.9.1-ng\eidors
-
startup
-
compare_2d_algs(1)
%(this tests if eidors is working)
-
show_fem(ng_mk_cyl_models(3,[0],[]))
%(this tests if netgen is working)
Try a few
EIDORS tutorials
to see how eidors works.
I recommend:
-
EIDORS Basics
-
Absolute and difference solvers
-
Lung injury images
-
Netgen FEM models
-
GREIT
Challenge problem:
- Create a 3D elliptical cylinder with 16 circular electrodes
(see here)
fmdl= ng_mk_ellip_models([1,1.2,0.8],[16,0.5],[0.1]);
show_fem(fmdl);
- Put a ball into the elliptical cylinder
extra={'ball','solid ball = sphere(0.5,0.3,0.5;0.1);'};
fmdl= ng_mk_ellip_models([1,1.2,0.8],[16,0.5],[0.1],extra);
show_fem(fmdl);
- Put two balls into the elliptical cylinder
extra={'ball','solid ball = sphere(0.5,0.3,0.5;0.1) or sphere(-0.5,0.3,0.5;0.1);'};
fmdl= ng_mk_ellip_models([1,1.2,0.8],[16,0.5],[0.1],extra);
show_fem(fmdl);
- Set the model to use adjacent current patterns
stim = mk_stim_patterns(16,1,[0,1],[0,1],{});
fmdl.stimulation = stim;
- Simulate homogeneous voltages (background conductivity = 0.5);
img = mk_image(fmdl, 0.5); vh = fwd_solve(img);
show_fem(img);
- Simulate inhomogeneous voltages (ball conductivity = 1.0);
img.elem_data(fmdl.mat_idx{2})= 1.0; vi = fwd_solve(img);
show_fem(img);
- Show slices through voltage pattern
img.fwd_solve.get_all_meas = 1; vi = fwd_solve(img);
imgh = rmfield(img,'elem_data'); imgh.node_data = vi.volt(:,1);
show_slices(imgh,[[inf,inf,0.3];[inf,inf,0.35]]);
- Show a Gauss-Newton (GN) inverse in 3D
imdl = select_imdl(fmdl, {'Basic GN dif'});
imdl.hyperparameter.value = 1e-5;
img= inv_solve(imdl,vh,vi);
show_3d_slices(img);
- Show a Gauss-Newton (GN) inverse in 2D using a coarse-to-fine map
fmdl2d = ng_mk_ellip_models([0,1.2,0.8,.1],[],[]);
fmdl.coarse2fine = mk_coarse_fine_mapping(fmdl,fmdl2d);
imdl = select_imdl(fmdl, {'Basic GN dif'});
imdl.rec_model = fmdl2d;
imdl.hyperparameter.value = 1e-4;
img= inv_solve(imdl,vh,vi);
show_slices(img);
- Create a GREIT model for the ellipse
(see here)
opt.noise_figure = 0.5;
fmdl.normalize_measurements = 0;
imgh = mk_image(mdl_normalize(fmdl,1),1.0);;
imdl = mk_GREIT_model(imgh, 0.25, [], opt);
img= inv_solve(imdl,vh,vi);
show_fem(img);
|
-
1 June 2018
EIDORS Version 3.9.1 release
Blobby the walrus is proud to announce the
release of EIDORS version 3.9.1,
available at www.eidors.org,
and DOI:10.5281/zenodo.1257670.
This is primarily a bug fixing release but it includes
- Improved Support for GREIT in 3D
- Improved Geophysical models
- Improved absolute solvers
- Models with internal electrodes
- New tutorials
- Improved solvers
-
21 June 2017
EIDORS Version 3.9 release
Blobby the walrus is proud to announce the
release of EIDORS version 3.9,
available at www.eidors.org,
and DOI:10.5281/zenodo.583266
Some of the many new features are:
- Faster forward solve times for real conductivity distributions
- Improved support for GREIT reconstructions in 3D
- New hyperparameter selection approaches
- Interface to Hansen's "Regularization Toolbox"
- Gmsh-based human 3D model interface
- Correction of artefacts caused by low frame rates
- Improved support for mixed point and CEM electrode models
- Support for 2½D solvers (including a rank-1 2½D movement Jacobian)
- Forward solve supporting model reduction (i.e. efficient
precalculation of out-of-field regions)
- Improved testing framework esp. for core solver algs
- Improved support for geophysical FEM models
- Improved support for Octave
- Updated ability to load recent device file formats including
auxiliary data (Dräger and Swisstom formats)
- Expanded shape library
While proud of the great things EIDORS can now do, Blobby is sad
to note that the Mathworks is making Matlab worse faster than
he can make EIDORS better. While in the past it was possible
to support a decade of Matlab versions, we can now only support
2015−2017. In the limit, as the quality of Matlab tends to
zero, and it does not appear easy to make an infinite-quality
EIDORS to compensate.
-
21 June 2017
Code developed at the workshop.
EIDORS Workshop at EIT 2017
Time 13h00−17h00, Location: 210 MacLean Engineering Science Center, Darmouth
Synopsis:
The EIDORS workshop is for beginners and more advanced users of the EIDORS.org
software. We will begin by helping everyone to install and use the software; we
will then have a short presentation on the software and review its use for
forward modelling and inverse solutions. Next we will present some example cases
or solve application examples from workshop attendees.
-
1 June 2015
EIDORS Workshop at EIT 2015
For those attending the EIDORS workshop, meet at Microcity building MCB1-283
Bring a laptop computer with the following software installed
- Matlab (version ≥7.6, 2008a),
- Netgen Mesher (version 5.0 or ≥5.2, not 5.1)
- Tortoise SVN
Code developed at the workshop
-
12 May 2015
EIDORS Version 3.8 release
Blobby the walrus is proud to announce the
release of EIDORS version 3.8,
available at www.eidors.org,
and DOI:10.5281/zenodo.17559
Some of the many new features are:
- improved (more stable) absolute solvers
- 3D imaging using GREIT
- Parameterization and arbitrary units
- Speed optimizations
- analytic geometry for dual meshes (coarse to fine)
- improved netgen interface (more stable and flexible)
- improved support for Dräger and Swisstom file formats
- improved graphics
Based on our test results, it appears that EIDORS
is not using modern software engineering techniques.
Unlike Windows 8, Android 5, Skype, and Matlab 8,
which use (BS)² methodologies (Big, Slow, Bad,
and Sloppy) to make each version more annoying
and less useful than the previous, EIDORS 3.8 is
"Not Worse™" than any previous version.
-
22 April 2014
EIDORS Workshop at EIT 2014
For those at the EIDORS workshop, meet at
8:30 at the lobby of the Glenhouse hotel.
Bring a laptop computer with the following software installed
- Matlab (version ≥7.0),
- Netgen Mesher
- Tortoise SVN
-
29 May 2013
EIDORS Version 3.7.1 release
Blobby the walrus is happy to announce the
release of EIDORS version 3.7.1. The software is
available at www.eidors.org.
This is a minor release, primarily fixing some small (but annoying)
incompatibilities between different Matlab versions and operating systems.
New features include:
- Better handling of netgen and gmsh executables (Windows) − paths need only ever by provided once and can contain spaces.
- Completely re-written
print_convert function to produce beautiful cropped images with anti-aliasing without using ImageMagick
- Citation requests when specific functions are called for the first time (
citeme). We hope this will encourage contributions.
- A tutorial on
Customizing EIDORS
All tutorials have been updated to use the new features.
The entire suite has been tested with the newest Matlab 2013a.
-
22 April 2013
EIDORS Version 3.7 release
Blobby the walrus is ecstatic to announce the
release of EIDORS version 3.7. The software is
available at www.eidors.org.
This release includes:
Tutorials have been updated to use the new features.
-
20 April 2013
EIDORS Workshop
For those at the EIDORS workshop, meet at
8:00 at the lobby of the Hotel am Pappenberg.
If you miss us, we are at the
Institut für Informatik (exactly at the Google maps pin).
The workshop was a great success. We answered all outstanding
questions and fixed the last bug ever ;-).
To prove our success, we provide the following documents:
-
18 April 2013
Release Candidate for EIDORS 3.7
We have a release candidate for eidors 3.7.
Please download and test it.
-
4 April 2013
Plans: EIDORS workshop 20−21 April 2013
The following topics have been requested for the workshop in Göttingen
-
constrained inverse problem for difference measurement
-
choosing appropriate regularization and computing hyperparameter value based on L-curve
-
absolute solvers
-
an overview of all the available functions and data structures in EIDORS.
-
28 February 2013
Announcing: EIDORS workshop 20−21 April 2013
EIDORS Masterclass + tutorial session
For those interested in learning more about
EIDORS, we will be offering an
EIDORS masterclass during the weekend before the opening of the
ICEBI/EIT
conference.
Activities:
-
Tutorials on EIDORS software
-
Help implementing and debugging EIDORS-based EIT analysis
-
You can request specific topics of interest on the registration form (see below), which we will try to accommodate.
Logistics:
-
Date: 20-21 April 2013
− 20 April: EIDORS Tutorial Session
− 21 April: EIDORS Masterclass
-
Time: 8h30 - 16h30
-
Location: University of Göttingen, Institute of Computer Science, Rooms -1.110 and -1.111
-
Meeting point: 8h00, Main entrance to the University Medical Center
-
Cost: The workshop is free to attend thanks to our sponsors
-
Accommodation: None provided, but one conveniently located
hotel is Am Papenberg
-
Registration is mandatory (
REGISTER HERE)
Important dates:
-
Register by: 1 April (
REGISTER HERE)
-
Suggest topics: 1 April
-
Final program: 15 April
Organizers:
-
Andy Adler, Carleton University
-
Bartłomiej Grychtol, German Cancer Research Center
-
Günter Hahn, University of Göttingen
-
Bill Lionheart, University of Manchester
Sponsors:
-
University of Göttingen
-
Swisstom AG
|
-
17−20 November 2012:
EIDORS code-a-thon
Several EIDORS developers got together in Manchester, UK to
work on adding new features and squashing old bugs.
Priorities for the workshop were:
1) Geophysics
2) GREIT: target distributions and other defaults, electrode errors
3) Bill's c2f mapper
4) Electrode interface for netgen 2d models
5) place_elec_on_surf
6) move normalize_measurements from fwd_model to inv_model gracefully. Take care of calc_difference_data
-
18 November 2012:
EIDORS and "New Physics"
We've decided on an infrastructure to allow "new physics" to be encoded
onto a forward model. This will remain (mostly) backwards compatible, but
will permit us to better support new problem formulations and multimodality
physics. Examples of physics and their encoding are:
Property | Encoding
|
---|
Generic image information
| img.elem_data
or
img.node_data (no change)
These fields will by default be interpreted as conductivity
(by forward solvers)
|
Conductivity
| img.conductivity.elem_data
or
img.conductivity.node_data (no change)
|
Log conductivity
| img.log_conductivity.elem_data
|
Movement
| img.conductivity.elem_data and
img.movement.electrode_data or
img.movement.node_data or
|
Anisotropic Conductivity
| img.elem_data(elem#,img#,:,:)
so each element has an individual tensor
Functions to create anisotropic
images from eigenfunctions will be provided
|
-
7 July 2012:
EIDORS Version 3.6 release
Blobby the walrus is proud to release EIDORS version 3.6,
available at www.eidors.org.
This release includes:
- improvements to advanced solvers (electrode movement
reconstructions in 3D, 4D reconstruction)
- better support for complex conductivity
- experimental support for higher order FEM
- improved 3D visualization
- expanded support for meshing software and
- several bug fixes and code speedups.
Additionally, in order to make EIDORS easier to use and
maintain, function names have been standardized to reflect their purpose.
Several older functions have been deprecated (you may see several warnings when running
older code).
All
Tutorials have been revised and new ones are available.
The default
solvers are now set at startup and centrally managed through the
eidors_default function.
Because of the many renamed functions, it will be increasingly difficult for the developers to answer questions pertaining to older versions of EIDORS, so we request all users to update.
-
29 June − 3 July, 2012:
EIDORS code-fest
Several EIDORS developers will be getting together in Manchester
to develop and release EIDORS 3.6. Planned features are:
- Tutorials:
- Restructure Tutorials:
Fix warnings in tutorials
Replace old approaches in tutorials (eidors_obj, add_noise)
- New Tutorials:
Movement solver tutorial
Add recent contributions
- Solvers:
Absolute solvers
- FEM Modelling:
Add Gmsh code
- Architecture:
flag for desktop available. Fix eidors_msg
add unit_tests to solvers
- Tests
Test for octave
- Graphics
Fix eidors colourbar
-
8 June 2012:
File renaming and file organization
All files named after their authors are now deprecated (ie. aa_*, np_*)
etc. We now have a consistent directory structure and naming convention for
solvers, etc. Directories are now:
- algorithms: treatment of data
- arch: architecture specific
- compatibility: include in path to support much older code
- deprecated: files to support older code
- examples: example code (in addition to tutorials)
- external: imported code from external sources
- graphics: graphics code
- interface: read and write external data
- meshing: interface to Netgen and other meshing
- models: create FEM models
- sample_data: included samples of data
- solvers: forward and inverse solvers
- solvers/forward:
- solvers/inverse:
- tests: test code (eventually all into unit tests)
- tools: utility functions (cache, unit testing)
-
14 July 2011:
EIDORS Version 3.5 release
Blobby the walrus is proud to release EIDORS version 3.5,
available at www.eidors.org.
This release includes new and enhanced reconstruction
algorithms, expanded support for meshing software and
EIT file formats as well as the usual bug fixes and
code speedups. Functions can now be browsed online in a new
interactive
documentation browser
.
All
Tutorials have been updated and new ones are
available.
New features since v3.4 include:
Additional enhancements:
- graphics enhancements
- nodal resconstructions and display
- image filtering options
- improved octave support
- increased memory efficiency
- quick acces functions for common shapes
(shape_library)
and models
(mk_library_model),
see tutorial
- programming utility functions
- additional solvers
(inv_solve_TSVD)
- bug fixes and unit tests
- improved support for dual model and FEM interpolation (
mk_c2f_circ_mapping,
elem_select)
- shape smoothing and interpolation functions (
fourier_fit,
piece_poly_fit)
- clean up unused and deprecated functions
- calculate geometrical FEM properties
(fix_model,
linear_reorder)
- caching to HDD of library FEM models
- caching improvements (64 bit support)
-
4 May 2011:
EIDORS Tutorial @ EIT 2011 Conf
www.sce.carleton.ca/~adler/eidors-tut/
Challenge problem:
- Create a 3D elliptical cylinder with 16 circular electrodes
(see here)
fmdl= ng_mk_ellip_models([1,1.2,0.8],[16,0.5],[0.1]);
show_fem(fmdl);
- Put a ball into the elliptical cylinder
extra={'ball','solid ball = sphere(0.5,0.5,0.5;0.1);'};
fmdl= ng_mk_ellip_models([1,1.2,0.8],[16,0.5],[0.1],extra);
show_fem(fmdl);
- Put two balls into the elliptical cylinder
extra={'ball','solid ball = sphere(0.5,0.5,0.5;0.1) or sphere(0.5,-0.5,0.5;0.1);'};
fmdl= ng_mk_ellip_models([1,1.2,0.8],[16,0.5],[0.1],extra);
show_fem(fmdl);
- Set the model to use adjacent current patterns
stim = mk_stim_patterns(16,1,[0,1],[0,1],{});
fmdl.stimulation = stim;
- Simulate homogeneous voltages (background conductivity = 0.5);
img = mk_image(fmdl, 0.5); vh = fwd_solve(img);
show_fem(img);
- Simulate inhomogeneous voltages (ball conductivity = 1.0);
img.elem_data(fmdl.mat_idx{2})= 1.0; vi = fwd_solve(img);
show_fem(img);
- Reconstruct the image using GREITv1
imdl= mk_common_gridmdl('GREITc1');
img= inv_solve(imdl,vh,vi);
show_fem(img);
- Create a GREIT model for the ellipse
(see here)
opt.noise_figure = 0.5; opt.distr = 3; %other options are defaults
fmdl.normalize_measurements = 0;
imdl = mk_GREIT_model(mk_image(fmdl,0.5), 0.25, [], opt);
img= inv_solve(imdl,vh,vi);
show_fem(img);
- Compare images for different stimulation patterns
(see here)
|
-
7 July 2010:
Blobby the walrus is proud to release EIDORS version 3.4,
available at www.eidors.org. This version incorporates
bug fixes, automated tests and code speedups.
New features since v3.3 include:
a) new algorithms (PDIPM, GREIT, absolute solvers),
b) improved interfaces to FEM generation (distmesh, netgen)
c) improved repository with in vivo and phantom data,
d) improved graphics and tutorials.
-
20 Jun 2010:
You can now take EIDORS with you! Andrea Borsic and
Andy Adler got EIDORS to run on the Nokia N900 mobile phone by
installing Octave, Gnuplot, texinfo, and EIDORS to the phone. It is OK
for 2D solvers (576 element inverse solutions in about 25 sec), but would
be a little too slow for 3D problems.
-
28 Mar 2010:
Added lots of new tutorials. Including for
nodal solvers, current patterns visualization, absolute solvers.
-
23 Mar 2010:
Added a new test infrastructure. Now each function (for which
it has been implemented) has a 'UNIT_TEST' input. For example
show_fem('UNIT_TEST');
-
20 Feb 2010:
Added data for
Calibrated chest shaped targets in 2D circular tank with ACT 3 EIT system.
Thanks to Jon Newell at Rensselaer Polytechnique Institute
-
15 July 2009:
The EIT-ventilation colourmap from
Draegerwerk AG & Co. KGaA has been
contributed to EIDORS for free
commercial and non-commercial use.
-
25−26 June 2009:
Preliminary work to integrate the
TOAST
software with EIDORS. Work by Andy Adler,
Martin Schweiger, Bill Lionheart and Simon Arridge
to get a preliminary version of EIDORS and
TOAST forward solvers working together.
-
20−24 June 2009:
EIDORS codefest in Whaley Bridge (UK). Bill Lionheart,
Andy Adler, Andrea Borsic and Bartek Grychol got together
to work on many different issues from conformal mapping and
Total variation regularization integrating new data formats.
-
23 July 2008:
Blobby the EIDORS walrus is releasing version 3.3
(www.eidors.org). This version incorporates many changes,
bug fixes and code speedups. Since v3.3RC1, we have added
the Sheffield MKI backprojection algorithm (thanks to
David Barber and Brian Brown), added tutorials and made
several small bug fixes. New features since v3.3 include:
a) interfaces to FEM generation (distmesh, netgen) and
dual model solvers, b) new algorithms (total variation,
electrode movement solver, temporal solvers), c) a data
repository with in vivo and simulated data and models,
d) faster algorithms with better caching, and e) improved
graphics and extensive tutorials.
-
16 June 2008:
EIDORS tutorial as part of the
EIT Conference 2008
-
13 June 2008:
Blobby the walrus has decided to release the first
release candidate of EIDORS v3.3 (EIDORS-v3.3RC1)
on Friday, the 13th.
This version incorporates many changes, bug fixes and code
speedups since v3.2 (Aug, 2007). New features include:
a) interfaces to FEM generation (distmesh, netgen) and
dual model solvers, b) new algorithms (total varia- tion,
electrode movement solver, temporal solvers), c) a data
repository with in vivo and simulated data and models,
d) faster algorithms with better caching, and e) improved
graphics and extensive tutorials.
-
4 Mar 2008:
New code to generally handle reconstructions with coarse
and fine inverse models. This will take care of: 1) reconstructions
on nodes rather than elements, 2) reconstructions to a
raster output (such as GREIT), and 3) 2½D reconstructions.
-
22 Feb 2008:
Andy Adler, Bill Lionheart, Andrea Borsic met with Nick Polydorides at MIT for the week. We made progress on a number of fronts including reintegrating Nick's 2D version of his code and validating it against Andy's. We made a start in incorporating MCMC methods in EIDORS and worked on boundary shape. Validation of 3D codes against each other showed a bug that had crept in to the forward solver in algroithms/n_polydorides which caused an error of relative size 1e-5 under some circumstances. We also had the great pleasure of meeting Gilbert Strang who introduced us to distmesh, which we are now planning to include in EIDORS.
-
24 Sep 2007:
Tutorials to
create netgen FEM models
and
simulation of moving
objects in fine and coarse netgen meshes.
-
30 Aug 2007:
Blobby the walrus would like to announce version 3.2 of EIDORS.
EIDORS Version 3.2 is a significant improvement on the previous
versions. The number and quality of tutorials has been increased.
Bugs that have been reported have been (mostly) fixed, and the
software carefully tested.
Like always, EIDORS aims to facilitate using, testing, and
development of reconstruction algorithms and models for EIT
and other soft field tomography technologies.
New features include
− New algorithms (Temporal reconstruction, Electrode movement)
− Repository for contributed data
− Faster algorithms (better CGLS, Jacobian code)
− Extensive tutorial: http://eidors3d.sourceforge.net/tutorial/
− Improved links to netgen to generate finite element models
EIDORS version 3.2 is available for download here:
http://prdownloads.sf.net/eidors3d/eidors-v3.2.zip.
As always, users are encouraged to report and bugs to the
EIDORS maintainers.
-
24 Aug 2007:
Andy Adler
EIDORS v3.2 development.
EIDORS has progressed significantly from the 3.1 release, and
yet there has not been a new release. The only thing stopping us
is a few bug fixes and a few remaining features. The following
list is the fixes/features added preparing for 3.2.
−Caching added to the m_3d_fields function in
Nick Polydorides' code.
−EIDORS is released under GPL 2 and 3. (ie It may be
copied under the GPL 2 or GPL 3 terms)
−Data repository formed for groups wishing
to conribute data
−Moved and renamed files
−Fixed almost all the bugs in the bug list (with a
few bugs posponed to v3.3)
−New electrode movement code
−Rewrote time solver
−Lots more tutorials
−Fixed caching bugs and added new priority scheme
for cache
-
27 Aug 2006:
Andy Adler & Bill Lionheart
EIDORS Tutorial.
About 40 of us got together at Kyung Hee University, Korea to
review the capabilities of the latest version of EIDORS. Later
we got to play with the EIT systems developed by Eung-Je Woo
and his students at the Impedance Imaging Research Center.
-
22 Aug 2006:
Andy Adler & Bill Lionheart
Blobby the walrus would like to announce version 3.1 of EIDORS.
EIDORS version 3.1 contains a considerable number of new features to facilitate
using, testing, and development of reconstruction algorithms and models for EIT
and other soft field tomography technologies.
New features include
− New algorithms (Total Variation, Kalman filtering)
− Improved Matlab graphics
− Faster algorithms (better CGLS, Jacobian code)
− Extensive tutorial: http://eidors3d.sourceforge.net/tutorial/
− Many more usage examples.
− Improved links to netgen to generate finite element models
− Bug fixes
EIDORS version 3.1 is available for download here:
http://prdownloads.sf.net/eidors3d/eidors-v3.1.zip.
As always, users are encouraged to report and bugs to the
EIDORS maintainers.
-
17 Aug 2006:
Andy Adler
An online tutorial has been written. You can access it
here
-
28 July 2006:
Andy Adler & Bill Lionheart
There will be an EIDORS tutorial on 27 August in
Seoul, Korea as part of the 7th EIT conference.
The tutorial will be at Kyung Hee University (bus
transportation provided from COEX conference centre)
-
28 June 2006:
Andy Adler
Modified EIDORS web pages for changes to SourceForge.net's
cvs servers.
-
23 Jan 2006:
EIDORS V3.1RC1 Released
Andy Adler
Blobby the walrus would like to announce
the release of EIDORS-3.1RC1. This is the
first release candidate for EIDORS 3.1. Users are
encouraged to report and bugs to the EIDORS maintainers.
EIDORS version 3.1 contains a considerable number of
new features to facilitate writing of reconstruction
algorithms and models for EIT and other soft field
tomography technologies. New features include
− New algorithms (Total Variation, Kalman filtering)
− Faster algorithms (better CGLS, Jacobian code)
− Many more usage examples.
− Improved links to netgen to generate models
As always, if your favourite feature is absent, or your
least favourite bug is present, please make your comments
to the authors
-
29 Nov−9 Dec 2005:
Workshop on EIDORS software, Manchester, UK
Andy Adler & Bill Lionheart
The following software has been implemented
- New (faster) Jacobian Calculator by Manuch Soleimani
- Total Variation based image reconstruction
from code by Andrea Borsic
- Modification (and generalization) of EIDORS methods
to allow more generic regularization, and data
for Kalman filtering
- Kalman filtering for difference EIT
- Improved software to integrate Netgen with EIDORS
- Detailed FEM model of ball moving in a vortex in
a tank. (See animated image)
- New inverse algorithms
−Truncated iteration (Morozov criterion)
−CGLS (with efficient sparse matrix handling)
−Coarse / Dense mesh solver
(thank to David Stephenson)
-
31 Oct 2005:
EIDORS V3.0 Released.
Andy Adler
-
30 Oct 2005:
Modifications to allow EIDORS to be used with
octave. Some bugs
remain with octave optimization functions, and with sparse
solver code; however, it is expected that these issues
will be dealt with soon.
Andy Adler
-
24 Oct 2005:
Sample phantom data for cylindrical tank with 2D and
3D stimulations patterns contributed.
examples/phantom_16elec_*
Camille Gomez
-
19 Oct 2005:
The EIDORS project authors, as well as their pet Walrus,
would like to announce release
of EIDORS-3.0RC1. This is the
first release candidate for EIDORS 3.0. Users are
encouraged to report and bugs to the EIDORS maintainers.
EIDORS version 3.0 contains a considerable number of
new features to facilitate writing of reconstruction
algorithms and models for EIT and other soft field
tomography technologies. Features include
− Multiple algorithm support.
− "Pluggable" code base to facilitate user modifications
− Automatic caching to improve performance
− Many more usage examples.
− Sample data and mesh generators
− Integrated test code
− Improved 3D graphics
The EIDORS authors hope to provide a software infrastructure
that will assist technology development and practical
applications of these technologies. To quote the authors
of perl, "We aim to make easy things easy and hard things possible".
Andy Adler
-
18 Oct 2005:
Algorithms and code to illustrate
Cheating with EIDORS.
The goal is to illustrate potential pitfalls of this
kind of numeric software, and to encourage people
to avoid them.
Andy Adler
-
14 Sept 2005:
Algorithms from EIDORS2D from
Marko Vauhkonen
have been included in the algorithms/mv_2001
directory.
Andy Adler
-
2 Sept 2005:
3D data from tank measurements contributed by
Andrew Wilkinson and
Bill Randall at U. Cape Town using their
high speed Electrical Resistance Tomography equipment.
-
6 June 2005:
Paper on EIDORS for VI EIT Conference (London, UK)
Andy Adler, Bill Lionheart
Our paper on EIDORS is
available here
-
23 Feb 2005:
Caching interface for EIDORS
Andy Adler
After thinking about how to implement caching for a while, I've
finally implemented one approach. The idea is that each object
must be 'hashed' to get an ID. If we calculate the image for data
we've already seen, then we must be able to detect that fact.
Some issues are:
− We can't simply keep a pointer to previous variables.
For example, the Jacobian is used many times. Each time
it normally calculated for a homogeneous background, but
the actual variable representing the background is different.
− Cross-platform cross version support. We need to support
(Unix + Windows) × (Matlab v6 + v7 + octave). Windows
makes it difficult to 'shell' out to a helper program. The various
software packages make Mex type functions a compatibility issue.
− Matlab Mex file limitations make it difficult to get pointers
to the raw data storage for variables.
Design:
The following design was chosen. In the eidors object constructor
eidors_obj.m, and obj_id is calculated for each variable
by saving it to disk, and then running the file through the
SHA1 hash, and deleting the file.
The mex file matrix_id.cpp is used to calculate
the SHA1. Because the Matlab V6 file format puts a comment header with
the save time in the first 125 bytes, it is necessary to begin the
hash after that point.
Questions:
− Should the saved files be deleted? If not, it may be a nice
way to improve overall performance. If files are kept, we need to user
selected EIDORS_TMPDIR in which to put the files.
− Not all cached data is useful. For example each measured
data set will end up in the cache as currently implemented.
One advantage of the current implementation, however, is
the way that it can 'remember' if it has seen previous data without
actually storing that data. This would allow user selection of
which variables to cache.
-
23 Nov. 2004:
Bill Lionheart
Umer Zeeshan Ijaz <umer@cheju.ac.kr> from Korea has kindly contributed some
code to help us find our electrodes in a netgen mesh.
I have uploaded the code to the cvs on sf.net
http://eidors3d.sourceforge.net/
You should be able to see it on the browse cvs link (sometimes there is a
delay) in the subdirectory meshing/netgen/ElectrodeInfo
Several others have been working on the same problem and your contributions
to automated electrode numbering are very welcome.
-
26 July 2004:
Design of a caching interface for EIDORS
Andy Adler
Here are some references of other efforts that use a
caching architecture for Matlab projects:
-
13 July 2004:
EIDORS Developers strategic meeting.
UMIST:
Bill Lionheart (chair) (WL),
Nick Polydorides (NP),
David Stephenson (DS),
John Davidson (JD),
Sharon Mohanna (SM),
UCL:
Lior Horesh (LH),
Richard Bayford (AB),
U.OTTAWA:
Andy Adler (AA),
Yednek Asfaw (YA),
Brad Graham (BG),
Minutes:
- Everyone introduced themselves
- It was agreed by all that the code circulated for this meeting that was not
yet released would be treated as confidential, as the authors needed a chance
to publish papers on their work first. When ready the authors can contribute
it to the eidors3d source tree on sourceforge.net either themselves or via
one one of those registered as developers.
- Current work in EIT and with EIDORS software was discussed.
- Standard file formats.
(AA) As we develop project we have a chance to set a standard.
(RB) Kevin Boon suggested standard data format in Ankara. Confidential medical
data, patient owns it.
Community has to be seen to respect medical data (eg name prognosis.). Phantom
data not an issue. Cant just send a data file. Issue about type of system.
Collection protocol, dynamic range, data scaling. Electrode placement within
error. In real data another level, may need to preprocess to data.
Do we want EIDORS to be a teaching tool or a more advanced tool.
Reverse is to say what syntax EIDORS needs.
(RB) Image format. SPN, statistical parametric modelling. What is output
format. VTK?
30 Images different freq. Need for comparison of data.
(AA) Symantic difficulty, cond on vertices, elements, mapping to cut planes.
So what is image? Rasterizing.
(NP) Test set for others to compare. Dist with EIDORS.
(RB) OT, see Martin Schweiger's web site at UCL.
There is lots of error checking in TOAST. This can be an issue when trying to
adapt the code to a different application.
(AA) Defining a new standard would raise political issues. On the other hand,
simply saying that "this is what you need to work with EIDORS" is easier.
Action: AA -- consult OT people (HD). Check with RB for head, JLD for Process
Tomography.
Models meshes -- standard file formats. Can we use standard ones? Iges, EDS,
Universal File Format,
SLT (parametric surface).
Mesh quality factors.
- (AA) API and plugable algorithms.
Want to easily plug in new idea and compare with named reference algorithms.
API written so this is easy but also safe.
(RB) Grid algorithms, multiple self contained program, moduarity.
- CVS version on source forge.
Octave compatible using if statements to bypass matlab graphics.
Matlab OO. Not well written. Use structures instead
−
data - measurements, units, time, comment,
electrode positions, current pattern
−
fwd_model - FEM, electrode posn. and models,
excitation / meas. patterns, electrode models
−
inv_model - hyperparameters, pointers to code
−
image - image data, pointers to fwd_model, inv_model
Basic Methods:
−
fwd_solve, inv_solve, jacobian, etc.
−
methods call alg. specific
−
'centralized' caching to avoid repeat calcs
Demo_real modified on CVS tree to do this.
Discussion on packing un packing
AA explained the "copy on write" issue in matlab. If you assign one big array
to another it does not make a copy until you assign to the old one. Care is
needed to avoid meemory bloat.
DS and LH wondered whether this structure is appropriate for computationally
intensive problems.
Action LH and DS to look at AA's structures and see how it would suit their problems.
(WL) Are we prepared to make big changes now, such as changes to variable
names.
Yes, as long as we carry the main users with us. Proposed major changes will
be discussed on eidors-3d listserv.
- Research Issues
(RB) Cross continent funding? Grid computing -- no real applications?
"e-science community"
Action: AA to check on Canadian position.
RB To check on Grid stuff. Large computing, para'l computing.
(AA) Testabilty big deal in software eng. Not much work on numerical
algorithms. Inverse problems and medical imaging.
(RB) Design for testability
(BG) Has MS in CS , code inspection at RMC s/w for nuclear inspection.
(WL) Testing of of IP software, so that one transparently avoids any cheating,
whether or not intended, seems to be an interesting issue.
(RB) VLSI, scalability testing. TOAST experience suggests problem we might
encounter when code grows. Do we need built in test methods in EIDORS as it
grows?
(AA) This is a great multidisciplinary collaboration. We need good testing
now.
Repositary for standard data and Meshes, as well as standard algorithms.
- (RB) Suggested giving EIDORS a higher profile on eit.org.uk to encourage
contributions. (WL) Suggested that we consolodate changes with the main
groups actively developing EIDORS first.
- AOB: The meeting thanked the AG coordinators, the video conferencing went
well apart from a loss of audio.
- It was agreed to schedule a meeting in about two months with London and
Dartmouth both joining us over AG as well.
Action: HD, RB, AA, WL to check availability of their AG nodes.
-
4 July 2004:
A. Adler
EIDORS code now works with Octave
as well as Matlab. Note that this is only for the numerical code;
graphics are not supported. Also, since octave does not support
some of the Cholesky and CG solvers, the solutions may be numerically
less stable.
-
24 June 2004: Idea
A. Adler
EIDORS needs a logo. Should we have a blurry blob?
On the other hand, it also has to look 3D? And, it also has to look OK
when compressed really small.
If you have some thing you'd like to contribute,
Bill Lionheart
-
23 June 2004: Discussion
W.R.B. Lionheart, A. Adler
In order to further EIDORS development, we developed the
following desirata for EIDORS software.
-
API design
EIDORS needs a clean, well-encapsulated and easy to understand
API. We do not feel that an object oriented API is particularly
useful because:
1) the Matlab OO design is somewhat of a "hack"
2) such an OO interface would make portability to other
languages less easy
-
Language portability
EIDORS is primarily aimed at MATLAB. We would like to EIDORS
to support Octave and Scilab, as far as possible. Currently,
Octave and Scilab have the features needed by EIDORS (sparse
matrices, 3D matrix support, etc.)
In the core, it should be possible to have portability. However,
Matlab graphics features are not supported in these languages.
Our idea is therefore to separate the graphics functions
from the core code. Graphics code would therefore be permitted
to be language specific.
Another desirable feature would be to support approaches
to enhance execution speed: ie. C functions, multiprocessor
support, etc. This is dealt with under plug-in algorithms
-
Platform portability
EIDORS is intended to work on all platforms with support
Matlab/Scilab/Octave. This means Unix/Windows/Mac OSX.
In order to do this, we have the following rules:
− No spaces in file names
− The path separator is '/'
− File names are lower case letters and
numbers with optional underscores
-
Plugin algorithms
Many users will want to use EIDORS infrastructure to test their
own ideas. EIDORS should support plugging in such new
algorithms or techniques.
It is not obvious to us at this point exactly what features
need to be added. Thus is is likely that some refactoring
of the code will be required as we learn more about users needs.
Please contact the authors with suggestions.
-
Reference algorithms
One of the main goals of EIDORS is to allow people to compare
their new fangled algorithms to those implemented by others.
Unfortunately, the typical approach in this field has been to
compare the new fangled to badly implement versions
of others.
Ideally, EIDORS will make it easy to do the comparison
correctly, if desired.
EIDORS should therefore offer:
1) use of the latest and greatest
algorithms,
and
2) use of specific algorithms corresponding to
specific papers
-
Simple and transparent code-base
EIDORS code is primarily aimed at numerical researchers.
This means EIDORS should be:
− simple. Code should be sufficiently small for
an interested person to learn quite quickly
− command line based. Code should expose it's capabilities
and internal structure for inclusion into other algorithms.
Graphic interface contributions will be accepted, but will
be placed outside of the core.
− modifiable. Many users will want to modify EIDORS
to try their own ideas. This should be reasonably easy
to do.
−
-
Encourage contributions
We want to find ways to encourage people to contibute:
- Bug fixes
- Sample data and meshes
- Demo code and help files
- new reconstruction algorithms
also inproved forward solver (with higher order elements,
BEM-FEM, etc.)
modifications to algorithms (e.g. anisotropic conductivity)
- and meta-algorithms
(e.g. erroneous electrode detection techniques)
- visualization
(e.g. code to export to graphics packages such as mayavi)
-
Define subdirectories cleanly
In order to separate algorithms and details.
-
File format
It would be nice to define a EIT data file format that
would facilitate interchange of data. We would be interested
in receiving any suggestions about what such a data format
would include.
Things to include in the data file are
− Time and date of each data measurement
− Electrode locations / shape & size / contact impedance
− Current & measurement patterns
− The data itself
− Sampling intervals
− Description
It would be convenient to put data into a structure.
-
Licence
The licence for EIDORS is the GPL. Therefore, there are no problems with the following
uses of EIDORS:
- Selling EIT equipment with EIDORS on board, as
long as the source code is available.
- Using EIDORS with proprietary software like Matlab
The following uses of EIDORS are barred by the GPL
- Compiling EIDORS or a derived work and selling
a system wihout access to both EIDORS and the
software it is linked to.
- Rewriting EIDORS in a different language and
distributing it not under the GPL (eg. without source code)
We are currently thinking about the scenario in which an EIT
vendor provides EIDORS (including source) along with a proprietary
add-on, such as a GUI. Email us if you have opinions on this
issue.
|