def compute_wk(data, lon, lat): # - get dx and dy dx, dy = wfs.get_dx_dy(data[0], lon, lat) #... Detrend data in all dimension ... ssh_detrended = wfs.detrendn(data, axes=[0, 1, 2]) #... Apply hanning windowing ...') ssh_hanning = wfs.apply_window(ssh_detrended, data.dims, window_type='hanning') #... Apply hanning windowing ...') ssh_hat = xfft.fft(ssh_hanning, dim=('time', 'x', 'y'), dx={ 'x': dx, 'y': dx }, sym=True) #... Apply hanning windowing ...') ssh_psd = xfft.psd(ssh_hat) #... Get frequency and wavenumber ... frequency = ssh_hat.f_time kx = ssh_hat.f_x ky = ssh_hat.f_y #... Get istropic wavenumber ... wavenumber, kradial = wfs.get_wavnum_kradial(kx, ky) #... Get numpy array ... ssh_psd_np = ssh_psd.values #... Get 2D frequency-wavenumber field ... SSH_wavenum_freq_spectrum = wfs.get_f_k_in_2D(kradial, wavenumber, ssh_psd_np) return wavenumber, frequency, SSH_wavenum_freq_spectrum
print('Apply hanning windowing') v_JFM = wfs.apply_window(v_JFM, v_JFM.dims, window_type='hanning') #... Apply hanning windowing ...') print('FFT ') v_JFMhat = xfft.fft(v_JFM, dim=('time_counter', 'x', 'y'), dx={ 'x': dx_JFM, 'y': dx_JFM }, sym=True) #... Apply hanning windowing ...') print('PSD ') v_JFM_psd = xfft.psd(v_JFMhat) #... Get frequency and wavenumber ... print('Get frequency and wavenumber') frequency_JFM = v_JFMhat.f_time_counter kx_JFM = v_JFMhat.f_x ky_JFM = v_JFMhat.f_y #... Get istropic wavenumber ... print('Get istropic wavenumber') wavenumber_JFM, kradial_JFM = wfs.get_wavnum_kradial(kx_JFM, ky_JFM) #... Get numpy array ... print('Get numpy array') v_JFM_psd_np = v_JFM_psd.values
print('Apply hanning windowing') u_JFM = wfs.apply_window(u_JFM, u_JFM.dims, window_type='hanning') #... Apply hanning windowing ...') print('FFT ') u_JFMhat = xfft.fft(u_JFM, dim=('time_counter', 'x', 'y'), dx={ 'x': dx_JFM, 'y': dx_JFM }, sym=True) #... Apply hanning windowing ...') print('PSD ') u_JFM_psd = xfft.psd(u_JFMhat) #... Get frequency and wavenumber ... print('Get frequency and wavenumber') frequency_JFM = u_JFMhat.f_time_counter kx_JFM = u_JFMhat.f_x ky_JFM = u_JFMhat.f_y #... Get istropic wavenumber ... print('Get istropic wavenumber') wavenumber_JFM, kradial_JFM = wfs.get_wavnum_kradial(kx_JFM, ky_JFM) #... Get numpy array ... print('Get numpy array') u_JFM_psd_np = u_JFM_psd.values
dx={ 'x': dx_JAS, 'y': dx_JAS }, sym=True) v_JAShat = xfft.fft(v_JAS, dim=('time_counter', 'x', 'y'), dx={ 'x': dx_JAS, 'y': dx_JAS }, sym=True) #... Apply hanning windowing ...') print('PSD ') u_JAS_psd = xfft.psd(u_JAShat) v_JAS_psd = xfft.psd(v_JAShat) #... Get frequency and wavenumber ... print('Get frequency and wavenumber') frequency_JAS = u_JAShat.f_time_counter kx_JAS = u_JAShat.f_x ky_JAS = u_JAShat.f_y #... Get istropic wavenumber ... print('Get istropic wavenumber') wavenumber_JAS, kradial_JAS = wfs.get_wavnum_kradial(kx_JAS, ky_JAS) #... Get numpy array ... print('Get numpy array') u_JAS_psd_np = u_JAS_psd.values