|
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