Reading a Nion File with ScopeReader#
Gerd Duscher
12/05/2020
This document is a simple example of how to read Nion Files into the sidpy dataformat
UNDER CONSTRUCTION
Introduction#
Swift from Nion runs on all of Nion’s STEMs for acquisition. We read and plot such files here.
Import all necessary packages#
There are a few setup procedures that need to be followed before any code is written. In this step, we simply load a few python packages that will be necessary in the later steps.
[5]:
%pylab notebook
%gui qt
import os
import sys
from sidpy.io.interface_utils import openfile_dialog
sys.path.append('../')
from SciFiReaders import NionReader
import SciFiReaders
print('SciFiReaders version: ', SciFiReaders.__version__)
import sidpy
print('sidpy version: ', sidpy.__version__)
Populating the interactive namespace from numpy and matplotlib
SciFiReaders version: 0.0.1
sidpy version: 0.0.5
Open a file dialog#
Here we select the name of the file to open. We will be using the sidpy interface to do that.
The openfile_dialog will open QT file dialog to select a file.
For examples go to the example_data directory in the original folder of this notebook.
Note.: in some operating systems the window will not show up on top, look in your task bar.
[2]:
file_name = openfile_dialog()
print(file_name)
/home/o2d/Dropbox (ORNL)/TEM data/2021/2021-04-16-Cr-graphene-US100-60kV-60pA/Nion Swift Project 20210416 Data/2021/04/16/20210416-142215/data_0UEJQVTQ9X8OQYF8HJO70C8CB.ndata
Catch a bad selection or cancelling of file selection#
[3]:
if len(file_name) < 3:
print('No valid file selected')
else:
path, base_file_name = os.path.split(file_name)
basename, extension = os.path.splitext(base_file_name)
if extension not in ['.ndata', '.h5']:
print('File not supported')
Read file#
We use the ScopeReader to read the file into a sidpy dataset. All metadata (absolutely everything) is saved in the original_metadata attribute of the sidpy Dataset. If the selected file is not a Nion File you get a TypeError.
[6]:
nion_reader = NionReader(file_name)
dataset = nion_reader.read()
print(dataset)
dataset
sidpy.Dataset of type IMAGE with:
dask.array<generic, shape=(256, 256), dtype=float32, chunksize=(256, 256), chunktype=numpy.ndarray>
data contains: intensity (counts)
and Dimensions:
y: distance (nm) of size (256,)
x: distance (nm) of size (256,)
[6]:
|
Plot File#
Only one command is necessary to plot the file.
[7]:
dataset.plot()
Original Metadata#
Digital micrograph stores a lot of metadata in the file and we read all of them and store that information in the original_metadata.
[8]:
dataset.view_original_metadata()
type : data-item
uuid : 1242c2e8-618b-49c2-aea7-f5a5dbd03373
created : 2021-04-16T20:40:19.416463
is_sequence : False
intensity_calibration :
offset : 0.0
scale : 1.0
units :
dimensional_calibrations : [{'offset': -10.0, 'scale': 0.078125, 'units': 'nm'}, {'offset': -10.0, 'scale': 0.078125, 'units': 'nm'}]
timezone : America/New_York
timezone_offset : -0400
metadata :
instrument :
high_tension : 60000.0
defocus : 3.3413595086161986e-10
ImageScanned :
C1 ConstW : 0.535
C10 : 3.3413595086161986e-10
C10Control : 0.0
C12.a : 7.790575877604827e-09
C12.b : -9.344480956695125e-09
C2 ConstW : 0.759
C21.a : 2.3036487004760242e-07
C21.b : 1.580289523538976e-07
C23.a : 2.8574413811668664e-08
C23.b : 2.6551966593848706e-08
C3 ConstW : 0.971829
C30 : 1.986602299690654e-06
C32.a : 6.5178947510754046e-06
C32.b : 9.143814019988201e-06
C34.a : 3.281084172769262e-06
C34.b : 2.3774745854848426e-06
C41.a : -0.0003642179172182993
C41.b : -0.0002498513591704886
C43.a : -6.776627974180181e-05
C43.b : -6.296990054644458e-05
C45.a : -0.00026451435339213097
C45.b : -6.462188328094359e-05
C50 : -0.0052123977838471015
C52.a : -0.011348718258983872
C52.b : -0.002997953401518279
C54.a : -0.005022485544683429
C54.b : -0.0015520939749976963
C56.a : 0.0010483179923364597
C56.b : -0.00016883886847779785
EHT : 60000.0
PMTBF_gain : 4096000.0
PMTDF_gain : 1024000.0
SShft.sx : -0.00012910587277402402
SShft.sy : -0.00019696069461356278
SShftZ : -3.4789550834968264e-05
StageCoordU : 0.0004952773115228157
StageCoordV : 0.0017437740677182785
StageOutA : -3.5118041570771e-08
StageOutB : 3.114038584183673e-08
StageOutX : -0.00012910587277402402
StageOutY : -0.00019696069461356278
StageOutZ : -3.4789550834968264e-05
PL1 : 0.54036
PL2 : 0.0
PL3 : 0.8263
PL4 : 1.241
scan :
hardware_source_id : superscan
hardware_source_name : SuperScan
scan_id : 02a1025e-d701-415f-ac1e-7472c803906a
center_x_nm : 0.0
center_y_nm : 0.0
fov_nm : 20.0
rotation : 0.21293016874330817
rotation_deg : 12.199999999999998
scan_context_size : [256, 256]
subscan_fractional_size : [1.0, 1.0]
scan_size : [256, 256]
subscan_fractional_center : [0.5, 0.5]
scan_device_parameters :
size : [256, 256]
center_nm : [0.0, 0.0]
pixel_time_us : 750
fov_nm : 20.0
rotation_rad : 0.21293016874330817
ac_line_sync : False
ac_frame_sync : False
flyback_time_us : 300
external_clock_mode : 1
external_clock_wait_time_ms : 20000
external_scan_mode : 0
external_scan_ratio : 1.0
subscan_pixel_size : [256, 256]
subscan_fractional_size : [1.0, 1.0]
subscan_fractional_center : [0.5, 0.5]
subscan_rotation : 0.0
scan_id : 02a1025e-d701-415f-ac1e-7472c803906a
section_rect : [[0, 0], [256, 256]]
data_shape_override : [256, 256]
state_override : complete
top_left_override : [0, 0]
scan_device_properties :
ac_line_sync : 2.0
center_x_nm : 0.0
center_y_nm : 0.0
flyback_time_us : 1500.0
fov_nm : 20.0
line_time_us : 193500.0
pixel_time_us : 750.0
pixels_x : 256.0
pixels_y : 256.0
requested_pixel_time_us : 750.000006519258
rotation_deg : 12.2
rotation_rad : 0.212930168743308
mag_boards :
MagBoard 0 DAC 0 : 0.0
MagBoard 0 DAC 1 : 0.0
MagBoard 0 DAC 10 : 40403.0
MagBoard 0 DAC 11 : 16709.0
MagBoard 0 DAC 2 : 0.0
MagBoard 0 DAC 3 : 0.0
MagBoard 0 DAC 4 : 40433.0
MagBoard 0 DAC 5 : 17084.0
MagBoard 0 DAC 6 : 1434.0
MagBoard 0 DAC 7 : 64215.0
MagBoard 0 DAC 8 : 64586.0
MagBoard 0 DAC 9 : 866.0
MagBoard 0 Relay : 32.0
MagBoard 1 DAC 0 : 0.0
MagBoard 1 DAC 1 : 0.0
MagBoard 1 DAC 10 : 0.0
MagBoard 1 DAC 11 : 0.0
MagBoard 1 DAC 2 : 0.0
MagBoard 1 DAC 3 : 0.0
MagBoard 1 DAC 4 : 0.0
MagBoard 1 DAC 5 : 0.0
MagBoard 1 DAC 6 : 0.0
MagBoard 1 DAC 7 : 0.0
MagBoard 1 DAC 8 : 0.0
MagBoard 1 DAC 9 : 0.0
MagBoard 1 Relay : 32.0
valid_rows : 256
hardware_source :
hardware_source_id : superscan
hardware_source_name : SuperScan
exposure : 49.152
frame_index : 0
channel_id : a
channel_name : a
pixel_time_us : 750.0
line_time_us : 193500.0
valid_rows : 256
channel_index : 0
reference_key : superscan_a
view_id : fd80be9e-5016-4b24-9aa3-6600cc176395
title : Spectrum Image (a)
session_id : 20210416-142215
session :
site : Oak Ridge National Laboratory
instrument : NION UltraSTEM 100
task :
microscopist :
sample :
sample_area :
category : persistent
version : 13
modified : 2021-04-16T20:40:31.628236
data_shape : [256, 256]
data_dtype : float32
collection_dimension_count : 0
datum_dimension_count : 2
data_modified : 2021-04-16T20:40:31.399368
[ ]: