|
13 | 13 |
|
14 | 14 | # pylint: disable=too-many-locals |
15 | 15 | # pylint: disable=too-many-statements |
| 16 | +# pylint: disable=too-many-branches |
16 | 17 | def load_top( # noqa: C901 (ignore too complex) |
17 | 18 | file_path: Path | str, header_encoding: str = "latin-1" |
18 | 19 | ) -> tuple[np.ndarray, float]: |
@@ -70,14 +71,18 @@ def load_top( # noqa: C901 (ignore too complex) |
70 | 71 | if cols_match is None: |
71 | 72 | raise ValueError(f"[{filename}] : 'cols' not found in file header.") |
72 | 73 | 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) |
74 | 75 | if x_real_size_match is None: |
75 | 76 | raise ValueError(f"[{filename}] : 'X Amplitude' not found in file header.") |
76 | 77 | 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) |
78 | 81 | if y_real_size_match is None: |
79 | 82 | raise ValueError(f"[{filename}] : 'Y Amplitude' not found in file header.") |
80 | 83 | 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 |
81 | 86 | if x_real_size != y_real_size: |
82 | 87 | raise NotImplementedError( |
83 | 88 | f"[{filename}] : X scan size (nm) does not equal Y scan size (nm) ({x_real_size}, {y_real_size})" |
|
0 commit comments