From 68c3f55cbd0f7fb2132e61d29d7db52ab954e65b Mon Sep 17 00:00:00 2001 From: Peter Jacobson Date: Thu, 2 Jul 2026 23:43:57 +1000 Subject: [PATCH] Fix Createc scan range: pair decoded planes with their true physical extent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit read_dat, the NPY converter provenance, and the browse metadata builder all paired the programmed acquisition frame (Length x/y[A]) with the *decoded* plane shape, which drops Createc's first column and any untraced partial-scan rows. The pixel step is fixed by the acquisition grid — confirmed by the header's own Delta X [Dac] * Dacto[A]xy calibration — so this pairing overestimated pixel_size_x by Nx/(Nx-1) on every scan (0.2% at 512 px, plus a phantom x/y anisotropy on physically square scans) and pixel_size_y by Ny/trimmed_Ny on partial scans. That last case is not hypothetical: the repo's own A250320 sample has 60 completed rows of a 512-row frame, so its y pixel size was wrong by 8.5x. New decoded_scan_range_m(report) computes step-from-acquisition-grid times decoded pixel count; all three call sites now use it. scan_range_m_from_header keeps returning the programmed frame, with a docstring pointing decoded-array callers at the new function. The committed sample bundles under test_data/output_raw_npy were regenerated with the fixed converter (arrays are byte-identical; sidecar scan_range_m values corrected, machine-local paths refreshed, and the stale errors.json from a previously collided run removed). Regression tests cover the fixture step/squareness and a synthetic partial scan through the real decode path. Co-Authored-By: Claude Fable 5 --- probeflow/core/metadata.py | 8 +- probeflow/io/converters/createc_dat_to_npy.py | 5 +- probeflow/io/readers/createc_dat.py | 27 +- probeflow/io/readers/createc_scan.py | 6 +- .../output_raw_npy/npy/A250320.probeflow.json | 32 +- .../npy/A250320.provenance.json | 30 +- .../npy/A250407.141806_physical_npy/hdr.txt | 1060 ++++++++--------- .../npy/A250407.141806_raw_npy/hdr.txt | 1060 ++++++++--------- .../output_raw_npy/npy/A250407.probeflow.json | 32 +- .../npy/A250407.provenance.json | 30 +- .../output_raw_npy/npy/A260317.probeflow.json | 30 +- .../npy/A260317.provenance.json | 28 +- test_data/output_raw_npy/npy/errors.json | 5 - tests/test_createc_dat_decode.py | 66 + 14 files changed, 1255 insertions(+), 1164 deletions(-) delete mode 100644 test_data/output_raw_npy/npy/errors.json diff --git a/probeflow/core/metadata.py b/probeflow/core/metadata.py index 209430d..f55cfe1 100644 --- a/probeflow/core/metadata.py +++ b/probeflow/core/metadata.py @@ -128,9 +128,11 @@ def metadata_from_createc_dat_report(report) -> ScanMetadata: from probeflow.io.createc_interpretation import createc_dat_experiment_metadata experiment_metadata = createc_dat_experiment_metadata(hdr) - lx_a = _f(hdr.get("Length x[A]", "0"), 0.0) - ly_a = _f(hdr.get("Length y[A]", "0"), 0.0) - scan_range = (lx_a * 1e-10, ly_a * 1e-10) + from probeflow.io.readers.createc_dat import decoded_scan_range_m + + # Extent of the decoded planes, consistent with ``shape`` below — pairing + # the full programmed frame with the decoded shape skews pixel sizes. + scan_range = decoded_scan_range_m(report) return ScanMetadata( path=Path(report.path), diff --git a/probeflow/io/converters/createc_dat_to_npy.py b/probeflow/io/converters/createc_dat_to_npy.py index 51f0ac8..e8fd337 100644 --- a/probeflow/io/converters/createc_dat_to_npy.py +++ b/probeflow/io/converters/createc_dat_to_npy.py @@ -16,7 +16,7 @@ from probeflow.io.readers.createc_scan import ( createc_public_planes_from_report, ) -from probeflow.io.readers.createc_dat import scan_range_m_from_header +from probeflow.io.readers.createc_dat import decoded_scan_range_m from probeflow.provenance.export import write_provenance_sidecars log = logging.getLogger(__name__) @@ -228,7 +228,8 @@ def build_createc_dat_npy_bundle( bundle_name=bundle_dir.name, raw_definition=_basis_note(basis), scan_pixels=(int(report.decoded_Nx), int(report.decoded_Ny)), - scan_range_m=scan_range_m_from_header(report.header), + # Matches scan_pixels: the decoded planes' extent, not the programmed frame. + scan_range_m=decoded_scan_range_m(report), original_shape=(int(report.original_Nx), int(report.original_Ny)), decoded_shape=(int(report.decoded_Nx), int(report.decoded_Ny)), detected_channel_count=int(report.detected_channel_count), diff --git a/probeflow/io/readers/createc_dat.py b/probeflow/io/readers/createc_dat.py index da18f04..df0f99d 100644 --- a/probeflow/io/readers/createc_dat.py +++ b/probeflow/io/readers/createc_dat.py @@ -222,13 +222,38 @@ def scale_channels_for_scan(report: CreatecDatDecodeReport) -> list[np.ndarray]: def scan_range_m_from_header(hdr: dict[str, str]) -> tuple[float, float]: - """Return Createc lateral scan range in metres.""" + """Return the *programmed acquisition frame* in metres. + + ``Length x/y[A]`` describe the frame the controller scanned: + ``original_Nx`` × ``original_Ny`` pixels. The decoded planes ProbeFlow + exposes are smaller (first column removed; partial scans row-trimmed), so + callers pairing a physical range with decoded arrays must use + :func:`decoded_scan_range_m` instead. + """ lx_a = _f(hdr.get("Length x[A]", "0"), 0.0) ly_a = _f(hdr.get("Length y[A]", "0"), 0.0) return (lx_a * 1e-10, ly_a * 1e-10) +def decoded_scan_range_m(report: CreatecDatDecodeReport) -> tuple[float, float]: + """Physical extent of the decoded planes in metres. + + The per-pixel step is fixed by the acquisition grid + (``Length / original_N``; independently confirmed by the header's own + ``Delta X [Dac] * Dacto[A]xy`` calibration), so the decoded extent is that + step times the decoded pixel count. Using the full-frame lengths with the + decoded shape would overestimate the x pixel size by ``Nx/(Nx-1)`` on every + scan (and the y pixel size by ``Ny/trimmed_Ny`` on partial scans) in every + downstream measurement, FFT axis, and lattice vector. + """ + + full_x_m, full_y_m = scan_range_m_from_header(report.original_header) + px_x_m = full_x_m / report.original_Nx if report.original_Nx > 0 else 0.0 + px_y_m = full_y_m / report.original_Ny if report.original_Ny > 0 else 0.0 + return (px_x_m * report.decoded_Nx, px_y_m * report.decoded_Ny) + + def _split_createc_dat_payload(path: Path, raw: bytes) -> tuple[bytes, bytes]: """Return ``(header_bytes, decompressed_payload)`` for a Createc image. diff --git a/probeflow/io/readers/createc_scan.py b/probeflow/io/readers/createc_scan.py index 0052ac9..acdbf8e 100644 --- a/probeflow/io/readers/createc_scan.py +++ b/probeflow/io/readers/createc_scan.py @@ -47,7 +47,7 @@ has_legacy_stm_two_channel_layout, read_createc_dat_report, scale_channels_for_scan, - scan_range_m_from_header, + decoded_scan_range_m, ) from probeflow.core.scan_model import Scan @@ -269,7 +269,9 @@ def _as_f64(arr: np.ndarray) -> np.ndarray: plane_units=plane_units, plane_synthetic=synthetic, header=hdr, - scan_range_m=scan_range_m_from_header(hdr), + # Extent of the decoded planes (first column removed, partial rows + # trimmed), not the programmed frame — keeps pixel sizes physical. + scan_range_m=decoded_scan_range_m(report), source_path=path, source_format="dat", experiment_metadata=createc_dat_experiment_metadata(hdr), diff --git a/test_data/output_raw_npy/npy/A250320.probeflow.json b/test_data/output_raw_npy/npy/A250320.probeflow.json index 01f77a3..bae4f2e 100644 --- a/test_data/output_raw_npy/npy/A250320.probeflow.json +++ b/test_data/output_raw_npy/npy/A250320.probeflow.json @@ -1,18 +1,18 @@ { "artifact_type": "createc_dat_npy_bundle", - "source_path": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\sample_input\\A250320.191933.dat", + "source_path": "/Users/peterjacobson/ProbeFlow/test_data/sample_input/A250320.191933.dat", "source_format": "dat", - "basis": "raw", - "bundle_dir": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A250320.191933_raw_npy", - "bundle_name": "A250320.191933_raw_npy", - "raw_definition": "RAW means decoded Createc numerical arrays after ProbeFlow's parser cleanup, before physical scaling or PNG normalization. It is not a byte-exact copy of the compressed file payload.", + "basis": "physical", + "bundle_dir": "test_data/output_raw_npy/npy/A250320.191933_physical_npy", + "bundle_name": "A250320.191933_physical_npy", + "raw_definition": "Physical arrays are converted with ProbeFlow's Createc calibration logic and match the public Scan representation.", "scan_pixels": [ 511, 60 ], "scan_range_m": [ - 2.0020142000000002e-07, - 2.0020142000000002e-07 + 1.9981040160156252e-07, + 2.3461103906250004e-08 ], "original_shape": [ 512, @@ -35,7 +35,7 @@ "file_name": "A250320.191933_1.npy", "public_name": "Z forward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 0, "source_name": "Z forward", "source_unit": "m", @@ -43,7 +43,7 @@ "direction": "forward", "synthetic": false, "scale_factor": 3.8000000000000005e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 60, 511 @@ -54,7 +54,7 @@ "file_name": "A250320.191933_2.npy", "public_name": "Z backward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 0, "source_name": "Z forward", "source_unit": "m", @@ -62,7 +62,7 @@ "direction": "backward", "synthetic": true, "scale_factor": 3.8000000000000005e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 60, 511 @@ -73,7 +73,7 @@ "file_name": "A250320.191933_3.npy", "public_name": "Current forward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 1, "source_name": "Current forward", "source_unit": "A", @@ -81,7 +81,7 @@ "direction": "forward", "synthetic": false, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 60, 511 @@ -92,7 +92,7 @@ "file_name": "A250320.191933_4.npy", "public_name": "Current backward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 1, "source_name": "Current forward", "source_unit": "A", @@ -100,7 +100,7 @@ "direction": "backward", "synthetic": true, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 60, 511 @@ -635,6 +635,6 @@ "PSTMAFM.EXE_Date": "07/10/2022 07:44:44 DSP-COMPDATE= Mar 6 2022 12:44:26", "memo:0": "" }, - "export_path": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A250320.191933_raw_npy", + "export_path": "test_data/output_raw_npy/npy/A250320.191933_physical_npy", "export_format": "npy" } \ No newline at end of file diff --git a/test_data/output_raw_npy/npy/A250320.provenance.json b/test_data/output_raw_npy/npy/A250320.provenance.json index 45b7f3b..fc6bdb8 100644 --- a/test_data/output_raw_npy/npy/A250320.provenance.json +++ b/test_data/output_raw_npy/npy/A250320.provenance.json @@ -1,18 +1,18 @@ { "artifact_type": "createc_dat_npy_bundle", - "source_path": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\sample_input\\A250320.191933.dat", + "source_path": "/Users/peterjacobson/ProbeFlow/test_data/sample_input/A250320.191933.dat", "source_format": "dat", - "basis": "raw", - "bundle_dir": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A250320.191933_raw_npy", - "bundle_name": "A250320.191933_raw_npy", - "raw_definition": "RAW means decoded Createc numerical arrays after ProbeFlow's parser cleanup, before physical scaling or PNG normalization. It is not a byte-exact copy of the compressed file payload.", + "basis": "physical", + "bundle_dir": "test_data/output_raw_npy/npy/A250320.191933_physical_npy", + "bundle_name": "A250320.191933_physical_npy", + "raw_definition": "Physical arrays are converted with ProbeFlow's Createc calibration logic and match the public Scan representation.", "scan_pixels": [ 511, 60 ], "scan_range_m": [ - 2.0020142000000002e-07, - 2.0020142000000002e-07 + 1.9981040160156252e-07, + 2.3461103906250004e-08 ], "original_shape": [ 512, @@ -35,7 +35,7 @@ "file_name": "A250320.191933_1.npy", "public_name": "Z forward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 0, "source_name": "Z forward", "source_unit": "m", @@ -43,7 +43,7 @@ "direction": "forward", "synthetic": false, "scale_factor": 3.8000000000000005e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 60, 511 @@ -54,7 +54,7 @@ "file_name": "A250320.191933_2.npy", "public_name": "Z backward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 0, "source_name": "Z forward", "source_unit": "m", @@ -62,7 +62,7 @@ "direction": "backward", "synthetic": true, "scale_factor": 3.8000000000000005e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 60, 511 @@ -73,7 +73,7 @@ "file_name": "A250320.191933_3.npy", "public_name": "Current forward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 1, "source_name": "Current forward", "source_unit": "A", @@ -81,7 +81,7 @@ "direction": "forward", "synthetic": false, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 60, 511 @@ -92,7 +92,7 @@ "file_name": "A250320.191933_4.npy", "public_name": "Current backward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 1, "source_name": "Current forward", "source_unit": "A", @@ -100,7 +100,7 @@ "direction": "backward", "synthetic": true, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 60, 511 diff --git a/test_data/output_raw_npy/npy/A250407.141806_physical_npy/hdr.txt b/test_data/output_raw_npy/npy/A250407.141806_physical_npy/hdr.txt index 88e1b11..bbf86de 100644 --- a/test_data/output_raw_npy/npy/A250407.141806_physical_npy/hdr.txt +++ b/test_data/output_raw_npy/npy/A250407.141806_physical_npy/hdr.txt @@ -1,530 +1,530 @@ -DAC-Type: 20bit -Titel: LN2 -Titel(File): LN2 -Titel(File) / Titel: LN2 -Delta X [Dac]: 213 -Delta X: 213 -Delta X / Delta X [Dac]: 213 -Delta Y [Dac]: 213 -Delta Y: 213 -Delta Y / Delta Y [Dac]: 213 -Num.X: 255 -Num.X / Num.X: 256 -Num.Y: 9 -Num.Y / Num.Y: 256 -Delay X+: 1 -Delay X+ / Delay X+: 1 -Delay X-: 1 -Delay X- / Delay X-: 1 -Delay Y: 1 -Delay Y / Delay Y: 1 -DDeltaX: 512 -DX_DIV_DDelta-X: 512 -DX: 512 -DX_DIV_DDelta-X / DX/DDeltaX: 512 -GainX: 10 -GainX / GainX: 10 -GainY: 10 -GainY / GainY: 10 -GainZ: 10 -GainZ / GainZ: 10 -Rotation: 0.00 -Rotation / Rotation: 0.00 -BiasVolt.[mV]: 653.80 -BiasVoltage: 653.80 -BiasVoltage / BiasVolt.[mV]: 653.80 -GainPre 10^: 9 -Gainpreamp: 9 -Gainpreamp / GainPre 10^: 9 -ScanChannels: 2 -Chan(1,2,4): 2 -Chan(1,2,4) / ScanChannels: 2 -PlanDx: -0.0100 -PlanDx / PlanDx: -0.0100 -PlanDy: 0.0500 -PlanDy / PlanDy: 0.0500 -OffsetX: 107692.6 -Scanrotoffx: 107692.6 -Scanrotoffx / OffsetX: 107692.6 -OffsetY: -43394.5 -Scanrotoffy: -43394.5 -Scanrotoffy / OffsetY: -43394.5 -ZPiezoconst: 19.20 -ZPiezoconst / ZPiezoconst: 19.20 -Xpiezoconst: 96.00 -Xpiezoconst / Xpiezoconst: 96.00 -YPiezoconst: 96.00 -YPiezoconst / YPiezoconst: 96.00 -RepeatRotinc: 0 -RepeatRotinc / RepeatRotinc: 0 -RptBVoltinc: 0 -RptBVoltinc / RptBVoltinc: 0 -Repeatinterval: 0 -Repeatinterval / Repeatinterval: 0 -Repeatcounter: 0 -Repeatcounter / Repeatcounter: 0 -RepeatXoffset: 0 -RepeatXoffset / RepeatXoffset: 0 -RepeatYoffset: 0 -RepeatYoffset / RepeatYoffset: 0 -Scantype: 1 -Scantype / Scantype: 1 -ScanXMode: 2 -Scanmode: 2 -Scanmode / ScanXMode: 2 -Scancoarse: 0 -Scancoarse / Scancoarse: 0 -CHMode: 0 -CHMode / CHMode: 0 -Channels: 4 -Channels / Channels: 4 -Preamptype: 1 -Preamptype / Preamptype: 1 -VFBMode: 0 -VFBMode / VFBMode: 0 -RotCMode: 1 -RotCMode / RotCMode: 1 -ScanYMode: 1 -ScanYMode / ScanYMode: 1 -ScanYDirec: 1 -ScanYDirec / ScanYDirec: 1 -ScanmodeSine: 0 -ScanmodeSine / ScanmodeSine: 0 -CHModeZoff: 0.00 -CHModeZoff / CHModeZoff: 0.00 -CHModeGainpreamp: 9 -CHModeGainpreamp / CHModeGainpreamp: 9 -CHModeBias[mV]: 1000.00 -CHModeBias[mV] / CHModeBias[mV]: 1000.00 -Channelselectval: 3 -Channelselectval / Channelselectval: 3 -Scancentermode: 0 -Scancentermode / Scancentermode: 0 -sec]: 0.00000 -Drift_X: 0.00000 -Drift_X[Å: 0.00000 -Drift_X / Drift_X[Å/sec]: 0.00000 -Drift_Y: 0.00000 -Drift_Y[Å: 0.00000 -Drift_Y / Drift_Y[Å/sec]: 0.00000 -Scandvinc: 0 -Scandvinc / Scandvinc: 0 -Scandiinc: 0 -Scandiinc / Scandiinc: 0 -Scandzinc: 0 -Scandzinc / Scandzinc: 0 -LinkFilename: A250407.141806.dat -LinkFilename / LinkFilename: A250407.141806.dat -Username: -Username / Username: -LastFile_SHA2: -LastFile_SHA2 / LastFile_SHA2: -MVoltnumber11: 1 -MVoltnumber11 / MVoltnumber11: 1 -MVolt_1: 0.00000 -MVolt_1 / MVolt_1: 0.00000 -MVolt_2: 0.00000 -MVolt_2 / MVolt_2: 0.00000 -MVolt_3: 0.00000 -MVolt_3 / MVolt_3: 0.00000 -MVolt_4: 0.00000 -MVolt_4 / MVolt_4: 0.00000 -MVolt_5: 0.00000 -MVolt_5 / MVolt_5: 0.00000 -MVolt_6: 0.00000 -MVolt_6 / MVolt_6: 0.00000 -MVolt_7: 0.00000 -MVolt_7 / MVolt_7: 0.00000 -MVolt_8: 0.00000 -MVolt_8 / MVolt_8: 0.00000 -MVolt_9: 0.00000 -MVolt_9 / MVolt_9: 0.00000 -MVolt_10: 0.00000 -MVolt_10 / MVolt_10: 0.00000 -Mcurrent_1: 0.0E+00 -Mcurrent_1 / Mcurrent_1: 0.0E+00 -Mcurrent_2: 0.0E+00 -Mcurrent_2 / Mcurrent_2: 0.0E+00 -Mcurrent_3: 0.0E+00 -Mcurrent_3 / Mcurrent_3: 0.0E+00 -Mcurrent_4: 0.0E+00 -Mcurrent_4 / Mcurrent_4: 0.0E+00 -Mcurrent_5: 0.0E+00 -Mcurrent_5 / Mcurrent_5: 0.0E+00 -Mcurrent_6: 0.0E+00 -Mcurrent_6 / Mcurrent_6: 0.0E+00 -Mcurrent_7: 0.0E+00 -Mcurrent_7 / Mcurrent_7: 0.0E+00 -Mcurrent_8: 0.0E+00 -Mcurrent_8 / Mcurrent_8: 0.0E+00 -Mcurrent_9: 0.0E+00 -Mcurrent_9 / Mcurrent_9: 0.0E+00 -Mcurrent_10: 0.0E+00 -Mcurrent_10 / Mcurrent_10: 0.0E+00 -MdF_1: 0.000 -MdF_1 / MdF_1: 0.000 -MdF_2: 0.000 -MdF_2 / MdF_2: 0.000 -MdF_3: 0.000 -MdF_3 / MdF_3: 0.000 -MdF_4: 0.000 -MdF_4 / MdF_4: 0.000 -MdF_5: 0.000 -MdF_5 / MdF_5: 0.000 -MdF_6: 0.000 -MdF_6 / MdF_6: 0.000 -MdF_7: 0.000 -MdF_7 / MdF_7: 0.000 -MdF_8: 0.000 -MdF_8 / MdF_8: 0.000 -MdF_9: 0.000 -MdF_9 / MdF_9: 0.000 -MdF_10: 0.000 -MdF_10 / MdF_10: 0.000 -MCHeight_1: 0.000 -MCHeight_1 / MCHeight_1: 0.000 -MCHeight_2: 0.000 -MCHeight_2 / MCHeight_2: 0.000 -MCHeight_3: 0.000 -MCHeight_3 / MCHeight_3: 0.000 -MCHeight_4: 0.000 -MCHeight_4 / MCHeight_4: 0.000 -MCHeight_5: 0.000 -MCHeight_5 / MCHeight_5: 0.000 -MCHeight_6: 0.000 -MCHeight_6 / MCHeight_6: 0.000 -MCHeight_7: 0.000 -MCHeight_7 / MCHeight_7: 0.000 -MCHeight_8: 0.000 -MCHeight_8 / MCHeight_8: 0.000 -MCHeight_9: 0.000 -MCHeight_9 / MCHeight_9: 0.000 -MCHeight_10: 0.000 -MCHeight_10 / MCHeight_10: 0.000 -MFBControl_1: 1 -MFBControl_1 / MFBControl_1: 1 -MFBControl_2: 1 -MFBControl_2 / MFBControl_2: 1 -MFBControl_3: 1 -MFBControl_3 / MFBControl_3: 1 -MFBControl_4: 1 -MFBControl_4 / MFBControl_4: 1 -MFBControl_5: 1 -MFBControl_5 / MFBControl_5: 1 -MFBControl_6: 1 -MFBControl_6 / MFBControl_6: 1 -MFBControl_7: 1 -MFBControl_7 / MFBControl_7: 1 -MFBControl_8: 1 -MFBControl_8 / MFBControl_8: 1 -MFBControl_9: 1 -MFBControl_9 / MFBControl_9: 1 -MFBControl_10: 1 -MFBControl_10 / MFBControl_10: 1 -Poti_BiasVoltOffset: 0.000 -Poti_BiasVoltOffset / Poti_BiasVoltOffset: 0.000 -Poti_DAC4Volt: 0.000 -Poti_DAC4Volt / Poti_DAC4Volt: 0.000 -Poti_DAC5Volt: 0.000 -Poti_DAC5Volt / Poti_DAC5Volt: 0.000 -Poti_TipAdvance: 0.000 -Poti_TipAdvance / Poti_TipAdvance: 0.000 -Poti_FBDelay: 0.000 -Poti_FBDelay / Poti_FBDelay: 0.000 -Poti_FBDuration: 0.000 -Poti_FBDuration / Poti_FBDuration: 0.000 -Poti_FBDelay2: 0.000 -Poti_FBDelay2 / Poti_FBDelay2: 0.000 -Poti_BiasCompensation: 0 -Poti_BiasCompensation / Poti_BiasCompensation: 0 -VProbe_ZFBTime[sec]: 1.000E-01 -VProbe_ZFBTime[sec] / VProbe_ZFBTime[sec]: 1.000E-01 -VProbe_ZFBDelay[sec]: 1.000E-01 -VProbe_ZFBDelay[sec] / VProbe_ZFBDelay[sec]: 1.000E-01 -VProbe_VFBTime[sec]: 1.000E-01 -VProbe_VFBTime[sec] / VProbe_VFBTime[sec]: 1.000E-01 -VProbe_VFBDelay[sec]: 1.000E-01 -VProbe_VFBDelay[sec] / VProbe_VFBDelay[sec]: 1.000E-01 -VProbe_VFBRC[sec]: -2.000E+00 -VProbe_VFBRC[sec] / VProbe_VFBRC[sec]: -2.000E+00 -SimDatZcal: 1.000E+00 -SimDatZcal / SimDatZcal: 1.000E+00 -SimDatXcal: 1.000E+00 -SimDatXcal / SimDatXcal: 1.000E+00 -SimDatYcal: 1.000E+00 -SimDatYcal / SimDatYcal: 1.000E+00 -SimSTMZcal: 1.907E-04 -SimSTMZcal / SimSTMZcal: 1.907E-04 -SimSTMVcal: 1.000E+08 -SimSTMVcal / SimSTMVcal: 1.000E+08 -SimAFMZmin: 5.000E+00 -SimAFMZmin / SimAFMZmin: 5.000E+00 -SimAFMZcal: 5.000E-01 -SimAFMZcal / SimAFMZcal: 5.000E-01 -SimAFMDfmin: 1.000E+01 -SimAFMDfmin / SimAFMDfmin: 1.000E+01 -SimNoiseADC0: 1.000E-04 -SimNoiseADC0 / SimNoiseADC0: 1.000E-04 -Latmanmode: 1 -LatmResist: 1.000E+00 -LatmanVolt: 1000.00 -Latmanlgi: 0 -Latmangain: 9 -Latmanddx: 1.049 -Latmandelay: 100 -Latm0Delay: 2 -Latmanccdz: 0 -Latmanextension: 1.000 -Latchannelselectval: 1 -TipForm_Volt: 4000 -TipForm_Z: 0 -Tip_Delay: 24 -Tip_Latddx: 5.461 -Tip_LatDelay: 10 -Tip_Gain: 9 -TipForm_ZOffset: 0 -SpecXGrid: 100000 -SpecYGrid: 100000 -SpecXYGridDelay: 10 -VertSpecPosX: -44444 -VertSpecPosY: -57971 -Vertchannelselectval: 1291 -Vertmangain: 9 -Vertmandelay: 1442 -VertSpecBack: 1 -VertSpecAvrgnr: 2 -VertAvrgdelay: 100 -VertRepeatCounter: 1 -VertLineCount: 2 -VertFBMode: 4 -VertFBLogiset: 0.000 -VertLatddx: 5.461 -VertLatdelay: 25 -VertStartdly[ms]: 500 -Zoffset: 0 -Zdrift: 0 -VertLimitMode: 0 -VerttreshImax: 1910000007.3 -VerttreshImin: -1910000007.3 -Verttreshmax2: 10000000000.000 -Verttreshmin2: -10000000000.000 -Verttreshchan: 1000 -Verttreshchan2: -1 -Vpoint0.t: 0 -Vpoint1.t: 20 -Vpoint2.t: 1020 -Vpoint3.t: 1040 -Vpoint4.t: 0 -Vpoint5.t: 0 -Vpoint6.t: 0 -Vpoint7.t: 0 -Vpoint0.V: 300.0000 -Vpoint1.V: 300.0000 -Vpoint2.V: -700.0000 -Vpoint3.V: -700.0000 -Vpoint4.V: 0.0000 -Vpoint5.V: 0.0000 -Vpoint6.V: 0.0000 -Vpoint7.V: 0.0000 -Zpoint0.t: 0 -Zpoint1.t: 400 -Zpoint2.t: 600 -Zpoint3.t: 1024 -Zpoint4.t: 0 -Zpoint5.t: 0 -Zpoint6.t: 0 -Zpoint7.t: 0 -Zpoint0.z: 0 -Zpoint1.z: 0 -Zpoint2.z: 0 -Zpoint3.z: 0 -Zpoint4.z: 0 -Zpoint5.z: 0 -Zpoint6.z: 0 -Zpoint7.z: 0 -Xpoint0.t: 0 -Xpoint1.t: 400 -Xpoint2.t: 600 -Xpoint3.t: 1024 -Xpoint4.t: 0 -Xpoint5.t: 0 -Xpoint6.t: 0 -Xpoint7.t: 0 -Xpoint0.x: 0 -Xpoint1.x: 0 -Xpoint2.x: 0 -Xpoint3.x: 0 -Xpoint4.x: 0 -Xpoint5.x: 0 -Xpoint6.x: 0 -Xpoint7.x: 0 -SpecGrid_CenterX: 128 -SpecGrid_CenterY: 128 -SpecGridDX: 8 -SpecGridDY: 8 -SpecGridNX: 17 -SpecGridNY: 17 -OrgPlanX: 0.00000 -OrgPlanY: 0.00000 -OrgPlanOff: 0.00000 -Dacto[A]xy: 0.00183 -Dacto[A]z: 0.00037 -DigZoomX: 1.00000 -DigZoomZ: 1.00000 -Planavrgnr: 17 -ImageYPosMax: 10 -ActDriveDir: C:\Data\Nb-Ta sample_April 2025\Ta _ -TempDiode: DT600 Default -TempDiode2: DT600 Default -LastPrepFile: -LastMemoFile: C:\SAT\2022-11-25_@LN2_Si(111)-qPlus-sensor\A221126.125812.MEMO -LastLN2Fill: -LastLHeFill: -SBC_Clk[MHz]: 1000 -DSP_Clock: 50000 -FBOff: 0 -FBLog: 1 -FBChannel: 0 -FB2Channel: 0 -FBLogIset: 156.00000000 -FBIntegral: -3.300000 -FBProp: 0.00000000 -FB2LogIset: 0.000 -FB2Integral: -120 -FB2Prop: 0.00000000 -FBBackLogIset: 0.000 -CurrentRC: 0.8979 -Imaxcurrent: 1000000.0 -Imaxdelay: 1 -ImaxZret: 0.000 -UserPreampCode: 6:011000;1.000/8:101000;1.000/10:110000;1.000/12:111000;1.000/ -Internal_LT_PreampCode: 10:0111000;1.000 -SampleGateDelay: 0 -ZLimitRetract: -1041.667 -TipZLimit: 0 -LockinChannel: 0 -LockinOutChannel: 0 -LockinFreq: 925.00 -LockinAmpl: 10.000 -LockinPhase: -60 -LockinPhase2: 90 -LockinRC: 0.00126 -LockinMode: 3 -Lockin2xFMode: 0 -LockinRefAmpl: 0.000 -LockinRefPhase: 0 -LockinRefMode: 0 -SpecAvrgnr: 1 -SpecFreq: 2000.000 -Timechannelselectval: 3 -FFTPoints: 4096 -DAC4[V]: 0.00000 -DAC5[V]: 0.00000 -IZDacout5Scale: 1.000 -CP_V_Limit: 2000 -FB2_V_Limit_Min: -10000 -FB2_V_Limit_Max: 10000 -SRS_Frequency: 1000.000 -SRS_ModVoltage: 1.0000 -SRS_InpGain[V]: 1.0E+00 -SRS_InpTimeC[s]: 1.0E+00 -PLLOn: 0 -PLLCenterFreq: 28115.7207031 -PLLAmplitude: 3.3000E-03 -PLLPhase: -133.4170074 -PLLRC: 170.0000000 -PLLGain: 350472.0000000 -PLLFreqOffMax: 150.0000000 -PLLAmplGain: 1.8900E+00 -PLLControl: 1 -PLLAmplMin: 0.0000000 -PLLExcitation: 0.0500000 -PLLExcitationMax: 10.0000000 -PLLAmplInt: 5.8686E-04 -PLLAmplFilter: 96.0000000 -PLLInt: 108.5781250 -PLLFreqPostFilter: 100.0000000 -PLLAmplPostFilter: 100.0000000 -PLLRefcontrol: 0 -PLLRefAmpl[V]: 1.000000 -PLLRefOff[V]: 0.000000 -PLLFreqExt[1,2,4]: 1.000000 -PLLControl2: 0 -PLLFast: 0 -PLLSRSPreampgain: 10 -PLLSensorCal: 3.30E-03 -PLLScanStartFreq: 28100.0000000 -PLLScanStopFreq: 28140.0000000 -PLLScanInc: 0.0200000 -PLLScanDelay: 30.0000000 -PLLExtCenterFreq [Hz]: 32000.0000000 -PLLExtAmpl [V]: 1.0000000 -PLLExtPhase [DEG]: 0.0000000 -PLLExtFreqOffMax [Hz]: 100.0000000 -PLLExtNodeName: -PLLExternOn: 0 -Freq]: 1.0000000 -PLLExtCalFreq[V: 1.0000000 -PLLExtCalFreq[V/Freq]: 1.0000000 -Vrms]: 1.0000000 -PLLExtCalAmpl[V: 1.0000000 -PLLExtCalAmpl[V/Vrms]: 1.0000000 -PLLQCGain: 0.000000 -X-Puls-Count: 40696 -Y-Puls-Count: 76698 -Z-Puls-Count: 5509 -XYBurst: 1000 -RotBurst: 100 -ZBurst: 100 -ZBurstDown: 1 -XY-Puls-Height: 80.0 -XY-Puls-Duration: 0.004 -Z-Puls-Height: 80.0 -Z-Puls-Duration: 0.000 -Upinc: 100 -Upcount: 200 -Rotinc: 100 -Rotincquad: 0 -Rotcount: 200 -Zinc: 100 -ZCount: 10 -AproCurrentRC: 0.9900 -AproRampDelay: 10 -AproTestDelay: 10 -AproBurst: 1 -AproPeriod: 1000 -AproRetryNr: 2 -AproRampZMax: 524272 -RampZRatio: 1.000 -Rampunipolar: 0 -Autolevel: 0 -Length x[A]: 998.4680 -Length y[A]: 998.4680 -Biasvolt[mV]: 653.80 -SetPoint: 1.56E-10 -line:: 2.621 -Sec: 2.621 -Sec/line:: 2.621 -Image:: 1342.177 -Sec/Image:: 1342.177 -ActGainXYZ: 10 10 10 -T-STM:: 0.00000 -HP_Ch1: 0.00000 -HP_Ch2: 0.00000 -HP_Ch3: 0.00000 -HP_Ch4: 0.00000 -T_ADC2[K]: 431.692 -T_ADC3[K]: 0.000 -T_AUXADC6[K]: 77.362 -T_AUXADC7[K]: 77.258 -OneK_STM: 0.00000 -OneK_1K_Cryo: 0.00000 -OneK_4K_Cryo: 0.00000 -OneK_PT1000: 0.00000 -MEMO_STMAFM: -PSTMAFM.EXE_Date: 07/10/2022 07:44:44 DSP-COMPDATE= Mar 6 2022 12:44:26 -memo:0: -zÚ(4M&å..&¿ýݜöÛ¼: qmộžmÇ̹˜Xêp´y+ -‡<: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ -{ù X¤GpŸÙÀÍæÿg}¢ÞÒx0è [Óþ,ÝèÖ76º: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ -{ù X¤GpŸÙÀÍæÿg}¢ÞÒx0è [Óþ,ÝèÖ76º/‡<: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ +DAC-Type: 20bit +Titel: LN2 +Titel(File): LN2 +Titel(File) / Titel: LN2 +Delta X [Dac]: 213 +Delta X: 213 +Delta X / Delta X [Dac]: 213 +Delta Y [Dac]: 213 +Delta Y: 213 +Delta Y / Delta Y [Dac]: 213 +Num.X: 255 +Num.X / Num.X: 256 +Num.Y: 9 +Num.Y / Num.Y: 256 +Delay X+: 1 +Delay X+ / Delay X+: 1 +Delay X-: 1 +Delay X- / Delay X-: 1 +Delay Y: 1 +Delay Y / Delay Y: 1 +DDeltaX: 512 +DX_DIV_DDelta-X: 512 +DX: 512 +DX_DIV_DDelta-X / DX/DDeltaX: 512 +GainX: 10 +GainX / GainX: 10 +GainY: 10 +GainY / GainY: 10 +GainZ: 10 +GainZ / GainZ: 10 +Rotation: 0.00 +Rotation / Rotation: 0.00 +BiasVolt.[mV]: 653.80 +BiasVoltage: 653.80 +BiasVoltage / BiasVolt.[mV]: 653.80 +GainPre 10^: 9 +Gainpreamp: 9 +Gainpreamp / GainPre 10^: 9 +ScanChannels: 2 +Chan(1,2,4): 2 +Chan(1,2,4) / ScanChannels: 2 +PlanDx: -0.0100 +PlanDx / PlanDx: -0.0100 +PlanDy: 0.0500 +PlanDy / PlanDy: 0.0500 +OffsetX: 107692.6 +Scanrotoffx: 107692.6 +Scanrotoffx / OffsetX: 107692.6 +OffsetY: -43394.5 +Scanrotoffy: -43394.5 +Scanrotoffy / OffsetY: -43394.5 +ZPiezoconst: 19.20 +ZPiezoconst / ZPiezoconst: 19.20 +Xpiezoconst: 96.00 +Xpiezoconst / Xpiezoconst: 96.00 +YPiezoconst: 96.00 +YPiezoconst / YPiezoconst: 96.00 +RepeatRotinc: 0 +RepeatRotinc / RepeatRotinc: 0 +RptBVoltinc: 0 +RptBVoltinc / RptBVoltinc: 0 +Repeatinterval: 0 +Repeatinterval / Repeatinterval: 0 +Repeatcounter: 0 +Repeatcounter / Repeatcounter: 0 +RepeatXoffset: 0 +RepeatXoffset / RepeatXoffset: 0 +RepeatYoffset: 0 +RepeatYoffset / RepeatYoffset: 0 +Scantype: 1 +Scantype / Scantype: 1 +ScanXMode: 2 +Scanmode: 2 +Scanmode / ScanXMode: 2 +Scancoarse: 0 +Scancoarse / Scancoarse: 0 +CHMode: 0 +CHMode / CHMode: 0 +Channels: 4 +Channels / Channels: 4 +Preamptype: 1 +Preamptype / Preamptype: 1 +VFBMode: 0 +VFBMode / VFBMode: 0 +RotCMode: 1 +RotCMode / RotCMode: 1 +ScanYMode: 1 +ScanYMode / ScanYMode: 1 +ScanYDirec: 1 +ScanYDirec / ScanYDirec: 1 +ScanmodeSine: 0 +ScanmodeSine / ScanmodeSine: 0 +CHModeZoff: 0.00 +CHModeZoff / CHModeZoff: 0.00 +CHModeGainpreamp: 9 +CHModeGainpreamp / CHModeGainpreamp: 9 +CHModeBias[mV]: 1000.00 +CHModeBias[mV] / CHModeBias[mV]: 1000.00 +Channelselectval: 3 +Channelselectval / Channelselectval: 3 +Scancentermode: 0 +Scancentermode / Scancentermode: 0 +sec]: 0.00000 +Drift_X: 0.00000 +Drift_X[Å: 0.00000 +Drift_X / Drift_X[Å/sec]: 0.00000 +Drift_Y: 0.00000 +Drift_Y[Å: 0.00000 +Drift_Y / Drift_Y[Å/sec]: 0.00000 +Scandvinc: 0 +Scandvinc / Scandvinc: 0 +Scandiinc: 0 +Scandiinc / Scandiinc: 0 +Scandzinc: 0 +Scandzinc / Scandzinc: 0 +LinkFilename: A250407.141806.dat +LinkFilename / LinkFilename: A250407.141806.dat +Username: +Username / Username: +LastFile_SHA2: +LastFile_SHA2 / LastFile_SHA2: +MVoltnumber11: 1 +MVoltnumber11 / MVoltnumber11: 1 +MVolt_1: 0.00000 +MVolt_1 / MVolt_1: 0.00000 +MVolt_2: 0.00000 +MVolt_2 / MVolt_2: 0.00000 +MVolt_3: 0.00000 +MVolt_3 / MVolt_3: 0.00000 +MVolt_4: 0.00000 +MVolt_4 / MVolt_4: 0.00000 +MVolt_5: 0.00000 +MVolt_5 / MVolt_5: 0.00000 +MVolt_6: 0.00000 +MVolt_6 / MVolt_6: 0.00000 +MVolt_7: 0.00000 +MVolt_7 / MVolt_7: 0.00000 +MVolt_8: 0.00000 +MVolt_8 / MVolt_8: 0.00000 +MVolt_9: 0.00000 +MVolt_9 / MVolt_9: 0.00000 +MVolt_10: 0.00000 +MVolt_10 / MVolt_10: 0.00000 +Mcurrent_1: 0.0E+00 +Mcurrent_1 / Mcurrent_1: 0.0E+00 +Mcurrent_2: 0.0E+00 +Mcurrent_2 / Mcurrent_2: 0.0E+00 +Mcurrent_3: 0.0E+00 +Mcurrent_3 / Mcurrent_3: 0.0E+00 +Mcurrent_4: 0.0E+00 +Mcurrent_4 / Mcurrent_4: 0.0E+00 +Mcurrent_5: 0.0E+00 +Mcurrent_5 / Mcurrent_5: 0.0E+00 +Mcurrent_6: 0.0E+00 +Mcurrent_6 / Mcurrent_6: 0.0E+00 +Mcurrent_7: 0.0E+00 +Mcurrent_7 / Mcurrent_7: 0.0E+00 +Mcurrent_8: 0.0E+00 +Mcurrent_8 / Mcurrent_8: 0.0E+00 +Mcurrent_9: 0.0E+00 +Mcurrent_9 / Mcurrent_9: 0.0E+00 +Mcurrent_10: 0.0E+00 +Mcurrent_10 / Mcurrent_10: 0.0E+00 +MdF_1: 0.000 +MdF_1 / MdF_1: 0.000 +MdF_2: 0.000 +MdF_2 / MdF_2: 0.000 +MdF_3: 0.000 +MdF_3 / MdF_3: 0.000 +MdF_4: 0.000 +MdF_4 / MdF_4: 0.000 +MdF_5: 0.000 +MdF_5 / MdF_5: 0.000 +MdF_6: 0.000 +MdF_6 / MdF_6: 0.000 +MdF_7: 0.000 +MdF_7 / MdF_7: 0.000 +MdF_8: 0.000 +MdF_8 / MdF_8: 0.000 +MdF_9: 0.000 +MdF_9 / MdF_9: 0.000 +MdF_10: 0.000 +MdF_10 / MdF_10: 0.000 +MCHeight_1: 0.000 +MCHeight_1 / MCHeight_1: 0.000 +MCHeight_2: 0.000 +MCHeight_2 / MCHeight_2: 0.000 +MCHeight_3: 0.000 +MCHeight_3 / MCHeight_3: 0.000 +MCHeight_4: 0.000 +MCHeight_4 / MCHeight_4: 0.000 +MCHeight_5: 0.000 +MCHeight_5 / MCHeight_5: 0.000 +MCHeight_6: 0.000 +MCHeight_6 / MCHeight_6: 0.000 +MCHeight_7: 0.000 +MCHeight_7 / MCHeight_7: 0.000 +MCHeight_8: 0.000 +MCHeight_8 / MCHeight_8: 0.000 +MCHeight_9: 0.000 +MCHeight_9 / MCHeight_9: 0.000 +MCHeight_10: 0.000 +MCHeight_10 / MCHeight_10: 0.000 +MFBControl_1: 1 +MFBControl_1 / MFBControl_1: 1 +MFBControl_2: 1 +MFBControl_2 / MFBControl_2: 1 +MFBControl_3: 1 +MFBControl_3 / MFBControl_3: 1 +MFBControl_4: 1 +MFBControl_4 / MFBControl_4: 1 +MFBControl_5: 1 +MFBControl_5 / MFBControl_5: 1 +MFBControl_6: 1 +MFBControl_6 / MFBControl_6: 1 +MFBControl_7: 1 +MFBControl_7 / MFBControl_7: 1 +MFBControl_8: 1 +MFBControl_8 / MFBControl_8: 1 +MFBControl_9: 1 +MFBControl_9 / MFBControl_9: 1 +MFBControl_10: 1 +MFBControl_10 / MFBControl_10: 1 +Poti_BiasVoltOffset: 0.000 +Poti_BiasVoltOffset / Poti_BiasVoltOffset: 0.000 +Poti_DAC4Volt: 0.000 +Poti_DAC4Volt / Poti_DAC4Volt: 0.000 +Poti_DAC5Volt: 0.000 +Poti_DAC5Volt / Poti_DAC5Volt: 0.000 +Poti_TipAdvance: 0.000 +Poti_TipAdvance / Poti_TipAdvance: 0.000 +Poti_FBDelay: 0.000 +Poti_FBDelay / Poti_FBDelay: 0.000 +Poti_FBDuration: 0.000 +Poti_FBDuration / Poti_FBDuration: 0.000 +Poti_FBDelay2: 0.000 +Poti_FBDelay2 / Poti_FBDelay2: 0.000 +Poti_BiasCompensation: 0 +Poti_BiasCompensation / Poti_BiasCompensation: 0 +VProbe_ZFBTime[sec]: 1.000E-01 +VProbe_ZFBTime[sec] / VProbe_ZFBTime[sec]: 1.000E-01 +VProbe_ZFBDelay[sec]: 1.000E-01 +VProbe_ZFBDelay[sec] / VProbe_ZFBDelay[sec]: 1.000E-01 +VProbe_VFBTime[sec]: 1.000E-01 +VProbe_VFBTime[sec] / VProbe_VFBTime[sec]: 1.000E-01 +VProbe_VFBDelay[sec]: 1.000E-01 +VProbe_VFBDelay[sec] / VProbe_VFBDelay[sec]: 1.000E-01 +VProbe_VFBRC[sec]: -2.000E+00 +VProbe_VFBRC[sec] / VProbe_VFBRC[sec]: -2.000E+00 +SimDatZcal: 1.000E+00 +SimDatZcal / SimDatZcal: 1.000E+00 +SimDatXcal: 1.000E+00 +SimDatXcal / SimDatXcal: 1.000E+00 +SimDatYcal: 1.000E+00 +SimDatYcal / SimDatYcal: 1.000E+00 +SimSTMZcal: 1.907E-04 +SimSTMZcal / SimSTMZcal: 1.907E-04 +SimSTMVcal: 1.000E+08 +SimSTMVcal / SimSTMVcal: 1.000E+08 +SimAFMZmin: 5.000E+00 +SimAFMZmin / SimAFMZmin: 5.000E+00 +SimAFMZcal: 5.000E-01 +SimAFMZcal / SimAFMZcal: 5.000E-01 +SimAFMDfmin: 1.000E+01 +SimAFMDfmin / SimAFMDfmin: 1.000E+01 +SimNoiseADC0: 1.000E-04 +SimNoiseADC0 / SimNoiseADC0: 1.000E-04 +Latmanmode: 1 +LatmResist: 1.000E+00 +LatmanVolt: 1000.00 +Latmanlgi: 0 +Latmangain: 9 +Latmanddx: 1.049 +Latmandelay: 100 +Latm0Delay: 2 +Latmanccdz: 0 +Latmanextension: 1.000 +Latchannelselectval: 1 +TipForm_Volt: 4000 +TipForm_Z: 0 +Tip_Delay: 24 +Tip_Latddx: 5.461 +Tip_LatDelay: 10 +Tip_Gain: 9 +TipForm_ZOffset: 0 +SpecXGrid: 100000 +SpecYGrid: 100000 +SpecXYGridDelay: 10 +VertSpecPosX: -44444 +VertSpecPosY: -57971 +Vertchannelselectval: 1291 +Vertmangain: 9 +Vertmandelay: 1442 +VertSpecBack: 1 +VertSpecAvrgnr: 2 +VertAvrgdelay: 100 +VertRepeatCounter: 1 +VertLineCount: 2 +VertFBMode: 4 +VertFBLogiset: 0.000 +VertLatddx: 5.461 +VertLatdelay: 25 +VertStartdly[ms]: 500 +Zoffset: 0 +Zdrift: 0 +VertLimitMode: 0 +VerttreshImax: 1910000007.3 +VerttreshImin: -1910000007.3 +Verttreshmax2: 10000000000.000 +Verttreshmin2: -10000000000.000 +Verttreshchan: 1000 +Verttreshchan2: -1 +Vpoint0.t: 0 +Vpoint1.t: 20 +Vpoint2.t: 1020 +Vpoint3.t: 1040 +Vpoint4.t: 0 +Vpoint5.t: 0 +Vpoint6.t: 0 +Vpoint7.t: 0 +Vpoint0.V: 300.0000 +Vpoint1.V: 300.0000 +Vpoint2.V: -700.0000 +Vpoint3.V: -700.0000 +Vpoint4.V: 0.0000 +Vpoint5.V: 0.0000 +Vpoint6.V: 0.0000 +Vpoint7.V: 0.0000 +Zpoint0.t: 0 +Zpoint1.t: 400 +Zpoint2.t: 600 +Zpoint3.t: 1024 +Zpoint4.t: 0 +Zpoint5.t: 0 +Zpoint6.t: 0 +Zpoint7.t: 0 +Zpoint0.z: 0 +Zpoint1.z: 0 +Zpoint2.z: 0 +Zpoint3.z: 0 +Zpoint4.z: 0 +Zpoint5.z: 0 +Zpoint6.z: 0 +Zpoint7.z: 0 +Xpoint0.t: 0 +Xpoint1.t: 400 +Xpoint2.t: 600 +Xpoint3.t: 1024 +Xpoint4.t: 0 +Xpoint5.t: 0 +Xpoint6.t: 0 +Xpoint7.t: 0 +Xpoint0.x: 0 +Xpoint1.x: 0 +Xpoint2.x: 0 +Xpoint3.x: 0 +Xpoint4.x: 0 +Xpoint5.x: 0 +Xpoint6.x: 0 +Xpoint7.x: 0 +SpecGrid_CenterX: 128 +SpecGrid_CenterY: 128 +SpecGridDX: 8 +SpecGridDY: 8 +SpecGridNX: 17 +SpecGridNY: 17 +OrgPlanX: 0.00000 +OrgPlanY: 0.00000 +OrgPlanOff: 0.00000 +Dacto[A]xy: 0.00183 +Dacto[A]z: 0.00037 +DigZoomX: 1.00000 +DigZoomZ: 1.00000 +Planavrgnr: 17 +ImageYPosMax: 10 +ActDriveDir: C:\Data\Nb-Ta sample_April 2025\Ta _ +TempDiode: DT600 Default +TempDiode2: DT600 Default +LastPrepFile: +LastMemoFile: C:\SAT\2022-11-25_@LN2_Si(111)-qPlus-sensor\A221126.125812.MEMO +LastLN2Fill: +LastLHeFill: +SBC_Clk[MHz]: 1000 +DSP_Clock: 50000 +FBOff: 0 +FBLog: 1 +FBChannel: 0 +FB2Channel: 0 +FBLogIset: 156.00000000 +FBIntegral: -3.300000 +FBProp: 0.00000000 +FB2LogIset: 0.000 +FB2Integral: -120 +FB2Prop: 0.00000000 +FBBackLogIset: 0.000 +CurrentRC: 0.8979 +Imaxcurrent: 1000000.0 +Imaxdelay: 1 +ImaxZret: 0.000 +UserPreampCode: 6:011000;1.000/8:101000;1.000/10:110000;1.000/12:111000;1.000/ +Internal_LT_PreampCode: 10:0111000;1.000 +SampleGateDelay: 0 +ZLimitRetract: -1041.667 +TipZLimit: 0 +LockinChannel: 0 +LockinOutChannel: 0 +LockinFreq: 925.00 +LockinAmpl: 10.000 +LockinPhase: -60 +LockinPhase2: 90 +LockinRC: 0.00126 +LockinMode: 3 +Lockin2xFMode: 0 +LockinRefAmpl: 0.000 +LockinRefPhase: 0 +LockinRefMode: 0 +SpecAvrgnr: 1 +SpecFreq: 2000.000 +Timechannelselectval: 3 +FFTPoints: 4096 +DAC4[V]: 0.00000 +DAC5[V]: 0.00000 +IZDacout5Scale: 1.000 +CP_V_Limit: 2000 +FB2_V_Limit_Min: -10000 +FB2_V_Limit_Max: 10000 +SRS_Frequency: 1000.000 +SRS_ModVoltage: 1.0000 +SRS_InpGain[V]: 1.0E+00 +SRS_InpTimeC[s]: 1.0E+00 +PLLOn: 0 +PLLCenterFreq: 28115.7207031 +PLLAmplitude: 3.3000E-03 +PLLPhase: -133.4170074 +PLLRC: 170.0000000 +PLLGain: 350472.0000000 +PLLFreqOffMax: 150.0000000 +PLLAmplGain: 1.8900E+00 +PLLControl: 1 +PLLAmplMin: 0.0000000 +PLLExcitation: 0.0500000 +PLLExcitationMax: 10.0000000 +PLLAmplInt: 5.8686E-04 +PLLAmplFilter: 96.0000000 +PLLInt: 108.5781250 +PLLFreqPostFilter: 100.0000000 +PLLAmplPostFilter: 100.0000000 +PLLRefcontrol: 0 +PLLRefAmpl[V]: 1.000000 +PLLRefOff[V]: 0.000000 +PLLFreqExt[1,2,4]: 1.000000 +PLLControl2: 0 +PLLFast: 0 +PLLSRSPreampgain: 10 +PLLSensorCal: 3.30E-03 +PLLScanStartFreq: 28100.0000000 +PLLScanStopFreq: 28140.0000000 +PLLScanInc: 0.0200000 +PLLScanDelay: 30.0000000 +PLLExtCenterFreq [Hz]: 32000.0000000 +PLLExtAmpl [V]: 1.0000000 +PLLExtPhase [DEG]: 0.0000000 +PLLExtFreqOffMax [Hz]: 100.0000000 +PLLExtNodeName: +PLLExternOn: 0 +Freq]: 1.0000000 +PLLExtCalFreq[V: 1.0000000 +PLLExtCalFreq[V/Freq]: 1.0000000 +Vrms]: 1.0000000 +PLLExtCalAmpl[V: 1.0000000 +PLLExtCalAmpl[V/Vrms]: 1.0000000 +PLLQCGain: 0.000000 +X-Puls-Count: 40696 +Y-Puls-Count: 76698 +Z-Puls-Count: 5509 +XYBurst: 1000 +RotBurst: 100 +ZBurst: 100 +ZBurstDown: 1 +XY-Puls-Height: 80.0 +XY-Puls-Duration: 0.004 +Z-Puls-Height: 80.0 +Z-Puls-Duration: 0.000 +Upinc: 100 +Upcount: 200 +Rotinc: 100 +Rotincquad: 0 +Rotcount: 200 +Zinc: 100 +ZCount: 10 +AproCurrentRC: 0.9900 +AproRampDelay: 10 +AproTestDelay: 10 +AproBurst: 1 +AproPeriod: 1000 +AproRetryNr: 2 +AproRampZMax: 524272 +RampZRatio: 1.000 +Rampunipolar: 0 +Autolevel: 0 +Length x[A]: 998.4680 +Length y[A]: 998.4680 +Biasvolt[mV]: 653.80 +SetPoint: 1.56E-10 +line:: 2.621 +Sec: 2.621 +Sec/line:: 2.621 +Image:: 1342.177 +Sec/Image:: 1342.177 +ActGainXYZ: 10 10 10 +T-STM:: 0.00000 +HP_Ch1: 0.00000 +HP_Ch2: 0.00000 +HP_Ch3: 0.00000 +HP_Ch4: 0.00000 +T_ADC2[K]: 431.692 +T_ADC3[K]: 0.000 +T_AUXADC6[K]: 77.362 +T_AUXADC7[K]: 77.258 +OneK_STM: 0.00000 +OneK_1K_Cryo: 0.00000 +OneK_4K_Cryo: 0.00000 +OneK_PT1000: 0.00000 +MEMO_STMAFM: +PSTMAFM.EXE_Date: 07/10/2022 07:44:44 DSP-COMPDATE= Mar 6 2022 12:44:26 +memo:0: +zÚ(4M&å..&¿ýݜöÛ¼: qmộžmÇ̹˜Xêp´y+ +‡<: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ +{ù X¤GpŸÙÀÍæÿg}¢ÞÒx0è [Óþ,ÝèÖ76º: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ +{ù X¤GpŸÙÀÍæÿg}¢ÞÒx0è [Óþ,ÝèÖ76º/‡<: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ diff --git a/test_data/output_raw_npy/npy/A250407.141806_raw_npy/hdr.txt b/test_data/output_raw_npy/npy/A250407.141806_raw_npy/hdr.txt index 88e1b11..bbf86de 100644 --- a/test_data/output_raw_npy/npy/A250407.141806_raw_npy/hdr.txt +++ b/test_data/output_raw_npy/npy/A250407.141806_raw_npy/hdr.txt @@ -1,530 +1,530 @@ -DAC-Type: 20bit -Titel: LN2 -Titel(File): LN2 -Titel(File) / Titel: LN2 -Delta X [Dac]: 213 -Delta X: 213 -Delta X / Delta X [Dac]: 213 -Delta Y [Dac]: 213 -Delta Y: 213 -Delta Y / Delta Y [Dac]: 213 -Num.X: 255 -Num.X / Num.X: 256 -Num.Y: 9 -Num.Y / Num.Y: 256 -Delay X+: 1 -Delay X+ / Delay X+: 1 -Delay X-: 1 -Delay X- / Delay X-: 1 -Delay Y: 1 -Delay Y / Delay Y: 1 -DDeltaX: 512 -DX_DIV_DDelta-X: 512 -DX: 512 -DX_DIV_DDelta-X / DX/DDeltaX: 512 -GainX: 10 -GainX / GainX: 10 -GainY: 10 -GainY / GainY: 10 -GainZ: 10 -GainZ / GainZ: 10 -Rotation: 0.00 -Rotation / Rotation: 0.00 -BiasVolt.[mV]: 653.80 -BiasVoltage: 653.80 -BiasVoltage / BiasVolt.[mV]: 653.80 -GainPre 10^: 9 -Gainpreamp: 9 -Gainpreamp / GainPre 10^: 9 -ScanChannels: 2 -Chan(1,2,4): 2 -Chan(1,2,4) / ScanChannels: 2 -PlanDx: -0.0100 -PlanDx / PlanDx: -0.0100 -PlanDy: 0.0500 -PlanDy / PlanDy: 0.0500 -OffsetX: 107692.6 -Scanrotoffx: 107692.6 -Scanrotoffx / OffsetX: 107692.6 -OffsetY: -43394.5 -Scanrotoffy: -43394.5 -Scanrotoffy / OffsetY: -43394.5 -ZPiezoconst: 19.20 -ZPiezoconst / ZPiezoconst: 19.20 -Xpiezoconst: 96.00 -Xpiezoconst / Xpiezoconst: 96.00 -YPiezoconst: 96.00 -YPiezoconst / YPiezoconst: 96.00 -RepeatRotinc: 0 -RepeatRotinc / RepeatRotinc: 0 -RptBVoltinc: 0 -RptBVoltinc / RptBVoltinc: 0 -Repeatinterval: 0 -Repeatinterval / Repeatinterval: 0 -Repeatcounter: 0 -Repeatcounter / Repeatcounter: 0 -RepeatXoffset: 0 -RepeatXoffset / RepeatXoffset: 0 -RepeatYoffset: 0 -RepeatYoffset / RepeatYoffset: 0 -Scantype: 1 -Scantype / Scantype: 1 -ScanXMode: 2 -Scanmode: 2 -Scanmode / ScanXMode: 2 -Scancoarse: 0 -Scancoarse / Scancoarse: 0 -CHMode: 0 -CHMode / CHMode: 0 -Channels: 4 -Channels / Channels: 4 -Preamptype: 1 -Preamptype / Preamptype: 1 -VFBMode: 0 -VFBMode / VFBMode: 0 -RotCMode: 1 -RotCMode / RotCMode: 1 -ScanYMode: 1 -ScanYMode / ScanYMode: 1 -ScanYDirec: 1 -ScanYDirec / ScanYDirec: 1 -ScanmodeSine: 0 -ScanmodeSine / ScanmodeSine: 0 -CHModeZoff: 0.00 -CHModeZoff / CHModeZoff: 0.00 -CHModeGainpreamp: 9 -CHModeGainpreamp / CHModeGainpreamp: 9 -CHModeBias[mV]: 1000.00 -CHModeBias[mV] / CHModeBias[mV]: 1000.00 -Channelselectval: 3 -Channelselectval / Channelselectval: 3 -Scancentermode: 0 -Scancentermode / Scancentermode: 0 -sec]: 0.00000 -Drift_X: 0.00000 -Drift_X[Å: 0.00000 -Drift_X / Drift_X[Å/sec]: 0.00000 -Drift_Y: 0.00000 -Drift_Y[Å: 0.00000 -Drift_Y / Drift_Y[Å/sec]: 0.00000 -Scandvinc: 0 -Scandvinc / Scandvinc: 0 -Scandiinc: 0 -Scandiinc / Scandiinc: 0 -Scandzinc: 0 -Scandzinc / Scandzinc: 0 -LinkFilename: A250407.141806.dat -LinkFilename / LinkFilename: A250407.141806.dat -Username: -Username / Username: -LastFile_SHA2: -LastFile_SHA2 / LastFile_SHA2: -MVoltnumber11: 1 -MVoltnumber11 / MVoltnumber11: 1 -MVolt_1: 0.00000 -MVolt_1 / MVolt_1: 0.00000 -MVolt_2: 0.00000 -MVolt_2 / MVolt_2: 0.00000 -MVolt_3: 0.00000 -MVolt_3 / MVolt_3: 0.00000 -MVolt_4: 0.00000 -MVolt_4 / MVolt_4: 0.00000 -MVolt_5: 0.00000 -MVolt_5 / MVolt_5: 0.00000 -MVolt_6: 0.00000 -MVolt_6 / MVolt_6: 0.00000 -MVolt_7: 0.00000 -MVolt_7 / MVolt_7: 0.00000 -MVolt_8: 0.00000 -MVolt_8 / MVolt_8: 0.00000 -MVolt_9: 0.00000 -MVolt_9 / MVolt_9: 0.00000 -MVolt_10: 0.00000 -MVolt_10 / MVolt_10: 0.00000 -Mcurrent_1: 0.0E+00 -Mcurrent_1 / Mcurrent_1: 0.0E+00 -Mcurrent_2: 0.0E+00 -Mcurrent_2 / Mcurrent_2: 0.0E+00 -Mcurrent_3: 0.0E+00 -Mcurrent_3 / Mcurrent_3: 0.0E+00 -Mcurrent_4: 0.0E+00 -Mcurrent_4 / Mcurrent_4: 0.0E+00 -Mcurrent_5: 0.0E+00 -Mcurrent_5 / Mcurrent_5: 0.0E+00 -Mcurrent_6: 0.0E+00 -Mcurrent_6 / Mcurrent_6: 0.0E+00 -Mcurrent_7: 0.0E+00 -Mcurrent_7 / Mcurrent_7: 0.0E+00 -Mcurrent_8: 0.0E+00 -Mcurrent_8 / Mcurrent_8: 0.0E+00 -Mcurrent_9: 0.0E+00 -Mcurrent_9 / Mcurrent_9: 0.0E+00 -Mcurrent_10: 0.0E+00 -Mcurrent_10 / Mcurrent_10: 0.0E+00 -MdF_1: 0.000 -MdF_1 / MdF_1: 0.000 -MdF_2: 0.000 -MdF_2 / MdF_2: 0.000 -MdF_3: 0.000 -MdF_3 / MdF_3: 0.000 -MdF_4: 0.000 -MdF_4 / MdF_4: 0.000 -MdF_5: 0.000 -MdF_5 / MdF_5: 0.000 -MdF_6: 0.000 -MdF_6 / MdF_6: 0.000 -MdF_7: 0.000 -MdF_7 / MdF_7: 0.000 -MdF_8: 0.000 -MdF_8 / MdF_8: 0.000 -MdF_9: 0.000 -MdF_9 / MdF_9: 0.000 -MdF_10: 0.000 -MdF_10 / MdF_10: 0.000 -MCHeight_1: 0.000 -MCHeight_1 / MCHeight_1: 0.000 -MCHeight_2: 0.000 -MCHeight_2 / MCHeight_2: 0.000 -MCHeight_3: 0.000 -MCHeight_3 / MCHeight_3: 0.000 -MCHeight_4: 0.000 -MCHeight_4 / MCHeight_4: 0.000 -MCHeight_5: 0.000 -MCHeight_5 / MCHeight_5: 0.000 -MCHeight_6: 0.000 -MCHeight_6 / MCHeight_6: 0.000 -MCHeight_7: 0.000 -MCHeight_7 / MCHeight_7: 0.000 -MCHeight_8: 0.000 -MCHeight_8 / MCHeight_8: 0.000 -MCHeight_9: 0.000 -MCHeight_9 / MCHeight_9: 0.000 -MCHeight_10: 0.000 -MCHeight_10 / MCHeight_10: 0.000 -MFBControl_1: 1 -MFBControl_1 / MFBControl_1: 1 -MFBControl_2: 1 -MFBControl_2 / MFBControl_2: 1 -MFBControl_3: 1 -MFBControl_3 / MFBControl_3: 1 -MFBControl_4: 1 -MFBControl_4 / MFBControl_4: 1 -MFBControl_5: 1 -MFBControl_5 / MFBControl_5: 1 -MFBControl_6: 1 -MFBControl_6 / MFBControl_6: 1 -MFBControl_7: 1 -MFBControl_7 / MFBControl_7: 1 -MFBControl_8: 1 -MFBControl_8 / MFBControl_8: 1 -MFBControl_9: 1 -MFBControl_9 / MFBControl_9: 1 -MFBControl_10: 1 -MFBControl_10 / MFBControl_10: 1 -Poti_BiasVoltOffset: 0.000 -Poti_BiasVoltOffset / Poti_BiasVoltOffset: 0.000 -Poti_DAC4Volt: 0.000 -Poti_DAC4Volt / Poti_DAC4Volt: 0.000 -Poti_DAC5Volt: 0.000 -Poti_DAC5Volt / Poti_DAC5Volt: 0.000 -Poti_TipAdvance: 0.000 -Poti_TipAdvance / Poti_TipAdvance: 0.000 -Poti_FBDelay: 0.000 -Poti_FBDelay / Poti_FBDelay: 0.000 -Poti_FBDuration: 0.000 -Poti_FBDuration / Poti_FBDuration: 0.000 -Poti_FBDelay2: 0.000 -Poti_FBDelay2 / Poti_FBDelay2: 0.000 -Poti_BiasCompensation: 0 -Poti_BiasCompensation / Poti_BiasCompensation: 0 -VProbe_ZFBTime[sec]: 1.000E-01 -VProbe_ZFBTime[sec] / VProbe_ZFBTime[sec]: 1.000E-01 -VProbe_ZFBDelay[sec]: 1.000E-01 -VProbe_ZFBDelay[sec] / VProbe_ZFBDelay[sec]: 1.000E-01 -VProbe_VFBTime[sec]: 1.000E-01 -VProbe_VFBTime[sec] / VProbe_VFBTime[sec]: 1.000E-01 -VProbe_VFBDelay[sec]: 1.000E-01 -VProbe_VFBDelay[sec] / VProbe_VFBDelay[sec]: 1.000E-01 -VProbe_VFBRC[sec]: -2.000E+00 -VProbe_VFBRC[sec] / VProbe_VFBRC[sec]: -2.000E+00 -SimDatZcal: 1.000E+00 -SimDatZcal / SimDatZcal: 1.000E+00 -SimDatXcal: 1.000E+00 -SimDatXcal / SimDatXcal: 1.000E+00 -SimDatYcal: 1.000E+00 -SimDatYcal / SimDatYcal: 1.000E+00 -SimSTMZcal: 1.907E-04 -SimSTMZcal / SimSTMZcal: 1.907E-04 -SimSTMVcal: 1.000E+08 -SimSTMVcal / SimSTMVcal: 1.000E+08 -SimAFMZmin: 5.000E+00 -SimAFMZmin / SimAFMZmin: 5.000E+00 -SimAFMZcal: 5.000E-01 -SimAFMZcal / SimAFMZcal: 5.000E-01 -SimAFMDfmin: 1.000E+01 -SimAFMDfmin / SimAFMDfmin: 1.000E+01 -SimNoiseADC0: 1.000E-04 -SimNoiseADC0 / SimNoiseADC0: 1.000E-04 -Latmanmode: 1 -LatmResist: 1.000E+00 -LatmanVolt: 1000.00 -Latmanlgi: 0 -Latmangain: 9 -Latmanddx: 1.049 -Latmandelay: 100 -Latm0Delay: 2 -Latmanccdz: 0 -Latmanextension: 1.000 -Latchannelselectval: 1 -TipForm_Volt: 4000 -TipForm_Z: 0 -Tip_Delay: 24 -Tip_Latddx: 5.461 -Tip_LatDelay: 10 -Tip_Gain: 9 -TipForm_ZOffset: 0 -SpecXGrid: 100000 -SpecYGrid: 100000 -SpecXYGridDelay: 10 -VertSpecPosX: -44444 -VertSpecPosY: -57971 -Vertchannelselectval: 1291 -Vertmangain: 9 -Vertmandelay: 1442 -VertSpecBack: 1 -VertSpecAvrgnr: 2 -VertAvrgdelay: 100 -VertRepeatCounter: 1 -VertLineCount: 2 -VertFBMode: 4 -VertFBLogiset: 0.000 -VertLatddx: 5.461 -VertLatdelay: 25 -VertStartdly[ms]: 500 -Zoffset: 0 -Zdrift: 0 -VertLimitMode: 0 -VerttreshImax: 1910000007.3 -VerttreshImin: -1910000007.3 -Verttreshmax2: 10000000000.000 -Verttreshmin2: -10000000000.000 -Verttreshchan: 1000 -Verttreshchan2: -1 -Vpoint0.t: 0 -Vpoint1.t: 20 -Vpoint2.t: 1020 -Vpoint3.t: 1040 -Vpoint4.t: 0 -Vpoint5.t: 0 -Vpoint6.t: 0 -Vpoint7.t: 0 -Vpoint0.V: 300.0000 -Vpoint1.V: 300.0000 -Vpoint2.V: -700.0000 -Vpoint3.V: -700.0000 -Vpoint4.V: 0.0000 -Vpoint5.V: 0.0000 -Vpoint6.V: 0.0000 -Vpoint7.V: 0.0000 -Zpoint0.t: 0 -Zpoint1.t: 400 -Zpoint2.t: 600 -Zpoint3.t: 1024 -Zpoint4.t: 0 -Zpoint5.t: 0 -Zpoint6.t: 0 -Zpoint7.t: 0 -Zpoint0.z: 0 -Zpoint1.z: 0 -Zpoint2.z: 0 -Zpoint3.z: 0 -Zpoint4.z: 0 -Zpoint5.z: 0 -Zpoint6.z: 0 -Zpoint7.z: 0 -Xpoint0.t: 0 -Xpoint1.t: 400 -Xpoint2.t: 600 -Xpoint3.t: 1024 -Xpoint4.t: 0 -Xpoint5.t: 0 -Xpoint6.t: 0 -Xpoint7.t: 0 -Xpoint0.x: 0 -Xpoint1.x: 0 -Xpoint2.x: 0 -Xpoint3.x: 0 -Xpoint4.x: 0 -Xpoint5.x: 0 -Xpoint6.x: 0 -Xpoint7.x: 0 -SpecGrid_CenterX: 128 -SpecGrid_CenterY: 128 -SpecGridDX: 8 -SpecGridDY: 8 -SpecGridNX: 17 -SpecGridNY: 17 -OrgPlanX: 0.00000 -OrgPlanY: 0.00000 -OrgPlanOff: 0.00000 -Dacto[A]xy: 0.00183 -Dacto[A]z: 0.00037 -DigZoomX: 1.00000 -DigZoomZ: 1.00000 -Planavrgnr: 17 -ImageYPosMax: 10 -ActDriveDir: C:\Data\Nb-Ta sample_April 2025\Ta _ -TempDiode: DT600 Default -TempDiode2: DT600 Default -LastPrepFile: -LastMemoFile: C:\SAT\2022-11-25_@LN2_Si(111)-qPlus-sensor\A221126.125812.MEMO -LastLN2Fill: -LastLHeFill: -SBC_Clk[MHz]: 1000 -DSP_Clock: 50000 -FBOff: 0 -FBLog: 1 -FBChannel: 0 -FB2Channel: 0 -FBLogIset: 156.00000000 -FBIntegral: -3.300000 -FBProp: 0.00000000 -FB2LogIset: 0.000 -FB2Integral: -120 -FB2Prop: 0.00000000 -FBBackLogIset: 0.000 -CurrentRC: 0.8979 -Imaxcurrent: 1000000.0 -Imaxdelay: 1 -ImaxZret: 0.000 -UserPreampCode: 6:011000;1.000/8:101000;1.000/10:110000;1.000/12:111000;1.000/ -Internal_LT_PreampCode: 10:0111000;1.000 -SampleGateDelay: 0 -ZLimitRetract: -1041.667 -TipZLimit: 0 -LockinChannel: 0 -LockinOutChannel: 0 -LockinFreq: 925.00 -LockinAmpl: 10.000 -LockinPhase: -60 -LockinPhase2: 90 -LockinRC: 0.00126 -LockinMode: 3 -Lockin2xFMode: 0 -LockinRefAmpl: 0.000 -LockinRefPhase: 0 -LockinRefMode: 0 -SpecAvrgnr: 1 -SpecFreq: 2000.000 -Timechannelselectval: 3 -FFTPoints: 4096 -DAC4[V]: 0.00000 -DAC5[V]: 0.00000 -IZDacout5Scale: 1.000 -CP_V_Limit: 2000 -FB2_V_Limit_Min: -10000 -FB2_V_Limit_Max: 10000 -SRS_Frequency: 1000.000 -SRS_ModVoltage: 1.0000 -SRS_InpGain[V]: 1.0E+00 -SRS_InpTimeC[s]: 1.0E+00 -PLLOn: 0 -PLLCenterFreq: 28115.7207031 -PLLAmplitude: 3.3000E-03 -PLLPhase: -133.4170074 -PLLRC: 170.0000000 -PLLGain: 350472.0000000 -PLLFreqOffMax: 150.0000000 -PLLAmplGain: 1.8900E+00 -PLLControl: 1 -PLLAmplMin: 0.0000000 -PLLExcitation: 0.0500000 -PLLExcitationMax: 10.0000000 -PLLAmplInt: 5.8686E-04 -PLLAmplFilter: 96.0000000 -PLLInt: 108.5781250 -PLLFreqPostFilter: 100.0000000 -PLLAmplPostFilter: 100.0000000 -PLLRefcontrol: 0 -PLLRefAmpl[V]: 1.000000 -PLLRefOff[V]: 0.000000 -PLLFreqExt[1,2,4]: 1.000000 -PLLControl2: 0 -PLLFast: 0 -PLLSRSPreampgain: 10 -PLLSensorCal: 3.30E-03 -PLLScanStartFreq: 28100.0000000 -PLLScanStopFreq: 28140.0000000 -PLLScanInc: 0.0200000 -PLLScanDelay: 30.0000000 -PLLExtCenterFreq [Hz]: 32000.0000000 -PLLExtAmpl [V]: 1.0000000 -PLLExtPhase [DEG]: 0.0000000 -PLLExtFreqOffMax [Hz]: 100.0000000 -PLLExtNodeName: -PLLExternOn: 0 -Freq]: 1.0000000 -PLLExtCalFreq[V: 1.0000000 -PLLExtCalFreq[V/Freq]: 1.0000000 -Vrms]: 1.0000000 -PLLExtCalAmpl[V: 1.0000000 -PLLExtCalAmpl[V/Vrms]: 1.0000000 -PLLQCGain: 0.000000 -X-Puls-Count: 40696 -Y-Puls-Count: 76698 -Z-Puls-Count: 5509 -XYBurst: 1000 -RotBurst: 100 -ZBurst: 100 -ZBurstDown: 1 -XY-Puls-Height: 80.0 -XY-Puls-Duration: 0.004 -Z-Puls-Height: 80.0 -Z-Puls-Duration: 0.000 -Upinc: 100 -Upcount: 200 -Rotinc: 100 -Rotincquad: 0 -Rotcount: 200 -Zinc: 100 -ZCount: 10 -AproCurrentRC: 0.9900 -AproRampDelay: 10 -AproTestDelay: 10 -AproBurst: 1 -AproPeriod: 1000 -AproRetryNr: 2 -AproRampZMax: 524272 -RampZRatio: 1.000 -Rampunipolar: 0 -Autolevel: 0 -Length x[A]: 998.4680 -Length y[A]: 998.4680 -Biasvolt[mV]: 653.80 -SetPoint: 1.56E-10 -line:: 2.621 -Sec: 2.621 -Sec/line:: 2.621 -Image:: 1342.177 -Sec/Image:: 1342.177 -ActGainXYZ: 10 10 10 -T-STM:: 0.00000 -HP_Ch1: 0.00000 -HP_Ch2: 0.00000 -HP_Ch3: 0.00000 -HP_Ch4: 0.00000 -T_ADC2[K]: 431.692 -T_ADC3[K]: 0.000 -T_AUXADC6[K]: 77.362 -T_AUXADC7[K]: 77.258 -OneK_STM: 0.00000 -OneK_1K_Cryo: 0.00000 -OneK_4K_Cryo: 0.00000 -OneK_PT1000: 0.00000 -MEMO_STMAFM: -PSTMAFM.EXE_Date: 07/10/2022 07:44:44 DSP-COMPDATE= Mar 6 2022 12:44:26 -memo:0: -zÚ(4M&å..&¿ýݜöÛ¼: qmộžmÇ̹˜Xêp´y+ -‡<: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ -{ù X¤GpŸÙÀÍæÿg}¢ÞÒx0è [Óþ,ÝèÖ76º: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ -{ù X¤GpŸÙÀÍæÿg}¢ÞÒx0è [Óþ,ÝèÖ76º/‡<: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ +DAC-Type: 20bit +Titel: LN2 +Titel(File): LN2 +Titel(File) / Titel: LN2 +Delta X [Dac]: 213 +Delta X: 213 +Delta X / Delta X [Dac]: 213 +Delta Y [Dac]: 213 +Delta Y: 213 +Delta Y / Delta Y [Dac]: 213 +Num.X: 255 +Num.X / Num.X: 256 +Num.Y: 9 +Num.Y / Num.Y: 256 +Delay X+: 1 +Delay X+ / Delay X+: 1 +Delay X-: 1 +Delay X- / Delay X-: 1 +Delay Y: 1 +Delay Y / Delay Y: 1 +DDeltaX: 512 +DX_DIV_DDelta-X: 512 +DX: 512 +DX_DIV_DDelta-X / DX/DDeltaX: 512 +GainX: 10 +GainX / GainX: 10 +GainY: 10 +GainY / GainY: 10 +GainZ: 10 +GainZ / GainZ: 10 +Rotation: 0.00 +Rotation / Rotation: 0.00 +BiasVolt.[mV]: 653.80 +BiasVoltage: 653.80 +BiasVoltage / BiasVolt.[mV]: 653.80 +GainPre 10^: 9 +Gainpreamp: 9 +Gainpreamp / GainPre 10^: 9 +ScanChannels: 2 +Chan(1,2,4): 2 +Chan(1,2,4) / ScanChannels: 2 +PlanDx: -0.0100 +PlanDx / PlanDx: -0.0100 +PlanDy: 0.0500 +PlanDy / PlanDy: 0.0500 +OffsetX: 107692.6 +Scanrotoffx: 107692.6 +Scanrotoffx / OffsetX: 107692.6 +OffsetY: -43394.5 +Scanrotoffy: -43394.5 +Scanrotoffy / OffsetY: -43394.5 +ZPiezoconst: 19.20 +ZPiezoconst / ZPiezoconst: 19.20 +Xpiezoconst: 96.00 +Xpiezoconst / Xpiezoconst: 96.00 +YPiezoconst: 96.00 +YPiezoconst / YPiezoconst: 96.00 +RepeatRotinc: 0 +RepeatRotinc / RepeatRotinc: 0 +RptBVoltinc: 0 +RptBVoltinc / RptBVoltinc: 0 +Repeatinterval: 0 +Repeatinterval / Repeatinterval: 0 +Repeatcounter: 0 +Repeatcounter / Repeatcounter: 0 +RepeatXoffset: 0 +RepeatXoffset / RepeatXoffset: 0 +RepeatYoffset: 0 +RepeatYoffset / RepeatYoffset: 0 +Scantype: 1 +Scantype / Scantype: 1 +ScanXMode: 2 +Scanmode: 2 +Scanmode / ScanXMode: 2 +Scancoarse: 0 +Scancoarse / Scancoarse: 0 +CHMode: 0 +CHMode / CHMode: 0 +Channels: 4 +Channels / Channels: 4 +Preamptype: 1 +Preamptype / Preamptype: 1 +VFBMode: 0 +VFBMode / VFBMode: 0 +RotCMode: 1 +RotCMode / RotCMode: 1 +ScanYMode: 1 +ScanYMode / ScanYMode: 1 +ScanYDirec: 1 +ScanYDirec / ScanYDirec: 1 +ScanmodeSine: 0 +ScanmodeSine / ScanmodeSine: 0 +CHModeZoff: 0.00 +CHModeZoff / CHModeZoff: 0.00 +CHModeGainpreamp: 9 +CHModeGainpreamp / CHModeGainpreamp: 9 +CHModeBias[mV]: 1000.00 +CHModeBias[mV] / CHModeBias[mV]: 1000.00 +Channelselectval: 3 +Channelselectval / Channelselectval: 3 +Scancentermode: 0 +Scancentermode / Scancentermode: 0 +sec]: 0.00000 +Drift_X: 0.00000 +Drift_X[Å: 0.00000 +Drift_X / Drift_X[Å/sec]: 0.00000 +Drift_Y: 0.00000 +Drift_Y[Å: 0.00000 +Drift_Y / Drift_Y[Å/sec]: 0.00000 +Scandvinc: 0 +Scandvinc / Scandvinc: 0 +Scandiinc: 0 +Scandiinc / Scandiinc: 0 +Scandzinc: 0 +Scandzinc / Scandzinc: 0 +LinkFilename: A250407.141806.dat +LinkFilename / LinkFilename: A250407.141806.dat +Username: +Username / Username: +LastFile_SHA2: +LastFile_SHA2 / LastFile_SHA2: +MVoltnumber11: 1 +MVoltnumber11 / MVoltnumber11: 1 +MVolt_1: 0.00000 +MVolt_1 / MVolt_1: 0.00000 +MVolt_2: 0.00000 +MVolt_2 / MVolt_2: 0.00000 +MVolt_3: 0.00000 +MVolt_3 / MVolt_3: 0.00000 +MVolt_4: 0.00000 +MVolt_4 / MVolt_4: 0.00000 +MVolt_5: 0.00000 +MVolt_5 / MVolt_5: 0.00000 +MVolt_6: 0.00000 +MVolt_6 / MVolt_6: 0.00000 +MVolt_7: 0.00000 +MVolt_7 / MVolt_7: 0.00000 +MVolt_8: 0.00000 +MVolt_8 / MVolt_8: 0.00000 +MVolt_9: 0.00000 +MVolt_9 / MVolt_9: 0.00000 +MVolt_10: 0.00000 +MVolt_10 / MVolt_10: 0.00000 +Mcurrent_1: 0.0E+00 +Mcurrent_1 / Mcurrent_1: 0.0E+00 +Mcurrent_2: 0.0E+00 +Mcurrent_2 / Mcurrent_2: 0.0E+00 +Mcurrent_3: 0.0E+00 +Mcurrent_3 / Mcurrent_3: 0.0E+00 +Mcurrent_4: 0.0E+00 +Mcurrent_4 / Mcurrent_4: 0.0E+00 +Mcurrent_5: 0.0E+00 +Mcurrent_5 / Mcurrent_5: 0.0E+00 +Mcurrent_6: 0.0E+00 +Mcurrent_6 / Mcurrent_6: 0.0E+00 +Mcurrent_7: 0.0E+00 +Mcurrent_7 / Mcurrent_7: 0.0E+00 +Mcurrent_8: 0.0E+00 +Mcurrent_8 / Mcurrent_8: 0.0E+00 +Mcurrent_9: 0.0E+00 +Mcurrent_9 / Mcurrent_9: 0.0E+00 +Mcurrent_10: 0.0E+00 +Mcurrent_10 / Mcurrent_10: 0.0E+00 +MdF_1: 0.000 +MdF_1 / MdF_1: 0.000 +MdF_2: 0.000 +MdF_2 / MdF_2: 0.000 +MdF_3: 0.000 +MdF_3 / MdF_3: 0.000 +MdF_4: 0.000 +MdF_4 / MdF_4: 0.000 +MdF_5: 0.000 +MdF_5 / MdF_5: 0.000 +MdF_6: 0.000 +MdF_6 / MdF_6: 0.000 +MdF_7: 0.000 +MdF_7 / MdF_7: 0.000 +MdF_8: 0.000 +MdF_8 / MdF_8: 0.000 +MdF_9: 0.000 +MdF_9 / MdF_9: 0.000 +MdF_10: 0.000 +MdF_10 / MdF_10: 0.000 +MCHeight_1: 0.000 +MCHeight_1 / MCHeight_1: 0.000 +MCHeight_2: 0.000 +MCHeight_2 / MCHeight_2: 0.000 +MCHeight_3: 0.000 +MCHeight_3 / MCHeight_3: 0.000 +MCHeight_4: 0.000 +MCHeight_4 / MCHeight_4: 0.000 +MCHeight_5: 0.000 +MCHeight_5 / MCHeight_5: 0.000 +MCHeight_6: 0.000 +MCHeight_6 / MCHeight_6: 0.000 +MCHeight_7: 0.000 +MCHeight_7 / MCHeight_7: 0.000 +MCHeight_8: 0.000 +MCHeight_8 / MCHeight_8: 0.000 +MCHeight_9: 0.000 +MCHeight_9 / MCHeight_9: 0.000 +MCHeight_10: 0.000 +MCHeight_10 / MCHeight_10: 0.000 +MFBControl_1: 1 +MFBControl_1 / MFBControl_1: 1 +MFBControl_2: 1 +MFBControl_2 / MFBControl_2: 1 +MFBControl_3: 1 +MFBControl_3 / MFBControl_3: 1 +MFBControl_4: 1 +MFBControl_4 / MFBControl_4: 1 +MFBControl_5: 1 +MFBControl_5 / MFBControl_5: 1 +MFBControl_6: 1 +MFBControl_6 / MFBControl_6: 1 +MFBControl_7: 1 +MFBControl_7 / MFBControl_7: 1 +MFBControl_8: 1 +MFBControl_8 / MFBControl_8: 1 +MFBControl_9: 1 +MFBControl_9 / MFBControl_9: 1 +MFBControl_10: 1 +MFBControl_10 / MFBControl_10: 1 +Poti_BiasVoltOffset: 0.000 +Poti_BiasVoltOffset / Poti_BiasVoltOffset: 0.000 +Poti_DAC4Volt: 0.000 +Poti_DAC4Volt / Poti_DAC4Volt: 0.000 +Poti_DAC5Volt: 0.000 +Poti_DAC5Volt / Poti_DAC5Volt: 0.000 +Poti_TipAdvance: 0.000 +Poti_TipAdvance / Poti_TipAdvance: 0.000 +Poti_FBDelay: 0.000 +Poti_FBDelay / Poti_FBDelay: 0.000 +Poti_FBDuration: 0.000 +Poti_FBDuration / Poti_FBDuration: 0.000 +Poti_FBDelay2: 0.000 +Poti_FBDelay2 / Poti_FBDelay2: 0.000 +Poti_BiasCompensation: 0 +Poti_BiasCompensation / Poti_BiasCompensation: 0 +VProbe_ZFBTime[sec]: 1.000E-01 +VProbe_ZFBTime[sec] / VProbe_ZFBTime[sec]: 1.000E-01 +VProbe_ZFBDelay[sec]: 1.000E-01 +VProbe_ZFBDelay[sec] / VProbe_ZFBDelay[sec]: 1.000E-01 +VProbe_VFBTime[sec]: 1.000E-01 +VProbe_VFBTime[sec] / VProbe_VFBTime[sec]: 1.000E-01 +VProbe_VFBDelay[sec]: 1.000E-01 +VProbe_VFBDelay[sec] / VProbe_VFBDelay[sec]: 1.000E-01 +VProbe_VFBRC[sec]: -2.000E+00 +VProbe_VFBRC[sec] / VProbe_VFBRC[sec]: -2.000E+00 +SimDatZcal: 1.000E+00 +SimDatZcal / SimDatZcal: 1.000E+00 +SimDatXcal: 1.000E+00 +SimDatXcal / SimDatXcal: 1.000E+00 +SimDatYcal: 1.000E+00 +SimDatYcal / SimDatYcal: 1.000E+00 +SimSTMZcal: 1.907E-04 +SimSTMZcal / SimSTMZcal: 1.907E-04 +SimSTMVcal: 1.000E+08 +SimSTMVcal / SimSTMVcal: 1.000E+08 +SimAFMZmin: 5.000E+00 +SimAFMZmin / SimAFMZmin: 5.000E+00 +SimAFMZcal: 5.000E-01 +SimAFMZcal / SimAFMZcal: 5.000E-01 +SimAFMDfmin: 1.000E+01 +SimAFMDfmin / SimAFMDfmin: 1.000E+01 +SimNoiseADC0: 1.000E-04 +SimNoiseADC0 / SimNoiseADC0: 1.000E-04 +Latmanmode: 1 +LatmResist: 1.000E+00 +LatmanVolt: 1000.00 +Latmanlgi: 0 +Latmangain: 9 +Latmanddx: 1.049 +Latmandelay: 100 +Latm0Delay: 2 +Latmanccdz: 0 +Latmanextension: 1.000 +Latchannelselectval: 1 +TipForm_Volt: 4000 +TipForm_Z: 0 +Tip_Delay: 24 +Tip_Latddx: 5.461 +Tip_LatDelay: 10 +Tip_Gain: 9 +TipForm_ZOffset: 0 +SpecXGrid: 100000 +SpecYGrid: 100000 +SpecXYGridDelay: 10 +VertSpecPosX: -44444 +VertSpecPosY: -57971 +Vertchannelselectval: 1291 +Vertmangain: 9 +Vertmandelay: 1442 +VertSpecBack: 1 +VertSpecAvrgnr: 2 +VertAvrgdelay: 100 +VertRepeatCounter: 1 +VertLineCount: 2 +VertFBMode: 4 +VertFBLogiset: 0.000 +VertLatddx: 5.461 +VertLatdelay: 25 +VertStartdly[ms]: 500 +Zoffset: 0 +Zdrift: 0 +VertLimitMode: 0 +VerttreshImax: 1910000007.3 +VerttreshImin: -1910000007.3 +Verttreshmax2: 10000000000.000 +Verttreshmin2: -10000000000.000 +Verttreshchan: 1000 +Verttreshchan2: -1 +Vpoint0.t: 0 +Vpoint1.t: 20 +Vpoint2.t: 1020 +Vpoint3.t: 1040 +Vpoint4.t: 0 +Vpoint5.t: 0 +Vpoint6.t: 0 +Vpoint7.t: 0 +Vpoint0.V: 300.0000 +Vpoint1.V: 300.0000 +Vpoint2.V: -700.0000 +Vpoint3.V: -700.0000 +Vpoint4.V: 0.0000 +Vpoint5.V: 0.0000 +Vpoint6.V: 0.0000 +Vpoint7.V: 0.0000 +Zpoint0.t: 0 +Zpoint1.t: 400 +Zpoint2.t: 600 +Zpoint3.t: 1024 +Zpoint4.t: 0 +Zpoint5.t: 0 +Zpoint6.t: 0 +Zpoint7.t: 0 +Zpoint0.z: 0 +Zpoint1.z: 0 +Zpoint2.z: 0 +Zpoint3.z: 0 +Zpoint4.z: 0 +Zpoint5.z: 0 +Zpoint6.z: 0 +Zpoint7.z: 0 +Xpoint0.t: 0 +Xpoint1.t: 400 +Xpoint2.t: 600 +Xpoint3.t: 1024 +Xpoint4.t: 0 +Xpoint5.t: 0 +Xpoint6.t: 0 +Xpoint7.t: 0 +Xpoint0.x: 0 +Xpoint1.x: 0 +Xpoint2.x: 0 +Xpoint3.x: 0 +Xpoint4.x: 0 +Xpoint5.x: 0 +Xpoint6.x: 0 +Xpoint7.x: 0 +SpecGrid_CenterX: 128 +SpecGrid_CenterY: 128 +SpecGridDX: 8 +SpecGridDY: 8 +SpecGridNX: 17 +SpecGridNY: 17 +OrgPlanX: 0.00000 +OrgPlanY: 0.00000 +OrgPlanOff: 0.00000 +Dacto[A]xy: 0.00183 +Dacto[A]z: 0.00037 +DigZoomX: 1.00000 +DigZoomZ: 1.00000 +Planavrgnr: 17 +ImageYPosMax: 10 +ActDriveDir: C:\Data\Nb-Ta sample_April 2025\Ta _ +TempDiode: DT600 Default +TempDiode2: DT600 Default +LastPrepFile: +LastMemoFile: C:\SAT\2022-11-25_@LN2_Si(111)-qPlus-sensor\A221126.125812.MEMO +LastLN2Fill: +LastLHeFill: +SBC_Clk[MHz]: 1000 +DSP_Clock: 50000 +FBOff: 0 +FBLog: 1 +FBChannel: 0 +FB2Channel: 0 +FBLogIset: 156.00000000 +FBIntegral: -3.300000 +FBProp: 0.00000000 +FB2LogIset: 0.000 +FB2Integral: -120 +FB2Prop: 0.00000000 +FBBackLogIset: 0.000 +CurrentRC: 0.8979 +Imaxcurrent: 1000000.0 +Imaxdelay: 1 +ImaxZret: 0.000 +UserPreampCode: 6:011000;1.000/8:101000;1.000/10:110000;1.000/12:111000;1.000/ +Internal_LT_PreampCode: 10:0111000;1.000 +SampleGateDelay: 0 +ZLimitRetract: -1041.667 +TipZLimit: 0 +LockinChannel: 0 +LockinOutChannel: 0 +LockinFreq: 925.00 +LockinAmpl: 10.000 +LockinPhase: -60 +LockinPhase2: 90 +LockinRC: 0.00126 +LockinMode: 3 +Lockin2xFMode: 0 +LockinRefAmpl: 0.000 +LockinRefPhase: 0 +LockinRefMode: 0 +SpecAvrgnr: 1 +SpecFreq: 2000.000 +Timechannelselectval: 3 +FFTPoints: 4096 +DAC4[V]: 0.00000 +DAC5[V]: 0.00000 +IZDacout5Scale: 1.000 +CP_V_Limit: 2000 +FB2_V_Limit_Min: -10000 +FB2_V_Limit_Max: 10000 +SRS_Frequency: 1000.000 +SRS_ModVoltage: 1.0000 +SRS_InpGain[V]: 1.0E+00 +SRS_InpTimeC[s]: 1.0E+00 +PLLOn: 0 +PLLCenterFreq: 28115.7207031 +PLLAmplitude: 3.3000E-03 +PLLPhase: -133.4170074 +PLLRC: 170.0000000 +PLLGain: 350472.0000000 +PLLFreqOffMax: 150.0000000 +PLLAmplGain: 1.8900E+00 +PLLControl: 1 +PLLAmplMin: 0.0000000 +PLLExcitation: 0.0500000 +PLLExcitationMax: 10.0000000 +PLLAmplInt: 5.8686E-04 +PLLAmplFilter: 96.0000000 +PLLInt: 108.5781250 +PLLFreqPostFilter: 100.0000000 +PLLAmplPostFilter: 100.0000000 +PLLRefcontrol: 0 +PLLRefAmpl[V]: 1.000000 +PLLRefOff[V]: 0.000000 +PLLFreqExt[1,2,4]: 1.000000 +PLLControl2: 0 +PLLFast: 0 +PLLSRSPreampgain: 10 +PLLSensorCal: 3.30E-03 +PLLScanStartFreq: 28100.0000000 +PLLScanStopFreq: 28140.0000000 +PLLScanInc: 0.0200000 +PLLScanDelay: 30.0000000 +PLLExtCenterFreq [Hz]: 32000.0000000 +PLLExtAmpl [V]: 1.0000000 +PLLExtPhase [DEG]: 0.0000000 +PLLExtFreqOffMax [Hz]: 100.0000000 +PLLExtNodeName: +PLLExternOn: 0 +Freq]: 1.0000000 +PLLExtCalFreq[V: 1.0000000 +PLLExtCalFreq[V/Freq]: 1.0000000 +Vrms]: 1.0000000 +PLLExtCalAmpl[V: 1.0000000 +PLLExtCalAmpl[V/Vrms]: 1.0000000 +PLLQCGain: 0.000000 +X-Puls-Count: 40696 +Y-Puls-Count: 76698 +Z-Puls-Count: 5509 +XYBurst: 1000 +RotBurst: 100 +ZBurst: 100 +ZBurstDown: 1 +XY-Puls-Height: 80.0 +XY-Puls-Duration: 0.004 +Z-Puls-Height: 80.0 +Z-Puls-Duration: 0.000 +Upinc: 100 +Upcount: 200 +Rotinc: 100 +Rotincquad: 0 +Rotcount: 200 +Zinc: 100 +ZCount: 10 +AproCurrentRC: 0.9900 +AproRampDelay: 10 +AproTestDelay: 10 +AproBurst: 1 +AproPeriod: 1000 +AproRetryNr: 2 +AproRampZMax: 524272 +RampZRatio: 1.000 +Rampunipolar: 0 +Autolevel: 0 +Length x[A]: 998.4680 +Length y[A]: 998.4680 +Biasvolt[mV]: 653.80 +SetPoint: 1.56E-10 +line:: 2.621 +Sec: 2.621 +Sec/line:: 2.621 +Image:: 1342.177 +Sec/Image:: 1342.177 +ActGainXYZ: 10 10 10 +T-STM:: 0.00000 +HP_Ch1: 0.00000 +HP_Ch2: 0.00000 +HP_Ch3: 0.00000 +HP_Ch4: 0.00000 +T_ADC2[K]: 431.692 +T_ADC3[K]: 0.000 +T_AUXADC6[K]: 77.362 +T_AUXADC7[K]: 77.258 +OneK_STM: 0.00000 +OneK_1K_Cryo: 0.00000 +OneK_4K_Cryo: 0.00000 +OneK_PT1000: 0.00000 +MEMO_STMAFM: +PSTMAFM.EXE_Date: 07/10/2022 07:44:44 DSP-COMPDATE= Mar 6 2022 12:44:26 +memo:0: +zÚ(4M&å..&¿ýݜöÛ¼: qmộžmÇ̹˜Xêp´y+ +‡<: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ +{ù X¤GpŸÙÀÍæÿg}¢ÞÒx0è [Óþ,ÝèÖ76º: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ +{ù X¤GpŸÙÀÍæÿg}¢ÞÒx0è [Óþ,ÝèÖ76º/‡<: ¥ËwE%՞›§YIÑE,Q]ÙÿfXiïؐ’yn ›É‚6ˆB¯™2üMñ diff --git a/test_data/output_raw_npy/npy/A250407.probeflow.json b/test_data/output_raw_npy/npy/A250407.probeflow.json index 2eb0a2c..2ef33cc 100644 --- a/test_data/output_raw_npy/npy/A250407.probeflow.json +++ b/test_data/output_raw_npy/npy/A250407.probeflow.json @@ -1,18 +1,18 @@ { "artifact_type": "createc_dat_npy_bundle", - "source_path": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\sample_input\\A250407.141806.dat", + "source_path": "/Users/peterjacobson/ProbeFlow/test_data/sample_input/A250407.141806.dat", "source_format": "dat", - "basis": "raw", - "bundle_dir": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A250407.141806_raw_npy", - "bundle_name": "A250407.141806_raw_npy", - "raw_definition": "RAW means decoded Createc numerical arrays after ProbeFlow's parser cleanup, before physical scaling or PNG normalization. It is not a byte-exact copy of the compressed file payload.", + "basis": "physical", + "bundle_dir": "test_data/output_raw_npy/npy/A250407.141806_physical_npy", + "bundle_name": "A250407.141806_physical_npy", + "raw_definition": "Physical arrays are converted with ProbeFlow's Createc calibration logic and match the public Scan representation.", "scan_pixels": [ 255, 9 ], "scan_range_m": [ - 9.98468e-08, - 9.98468e-08 + 9.94567734375e-08, + 3.5102390625e-09 ], "original_shape": [ 256, @@ -35,7 +35,7 @@ "file_name": "A250407.141806_1.npy", "public_name": "Z forward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 0, "source_name": "Z forward", "source_unit": "m", @@ -43,7 +43,7 @@ "direction": "forward", "synthetic": false, "scale_factor": 3.7000000000000004e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 9, 255 @@ -54,7 +54,7 @@ "file_name": "A250407.141806_2.npy", "public_name": "Z backward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 2, "source_name": "Z backward", "source_unit": "m", @@ -62,7 +62,7 @@ "direction": "backward", "synthetic": false, "scale_factor": 3.7000000000000004e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 9, 255 @@ -73,7 +73,7 @@ "file_name": "A250407.141806_3.npy", "public_name": "Current forward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 1, "source_name": "Current forward", "source_unit": "A", @@ -81,7 +81,7 @@ "direction": "forward", "synthetic": false, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 9, 255 @@ -92,7 +92,7 @@ "file_name": "A250407.141806_4.npy", "public_name": "Current backward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 3, "source_name": "Current backward", "source_unit": "A", @@ -100,7 +100,7 @@ "direction": "backward", "synthetic": false, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 9, 255 @@ -639,6 +639,6 @@ "{\u00f9\u00a0X\u00a4\u0011Gp\u009f\u00d9\u00c0\u00cd\u00e6\u00ff\u0000g}\u00a2\u00de\u00d2x0\u00e8\u00a0\u000f[\u00d3\u00fe,\u00dd\u00e8\u00d676\u00ba": "\u00a5\u00cbw\u0002E%\u00d5\u009e\u009b\u00a7YI\u0004\u00d1E,Q]\u00d9\u00ff\u0000fXi\u00ef\u0014\u00d8\u0090\u0019\u0092yn\u00a0\u009b\u00c9\u00826\u0088B\u00af\u0014\u00992\u00fcM\u00f1", "{\u00f9\u00a0X\u00a4\u0011Gp\u009f\u00d9\u00c0\u00cd\u00e6\u00ff\u0000g}\u00a2\u00de\u00d2x0\u00e8\u00a0\u000f[\u00d3\u00fe,\u00dd\u00e8\u00d676\u00ba/\u0087<": "\u00a5\u00cbw\u0002E%\u00d5\u009e\u009b\u00a7YI\u0004\u00d1E,Q]\u00d9\u00ff\u0000fXi\u00ef\u0014\u00d8\u0090\u0019\u0092yn\u00a0\u009b\u00c9\u00826\u0088B\u00af\u0014\u00992\u00fcM\u00f1" }, - "export_path": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A250407.141806_raw_npy", + "export_path": "test_data/output_raw_npy/npy/A250407.141806_physical_npy", "export_format": "npy" } \ No newline at end of file diff --git a/test_data/output_raw_npy/npy/A250407.provenance.json b/test_data/output_raw_npy/npy/A250407.provenance.json index 5351495..5fedd4f 100644 --- a/test_data/output_raw_npy/npy/A250407.provenance.json +++ b/test_data/output_raw_npy/npy/A250407.provenance.json @@ -1,18 +1,18 @@ { "artifact_type": "createc_dat_npy_bundle", - "source_path": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\sample_input\\A250407.141806.dat", + "source_path": "/Users/peterjacobson/ProbeFlow/test_data/sample_input/A250407.141806.dat", "source_format": "dat", - "basis": "raw", - "bundle_dir": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A250407.141806_raw_npy", - "bundle_name": "A250407.141806_raw_npy", - "raw_definition": "RAW means decoded Createc numerical arrays after ProbeFlow's parser cleanup, before physical scaling or PNG normalization. It is not a byte-exact copy of the compressed file payload.", + "basis": "physical", + "bundle_dir": "test_data/output_raw_npy/npy/A250407.141806_physical_npy", + "bundle_name": "A250407.141806_physical_npy", + "raw_definition": "Physical arrays are converted with ProbeFlow's Createc calibration logic and match the public Scan representation.", "scan_pixels": [ 255, 9 ], "scan_range_m": [ - 9.98468e-08, - 9.98468e-08 + 9.94567734375e-08, + 3.5102390625e-09 ], "original_shape": [ 256, @@ -35,7 +35,7 @@ "file_name": "A250407.141806_1.npy", "public_name": "Z forward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 0, "source_name": "Z forward", "source_unit": "m", @@ -43,7 +43,7 @@ "direction": "forward", "synthetic": false, "scale_factor": 3.7000000000000004e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 9, 255 @@ -54,7 +54,7 @@ "file_name": "A250407.141806_2.npy", "public_name": "Z backward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 2, "source_name": "Z backward", "source_unit": "m", @@ -62,7 +62,7 @@ "direction": "backward", "synthetic": false, "scale_factor": 3.7000000000000004e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 9, 255 @@ -73,7 +73,7 @@ "file_name": "A250407.141806_3.npy", "public_name": "Current forward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 1, "source_name": "Current forward", "source_unit": "A", @@ -81,7 +81,7 @@ "direction": "forward", "synthetic": false, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 9, 255 @@ -92,7 +92,7 @@ "file_name": "A250407.141806_4.npy", "public_name": "Current backward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 3, "source_name": "Current backward", "source_unit": "A", @@ -100,7 +100,7 @@ "direction": "backward", "synthetic": false, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 9, 255 diff --git a/test_data/output_raw_npy/npy/A260317.probeflow.json b/test_data/output_raw_npy/npy/A260317.probeflow.json index f22d061..fc25e07 100644 --- a/test_data/output_raw_npy/npy/A260317.probeflow.json +++ b/test_data/output_raw_npy/npy/A260317.probeflow.json @@ -1,17 +1,17 @@ { "artifact_type": "createc_dat_npy_bundle", - "source_path": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\sample_input\\A260317.105156.dat", + "source_path": "/Users/peterjacobson/ProbeFlow/test_data/sample_input/A260317.105156.dat", "source_format": "dat", - "basis": "raw", - "bundle_dir": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A260317.105156_raw_npy", - "bundle_name": "A260317.105156_raw_npy", - "raw_definition": "RAW means decoded Createc numerical arrays after ProbeFlow's parser cleanup, before physical scaling or PNG normalization. It is not a byte-exact copy of the compressed file payload.", + "basis": "physical", + "bundle_dir": "test_data/output_raw_npy/npy/A260317.105156_physical_npy", + "bundle_name": "A260317.105156_physical_npy", + "raw_definition": "Physical arrays are converted with ProbeFlow's Createc calibration logic and match the public Scan representation.", "scan_pixels": [ 511, 512 ], "scan_range_m": [ - 2.4000732e-07, + 2.39538555703125e-07, 2.4000732e-07 ], "original_shape": [ @@ -33,7 +33,7 @@ "file_name": "A260317.105156_1.npy", "public_name": "Z forward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 0, "source_name": "Z forward", "source_unit": "m", @@ -41,7 +41,7 @@ "direction": "forward", "synthetic": false, "scale_factor": 3.7000000000000004e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 512, 511 @@ -52,7 +52,7 @@ "file_name": "A260317.105156_2.npy", "public_name": "Z backward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 2, "source_name": "Z backward", "source_unit": "m", @@ -60,7 +60,7 @@ "direction": "backward", "synthetic": false, "scale_factor": 3.7000000000000004e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 512, 511 @@ -71,7 +71,7 @@ "file_name": "A260317.105156_3.npy", "public_name": "Current forward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 1, "source_name": "Current forward", "source_unit": "A", @@ -79,7 +79,7 @@ "direction": "forward", "synthetic": false, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 512, 511 @@ -90,7 +90,7 @@ "file_name": "A260317.105156_4.npy", "public_name": "Current backward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 3, "source_name": "Current backward", "source_unit": "A", @@ -98,7 +98,7 @@ "direction": "backward", "synthetic": false, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 512, 511 @@ -633,6 +633,6 @@ "PSTMAFM.EXE_Date": "07/10/2022 07:44:44 DSP-COMPDATE= Sep 26 2022 15:47:21", "memo:0": "" }, - "export_path": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A260317.105156_raw_npy", + "export_path": "test_data/output_raw_npy/npy/A260317.105156_physical_npy", "export_format": "npy" } \ No newline at end of file diff --git a/test_data/output_raw_npy/npy/A260317.provenance.json b/test_data/output_raw_npy/npy/A260317.provenance.json index 25bf739..7795100 100644 --- a/test_data/output_raw_npy/npy/A260317.provenance.json +++ b/test_data/output_raw_npy/npy/A260317.provenance.json @@ -1,17 +1,17 @@ { "artifact_type": "createc_dat_npy_bundle", - "source_path": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\sample_input\\A260317.105156.dat", + "source_path": "/Users/peterjacobson/ProbeFlow/test_data/sample_input/A260317.105156.dat", "source_format": "dat", - "basis": "raw", - "bundle_dir": "C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A260317.105156_raw_npy", - "bundle_name": "A260317.105156_raw_npy", - "raw_definition": "RAW means decoded Createc numerical arrays after ProbeFlow's parser cleanup, before physical scaling or PNG normalization. It is not a byte-exact copy of the compressed file payload.", + "basis": "physical", + "bundle_dir": "test_data/output_raw_npy/npy/A260317.105156_physical_npy", + "bundle_name": "A260317.105156_physical_npy", + "raw_definition": "Physical arrays are converted with ProbeFlow's Createc calibration logic and match the public Scan representation.", "scan_pixels": [ 511, 512 ], "scan_range_m": [ - 2.4000732e-07, + 2.39538555703125e-07, 2.4000732e-07 ], "original_shape": [ @@ -33,7 +33,7 @@ "file_name": "A260317.105156_1.npy", "public_name": "Z forward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 0, "source_name": "Z forward", "source_unit": "m", @@ -41,7 +41,7 @@ "direction": "forward", "synthetic": false, "scale_factor": 3.7000000000000004e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 512, 511 @@ -52,7 +52,7 @@ "file_name": "A260317.105156_2.npy", "public_name": "Z backward", "public_unit": "m", - "saved_unit": "DAC", + "saved_unit": "m", "source_native_index": 2, "source_name": "Z backward", "source_unit": "m", @@ -60,7 +60,7 @@ "direction": "backward", "synthetic": false, "scale_factor": 3.7000000000000004e-13, - "dtype": "float32", + "dtype": "float64", "shape": [ 512, 511 @@ -71,7 +71,7 @@ "file_name": "A260317.105156_3.npy", "public_name": "Current forward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 1, "source_name": "Current forward", "source_unit": "A", @@ -79,7 +79,7 @@ "direction": "forward", "synthetic": false, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 512, 511 @@ -90,7 +90,7 @@ "file_name": "A260317.105156_4.npy", "public_name": "Current backward", "public_unit": "A", - "saved_unit": "DAC", + "saved_unit": "A", "source_native_index": 3, "source_name": "Current backward", "source_unit": "A", @@ -98,7 +98,7 @@ "direction": "backward", "synthetic": false, "scale_factor": -9.5367431640625e-15, - "dtype": "float32", + "dtype": "float64", "shape": [ 512, 511 diff --git a/test_data/output_raw_npy/npy/errors.json b/test_data/output_raw_npy/npy/errors.json deleted file mode 100644 index 6b2e84e..0000000 --- a/test_data/output_raw_npy/npy/errors.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "A250320.191933.dat": "physical: Provenance sidecar already exists: C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A250320.provenance.json, C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A250320.probeflow.json. Choose a different output path or pass overwrite=True/--force.", - "A250407.141806.dat": "physical: Provenance sidecar already exists: C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A250407.provenance.json, C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A250407.probeflow.json. Choose a different output path or pass overwrite=True/--force.", - "A260317.105156.dat": "physical: Provenance sidecar already exists: C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A260317.provenance.json, C:\\Users\\rnpla\\Desktop\\stm\\ProbeFlow\\test_data\\output_raw_npy\\npy\\A260317.probeflow.json. Choose a different output path or pass overwrite=True/--force." -} \ No newline at end of file diff --git a/tests/test_createc_dat_decode.py b/tests/test_createc_dat_decode.py index f877818..3348eb1 100644 --- a/tests/test_createc_dat_decode.py +++ b/tests/test_createc_dat_decode.py @@ -519,3 +519,69 @@ def test_trailing_bytes_after_zlib_stream_still_decode(tmp_path): report = read_createc_dat_report(dat, include_raw=False) assert report.detected_channel_count == 4 + + +# --------------------------------------------------------------------------- # +# Decoded scan range: pixel step from the acquisition grid, extent from the +# decoded shape (physics review 2026-07-02) +# --------------------------------------------------------------------------- # +def test_decoded_scan_range_keeps_acquisition_pixel_step(sample_dat_files): + """Pairing full-frame Length x/y with the decoded (first-column-removed) + shape overestimated pixel_size_x by Nx/(Nx-1) and made square scans read + as anisotropic. The decoded range must preserve the acquisition step.""" + from probeflow.io.readers.createc_dat import ( + decoded_scan_range_m, + scan_range_m_from_header, + ) + from probeflow.io.readers.createc_scan import read_dat + + path = sample_dat_files[0] + report = read_createc_dat_report(path, include_raw=False) + full = scan_range_m_from_header(report.original_header) + step_x = full[0] / report.original_Nx + step_y = full[1] / report.original_Ny + + got = decoded_scan_range_m(report) + assert got[0] == pytest.approx(step_x * report.decoded_Nx, rel=1e-12) + assert got[1] == pytest.approx(step_y * report.decoded_Ny, rel=1e-12) + + scan = read_dat(path) + ny, nx = scan.planes[0].shape + px_x = scan.scan_range_m[0] / nx + px_y = scan.scan_range_m[1] / ny + assert px_x == pytest.approx(step_x, rel=1e-12) + assert px_y == pytest.approx(step_y, rel=1e-12) + # This fixture is a physically square scan: pixel sizes must match, not + # differ by the phantom Nx/(Nx-1) anisotropy the old pairing produced. + if abs(full[0] - full[1]) < 1e-15 and report.original_Nx == report.original_Ny: + assert px_x == pytest.approx(px_y, rel=1e-12) + + +def test_decoded_scan_range_shrinks_with_partial_scan_trim(tmp_path): + """A scan stopped early keeps the programmed Length y in its header; the + decoded range must scale by trimmed_Ny/original_Ny or every y-distance is + wrong by the inverse factor (2x for a half-finished scan).""" + from probeflow.io.readers.createc_dat import decoded_scan_range_m + + Nx = Ny = 4 + header = ( + b"[Paramco32]\n" + b"Num.X=4\nNum.Y=4\n" + b"Length x[A]=40.0\nLength y[A]=40.0\n" + b"ImageYPosMax=3\n" # one-based next-Y: 2 completed rows + ) + payload = zlib.compress( + np.arange(1, 2 * Ny * Nx + 1, dtype="