Skip to content

Instantly share code, notes, and snippets.

@apatlpo
Created February 8, 2020 13:40
Show Gist options
  • Save apatlpo/54f61a697d426cd5522ed1d18db66f13 to your computer and use it in GitHub Desktop.
Save apatlpo/54f61a697d426cd5522ed1d18db66f13 to your computer and use it in GitHub Desktop.
xrft isospectrum
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import xarray as xr\n",
"import dask.array as dsar\n",
"import xrft"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def _synthetic_field(N, dL, amp, s):\n",
" \"\"\"\n",
" Generate a synthetic series of size N by N\n",
" with a spectral slope of s.\n",
" \"\"\"\n",
"\n",
" k = np.fft.fftshift(np.fft.fftfreq(N, dL))\n",
" l = np.fft.fftshift(np.fft.fftfreq(N, dL))\n",
" kk, ll = np.meshgrid(k, l)\n",
" K = np.sqrt(kk**2+ll**2)\n",
"\n",
" ########\n",
" # amplitude\n",
" ########\n",
" r_kl = np.ma.masked_invalid(np.sqrt(amp*.5*(np.pi)**(-1)\n",
" *K**(s-1.))).filled(0.)\n",
" ########\n",
" # phase\n",
" ########\n",
" phi = np.zeros((N, N))\n",
"\n",
" N_2 = int(N/2)\n",
" phi_upper_right = 2.*np.pi*np.random.random((N_2-1,\n",
" N_2-1)) - np.pi\n",
" phi[N_2+1:,N_2+1:] = phi_upper_right.copy()\n",
" phi[1:N_2, 1:N_2] = -phi_upper_right[::-1, ::-1].copy()\n",
"\n",
"\n",
" phi_upper_left = 2.*np.pi*np.random.random((N_2-1,\n",
" N_2-1)) - np.pi\n",
" phi[N_2+1:,1:N_2] = phi_upper_left.copy()\n",
" phi[1:N_2, N_2+1:] = -phi_upper_left[::-1, ::-1].copy()\n",
"\n",
"\n",
" phi_upper_middle = 2.*np.pi*np.random.random(N_2) - np.pi\n",
" phi[N_2:, N_2] = phi_upper_middle.copy()\n",
" phi[1:N_2, N_2] = -phi_upper_middle[1:][::-1].copy()\n",
"\n",
"\n",
" phi_right_middle = 2.*np.pi*np.random.random(N_2-1) - np.pi\n",
" phi[N_2, N_2+1:] = phi_right_middle.copy()\n",
" phi[N_2, 1:N_2] = -phi_right_middle[::-1].copy()\n",
"\n",
"\n",
" phi_edge_upperleft = 2.*np.pi*np.random.random(N_2) - np.pi\n",
" phi[N_2:, 0] = phi_edge_upperleft.copy()\n",
" phi[1:N_2, 0] = -phi_edge_upperleft[1:][::-1].copy()\n",
"\n",
"\n",
" phi_bot_right = 2.*np.pi*np.random.random(N_2) - np.pi\n",
" phi[0, N_2:] = phi_bot_right.copy()\n",
" phi[0, 1:N_2] = -phi_bot_right[1:][::-1].copy()\n",
"\n",
"\n",
" phi_corner_leftbot = 2.*np.pi*np.random.random() - np.pi\n",
"\n",
" for i in range(1, N_2):\n",
" for j in range(1, N_2):\n",
" assert (phi[N_2+j, N_2+i] == -phi[N_2-j, N_2-i])\n",
"\n",
" for i in range(1, N_2):\n",
" for j in range(1, N_2):\n",
" assert (phi[N_2+j, N_2-i] == -phi[N_2-j, N_2+i])\n",
"\n",
" for i in range(1, N_2):\n",
" assert (phi[N_2, N-i] == -phi[N_2, i])\n",
" assert (phi[N-i, N_2] == -phi[i, N_2])\n",
" assert (phi[N-i, 0] == -phi[i, 0])\n",
" assert (phi[0, i] == -phi[0, N-i])\n",
" #########\n",
" # complex fourier amplitudes\n",
" #########\n",
" F_theta = r_kl * np.exp(1j * phi)\n",
"\n",
" # check that symmetry of FT is satisfied\n",
" theta = np.fft.ifft2(np.fft.ifftshift(F_theta))\n",
" return np.real(theta)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def test_isotropic_ps_slope(N=512, dL=1., amp=1e1, s=-3., other_dim_sizes=None, \n",
" chunks=None):\n",
" \"\"\"Test the spectral slope of isotropic power spectrum.\"\"\"\n",
"\n",
" theta = xr.DataArray(_synthetic_field(N, dL, amp, s),\n",
" dims=['y', 'x'],\n",
" coords={'y':range(N), 'x':range(N)}\n",
" )\n",
" if other_dim_sizes:\n",
" theta = (theta +\n",
" xr.DataArray(np.ones(other_dim_sizes), \n",
" dims=['d%d'%i for i in range(len(other_dim_sizes))])\n",
" )\n",
" if chunks:\n",
" theta = theta.chunk(chunks)\n",
" #print(theta)\n",
" iso_ps = xrft.isotropic_powerspectrum(theta, dim=['y','x'],\n",
" detrend='constant',\n",
" density=True)\n",
" return iso_ps"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"--- \n",
"## 9de9817"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/aponte/.miniconda3/envs/cognac/lib/python3.6/site-packages/ipykernel_launcher.py:16: RuntimeWarning: divide by zero encountered in power\n",
" app.launch_new_instance()\n",
"/Users/aponte/code/xrft/xrft/xrft.py:617: RuntimeWarning: invalid value encountered in true_divide\n",
" / area) * kr\n"
]
},
{
"data": {
"text/html": [
"<pre>&lt;xarray.DataArray (freq_r: 129)&gt;\n",
"array([ nan, 4.46967580e+02, 4.02444606e+01, 7.35410258e+00,\n",
" 2.53643797e+00, 1.16351145e+00, 6.16453750e-01, 3.71752789e-01,\n",
" 2.42385417e-01, 1.65346670e-01, 1.17662630e-01, 8.74978038e-02,\n",
" 6.63439156e-02, 5.15657259e-02, 4.10576073e-02, 3.30747541e-02,\n",
" 2.70253470e-02, 2.24068119e-02, 1.87259187e-02, 1.58762097e-02,\n",
" 1.36067721e-02, 1.17113225e-02, 1.01341781e-02, 8.82425972e-03,\n",
" 7.73892422e-03, 6.84918798e-03, 6.07330095e-03, 5.39990815e-03,\n",
" 4.83972886e-03, 4.35006266e-03, 3.91494445e-03, 3.54090720e-03,\n",
" 3.22103938e-03, 2.93351203e-03, 2.67471765e-03, 2.44653601e-03,\n",
" 2.24604922e-03, 2.06892299e-03, 1.90971768e-03, 1.76355733e-03,\n",
" 1.63226496e-03, 1.51415736e-03, 1.40751487e-03, 1.31057865e-03,\n",
" 1.22269451e-03, 1.14275010e-03, 1.06871292e-03, 1.00024013e-03,\n",
" 9.38690153e-04, 8.82404509e-04, 8.30589820e-04, 7.82198521e-04,\n",
" 7.36679229e-04, 6.95054875e-04, 6.57184380e-04, 6.21805930e-04,\n",
" 5.88906695e-04, 5.58312991e-04, 5.29642507e-04, 5.02709885e-04,\n",
" 4.77732147e-04, 4.54515605e-04, 4.32653902e-04, 4.12220756e-04,\n",
" 3.93109225e-04, 3.75048160e-04, 3.58096809e-04, 3.42201863e-04,\n",
" 3.27250060e-04, 3.13152456e-04, 2.99874069e-04, 2.87338718e-04,\n",
" 2.75397863e-04, 2.64078827e-04, 2.53481911e-04, 2.43523423e-04,\n",
" 2.33992059e-04, 2.24877767e-04, 2.16228883e-04, 2.08047512e-04,\n",
" 2.00333566e-04, 1.92970390e-04, 1.85957649e-04, 1.79293943e-04,\n",
" 1.72914165e-04, 1.66823783e-04, 1.61041102e-04, 1.55547589e-04,\n",
" 1.50299710e-04, 1.45279324e-04, 1.40435823e-04, 1.35821374e-04,\n",
" 1.31403746e-04, 1.27185533e-04, 1.23169603e-04, 1.19317127e-04,\n",
" 1.15611097e-04, 1.12040418e-04, 1.08608654e-04, 1.05341938e-04,\n",
" 1.02240597e-04, 9.92217423e-05, 9.62862983e-05, 9.35053867e-05,\n",
" 9.08229899e-05, 8.82333433e-05, 8.57640745e-05, 8.33752592e-05,\n",
" 8.10526187e-05, 7.88199024e-05, 7.66733790e-05, 7.46192999e-05,\n",
" 7.26361096e-05, 7.07217229e-05, 6.88673312e-05, 6.70665497e-05,\n",
" 6.53391938e-05, 6.36815809e-05, 6.20707363e-05, 6.05091677e-05,\n",
" 5.90108540e-05, 5.75551910e-05, 5.61435386e-05, 5.47790944e-05,\n",
" 5.34538189e-05, 5.21816642e-05, 5.09511321e-05, 4.97493153e-05,\n",
" 3.67732465e-05])\n",
"Coordinates:\n",
" * freq_r (freq_r) float64 nan 0.002653 0.006041 ... 0.4921 0.496 0.5611</pre>"
],
"text/plain": [
"<xarray.DataArray (freq_r: 129)>\n",
"array([ nan, 4.46967580e+02, 4.02444606e+01, 7.35410258e+00,\n",
" 2.53643797e+00, 1.16351145e+00, 6.16453750e-01, 3.71752789e-01,\n",
" 2.42385417e-01, 1.65346670e-01, 1.17662630e-01, 8.74978038e-02,\n",
" 6.63439156e-02, 5.15657259e-02, 4.10576073e-02, 3.30747541e-02,\n",
" 2.70253470e-02, 2.24068119e-02, 1.87259187e-02, 1.58762097e-02,\n",
" 1.36067721e-02, 1.17113225e-02, 1.01341781e-02, 8.82425972e-03,\n",
" 7.73892422e-03, 6.84918798e-03, 6.07330095e-03, 5.39990815e-03,\n",
" 4.83972886e-03, 4.35006266e-03, 3.91494445e-03, 3.54090720e-03,\n",
" 3.22103938e-03, 2.93351203e-03, 2.67471765e-03, 2.44653601e-03,\n",
" 2.24604922e-03, 2.06892299e-03, 1.90971768e-03, 1.76355733e-03,\n",
" 1.63226496e-03, 1.51415736e-03, 1.40751487e-03, 1.31057865e-03,\n",
" 1.22269451e-03, 1.14275010e-03, 1.06871292e-03, 1.00024013e-03,\n",
" 9.38690153e-04, 8.82404509e-04, 8.30589820e-04, 7.82198521e-04,\n",
" 7.36679229e-04, 6.95054875e-04, 6.57184380e-04, 6.21805930e-04,\n",
" 5.88906695e-04, 5.58312991e-04, 5.29642507e-04, 5.02709885e-04,\n",
" 4.77732147e-04, 4.54515605e-04, 4.32653902e-04, 4.12220756e-04,\n",
" 3.93109225e-04, 3.75048160e-04, 3.58096809e-04, 3.42201863e-04,\n",
" 3.27250060e-04, 3.13152456e-04, 2.99874069e-04, 2.87338718e-04,\n",
" 2.75397863e-04, 2.64078827e-04, 2.53481911e-04, 2.43523423e-04,\n",
" 2.33992059e-04, 2.24877767e-04, 2.16228883e-04, 2.08047512e-04,\n",
" 2.00333566e-04, 1.92970390e-04, 1.85957649e-04, 1.79293943e-04,\n",
" 1.72914165e-04, 1.66823783e-04, 1.61041102e-04, 1.55547589e-04,\n",
" 1.50299710e-04, 1.45279324e-04, 1.40435823e-04, 1.35821374e-04,\n",
" 1.31403746e-04, 1.27185533e-04, 1.23169603e-04, 1.19317127e-04,\n",
" 1.15611097e-04, 1.12040418e-04, 1.08608654e-04, 1.05341938e-04,\n",
" 1.02240597e-04, 9.92217423e-05, 9.62862983e-05, 9.35053867e-05,\n",
" 9.08229899e-05, 8.82333433e-05, 8.57640745e-05, 8.33752592e-05,\n",
" 8.10526187e-05, 7.88199024e-05, 7.66733790e-05, 7.46192999e-05,\n",
" 7.26361096e-05, 7.07217229e-05, 6.88673312e-05, 6.70665497e-05,\n",
" 6.53391938e-05, 6.36815809e-05, 6.20707363e-05, 6.05091677e-05,\n",
" 5.90108540e-05, 5.75551910e-05, 5.61435386e-05, 5.47790944e-05,\n",
" 5.34538189e-05, 5.21816642e-05, 5.09511321e-05, 4.97493153e-05,\n",
" 3.67732465e-05])\n",
"Coordinates:\n",
" * freq_r (freq_r) float64 nan 0.002653 0.006041 ... 0.4921 0.496 0.5611"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_isotropic_ps_slope()"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/aponte/.miniconda3/envs/cognac/lib/python3.6/site-packages/ipykernel_launcher.py:16: RuntimeWarning: divide by zero encountered in power\n",
" app.launch_new_instance()\n",
"/Users/aponte/code/xrft/xrft/xrft.py:607: RuntimeWarning: invalid value encountered in true_divide\n",
" kr = np.bincount(kidx, weights=K.ravel()) / area\n"
]
},
{
"ename": "AttributeError",
"evalue": "'numpy.ndarray' object has no attribute 'chunks'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-24-937b8bcaef82>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtest_isotropic_ps_slope\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mchunks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'y'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'x'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m<ipython-input-22-11d6e059b4ac>\u001b[0m in \u001b[0;36mtest_isotropic_ps_slope\u001b[0;34m(N, dL, amp, s, other_dim_sizes, chunks)\u001b[0m\n\u001b[1;32m 16\u001b[0m iso_ps = xrft.isotropic_powerspectrum(theta, dim=['x','y'],\n\u001b[1;32m 17\u001b[0m \u001b[0mdetrend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'constant'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 18\u001b[0;31m density=True)\n\u001b[0m\u001b[1;32m 19\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0miso_ps\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/code/xrft/xrft/xrft.py\u001b[0m in \u001b[0;36misotropic_powerspectrum\u001b[0;34m(da, spacing_tol, dim, shift, detrend, density, window, nfactor)\u001b[0m\n\u001b[1;32m 701\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mN\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 702\u001b[0m \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mps\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 703\u001b[0;31m \u001b[0miso_ps\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_azi_wrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mM\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkidx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marea\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 704\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 705\u001b[0m \u001b[0mk_coords\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'freq_r'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mkr\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/code/xrft/xrft/xrft.py\u001b[0m in \u001b[0;36m_azi_wrapper\u001b[0;34m(M, kidx, f, area, kr)\u001b[0m\n\u001b[1;32m 622\u001b[0m \u001b[0miso\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mzeros\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mM\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 623\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mM\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 624\u001b[0;31m \u001b[0miso\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_azimuthal_avg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkidx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marea\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 625\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mM\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 626\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mM\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/code/xrft/xrft/xrft.py\u001b[0m in \u001b[0;36m_azimuthal_avg\u001b[0;34m(kidx, f, area, kr)\u001b[0m\n\u001b[1;32m 614\u001b[0m \"\"\"\n\u001b[1;32m 615\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 616\u001b[0;31m iso_f = np.ma.masked_invalid(np.bincount(kidx, weights=f)\n\u001b[0m\u001b[1;32m 617\u001b[0m / area) * kr\n\u001b[1;32m 618\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<__array_function__ internals>\u001b[0m in \u001b[0;36mbincount\u001b[0;34m(*args, **kwargs)\u001b[0m\n",
"\u001b[0;32m~/.miniconda3/envs/cognac/lib/python3.6/site-packages/dask/array/core.py\u001b[0m in \u001b[0;36m__array_function__\u001b[0;34m(self, func, types, args, kwargs)\u001b[0m\n\u001b[1;32m 1357\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mda_func\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1358\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mhandle_nonmatching_names\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1359\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mda_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1360\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1361\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.miniconda3/envs/cognac/lib/python3.6/site-packages/dask/array/routines.py\u001b[0m in \u001b[0;36mbincount\u001b[0;34m(x, weights, minlength)\u001b[0m\n\u001b[1;32m 593\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Input array must be one dimensional. Try using x.ravel()\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 594\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mweights\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 595\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0mweights\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchunks\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchunks\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 596\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Chunks of input array x and weights must match.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 597\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mAttributeError\u001b[0m: 'numpy.ndarray' object has no attribute 'chunks'"
]
}
],
"source": [
"test_isotropic_ps_slope(chunks={'y': None, 'x': None})"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<xarray.DataArray (y: 512, x: 512, d0: 2)>\n",
"array([[[1.62403673, 1.62403673],\n",
" [1.65275966, 1.65275966],\n",
" [1.6809368 , 1.6809368 ],\n",
" ...,\n",
" [1.55401036, 1.55401036],\n",
" [1.57639776, 1.57639776],\n",
" [1.58298061, 1.58298061]],\n",
"\n",
" [[1.62754438, 1.62754438],\n",
" [1.68762489, 1.68762489],\n",
" [1.72527606, 1.72527606],\n",
" ...,\n",
" [1.53103284, 1.53103284],\n",
" [1.55590043, 1.55590043],\n",
" [1.58768111, 1.58768111]],\n",
"\n",
" [[1.62774177, 1.62774177],\n",
" [1.72174548, 1.72174548],\n",
" [1.82448036, 1.82448036],\n",
" ...,\n",
" [1.50873512, 1.50873512],\n",
" [1.52669164, 1.52669164],\n",
" [1.56253284, 1.56253284]],\n",
"\n",
" ...,\n",
"\n",
" [[1.70775057, 1.70775057],\n",
" [1.69677533, 1.69677533],\n",
" [1.67901562, 1.67901562],\n",
" ...,\n",
" [1.75596353, 1.75596353],\n",
" [1.76398883, 1.76398883],\n",
" [1.73351667, 1.73351667]],\n",
"\n",
" [[1.67079527, 1.67079527],\n",
" [1.66608489, 1.66608489],\n",
" [1.66782406, 1.66782406],\n",
" ...,\n",
" [1.63560648, 1.63560648],\n",
" [1.65118278, 1.65118278],\n",
" [1.69116652, 1.69116652]],\n",
"\n",
" [[1.64862651, 1.64862651],\n",
" [1.66591249, 1.66591249],\n",
" [1.67198229, 1.67198229],\n",
" ...,\n",
" [1.59597464, 1.59597464],\n",
" [1.57154082, 1.57154082],\n",
" [1.59565998, 1.59565998]]])\n",
"Coordinates:\n",
" * y (y) int64 0 1 2 3 4 5 6 7 8 ... 503 504 505 506 507 508 509 510 511\n",
" * x (x) int64 0 1 2 3 4 5 6 7 8 ... 503 504 505 506 507 508 509 510 511\n",
"Dimensions without coordinates: d0\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/aponte/.miniconda3/envs/cognac/lib/python3.6/site-packages/ipykernel_launcher.py:16: RuntimeWarning: divide by zero encountered in power\n",
" app.launch_new_instance()\n"
]
},
{
"ename": "KeyError",
"evalue": "'d0'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-29-94dfd6eea761>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtest_isotropic_ps_slope\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mother_dim_sizes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m<ipython-input-28-17d34dc5af9f>\u001b[0m in \u001b[0;36mtest_isotropic_ps_slope\u001b[0;34m(N, dL, amp, s, other_dim_sizes, chunks)\u001b[0m\n\u001b[1;32m 17\u001b[0m iso_ps = xrft.isotropic_powerspectrum(theta, dim=['y','x'],\n\u001b[1;32m 18\u001b[0m \u001b[0mdetrend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'constant'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 19\u001b[0;31m density=True)\n\u001b[0m\u001b[1;32m 20\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0miso_ps\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/code/xrft/xrft/xrft.py\u001b[0m in \u001b[0;36misotropic_powerspectrum\u001b[0;34m(da, spacing_tol, dim, shift, detrend, density, window, nfactor)\u001b[0m\n\u001b[1;32m 713\u001b[0m \u001b[0mnewcoords\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mda\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcoords\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 714\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 715\u001b[0;31m \u001b[0mnewcoords\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mk_coords\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0md\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 716\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 717\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mxr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataArray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miso_ps\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdims\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnewdims\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcoords\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnewcoords\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mKeyError\u001b[0m: 'd0'"
]
}
],
"source": [
"test_isotropic_ps_slope(other_dim_sizes=[2])"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<xarray.DataArray (y: 512, x: 512, d0: 2)>\n",
"dask.array<xarray-<this-array>, shape=(512, 512, 2), dtype=float64, chunksize=(512, 512, 2), chunktype=numpy.ndarray>\n",
"Coordinates:\n",
" * y (y) int64 0 1 2 3 4 5 6 7 8 ... 503 504 505 506 507 508 509 510 511\n",
" * x (x) int64 0 1 2 3 4 5 6 7 8 ... 503 504 505 506 507 508 509 510 511\n",
"Dimensions without coordinates: d0\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/aponte/.miniconda3/envs/cognac/lib/python3.6/site-packages/ipykernel_launcher.py:16: RuntimeWarning: divide by zero encountered in power\n",
" app.launch_new_instance()\n",
"/Users/aponte/code/xrft/xrft/xrft.py:607: RuntimeWarning: invalid value encountered in true_divide\n",
" kr = np.bincount(kidx, weights=K.ravel()) / area\n"
]
},
{
"ename": "AttributeError",
"evalue": "'numpy.ndarray' object has no attribute 'chunks'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-30-df3c30c5aa85>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtest_isotropic_ps_slope\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mchunks\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m'y'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'x'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mother_dim_sizes\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m<ipython-input-28-17d34dc5af9f>\u001b[0m in \u001b[0;36mtest_isotropic_ps_slope\u001b[0;34m(N, dL, amp, s, other_dim_sizes, chunks)\u001b[0m\n\u001b[1;32m 17\u001b[0m iso_ps = xrft.isotropic_powerspectrum(theta, dim=['y','x'],\n\u001b[1;32m 18\u001b[0m \u001b[0mdetrend\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'constant'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 19\u001b[0;31m density=True)\n\u001b[0m\u001b[1;32m 20\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0miso_ps\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/code/xrft/xrft/xrft.py\u001b[0m in \u001b[0;36misotropic_powerspectrum\u001b[0;34m(da, spacing_tol, dim, shift, detrend, density, window, nfactor)\u001b[0m\n\u001b[1;32m 701\u001b[0m \u001b[0mshape\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mN\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 702\u001b[0m \u001b[0mf\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mps\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreshape\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 703\u001b[0;31m \u001b[0miso_ps\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_azi_wrapper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mM\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkidx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marea\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 704\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 705\u001b[0m \u001b[0mk_coords\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m{\u001b[0m\u001b[0;34m'freq_r'\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mkr\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/code/xrft/xrft/xrft.py\u001b[0m in \u001b[0;36m_azi_wrapper\u001b[0;34m(M, kidx, f, area, kr)\u001b[0m\n\u001b[1;32m 625\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mM\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 626\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mM\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 627\u001b[0;31m \u001b[0miso\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_azimuthal_avg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkidx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mj\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0marea\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 628\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mM\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 629\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mj\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mM\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/code/xrft/xrft/xrft.py\u001b[0m in \u001b[0;36m_azimuthal_avg\u001b[0;34m(kidx, f, area, kr)\u001b[0m\n\u001b[1;32m 614\u001b[0m \"\"\"\n\u001b[1;32m 615\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 616\u001b[0;31m iso_f = np.ma.masked_invalid(np.bincount(kidx, weights=f)\n\u001b[0m\u001b[1;32m 617\u001b[0m / area) * kr\n\u001b[1;32m 618\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m<__array_function__ internals>\u001b[0m in \u001b[0;36mbincount\u001b[0;34m(*args, **kwargs)\u001b[0m\n",
"\u001b[0;32m~/.miniconda3/envs/cognac/lib/python3.6/site-packages/dask/array/core.py\u001b[0m in \u001b[0;36m__array_function__\u001b[0;34m(self, func, types, args, kwargs)\u001b[0m\n\u001b[1;32m 1357\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mda_func\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1358\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mhandle_nonmatching_names\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfunc\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1359\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mda_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1360\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1361\u001b[0m \u001b[0;34m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;32m~/.miniconda3/envs/cognac/lib/python3.6/site-packages/dask/array/routines.py\u001b[0m in \u001b[0;36mbincount\u001b[0;34m(x, weights, minlength)\u001b[0m\n\u001b[1;32m 593\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Input array must be one dimensional. Try using x.ravel()\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 594\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mweights\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 595\u001b[0;31m \u001b[0;32mif\u001b[0m \u001b[0mweights\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchunks\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mchunks\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 596\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Chunks of input array x and weights must match.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 597\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mAttributeError\u001b[0m: 'numpy.ndarray' object has no attribute 'chunks'"
]
}
],
"source": [
"test_isotropic_ps_slope(chunks={'y': None, 'x': None}, other_dim_sizes=[2])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"--- \n",
"## bbb37ff"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/aponte/.miniconda3/envs/cognac/lib/python3.6/site-packages/ipykernel_launcher.py:16: RuntimeWarning: divide by zero encountered in power\n",
" app.launch_new_instance()\n",
"/Users/aponte/code/xrft/xrft/xrft.py:608: RuntimeWarning: invalid value encountered in true_divide\n",
" kr = np.bincount(kidx, weights=K.ravel()) / area\n",
"/Users/aponte/code/xrft/xrft/xrft.py:624: RuntimeWarning: invalid value encountered in true_divide\n",
" iso_f = np.ma.masked_invalid(_bincount / area) * kr\n"
]
},
{
"data": {
"text/html": [
"<pre>&lt;xarray.DataArray (freq_r: 129)&gt;\n",
"array([ nan, 4.46967580e+02, 4.02444606e+01, 7.35410258e+00,\n",
" 2.53643797e+00, 1.16351145e+00, 6.16453750e-01, 3.71752789e-01,\n",
" 2.42385417e-01, 1.65346670e-01, 1.17662630e-01, 8.74978038e-02,\n",
" 6.63439156e-02, 5.15657259e-02, 4.10576073e-02, 3.30747541e-02,\n",
" 2.70253470e-02, 2.24068119e-02, 1.87259187e-02, 1.58762097e-02,\n",
" 1.36067721e-02, 1.17113225e-02, 1.01341781e-02, 8.82425972e-03,\n",
" 7.73892422e-03, 6.84918798e-03, 6.07330095e-03, 5.39990815e-03,\n",
" 4.83972886e-03, 4.35006266e-03, 3.91494445e-03, 3.54090720e-03,\n",
" 3.22103938e-03, 2.93351203e-03, 2.67471765e-03, 2.44653601e-03,\n",
" 2.24604922e-03, 2.06892299e-03, 1.90971768e-03, 1.76355733e-03,\n",
" 1.63226496e-03, 1.51415736e-03, 1.40751487e-03, 1.31057865e-03,\n",
" 1.22269451e-03, 1.14275010e-03, 1.06871292e-03, 1.00024013e-03,\n",
" 9.38690153e-04, 8.82404509e-04, 8.30589820e-04, 7.82198521e-04,\n",
" 7.36679229e-04, 6.95054875e-04, 6.57184380e-04, 6.21805930e-04,\n",
" 5.88906695e-04, 5.58312991e-04, 5.29642507e-04, 5.02709885e-04,\n",
" 4.77732147e-04, 4.54515605e-04, 4.32653902e-04, 4.12220756e-04,\n",
" 3.93109225e-04, 3.75048160e-04, 3.58096809e-04, 3.42201863e-04,\n",
" 3.27250060e-04, 3.13152456e-04, 2.99874069e-04, 2.87338718e-04,\n",
" 2.75397863e-04, 2.64078827e-04, 2.53481911e-04, 2.43523423e-04,\n",
" 2.33992059e-04, 2.24877767e-04, 2.16228883e-04, 2.08047512e-04,\n",
" 2.00333566e-04, 1.92970390e-04, 1.85957649e-04, 1.79293943e-04,\n",
" 1.72914165e-04, 1.66823783e-04, 1.61041102e-04, 1.55547589e-04,\n",
" 1.50299710e-04, 1.45279324e-04, 1.40435823e-04, 1.35821374e-04,\n",
" 1.31403746e-04, 1.27185533e-04, 1.23169603e-04, 1.19317127e-04,\n",
" 1.15611097e-04, 1.12040418e-04, 1.08608654e-04, 1.05341938e-04,\n",
" 1.02240597e-04, 9.92217423e-05, 9.62862983e-05, 9.35053867e-05,\n",
" 9.08229899e-05, 8.82333433e-05, 8.57640745e-05, 8.33752592e-05,\n",
" 8.10526187e-05, 7.88199024e-05, 7.66733790e-05, 7.46192999e-05,\n",
" 7.26361096e-05, 7.07217229e-05, 6.88673312e-05, 6.70665497e-05,\n",
" 6.53391938e-05, 6.36815809e-05, 6.20707363e-05, 6.05091677e-05,\n",
" 5.90108540e-05, 5.75551910e-05, 5.61435386e-05, 5.47790944e-05,\n",
" 5.34538189e-05, 5.21816642e-05, 5.09511321e-05, 4.97493153e-05,\n",
" 3.67743003e-05])\n",
"Coordinates:\n",
" * freq_r (freq_r) float64 nan 0.002653 0.006041 ... 0.4921 0.496 0.5611</pre>"
],
"text/plain": [
"<xarray.DataArray (freq_r: 129)>\n",
"array([ nan, 4.46967580e+02, 4.02444606e+01, 7.35410258e+00,\n",
" 2.53643797e+00, 1.16351145e+00, 6.16453750e-01, 3.71752789e-01,\n",
" 2.42385417e-01, 1.65346670e-01, 1.17662630e-01, 8.74978038e-02,\n",
" 6.63439156e-02, 5.15657259e-02, 4.10576073e-02, 3.30747541e-02,\n",
" 2.70253470e-02, 2.24068119e-02, 1.87259187e-02, 1.58762097e-02,\n",
" 1.36067721e-02, 1.17113225e-02, 1.01341781e-02, 8.82425972e-03,\n",
" 7.73892422e-03, 6.84918798e-03, 6.07330095e-03, 5.39990815e-03,\n",
" 4.83972886e-03, 4.35006266e-03, 3.91494445e-03, 3.54090720e-03,\n",
" 3.22103938e-03, 2.93351203e-03, 2.67471765e-03, 2.44653601e-03,\n",
" 2.24604922e-03, 2.06892299e-03, 1.90971768e-03, 1.76355733e-03,\n",
" 1.63226496e-03, 1.51415736e-03, 1.40751487e-03, 1.31057865e-03,\n",
" 1.22269451e-03, 1.14275010e-03, 1.06871292e-03, 1.00024013e-03,\n",
" 9.38690153e-04, 8.82404509e-04, 8.30589820e-04, 7.82198521e-04,\n",
" 7.36679229e-04, 6.95054875e-04, 6.57184380e-04, 6.21805930e-04,\n",
" 5.88906695e-04, 5.58312991e-04, 5.29642507e-04, 5.02709885e-04,\n",
" 4.77732147e-04, 4.54515605e-04, 4.32653902e-04, 4.12220756e-04,\n",
" 3.93109225e-04, 3.75048160e-04, 3.58096809e-04, 3.42201863e-04,\n",
" 3.27250060e-04, 3.13152456e-04, 2.99874069e-04, 2.87338718e-04,\n",
" 2.75397863e-04, 2.64078827e-04, 2.53481911e-04, 2.43523423e-04,\n",
" 2.33992059e-04, 2.24877767e-04, 2.16228883e-04, 2.08047512e-04,\n",
" 2.00333566e-04, 1.92970390e-04, 1.85957649e-04, 1.79293943e-04,\n",
" 1.72914165e-04, 1.66823783e-04, 1.61041102e-04, 1.55547589e-04,\n",
" 1.50299710e-04, 1.45279324e-04, 1.40435823e-04, 1.35821374e-04,\n",
" 1.31403746e-04, 1.27185533e-04, 1.23169603e-04, 1.19317127e-04,\n",
" 1.15611097e-04, 1.12040418e-04, 1.08608654e-04, 1.05341938e-04,\n",
" 1.02240597e-04, 9.92217423e-05, 9.62862983e-05, 9.35053867e-05,\n",
" 9.08229899e-05, 8.82333433e-05, 8.57640745e-05, 8.33752592e-05,\n",
" 8.10526187e-05, 7.88199024e-05, 7.66733790e-05, 7.46192999e-05,\n",
" 7.26361096e-05, 7.07217229e-05, 6.88673312e-05, 6.70665497e-05,\n",
" 6.53391938e-05, 6.36815809e-05, 6.20707363e-05, 6.05091677e-05,\n",
" 5.90108540e-05, 5.75551910e-05, 5.61435386e-05, 5.47790944e-05,\n",
" 5.34538189e-05, 5.21816642e-05, 5.09511321e-05, 4.97493153e-05,\n",
" 3.67743003e-05])\n",
"Coordinates:\n",
" * freq_r (freq_r) float64 nan 0.002653 0.006041 ... 0.4921 0.496 0.5611"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_isotropic_ps_slope()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/aponte/.miniconda3/envs/cognac/lib/python3.6/site-packages/ipykernel_launcher.py:16: RuntimeWarning: divide by zero encountered in power\n",
" app.launch_new_instance()\n",
"/Users/aponte/code/xrft/xrft/xrft.py:608: RuntimeWarning: invalid value encountered in true_divide\n",
" kr = np.bincount(kidx, weights=K.ravel()) / area\n",
"/Users/aponte/code/xrft/xrft/xrft.py:624: RuntimeWarning: invalid value encountered in true_divide\n",
" iso_f = np.ma.masked_invalid(_bincount / area) * kr\n"
]
},
{
"data": {
"text/html": [
"<pre>&lt;xarray.DataArray (freq_r: 129)&gt;\n",
"array([ nan, 4.46967580e+02, 4.02444606e+01, 7.35410258e+00,\n",
" 2.53643797e+00, 1.16351145e+00, 6.16453750e-01, 3.71752789e-01,\n",
" 2.42385417e-01, 1.65346670e-01, 1.17662630e-01, 8.74978038e-02,\n",
" 6.63439156e-02, 5.15657259e-02, 4.10576073e-02, 3.30747541e-02,\n",
" 2.70253470e-02, 2.24068119e-02, 1.87259187e-02, 1.58762097e-02,\n",
" 1.36067721e-02, 1.17113225e-02, 1.01341781e-02, 8.82425972e-03,\n",
" 7.73892422e-03, 6.84918798e-03, 6.07330095e-03, 5.39990815e-03,\n",
" 4.83972886e-03, 4.35006266e-03, 3.91494445e-03, 3.54090720e-03,\n",
" 3.22103938e-03, 2.93351203e-03, 2.67471765e-03, 2.44653601e-03,\n",
" 2.24604922e-03, 2.06892299e-03, 1.90971768e-03, 1.76355733e-03,\n",
" 1.63226496e-03, 1.51415736e-03, 1.40751487e-03, 1.31057865e-03,\n",
" 1.22269451e-03, 1.14275010e-03, 1.06871292e-03, 1.00024013e-03,\n",
" 9.38690153e-04, 8.82404509e-04, 8.30589820e-04, 7.82198521e-04,\n",
" 7.36679229e-04, 6.95054875e-04, 6.57184380e-04, 6.21805930e-04,\n",
" 5.88906695e-04, 5.58312991e-04, 5.29642507e-04, 5.02709885e-04,\n",
" 4.77732147e-04, 4.54515605e-04, 4.32653902e-04, 4.12220756e-04,\n",
" 3.93109225e-04, 3.75048160e-04, 3.58096809e-04, 3.42201863e-04,\n",
" 3.27250060e-04, 3.13152456e-04, 2.99874069e-04, 2.87338718e-04,\n",
" 2.75397863e-04, 2.64078827e-04, 2.53481911e-04, 2.43523423e-04,\n",
" 2.33992059e-04, 2.24877767e-04, 2.16228883e-04, 2.08047512e-04,\n",
" 2.00333566e-04, 1.92970390e-04, 1.85957649e-04, 1.79293943e-04,\n",
" 1.72914165e-04, 1.66823783e-04, 1.61041102e-04, 1.55547589e-04,\n",
" 1.50299710e-04, 1.45279324e-04, 1.40435823e-04, 1.35821374e-04,\n",
" 1.31403746e-04, 1.27185533e-04, 1.23169603e-04, 1.19317127e-04,\n",
" 1.15611097e-04, 1.12040418e-04, 1.08608654e-04, 1.05341938e-04,\n",
" 1.02240597e-04, 9.92217423e-05, 9.62862983e-05, 9.35053867e-05,\n",
" 9.08229899e-05, 8.82333433e-05, 8.57640745e-05, 8.33752592e-05,\n",
" 8.10526187e-05, 7.88199024e-05, 7.66733790e-05, 7.46192999e-05,\n",
" 7.26361096e-05, 7.07217229e-05, 6.88673312e-05, 6.70665497e-05,\n",
" 6.53391938e-05, 6.36815809e-05, 6.20707363e-05, 6.05091677e-05,\n",
" 5.90108540e-05, 5.75551910e-05, 5.61435386e-05, 5.47790944e-05,\n",
" 5.34538189e-05, 5.21816642e-05, 5.09511321e-05, 4.97493153e-05,\n",
" 3.67728575e-05])\n",
"Coordinates:\n",
" * freq_r (freq_r) float64 nan 0.002653 0.006041 ... 0.4921 0.496 0.5611</pre>"
],
"text/plain": [
"<xarray.DataArray (freq_r: 129)>\n",
"array([ nan, 4.46967580e+02, 4.02444606e+01, 7.35410258e+00,\n",
" 2.53643797e+00, 1.16351145e+00, 6.16453750e-01, 3.71752789e-01,\n",
" 2.42385417e-01, 1.65346670e-01, 1.17662630e-01, 8.74978038e-02,\n",
" 6.63439156e-02, 5.15657259e-02, 4.10576073e-02, 3.30747541e-02,\n",
" 2.70253470e-02, 2.24068119e-02, 1.87259187e-02, 1.58762097e-02,\n",
" 1.36067721e-02, 1.17113225e-02, 1.01341781e-02, 8.82425972e-03,\n",
" 7.73892422e-03, 6.84918798e-03, 6.07330095e-03, 5.39990815e-03,\n",
" 4.83972886e-03, 4.35006266e-03, 3.91494445e-03, 3.54090720e-03,\n",
" 3.22103938e-03, 2.93351203e-03, 2.67471765e-03, 2.44653601e-03,\n",
" 2.24604922e-03, 2.06892299e-03, 1.90971768e-03, 1.76355733e-03,\n",
" 1.63226496e-03, 1.51415736e-03, 1.40751487e-03, 1.31057865e-03,\n",
" 1.22269451e-03, 1.14275010e-03, 1.06871292e-03, 1.00024013e-03,\n",
" 9.38690153e-04, 8.82404509e-04, 8.30589820e-04, 7.82198521e-04,\n",
" 7.36679229e-04, 6.95054875e-04, 6.57184380e-04, 6.21805930e-04,\n",
" 5.88906695e-04, 5.58312991e-04, 5.29642507e-04, 5.02709885e-04,\n",
" 4.77732147e-04, 4.54515605e-04, 4.32653902e-04, 4.12220756e-04,\n",
" 3.93109225e-04, 3.75048160e-04, 3.58096809e-04, 3.42201863e-04,\n",
" 3.27250060e-04, 3.13152456e-04, 2.99874069e-04, 2.87338718e-04,\n",
" 2.75397863e-04, 2.64078827e-04, 2.53481911e-04, 2.43523423e-04,\n",
" 2.33992059e-04, 2.24877767e-04, 2.16228883e-04, 2.08047512e-04,\n",
" 2.00333566e-04, 1.92970390e-04, 1.85957649e-04, 1.79293943e-04,\n",
" 1.72914165e-04, 1.66823783e-04, 1.61041102e-04, 1.55547589e-04,\n",
" 1.50299710e-04, 1.45279324e-04, 1.40435823e-04, 1.35821374e-04,\n",
" 1.31403746e-04, 1.27185533e-04, 1.23169603e-04, 1.19317127e-04,\n",
" 1.15611097e-04, 1.12040418e-04, 1.08608654e-04, 1.05341938e-04,\n",
" 1.02240597e-04, 9.92217423e-05, 9.62862983e-05, 9.35053867e-05,\n",
" 9.08229899e-05, 8.82333433e-05, 8.57640745e-05, 8.33752592e-05,\n",
" 8.10526187e-05, 7.88199024e-05, 7.66733790e-05, 7.46192999e-05,\n",
" 7.26361096e-05, 7.07217229e-05, 6.88673312e-05, 6.70665497e-05,\n",
" 6.53391938e-05, 6.36815809e-05, 6.20707363e-05, 6.05091677e-05,\n",
" 5.90108540e-05, 5.75551910e-05, 5.61435386e-05, 5.47790944e-05,\n",
" 5.34538189e-05, 5.21816642e-05, 5.09511321e-05, 4.97493153e-05,\n",
" 3.67728575e-05])\n",
"Coordinates:\n",
" * freq_r (freq_r) float64 nan 0.002653 0.006041 ... 0.4921 0.496 0.5611"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_isotropic_ps_slope(chunks={'y': None, 'x': None})"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/aponte/.miniconda3/envs/cognac/lib/python3.6/site-packages/ipykernel_launcher.py:16: RuntimeWarning: divide by zero encountered in power\n",
" app.launch_new_instance()\n",
"/Users/aponte/code/xrft/xrft/xrft.py:608: RuntimeWarning: invalid value encountered in true_divide\n",
" kr = np.bincount(kidx, weights=K.ravel()) / area\n"
]
},
{
"data": {
"text/html": [
"<pre>&lt;xarray.DataArray (d0: 2, freq_r: 129)&gt;\n",
"array([[ nan, 1.02835615e-06, 2.33778367e-06, 3.81864467e-06,\n",
" 5.30170468e-06, 6.84168201e-06, 8.40971187e-06, 9.93995266e-06,\n",
" 1.14625226e-05, 1.30325088e-05, 1.46180620e-05, 1.61625380e-05,\n",
" 1.77728986e-05, 1.93802421e-05, 2.09558269e-05, 2.26092455e-05,\n",
" 2.42603022e-05, 2.59281287e-05, 2.76458379e-05, 2.93261907e-05,\n",
" 3.10223385e-05, 3.27593763e-05, 3.45665864e-05, 3.63966206e-05,\n",
" 3.82427434e-05, 4.00607689e-05, 4.19464518e-05, 4.39310840e-05,\n",
" 4.58385178e-05, 4.78427768e-05, 4.99193222e-05, 5.20007729e-05,\n",
" 5.40788129e-05, 5.62227410e-05, 5.84930641e-05, 6.07568318e-05,\n",
" 6.30782956e-05, 6.53998304e-05, 6.77600030e-05, 7.03141443e-05,\n",
" 7.28103831e-05, 7.54407069e-05, 7.81244315e-05, 8.08258524e-05,\n",
" 8.35983414e-05, 8.64807967e-05, 8.95062088e-05, 9.25266361e-05,\n",
" 9.56718799e-05, 9.88210058e-05, 1.02078103e-04, 1.05534213e-04,\n",
" 1.09142731e-04, 1.12814016e-04, 1.16474692e-04, 1.20213468e-04,\n",
" 1.24217603e-04, 1.28195263e-04, 1.32601698e-04, 1.37024040e-04,\n",
" 1.41601551e-04, 1.46040276e-04, 1.50733681e-04, 1.55757408e-04,\n",
" 1.61259500e-04, 1.66454641e-04, 1.71895632e-04, 1.77708233e-04,\n",
" 1.83642964e-04, 1.89205204e-04, 1.96337329e-04, 2.02741764e-04,\n",
" 2.09645640e-04, 2.16693513e-04, 2.24207040e-04, 2.31286354e-04,\n",
" 2.39765501e-04, 2.48453390e-04, 2.57145326e-04, 2.65968466e-04,\n",
" 2.75577584e-04, 2.84062074e-04, 2.95482912e-04, 3.06033667e-04,\n",
" 3.17497600e-04, 3.28733326e-04, 3.40423112e-04, 3.52506389e-04,\n",
" 3.66057111e-04, 3.81583016e-04, 3.94688660e-04, 4.10063320e-04,\n",
" 4.25922604e-04, 4.42517466e-04, 4.57764662e-04, 4.78142432e-04,\n",
" 4.98037694e-04, 5.18963640e-04, 5.36697091e-04, 5.60335698e-04,\n",
" 5.81211967e-04, 6.09588297e-04, 6.35729146e-04, 6.63984250e-04,\n",
" 6.89035993e-04, 7.22644955e-04, 7.46619273e-04, 7.87649029e-04,\n",
" 8.26059591e-04, 8.65600875e-04, 9.01608501e-04, 9.45952339e-04,\n",
" 9.80634269e-04, 1.03315761e-03, 1.09605336e-03, 1.14701489e-03,\n",
" 1.20220741e-03, 1.26735637e-03, 1.32163824e-03, 1.37790877e-03,\n",
" 1.48513897e-03, 1.55680460e-03, 1.65580521e-03, 1.72557227e-03,\n",
" 1.81887161e-03, 1.91503606e-03, 2.06661331e-03, 2.18391511e-03,\n",
" 1.56085654e+01],\n",
" [ nan, 1.03584855e-06, 2.35622510e-06, 3.85068392e-06,\n",
" 5.34356085e-06, 6.89390903e-06, 8.47618013e-06, 1.00224437e-05,\n",
" 1.15552839e-05, 1.31321113e-05, 1.47320395e-05, 1.62947927e-05,\n",
" 1.79123917e-05, 1.95306873e-05, 2.11229754e-05, 2.27918726e-05,\n",
" 2.44586743e-05, 2.61303634e-05, 2.78681179e-05, 2.95708419e-05,\n",
" 3.12709193e-05, 3.30245358e-05, 3.48407889e-05, 3.66890108e-05,\n",
" 3.85613504e-05, 4.03798856e-05, 4.22948703e-05, 4.43039951e-05,\n",
" 4.62131213e-05, 4.82416516e-05, 5.03257609e-05, 5.24423448e-05,\n",
" 5.45367343e-05, 5.66827343e-05, 5.89892588e-05, 6.12774193e-05,\n",
" 6.36137802e-05, 6.59642162e-05, 6.83317591e-05, 7.09286266e-05,\n",
" 7.34489069e-05, 7.60901700e-05, 7.88083945e-05, 8.15461799e-05,\n",
" 8.43376711e-05, 8.72558306e-05, 9.02874171e-05, 9.33468983e-05,\n",
" 9.65519789e-05, 9.97323117e-05, 1.02997640e-04, 1.06495279e-04,\n",
" 1.10160541e-04, 1.13888845e-04, 1.17536198e-04, 1.21358381e-04,\n",
" 1.25411835e-04, 1.29406212e-04, 1.33876910e-04, 1.38320374e-04,\n",
" 1.42988577e-04, 1.47496402e-04, 1.52200438e-04, 1.57307911e-04,\n",
" 1.62911843e-04, 1.68127678e-04, 1.73627236e-04, 1.79506490e-04,\n",
" 1.85537191e-04, 1.91214594e-04, 1.98372350e-04, 2.04898845e-04,\n",
" 2.11888427e-04, 2.19030929e-04, 2.26633153e-04, 2.33753835e-04,\n",
" 2.42453592e-04, 2.51264562e-04, 2.59991152e-04, 2.68971715e-04,\n",
" 2.78725727e-04, 2.87414468e-04, 2.98906472e-04, 3.09592411e-04,\n",
" 3.21275013e-04, 3.32720941e-04, 3.44494748e-04, 3.56791126e-04,\n",
" 3.70572291e-04, 3.86426028e-04, 3.99691641e-04, 4.15172202e-04,\n",
" 4.31414538e-04, 4.48469306e-04, 4.63649750e-04, 4.84521756e-04,\n",
" 5.04699182e-04, 5.26129912e-04, 5.44157598e-04, 5.67930522e-04,\n",
" 5.89437385e-04, 6.18404998e-04, 6.44938503e-04, 6.73540287e-04,\n",
" 6.99029407e-04, 7.33827405e-04, 7.57896493e-04, 7.99629059e-04,\n",
" 8.38946115e-04, 8.79377266e-04, 9.16240259e-04, 9.60972430e-04,\n",
" 9.96812598e-04, 1.05053426e-03, 1.11486674e-03, 1.16620650e-03,\n",
" 1.22351931e-03, 1.28977780e-03, 1.34543526e-03, 1.40306303e-03,\n",
" 1.51257305e-03, 1.58664135e-03, 1.68765691e-03, 1.75876899e-03,\n",
" 1.85472382e-03, 1.95403110e-03, 2.10950889e-03, 2.22940464e-03,\n",
" 3.31084773e+01]])\n",
"Coordinates:\n",
" * freq_r (freq_r) float64 nan 0.002653 0.006041 ... 0.4921 0.496 0.5611\n",
"Dimensions without coordinates: d0</pre>"
],
"text/plain": [
"<xarray.DataArray (d0: 2, freq_r: 129)>\n",
"array([[ nan, 1.02835615e-06, 2.33778367e-06, 3.81864467e-06,\n",
" 5.30170468e-06, 6.84168201e-06, 8.40971187e-06, 9.93995266e-06,\n",
" 1.14625226e-05, 1.30325088e-05, 1.46180620e-05, 1.61625380e-05,\n",
" 1.77728986e-05, 1.93802421e-05, 2.09558269e-05, 2.26092455e-05,\n",
" 2.42603022e-05, 2.59281287e-05, 2.76458379e-05, 2.93261907e-05,\n",
" 3.10223385e-05, 3.27593763e-05, 3.45665864e-05, 3.63966206e-05,\n",
" 3.82427434e-05, 4.00607689e-05, 4.19464518e-05, 4.39310840e-05,\n",
" 4.58385178e-05, 4.78427768e-05, 4.99193222e-05, 5.20007729e-05,\n",
" 5.40788129e-05, 5.62227410e-05, 5.84930641e-05, 6.07568318e-05,\n",
" 6.30782956e-05, 6.53998304e-05, 6.77600030e-05, 7.03141443e-05,\n",
" 7.28103831e-05, 7.54407069e-05, 7.81244315e-05, 8.08258524e-05,\n",
" 8.35983414e-05, 8.64807967e-05, 8.95062088e-05, 9.25266361e-05,\n",
" 9.56718799e-05, 9.88210058e-05, 1.02078103e-04, 1.05534213e-04,\n",
" 1.09142731e-04, 1.12814016e-04, 1.16474692e-04, 1.20213468e-04,\n",
" 1.24217603e-04, 1.28195263e-04, 1.32601698e-04, 1.37024040e-04,\n",
" 1.41601551e-04, 1.46040276e-04, 1.50733681e-04, 1.55757408e-04,\n",
" 1.61259500e-04, 1.66454641e-04, 1.71895632e-04, 1.77708233e-04,\n",
" 1.83642964e-04, 1.89205204e-04, 1.96337329e-04, 2.02741764e-04,\n",
" 2.09645640e-04, 2.16693513e-04, 2.24207040e-04, 2.31286354e-04,\n",
" 2.39765501e-04, 2.48453390e-04, 2.57145326e-04, 2.65968466e-04,\n",
" 2.75577584e-04, 2.84062074e-04, 2.95482912e-04, 3.06033667e-04,\n",
" 3.17497600e-04, 3.28733326e-04, 3.40423112e-04, 3.52506389e-04,\n",
" 3.66057111e-04, 3.81583016e-04, 3.94688660e-04, 4.10063320e-04,\n",
" 4.25922604e-04, 4.42517466e-04, 4.57764662e-04, 4.78142432e-04,\n",
" 4.98037694e-04, 5.18963640e-04, 5.36697091e-04, 5.60335698e-04,\n",
" 5.81211967e-04, 6.09588297e-04, 6.35729146e-04, 6.63984250e-04,\n",
" 6.89035993e-04, 7.22644955e-04, 7.46619273e-04, 7.87649029e-04,\n",
" 8.26059591e-04, 8.65600875e-04, 9.01608501e-04, 9.45952339e-04,\n",
" 9.80634269e-04, 1.03315761e-03, 1.09605336e-03, 1.14701489e-03,\n",
" 1.20220741e-03, 1.26735637e-03, 1.32163824e-03, 1.37790877e-03,\n",
" 1.48513897e-03, 1.55680460e-03, 1.65580521e-03, 1.72557227e-03,\n",
" 1.81887161e-03, 1.91503606e-03, 2.06661331e-03, 2.18391511e-03,\n",
" 1.56085654e+01],\n",
" [ nan, 1.03584855e-06, 2.35622510e-06, 3.85068392e-06,\n",
" 5.34356085e-06, 6.89390903e-06, 8.47618013e-06, 1.00224437e-05,\n",
" 1.15552839e-05, 1.31321113e-05, 1.47320395e-05, 1.62947927e-05,\n",
" 1.79123917e-05, 1.95306873e-05, 2.11229754e-05, 2.27918726e-05,\n",
" 2.44586743e-05, 2.61303634e-05, 2.78681179e-05, 2.95708419e-05,\n",
" 3.12709193e-05, 3.30245358e-05, 3.48407889e-05, 3.66890108e-05,\n",
" 3.85613504e-05, 4.03798856e-05, 4.22948703e-05, 4.43039951e-05,\n",
" 4.62131213e-05, 4.82416516e-05, 5.03257609e-05, 5.24423448e-05,\n",
" 5.45367343e-05, 5.66827343e-05, 5.89892588e-05, 6.12774193e-05,\n",
" 6.36137802e-05, 6.59642162e-05, 6.83317591e-05, 7.09286266e-05,\n",
" 7.34489069e-05, 7.60901700e-05, 7.88083945e-05, 8.15461799e-05,\n",
" 8.43376711e-05, 8.72558306e-05, 9.02874171e-05, 9.33468983e-05,\n",
" 9.65519789e-05, 9.97323117e-05, 1.02997640e-04, 1.06495279e-04,\n",
" 1.10160541e-04, 1.13888845e-04, 1.17536198e-04, 1.21358381e-04,\n",
" 1.25411835e-04, 1.29406212e-04, 1.33876910e-04, 1.38320374e-04,\n",
" 1.42988577e-04, 1.47496402e-04, 1.52200438e-04, 1.57307911e-04,\n",
" 1.62911843e-04, 1.68127678e-04, 1.73627236e-04, 1.79506490e-04,\n",
" 1.85537191e-04, 1.91214594e-04, 1.98372350e-04, 2.04898845e-04,\n",
" 2.11888427e-04, 2.19030929e-04, 2.26633153e-04, 2.33753835e-04,\n",
" 2.42453592e-04, 2.51264562e-04, 2.59991152e-04, 2.68971715e-04,\n",
" 2.78725727e-04, 2.87414468e-04, 2.98906472e-04, 3.09592411e-04,\n",
" 3.21275013e-04, 3.32720941e-04, 3.44494748e-04, 3.56791126e-04,\n",
" 3.70572291e-04, 3.86426028e-04, 3.99691641e-04, 4.15172202e-04,\n",
" 4.31414538e-04, 4.48469306e-04, 4.63649750e-04, 4.84521756e-04,\n",
" 5.04699182e-04, 5.26129912e-04, 5.44157598e-04, 5.67930522e-04,\n",
" 5.89437385e-04, 6.18404998e-04, 6.44938503e-04, 6.73540287e-04,\n",
" 6.99029407e-04, 7.33827405e-04, 7.57896493e-04, 7.99629059e-04,\n",
" 8.38946115e-04, 8.79377266e-04, 9.16240259e-04, 9.60972430e-04,\n",
" 9.96812598e-04, 1.05053426e-03, 1.11486674e-03, 1.16620650e-03,\n",
" 1.22351931e-03, 1.28977780e-03, 1.34543526e-03, 1.40306303e-03,\n",
" 1.51257305e-03, 1.58664135e-03, 1.68765691e-03, 1.75876899e-03,\n",
" 1.85472382e-03, 1.95403110e-03, 2.10950889e-03, 2.22940464e-03,\n",
" 3.31084773e+01]])\n",
"Coordinates:\n",
" * freq_r (freq_r) float64 nan 0.002653 0.006041 ... 0.4921 0.496 0.5611\n",
"Dimensions without coordinates: d0"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_isotropic_ps_slope(other_dim_sizes=[2])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/aponte/.miniconda3/envs/cognac/lib/python3.6/site-packages/ipykernel_launcher.py:16: RuntimeWarning: divide by zero encountered in power\n",
" app.launch_new_instance()\n",
"/Users/aponte/code/xrft/xrft/xrft.py:608: RuntimeWarning: invalid value encountered in true_divide\n",
" kr = np.bincount(kidx, weights=K.ravel()) / area\n",
"/Users/aponte/code/xrft/xrft/xrft.py:624: RuntimeWarning: invalid value encountered in true_divide\n",
" iso_f = np.ma.masked_invalid(_bincount / area) * kr\n",
"/Users/aponte/code/xrft/xrft/xrft.py:624: RuntimeWarning: invalid value encountered in true_divide\n",
" iso_f = np.ma.masked_invalid(_bincount / area) * kr\n"
]
},
{
"data": {
"text/html": [
"<pre>&lt;xarray.DataArray (d0: 2, freq_r: 129)&gt;\n",
"array([[ nan, 1.02835615e-06, 2.33778367e-06, 3.81864467e-06,\n",
" 5.30170468e-06, 6.84168201e-06, 8.40971187e-06, 9.93995266e-06,\n",
" 1.14625226e-05, 1.30325088e-05, 1.46180620e-05, 1.61625380e-05,\n",
" 1.77728986e-05, 1.93802421e-05, 2.09558269e-05, 2.26092455e-05,\n",
" 2.42603022e-05, 2.59281287e-05, 2.76458379e-05, 2.93261907e-05,\n",
" 3.10223385e-05, 3.27593763e-05, 3.45665864e-05, 3.63966206e-05,\n",
" 3.82427434e-05, 4.00607689e-05, 4.19464518e-05, 4.39310840e-05,\n",
" 4.58385178e-05, 4.78427768e-05, 4.99193222e-05, 5.20007729e-05,\n",
" 5.40788129e-05, 5.62227410e-05, 5.84930641e-05, 6.07568318e-05,\n",
" 6.30782956e-05, 6.53998304e-05, 6.77600030e-05, 7.03141443e-05,\n",
" 7.28103831e-05, 7.54407069e-05, 7.81244315e-05, 8.08258524e-05,\n",
" 8.35983414e-05, 8.64807967e-05, 8.95062088e-05, 9.25266361e-05,\n",
" 9.56718799e-05, 9.88210058e-05, 1.02078103e-04, 1.05534213e-04,\n",
" 1.09142731e-04, 1.12814016e-04, 1.16474692e-04, 1.20213468e-04,\n",
" 1.24217603e-04, 1.28195263e-04, 1.32601698e-04, 1.37024040e-04,\n",
" 1.41601551e-04, 1.46040276e-04, 1.50733681e-04, 1.55757408e-04,\n",
" 1.61259500e-04, 1.66454641e-04, 1.71895632e-04, 1.77708233e-04,\n",
" 1.83642964e-04, 1.89205204e-04, 1.96337329e-04, 2.02741764e-04,\n",
" 2.09645640e-04, 2.16693513e-04, 2.24207040e-04, 2.31286354e-04,\n",
" 2.39765501e-04, 2.48453390e-04, 2.57145326e-04, 2.65968466e-04,\n",
" 2.75577584e-04, 2.84062074e-04, 2.95482912e-04, 3.06033667e-04,\n",
" 3.17497600e-04, 3.28733326e-04, 3.40423112e-04, 3.52506389e-04,\n",
" 3.66057111e-04, 3.81583016e-04, 3.94688660e-04, 4.10063320e-04,\n",
" 4.25922604e-04, 4.42517466e-04, 4.57764662e-04, 4.78142432e-04,\n",
" 4.98037694e-04, 5.18963640e-04, 5.36697091e-04, 5.60335698e-04,\n",
" 5.81211967e-04, 6.09588297e-04, 6.35729146e-04, 6.63984250e-04,\n",
" 6.89035993e-04, 7.22644955e-04, 7.46619273e-04, 7.87649029e-04,\n",
" 8.26059591e-04, 8.65600875e-04, 9.01608501e-04, 9.45952339e-04,\n",
" 9.80634269e-04, 1.03315761e-03, 1.09605336e-03, 1.14701489e-03,\n",
" 1.20220741e-03, 1.26735637e-03, 1.32163824e-03, 1.37790877e-03,\n",
" 1.48513897e-03, 1.55680460e-03, 1.65580521e-03, 1.72557227e-03,\n",
" 1.81887161e-03, 1.91503606e-03, 2.06661331e-03, 2.18391511e-03,\n",
" 1.56085654e+01],\n",
" [ nan, 1.03584855e-06, 2.35622510e-06, 3.85068392e-06,\n",
" 5.34356085e-06, 6.89390903e-06, 8.47618013e-06, 1.00224437e-05,\n",
" 1.15552839e-05, 1.31321113e-05, 1.47320395e-05, 1.62947927e-05,\n",
" 1.79123917e-05, 1.95306873e-05, 2.11229754e-05, 2.27918726e-05,\n",
" 2.44586743e-05, 2.61303634e-05, 2.78681179e-05, 2.95708419e-05,\n",
" 3.12709193e-05, 3.30245358e-05, 3.48407889e-05, 3.66890108e-05,\n",
" 3.85613504e-05, 4.03798856e-05, 4.22948703e-05, 4.43039951e-05,\n",
" 4.62131213e-05, 4.82416516e-05, 5.03257609e-05, 5.24423448e-05,\n",
" 5.45367343e-05, 5.66827343e-05, 5.89892588e-05, 6.12774193e-05,\n",
" 6.36137802e-05, 6.59642162e-05, 6.83317591e-05, 7.09286266e-05,\n",
" 7.34489069e-05, 7.60901700e-05, 7.88083945e-05, 8.15461799e-05,\n",
" 8.43376711e-05, 8.72558306e-05, 9.02874171e-05, 9.33468983e-05,\n",
" 9.65519789e-05, 9.97323117e-05, 1.02997640e-04, 1.06495279e-04,\n",
" 1.10160541e-04, 1.13888845e-04, 1.17536198e-04, 1.21358381e-04,\n",
" 1.25411835e-04, 1.29406212e-04, 1.33876910e-04, 1.38320374e-04,\n",
" 1.42988577e-04, 1.47496402e-04, 1.52200438e-04, 1.57307911e-04,\n",
" 1.62911843e-04, 1.68127678e-04, 1.73627236e-04, 1.79506490e-04,\n",
" 1.85537191e-04, 1.91214594e-04, 1.98372350e-04, 2.04898845e-04,\n",
" 2.11888427e-04, 2.19030929e-04, 2.26633153e-04, 2.33753835e-04,\n",
" 2.42453592e-04, 2.51264562e-04, 2.59991152e-04, 2.68971715e-04,\n",
" 2.78725727e-04, 2.87414468e-04, 2.98906472e-04, 3.09592411e-04,\n",
" 3.21275013e-04, 3.32720941e-04, 3.44494748e-04, 3.56791126e-04,\n",
" 3.70572291e-04, 3.86426028e-04, 3.99691641e-04, 4.15172202e-04,\n",
" 4.31414538e-04, 4.48469306e-04, 4.63649750e-04, 4.84521756e-04,\n",
" 5.04699182e-04, 5.26129912e-04, 5.44157598e-04, 5.67930522e-04,\n",
" 5.89437385e-04, 6.18404998e-04, 6.44938503e-04, 6.73540287e-04,\n",
" 6.99029407e-04, 7.33827405e-04, 7.57896493e-04, 7.99629059e-04,\n",
" 8.38946115e-04, 8.79377266e-04, 9.16240259e-04, 9.60972430e-04,\n",
" 9.96812598e-04, 1.05053426e-03, 1.11486674e-03, 1.16620650e-03,\n",
" 1.22351931e-03, 1.28977780e-03, 1.34543526e-03, 1.40306303e-03,\n",
" 1.51257305e-03, 1.58664135e-03, 1.68765691e-03, 1.75876899e-03,\n",
" 1.85472382e-03, 1.95403110e-03, 2.10950889e-03, 2.22940464e-03,\n",
" 3.31084773e+01]])\n",
"Coordinates:\n",
" * freq_r (freq_r) float64 nan 0.002653 0.006041 ... 0.4921 0.496 0.5611\n",
"Dimensions without coordinates: d0</pre>"
],
"text/plain": [
"<xarray.DataArray (d0: 2, freq_r: 129)>\n",
"array([[ nan, 1.02835615e-06, 2.33778367e-06, 3.81864467e-06,\n",
" 5.30170468e-06, 6.84168201e-06, 8.40971187e-06, 9.93995266e-06,\n",
" 1.14625226e-05, 1.30325088e-05, 1.46180620e-05, 1.61625380e-05,\n",
" 1.77728986e-05, 1.93802421e-05, 2.09558269e-05, 2.26092455e-05,\n",
" 2.42603022e-05, 2.59281287e-05, 2.76458379e-05, 2.93261907e-05,\n",
" 3.10223385e-05, 3.27593763e-05, 3.45665864e-05, 3.63966206e-05,\n",
" 3.82427434e-05, 4.00607689e-05, 4.19464518e-05, 4.39310840e-05,\n",
" 4.58385178e-05, 4.78427768e-05, 4.99193222e-05, 5.20007729e-05,\n",
" 5.40788129e-05, 5.62227410e-05, 5.84930641e-05, 6.07568318e-05,\n",
" 6.30782956e-05, 6.53998304e-05, 6.77600030e-05, 7.03141443e-05,\n",
" 7.28103831e-05, 7.54407069e-05, 7.81244315e-05, 8.08258524e-05,\n",
" 8.35983414e-05, 8.64807967e-05, 8.95062088e-05, 9.25266361e-05,\n",
" 9.56718799e-05, 9.88210058e-05, 1.02078103e-04, 1.05534213e-04,\n",
" 1.09142731e-04, 1.12814016e-04, 1.16474692e-04, 1.20213468e-04,\n",
" 1.24217603e-04, 1.28195263e-04, 1.32601698e-04, 1.37024040e-04,\n",
" 1.41601551e-04, 1.46040276e-04, 1.50733681e-04, 1.55757408e-04,\n",
" 1.61259500e-04, 1.66454641e-04, 1.71895632e-04, 1.77708233e-04,\n",
" 1.83642964e-04, 1.89205204e-04, 1.96337329e-04, 2.02741764e-04,\n",
" 2.09645640e-04, 2.16693513e-04, 2.24207040e-04, 2.31286354e-04,\n",
" 2.39765501e-04, 2.48453390e-04, 2.57145326e-04, 2.65968466e-04,\n",
" 2.75577584e-04, 2.84062074e-04, 2.95482912e-04, 3.06033667e-04,\n",
" 3.17497600e-04, 3.28733326e-04, 3.40423112e-04, 3.52506389e-04,\n",
" 3.66057111e-04, 3.81583016e-04, 3.94688660e-04, 4.10063320e-04,\n",
" 4.25922604e-04, 4.42517466e-04, 4.57764662e-04, 4.78142432e-04,\n",
" 4.98037694e-04, 5.18963640e-04, 5.36697091e-04, 5.60335698e-04,\n",
" 5.81211967e-04, 6.09588297e-04, 6.35729146e-04, 6.63984250e-04,\n",
" 6.89035993e-04, 7.22644955e-04, 7.46619273e-04, 7.87649029e-04,\n",
" 8.26059591e-04, 8.65600875e-04, 9.01608501e-04, 9.45952339e-04,\n",
" 9.80634269e-04, 1.03315761e-03, 1.09605336e-03, 1.14701489e-03,\n",
" 1.20220741e-03, 1.26735637e-03, 1.32163824e-03, 1.37790877e-03,\n",
" 1.48513897e-03, 1.55680460e-03, 1.65580521e-03, 1.72557227e-03,\n",
" 1.81887161e-03, 1.91503606e-03, 2.06661331e-03, 2.18391511e-03,\n",
" 1.56085654e+01],\n",
" [ nan, 1.03584855e-06, 2.35622510e-06, 3.85068392e-06,\n",
" 5.34356085e-06, 6.89390903e-06, 8.47618013e-06, 1.00224437e-05,\n",
" 1.15552839e-05, 1.31321113e-05, 1.47320395e-05, 1.62947927e-05,\n",
" 1.79123917e-05, 1.95306873e-05, 2.11229754e-05, 2.27918726e-05,\n",
" 2.44586743e-05, 2.61303634e-05, 2.78681179e-05, 2.95708419e-05,\n",
" 3.12709193e-05, 3.30245358e-05, 3.48407889e-05, 3.66890108e-05,\n",
" 3.85613504e-05, 4.03798856e-05, 4.22948703e-05, 4.43039951e-05,\n",
" 4.62131213e-05, 4.82416516e-05, 5.03257609e-05, 5.24423448e-05,\n",
" 5.45367343e-05, 5.66827343e-05, 5.89892588e-05, 6.12774193e-05,\n",
" 6.36137802e-05, 6.59642162e-05, 6.83317591e-05, 7.09286266e-05,\n",
" 7.34489069e-05, 7.60901700e-05, 7.88083945e-05, 8.15461799e-05,\n",
" 8.43376711e-05, 8.72558306e-05, 9.02874171e-05, 9.33468983e-05,\n",
" 9.65519789e-05, 9.97323117e-05, 1.02997640e-04, 1.06495279e-04,\n",
" 1.10160541e-04, 1.13888845e-04, 1.17536198e-04, 1.21358381e-04,\n",
" 1.25411835e-04, 1.29406212e-04, 1.33876910e-04, 1.38320374e-04,\n",
" 1.42988577e-04, 1.47496402e-04, 1.52200438e-04, 1.57307911e-04,\n",
" 1.62911843e-04, 1.68127678e-04, 1.73627236e-04, 1.79506490e-04,\n",
" 1.85537191e-04, 1.91214594e-04, 1.98372350e-04, 2.04898845e-04,\n",
" 2.11888427e-04, 2.19030929e-04, 2.26633153e-04, 2.33753835e-04,\n",
" 2.42453592e-04, 2.51264562e-04, 2.59991152e-04, 2.68971715e-04,\n",
" 2.78725727e-04, 2.87414468e-04, 2.98906472e-04, 3.09592411e-04,\n",
" 3.21275013e-04, 3.32720941e-04, 3.44494748e-04, 3.56791126e-04,\n",
" 3.70572291e-04, 3.86426028e-04, 3.99691641e-04, 4.15172202e-04,\n",
" 4.31414538e-04, 4.48469306e-04, 4.63649750e-04, 4.84521756e-04,\n",
" 5.04699182e-04, 5.26129912e-04, 5.44157598e-04, 5.67930522e-04,\n",
" 5.89437385e-04, 6.18404998e-04, 6.44938503e-04, 6.73540287e-04,\n",
" 6.99029407e-04, 7.33827405e-04, 7.57896493e-04, 7.99629059e-04,\n",
" 8.38946115e-04, 8.79377266e-04, 9.16240259e-04, 9.60972430e-04,\n",
" 9.96812598e-04, 1.05053426e-03, 1.11486674e-03, 1.16620650e-03,\n",
" 1.22351931e-03, 1.28977780e-03, 1.34543526e-03, 1.40306303e-03,\n",
" 1.51257305e-03, 1.58664135e-03, 1.68765691e-03, 1.75876899e-03,\n",
" 1.85472382e-03, 1.95403110e-03, 2.10950889e-03, 2.22940464e-03,\n",
" 3.31084773e+01]])\n",
"Coordinates:\n",
" * freq_r (freq_r) float64 nan 0.002653 0.006041 ... 0.4921 0.496 0.5611\n",
"Dimensions without coordinates: d0"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_isotropic_ps_slope(chunks={'y': None, 'x': None}, other_dim_sizes=[2])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment