Skip to content

Commit 36dd713

Browse files
MarJMuedomna
andauthored
Fixes for Woollam importer (#226)
* Woollam: Fix importer regex for negative deltas * Woollam: read first data line of file * Add wavelength boundary check --------- Co-authored-by: domna <[email protected]>
1 parent 83050a0 commit 36dd713

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

src/elli/importer/woollam.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def _is_wvase_tabular(line: str) -> bool:
4646
Returns:
4747
bool: True if the line is in wvase tabular layout.
4848
"""
49-
return bool(re.search(r"^(\d*\.\d*\s+){5}\d*\.\d*$", line))
49+
return bool(re.search(r"^(-?\d*\.\d*\s+){5}\d*\.\d*$", line))
5050

5151

5252
def _is_complete_ease_tabular(line: str) -> bool:
@@ -181,11 +181,9 @@ def read_woollam_psi_delta(fname: str) -> pd.DataFrame:
181181
line = fobj.readline()
182182
while line:
183183
if _is_wvase_tabular(line):
184-
line_number = fobj.tell()
185184
file_format = "wvase"
186185
break
187186
if _is_complete_ease_tabular(line):
188-
line_number = fobj.tell()
189187
file_format = "complete_ease"
190188
break
191189
if _is_tan_cos_format(line):
@@ -194,6 +192,7 @@ def read_woollam_psi_delta(fname: str) -> pd.DataFrame:
194192
"Please try using wvase's psi/delta format."
195193
)
196194
metadata.append(line)
195+
line_number = fobj.tell()
197196
line = fobj.readline()
198197
fobj.seek(line_number)
199198

tests/test_wollam.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import pytest
44
from fixtures import datadir # pylint: disable=unused-import
5+
from numpy.testing import assert_almost_equal
56

67
import elli
78

@@ -15,9 +16,9 @@ def test_reading_of_psi_delta_woollam(datadir):
1516
)
1617
data_cease = elli.read_woollam_psi_delta(datadir / "complete_ease_example.dat")
1718

18-
assert data_wvase.shape == (542, 2)
19-
assert data_wvase_wo_dpolE.shape == (542, 2)
20-
assert data_cease.shape == (3263, 2)
19+
assert data_wvase.shape == (543, 2)
20+
assert data_wvase_wo_dpolE.shape == (543, 2)
21+
assert data_cease.shape == (3264, 2)
2122

2223

2324
# pylint: disable=redefined-outer-name
@@ -26,8 +27,12 @@ def test_reading_and_conv_to_woollam(datadir):
2627
data_wvase = elli.read_woollam_rho(datadir / "wvase_example.dat")
2728
data_cease = elli.read_woollam_rho(datadir / "complete_ease_example.dat")
2829

29-
assert data_wvase.shape == (542,)
30-
assert data_cease.shape == (3263,)
30+
assert data_wvase.shape == (543,)
31+
assert data_wvase.index.get_level_values(1)[0] == 300
32+
assert data_wvase.index.get_level_values(1)[-1] == 1200
33+
assert data_cease.shape == (3264,)
34+
assert_almost_equal(data_cease.index.get_level_values(1)[0], 193)
35+
assert_almost_equal(data_cease.index.get_level_values(1)[-1], 1700)
3136

3237

3338
# pylint: disable=redefined-outer-name

0 commit comments

Comments
 (0)