;FUNCTION: THM_LSP_REMOVE_POTENTIAL, te, Ez, tv, Vsc, Vpoly=Vpoly, $
; peeb_t=peeb_t, talk=talk,, VscPole=VscPole
;
; NOT FOR GENERAL USE. CALLED BY THM_EFI...
; ONLY FOR ISOLATED PARTICLE OR WAVE BURSTS
; NOT FOR ENTIRE ORBIT.
;
;PURPOSE:
; Remove SC potential from axial signal.
;
;INPUT:
; te -NEEDED. Time array for Ex
; Ez -NEEDED. Axial electric field
; tv -NEEDED. Time array for Vsc
; Vsc -NEEDED. Spacecraft potential
;
;KEYWORDS:
; Vsc -NEEDED. Spacecraft potential
;
;HISTORY:
; 2009-03-30: REE.
; 2009-05-01: REE. Added Vpoly and temeprature option.
;-
function thm_lsp_remove_potential, t, Ez, tv, Vsc, Vpoly=Vpoly, $
peeb_t=peeb_t, talk=talk, VscPole=VscPole
; INTERPOLATE
vsci = interpol(vsc, tv, t)
; SMOOTH
IF keyword_set(VscPole) then BEGIN
dt = median(t(1:*) - t(0:*))
nsVsc = round(1.0/(VscPole*dt))
Vsci = thm_lsp_median_smooth(Vsci, nsVsc)
ENDIF
; GET ELECTRON TEMPERATURE IF SC IS SET
IF (size(/type,peeb_t) EQ 8) then BEGIN
if not keyword_set(Vpoly) then Vpoly = 5
eti = interpol(peeb_t.y, peeb_t.x, t)
dum = vsci*sqrt(eti)
A = poly_fit(dum, Ez, Vpoly)
Ezf = Ez - poly(dum, A)
IF keyword_set(talk) then BEGIN
plot, dum, Ez, psym=3, xtit = 'SC Potential * SQRT(Te)', ytit = 'Ez'
oplot, dum, poly(dum, A), col = 2
ENDIF
return, Ezf
ENDIF
; DEFAULT - LINEAR FIT
; REMOVE VSC
if not keyword_set(Vpoly) then Vpoly = 2
A = poly_fit(vsci, Ez, Vpoly)
Ezf = Ez - poly(vsci, A)
IF keyword_set(talk) then BEGIN
plot, vsci, Ez, psym=3, xtit = 'Spacecraft Potential (V)', ytit = 'Ez'
oplot, vsci, poly(vsci, A), col = 2
ENDIF
return, Ezf
end
;OLD
;Eza = Ez - average(Ez)
;Vsca = Vsc - average(Vsc)
;verr = total(Eza*Vsca)/total(Vsca*Vsca)
;Ezf = Eza - verr*Vsca
; DIAGNOSE
;tv = VscTemp.x
;vscF = interpol(vscF, tv, te)
;plot, vscf, Ez, psym=3
;A = poly_fit(vscf, Ez, 1)
;oplot, vscf, poly(vscf, A), col = 2
;Ezf = Ez - poly(vscf, A)
;plot, vscf, Ezf, psym=3
;ind = where(eti GT 500)
;oplot, vsci(ind), Ez(ind), psym=3, col=6