@@ -4957,6 +4957,7 @@ Function/WAVE PSX_Operation(variable jsonId, string jsonPath, string graph)
49574957
49584958 variable kernelIterations = NaN
49594959 variable numCombos, medianAmp, medianDecayTau, avgRiseTau
4960+ string browser
49604961
49614962 for ( ;; )
49624963 if ( IsFinite ( kernelIterations))
@@ -4966,13 +4967,17 @@ Function/WAVE PSX_Operation(variable jsonId, string jsonPath, string graph)
49664967 [ WAVE output, numCombos, kernelIterations] = PSX_OperationIterationImpl ( jsonId, jsonPath, graph)
49674968
49684969 if ( kernelIterations == 0 )
4969- return SFH_GetOutputForExecutor ( output , graph , SF_OP_PSX )
4970+ break
49704971 endif
49714972
49724973 medianDecayTau = PSX_CalculateMedianFromEvents ( output, numCombos, "weightedTau" )
49734974 medianAmp = PSX_CalculateMedianFromEvents ( output, numCombos, "amplitude" )
49744975 avgRiseTau = PSX_CalculateAverageRiseTau ( output, numCombos)
4976+ // TODO
4977+ break
49754978 endfor
4979+
4980+ return SFH_GetOutputForExecutor ( output, graph, SF_OP_PSX)
49764981End
49774982
49784983static Function PSX_CalculateAverageRiseTau ( WAVE /WAVE output, variable numCombos)
@@ -4984,17 +4989,23 @@ static Function PSX_CalculateAverageRiseTau(WAVE/WAVE output, variable numCombos
49844989
49854990 for ( i = 0; i < numCombos; i += 1 )
49864991 key = PSX_GenerateKey ( "psxEvent" , i )
4987- WAVE psxEvent = output[ %$ key]
4992+ WAVE /Z psxEvent = output[ %$ key]
4993+
4994+ if ( ! WaveExists ( psxEvent))
4995+ continue
4996+ endif
49884997
49894998 Make / FREE/ N= ( DimSize ( psxEvent, ROWS)) / D data
49904999 data = psxEvent[ p][ %$ "Rise Time" ]
49915000
49925001 WAVE /Z dataClean = ZapNaNs ( data)
49935002 WaveClear data
49945003
4995- if ( WaveExists ( dataClean))
4996- Concatenate / FREE { dataClean } , result
5004+ if ( ! WaveExists ( dataClean))
5005+ continue
49975006 endif
5007+
5008+ Concatenate / FREE { dataClean} , result
49985009 endfor
49995010
50005011 ASSERT ( WaveExists ( result) , "Could not gather rise time data" )
@@ -5010,17 +5021,23 @@ static Function PSX_CalculateMedianFromEvents(WAVE/WAVE output, variable numComb
50105021
50115022 for ( i = 0; i < numCombos; i += 1 )
50125023 key = PSX_GenerateKey ( "psxEvent" , i )
5013- WAVE psxEvent = output[ %$ key]
5024+ WAVE /Z psxEvent = output[ %$ key]
5025+
5026+ if ( ! WaveExists ( psxEvent))
5027+ continue
5028+ endif
50145029
50155030 Make / FREE/ N= ( DimSize ( psxEvent, ROWS)) / D data
50165031 data = ( psxEvent[ p][ %$ "Fit Result" ] == 1 ) ? psxEvent[ p][ %$ lbl] : NaN
50175032
50185033 WAVE /Z dataClean = ZapNaNs ( data)
50195034 WaveClear data
50205035
5021- if ( WaveExists ( dataClean))
5022- Concatenate / FREE { dataClean } , result
5036+ if ( ! WaveExists ( dataClean))
5037+ continue
50235038 endif
5039+
5040+ Concatenate / FREE { dataClean} , result
50245041 endfor
50255042
50265043 ASSERT ( WaveExists ( result) , "Could not gather data for " + lbl)
@@ -5162,6 +5179,12 @@ Function [WAVE output, variable numCombos, variable kernelIterations] PSX_Operat
51625179 JWN_SetWaveNoteFromJSON ( output, parameterJsonID)
51635180 JWN_SetStringInWaveNote ( output, SF_META_DATATYPE, SF_DATATYPE_PSX)
51645181 JWN_SetStringInWaveNote ( output, SF_META_OPSTACK, AddListItem ( SF_OP_PSX, "" ))
5182+
5183+ // TODO id
5184+ Make / FREE/ D results = { kernelAmp, kernelRiseTau, kernelDecayTau, kernelIterations}
5185+ SetDimensionLabels ( results, "id;kernelRiseTau;kernelDecayTau;kernelAmp;kernelIterations" , ROWS)
5186+ string browser = SFH_GetBrowserForFormulaGraph ( graph)
5187+ PSX_StoreIntoResultsWave ( browser, SFH_RESULT_TYPE_PSX_ITER, results, "psx kernel iteration" )
51655188
51665189 SFH_CleanUpInput ( psxKernelDataset)
51675190
@@ -5217,7 +5240,7 @@ End
52175240Function /WAVE PSX_OperationKernel ( variable jsonId, string jsonPath, string graph)
52185241
52195242 variable riseTau, decayTau, amp, dt, numPoints, numCombos, i , offset, idx, iterations
5220- string parameterPath, key
5243+ string parameterPath, key, browser
52215244
52225245 SFH_CheckArgumentCount ( jsonId, jsonPath, SF_OP_PSX_KERNEL, 0, maxArgs = 5 )
52235246
0 commit comments