Giter VIP home page Giter VIP logo

qudi's Introduction

โš  DEPRECATION WARNING

The development of this qudi repository has ceased. We strongly recommend migrating to our new qudi-core project that is actively developed. Framework functionality is now separated from the measurement toolchains. Most features of the old project can be recovered by installing the qudi-core and qudi-iqo-modules packages.

qudi (deprecated)

Qudi is a suite of tools for operating multi-instrument and multi-computer laboratory experiments. Originally built around a confocal fluorescence microscope experiments, it has grown to be a generally applicable framework for controlling experiments.

Features

  • A modular and extendable architecture
  • Access to devices on other computers over network
  • XYZ piezo or galvo control for confocal fluorescence microscopy via National Instruments X-Series devices
  • Position optimization for fluorescent spots
  • Tracking of fluorescent spots
  • Tektronix AWG 5000 7000 and 70000 support for pulsed microwave experiments
  • Anritsu MG37022A, MG3696B and MG3961C, R&S SMIQ and SMR support for ODMR measurements
  • Getting spectra from the WinSpec32 spectroscopy software
  • Thorlabs APT motor control
  • Magnetic field alignment for NV- in diamond via fluorescence, ODMR and nuclear spin
  • etc.

Citation

If you are publishing scientific results, mentioning Qudi in your methods description is the least you can do as good scientific practice. You should cite our paper Qudi: A modular python suite for experiment control and data processing for this purpose.

Documentation

User and code documentation about Qudi is located at http://ulm-iqo.github.io/qudi-generated-docs/html-docs/ .

Continuous integration

Build Status Build status Scrutinizer Code Quality

Collaboration

For development-related questions and discussion, please use the qudi-dev mailing list.

If you just want updates about releases and breaking changes to Qudi without discussion or issue reports, subscribe to the qudi-announce mailing list.

Feel free to add issues and pull requests for improvements on github at https://github.com/Ulm-IQO/qudi .

The code in pull requests should be clean, PEP8-compliant and commented, as with every academic institution in Germany, our resources in the area of software development are quite limited.

Do not expect help, debugging efforts or other support.

License

Almost all parts of Qudi are licensed under GPLv3 (see LICENSE.txt) with the exception of some files that originate from the Jupyter/IPython project. These are under BSD license, check the file headers and the documentation folder.

Check COPYRIGHT.txt for a list of authors and the git history for their individual contributions.

qudi's People

Contributors

a-stark avatar alrik-durand avatar andreafilipovski avatar anjusha-vs avatar bens0n avatar christoph-mueller avatar drogenlied avatar geegee avatar genko8 avatar jochen-scheuer avatar johnjarman avatar kay-jahnke avatar ksenkalla avatar latchr avatar lindneriaf avatar liuyanulm avatar mcarolvillavedra avatar meiwud334 avatar michaelb1886 avatar mvbnano avatar nbeaver avatar neverhorst avatar nicolasstaudenmaier avatar pjvetter avatar quantifiedcode-bot avatar simonschmitt2 avatar timoml avatar tobiasgehring avatar tunden avatar yawghmoth avatar

Stargazers

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

Watchers

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

qudi's Issues

Any module relying on fitlogic will not load properly with lmfit-0.9.1

When Qudi loads with default config, I had the following problem:

Used Qt API: PyQt4 (API v2)
Loading Qudi...
============= Starting Manager configuration from /home/lachlan/physics/code/qudi/config/example/default.cfg =================

============= Manager configuration complete =================

Remote connection not secured! Use a certificate!
Methods were included to FitLogic, but only if naming is right: check the doxygen documentation if you added a new method and it does not show.
TypeError
<_ast.Module object at 0x7f4a5e06f358>
unsupported operand type(s) for *: 'float' and 'NoneType'
Error during activation
Traceback (most recent call last):
File "/home/lachlan/physics/code/qudi/core/base.py", line 157, in _wrap_activation
self.activate()
File "/usr/lib64/python3.4/site-packages/fysom/init.py", line 300, in fn
self.transition()
File "/usr/lib64/python3.4/site-packages/fysom/init.py", line 295, in _tran
self._after_event(e)
File "/usr/lib64/python3.4/site-packages/fysom/init.py", line 326, in _after_event
return getattr(self, fnname)(e)
File "/usr/lib64/python3.4/site-packages/fysom/init.py", line 89, in _callback
return func(obj, *args, **kwargs)
File "/home/lachlan/physics/code/qudi/logic/optimizer_logic.py", line 166, in on_activate
model, params = self._fit_logic.make_gausslinearoffset_model()
File "/home/lachlan/physics/code/qudi/logic/fitmethods/gaussianlikemethods.py", line 153, in make_gausslinearoffset_model
gauss_model, params = self.make_gaussoffset_model(prefix)
File "/home/lachlan/physics/code/qudi/logic/fitmethods/gaussianlikemethods.py", line 127, in make_gaussoffset_model
params = gauss_offset_model.make_params()
File "/usr/lib64/python3.4/site-packages/lmfit/model.py", line 352, in make_params
par = params[name] = Parameter(name=name)
File "/usr/lib64/python3.4/site-packages/lmfit/parameter.py", line 72, in setitem
self.update_constraints()
File "/usr/lib64/python3.4/site-packages/lmfit/parameter.py", line 117, in update_constraints
_update_param(name)
File "/usr/lib64/python3.4/site-packages/lmfit/parameter.py", line 113, in _update_param
self._asteval.symtable[name] = par.value
File "/usr/lib64/python3.4/site-packages/lmfit/parameter.py", line 481, in value
return self._getval()
File "/usr/lib64/python3.4/site-packages/lmfit/parameter.py", line 454, in _getval
check_ast_errors(self._expr_eval)
File "/usr/lib64/python3.4/site-packages/lmfit/parameter.py", line 21, in check_ast_errors
expr_eval.raise_exception(None)
File "/usr/lib64/python3.4/site-packages/lmfit/asteval.py", line 146, in raise_exception
raise exc(self.error_msg)
TypeError: in expr='<_ast.Module object at 0x7f4a5e06f358>'
Task scannerLocationRefocus added!

Pulser hardware "set functions" return values

Migration: trac#72.

Implement all functions in Hardware that set a parameter like "set_sampling_rate()" so that they set the parameter in hardware, ask the hardware afterwards what is set and return this value.
In the logic that calls this function the return value should be taken as current value and not the one that was given as set value.
This will avoid conflicts when the logic wants to set a value that can not be met by the hardware. For example the sample rate of the AWG must be a number that is representable by a division of two integers in a certain range (multiplier and divider of the clock generator), i.e. it can not represent each floating point frequency you enter. This could cause rounding errors.

Crash in confocal while changing color bar

Migration: trac#45.

Fatal Python error: Segmentation fault

Thread 0x000292fc (most recent call first):

File "C:\Anaconda3\lib\site-packages\PyDAQmx\DAQmxFunctions.py", line 24 in mafunction
File "<string>", line 2 in function
File "C:\software\QuDi?\hardware\ni_card.py", line 1008 in _write_scanner_ao
File "C:\software\QuDi?\hardware\ni_card.py", line 1197 in scan_line
File "C:\software\QuDi?\logic\confocal_logic.py", line 479 in _scan_line

Thread 0x0002928c (most recent call first):

File "C:\Anaconda3\lib\site-packages\PyDAQmx\DAQmxFunctions.py", line 24 in mafunction
File "<string>", line 2 in function
File "C:\software\QuDi?\hardware\ni_card.py", line 607 in get_counter
File "C:\software\QuDi?\logic\counter_logic.py", line 363 in countLoopBody_continuous

Thread 0x00029244 (most recent call first):

File "C:\Anaconda3\lib\site-packages\zmq\utils\garbage.py", line 47 in run
File "C:\Anaconda3\lib\threading.py", line 920 in _bootstrap_inner
File "C:\Anaconda3\lib\threading.py", line 888 in _bootstrap

Thread 0x00029224 (most recent call first):

File "C:\Anaconda3\lib\threading.py", line 290 in wait
File "C:\Anaconda3\lib\threading.py", line 553 in wait
File "C:\Anaconda3\lib\site-packages\IPython\core\history.py", line 791 in run
File "C:\Anaconda3\lib\site-packages\IPython\core\history.py", line 68 in needs_sqlite
File "<string>", line 2 in run
File "C:\Anaconda3\lib\threading.py", line 920 in _bootstrap_inner
File "C:\Anaconda3\lib\threading.py", line 888 in _bootstrap

Thread 0x00029204 (most recent call first):

File "C:\Anaconda3\lib\socket.py", line 187 in accept
File "C:\Anaconda3\lib\site-packages\rpyc\utils\server.py", line 128 in accept
File "C:\Anaconda3\lib\site-packages\rpyc\utils\server.py", line 241 in start
File "C:\software\QuDi?\core\remote.py", line 168 in run

Current thread 0x000291fc (most recent call first):

File "C:\software\QuDi?\gui\confocal\confocalgui.py", line 692 in get_xy_cb_range
File "C:\software\QuDi?\gui\confocal\confocalgui.py", line 1418 in refresh_xy_image
File "C:\software\QuDi?\gui\confocal\confocalgui.py", line 1360 in update_xy_cb_range
File "C:\software\QuDi?\gui\confocal\confocalgui.py", line 1343 in shortcut_to_xy_cb_centiles
File "C:\software\QuDi?\core\main.py", line 198 in <module>
File "C:\Anaconda3\lib\runpy.py", line 85 in _run_code
File "C:\Anaconda3\lib\runpy.py", line 170 in _run_module_as_main

High finesse does not represent state of wavemeter accurately

Migration: trac#68.

highfinesse.stop_acquisition() gave a warning about it already being stopped, despite that not being true. Doing highfinesse.start_acquisition() and then repeating the stop command gave no such error.

This seemed to have implications for the remote connection, since problems there disappeared once we had the highfinesse module accurately aware of its state.

Error while refinding POI

Migration: trac#217.

When trying to refind a POI without ticking the option Crosshair follows POI, this error happens

Error Log:

Unexpected error:
ValueError?: operands could not be broadcast together with shapes (3,) (0,)

Traceback (most recent call last):

File "C:\software\qudi\logic\poi_manager_logic.py", line 643, in _refocus_done

    self.go_to_poi(poikey='crosshair')

File "C:\software\qudi\logic\poi_manager_logic.py", line 385, in go_to_poi

    x, y, z = self.get_poi_position(poikey=poikey)

File "C:\software\qudi\logic\poi_manager_logic.py", line 409, in get_poi_position

    return sample_pos + poi_coords

Python crashed after clicking "delete last point" in POI Manager

Migration: trac#210.

2016.06.30 14:06:09

Traceback (most recent call last):

File "C:\software\qudi\logic\poi_manager_logic.py", line 646, in _refocus_done

Fatal Python error: Segmentation fault

Thread 0x00000dac (most recent call first):

File "C:\Anaconda3\envs\qudi\lib\site-packages\pyqtgraph\exceptionHandling.py", line 67 in call

Thread 0x00001590 (most recent call first):

File "C:\Anaconda3\envs\qudi\lib\site-packages\PyDAQmx\DAQmxFunctions.py", line 25 in mafunction
File "<string>", line 2 in function
File "C:\software\qudi\hardware\ni_card.py", line 721 in get_counter
File "C:\software\qudi\logic\counter_logic.py", line 478 in countLoopBody_continuous

Thread 0x00001658 (most recent call first):

File "C:\software\qudi\core\parentpoller.py", line 122 in run
File "C:\Anaconda3\envs\qudi\lib\threading.py", line 911 in _bootstrap_inner
File "C:\Anaconda3\envs\qudi\lib\threading.py", line 879 in _bootstrap

Thread 0x00001450 (most recent call first):

File "C:\Anaconda3\envs\qudi\lib\site-packages\zmq\utils\garbage.py", line 47 in run
File "C:\Anaconda3\envs\qudi\lib\threading.py", line 911 in _bootstrap_inner
File "C:\Anaconda3\envs\qudi\lib\threading.py", line 879 in _bootstrap

Thread 0x00001b3c (most recent call first):

File "C:\Anaconda3\envs\qudi\lib\threading.py", line 290 in wait
File "C:\Anaconda3\envs\qudi\lib\threading.py", line 546 in wait
File "C:\Anaconda3\envs\qudi\lib\site-packages\IPython\core\history.py", line 798 in run
File "C:\Anaconda3\envs\qudi\lib\site-packages\IPython\core\history.py", line 68 in needs_sqlite
File "<decorator-gen-23>", line 2 in run
File "C:\Anaconda3\envs\qudi\lib\threading.py", line 911 in _bootstrap_inner
File "C:\Anaconda3\envs\qudi\lib\threading.py", line 879 in _bootstrap

Thread 0x00001940 (most recent call first):

File "C:\Anaconda3\envs\qudi\lib\socket.py", line 187 in accept
File "C:\Anaconda3\envs\qudi\lib\site-packages\rpyc\utils\server.py", line 128 in accept
File "C:\Anaconda3\envs\qudi\lib\site-packages\rpyc\utils\server.py", line 241 in start
File "C:\software\qudi\core\remote.py", line 184 in run

Current thread 0x000020b8 (most recent call first):

File "C:\Anaconda3\envs\qudi\lib\site-packages\numpy\core\fromnumeric.py", line 48 in _wrapit
File "C:\Anaconda3\envs\qudi\lib\site-packages\numpy\core\fromnumeric.py", line 1733 in clip
File "C:\Anaconda3\envs\qudi\lib\site-packages\pyqtgraph\graphicsItems\ViewBox?\ViewBox?.py", line 642 in suggestPadding
File "C:\Anaconda3\envs\qudi\lib\site-packages\pyqtgraph\graphicsItems\ViewBox?\ViewBox?.py", line 896 in updateAutoRange
File "C:\Anaconda3\envs\qudi\lib\site-packages\pyqtgraph\graphicsItems\ViewBox?\ViewBox?.py", line 298 in prepareForPaint
File "C:\Anaconda3\envs\qudi\lib\site-packages\pyqtgraph\GraphicsScene?\GraphicsScene?.py", line 115 in prepareForPaint
File "C:\Anaconda3\envs\qudi\lib\site-packages\pyqtgraph\widgets\GraphicsView?.py", line 153 in paintEvent
File "C:\software\qudi\core\main.py", line 226 in <module>
File "C:\Anaconda3\envs\qudi\lib\runpy.py", line 85 in _run_code
File "C:\Anaconda3\envs\qudi\lib\runpy.py", line 170 in _run_module_as_main

Unexpected return value 3221225477. Exiting.

Process finished with exit code -1

The "current_loaded_asset" instance variable in the pulser hw modules needs to be properly initialized.

Migration: trac#155.

Currently it is by default set to None regardless if the AWG has already something loaded into its channels prior to firing up the software.
So in the activation of the pulser hardware modules the actually currently loaded asset name needs to be extracted.

This was causing an error when having something loaded on the AWG, then closing the software, opening it again and directly starting a measurement. (complained about not having the asset parameters like number of laser pulses).

Use the status dictionary for status call in aptmotor

Migration: trac#138.

The status dictionary status_code is now fully implemented, containing all the status bits and their descriptions.
There exists also a function (_test_bit) to check, which bit is set in the 32bit status number.
This has to be used and implemented properly in the get_status method, in order to be able to use the full status information.

Implement upload center

Migration: trac#204.

The capability to upload single pre-sampled files (waveform or sequence) from host PC and load them into custom channels (to load "rabi_ch1.wfm" into channel 2 for example).

Problem with pyqtgraph-0.9.10

When trying to start Qudi I got the following problem:

Used Qt API: PyQt4 (API v2)
Loading Qudi...
============= Starting Manager configuration from /home/lachlan/physics/code/qudi/config/example/default.cfg =================

============= Manager configuration complete =================

