fix positionalFlagger
Also der Fehler liegt im positionalFlagger [1]. Dort ist setFlags nicht richtig implementiert.
statt
new_flags[loc] = flag
müsste es
new_flags.aloc[loc] = flag
sein. Dann wird der Indexer hier eine boolsche Maske aligned (deswegen das a in aloc).
Dann sollte alles funtionieren :D
Aber:
die Signatur vom positionalFlagger.setFlags sollte der vom BaseFlagger entsprechen. D.h. vorallem sollte loc ein default haben (loc=None) und dann im codeblock:
loc = slice(None) if loc is None else loc
(alternativ könnten wir das default für alle Flagger auch generell auf slice(None) setzten, aber das nur nebenbei)
greez b
[1] vom Log (siehe unten)
File "C:\Users\schaefed\SourceCode\Python\saqc\saqc\flagger\positionalflagger.py", line 42, in setFlags new_flags[loc] = flag On 14.10.20 10:14, "Peter Lünenschloß" wrote:
hmm hab mir jetzt doch mal die daten runter geladen und krieg den fehler lokal garnicht. liegt vielleicht doch an was andrem aber trotzdem mysteriös
Am 14/10/20 09:28 schrieb "Peter Lünenschloß" peter.luenenschloss@ufz.de:
hallo bert,
also während ich bei mir lokal setFlags(field, loc=series[series]) fehlerfrei nutzen kann, (anstatt series[series].index) erzeugt das in der CHS pipeline den folgenden fehler (siehe davids nachricht) - also ich setze erstmal zurück auf series[series].index - ich weiß dass nur die fehlernachricht nicht sonderlich informativ ist. Es ist irgendein call von flagBasic mit thresh=1, tolerance=0.3 und window = '60D' - ich hab grad nicht genug kapazität der sache weiter auf den grund zu gehen und genau den kontext nach zu bauen - vielleicht kannst du ja schon an der fehlermeldung sehen was da schief läuft.
LG
-------- Ursprüngliche Nachricht -------- Von: David Schäfer david.schaefer@ufz.de Datum: 14.10.2020 07:13:03 Betreff: soilnet-Flagging An: Peter Lünenschloß peter.luenenschloss@ufz.de
Moin Peter,
ich habe den letzten SaQC-Commit in die tägliche CHS-Prozessierun genommen und dabei immer die untenstehende Fehler bekommen. Irgendwelche Ideen?
Grüße!
-------- Forwarded Message -------- Subject: [DATA-PROGS][ERROR][do_level1_flagging_soilnet][soilnet flagging failed for: Device(HH - Box04)] Date: Wed, 14 Oct 2020 03:51:13 +0200 From: david.schaefer@ufz.de To: david.schaefer@ufz.de, corinna.rebmann@ufz.de, sebastian.gimper@ufz.de
soilnet flagging failed for: Device(HH - Box04) Traceback (most recent call last): File "c:\Users\schaefed\AppData\Local\Continuum\anaconda3\envs\data_progs_new\lib\site-packages\pandas\core\series.py", line 1002, in setitem self._set_with_engine(key, value) File "c:\Users\schaefed\AppData\Local\Continuum\anaconda3\envs\data_progs_new\lib\site-packages\pandas\core\series.py", line 1033, in _set_with_engine loc = self.index._engine.get_loc(key) File "pandas_libs\index.pyx", line 409, in pandas._libs.index.DatetimeEngine.get_loc File "pandas_libs\index.pyx", line 416, in pandas._libs.index.DatetimeEngine.get_loc TypeError: 'Date Time 2020-04-24 11:56:32 True 2020-04-24 12:06:05 True 2020-04-24 12:15:39 True 2020-04-24 12:25:12 True 2020-04-24 12:34:46 True ... 2020-09-08 05:39:59 True 2020-09-08 07:53:33 True 2020-09-08 08:03:06 True 2020-09-08 08:12:38 True 2020-09-18 01:29:02 True Length: 10135, dtype: bool' is an invalid key
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "C:\Users\schaefed\SourceCode\Python\data_progs\lib\logger.py", line 102, in exceptionLogged yield File "C:\Users\schaefed\SourceCode\Python\data_progs\transfer_level0_level1\do_level1_flagging_soilnet.py", line 27, in flagFilesSoilnet level1_flagging_soilnet(device, logger=log) File "C:\Users\schaefed\SourceCode\Python\data_progs\transfer_level0_level1\level1_flagging_soilnet.py", line 84, in level1_flagging_soilnet data, flagger = saqc.getResult() File "C:\Users\schaefed\SourceCode\Python\saqc\saqc\core\core.py", line 241, in getResult realization = self.evaluate() File "C:\Users\schaefed\SourceCode\Python\saqc\saqc\core\core.py", line 203, in evaluate _handleErrors(e, func, self._error_policy) File "C:\Users\schaefed\SourceCode\Python\saqc\saqc\core\core.py", line 198, in evaluate data_result, flagger_result = _saqcCallFunc(func, data, flagger) File "C:\Users\schaefed\SourceCode\Python\saqc\saqc\core\core.py", line 328, in _saqcCallFunc data_result, flagger_result = func_dump.func( File "C:\Users\schaefed\SourceCode\Python\saqc\saqc\funcs\spikes_detection.py", line 977, in spikes_flagBasic flagger = flagger.setFlags(field, cresult, **kwargs) File "C:\Users\schaefed\SourceCode\Python\saqc\saqc\flagger\positionalflagger.py", line 42, in setFlags new_flags[loc] = flag File "c:\Users\schaefed\AppData\Local\Continuum\anaconda3\envs\data_progs_new\lib\site-packages\pandas\core\series.py", line 1017, in setitem key = check_bool_indexer(self.index, key) File "c:\Users\schaefed\AppData\Local\Continuum\anaconda3\envs\data_progs_new\lib\site-packages\pandas\core\indexing.py", line 2184, in check_bool_indexer raise IndexingError( pandas.core.indexing.IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).
--