From 4725e6cfc0c3a6076a88c275e47d0fff019f33a4 Mon Sep 17 00:00:00 2001
From: Jan Caron <j.caron@fz-juelich.de>
Date: Fri, 4 Mar 2016 13:49:37 +0100
Subject: [PATCH] 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)

---
 .idea/workspace.xml                      | 817 ++++++++++++++---------
 pyramid/__init__.py                      |   4 +-
 pyramid/fieldconverter.py                | 139 ++++
 pyramid/kernel.py                        |  10 +-
 pyramid/magdata.py                       | 114 ++--
 pyramid/phasemap.py                      |   8 +-
 pyramid/phasemapper.py                   |  62 +-
 pyramid/tests/test_kernel/ref_u_fft.npy  | Bin 400 -> 400 bytes
 pyramid/tests/test_kernel/ref_v_fft.npy  | Bin 400 -> 400 bytes
 scripts/gui/mag_slicer.py                |  10 +-
 scripts/phasemap/phasemap_tilt_series.py |   4 +-
 11 files changed, 760 insertions(+), 408 deletions(-)
 create mode 100644 pyramid/fieldconverter.py

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index b1a5b78..96be35c 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -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>
diff --git a/pyramid/__init__.py b/pyramid/__init__.py
index 4f5ffe1..d45cdbb 100644
--- a/pyramid/__init__.py
+++ b/pyramid/__init__.py
@@ -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__)
diff --git a/pyramid/fieldconverter.py b/pyramid/fieldconverter.py
new file mode 100644
index 0000000..0b5e29f
--- /dev/null
+++ b/pyramid/fieldconverter.py
@@ -0,0 +1,139 @@
+# 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))
diff --git a/pyramid/kernel.py b/pyramid/kernel.py
index 21b7d9a..6c9c7ae 100644
--- a/pyramid/kernel.py
+++ b/pyramid/kernel.py
@@ -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.
diff --git a/pyramid/magdata.py b/pyramid/magdata.py
index a1359b4..e740e2b 100644
--- a/pyramid/magdata.py
+++ b/pyramid/magdata.py
@@ -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
diff --git a/pyramid/phasemap.py b/pyramid/phasemap.py
index f5b8aba..2e95cfa 100644
--- a/pyramid/phasemap.py
+++ b/pyramid/phasemap.py
@@ -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:
diff --git a/pyramid/phasemapper.py b/pyramid/phasemapper.py
index 9a360fb..2b05ed7 100644
--- a/pyramid/phasemapper.py
+++ b/pyramid/phasemapper.py
@@ -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
diff --git a/pyramid/tests/test_kernel/ref_u_fft.npy b/pyramid/tests/test_kernel/ref_u_fft.npy
index 700daac74bfb7eae1cc33b8d187163d1af5d079d..d7588d2717005ee4e12782e7b8d6e8873a0aa17b 100644
GIT binary patch
literal 400
zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlWd``qoAIaUsO_*m=~X4l#&V(cT3DEP6dh=
zXCxM+0{I#iItr$mItsN4aKOa?1=E&1-vz{0TwHf8K|*^jt=b8~FnJiAA3WI##Ew(i
zy%U5%?8Dac!FoV!7!a|0zXOCp{C^8~SPI#_w*X==AEpLI&j{(Wlv;A$0*H5T%xA)|
z6Qpi|#E$JiY@V`E8!Z3iUW5e*!_0uuK(oN|Q1ig@*vtgF%>sl$`hf1+3340AjWBbN
OX`r8XLH%oq?pFZnL|hsG

literal 400
zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlWd``qoAIaUsO_*m=~X4l#&V(cT3DEP6dh=
zXCxM+0{I#iItr$mItsN4aKObtB$&43`7R)~$_t)s1=1pH_kITmgV@tU`Yf+V?AQ*(
z<~&??EkR;&O1pQ0Fo^wc;SNiwCFd=Gct_eoZLrv`ORIK*Fi8H8^?Xa9Sr#DkIOa2f
z#h%=YumE9@JTU-jo+ZdEka}eI0nN08nzw^k_d)%;3uG3^&oK7^{R(y;)W6#ScU^S>

diff --git a/pyramid/tests/test_kernel/ref_v_fft.npy b/pyramid/tests/test_kernel/ref_v_fft.npy
index d7588d2717005ee4e12782e7b8d6e8873a0aa17b..700daac74bfb7eae1cc33b8d187163d1af5d079d 100644
GIT binary patch
literal 400
zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlWd``qoAIaUsO_*m=~X4l#&V(cT3DEP6dh=
zXCxM+0{I#iItr$mItsN4aKObtB$&43`7R)~$_t)s1=1pH_kITmgV@tU`Yf+V?AQ*(
z<~&??EkR;&O1pQ0Fo^wc;SNiwCFd=Gct_eoZLrv`ORIK*Fi8H8^?Xa9Sr#DkIOa2f
z#h%=YumE9@JTU-jo+ZdEka}eI0nN08nzw^k_d)%;3uG3^&oK7^{R(y;)W6#ScU^S>

literal 400
zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlWd``qoAIaUsO_*m=~X4l#&V(cT3DEP6dh=
zXCxM+0{I#iItr$mItsN4aKOa?1=E&1-vz{0TwHf8K|*^jt=b8~FnJiAA3WI##Ew(i
zy%U5%?8Dac!FoV!7!a|0zXOCp{C^8~SPI#_w*X==AEpLI&j{(Wlv;A$0*H5T%xA)|
z6Qpi|#E$JiY@V`E8!Z3iUW5e*!_0uuK(oN|Q1ig@*vtgF%>sl$`hf1+3340AjWBbN
OX`r8XLH%oq?pFZnL|hsG

diff --git a/scripts/gui/mag_slicer.py b/scripts/gui/mag_slicer.py
index 90200f4..9181910 100644
--- a/scripts/gui/mag_slicer.py
+++ b/scripts/gui/mag_slicer.py
@@ -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)
diff --git a/scripts/phasemap/phasemap_tilt_series.py b/scripts/phasemap/phasemap_tilt_series.py
index fc3248b..06c0d64 100644
--- a/scripts/phasemap/phasemap_tilt_series.py
+++ b/scripts/phasemap/phasemap_tilt_series.py
@@ -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!'
-- 
GitLab