Remote connection not secured! Use a certificate!
Methods were included to FitLogic, but only if naming is right: check the doxygen documentation if you added a new method and it does not show.
Task scannerLocationRefocus added!
No scanmode defined in config for odmr_logic module.
Falling back to list mode.
Error during activation
Traceback (most recent call last):
File "/home/lachlan/physics/code/qudi/core/base.py", line 157, in _wrap_activation
self.activate()
File "/usr/lib64/python3.4/site-packages/fysom/init.py", line 300, in fn
self.transition()
File "/usr/lib64/python3.4/site-packages/fysom/init.py", line 295, in _tran
self._after_event(e)
File "/usr/lib64/python3.4/site-packages/fysom/init.py", line 326, in _after_event
return getattr(self, fnname)(e)
File "/usr/lib64/python3.4/site-packages/fysom/init.py", line 89, in _callback
return func(obj, *args, **kwargs)
File "/home/lachlan/physics/code/qudi/gui/odmr/odmrgui.py", line 166, in on_activate
symbolSize=7
File "/usr/lib64/python3.4/site-packages/pyqtgraph/graphicsItems/PlotDataItem.py", line 176, in init
self.setData(*args, **kargs)
File "/usr/lib64/python3.4/site-packages/pyqtgraph/graphicsItems/PlotDataItem.py", line 460, in setData
self.updateItems()
File "/usr/lib64/python3.4/site-packages/pyqtgraph/graphicsItems/PlotDataItem.py", line 492, in updateItems
self.scatter.setData(x=x, y=y, **scatterArgs)
File "/usr/lib64/python3.4/site-packages/pyqtgraph/graphicsItems/ScatterPlotItem.py", line 297, in setData
self.addPoints(*args, **kargs)
File "/usr/lib64/python3.4/site-packages/pyqtgraph/graphicsItems/ScatterPlotItem.py", line 398, in addPoints
self.updateSpots(newData)
File "/usr/lib64/python3.4/site-packages/pyqtgraph/graphicsItems/ScatterPlotItem.py", line 553, in updateSpots
self.fragmentAtlas.getAtlas() # generate atlas so source widths are available.
File "/usr/lib64/python3.4/site-packages/pyqtgraph/graphicsItems/ScatterPlotItem.py", line 193, in getAtlas
self.buildAtlas()
File "/usr/lib64/python3.4/site-packages/pyqtgraph/graphicsItems/ScatterPlotItem.py", line 186, in buildAtlas
self.atlasData[x:x+w, y:y+h] = rendered[key]
TypeError: slice indices must be integers or None or have an index method

Implement 2D (eliptical) gaussian in magnet_logic and display the contour lines

Migration: trac#156.

The picture of the magnet alignment is often a asymmetric/elliptical looking like Gaussian distribution (not just a simple 2D gauss with the same extent in all directions).
Most probably the fit already exists (look in the 2D fit which is used in the optimizer).
The matrix is saved in the instance variable _2D_data_matrix.
The fit procedure has to be implemented in the logic as well as the GUI needs the ability to apply that fit and display 2D fit with contour lines together with the scanned image.

Implement a proper return value for on and off method of microwave interface

Migration: trac#211.

Currently the microwave interface has the methods on() and off().
The hardware files, which are using this interface have to output a proper return value, to check whether the device is really on or off. I.e. after turning on the device, one has to ask the state of the device and return a zero, if everything is fine, otherwise a -1 has to be returned with an error message before that.
That will ensure a proper reaction of the Logic on the state of the microwave device.

Support Lightfield for taking spectra

Migration: trac#50.

Princeton Instruments WinSpec32 does not run on 64bit Windows.

We need to see how to get a good deal on the licenses though before putting in too much work.

PSA: Princeton Instruments Lightfield is a blatant attempt at cash grabbing and is much harder to automate than WinSpec32 ever was.

Decouple saving in savelogic via internal signal

Migration: trac#195.

Not feasible right now, we need an interface to specify how we can close plots and how the data to be saved is guarded against changes while the save logic is working on the data in the module wanting to save data.

Offset-anchor optimization technique in POI Manger

Migration: trac#3.

It should be possible to re-optimize the alignment on a chosen POI by algorithmically going to a different POI and finding the current sample position. This would allow a POI to be tracked even when it is in a local fluorescence environment that is not suitable for direct optimization.

separate ensemble and sequence generation in predefined methods the

Migration: trac#216.

The predefined methods have a generation method and an upload method, which is connected to the generation and upload of only pulse block ensembles! In order to use pulse sequence generation, one needs either a separate file, where the sequence creation methods are present, or the functions, which builds dynamically the creation methods in the GUI, have to distinguish between ensemble creation and sequence creation (to my mind, that can only be done by names, i.e. attaching a suffix like _seq to the generation method.)

Debug sampling of Pulse_Sequence objects.

Migration: trac#199.

After merging of the branches the Pulse_Sequence sampling methods are outdated. Step through the process and make it work properly. Take the sample_pulse_block_ensemble method as example. The conventions used there (channel identification etc.) are a good starting point.
This is mainly concerning sequence_generator_logic.py and samples_write_methods.py.

Works with current version after commit 80a1811 but is still written in a not very good way.

Automatically write sample shift to file

