Skip to content

Commit a123aa7

Browse files
authored
fusion.json: Do not crash when species == [] (#251)
* Fix empty species * add test * docs
1 parent b1d0cea commit a123aa7

File tree

5 files changed

+19
-15
lines changed

5 files changed

+19
-15
lines changed

docs/source/version.7_0.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ Bug fixes in ``yadg-next`` include:
2525

2626
- The parameter ``Set I/C`` in :mod:`yadg.extractors.eclab.mpr` files should be ``C / N`` when set to 1, not ``C``.
2727
- The command line argument ``--ignore-merge-errors`` was not being passed to the individual extractors when using the ``yadg extract`` syntax.
28+
- Fixed passing of :mod:`yadg.extractors.fusion.json` files where no species are present.
2829

src/yadg/extractors/fusion/json.py

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -123,21 +123,22 @@ def chromdata(jsdata: dict, uts: float) -> Dataset:
123123

124124
species = sorted(species)
125125
data_vars = {}
126-
for k, v in units.items():
127-
vals, devs = zip(*[raw[k].get(s, (np.nan, np.nan)) for s in species])
128-
data_vars[k] = (
129-
["uts", "species"],
130-
[vals],
131-
{"ancillary_variables": f"{k}_std_err"},
132-
)
133-
data_vars[f"{k}_std_err"] = (
134-
["uts", "species"],
135-
[devs],
136-
{"standard_name": f"{k} stdandard_error"},
137-
)
138-
if v is not None:
139-
data_vars[k][2]["units"] = v
140-
data_vars[f"{k}_std_err"][2]["units"] = v
126+
if len(species) > 0:
127+
for k, v in units.items():
128+
vals, devs = zip(*[raw[k].get(s, (np.nan, np.nan)) for s in species])
129+
data_vars[k] = (
130+
["uts", "species"],
131+
[vals],
132+
{"ancillary_variables": f"{k}_std_err"},
133+
)
134+
data_vars[f"{k}_std_err"] = (
135+
["uts", "species"],
136+
[devs],
137+
{"standard_name": f"{k} stdandard_error"},
138+
)
139+
if v is not None:
140+
data_vars[k][2]["units"] = v
141+
data_vars[f"{k}_std_err"][2]["units"] = v
141142

142143
ds = xr.Dataset(
143144
data_vars=data_vars,

tests/test_x_fusion_json.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"AgPTFE28_100mA_NaS_01 - Aug 13 2021, 18;18.fusion-data",
1616
"issue_198.fusion-data",
1717
"issue_213.fusion-data",
18+
"issue_249.fusion-data",
1819
],
1920
)
2021
def test_fusion_json(infile, datadir):
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"methodLocation":"/methods/userMethods/BakeOut smooth","methodName":"BakeOut smooth","detectors":{"moduleA:tcd":{"detectorId":3,"nValuesPerSecond":50,"nValuesOffset":845,"nValuesExpected":500,"signalFilterName":"tcd2","carrierGas":"argon","values":[0,-8,-15,-23,-31,-39,-46,-54,-62,-70,-78,-86,-95,-103,-111,-119,-127,-135,-143,-152,-160,-168,-176,-184,-192,-200,-208,-216,-224,-231,-239,-247,-254,-262,-269,-276,-284,-291,-298,-305,-312,-318,-325,-332,-339,-346,-353,-360,-367,-373,-380,-387,-394,-400,-407,-413,-420,-426,-432,-438,-444,-449,-455,-461,-467,-473,-478,-484,-489,-494,-499,-505,-510,-515,-521,-526,-531,-537,-542,-548,-553,-559,-565,-570,-576,-581,-586,-592,-597,-602,-607,-611,-616,-621,-626,-631,-636,-641,-646,-651,-656,-661,-666,-671,-676,-682,-687,-692,-697,-702,-707,-712,-717,-722,-727,-732,-737,-742,-747,-752,-757,-763,-768,-773,-778,-783,-788,-793,-798,-804,-809,-815,-820,-826,-831,-837,-842,-847,-852,-857,-863,-868,-873,-878,-883,-888,-893,-898,-903,-908,-913,-918,-924,-929,-934,-939,-945,-950,-956,-961,-967,-972,-978,-983,-989,-994,-1000,-1006,-1012,-1017,-1023,-1029,-1034,-1040,-1045,-1051,-1056,-1062,-1067,-1073,-1078,-1084,-1089,-1095,-1100,-1106,-1112,-1118,-1124,-1130,-1136,-1142,-1148,-1154,-1160,-1166,-1172,-1179,-1185,-1192,-1198,-1205,-1211,-1218,-1224,-1230,-1237,-1243,-1249,-1255,-1262,-1268,-1274,-1281,-1288,-1294,-1301,-1307,-1314,-1321,-1327,-1334,-1340,-1347,-1353,-1360,-1366,-1373,-1380,-1386,-1393,-1399,-1406,-1413,-1419,-1426,-1433,-1440,-1447,-1454,-1461,-1468,-1475,-1482,-1489,-1496,-1503,-1511,-1518,-1525,-1532,-1539,-1546,-1553,-1561,-1568,-1575,-1583,-1590,-1597,-1605,-1612,-1620,-1627,-1635,-1642,-1650,-1658,-1665,-1673,-1681,-1688,-1696,-1703,-1711,-1718,-1726,-1734,-1742,-1750,-1758,-1766,-1774,-1782,-1790,-1798,-1805,-1813,-1821,-1829,-1837,-1844,-1852,-1860,-1868,-1876,-1884,-1892,-1899,-1907,-1915,-1923,-1931,-1939,-1947,-1955,-1962,-1970,-1978,-1986,-1994,-2001,-2009,-2017,-2025,-2033,-2041,-2048,-2056,-2064,-2072,-2079,-2087,-2095,-2103,-2112,-2120,-2128,-2136,-2145,-2153,-2161,-2170,-2178,-2186,-2194,-2202,-2210,-2218,-2226,-2234,-2242,-2250,-2258,-2266,-2274,-2282,-2290,-2298,-2306,-2314,-2322,-2330,-2339,-2347,-2355,-2363,-2371,-2379,-2387,-2395,-2403,-2411,-2419,-2428,-2436,-2445,-2453,-2461,-2470,-2478,-2486,-2494,-2502,-2510,-2518,-2526,-2533,-2541,-2549,-2557,-2565,-2572,-2580,-2588,-2596,-2604,-2612,-2620,-2628,-2637,-2645,-2654,-2662,-2671,-2679,-2687,-2695,-2703,-2711,-2719,-2727,-2735,-2743,-2751,-2759,-2767,-2775,-2784,-2792,-2800,-2808,-2817,-2825,-2833,-2841,-2849,-2858,-2866,-2874,-2882,-2890,-2898,-2906,-2915,-2923,-2931,-2939,-2948,-2956,-2964,-2972,-2980,-2988,-2996,-3004,-3012,-3020,-3028,-3036,-3044,-3052,-3060,-3068,-3076,-3084,-3092,-3100,-3108,-3116,-3125,-3133,-3141,-3149,-3158,-3166,-3174,-3182,-3190,-3199,-3207,-3215,-3224,-3232,-3240,-3249,-3257,-3265,-3273,-3282,-3290,-3298,-3306,-3314,-3322,-3330,-3338,-3346,-3354,-3362,-3370,-3379,-3387,-3395,-3403,-3411,-3420,-3428,-3436,-3444,-3452,-3461,-3469,-3477,-3486,-3494,-3503,-3511,-3520,-3529],"analysis":{"analysisFormatLevel":2,"peaks":[]}},"moduleB:tcd":{"detectorId":3,"nValuesPerSecond":50,"nValuesOffset":880,"nValuesExpected":500,"signalFilterName":"tcd2","carrierGas":"helium","values":[0,0,0,0,0,0,0,0,0,0,-1,-1,-2,-2,-3,-4,-5,-6,-7,-8,-10,-12,-14,-16,-18,-20,-22,-25,-28,-31,-34,-37,-40,-43,-47,-51,-55,-59,-63,-68,-72,-77,-82,-86,-91,-95,-100,-104,-109,-113,-118,-123,-127,-132,-136,-140,-145,-149,-153,-158,-162,-166,-170,-174,-178,-182,-186,-190,-193,-197,-200,-203,-206,-209,-212,-215,-217,-220,-223,-225,-228,-231,-233,-236,-238,-241,-243,-245,-246,-248,-250,-251,-253,-254,-256,-257,-258,-260,-261,-262,-263,-264,-265,-266,-267,-268,-268,-269,-270,-271,-272,-273,-274,-275,-276,-277,-278,-278,-279,-280,-280,-281,-281,-281,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-281,-281,-280,-280,-279,-279,-278,-278,-277,-277,-276,-276,-275,-275,-274,-273,-273,-272,-271,-271,-270,-269,-268,-267,-267,-266,-265,-265,-264,-263,-263,-262,-261,-260,-259,-258,-257,-256,-256,-255,-254,-254,-253,-253,-252,-252,-251,-250,-250,-249,-248,-248,-247,-246,-246,-245,-244,-243,-242,-240,-239,-238,-236,-235,-234,-233,-233,-232,-232,-231,-231,-230,-229,-229,-228,-227,-226,-225,-224,-224,-223,-223,-222,-222,-222,-221,-221,-220,-220,-219,-219,-218,-217,-217,-216,-215,-215,-214,-213,-212,-211,-211,-210,-209,-209,-208,-207,-207,-206,-206,-205,-204,-203,-203,-202,-201,-200,-200,-199,-198,-198,-197,-197,-196,-196,-195,-195,-194,-194,-193,-193,-192,-191,-191,-190,-189,-188,-187,-187,-186,-185,-185,-184,-184,-183,-182,-182,-181,-181,-181,-180,-180,-179,-179,-179,-178,-177,-177,-176,-176,-175,-174,-174,-173,-173,-172,-172,-172,-171,-171,-171,-171,-171,-171,-170,-170,-170,-169,-169,-168,-168,-167,-167,-166,-166,-165,-165,-164,-163,-162,-161,-160,-160,-159,-158,-158,-157,-157,-157,-157,-156,-156,-155,-155,-154,-154,-153,-153,-152,-152,-151,-151,-150,-150,-149,-149,-148,-147,-147,-146,-146,-145,-145,-144,-144,-143,-142,-142,-141,-140,-140,-139,-138,-138,-137,-137,-136,-136,-135,-135,-134,-134,-133,-132,-132,-131,-131,-130,-130,-129,-129,-129,-129,-129,-128,-128,-127,-127,-126,-125,-125,-124,-123,-123,-122,-122,-122,-121,-121,-121,-121,-121,-121,-121,-120,-120,-120,-120,-120,-120,-120,-119,-119,-118,-118,-117,-116,-116,-115,-114,-114,-114,-113,-113,-113,-113,-112,-112,-112,-111,-111,-110,-110,-110,-109,-109,-108,-108,-108,-107,-107,-107,-107,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-105,-105,-104,-104,-104,-104,-104,-104,-104,-105,-105,-105,-105,-106,-106,-106,-106,-106,-106,-106,-105,-105,-105,-105,-104,-104,-104,-103,-103,-102,-102,-101,-101,-100,-99,-98,-97,-97,-96,-95,-94],"analysis":{"analysisFormatLevel":2,"peaks":[]}}},"runDataFormatLevel":1,"runTimeStamp":"2024-09-27T14:41:09.074Z","method":{"comment":"","isPreset":true,"methodFormatLevel":2,"systemPartNumber":"F0G583","peakParameters":{},"sampling":{"sampleInletHeater":{"clientTag":"heater","profile":90},"sampleDurations":[15]},"accessories":{},"modules":{"moduleA":{"modulePartNumber":"W02","flowManagerHoldTimes":{"inject":0.03,"preColumnForeflushPass":15},"devices":{"injectorDieHeater":{"clientTag":"heater","profile":90},"carrierVSO":{"clientTag":"pressure","profile":20},"columnHeater":{"clientTag":"heater","profile":[{"rate":0,"value":180,"holdTime":10}]},"tcd":{"clientTag":"detector","collectTime":10,"dataRate":"50Hz","detectorId":3},"tcdHeater":{"clientTag":"heater","profile":70,"delta":20}}},"moduleB":{"modulePartNumber":"TR2","flowManagerHoldTimes":{"inject":0.03},"devices":{"injectorDieHeater":{"clientTag":"heater","profile":90},"carrierVSO":{"clientTag":"pressure","profile":20},"columnHeater":{"clientTag":"heater","profile":[{"rate":0,"value":160,"holdTime":10}]},"tcd":{"clientTag":"detector","collectTime":10,"dataRate":"50Hz","detectorId":3},"tcdHeater":{"clientTag":"heater","profile":70,"delta":20}}}},"options":{"lowTemperatureMode":true},"isFrontPanelPreset":true},"systemConfiguration":{"systemInfo":{"systemPartNumber":"F0G583","systemSerialNumber":"70264220","systemHostname":"70264220.local"},"modules":{"moduleA":{"modulePartNumber":"W02","moduleSerialNumber":"70265198"},"moduleB":{"modulePartNumber":"TR2","moduleSerialNumber":"70264227"}}},"annotations":{"name":"BakeOut smooth","tags":["Position","2"],"valcoPosition":2,"valcoPositionName":"Position 2"},"sequence":null,"softwareVersion":{"isFromUpdateFile":true,"version":"1.8.4","created":"2023-06-08T13:09:33.000Z","driveVersion":"Fusion v1.8.2","masterDriveBuildDate":"Thu Jun 8 17:08:37 UTC 2023 RevD"},"$displayName":"Position 2","$id":"019d5fc9-391f-45bb-b9c6-e178faf0e6c1"}
33.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)