{"action":"created","comment":{"url":"https://api.github.com/repos/hyperspy/hyperspy/pulls/comments/68011374","id":68011374,"diff_hunk":"@@ -0,0 +1,95 @@\n+Electron Holography\n+*******************\n+\n+HyperSpy provides the user with two classes which can be used to process electron holography data:\n+ \n+* :py:class:`~._signals.hologram_image.HologramImage`\n+* :py:class:`~._signals.wave_image.WaveImage`\n+\n+Both inherit directly from the :py:class:`~._signals.signal2d.Signal2D` class and thus can use all of\n+its functionality. The usage of both classes is explained in the following sections.\n+\n+\n+The HologramImage class\n+=======================\n+\n+The :py:class:`~._signals.hologram_image.HologramImage` class is designed to hold images acquired via\n+electron holography.\n+\n+To transform a :py:class:`~._signals.signal2d.Signa2D` (or subclass) into a\n+:py:class:`~._signals.hologram_image.HologramImage` use:\n+\n+.. code-block:: python\n+\n+    >>> im.set_signal_type('hologram')\n+\n+\n+Reconstruction of holograms\n+---------------------------\n+The detailed description of electron holography and reconstruction of holograms can be found in literature\n+`[Gabor1948] <http://www.nature.com/doifinder/10.1038/161777a0>`_,\n+`[Tonomura1999] <http://www.springer.com/us/book/9783540645559>`_,\n+`[McCartney2007] <http://dx.doi.org/10.1146/annurev.matsci.37.052506.084219>`_,\n+`[Joy1993] <http://dx.doi.org/10.1016/0304-3991(93)90130-P>`_. Fourier based reconstruction of off-axis holograms\n+(includes finding a side band in FFT, isolating and filtering it, recenter and calculate inverse Fourier transform)\n+can be performed using :py:func:`~._signals.hologram_image.HologramImage.reconstruct_phase` method\n+which returns a :py:class:`~._signals.wave_image.WaveImage` class, containing the reconstructed electron wave:\n+\n+.. code-block:: python\n+\n+    >>> wave_image = im.reconstruct_phase()\n+\n+To reconstruct the hologram with a reference wave it should be provided to the method either as Hyperspy's\n+:py:class:`~._signals.signal2d.Signa2D` (or subclass) or as a nparray:\n+\n+.. code-block:: python\n+\n+    >>> wave_image = im.reconstruct_phase(ref_image)\n+\n+The reconstruction parameters can be extracted from metadata of wave_image as follows:\n+\n+.. code-block:: python\n+\n+    >>> reconstruction_param = wave_image.rec_param\n+\n+This option can be used for batch processing as the reconstruction_param can be provided to the reconstruction method as follows:\n+\n+.. code-block:: python\n+\n+    >>> wave_image1 = im1.reconstruct_phase(rec_param=reconstruction_param)\n+\n+Further analyses of the reconstructed wave (phase) can be done using :py:class:`~._signals.wave_image.WaveImage` class\n+functionality (see bellow).\n+\n+\n+The WaveImage class\n+===================\n+\n+The :py:class:`~._signals.wave_image.WaveImage` class can hold information about the complex electron\n+wave. As such, relevant properties like the `amplitude`, `phase` and the `real` and `imag` part can be\n+directly accessed and return appropriate :py:class:`~._signals.signal2d.Signal2D` signals.\n+\n+To transform a :py:class:`~._signals.signal2d.Signa2D` (or subclass) into a \n+:py:class:`~._signals.wave_image.WaveImage` use:\n+\n+.. code-block:: python\n+\n+    >>> im.set_signal_type('wave')","path":"doc/user_guide/electron_holography.rst","position":77,"original_position":77,"commit_id":"ddc79873f1064359c828bd9bb66c75671984e9d5","original_commit_id":"ddc79873f1064359c828bd9bb66c75671984e9d5","user":{"login":"CodeMonkeyJan","id":14233291,"avatar_url":"https://avatars.githubusercontent.com/u/14233291?v=3","gravatar_id":"","url":"https://api.github.com/users/CodeMonkeyJan","html_url":"https://github.com/CodeMonkeyJan","followers_url":"https://api.github.com/users/CodeMonkeyJan/followers","following_url":"https://api.github.com/users/CodeMonkeyJan/following{/other_user}","gists_url":"https://api.github.com/users/CodeMonkeyJan/gists{/gist_id}","starred_url":"https://api.github.com/users/CodeMonkeyJan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CodeMonkeyJan/subscriptions","organizations_url":"https://api.github.com/users/CodeMonkeyJan/orgs","repos_url":"https://api.github.com/users/CodeMonkeyJan/repos","events_url":"https://api.github.com/users/CodeMonkeyJan/events{/privacy}","received_events_url":"https://api.github.com/users/CodeMonkeyJan/received_events","type":"User","site_admin":false},"body":"Everything after this point is now transferred to other super classes, so you should delete them here, too.","created_at":"2016-06-22T08:15:00Z","updated_at":"2016-06-22T08:15:00Z","html_url":"https://github.com/hyperspy/hyperspy/pull/1079#discussion_r68011374","pull_request_url":"https://api.github.com/repos/hyperspy/hyperspy/pulls/1079","_links":{"self":{"href":"https://api.github.com/repos/hyperspy/hyperspy/pulls/comments/68011374"},"html":{"href":"https://github.com/hyperspy/hyperspy/pull/1079#discussion_r68011374"},"pull_request":{"href":"https://api.github.com/repos/hyperspy/hyperspy/pulls/1079"}}},"pull_request":{"url":"https://api.github.com/repos/hyperspy/hyperspy/pulls/1079","id":74232707,"html_url":"https://github.com/hyperspy/hyperspy/pull/1079","diff_url":"https://github.com/hyperspy/hyperspy/pull/1079.diff","patch_url":"https://github.com/hyperspy/hyperspy/pull/1079.patch","issue_url":"https://api.github.com/repos/hyperspy/hyperspy/issues/1079","number":1079,"state":"open","locked":false,"title":"Added basic class for hologram images","user":{"login":"woozey","id":14218320,"avatar_url":"https://avatars.githubusercontent.com/u/14218320?v=3","gravatar_id":"","url":"https://api.github.com/users/woozey","html_url":"https://github.com/woozey","followers_url":"https://api.github.com/users/woozey/followers","following_url":"https://api.github.com/users/woozey/following{/other_user}","gists_url":"https://api.github.com/users/woozey/gists{/gist_id}","starred_url":"https://api.github.com/users/woozey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/woozey/subscriptions","organizations_url":"https://api.github.com/users/woozey/orgs","repos_url":"https://api.github.com/users/woozey/repos","events_url":"https://api.github.com/users/woozey/events{/privacy}","received_events_url":"https://api.github.com/users/woozey/received_events","type":"User","site_admin":false},"body":"Contains:\r\n- Empty class structure from @CodeMonkeyJan \r\n- Reconstruction of holograms\r\n\r\nReplaces PR #1075 \r\nDepends on PR #1058 \r\n","created_at":"2016-06-17T12:11:32Z","updated_at":"2016-06-22T08:15:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":"af3a0729a1244a586ee60ef1ca5893dfac2d675f","assignee":null,"milestone":{"url":"https://api.github.com/repos/hyperspy/hyperspy/milestones/20","html_url":"https://github.com/hyperspy/hyperspy/milestones/RELEASE_next_minor","labels_url":"https://api.github.com/repos/hyperspy/hyperspy/milestones/20/labels","id":1827002,"number":20,"title":"RELEASE_next_minor","description":"Next release that adds functionality in a backwards-compatible manner.","creator":{"login":"francisco-dlp","id":989719,"avatar_url":"https://avatars.githubusercontent.com/u/989719?v=3","gravatar_id":"","url":"https://api.github.com/users/francisco-dlp","html_url":"https://github.com/francisco-dlp","followers_url":"https://api.github.com/users/francisco-dlp/followers","following_url":"https://api.github.com/users/francisco-dlp/following{/other_user}","gists_url":"https://api.github.com/users/francisco-dlp/gists{/gist_id}","starred_url":"https://api.github.com/users/francisco-dlp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/francisco-dlp/subscriptions","organizations_url":"https://api.github.com/users/francisco-dlp/orgs","repos_url":"https://api.github.com/users/francisco-dlp/repos","events_url":"https://api.github.com/users/francisco-dlp/events{/privacy}","received_events_url":"https://api.github.com/users/francisco-dlp/received_events","type":"User","site_admin":false},"open_issues":16,"closed_issues":0,"state":"open","created_at":"2016-06-14T16:25:26Z","updated_at":"2016-06-18T18:17:26Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/hyperspy/hyperspy/pulls/1079/commits","review_comments_url":"https://api.github.com/repos/hyperspy/hyperspy/pulls/1079/comments","review_comment_url":"https://api.github.com/repos/hyperspy/hyperspy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hyperspy/hyperspy/issues/1079/comments","statuses_url":"https://api.github.com/repos/hyperspy/hyperspy/statuses/ddc79873f1064359c828bd9bb66c75671984e9d5","head":{"label":"woozey:master","ref":"master","sha":"ddc79873f1064359c828bd9bb66c75671984e9d5","user":{"login":"woozey","id":14218320,"avatar_url":"https://avatars.githubusercontent.com/u/14218320?v=3","gravatar_id":"","url":"https://api.github.com/users/woozey","html_url":"https://github.com/woozey","followers_url":"https://api.github.com/users/woozey/followers","following_url":"https://api.github.com/users/woozey/following{/other_user}","gists_url":"https://api.github.com/users/woozey/gists{/gist_id}","starred_url":"https://api.github.com/users/woozey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/woozey/subscriptions","organizations_url":"https://api.github.com/users/woozey/orgs","repos_url":"https://api.github.com/users/woozey/repos","events_url":"https://api.github.com/users/woozey/events{/privacy}","received_events_url":"https://api.github.com/users/woozey/received_events","type":"User","site_admin":false},"repo":{"id":61361993,"name":"hyperspy","full_name":"woozey/hyperspy","owner":{"login":"woozey","id":14218320,"avatar_url":"https://avatars.githubusercontent.com/u/14218320?v=3","gravatar_id":"","url":"https://api.github.com/users/woozey","html_url":"https://github.com/woozey","followers_url":"https://api.github.com/users/woozey/followers","following_url":"https://api.github.com/users/woozey/following{/other_user}","gists_url":"https://api.github.com/users/woozey/gists{/gist_id}","starred_url":"https://api.github.com/users/woozey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/woozey/subscriptions","organizations_url":"https://api.github.com/users/woozey/orgs","repos_url":"https://api.github.com/users/woozey/repos","events_url":"https://api.github.com/users/woozey/events{/privacy}","received_events_url":"https://api.github.com/users/woozey/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/woozey/hyperspy","description":"Multidimensional data analysis","fork":true,"url":"https://api.github.com/repos/woozey/hyperspy","forks_url":"https://api.github.com/repos/woozey/hyperspy/forks","keys_url":"https://api.github.com/repos/woozey/hyperspy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/woozey/hyperspy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/woozey/hyperspy/teams","hooks_url":"https://api.github.com/repos/woozey/hyperspy/hooks","issue_events_url":"https://api.github.com/repos/woozey/hyperspy/issues/events{/number}","events_url":"https://api.github.com/repos/woozey/hyperspy/events","assignees_url":"https://api.github.com/repos/woozey/hyperspy/assignees{/user}","branches_url":"https://api.github.com/repos/woozey/hyperspy/branches{/branch}","tags_url":"https://api.github.com/repos/woozey/hyperspy/tags","blobs_url":"https://api.github.com/repos/woozey/hyperspy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/woozey/hyperspy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/woozey/hyperspy/git/refs{/sha}","trees_url":"https://api.github.com/repos/woozey/hyperspy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/woozey/hyperspy/statuses/{sha}","languages_url":"https://api.github.com/repos/woozey/hyperspy/languages","stargazers_url":"https://api.github.com/repos/woozey/hyperspy/stargazers","contributors_url":"https://api.github.com/repos/woozey/hyperspy/contributors","subscribers_url":"https://api.github.com/repos/woozey/hyperspy/subscribers","subscription_url":"https://api.github.com/repos/woozey/hyperspy/subscription","commits_url":"https://api.github.com/repos/woozey/hyperspy/commits{/sha}","git_commits_url":"https://api.github.com/repos/woozey/hyperspy/git/commits{/sha}","comments_url":"https://api.github.com/repos/woozey/hyperspy/comments{/number}","issue_comment_url":"https://api.github.com/repos/woozey/hyperspy/issues/comments{/number}","contents_url":"https://api.github.com/repos/woozey/hyperspy/contents/{+path}","compare_url":"https://api.github.com/repos/woozey/hyperspy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/woozey/hyperspy/merges","archive_url":"https://api.github.com/repos/woozey/hyperspy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/woozey/hyperspy/downloads","issues_url":"https://api.github.com/repos/woozey/hyperspy/issues{/number}","pulls_url":"https://api.github.com/repos/woozey/hyperspy/pulls{/number}","milestones_url":"https://api.github.com/repos/woozey/hyperspy/milestones{/number}","notifications_url":"https://api.github.com/repos/woozey/hyperspy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/woozey/hyperspy/labels{/name}","releases_url":"https://api.github.com/repos/woozey/hyperspy/releases{/id}","deployments_url":"https://api.github.com/repos/woozey/hyperspy/deployments","created_at":"2016-06-17T09:23:24Z","updated_at":"2016-06-17T09:23:27Z","pushed_at":"2016-06-21T14:22:57Z","git_url":"git://github.com/woozey/hyperspy.git","ssh_url":"git@github.com:woozey/hyperspy.git","clone_url":"https://github.com/woozey/hyperspy.git","svn_url":"https://github.com/woozey/hyperspy","homepage":"http://www.hyperspy.org","size":76926,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"hyperspy:master","ref":"master","sha":"1ca0073b1a9a858a2ed755a09b87c006f0952801","user":{"login":"hyperspy","id":989756,"avatar_url":"https://avatars.githubusercontent.com/u/989756?v=3","gravatar_id":"","url":"https://api.github.com/users/hyperspy","html_url":"https://github.com/hyperspy","followers_url":"https://api.github.com/users/hyperspy/followers","following_url":"https://api.github.com/users/hyperspy/following{/other_user}","gists_url":"https://api.github.com/users/hyperspy/gists{/gist_id}","starred_url":"https://api.github.com/users/hyperspy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyperspy/subscriptions","organizations_url":"https://api.github.com/users/hyperspy/orgs","repos_url":"https://api.github.com/users/hyperspy/repos","events_url":"https://api.github.com/users/hyperspy/events{/privacy}","received_events_url":"https://api.github.com/users/hyperspy/received_events","type":"Organization","site_admin":false},"repo":{"id":2233998,"name":"hyperspy","full_name":"hyperspy/hyperspy","owner":{"login":"hyperspy","id":989756,"avatar_url":"https://avatars.githubusercontent.com/u/989756?v=3","gravatar_id":"","url":"https://api.github.com/users/hyperspy","html_url":"https://github.com/hyperspy","followers_url":"https://api.github.com/users/hyperspy/followers","following_url":"https://api.github.com/users/hyperspy/following{/other_user}","gists_url":"https://api.github.com/users/hyperspy/gists{/gist_id}","starred_url":"https://api.github.com/users/hyperspy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hyperspy/subscriptions","organizations_url":"https://api.github.com/users/hyperspy/orgs","repos_url":"https://api.github.com/users/hyperspy/repos","events_url":"https://api.github.com/users/hyperspy/events{/privacy}","received_events_url":"https://api.github.com/users/hyperspy/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hyperspy/hyperspy","description":"Multidimensional data analysis","fork":false,"url":"https://api.github.com/repos/hyperspy/hyperspy","forks_url":"https://api.github.com/repos/hyperspy/hyperspy/forks","keys_url":"https://api.github.com/repos/hyperspy/hyperspy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hyperspy/hyperspy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hyperspy/hyperspy/teams","hooks_url":"https://api.github.com/repos/hyperspy/hyperspy/hooks","issue_events_url":"https://api.github.com/repos/hyperspy/hyperspy/issues/events{/number}","events_url":"https://api.github.com/repos/hyperspy/hyperspy/events","assignees_url":"https://api.github.com/repos/hyperspy/hyperspy/assignees{/user}","branches_url":"https://api.github.com/repos/hyperspy/hyperspy/branches{/branch}","tags_url":"https://api.github.com/repos/hyperspy/hyperspy/tags","blobs_url":"https://api.github.com/repos/hyperspy/hyperspy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hyperspy/hyperspy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hyperspy/hyperspy/git/refs{/sha}","trees_url":"https://api.github.com/repos/hyperspy/hyperspy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hyperspy/hyperspy/statuses/{sha}","languages_url":"https://api.github.com/repos/hyperspy/hyperspy/languages","stargazers_url":"https://api.github.com/repos/hyperspy/hyperspy/stargazers","contributors_url":"https://api.github.com/repos/hyperspy/hyperspy/contributors","subscribers_url":"https://api.github.com/repos/hyperspy/hyperspy/subscribers","subscription_url":"https://api.github.com/repos/hyperspy/hyperspy/subscription","commits_url":"https://api.github.com/repos/hyperspy/hyperspy/commits{/sha}","git_commits_url":"https://api.github.com/repos/hyperspy/hyperspy/git/commits{/sha}","comments_url":"https://api.github.com/repos/hyperspy/hyperspy/comments{/number}","issue_comment_url":"https://api.github.com/repos/hyperspy/hyperspy/issues/comments{/number}","contents_url":"https://api.github.com/repos/hyperspy/hyperspy/contents/{+path}","compare_url":"https://api.github.com/repos/hyperspy/hyperspy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hyperspy/hyperspy/merges","archive_url":"https://api.github.com/repos/hyperspy/hyperspy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hyperspy/hyperspy/downloads","issues_url":"https://api.github.com/repos/hyperspy/hyperspy/issues{/number}","pulls_url":"https://api.github.com/repos/hyperspy/hyperspy/pulls{/number}","milestones_url":"https://api.github.com/repos/hyperspy/hyperspy/milestones{/number}","notifications_url":"https://api.github.com/repos/hyperspy/hyperspy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hyperspy/hyperspy/labels{/name}","releases_url":"https://api.github.com/repos/hyperspy/hyperspy/releases{/id}","deployments_url":"https://api.github.com/repos/hyperspy/hyperspy/deployments","created_at":"2011-08-19T13:14:36Z","updated_at":"2016-06-19T10:37:00Z","pushed_at":"2016-06-22T08:13:03Z","git_url":"git://github.com/hyperspy/hyperspy.git","ssh_url":"git@github.com:hyperspy/hyperspy.git","clone_url":"https://github.com/hyperspy/hyperspy.git","svn_url":"https://github.com/hyperspy/hyperspy","homepage":"http://www.hyperspy.org","size":100600,"stargazers_count":59,"watchers_count":59,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":49,"mirror_url":null,"open_issues_count":169,"forks":49,"open_issues":169,"watchers":59,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hyperspy/hyperspy/pulls/1079"},"html":{"href":"https://github.com/hyperspy/hyperspy/pull/1079"},"issue":{"href":"https://api.github.com/repos/hyperspy/hyperspy/issues/1079"},"comments":{"href":"https://api.github.com/repos/hyperspy/hyperspy/issues/1079/comments"},"review_comments":{"href":"https://api.github.com/repos/hyperspy/hyperspy/pulls/1079/comments"},"review_comment":{"href":"https://api.github.com/repos/hyperspy/hyperspy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hyperspy/hyperspy/pulls/1079/commits"},"statuses":{"href":"https://api.github.com/repos/hyperspy/hyperspy/statuses/ddc79873f1064359c828bd9bb66c75671984e9d5"}}}}
{"actor":{"display_login":"CodeMonkeyJan"}}