pro ustrans_pwrspc, varname, factor, newname = newname, trange = trange, help = help, verbose = verbose, samplingrate = samplingrate, maxfreq = maxfreq, minfreq = minfreq $
, freqsamplingrate = freqsamplingrate, power = power, abs = abs, removeedge = removeedge,maskedges=maskedges $
, example = example
print,varname
tdeflag, varname,"linear",/overwrite
get_data, varname, data = d, dlimits = dlimits, limits = limits
if is_struct(d) eq 0 then begin
dprint, 'No data in '+varname
endif else begin
sdy = size(d.y, /n_dimension)
if(sdy eq 2) then begin
ndj = n_elements(d.y[0, *])
if(ndj eq 3) then begin
split_vec, varname, polar = polar, names_out = vn_j
endif else if(ndj gt 1) then begin
split_vec, varname, names_out = vn_j, $
suffix = '_'+strcompress(string(indgen(ndj)), /remove_all)
endif
for j = 0, ndj-1 do begin
ustrans_pwrspc, vn_j[j],factor, newname = newname, trange = trange, verbose = verbose, samplingrate = samplingrate, maxfreq = maxfreq, minfreq = minfreq $
, freqsamplingrate = freqsamplingrate, power = power, abs = abs, removeedge = removeedge,maskedges=maskedges $
, example = example
endfor
Return
endif else if(sdy eq 1) then begin
nvn = varname+'_stpwrspc'
y = d.y
t = d.x
if(n_elements(trange) eq 2) then begin
tr = time_double(trange)
ok = where(t ge tr[0] and t lt tr[1], nok)
if(nok eq 0) then begin
dprint, 'No data in time range'
dprint, time_string(tr)
dprint, 'No Dynamic Power spectrum for: '+varname
Return
endif else begin
t = t[ok] & y = y[ok]
endelse
endif
Ok = where(finite(y), nok)
if(nok eq 0) then begin
dprint, 'No finite data in time range'
Return
endif else begin
t = t[ok] & y = y[ok]
endelse
t00 = d.x[0]
t = t-t00
y1 = s_trans(y, factor, help = help, verbose = verbose, samplingrate = samplingrate, $
maxfreq = maxfreq, minfreq = minfreq, freqsamplingrate = freqsamplingrate, $
power = power, abs = abs, removeedge = removeedge, maskedges=maskedges, $
example = example)
newname = nvn
str_element, dlimits, 'data_type', 'dynamic_power_spectrum', /add
str_element, dlimits, 'ytitle', 'Freq (Hz)'
dd = {x:temporary(t+t00), y:temporary(y1.st), v:temporary(1/y1.freq)}
print,newname
store_data, newname, data = dd, dlimits = dlimits, limits = limits
options, newname, spec = 1
options, newname, ytitle = newname + '!CPeriod',ztitle = 'Amplitude'
zlim,newname,0,max(y1.st)
newname = nvn
endif
endelse
end