|
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,20 @@ 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 | + if x_units == "µm": |
| 80 | + x_real_size *= 1000 |
| 81 | + y_real_size_match = re.search(r"Y Amplitude: (\d+\.?\d*) (µm|nm)", header_decoded) |
78 | 82 | if y_real_size_match is None: |
79 | 83 | raise ValueError(f"[{filename}] : 'Y Amplitude' not found in file header.") |
80 | 84 | y_real_size = float(y_real_size_match.group(1)) |
| 85 | + y_units = y_real_size_match.group(2) |
| 86 | + if y_units == "µm": |
| 87 | + y_real_size *= 1000 |
81 | 88 | if x_real_size != y_real_size: |
82 | 89 | raise NotImplementedError( |
83 | 90 | f"[{filename}] : X scan size (nm) does not equal Y scan size (nm) ({x_real_size}, {y_real_size})" |
|
0 commit comments