Skip to content

Commit 5d897ee

Browse files
committed
Simplify unit scaling
1 parent a78c218 commit 5d897ee

2 files changed

Lines changed: 14 additions & 4 deletions

File tree

AFMReader/stp.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313

1414
# pylint: disable=too-many-locals
15+
# pylint: disable=too-many-statements
1516
def load_stp( # noqa: C901 (ignore too complex)
1617
file_path: Path | str, header_encoding: str = "latin-1"
1718
) -> tuple[np.ndarray, float]:
@@ -69,14 +70,18 @@ def load_stp( # noqa: C901 (ignore too complex)
6970
if cols_match is None:
7071
raise ValueError(f"[{filename}] : 'cols' not found in file header.")
7172
cols = int(cols_match.group(1))
72-
x_real_size_match = re.search(r"X Amplitude: (\d+\.?\d*) nm", header_decoded)
73+
x_real_size_match = re.search(r"X Amplitude: (\d+\.?\d*) (µm|nm)", header_decoded)
7374
if x_real_size_match is None:
7475
raise ValueError(f"[{filename}] : 'X Amplitude' not found in file header.")
7576
x_real_size = float(x_real_size_match.group(1))
76-
y_real_size_match = re.search(r"Y Amplitude: (\d+\.?\d*) nm", header_decoded)
77+
x_units = x_real_size_match.group(2)
78+
x_real_size = x_real_size * 1000 if x_units == "µm" else x_real_size
79+
y_real_size_match = re.search(r"Y Amplitude: (\d+\.?\d*) (µm|nm)", header_decoded)
7780
if y_real_size_match is None:
7881
raise ValueError(f"[{filename}] : 'Y Amplitude' not found in file header.")
7982
y_real_size = float(y_real_size_match.group(1))
83+
y_units = y_real_size_match.group(2)
84+
y_real_size = y_real_size * 1000 if y_units == "µm" else y_real_size
8085
if x_real_size != y_real_size:
8186
raise NotImplementedError(
8287
f"[{filename}] : X scan size (nm) does not equal Y scan size (nm) ({x_real_size}, {y_real_size})"

AFMReader/top.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
# pylint: disable=too-many-locals
1515
# pylint: disable=too-many-statements
16+
# pylint: disable=too-many-branches
1617
def load_top( # noqa: C901 (ignore too complex)
1718
file_path: Path | str, header_encoding: str = "latin-1"
1819
) -> tuple[np.ndarray, float]:
@@ -70,14 +71,18 @@ def load_top( # noqa: C901 (ignore too complex)
7071
if cols_match is None:
7172
raise ValueError(f"[{filename}] : 'cols' not found in file header.")
7273
cols = int(cols_match.group(1))
73-
x_real_size_match = re.search(r"X Amplitude: (\d+\.?\d*) nm", header_decoded)
74+
x_real_size_match = re.search(r"X Amplitude: (\d+\.?\d*) (µm|nm)", header_decoded)
7475
if x_real_size_match is None:
7576
raise ValueError(f"[{filename}] : 'X Amplitude' not found in file header.")
7677
x_real_size = float(x_real_size_match.group(1))
77-
y_real_size_match = re.search(r"Y Amplitude: (\d+\.?\d*) nm", header_decoded)
78+
x_units = x_real_size_match.group(2)
79+
x_real_size = x_real_size * 1000 if x_units == "µm" else x_real_size
80+
y_real_size_match = re.search(r"Y Amplitude: (\d+\.?\d*) (µm|nm)", header_decoded)
7881
if y_real_size_match is None:
7982
raise ValueError(f"[{filename}] : 'Y Amplitude' not found in file header.")
8083
y_real_size = float(y_real_size_match.group(1))
84+
y_units = y_real_size_match.group(2)
85+
y_real_size = y_real_size * 1000 if y_units == "µm" else y_real_size
8186
if x_real_size != y_real_size:
8287
raise NotImplementedError(
8388
f"[{filename}] : X scan size (nm) does not equal Y scan size (nm) ({x_real_size}, {y_real_size})"

0 commit comments

Comments
 (0)