Migration: trac#161.

Write sample shift data to file in real-time, so that it is logged even if qudi crashes or is closed without remembering to save this information.

It is probably important to split the shift data into sensible chunks (ie, start new file when New ROI is clicked).

Get constraints in pulser should get config

Migration: trac#119

The get_constraints method should contain configuration entries and not hard coded constraints. The constraints must be taken from the config of the hardware module.

pulsed: Enhance the usage of channels in the predefined methods

Migration: trac#113.

The predefined methods are using a maybe not convenient way of selection the current channel.
In order to avoid of having for each parameter two integer inputs to set the channel for a parameter (e.g. in rabi mw can be on analog channel 1,2,... or digital channel 1,2,.. which is the same case for laser, sequence trigger, laser trigger,...)
the following idea way used:
-1 = ach1, -2 =ach2 ,... 1 = dch1, 2=dch2, ...

No negativ numbers for analog channels, positiv numbers for digital channels. That is right now a work around to avoid the number of channels to explode and to avoid of having an overhead in extra configuration of the channel map specifically for the gui (which I think is really an overhead).
Right now a general list cannot be set, since the number of channels is setup specific.

Get Confocal Image does not get the image bounds correctly the first time

Migration: trac#42.

Steps to reproduce:

  • Make confocal scan.
  • Open PoiManager, the confocal image is loaded automatically.
  • Make a new scan with different ranges.
  • Click Get Confocal Image. The image data updates, but the position does not.
  • Click Get Confocal Image again. Now the position of the scan is updated correctly.

Linux install not working

I have tried to install and launch Qudi on my Linux machine, but have run in to a problem. I installed the lists of dependencies in the tools folders (though this should be audited, do I really need SVN and devscripts to make Qudi work?). I generally prefer to use Anaconda distros of python but I went through and checked I had all of the packages listed installed. However, when I try to run the start.py script I get the below error.

Kernel version: Linux skaiser-XPS-15 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Error message from start.py:

skaiser@skaiser-XPS-15:~/git/qudi$ python start.py 
Used Qt API: PyQt4 (API v2)
Loading Qudi...
GLib-GIO-Message: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.

(python:918): Gtk-WARNING **: GModule (/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so) initialization check failed: GLib version too old (micro mismatch)

(python:918): Gtk-WARNING **: Loading IM context type 'ibus' failed

(python:918): Gtk-WARNING **: GModule (/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so) initialization check failed: GLib version too old (micro mismatch)

(python:918): Gtk-WARNING **: Loading IM context type 'ibus' failed

(python:918): Gtk-WARNING **: GModule (/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so) initialization check failed: GLib version too old (micro mismatch)

(python:918): Gtk-WARNING **: Loading IM context type 'ibus' failed
Traceback (most recent call last):
  File "/home/skaiser/anaconda3/lib/python3.5/runpy.py", line 184, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/skaiser/anaconda3/lib/python3.5/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/skaiser/git/qudi/core/__main__.py", line 214, in <module>
    from .manager import Manager
  File "/home/skaiser/git/qudi/core/manager.py", line 36, in <module>
    from . import config
  File "/home/skaiser/git/qudi/core/config.py", line 38, in <module>
    import ruamel.yaml as yaml
ImportError: No module named 'ruamel'
Unexpected return value 1. Exiting.

I looked up this yaml loader and I do have the package that it comes from (PyYAML which was not a listed dependency).

nb: I have gotten this installed on my windows machine but I wont have many windows machines in the lab.

Rethink the Pulse_Sequence class and adjust accordingly

Migration: trac#200.

The Pulse_Sequence objects are currently much more complicated than they need to be. Think of what's the basic infomation that needs to be in this object and create corresponding attributes for that. (Instead of a params dictionary) Therefore we need to figure out what's the common parameter set for all AWGs (and DTG) to describe a sequence.

Add Double gaussian with fixed splitting to odmr fit functions

Migration: trac#140.

The double gaussian with a fixed splitting is not working so I removed it from the available fit functions. This function needs a value which should be changable in the gui. Until now there are no fit settings so this value can not be set.

Confocal image rotation is really bad UI design

Migration: trac#30.

The buttons are disabled right now because the feature is misleading to the point of being dangerous.
Either remove the feature or also rotate the axes on the plot and the focus cursor.

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.