Skip to content
Snippets Groups Projects
Commit 4725e6cf authored by Jan Caron's avatar Jan Caron
Browse files

Added fieldconverter module!

fieldconverter: methods to convert M to A to B
magdata: a bit more parameters for quiver_plot3d(), added contour_plot3d()
phasemapper: pm() extended for different projections (not just simple)
kernel: u and v switched (now named after the unit magnetization direction, which makes much more sense)
parent b778becb
No related branches found
No related tags found
No related merge requests found
......@@ -5,53 +5,18 @@
<option name="ANALYSIS_IN_BACKGROUND" value="true" />
</component>
<component name="ChangeListManager">
<list default="true" id="990252ab-aff5-4ac2-a857-b193d2c46b18" name="Default" comment="Commit after Reformatting with PyCharms!">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/scopes/__c.xml" />
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/scopes/__init__.xml" />
<change type="DELETED" beforePath="$PROJECT_DIR$/pyramid/template.x3d" afterPath="" />
<change type="DELETED" beforePath="$PROJECT_DIR$/pyramid/tests/pep8_log.txt" afterPath="" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/Pyramid.iml" afterPath="$PROJECT_DIR$/.idea/Pyramid.iml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" />
<list default="true" id="990252ab-aff5-4ac2-a857-b193d2c46b18" name="Default" comment="Added fieldconverter module!&#10;fieldconverter: methods to convert M to A to B&#10;magdata: a bit more parameters for quiver_plot3d(), added contour_plot3d()&#10;phasemapper: pm() extended for different projections (not just simple)&#10;kernel: u and v switched (now named after the unit magnetization direction, which makes much more sense)">
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/pyramid/fieldconverter.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_kernel/ref_u_fft.npy" afterPath="$PROJECT_DIR$/pyramid/tests/test_kernel/ref_u_fft.npy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_kernel/ref_v_fft.npy" afterPath="$PROJECT_DIR$/pyramid/tests/test_kernel/ref_v_fft.npy" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/docs/Makefile" afterPath="$PROJECT_DIR$/docs/Makefile" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/docs/conf.py" afterPath="$PROJECT_DIR$/docs/conf.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/docs/index.rst" afterPath="$PROJECT_DIR$/docs/index.rst" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/docs/make.bat" afterPath="$PROJECT_DIR$/docs/make.bat" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/docs/pyramid.rst" afterPath="$PROJECT_DIR$/docs/pyramid.rst" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/__init__.py" afterPath="$PROJECT_DIR$/pyramid/__init__.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/analytic.py" afterPath="$PROJECT_DIR$/pyramid/analytic.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/colormap.py" afterPath="$PROJECT_DIR$/pyramid/colormap.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/config.py" afterPath="$PROJECT_DIR$/pyramid/config.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/costfunction.py" afterPath="$PROJECT_DIR$/pyramid/costfunction.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/dataset.py" afterPath="$PROJECT_DIR$/pyramid/dataset.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/diagnostics.py" afterPath="$PROJECT_DIR$/pyramid/diagnostics.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/fft.py" afterPath="$PROJECT_DIR$/pyramid/fft.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/forwardmodel.py" afterPath="$PROJECT_DIR$/pyramid/forwardmodel.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/kernel.py" afterPath="$PROJECT_DIR$/pyramid/kernel.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/magcreator.py" afterPath="$PROJECT_DIR$/pyramid/magcreator.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/magdata.py" afterPath="$PROJECT_DIR$/pyramid/magdata.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/phasemap.py" afterPath="$PROJECT_DIR$/pyramid/phasemap.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/phasemapper.py" afterPath="$PROJECT_DIR$/pyramid/phasemapper.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/projector.py" afterPath="$PROJECT_DIR$/pyramid/projector.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/quaternion.py" afterPath="$PROJECT_DIR$/pyramid/quaternion.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/ramp.py" afterPath="$PROJECT_DIR$/pyramid/ramp.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/reconstruction.py" afterPath="$PROJECT_DIR$/pyramid/reconstruction.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/regularisator.py" afterPath="$PROJECT_DIR$/pyramid/regularisator.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_analytic.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_analytic.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_costfunction.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_costfunction.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_dataset.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_dataset.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_forwardmodel.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_forwardmodel.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_kernel.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_kernel.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_magcreator.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_magcreator.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_magdata.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_magdata.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_phasemap.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_phasemap.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_phasemapper.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_phasemapper.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_projector.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_projector.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/tests/test_regularisator.py" afterPath="$PROJECT_DIR$/pyramid/tests/test_regularisator.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/pyramid/version.py" afterPath="$PROJECT_DIR$/pyramid/version.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/scripts/gui/mag_slicer.py" afterPath="$PROJECT_DIR$/scripts/gui/mag_slicer.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/scripts/reconstruction/reconstruction_3d_from_magdata.py" afterPath="$PROJECT_DIR$/scripts/reconstruction/reconstruction_3d_from_magdata.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/setup.py" afterPath="$PROJECT_DIR$/setup.py" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/scripts/phasemap/phasemap_tilt_series.py" afterPath="$PROJECT_DIR$/scripts/phasemap/phasemap_tilt_series.py" />
</list>
<ignored path="Pyramid.iws" />
<ignored path=".idea/workspace.xml" />
......@@ -75,7 +40,185 @@
<favorites_list name="Pyramid" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="magcreator.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/magcreator.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="16" column="3" selection-start-line="4" selection-start-column="0" selection-end-line="16" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="projector.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/projector.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="608" column="51" selection-start-line="608" selection-start-column="8" selection-end-line="608" selection-end-column="51" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="phasemapper.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/phasemapper.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-8.666667">
<caret line="332" column="51" selection-start-line="332" selection-start-column="51" selection-end-line="332" selection-end-column="51" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="test_kernel.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_kernel.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="26" column="0" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="mag_slicer.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/scripts/gui/mag_slicer.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="223" column="57" selection-start-line="223" selection-start-column="57" selection-end-line="223" selection-end-column="57" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="phasemap_creator.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/scripts/gui/phasemap_creator.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="11" column="10" selection-start-line="11" selection-start-column="10" selection-end-line="11" selection-end-column="10" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="fft.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/fft.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="296" column="15" selection-start-line="296" selection-start-column="15" selection-end-line="296" selection-end-column="28" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="kernel.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/kernel.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="95" column="34" selection-start-line="95" selection-start-column="34" selection-end-line="95" selection-end-column="34" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="phasemap_tilt_series.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/scripts/phasemap/phasemap_tilt_series.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="40" column="16" selection-start-line="40" selection-start-column="16" selection-end-line="40" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="dataset.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/dataset.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="157" column="8" selection-start-line="157" selection-start-column="8" selection-end-line="157" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="reconstruction.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/reconstruction.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="46" column="27" selection-start-line="46" selection-start-column="27" selection-end-line="46" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="reconstruction_3d_from_magdata.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/scripts/reconstruction/reconstruction_3d_from_magdata.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="11" column="0" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="76" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Untitled.py" pinned="false" current-in-tab="false">
<entry file="file://$USER_HOME$/Downloads/Untitled.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="44" column="40" selection-start-line="44" selection-start-column="40" selection-end-line="44" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="phasemap.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/phasemap.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="781" column="8" selection-start-line="781" selection-start-column="8" selection-end-line="781" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="magdata.py" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/pyramid/magdata.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.62133646">
<caret line="879" column="31" selection-start-line="879" selection-start-column="31" selection-end-line="879" selection-end-column="31" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="90" column="38" selection-start-line="90" selection-start-column="38" selection-end-line="90" selection-end-column="38" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="config.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pyramid/config.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="14" column="4" selection-start-line="14" selection-start-column="4" selection-end-line="14" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Python Script" />
</list>
</option>
</component>
<component name="HgUpdateConfigurationSettings">
<option name="updateType" value="MERGE" />
......@@ -93,27 +236,21 @@
<option value="$PROJECT_DIR$/pyramid/numcore/__init__.py" />
<option value="$PROJECT_DIR$/../HyperSpy/hyperspy/_signals/phase_image.py" />
<option value="$PROJECT_DIR$/../HyperSpy/hyperspy/signals.py" />
<option value="$PROJECT_DIR$/scripts/gui/mag_slicer.py" />
<option value="$PROJECT_DIR$/pyramid/costfunction.py" />
<option value="$PROJECT_DIR$/pyramid/projector.py" />
<option value="$PROJECT_DIR$/pyramid/reconstruction.py" />
<option value="$PROJECT_DIR$/pyramid/regularisator.py" />
<option value="$PROJECT_DIR$/pyramid/dataset.py" />
<option value="$PROJECT_DIR$/pyramid/kernel.py" />
<option value="$PROJECT_DIR$/docs/index.rst" />
<option value="$PROJECT_DIR$/docs/pyramid.rst" />
<option value="$PROJECT_DIR$/pyramid/colormap.py" />
<option value="$PROJECT_DIR$/pyramid/ramp.py" />
<option value="$PROJECT_DIR$/docs/conf.py" />
<option value="$PROJECT_DIR$/pyramid/magcreator.py" />
<option value="$PROJECT_DIR$/pyramid/phasemap.py" />
<option value="$PROJECT_DIR$/pyramid/quaternion.py" />
<option value="$PROJECT_DIR$/scripts/reconstruction/reconstruction_3d_from_magdata.py" />
<option value="$PROJECT_DIR$/pyramid/forwardmodel.py" />
<option value="$PROJECT_DIR$/pyramid/magdata.py" />
<option value="$PROJECT_DIR$/pyramid/diagnostics.py" />
<option value="$PROJECT_DIR$/pyramid/fft.py" />
<option value="$PROJECT_DIR$/pyramid/phasemapper.py" />
<option value="$PROJECT_DIR$/pyramid/version.py" />
<option value="$PROJECT_DIR$/setup.py" />
<option value="$PROJECT_DIR$/pyramid/tests/test_dataset.py" />
......@@ -129,7 +266,15 @@
<option value="$PROJECT_DIR$/pyramid/tests/test_analytic.py" />
<option value="$PROJECT_DIR$/pyramid/config.py" />
<option value="$PROJECT_DIR$/pyramid/analytic.py" />
<option value="$PROJECT_DIR$/pyramid/magcreator.py" />
<option value="$USER_HOME$/Downloads/Untitled.py" />
<option value="$PROJECT_DIR$/pyramid/__init__.py" />
<option value="$PROJECT_DIR$/pyramid/phasemap.py" />
<option value="$PROJECT_DIR$/scripts/gui/mag_slicer.py" />
<option value="$PROJECT_DIR$/pyramid/fieldconverter.py" />
<option value="$PROJECT_DIR$/pyramid/phasemapper.py" />
<option value="$PROJECT_DIR$/pyramid/kernel.py" />
<option value="$PROJECT_DIR$/pyramid/magdata.py" />
</list>
</option>
</component>
......@@ -142,8 +287,8 @@
<component name="ProjectFrameBounds">
<option name="x" value="-8" />
<option name="y" value="-8" />
<option name="width" value="1616" />
<option name="height" value="876" />
<option name="width" value="1936" />
<option name="height" value="1056" />
</component>
<component name="ProjectInspectionProfilesVisibleTreeState">
<entry key="Project Default">
......@@ -195,7 +340,34 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scratches" />
<pane id="Scope">
<subPane subId="Changed Files">
<PATH>
<PATH_ELEMENT USER_OBJECT="Root">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="Pyramid">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT USER_OBJECT="Root">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="Pyramid">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="pyramid">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="ProjectPane">
<subPane>
<PATH>
......@@ -256,40 +428,31 @@
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="pyramid" />
<option name="myItemId" value="scripts" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope">
<subPane subId="Changed Files">
<PATH>
<PATH_ELEMENT USER_OBJECT="Root">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="Pyramid">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
<PATH_ELEMENT>
<option name="myItemId" value="gui" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT USER_OBJECT="Root">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
<PATH_ELEMENT>
<option name="myItemId" value="Pyramid" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="Pyramid">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
<PATH_ELEMENT>
<option name="myItemId" value="Pyramid" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="pyramid">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
<PATH_ELEMENT>
<option name="myItemId" value="pyramid" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scratches" />
<pane id="ColorIdeProjectViewPane">
<subPane>
<PATH>
......@@ -313,7 +476,7 @@
</panes>
</component>
<component name="PropertiesComponent">
<property name="settings.editor.selected.configurable" value="preferences.sourceCode.Python" />
<property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors.Debugger" />
<property name="settings.editor.splitter.proportion" value="0.2" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/docs/_build" />
<property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_flatWidth0" value="44" />
......@@ -333,11 +496,17 @@
<property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_treeWidth3" value="306" />
<property name="FileHistory.org.zmlx.hg4idea.provider.HgHistoryProvider_treeOrder3" value="3" />
<property name="last.edited.regexp" value="asdf&#10;aasfasf.version_info&#10;" />
<property name="restartRequiresConfirmation" value="false" />
</component>
<component name="Push.Settings">
<excluded-roots>
<path value="$PROJECT_DIR$/../HyperSpy" />
</excluded-roots>
</component>
<component name="PyConsoleOptionsProvider">
<option name="myPythonConsoleState">
<console-settings custom-start-script="from __future__ import division&#10;import sys&#10;import os&#10;import pdb&#10;import hyperspy.api as hs&#10;import pyramid&#10;from pyramid import *&#10;import pyramid.analytic as an&#10;import pyramid.magcreator as mc&#10;import pyramid.reconstruction as rc&#10;import jutil&#10;import numpy as np&#10;import scipy as sp&#10;import matplotlib as mpl&#10;import matplotlib.pyplot as plt&#10;from pylab import *&#10;ion() # Enable Matplotlib's interactive mode&#10;sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])" module-name="Pyramid" is-module-sdk="true" working-directory="$PROJECT_DIR$/files/magdata">
<option name="myCustomStartScript" value="from __future__ import division&#10;import sys&#10;import os&#10;import pdb&#10;import hyperspy.api as hs&#10;import pyramid&#10;from pyramid import *&#10;import pyramid.analytic as an&#10;import pyramid.magcreator as mc&#10;import pyramid.reconstruction as rc&#10;import jutil&#10;import numpy as np&#10;import scipy as sp&#10;import matplotlib as mpl&#10;import matplotlib.pyplot as plt&#10;from pylab import *&#10;ion() # Enable Matplotlib's interactive mode&#10;sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])" />
<console-settings custom-start-script="# coding: utf-8&#10;&quot;&quot;&quot;Startup!&quot;&quot;&quot;&#10;from __future__ import division&#10;import sys&#10;import os&#10;import pdb&#10;import hyperspy.api as hs&#10;import pyramid&#10;from pyramid import *&#10;import pyramid.analytic as an&#10;import pyramid.magcreator as mc&#10;import pyramid.reconstruction as rc&#10;import jutil&#10;import numpy as np&#10;import scipy as sp&#10;import matplotlib as mpl&#10;import matplotlib.pyplot as plt&#10;from pylab import *&#10;import logging.config&#10;logging.config.fileConfig(LOGGING_CONFIG, disable_existing_loggers=False)&#10;ion() # Enable Matplotlib's interactive mode&#10;sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])&#10;" module-name="Pyramid" is-module-sdk="true" working-directory="$PROJECT_DIR$/files/magdata">
<option name="myCustomStartScript" value="# coding: utf-8&#10;&quot;&quot;&quot;Startup!&quot;&quot;&quot;&#10;from __future__ import division&#10;import sys&#10;import os&#10;import pdb&#10;import hyperspy.api as hs&#10;import pyramid&#10;from pyramid import *&#10;import pyramid.analytic as an&#10;import pyramid.magcreator as mc&#10;import pyramid.reconstruction as rc&#10;import jutil&#10;import numpy as np&#10;import scipy as sp&#10;import matplotlib as mpl&#10;import matplotlib.pyplot as plt&#10;from pylab import *&#10;import logging.config&#10;logging.config.fileConfig(LOGGING_CONFIG, disable_existing_loggers=False)&#10;ion() # Enable Matplotlib's interactive mode&#10;sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])&#10;" />
<option name="myUseModuleSdk" value="true" />
<option name="myModuleName" value="Pyramid" />
<option name="myWorkingDirectory" value="$PROJECT_DIR$/files/magdata" />
......@@ -354,24 +523,7 @@
</key>
</component>
<component name="RunManager" selected="Python tests.Pyramid Tests">
<configuration default="false" name="mag_slicer" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/scripts/gui" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="Pyramid" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/scripts/gui/mag_slicer.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="true" />
<method />
</configuration>
<configuration default="false" name="phasemap" type="PythonConfigurationType" factoryName="Python" temporary="true">
<configuration default="false" name="magdata" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
......@@ -383,58 +535,41 @@
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="Pyramid" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/pyramid/phasemap.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/pyramid/magdata.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="true" />
<method />
</configuration>
<configuration default="false" name="reconstruction_3d_from_magdata" type="PythonConfigurationType" factoryName="Python" temporary="true">
<configuration default="false" name="setup" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="C:\Anaconda2\python.exe" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/scripts/reconstruction" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="Script-Vault" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/scripts/reconstruction/reconstruction_3d_from_magdata.py" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/setup.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="true" />
<method />
</configuration>
<configuration default="false" name="fft" type="PythonConfigurationType" factoryName="Python" temporary="true">
<configuration default="false" name="Untitled" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="C:\Anaconda2\python.exe" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/pyramid" />
<option name="IS_MODULE_SDK" value="true" />
<option name="WORKING_DIRECTORY" value="$USER_HOME$/Downloads" />
<option name="IS_MODULE_SDK" value="false" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="Pyramid" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/pyramid/fft.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="true" />
<method />
</configuration>
<configuration default="false" name="setup" type="PythonConfigurationType" factoryName="Python" temporary="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="C:\Anaconda2\python.exe" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="Script-Vault" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/setup.py" />
<option name="SCRIPT_NAME" value="$USER_HOME$/Downloads/Untitled.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="true" />
<method />
......@@ -581,6 +716,40 @@
<option name="USE_KEYWORD" value="false" />
<method />
</configuration>
<configuration default="false" name="mag_slicer" type="PythonConfigurationType" factoryName="Python">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="C:\Anaconda2\python.exe" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/scripts/gui" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="Script-Vault" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/scripts/gui/mag_slicer.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="true" />
<method />
</configuration>
<configuration default="false" name="fieldconverter" type="PythonConfigurationType" factoryName="Python" singleton="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/pyramid" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<module name="Pyramid" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/pyramid/fieldconverter.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="true" />
<method />
</configuration>
<configuration default="false" name="Pyramid Sphinx" type="docs" factoryName="Sphinx task" singleton="true">
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
......@@ -620,21 +789,19 @@
<method />
</configuration>
<list size="7">
<item index="0" class="java.lang.String" itemvalue="Python docs.Pyramid Sphinx" />
<item index="1" class="java.lang.String" itemvalue="Python tests.Pyramid Tests" />
<item index="2" class="java.lang.String" itemvalue="Python.mag_slicer" />
<item index="3" class="java.lang.String" itemvalue="Python.phasemap" />
<item index="4" class="java.lang.String" itemvalue="Python.reconstruction_3d_from_magdata" />
<item index="5" class="java.lang.String" itemvalue="Python.fft" />
<item index="6" class="java.lang.String" itemvalue="Python.setup" />
<item index="0" class="java.lang.String" itemvalue="Python.mag_slicer" />
<item index="1" class="java.lang.String" itemvalue="Python.fieldconverter" />
<item index="2" class="java.lang.String" itemvalue="Python docs.Pyramid Sphinx" />
<item index="3" class="java.lang.String" itemvalue="Python tests.Pyramid Tests" />
<item index="4" class="java.lang.String" itemvalue="Python.magdata" />
<item index="5" class="java.lang.String" itemvalue="Python.setup" />
<item index="6" class="java.lang.String" itemvalue="Python.Untitled" />
</list>
<recent_temporary>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="Python.setup" />
<item index="1" class="java.lang.String" itemvalue="Python.fft" />
<item index="2" class="java.lang.String" itemvalue="Python.reconstruction_3d_from_magdata" />
<item index="3" class="java.lang.String" itemvalue="Python.phasemap" />
<item index="4" class="java.lang.String" itemvalue="Python.mag_slicer" />
<list size="3">
<item index="0" class="java.lang.String" itemvalue="Python.magdata" />
<item index="1" class="java.lang.String" itemvalue="Python.Untitled" />
<item index="2" class="java.lang.String" itemvalue="Python.setup" />
</list>
</recent_temporary>
</component>
......@@ -695,38 +862,44 @@
<option name="project" value="LOCAL" />
<updated>1456209518394</updated>
</task>
<option name="localTasksCounter" value="8" />
<task id="LOCAL-00008" summary="Commit after Reformatting with PyCharms!">
<created>1456703900364</created>
<option name="number" value="00008" />
<option name="project" value="LOCAL" />
<updated>1456703900364</updated>
</task>
<option name="localTasksCounter" value="9" />
<servers />
</component>
<component name="TestHistory">
<history-entry file="Pyramid_Tests - 2016.02.25 at 12h 10m 06s.xml">
<history-entry file="Pyramid_Tests - 2016.02.28 at 23h 13m 11s.xml">
<configuration name="Pyramid Tests" configurationId="tests" />
</history-entry>
<history-entry file="Pyramid_Tests - 2016.02.25 at 12h 11m 44s.xml">
<history-entry file="Pyramid_Tests - 2016.02.28 at 23h 56m 53s.xml">
<configuration name="Pyramid Tests" configurationId="tests" />
</history-entry>
<history-entry file="Pyramid_Tests - 2016.02.25 at 12h 11m 50s.xml">
<history-entry file="Pyramid_Tests - 2016.02.29 at 00h 18m 56s.xml">
<configuration name="Pyramid Tests" configurationId="tests" />
</history-entry>
<history-entry file="Pyramid_Tests - 2016.02.26 at 16h 08m 01s.xml">
<history-entry file="Pyramid_Tests - 2016.02.29 at 00h 21m 13s.xml">
<configuration name="Pyramid Tests" configurationId="tests" />
</history-entry>
<history-entry file="Pyramid_Tests - 2016.02.28 at 23h 04m 43s.xml">
<history-entry file="Pyramid_Tests - 2016.03.04 at 11h 28m 50s.xml">
<configuration name="Pyramid Tests" configurationId="tests" />
</history-entry>
<history-entry file="Pyramid_Tests - 2016.02.28 at 23h 09m 16s.xml">
<history-entry file="Pyramid_Tests - 2016.03.04 at 12h 53m 22s.xml">
<configuration name="Pyramid Tests" configurationId="tests" />
</history-entry>
<history-entry file="Pyramid_Tests - 2016.02.28 at 23h 13m 11s.xml">
<history-entry file="Pyramid_Tests - 2016.03.04 at 12h 55m 39s.xml">
<configuration name="Pyramid Tests" configurationId="tests" />
</history-entry>
<history-entry file="Pyramid_Tests - 2016.02.28 at 23h 56m 53s.xml">
<history-entry file="Pyramid_Tests - 2016.03.04 at 12h 56m 18s.xml">
<configuration name="Pyramid Tests" configurationId="tests" />
</history-entry>
<history-entry file="Pyramid_Tests - 2016.02.29 at 00h 18m 56s.xml">
<history-entry file="Pyramid_Tests - 2016.03.04 at 12h 56m 40s.xml">
<configuration name="Pyramid Tests" configurationId="tests" />
</history-entry>
<history-entry file="Pyramid_Tests - 2016.02.29 at 00h 21m 13s.xml">
<history-entry file="Pyramid_Tests - 2016.03.04 at 12h 56m 47s.xml">
<configuration name="Pyramid Tests" configurationId="tests" />
</history-entry>
</component>
......@@ -740,27 +913,27 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1616" height="876" extended-state="6" />
<editor active="false" />
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="TODO" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.40616965" sideWeight="0.49746513" order="9" side_tool="false" content_ui="tabs" x="-33" y="355" width="1594" height="283" />
<window_info id="Messages" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33290488" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.13859275" sideWeight="0.49186993" order="0" side_tool="false" content_ui="combo" />
<window_info id="TODO" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.40565032" sideWeight="0.49746513" order="9" side_tool="false" content_ui="tabs" x="-33" y="355" width="1594" height="283" />
<window_info id="Messages" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3326226" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.42866325" sideWeight="0.50253487" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37596402" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.51349616" sideWeight="0.49746513" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Python Console" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.36620468" sideWeight="0.49746513" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4415167" sideWeight="0.49746513" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.41773778" sideWeight="0.49746513" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37739873" sideWeight="0.49746513" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.1108742" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.43316194" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.18508998" sideWeight="0.49186993" order="0" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.41791046" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.087403595" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.4224" sideWeight="0.5081301" order="11" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.40565032" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.30398458" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.37596402" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Thumbnails" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="WINDOWED" visible="false" show_stripe_button="false" weight="0.3708108" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" x="6" y="307" width="1908" height="381" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.34254497" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
</layout>
</component>
......@@ -790,7 +963,8 @@
<MESSAGE value="Hopefully made hyperspy import (now at beginning of pyramid package) work!&#10;Added PyCharm files!&#10;Commit before Reformatting with PyCharms!" />
<MESSAGE value="New branch: new signals for holographic analysis!" />
<MESSAGE value="Commit after Reformatting with PyCharms!" />
<option name="LAST_COMMIT_MESSAGE" value="Commit after Reformatting with PyCharms!" />
<MESSAGE value="Added fieldconverter module!&#10;fieldconverter: methods to convert M to A to B&#10;magdata: a bit more parameters for quiver_plot3d(), added contour_plot3d()&#10;phasemapper: pm() extended for different projections (not just simple)&#10;kernel: u and v switched (now named after the unit magnetization direction, which makes much more sense)" />
<option name="LAST_COMMIT_MESSAGE" value="Added fieldconverter module!&#10;fieldconverter: methods to convert M to A to B&#10;magdata: a bit more parameters for quiver_plot3d(), added contour_plot3d()&#10;phasemapper: pm() extended for different projections (not just simple)&#10;kernel: u and v switched (now named after the unit magnetization direction, which makes much more sense)" />
<option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="true" />
<option name="REARRANGE_BEFORE_PROJECT_COMMIT" value="true" />
<option name="CHANGE_BROWSER_SETTINGS">
......@@ -818,401 +992,388 @@
<breakpoints-dialog>
<breakpoints-dialog />
</breakpoints-dialog>
<option name="time" value="23" />
<default-breakpoints>
<breakpoint type="python-exception">
<properties notifyOnTerminate="true" exception="BaseException">
<option name="notifyOnTerminate" value="true" />
</properties>
</breakpoint>
</default-breakpoints>
<option name="time" value="51" />
</breakpoint-manager>
<watches-manager>
<configuration name="PythonConfigurationType">
<watch expression="result.shape" />
<watch expression="recv.shape" />
<watch expression="sub_vec.shape" />
</configuration>
</watches-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/../HyperSpy/hyperspy/io.py">
<entry file="file://$PROJECT_DIR$/docs/make.bat">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.28687415">
<caret line="342" column="54" selection-start-line="342" selection-start-column="54" selection-end-line="342" selection-end-column="54" />
<folding />
<state vertical-scroll-proportion="-1.9860919">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://C:/Anaconda2/Lib/site-packages/numpy/__init__.py">
<entry file="file://$PROJECT_DIR$/docs/_static/sphinxdoc.css">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.20457019">
<caret line="191" column="23" selection-start-line="191" selection-start-column="23" selection-end-line="191" selection-end-column="23" />
<state vertical-scroll-proportion="-0.9221141">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../../Notebooks/Current Line/Current line.ipynb">
<provider selected="true" editor-type-id="ipnb-editor">
<state>
<selected id="5" />
<entry file="file://$PROJECT_DIR$/docs/pyramid.numcore.rst">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.21279556">
<caret line="9" column="0" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://C:/Anaconda2/Lib/site-packages/pyface/qt/__init__.py">
<entry file="file://$PROJECT_DIR$/pyramid/ramp.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.36806494">
<caret line="16" column="0" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
<state vertical-scroll-proportion="0.29310346">
<caret line="47" column="26" selection-start-line="47" selection-start-column="26" selection-end-line="47" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/regularisator.py">
<entry file="file://$PROJECT_DIR$/docs/pyramid.rst">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="5.8132186">
<caret line="238" column="0" selection-start-line="238" selection-start-column="0" selection-end-line="238" selection-end-column="0" />
<state vertical-scroll-proportion="0.6091954">
<caret line="136" column="22" selection-start-line="136" selection-start-column="22" selection-end-line="136" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/reconstruction.py">
<entry file="file://$PROJECT_DIR$/docs/index.rst">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.64511496">
<caret line="28" column="0" selection-start-line="28" selection-start-column="0" selection-end-line="28" selection-end-column="0" />
<state vertical-scroll-proportion="0.31752872">
<caret line="13" column="10" selection-start-line="13" selection-start-column="10" selection-end-line="13" selection-end-column="10" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/costfunction.py">
<entry file="file://$PROJECT_DIR$/docs/conf.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.24425288">
<caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
<state vertical-scroll-proportion="0.38793105">
<caret line="33" column="20" selection-start-line="33" selection-start-column="16" selection-end-line="33" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/projector.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="16.09064">
<caret line="637" column="34" selection-start-line="637" selection-start-column="34" selection-end-line="637" selection-end-column="34" />
</state>
<entry file="file://$PROJECT_DIR$/docs/icon.ico">
<provider selected="true" editor-type-id="images">
<state />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/Makefile">
<entry file="file://$PROJECT_DIR$/pyramid/colormap.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state vertical-scroll-proportion="0.42407808">
<caret line="23" column="9" selection-start-line="23" selection-start-column="9" selection-end-line="23" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/make.bat">
<entry file="file://$PROJECT_DIR$/pyramid/quaternion.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.9860919">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state vertical-scroll-proportion="0.5021692">
<caret line="119" column="24" selection-start-line="119" selection-start-column="24" selection-end-line="119" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/_static/sphinxdoc.css">
<entry file="file://$PROJECT_DIR$/pyramid/logging.ini">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-0.9221141">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state vertical-scroll-proportion="0.59002167">
<caret line="32" column="13" selection-start-line="32" selection-start-column="13" selection-end-line="32" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/pyramid.numcore.rst">
<entry file="file://$PROJECT_DIR$/docs/_build/_static/underscore-1.3.1.js">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.21279556">
<caret line="9" column="0" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
<state vertical-scroll-proportion="0.3329718">
<caret line="94" column="55" selection-start-line="94" selection-start-column="55" selection-end-line="94" selection-end-column="55" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/ramp.py">
<entry file="file://$PROJECT_DIR$/scripts/reconstruction/reconstruction_2d_from_phasemap.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.29310346">
<caret line="47" column="26" selection-start-line="47" selection-start-column="26" selection-end-line="47" selection-end-column="26" />
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/pyramid.rst">
<entry file="file://$PROJECT_DIR$/pyramid/diagnostics.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.6091954">
<caret line="136" column="22" selection-start-line="136" selection-start-column="22" selection-end-line="136" selection-end-column="22" />
<state vertical-scroll-proportion="0.29784366">
<caret line="13" column="23" selection-start-line="13" selection-start-column="23" selection-end-line="13" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/index.rst">
<entry file="file://$PROJECT_DIR$/pyramid/version.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.31752872">
<caret line="13" column="10" selection-start-line="13" selection-start-column="10" selection-end-line="13" selection-end-column="10" />
<state vertical-scroll-proportion="0.0945758">
<caret line="4" column="0" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/conf.py">
<entry file="file://$PROJECT_DIR$/setup.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.38793105">
<caret line="33" column="20" selection-start-line="33" selection-start-column="16" selection-end-line="33" selection-end-column="20" />
<state vertical-scroll-proportion="0.32962447">
<caret line="103" column="0" selection-start-line="103" selection-start-column="0" selection-end-line="103" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/icon.ico">
<provider selected="true" editor-type-id="images">
<state />
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_dataset.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.17097701">
<caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/magcreator.py">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_phasemap.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.2836485">
<caret line="99" column="94" selection-start-line="99" selection-start-column="94" selection-end-line="99" selection-end-column="94" />
<folding />
<state vertical-scroll-proportion="0.21982759">
<caret line="9" column="37" selection-start-line="9" selection-start-column="37" selection-end-line="9" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/colormap.py">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_magdata.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.42407808">
<caret line="23" column="9" selection-start-line="23" selection-start-column="9" selection-end-line="23" selection-end-column="9" />
<folding />
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/quaternion.py">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_magcreator.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.5021692">
<caret line="119" column="24" selection-start-line="119" selection-start-column="24" selection-end-line="119" selection-end-column="24" />
<folding />
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/logging.ini">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_forwardmodel.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.59002167">
<caret line="32" column="13" selection-start-line="32" selection-start-column="13" selection-end-line="32" selection-end-column="13" />
<folding />
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/forwardmodel.py">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_costfunction.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.5272525">
<caret line="303" column="47" selection-start-line="303" selection-start-column="47" selection-end-line="303" selection-end-column="47" />
<folding />
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/docs/_build/_static/underscore-1.3.1.js">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_phasemapper.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.3329718">
<caret line="94" column="55" selection-start-line="94" selection-start-column="55" selection-end-line="94" selection-end-column="55" />
<state vertical-scroll-proportion="0.47304583">
<caret line="159" column="21" selection-start-line="159" selection-start-column="21" selection-end-line="159" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/scripts/reconstruction/reconstruction_2d_from_phasemap.py">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_projector.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/phasemap.py">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_regularisator.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.324295">
<caret line="108" column="40" selection-start-line="108" selection-start-column="40" selection-end-line="108" selection-end-column="40" />
<folding />
<state vertical-scroll-proportion="-1.9097035">
<caret line="17" column="0" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/magdata.py">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_analytic.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.44685465">
<caret line="834" column="54" selection-start-line="834" selection-start-column="54" selection-end-line="834" selection-end-column="54" />
<folding />
<state vertical-scroll-proportion="0.43530998">
<caret line="19" column="16" selection-start-line="19" selection-start-column="16" selection-end-line="19" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/../Jutil/jutil/cg.py">
<entry file="file://$PROJECT_DIR$/pyramid/numcore/phasemapper_core.c">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="1.4663073">
<caret line="109" column="16" selection-start-line="109" selection-start-column="16" selection-end-line="109" selection-end-column="16" />
<folding />
<state vertical-scroll-proportion="-5.7277627">
<caret line="2" column="24" selection-start-line="2" selection-start-column="24" selection-end-line="2" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/diagnostics.py">
<entry file="file://$PROJECT_DIR$/pyramid/analytic.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.29784366">
<caret line="13" column="23" selection-start-line="13" selection-start-column="23" selection-end-line="13" selection-end-column="23" />
<folding />
<state vertical-scroll-proportion="0.9541779">
<caret line="215" column="31" selection-start-line="215" selection-start-column="31" selection-end-line="215" selection-end-column="31" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/kernel.py">
<entry file="file://$PROJECT_DIR$/scripts/reconstruction/reconstruction_3d_from_magdata.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-2.6060605">
<caret line="4" column="0" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
<state vertical-scroll-proportion="0.0">
<caret line="11" column="0" selection-start-line="11" selection-start-column="0" selection-end-line="11" selection-end-column="76" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/fft.py">
<entry file="file://$PROJECT_DIR$/pyramid/config.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.41322315">
<caret line="227" column="0" selection-start-line="227" selection-start-column="0" selection-end-line="227" selection-end-column="0" />
<state vertical-scroll-proportion="0.0">
<caret line="14" column="4" selection-start-line="14" selection-start-column="4" selection-end-line="14" selection-end-column="4" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/version.py">
<entry file="file://C:/Anaconda2/Lib/site-packages/numpy/core/_methods.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0945758">
<caret line="4" column="0" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
<folding />
<state vertical-scroll-proportion="-0.47831184">
<caret line="24" column="0" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/setup.py">
<entry file="file://$PROJECT_DIR$/scripts/gui/phasemap_creator.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.32962447">
<caret line="103" column="0" selection-start-line="103" selection-start-column="0" selection-end-line="103" selection-end-column="0" />
<state vertical-scroll-proportion="0.0">
<caret line="11" column="10" selection-start-line="11" selection-start-column="10" selection-end-line="11" selection-end-column="10" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/phasemapper.py">
<entry file="file://$PROJECT_DIR$/pyramid/forwardmodel.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.6334232">
<caret line="598" column="65" selection-start-line="598" selection-start-column="65" selection-end-line="598" selection-end-column="65" />
<folding />
<state vertical-scroll-proportion="0.27511415">
<caret line="72" column="8" selection-start-line="72" selection-start-column="8" selection-end-line="72" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_dataset.py">
<entry file="file://$PROJECT_DIR$/pyramid/dataset.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.17097701">
<caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
<state vertical-scroll-proportion="0.0">
<caret line="157" column="8" selection-start-line="157" selection-start-column="8" selection-end-line="157" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/dataset.py">
<entry file="file://$PROJECT_DIR$/pyramid/fft.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.024425287">
<caret line="28" column="66" selection-start-line="28" selection-start-column="62" selection-end-line="28" selection-end-column="66" />
<state vertical-scroll-proportion="0.0">
<caret line="296" column="15" selection-start-line="296" selection-start-column="15" selection-end-line="296" selection-end-column="28" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_phasemap.py">
<entry file="file://$PROJECT_DIR$/pyramid/phasemap.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.21982759">
<caret line="9" column="37" selection-start-line="9" selection-start-column="37" selection-end-line="9" selection-end-column="37" />
<state vertical-scroll-proportion="0.0">
<caret line="781" column="8" selection-start-line="781" selection-start-column="8" selection-end-line="781" selection-end-column="8" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_magdata.py">
<entry file="file://C:/Anaconda2/Lib/site-packages/matplotlib/backend_bases.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
<state vertical-scroll-proportion="0.72362554">
<caret line="2436" column="0" selection-start-line="2436" selection-start-column="0" selection-end-line="2436" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_magcreator.py">
<entry file="file://$APPLICATION_HOME_DIR$/helpers/pydev/pydevd.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
<state vertical-scroll-proportion="0.9346314">
<caret line="2410" column="0" selection-start-line="2410" selection-start-column="0" selection-end-line="2410" selection-end-column="0" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_kernel.py">
<entry file="file://$PROJECT_DIR$/scripts/gui/mag_slicer.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<caret line="223" column="57" selection-start-line="223" selection-start-column="57" selection-end-line="223" selection-end-column="57" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_forwardmodel.py">
<entry file="file://$USER_HOME$/Downloads/Untitled.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<caret line="44" column="40" selection-start-line="44" selection-start-column="40" selection-end-line="44" selection-end-column="40" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_costfunction.py">
<entry file="file://$PROJECT_DIR$/pyramid/projector.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<caret line="608" column="51" selection-start-line="608" selection-start-column="8" selection-end-line="608" selection-end-column="51" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_phasemapper.py">
<entry file="file://$PROJECT_DIR$/../Jutil/jutil/cg.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.47304583">
<caret line="159" column="21" selection-start-line="159" selection-start-column="21" selection-end-line="159" selection-end-column="21" />
<state vertical-scroll-proportion="0.0189099">
<caret line="72" column="18" selection-start-line="72" selection-start-column="18" selection-end-line="72" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_projector.py">
<entry file="file://$PROJECT_DIR$/pyramid/fieldconverter.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<state vertical-scroll-proportion="0.378198">
<caret line="20" column="36" selection-start-line="20" selection-start-column="36" selection-end-line="20" selection-end-column="36" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_regularisator.py">
<entry file="file://$PROJECT_DIR$/pyramid/magcreator.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.9097035">
<caret line="17" column="0" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
<state vertical-scroll-proportion="0.0">
<caret line="16" column="3" selection-start-line="4" selection-start-column="0" selection-end-line="16" selection-end-column="3" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_analytic.py">
<entry file="file://$PROJECT_DIR$/pyramid/reconstruction.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.43530998">
<caret line="19" column="16" selection-start-line="19" selection-start-column="16" selection-end-line="19" selection-end-column="16" />
<state vertical-scroll-proportion="0.0">
<caret line="46" column="27" selection-start-line="46" selection-start-column="27" selection-end-line="46" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/numcore/phasemapper_core.c">
<entry file="file://$PROJECT_DIR$/pyramid/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-5.7277627">
<caret line="2" column="24" selection-start-line="2" selection-start-column="24" selection-end-line="2" selection-end-column="24" />
<state vertical-scroll-proportion="0.0">
<caret line="90" column="38" selection-start-line="90" selection-start-column="38" selection-end-line="90" selection-end-column="38" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/scripts/gui/mag_slicer.py">
<entry file="file://$PROJECT_DIR$/pyramid/tests/test_kernel.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.32210243">
<caret line="167" column="50" selection-start-line="167" selection-start-column="50" selection-end-line="167" selection-end-column="50" />
<state vertical-scroll-proportion="0.0">
<caret line="26" column="0" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/config.py">
<entry file="file://$PROJECT_DIR$/pyramid/phasemapper.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.4811321">
<caret line="21" column="0" selection-start-line="21" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
<state vertical-scroll-proportion="-8.666667">
<caret line="332" column="51" selection-start-line="332" selection-start-column="51" selection-end-line="332" selection-end-column="51" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/__init__.py">
<entry file="file://$PROJECT_DIR$/pyramid/kernel.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.1522911">
<caret line="65" column="25" selection-start-line="65" selection-start-column="25" selection-end-line="65" selection-end-column="25" />
<state vertical-scroll-proportion="0.0">
<caret line="95" column="34" selection-start-line="95" selection-start-column="34" selection-end-line="95" selection-end-column="34" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/scripts/reconstruction/reconstruction_3d_from_magdata.py">
<entry file="file://$PROJECT_DIR$/scripts/phasemap/phasemap_tilt_series.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.25202155">
<caret line="11" column="29" selection-start-line="11" selection-start-column="29" selection-end-line="11" selection-end-column="29" />
<state vertical-scroll-proportion="0.0">
<caret line="40" column="16" selection-start-line="40" selection-start-column="16" selection-end-line="40" selection-end-column="16" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pyramid/analytic.py">
<entry file="file://$PROJECT_DIR$/pyramid/magdata.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.9541779">
<caret line="215" column="31" selection-start-line="215" selection-start-column="31" selection-end-line="215" selection-end-column="31" />
<state vertical-scroll-proportion="0.62133646">
<caret line="879" column="31" selection-start-line="879" selection-start-column="31" selection-end-line="879" selection-end-column="31" />
<folding />
</state>
</provider>
......
......@@ -59,6 +59,7 @@ from . import analytic
from . import magcreator
from . import reconstruction
from . import fft
from . import fieldconverter
from . import costfunction
from .costfunction import *
from . import dataset
......@@ -92,7 +93,7 @@ from .version import hg_revision as __hg_revision__
_log.info("Starting Pyramid V{} HG{}".format(__version__, __hg_revision__))
del logging
__all__ = ['analytic', 'magcreator', 'reconstruction', 'fft']
__all__ = ['analytic', 'magcreator', 'reconstruction', 'fft', 'fieldconverter']
__all__.extend(costfunction.__all__)
__all__.extend(dataset.__all__)
__all__.extend(diagnostics.__all__)
......@@ -106,3 +107,4 @@ __all__.extend(regularisator.__all__)
__all__.extend(ramp.__all__)
__all__.extend(quaternion.__all__)
__all__.extend(colormap.__all__)
__all__.extend(config.__all__)
# coding=utf-8
"""Convert vector fields.
The :mod:`~.fieldconverter` provides methods for converting a magnetization distribution `M` into
a vector potential `A` and convert this in turn into a magnetic field `B`. The direct way is also
possible.
"""
import logging
import numpy as np
from pyramid import fft
from pyramid.magdata import MagData
__all__ = ['convert_M_to_A', 'convert_A_to_B', 'convert_M_to_B']
_log = logging.getLogger(__name__)
def convert_M_to_A(mag_data, b_0=1.0):
"""Convert a magnetic vector distribution into a vector potential `A`.
Parameters
----------
mag_data: :class:`~pyramid.magdata.MagData` object
The magnetic vector field from which the A-field is calculated.
b_0: float, optional
The saturation magnetization which is used in the calculation.
Returns
-------
b_data: :class:`~pyramid.magdata.MagData` object
The calculated B-field.
"""
_log.debug('Calling convert_M_to_A')
# Preparations of variables:
assert isinstance(mag_data, MagData), 'Only MagData objects can be mapped!'
dim = mag_data.dim
dim_kern = tuple(2 * np.array(dim) - 1) # Dimensions of the kernel
if fft.BACKEND == 'pyfftw':
dim_pad = tuple(2 * np.array(dim)) # is at least even (not neccessary a power of 2)
elif fft.BACKEND == 'numpy':
dim_pad = tuple(2 ** np.ceil(np.log2(2 * np.array(dim))).astype(int)) # pow(2)
else:
raise ValueError('Backend of the fft module is not correctly initiated!')
slice_B = (slice(dim[0] - 1, dim_kern[0]), # Shift because kernel center
slice(dim[1] - 1, dim_kern[1]), # is not at (0, 0, 0)!
slice(dim[2] - 1, dim_kern[2]))
slice_M = (slice(0, dim[0]), # Magnetization is padded on the far end!
slice(0, dim[1]), # B-field cutout is shifted as listed above
slice(0, dim[2])) # because of the kernel center!
# Set up kernels
coeff = mag_data.a * b_0 / (4 * np.pi)
zzz, yyy, xxx = np.indices(dim_kern)
xxx -= dim[2] - 1
yyy -= dim[1] - 1
zzz -= dim[0] - 1
k_x = fft.empty(dim_kern, dtype=fft.FLOAT)
k_y = fft.empty(dim_kern, dtype=fft.FLOAT)
k_z = fft.empty(dim_kern, dtype=fft.FLOAT)
k_x[...] = coeff * xxx / np.abs(xxx ** 2 + yyy ** 2 + zzz ** 2 + 1E-30) ** 3
k_y[...] = coeff * yyy / np.abs(xxx ** 2 + yyy ** 2 + zzz ** 2 + 1E-30) ** 3
k_z[...] = coeff * zzz / np.abs(xxx ** 2 + yyy ** 2 + zzz ** 2 + 1E-30) ** 3
# Calculate Fourier trafo of kernel components:
k_x_fft = fft.rfftn(k_x, dim_pad)
k_y_fft = fft.rfftn(k_y, dim_pad)
k_z_fft = fft.rfftn(k_z, dim_pad)
# Prepare magnetization:
x_mag = fft.zeros(dim_pad, dtype=fft.FLOAT)
y_mag = fft.zeros(dim_pad, dtype=fft.FLOAT)
z_mag = fft.zeros(dim_pad, dtype=fft.FLOAT)
x_mag[slice_M] = mag_data.magnitude[0, ...]
y_mag[slice_M] = mag_data.magnitude[1, ...]
z_mag[slice_M] = mag_data.magnitude[2, ...]
# Calculate Fourier trafo of magnetization components:
x_mag_fft = fft.rfftn(x_mag)
y_mag_fft = fft.rfftn(y_mag)
z_mag_fft = fft.rfftn(z_mag)
# Convolve:
a_x_fft = y_mag_fft * k_z_fft - z_mag_fft * k_y_fft
a_y_fft = z_mag_fft * k_x_fft - x_mag_fft * k_z_fft
a_z_fft = x_mag_fft * k_y_fft - y_mag_fft * k_x_fft
a_x = fft.irfftn(a_x_fft)[slice_B]
a_y = fft.irfftn(a_y_fft)[slice_B]
a_z = fft.irfftn(a_z_fft)[slice_B]
# Return A-field:
return MagData(mag_data.a, np.asarray((a_x, a_y, a_z)))
def convert_A_to_B(a_data):
"""Convert a vector potential `A` into a B-field distribution.
Parameters
----------
a_data: :class:`~pyramid.magdata.MagData` object
The vector potential field from which the A-field is calculated.
Returns
-------
b_data: :class:`~pyramid.magdata.MagData` object
The calculated B-field.
"""
_log.debug('Calling convert_A_to_B')
assert isinstance(a_data, MagData), 'Only MagData objects can be mapped!'
# Calculate gradients:
x_mag, y_mag, z_mag = a_data.magnitude
x_grad_z, x_grad_y, x_grad_x = np.gradient(x_mag)
y_grad_z, y_grad_y, y_grad_x = np.gradient(y_mag)
z_grad_z, z_grad_y, z_grad_x = np.gradient(z_mag)
# Calculate cross product:
b_x = (z_grad_y - y_grad_z)
b_y = (x_grad_z - z_grad_x)
b_z = (y_grad_x - x_grad_y)
# Return B-field:
return MagData(a_data.a, np.asarray((b_x, b_y, b_z)))
def convert_M_to_B(mag_data, b_0=1.0):
"""Convert a magnetic vector distribution into a B-field distribution.
Parameters
----------
mag_data: :class:`~pyramid.magdata.MagData` object
The magnetic vector field from which the B-field is calculated.
b_0: float, optional
The saturation magnetization which is used in the calculation.
Returns
-------
b_data: :class:`~pyramid.magdata.MagData` object
The calculated B-field.
"""
_log.debug('Calling convert_M_to_B')
assert isinstance(mag_data, MagData), 'Only MagData objects can be mapped!'
return convert_A_to_B(convert_M_to_A(mag_data, b_0=b_0))
......@@ -94,8 +94,8 @@ class Kernel(object):
u = np.linspace(-(u_dim - 1), u_dim - 1, num=2 * u_dim - 1)
v = np.linspace(-(v_dim - 1), v_dim - 1, num=2 * v_dim - 1)
uu, vv = np.meshgrid(u, v)
self.u = fft.empty(self.dim_kern, fft.FLOAT)
self.v = fft.empty(self.dim_kern, fft.FLOAT)
self.u = fft.empty(self.dim_kern, dtype=fft.FLOAT)
self.v = fft.empty(self.dim_kern, dtype=fft.FLOAT)
self.u[...] = coeff * self._get_elementary_phase(geometry, uu, vv, a)
self.v[...] = coeff * self._get_elementary_phase(geometry, vv, uu, a)
# Include perturbed reference wave:
......@@ -123,15 +123,15 @@ class Kernel(object):
self._log.debug('Calling _get_elementary_phase')
if geometry == 'disc':
in_or_out = ~ np.logical_and(n == 0, m == 0)
return m / (n ** 2 + m ** 2 + 1E-30) * in_or_out
return n / (n ** 2 + m ** 2 + 1E-30) * in_or_out
elif geometry == 'slab':
def _F_a(n, m):
A = np.log(a ** 2 * (n ** 2 + m ** 2))
B = np.arctan(n / m)
return n * A - 2 * n + 2 * m * B
return 0.5 * (_F_a(n - 0.5, m - 0.5) - _F_a(n + 0.5, m - 0.5)
- _F_a(n - 0.5, m + 0.5) + _F_a(n + 0.5, m + 0.5))
return 0.5 * (_F_a(n - 0.5, m - 0.5) - _F_a(n + 0.5, m - 0.5) -
_F_a(n - 0.5, m + 0.5) + _F_a(n + 0.5, m + 0.5))
def print_info(self):
"""Print information about the kernel.
......
......@@ -548,7 +548,7 @@ class MagData(object):
self._log.debug('Calling save_to_hdf5')
# Construct path if filename isn't already absolute:
if not os.path.isabs(filename):
from pyramid import DIR_FILES
from pyramid.config import DIR_FILES
directory = os.path.join(DIR_FILES, 'magdata')
if not os.path.exists(directory):
os.makedirs(directory)
......@@ -577,7 +577,7 @@ class MagData(object):
return
# Use relative path if filename isn't already absolute:
if not os.path.isabs(filename):
from pyramid import DIR_FILES
from pyramid.config import DIR_FILES
directory = os.path.join(DIR_FILES, 'magdata')
filename = os.path.join(directory, filename)
# Load data from file:
......@@ -605,7 +605,7 @@ class MagData(object):
data = np.array([xx, yy, zz, x_vec, y_vec, z_vec]).T
# Construct path if filename isn't already absolute:
if not os.path.isabs(filename):
from pyramid import DIR_FILES
from pyramid.config import DIR_FILES
directory = os.path.join(DIR_FILES, 'magdata')
if not os.path.exists(directory):
os.makedirs(directory)
......@@ -636,7 +636,7 @@ class MagData(object):
SCALE = 1.0E-9 / 1.0E-2 # From cm to nm
# Use relative path if filename isn't already absolute:
if not os.path.isabs(filename):
from pyramid import DIR_FILES
from pyramid.config import DIR_FILES
directory = os.path.join(DIR_FILES, 'magdata')
filename = os.path.join(directory, filename)
# Load data from file:
......@@ -668,7 +668,8 @@ class MagData(object):
The slice-index of the axis specified in `proj_axis`. Is set to the center of
`proj_axis` if not specified.
log : boolean, optional
Takes the Default is False.
The loratihm of the arrow length is plotted instead. This is helpful if only the
direction of the arrows is important and the amplitude varies a lot. Default is False.
scaled : boolean, optional
Normalizes the plotted arrows in respect to the highest one. Default is True.
scale: float, optional
......@@ -691,8 +692,8 @@ class MagData(object):
if ax_slice is None:
self._log.debug('ax_slice is None')
ax_slice = self.dim[0] // 2
plot_u = np.copy(self.magnitude[0][ax_slice, ...]) # x-component
plot_v = np.copy(self.magnitude[1][ax_slice, ...]) # y-component
u_mag = np.copy(self.magnitude[0][ax_slice, ...]) # x-component
v_mag = np.copy(self.magnitude[1][ax_slice, ...]) # y-component
u_label = 'x [px]'
v_label = 'y [px]'
submask = self.get_mask()[ax_slice, ...]
......@@ -701,8 +702,8 @@ class MagData(object):
if ax_slice is None:
self._log.debug('ax_slice is None')
ax_slice = self.dim[1] // 2
plot_u = np.copy(self.magnitude[0][:, ax_slice, :]) # x-component
plot_v = np.copy(self.magnitude[2][:, ax_slice, :]) # z-component
u_mag = np.copy(self.magnitude[0][:, ax_slice, :]) # x-component
v_mag = np.copy(self.magnitude[2][:, ax_slice, :]) # z-component
u_label = 'x [px]'
v_label = 'z [px]'
submask = self.get_mask()[:, ax_slice, :]
......@@ -711,26 +712,26 @@ class MagData(object):
if ax_slice is None:
self._log.debug('ax_slice is None')
ax_slice = self.dim[2] // 2
plot_u = np.swapaxes(np.copy(self.magnitude[2][..., ax_slice]), 0, 1) # z-component
plot_v = np.swapaxes(np.copy(self.magnitude[1][..., ax_slice]), 0, 1) # y-component
u_mag = np.swapaxes(np.copy(self.magnitude[2][..., ax_slice]), 0, 1) # z-component
v_mag = np.swapaxes(np.copy(self.magnitude[1][..., ax_slice]), 0, 1) # y-component
u_label = 'z [px]'
v_label = 'y [px]'
submask = self.get_mask()[..., ax_slice]
else:
raise ValueError('{} is not a valid argument (use x, y or z)'.format(proj_axis))
# Prepare quiver (select only used arrows if ar_dens is specified):
dim_uv = plot_u.shape
dim_uv = u_mag.shape
vv, uu = np.indices(dim_uv) + 0.5 # shift to center of pixel
uu = uu[::ar_dens, ::ar_dens]
vv = vv[::ar_dens, ::ar_dens]
plot_u = plot_u[::ar_dens, ::ar_dens]
plot_v = plot_v[::ar_dens, ::ar_dens]
amplitudes = np.hypot(plot_u, plot_v)
angles = np.angle(plot_u + 1j * plot_v, deg=True).tolist()
u_mag = u_mag[::ar_dens, ::ar_dens]
v_mag = v_mag[::ar_dens, ::ar_dens]
amplitudes = np.hypot(u_mag, v_mag)
angles = np.angle(u_mag + 1j * v_mag, deg=True).tolist()
# Calculate the arrow colors:
if coloring == 'angle':
self._log.debug('Encoding angles')
colorinds = (1 + np.arctan2(plot_v, plot_u) / np.pi) / 2 # in-plane color index (0-1).
colorinds = (1 + np.arctan2(v_mag, u_mag) / np.pi) / 2 # in-plane color index (0-1).
cmap = DirectionalColormap()
elif coloring == 'amplitude':
self._log.debug('Encoding amplitude')
......@@ -738,7 +739,7 @@ class MagData(object):
cmap = 'jet'
elif coloring == 'uniform':
self._log.debug('No color encoding')
colorinds = np.zeros_like(plot_u) # use black arrows!
colorinds = np.zeros_like(u_mag) # use black arrows!
cmap = 'gray'
else:
raise AttributeError("Invalid coloring mode! Use 'angles', 'amplitude' or 'uniform'!")
......@@ -749,20 +750,20 @@ class MagData(object):
axis = fig.add_subplot(1, 1, 1)
axis.set_aspect('equal')
# Take the logarithm of the arrows to clearly show directions (if specified):
if log:
if log and np.any(amplitudes): # If the slice is empty, skip!
cutoff = 10
amp = np.round(amplitudes, decimals=cutoff)
min_value = amp[np.nonzero(amp)].min()
plot_u = np.round(plot_u, decimals=cutoff) / min_value
plot_u = np.log10(np.abs(plot_u) + 1) * np.sign(plot_u)
plot_v = np.round(plot_v, decimals=cutoff) / min_value
plot_v = np.log10(np.abs(plot_v) + 1) * np.sign(plot_v)
amplitudes = np.hypot(plot_u, plot_v) # Recalculate!
u_mag = np.round(u_mag, decimals=cutoff) / min_value
u_mag = np.log10(np.abs(u_mag) + 1) * np.sign(u_mag)
v_mag = np.round(v_mag, decimals=cutoff) / min_value
v_mag = np.log10(np.abs(v_mag) + 1) * np.sign(v_mag)
amplitudes = np.hypot(u_mag, v_mag) # Recalculate (used if scaled)!
# Scale the magnitude of the arrows to the highest one (if specified):
if scaled:
plot_u /= amplitudes.max() + 1E-30
plot_v /= amplitudes.max() + 1E-30
axis.quiver(uu, vv, plot_u, plot_v, colorinds, cmap=cmap, clim=(0, 1), angles=angles,
u_mag /= amplitudes.max() + 1E-30
v_mag /= amplitudes.max() + 1E-30
axis.quiver(uu, vv, u_mag, v_mag, colorinds, cmap=cmap, clim=(0, 1), angles=angles,
pivot='middle', units='xy', scale_units='xy', scale=scale / ar_dens,
minlength=0.25, headwidth=6, headlength=7)
if show_mask and not np.all(submask): # Plot mask if desired and not trivial!
......@@ -784,7 +785,7 @@ class MagData(object):
return axis
def quiver_plot3d(self, title='Magnetization Distribution', limit=None, cmap='jet',
ar_dens=1, mode='arrow', coloring='angle', show_pipeline=False):
mode='2darrow', coloring='angle', ar_dens=1, opacity=1.0):
"""Plot the magnetization as 3D-vectors in a quiverplot.
Parameters
......@@ -799,13 +800,12 @@ class MagData(object):
Number defining the arrow density which is plotted. A higher ar_dens number skips more
arrows (a number of 2 plots every second arrow). Default is 1.
mode: string, optional
Mode, determining the glyphs used in the 3D plot. Default is 'arrow', which corresponds
to 3D arrows. For large amounts of arrows, '2darrow' should be used.
Mode, determining the glyphs used in the 3D plot. Default is '2darrow', which
corresponds to 2D arrows. For smaller amounts of arrows, 'arrow' (3D) is prettier.
coloring : string
Color coding mode of the arrows. Use 'angle' (default) or 'amplitude'.
show_pipeline : boolean, optional
If True, the mayavi pipeline, a GUI used for image manipulation is shown. The default
is False.
opacity: float, optional
Defines the opacity of the arrows. Default is 1.0 (completely opaque).
Returns
-------
......@@ -821,16 +821,17 @@ class MagData(object):
limit = np.max(self.mag_amp)
ad = ar_dens
# Create points and vector components as lists:
zz, yy, xx = (np.indices(dim) - a / 2).reshape((3,) + dim)
zz = zz[::ad, ::ad, ::ad].flatten()
yy = yy[::ad, ::ad, ::ad].flatten()
xx = xx[::ad, ::ad, ::ad].flatten()
zzz, yyy, xxx = (np.indices(dim) - a / 2).reshape((3,) + dim)
zzz = zzz[::ad, ::ad, ::ad].flatten()
yyy = yyy[::ad, ::ad, ::ad].flatten()
xxx = xxx[::ad, ::ad, ::ad].flatten()
x_mag = self.magnitude[0][::ad, ::ad, ::ad].flatten()
y_mag = self.magnitude[1][::ad, ::ad, ::ad].flatten()
z_mag = self.magnitude[2][::ad, ::ad, ::ad].flatten()
# Plot them as vectors:
mlab.figure(size=(750, 700))
plot = mlab.quiver3d(xx, yy, zz, x_mag, y_mag, z_mag, mode=mode, colormap=cmap)
plot = mlab.quiver3d(xxx, yyy, zzz, x_mag, y_mag, z_mag,
mode=mode, colormap=cmap, opacity=opacity)
if coloring == 'angle': # Encodes the full angle via colorwheel and saturation
self._log.debug('Encoding full 3D angles')
from tvtk.api import tvtk
......@@ -853,6 +854,39 @@ class MagData(object):
mlab.axes(plot)
mlab.title(title, height=0.95, size=0.35)
mlab.orientation_axes()
if show_pipeline:
mlab.show_pipeline()
# mlab.show()
return plot
def contour_plot3d(self, title='Magnetization Distribution', contours=10, opacity=0.25):
"""Plot the magnetization as 3D-vectors in a quiverplot.
Parameters
----------
title: string, optional
The title for the plot.
contours: int, optional
Number of contours which should be plotted.
opacity: float, optional
Defines the opacity of the contours. Default is 0.25.
Returns
-------
plot : :class:`mayavi.modules.vectors.Vectors`
The plot object.
"""
self._log.debug('Calling quiver_plot3D')
from mayavi import mlab
# Create points and vector components as lists:
x_mag, y_mag, z_mag = self.magnitude
amplitudes = np.sqrt(x_mag ** 2 + y_mag ** 2 + z_mag ** 2)
# Plot them as vectors:
mlab.figure(size=(750, 700))
plot = mlab.contour3d(amplitudes, contours=contours, opacity=opacity)
mlab.outline(plot)
mlab.axes(plot)
mlab.title(title, height=0.95, size=0.35)
mlab.orientation_axes()
# mlab.show()
return plot
......@@ -485,7 +485,7 @@ class PhaseMap(object):
self._log.debug('Calling save_to_hdf5')
# Construct path if filename isn't already absolute:
if not os.path.isabs(filename):
from pyramid import DIR_FILES
from pyramid.config import DIR_FILES
directory = os.path.join(DIR_FILES, 'phasemap')
if not os.path.exists(directory):
os.makedirs(directory)
......@@ -514,7 +514,7 @@ class PhaseMap(object):
return
# Use relative path if filename isn't already absolute:
if not os.path.isabs(filename):
from pyramid import DIR_FILES
from pyramid.config import DIR_FILES
directory = os.path.join(DIR_FILES, 'phasemap')
filename = os.path.join(directory, filename)
# Load data from file:
......@@ -540,7 +540,7 @@ class PhaseMap(object):
self._log.debug('Calling save_to_txt')
# Construct path if filename isn't already absolute:
if not os.path.isabs(filename):
from pyramid import DIR_FILES
from pyramid.config import DIR_FILES
directory = os.path.join(DIR_FILES, 'phasemap')
if not os.path.exists(directory):
os.makedirs(directory)
......@@ -575,7 +575,7 @@ class PhaseMap(object):
cls._log.debug('Calling load_from_txt')
# Use relative path if filename isn't already absolute:
if not os.path.isabs(filename):
from pyramid import DIR_FILES
from pyramid.config import DIR_FILES
directory = os.path.join(DIR_FILES, 'phasemap')
filename = os.path.join(directory, filename)
# Load data from file:
......
......@@ -18,7 +18,7 @@ from pyramid import fft
from pyramid.kernel import Kernel
from pyramid.magdata import MagData
from pyramid.phasemap import PhaseMap
from pyramid.projector import SimpleProjector
from pyramid.projector import RotTiltProjector, XTiltProjector, YTiltProjector, SimpleProjector
__all__ = ['PhaseMapperRDFC', 'PhaseMapperRDRC', 'PhaseMapperFDFC', 'pm']
_log = logging.getLogger(__name__)
......@@ -142,7 +142,7 @@ class PhaseMapperRDFC(PhaseMapper):
self.u_mag_fft = fft.rfftn(self.u_mag)
self.v_mag_fft = fft.rfftn(self.v_mag)
# Convolve the magnetization with the kernel in Fourier space:
self.phase_fft = self.u_mag_fft * self.kernel.u_fft - self.v_mag_fft * self.kernel.v_fft
self.phase_fft = self.u_mag_fft * self.kernel.v_fft - self.v_mag_fft * self.kernel.u_fft
# Return the result:
return fft.irfftn(self.phase_fft)[self.kernel.slice_phase]
......@@ -188,8 +188,8 @@ class PhaseMapperRDFC(PhaseMapper):
'vector size not compatible! vector: {}, size: {}'.format(len(vector), self.m)
self.mag_adj[self.kernel.slice_mag] = vector.reshape(self.kernel.dim_uv)
mag_adj_fft = fft.irfftn_adj(self.mag_adj)
u_phase_adj_fft = mag_adj_fft * self.kernel.u_fft
v_phase_adj_fft = mag_adj_fft * -self.kernel.v_fft
u_phase_adj_fft = mag_adj_fft * self.kernel.v_fft
v_phase_adj_fft = mag_adj_fft * -self.kernel.u_fft
u_phase_adj = fft.rfftn_adj(u_phase_adj_fft)[self.kernel.slice_phase]
v_phase_adj = fft.rfftn_adj(v_phase_adj_fft)[self.kernel.slice_phase]
result = np.concatenate((-u_phase_adj.flatten(), -v_phase_adj.flatten()))
......@@ -258,19 +258,19 @@ class PhaseMapperRDRC(PhaseMapper):
# Calculation of the phase:
phase = np.zeros(dim_uv, dtype=np.float32)
if self.numcore:
nc.phasemapper_real_convolve(dim_uv[0], dim_uv[1], v_phi, u_phi,
nc.phasemapper_real_convolve(dim_uv[0], dim_uv[1], u_phi, v_phi,
v_mag, u_mag, phase, self.threshold)
else:
for j in range(dim_uv[0]):
for i in range(dim_uv[1]):
u_phase = u_phi[dim_uv[0] - 1 - j:(2 * dim_uv[0] - 1) - j,
dim_uv[1] - 1 - i:(2 * dim_uv[1] - 1) - i]
if abs(u_mag[j, i]) > self.threshold:
phase += u_mag[j, i] * u_phase
v_phase = v_phi[dim_uv[0] - 1 - j:(2 * dim_uv[0] - 1) - j,
dim_uv[1] - 1 - i:(2 * dim_uv[1] - 1) - i]
if abs(v_mag[j, i]) > self.threshold:
phase -= v_mag[j, i] * v_phase
phase += u_mag[j, i] * v_phase
u_phase = u_phi[dim_uv[0] - 1 - j:(2 * dim_uv[0] - 1) - j,
dim_uv[1] - 1 - i:(2 * dim_uv[1] - 1) - i]
if abs(u_mag[j, i]) > self.threshold:
phase -= v_mag[j, i] * u_phase
# Return the phase:
return PhaseMap(mag_data.a, phase)
......@@ -297,7 +297,7 @@ class PhaseMapperRDRC(PhaseMapper):
if self.numcore:
if vector.dtype != np.float32:
vector = vector.astype(np.float32)
nc.jac_dot_real_convolve(v_dim, u_dim, self.kernel.u, self.kernel.v, vector, result)
nc.jac_dot_real_convolve(v_dim, u_dim, self.kernel.v, self.kernel.u, vector, result)
else:
# Iterate over all contributing pixels (numbered consecutively)
for s in range(self.m): # column-wise (two columns at a time, u- and v-component)
......@@ -307,8 +307,8 @@ class PhaseMapperRDRC(PhaseMapper):
u_max = (2 * u_dim - 1) - i # = u_min + u_dim
v_min = (v_dim - 1) - j # v_dim-1: center of the kernel
v_max = (2 * v_dim - 1) - j # = v_min + v_dim
result += vector[s] * self.kernel.u[v_min:v_max, u_min:u_max].reshape(-1)
result -= vector[s + self.m] * self.kernel.v[v_min:v_max, u_min:u_max].reshape(-1)
result += vector[s] * self.kernel.v[v_min:v_max, u_min:u_max].reshape(-1)
result -= vector[s + self.m] * self.kernel.u[v_min:v_max, u_min:u_max].reshape(-1)
return result
def jac_T_dot(self, vector):
......@@ -334,7 +334,7 @@ class PhaseMapperRDRC(PhaseMapper):
if self.numcore:
if vector.dtype != np.float32:
vector = vector.astype(np.float32)
nc.jac_T_dot_real_convolve(v_dim, u_dim, self.kernel.u, self.kernel.v, vector, result)
nc.jac_T_dot_real_convolve(v_dim, u_dim, self.kernel.v, self.kernel.u, vector, result)
else:
# Iterate over all contributing pixels (numbered consecutively):
for s in range(self.m): # row-wise (two rows at a time, u- and v-component)
......@@ -344,9 +344,9 @@ class PhaseMapperRDRC(PhaseMapper):
u_max = (2 * u_dim - 1) - i # = u_min + u_dim
v_min = (v_dim - 1) - j # v_dim-1: center of the kernel
v_max = (2 * v_dim - 1) - j # = v_min + v_dim
result[s] = np.sum(vector * self.kernel.u[v_min:v_max, u_min:u_max].reshape(-1))
result[s] = np.sum(vector * self.kernel.v[v_min:v_max, u_min:u_max].reshape(-1))
result[s + self.m] = np.sum(vector *
-self.kernel.v[v_min:v_max, u_min:u_max].reshape(-1))
-self.kernel.u[v_min:v_max, u_min:u_max].reshape(-1))
return result
......@@ -579,20 +579,22 @@ class PhaseMapperMIP(PhaseMapper):
raise NotImplementedError()
def pm(mag_data, axis='z', dim_uv=None, b_0=1):
def pm(mag_data, mode='z', b_0=1, **kwargs):
"""Convenience function for fast phase mapping.
Parameters
----------
mag_data : :class:`~.MagData`
A :class:`~.MagData` object, from which the projected phase map should be calculated.
axis: {'z', 'y', 'x'}, optional
Axis along which the :class:`.~SimpleProjector` projects the magnetic distribution.
dim_uv : tuple of int (N=2), optional
Dimensions of the 2-dimensional projected magnetization grid from which the phase should
be calculated.
mode: {'z', 'y', 'x', 'x-tilt', 'y-tilt', 'rot-tilt'}, optional
Projection mode which determines the :class:`~.pyramid.projector.Projector` subclass, which
is used for the projection. Default is a simple projection along the `z`-direction.
b_0 : float, optional
Saturation magnetization in Tesla, which is used for the phase calculation. Default is 1.
**kwargs : additional arguments
Additional arguments like `dim_uv`, 'tilt' or 'rotation', which are passed to the
projector-constructor, defined by the `mode`.
Returns
-------
phase_map : :class:`~pyramid.phasemap.PhaseMap`
......@@ -600,9 +602,23 @@ def pm(mag_data, axis='z', dim_uv=None, b_0=1):
"""
_log.debug('Calling pm')
projector = SimpleProjector(mag_data.dim, axis=axis, dim_uv=dim_uv)
# Determine projection mode:
if mode == 'rot-tilt':
projector = RotTiltProjector(mag_data.dim, **kwargs)
elif mode == 'x-tilt':
projector = XTiltProjector(mag_data.dim, **kwargs)
elif mode == 'y-tilt':
projector = YTiltProjector(mag_data.dim, **kwargs)
elif mode in ['x', 'y', 'z']:
projector = SimpleProjector(mag_data.dim, axis=mode, **kwargs)
else:
raise ValueError("Invalid mode (use 'x', 'y', 'z', 'x-tilt', 'y-tilt' or 'rot-tilt')")
# Project:
mag_proj = projector(mag_data)
# Set up phasemapper and map phase:
phasemapper = PhaseMapperRDFC(Kernel(mag_data.a, projector.dim_uv, b_0=b_0))
phase_map = phasemapper(mag_proj)
# Get mask from magdata:
phase_map.mask = mag_proj.get_mask()[0, ...]
# Return phase:
return phase_map
No preview for this file type
No preview for this file type
......@@ -11,15 +11,15 @@
import os
import sys
from PyQt4 import QtCore, QtGui
from matplotlibwidget import MatplotlibWidget
import pyramid
from pyramid.kernel import Kernel
from pyramid.magdata import MagData
from pyramid.phasemapper import PhaseMapperRDFC
from pyramid.projector import SimpleProjector
from PyQt4 import QtCore, QtGui
from matplotlibwidget import MatplotlibWidget
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
......@@ -230,8 +230,8 @@ class UI_MagSlicerMain(QtGui.QWidget):
def load(self):
directory = os.path.join(pyramid.DIR_FILES, 'magdata')
mag_file = QtGui.QFileDialog.getOpenFileName(self, 'Open Data File', directory,
'NetCDF files (*.nc)')
self.mag_data = MagData.load_from_netcdf4(mag_file)
'HDF5 files (*.hdf5)')
self.mag_data = MagData.load_from_hdf5(mag_file)
self.mag_data_loaded = True
self.mplWidgetMag.axes.set_visible(True)
self.mplWidgetHolo.axes.set_visible(True)
......
......@@ -19,7 +19,7 @@ angles = np.linspace()
###################################################################################################
mag_data = py.MagData.load_from_netcdf4(filename)
phase_map = py.pm(mag_data, axis=axis, dim_uv=dim_uv, b_0=b_0)
phase_map = py.pm(mag_data, mode=axis, dim_uv=dim_uv, b_0=b_0)
phase_map.save_to_netcdf4('phasemap_{}_axis={}'.format(filename.replace('magdata_', ''), axis))
phase_map.display_combined()
......@@ -56,4 +56,4 @@ for angle in angles:
plt.close('all')
gc.collect()
print 'RSS = {:.2f} MB'.format(proc.memory_info().rss/1024.**2)
print angle, 'deg. done!'
\ No newline at end of file
print angle, 'deg. done!'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment