@@ -371,11 +371,19 @@ void cleanit(float *data, int nchans, long int nadd)
371371 isame = all_samef (chandata ,nadd );
372372 }
373373 if ( isame == 0 ){
374- fftclean (in ,out ,nadd ,inc ); // clean some periodic RFIs
374+ if (rfiFDx ){
375+ fftclean (in ,out ,nadd ,inc ); // clean some periodic RFIs
376+ }
375377 for (ii = 0 ; ii < nadd ; ii ++ ) chandata [ii ] = in [ii ][0 ];
376- tsclip (chandata ,nadd ,sthresh ); // clean some spiky RFIs
377- mspec [channum ]= chandata [nadd ];
378- rspec [channum ]= chandata [nadd + 1 ];
378+ if (rfiTx ){
379+ tsclip (chandata ,nadd ,sthresh ); // clean some spiky RFIs
380+ mspec [channum ]= chandata [nadd ];
381+ rspec [channum ]= chandata [nadd + 1 ];
382+ } else {
383+ robust_meanrms (chandata ,nadd );
384+ mspec [channum ]= chandata [nadd ];
385+ rspec [channum ]= chandata [nadd + 1 ];
386+ }
379387 }
380388 else {
381389 mspec [channum ]= chandata [0 ];
@@ -388,10 +396,14 @@ void cleanit(float *data, int nchans, long int nadd)
388396
389397
390398 for (i = 0 ; i < nchans ; i ++ ) wspec [i ]= +1.0 ;
391- spfind (mspec ,nchans ,rthresh ,wspec );
392- spfind (vspec ,nchans ,rthresh ,wspec );
393- tsfind (mspec ,nchans ,rthresh ,wspec );
394- tsfind (vspec ,nchans ,rthresh ,wspec );
399+ if (rfiMSx ){
400+ spfind (mspec ,nchans ,rthresh ,wspec );
401+ tsfind (mspec ,nchans ,rthresh ,wspec );
402+ }
403+ if (rfiVSx ){
404+ spfind (vspec ,nchans ,rthresh ,wspec );
405+ tsfind (vspec ,nchans ,rthresh ,wspec );
406+ }
395407 if (pcl > 0 ){
396408 kk = (int )(0.9 * nchans );
397409 for (i = kk ;i < nchans ;i ++ ) wspec [i ]= 0.0 ;
@@ -437,28 +449,32 @@ void cleanit(float *data, int nchans, long int nadd)
437449
438450
439451// Try clipping some channels in individual samples
440- for (t = 0 ; t < nadd ; t ++ ){
441- nxc = t * nchans ;
442- for (c = 0 ; c < nchans ; c ++ ) chandata [c ] = data [nxc + c ];
443- spclip (chandata ,nchans ,clipthresh );
444- for (c = 0 ; c < nchans ; c ++ ) data [nxc + c ] = chandata [c ];
452+ if (rfiSclip ){
453+ for (t = 0 ; t < nadd ; t ++ ){
454+ nxc = t * nchans ;
455+ for (c = 0 ; c < nchans ; c ++ ) chandata [c ] = data [nxc + c ];
456+ spclip (chandata ,nchans ,clipthresh );
457+ for (c = 0 ; c < nchans ; c ++ ) data [nxc + c ] = chandata [c ];
458+ }
445459 }
446460// Now some timeseries cleaning
447- an = (double )nadd ;
448- for (t = 0 ; t < nadd ; t ++ ){
449- nxc = t * nchans ;
450- chandata [t ]= 0.0 ;
451- for (c = 0 ; c < nchans ; c ++ ) chandata [t ] = chandata [t ]+ data [nxc + c ];
452- chandata [t ]= chandata [t ]/an ;
453- }
454- for (i = 0 ; i < nadd ; i ++ ) wt [i ]= +1.0 ;
455- tsfind (chandata ,nadd ,sthresh ,wt );
456- spfind (chandata ,nadd ,sthresh ,wt );
457- for (t = 0 ; t < nadd ; t ++ ){
458- nxc = t * nchans ;
459- if (wt [t ] < 0.0 ){
460- for (c = 0 ; c < nchans ; c ++ ) data [nxc + c ] = mspec [c ];
461- }
461+ if (rfiTx ){
462+ an = (double )nadd ;
463+ for (t = 0 ; t < nadd ; t ++ ){
464+ nxc = t * nchans ;
465+ chandata [t ]= 0.0 ;
466+ for (c = 0 ; c < nchans ; c ++ ) chandata [t ] = chandata [t ]+ data [nxc + c ];
467+ chandata [t ]= chandata [t ]/an ;
468+ }
469+ for (i = 0 ; i < nadd ; i ++ ) wt [i ]= +1.0 ;
470+ tsfind (chandata ,nadd ,sthresh ,wt );
471+ spfind (chandata ,nadd ,sthresh ,wt );
472+ for (t = 0 ; t < nadd ; t ++ ){
473+ nxc = t * nchans ;
474+ if (wt [t ] < 0.0 ){
475+ for (c = 0 ; c < nchans ; c ++ ) data [nxc + c ] = mspec [c ];
476+ }
477+ }
462478 }
463479
464480 // sometimes gpt results might need additional checks
@@ -536,14 +552,15 @@ void cleanit(float *data, int nchans, long int nadd)
536552 }
537553
538554
539-
540- if (iflip == 1 ){ // flip the band
541- for (t = 0 ; t < nadd ; t ++ ){
542- nxc = t * nchans ;
543- for (c = 0 ; c < nchans ; c ++ ) mspec [c ] = data [nxc + c ];
544- for (c = 0 ; c < nchans ; c ++ ) data [nxc + c ] = mspec [nchans - c - 1 ];
545- }
546- }
555+ /* ***Now the following part is in rficlean_data.c ***
556+ // if(iflip==1){ // flip the band
557+ // for (t=0; t<nadd; t++){
558+ // nxc = t*nchans;
559+ // for (c=0; c<nchans; c++) mspec[c] = data[nxc+c];
560+ // for (c=0; c<nchans; c++) data[nxc+c] = mspec[nchans-c-1];
561+ // }
562+ // }
563+ ***/
547564
548565}
549566//============================================================================
0 commit comments