@@ -27,7 +27,7 @@ export default function LightCurvePlot() {
2727 const {
2828 dataType, dataSelection, xAxis, errorBars, noOfBins, noOfDataPoint,
2929 plotType, pointSize, lineWidth, legendFontSize, labelFontSize, tooltipFontSize,
30- figure, rawFigure, avgPointRawMap, filterPercent, isFiltered , selectedSeries, rawFilterMode, sigmaK,
30+ figure, rawFigure, avgPointRawMap, filterPercent, isRawFilterInside , selectedSeries, rawFilterMode, sigmaK,
3131 setSettings
3232 } = usePlotSettings ( ) ;
3333
@@ -50,30 +50,48 @@ export default function LightCurvePlot() {
5050 const [ posX , setPosX ] = useState < number | undefined > ( undefined ) ;
5151 const [ posY , setPosY ] = useState < number | undefined > ( undefined ) ;
5252 const [ fig , setFig ] = useState < { data : PlotTrace [ ] } > ( { data : [ ] } ) ;
53- function applyRawFilter (
54- rawFilterMode : "none" | "percent" | "sigma" ,
55- rawList : RawPoint [ ] ,
56- avgY : number ,
57- filterPercent : number ,
58- sigmaK : number
59- ) {
60- if ( rawFilterMode === "percent" ) {
61- return filterRawPointsByAverage ( rawList , avgY , filterPercent ) ;
62- }
63-
64- if ( rawFilterMode === "sigma" ) {
65- return filterRawPointsBySigmaBand ( rawList , avgY , sigmaK ) ;
66- }
53+ function applyRawFilter (
54+ rawFilterMode : "none" | "percent" | "sigma" ,
55+ rawList : RawPoint [ ] ,
56+ avgY : number ,
57+ filterPercent : number ,
58+ sigmaK : number ,
59+ isRawFilterInside : boolean ,
60+ ) {
61+ let result : {
62+ kept : RawPoint [ ] ;
63+ removed : RawPoint [ ] ;
64+ minY : number | null ;
65+ maxY : number | null ;
66+ } ;
6767
68- // none
69- return {
68+ if ( rawFilterMode === "percent" ) {
69+ result = filterRawPointsByAverage ( rawList , avgY , filterPercent ) ;
70+ } else if ( rawFilterMode === "sigma" ) {
71+ result = filterRawPointsBySigmaBand ( rawList , avgY , sigmaK ) ;
72+ } else {
73+ // no filter
74+ result = {
7075 kept : rawList ,
7176 removed : [ ] ,
7277 minY : null ,
73- maxY : null
78+ maxY : null ,
79+ } ;
80+ }
81+
82+ // APPLY BOOLEAN HERE
83+ if ( ! isRawFilterInside && rawFilterMode !== "none" ) {
84+ return {
85+ ...result ,
86+ kept : result . removed ,
87+ removed : result . kept ,
7488 } ;
7589 }
7690
91+ return result ;
92+ }
93+
94+
7795 function mjdToDate ( mjd : number ) : Date {
7896 const MJD_EPOCH = Date . UTC ( 1858 , 10 , 17 ) ; // November 17, 1858
7997 const msPerDay = 86400 * 1000 ;
@@ -318,12 +336,13 @@ export default function LightCurvePlot() {
318336 if ( ! rawList ) return ;
319337
320338 // const { kept, minY, maxY } = filterRawPointsByAverage(rawList, avgY, filterPercent);
321- const { kept, removed , minY, maxY } = applyRawFilter (
339+ const { kept, minY, maxY } = applyRawFilter (
322340 rawFilterMode ,
323341 rawList ,
324342 avgY ,
325343 filterPercent ,
326- sigmaK
344+ sigmaK ,
345+ isRawFilterInside
327346 ) ;
328347 shapes . push ( {
329348 type : "rect" ,
@@ -404,12 +423,13 @@ export default function LightCurvePlot() {
404423 if ( ! rawList ) return ;
405424
406425 // const { kept, minY, maxY } = filterRawPointsByAverage(rawList, avgY, filterPercent);
407- const { kept, removed , minY, maxY } = applyRawFilter (
426+ const { kept, minY, maxY } = applyRawFilter (
408427 rawFilterMode ,
409428 rawList ,
410429 avgY ,
411430 filterPercent ,
412- sigmaK
431+ sigmaK ,
432+ isRawFilterInside
413433 ) ;
414434 shapes . push ( {
415435 type : "rect" ,
@@ -478,7 +498,7 @@ export default function LightCurvePlot() {
478498 } ) ;
479499
480500 }
481- } , [ avgPointRawMap , dataSelection , rawFigure , filterPercent , sigmaK , rawFilterMode , isFiltered , xAxis ] ) ;
501+ } , [ avgPointRawMap , dataSelection , rawFigure , filterPercent , sigmaK , rawFilterMode , xAxis ] ) ;
482502
483503
484504 useEffect ( ( ) => {
0 commit comments