{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Reading ADCP Data with MHKiT" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following example demonstrates a simple workflow for analyzing Acoustic Doppler Current Profiler (ADCP) data using MHKiT. MHKiT has brought the DOLfYN codebase in as an MHKiT module for working with ADCP and Acoustic Doppler Velocimeter (ADV) data.\n", "\n", "A typical ADCP data workflow is broken down into\n", " 1. Review the raw data\n", " - Check timestamps\n", " - Calculate/check that the depth bin locations are correct\n", " - Look at velocity, beam amplitude and/or beam correlation data quality\n", " 2. Remove data located above the water surface or below the seafloor\n", " 3. Check for spurious datapoints and remove if necessary\n", " 4. If not already done within the instrument, average the data into time bins of a set time length (normally 5 to 10 min)\n", " 5. Conduct further analysis as required\n", "\n", "Start by importing the necessary tools:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": true }, "outputs": [], "source": [ "from mhkit import dolfyn\n", "from mhkit.dolfyn.adp import api" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Read Raw Instrument Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The core benefit of DOLfYN is that it can read in raw data directly after transferring it off of the ADCP. The ADCP used here is a Nortek Signature1000, with the file extension '.ad2cp'. This specific dataset contains several hours worth of velocity data collected at 1 Hz from the ADCP mounted on a bottom lander in a tidal inlet. \n", "The instruments that DOLfYN supports are listed in the [docs](https://mhkit-software.github.io/MHKiT/mhkit-python/api.dolfyn.html).\n", "\n", "Start by reading in the raw datafile downloaded from the instrument. The `read` function reads the raw file and dumps the information into an xarray Dataset, which contains a few groups of variables:\n", "\n", "1. Velocity in the instrument-saved coordinate system (beam, XYZ, ENU)\n", "2. Beam amplitude and correlation data\n", "3. Measurements of the instrument's bearing and environment\n", "4. Orientation matrices DOLfYN uses for rotating through coordinate frames.\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Indexing data/dolfyn/Sig1000_tidal.ad2cp... Done.\n", "Reading file data/dolfyn/Sig1000_tidal.ad2cp ...\n" ] } ], "source": [ "ds = dolfyn.read('data/dolfyn/Sig1000_tidal.ad2cp')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are two ways to see what's in a Dataset. The first is to simply type the dataset's name to see the standard xarray output. To access a particular variable in a dataset, use dict-style (`ds['vel']`) or attribute-style syntax (`ds.vel`). See the [xarray docs](http://xarray.pydata.org/en/stable/getting-started-guide/quick-overview.html) for more details on how to use the xarray format." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
<xarray.Dataset>\n", "Dimensions: (time: 55000, time_b5: 55000, dirIMU: 3, range_b5: 28, beam: 4, range: 28, dir: 4, earth: 3, inst: 3, q: 4, x: 4, x*: 4)\n", "Coordinates:\n", " * time (time) datetime64[ns] 2020-08-15T00:20:00.500999 ......\n", " * time_b5 (time_b5) datetime64[ns] 2020-08-15T00:20:00.438499 ...\n", " * dirIMU (dirIMU) <U1 'E' 'N' 'U'\n", " * range_b5 (range_b5) float64 0.6 1.1 1.6 2.1 ... 13.1 13.6 14.1\n", " * beam (beam) int32 1 2 3 4\n", " * range (range) float64 0.6 1.1 1.6 2.1 ... 12.6 13.1 13.6 14.1\n", " * dir (dir) <U2 'E' 'N' 'U1' 'U2'\n", " * earth (earth) <U1 'E' 'N' 'U'\n", " * inst (inst) <U1 'X' 'Y' 'Z'\n", " * q (q) <U1 'w' 'x' 'y' 'z'\n", " * x (x) int32 1 2 3 4\n", " * x* (x*) int32 1 2 3 4\n", "Data variables: (12/38)\n", " c_sound (time) float32 1.502e+03 1.502e+03 ... 1.498e+03\n", " temp (time) float32 14.55 14.55 14.55 ... 13.47 13.47 13.47\n", " pressure (time) float32 9.713 9.718 9.718 ... 9.596 9.594 9.596\n", " mag (dirIMU, time) float32 72.5 72.7 72.6 ... -197.2 -195.7\n", " accel (dirIMU, time) float32 -0.00479 -0.01437 ... 9.729\n", " batt (time) float32 16.6 16.6 16.6 16.6 ... 16.4 16.4 15.2\n", " ... ...\n", " telemetry_data (time) uint8 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0\n", " boost_running (time) uint8 0 0 0 0 0 0 0 0 1 0 ... 0 1 0 0 0 0 0 0 1\n", " heading (time) float32 -12.52 -12.51 -12.51 ... -12.52 -12.5\n", " pitch (time) float32 -0.065 -0.06 -0.06 ... -0.06 -0.05 -0.05\n", " roll (time) float32 -7.425 -7.42 -7.42 ... -6.45 -6.45 -6.45\n", " beam2inst_orientmat (x, x*) float32 1.183 0.0 -1.183 ... 0.5518 0.0 0.5518\n", "Attributes: (12/33)\n", " filehead_config: {'CLOCKSTR': {'TIME': '"2020-08-13 13:56:21"'}, 'I...\n", " inst_model: Signature1000\n", " inst_make: Nortek\n", " inst_type: ADCP\n", " rotate_vars: ['vel', 'accel', 'accel_b5', 'angrt', 'angrt_b5', ...\n", " burst_config: {'press_valid': True, 'temp_valid': True, 'compass...\n", " ... ...\n", " proc_idle_less_3pct: 0\n", " proc_idle_less_6pct: 0\n", " proc_idle_less_12pct: 0\n", " coord_sys: earth\n", " has_imu: 1\n", " fs: 1
array(['2020-08-15T00:20:00.500999000', '2020-08-15T00:20:01.501100000',\n", " '2020-08-15T00:20:02.500999000', ..., '2020-08-15T15:36:37.500999000',\n", " '2020-08-15T15:36:38.500999000', '2020-08-15T15:36:39.500999000'],\n", " dtype='datetime64[ns]')
array(['2020-08-15T00:20:00.438499000', '2020-08-15T00:20:01.438499000',\n", " '2020-08-15T00:20:02.438499000', ..., '2020-08-15T15:36:37.438499000',\n", " '2020-08-15T15:36:38.438499000', '2020-08-15T15:36:39.438499000'],\n", " dtype='datetime64[ns]')
array(['E', 'N', 'U'], dtype='<U1')
array([ 0.6, 1.1, 1.6, 2.1, 2.6, 3.1, 3.6, 4.1, 4.6, 5.1, 5.6, 6.1,\n", " 6.6, 7.1, 7.6, 8.1, 8.6, 9.1, 9.6, 10.1, 10.6, 11.1, 11.6, 12.1,\n", " 12.6, 13.1, 13.6, 14.1])
array([1, 2, 3, 4])
array([ 0.6, 1.1, 1.6, 2.1, 2.6, 3.1, 3.6, 4.1, 4.6, 5.1, 5.6, 6.1,\n", " 6.6, 7.1, 7.6, 8.1, 8.6, 9.1, 9.6, 10.1, 10.6, 11.1, 11.6, 12.1,\n", " 12.6, 13.1, 13.6, 14.1])
array(['E', 'N', 'U1', 'U2'], dtype='<U2')
array(['E', 'N', 'U'], dtype='<U1')
array(['X', 'Y', 'Z'], dtype='<U1')
array(['w', 'x', 'y', 'z'], dtype='<U1')
array([1, 2, 3, 4])
array([1, 2, 3, 4])
array([1501.9, 1501.9, 1501.9, ..., 1498.4, 1498.3, 1498.3], dtype=float32)
array([14.55, 14.55, 14.55, ..., 13.47, 13.47, 13.47], dtype=float32)
array([9.713, 9.718, 9.718, ..., 9.596, 9.594, 9.596], dtype=float32)
array([[ 72.5, 72.7, 72.6, ..., 72.3, 72.8, 72.4],\n", " [ 9.3, 9.4, 8.9, ..., 5.9, 6.3, 6.4],\n", " [-198. , -196.3, -198.1, ..., -197.4, -197.2, -195.7]],\n", " dtype=float32)
array([[-4.7900393e-03, -1.4370117e-02, -2.3950195e-02, ...,\n", " -1.4370117e-02, -4.7900393e-03, -2.3950195e-02],\n", " [-1.2933105e+00, -1.2549902e+00, -1.2645704e+00, ...,\n", " -1.1017090e+00, -1.0873389e+00, -1.0969189e+00],\n", " [ 9.7285690e+00, 9.7141991e+00, 9.7237797e+00, ...,\n", " 9.6710892e+00, 9.6854591e+00, 9.7285690e+00]], dtype=float32)
array([16.6, 16.6, 16.6, ..., 16.4, 16.4, 15.2], dtype=float32)
array([20. , 20. , 20. , ..., 19.5, 19.5, 19.5], dtype=float32)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint16)
array([1053556738, 1053556738, 1053556738, ..., 1053556738, 1053556738,\n", " 1053557762], dtype=uint32)
array([ 1, 2, 3, ..., 54998, 54999, 55000], dtype=uint32)
array([[[-0.015, -0.048, 0.008, ..., -0.176, -0.071, -0.027],\n", " [-0.093, -0.124, -0.031, ..., -0.175, -0.16 , -0.03 ],\n", " [-0.163, -0.135, -0.105, ..., -0.129, -0.089, -0.116],\n", " ...,\n", " [-0.169, -0.013, -0.124, ..., -0.062, 0.091, -0.009],\n", " [-0.16 , -0.043, -0.111, ..., 0.012, 0.089, 0.021],\n", " [-0.158, -0.057, -0.13 , ..., -0.055, 0.104, 0.013]],\n", "\n", " [[ 0.243, 0.204, 0.234, ..., -0.163, -0.135, -0.18 ],\n", " [ 0.272, 0.248, 0.236, ..., -0.254, -0.169, -0.204],\n", " [ 0.257, 0.294, 0.333, ..., -0.299, -0.226, -0.273],\n", " ...,\n", " [ 0.305, 0.377, 0.283, ..., -0.198, -0.229, -0.121],\n", " [ 0.328, 0.33 , 0.294, ..., -0.161, -0.292, -0.103],\n", " [ 0.31 , 0.314, 0.226, ..., -0.219, -0.292, -0.049]],\n", "\n", " [[ 0.016, 0.012, 0.01 , ..., 0.009, 0.006, -0.018],\n", " [ 0.01 , 0.011, -0.013, ..., 0.002, -0.027, 0.009],\n", " [ 0.01 , 0.009, 0.023, ..., -0.018, -0.002, -0.024],\n", " ...,\n", " [ 0.034, -0.061, -0.024, ..., -0.014, 0.086, 0.01 ],\n", " [ 0.032, -0.04 , -0.027, ..., -0.014, 0.063, -0.01 ],\n", " [ 0.004, -0.037, -0.018, ..., -0.001, 0.059, 0.021]],\n", "\n", " [[ 0.003, -0.007, 0.046, ..., -0.032, -0.008, -0.029],\n", " [ 0.017, 0.033, 0.035, ..., -0.016, -0.022, -0.034],\n", " [ 0.016, -0.012, 0.005, ..., 0.002, -0.045, -0.026],\n", " ...,\n", " [-0.044, 0.015, -0.04 , ..., -0.015, 0.006, 0.012],\n", " [-0.013, 0.014, -0.032, ..., 0.01 , 0. , -0.015],\n", " [ 0.007, 0.016, -0.027, ..., -0.002, -0.015, -0.012]]],\n", " dtype=float32)
array([[[81. , 80. , 80.5, ..., 81.5, 81.5, 81.5],\n", " [75. , 74.5, 75. , ..., 79. , 77. , 77.5],\n", " [73.5, 72. , 72. , ..., 75. , 74.5, 75. ],\n", " ...,\n", " [54.5, 55.5, 54.5, ..., 50. , 50. , 49.5],\n", " [53.5, 54.5, 54.5, ..., 46.5, 47. , 46.5],\n", " [53. , 54. , 53. , ..., 45. , 46. , 44.5]],\n", "\n", " [[81.5, 80. , 80.5, ..., 82. , 81.5, 82. ],\n", " [76. , 77. , 76.5, ..., 79. , 77.5, 77.5],\n", " [73.5, 74. , 73. , ..., 75.5, 74.5, 74.5],\n", " ...,\n", " [57. , 58.5, 58. , ..., 53.5, 52. , 52.5],\n", " [55.5, 56.5, 55.5, ..., 50. , 49. , 49. ],\n", " [52.5, 54. , 54. , ..., 47.5, 47.5, 47. ]],\n", "\n", " [[80.5, 79.5, 80. , ..., 81.5, 82.5, 81.5],\n", " [76. , 75.5, 75. , ..., 77. , 78.5, 77. ],\n", " [72. , 73.5, 72. , ..., 74. , 75. , 73.5],\n", " ...,\n", " [56.5, 56.5, 57. , ..., 47.5, 47. , 48. ],\n", " [56. , 55.5, 56.5, ..., 46.5, 47. , 47. ],\n", " [54.5, 54. , 55.5, ..., 45. , 45.5, 45.5]],\n", "\n", " [[80. , 81. , 80. , ..., 81. , 81. , 81.5],\n", " [75.5, 75.5, 74.5, ..., 76.5, 76.5, 77.5],\n", " [73. , 72.5, 73. , ..., 75.5, 74.5, 74. ],\n", " ...,\n", " [51.5, 51. , 51. , ..., 46. , 46. , 45. ],\n", " [51. , 50. , 51. , ..., 45. , 44. , 43.5],\n", " [50.5, 49.5, 50. , ..., 43.5, 42.5, 42. ]]], dtype=float32)
array([[[100, 91, 91, ..., 89, 90, 96],\n", " [ 74, 92, 96, ..., 100, 97, 100],\n", " [100, 100, 99, ..., 99, 100, 100],\n", " ...,\n", " [ 99, 100, 100, ..., 96, 96, 99],\n", " [ 99, 97, 100, ..., 94, 97, 96],\n", " [ 98, 100, 100, ..., 100, 100, 98]],\n", "\n", " [[ 94, 90, 89, ..., 91, 92, 90],\n", " [ 94, 100, 100, ..., 96, 100, 93],\n", " [ 99, 95, 97, ..., 98, 98, 100],\n", " ...,\n", " [100, 100, 100, ..., 98, 99, 100],\n", " [ 99, 100, 99, ..., 97, 94, 94],\n", " [ 96, 99, 96, ..., 97, 100, 97]],\n", "\n", " [[ 92, 93, 93, ..., 93, 97, 89],\n", " [ 99, 100, 99, ..., 96, 88, 98],\n", " [ 97, 100, 98, ..., 100, 99, 97],\n", " ...,\n", " [100, 100, 99, ..., 97, 94, 95],\n", " [100, 100, 100, ..., 96, 100, 100],\n", " [100, 100, 100, ..., 96, 95, 94]],\n", "\n", " [[ 87, 97, 87, ..., 91, 87, 90],\n", " [100, 93, 93, ..., 96, 96, 97],\n", " [100, 100, 100, ..., 100, 100, 97],\n", " ...,\n", " [100, 99, 96, ..., 98, 100, 100],\n", " [100, 100, 100, ..., 94, 93, 95],\n", " [100, 98, 99, ..., 98, 98, 96]]], dtype=uint8)
array([[[-2.16688156e-01, -2.16397047e-01, -2.16593146e-01, ...,\n", " -2.16118217e-01, -2.16699123e-01, -2.16318965e-01],\n", " [ 9.76196468e-01, 9.76219118e-01, 9.76202846e-01, ...,\n", " 9.76315439e-01, 9.76210594e-01, 9.76245522e-01],\n", " [-1.22870505e-03, -1.20262802e-03, -1.17563456e-03, ...,\n", " -1.16243958e-03, -1.02279335e-03, -9.55920666e-04]],\n", "\n", " [[-9.67970312e-01, -9.68004048e-01, -9.67982769e-01, ...,\n", " -9.70095694e-01, -9.69992876e-01, -9.70033050e-01],\n", " [-2.15024590e-01, -2.14734554e-01, -2.14924574e-01, ...,\n", " -2.14874983e-01, -2.15436578e-01, -2.15052128e-01],\n", " [-1.29278094e-01, -1.29190803e-01, -1.29239410e-01, ...,\n", " -1.12442717e-01, -1.12462208e-01, -1.12422116e-01]],\n", "\n", " [[-1.26469478e-01, -1.26385525e-01, -1.26422524e-01, ...,\n", " -1.10033900e-01, -1.10009573e-01, -1.09963998e-01],\n", " [-2.68291458e-02, -2.68030688e-02, -2.68616974e-02, ...,\n", " -2.31788009e-02, -2.33813375e-02, -2.34001204e-02],\n", " [ 9.91607308e-01, 9.91618454e-01, 9.91612315e-01, ...,\n", " 9.93657291e-01, 9.93655324e-01, 9.93659675e-01]]],\n", " dtype=float32)
array([[-0.00195312, -0.00195312, -0.00195312, ..., -0.00390625,\n", " -0.00292969, -0.00195312],\n", " [ 0.00097656, 0. , 0. , ..., 0. ,\n", " 0.00097656, 0.00097656],\n", " [-0.00292969, -0.00292969, -0.00292969, ..., -0.00292969,\n", " -0.00195312, -0.00292969]], dtype=float32)
array([[ 0.6244507 , 0.62454224, 0.6244812 , ..., 0.625 ,\n", " 0.6247864 , 0.62490845],\n", " [-0.04101562, -0.04098511, -0.04098511, ..., -0.03570557,\n", " -0.03564453, -0.03561401],\n", " [-0.05014038, -0.05010986, -0.05014038, ..., -0.04354858,\n", " -0.04360962, -0.04360962],\n", " [ 0.77835083, 0.7782593 , 0.7783203 , ..., 0.77856445,\n", " 0.77874756, 0.7786255 ]], dtype=float32)
array([12.8, 12.8, 12.8, ..., 12. , 12. , 12. ], dtype=float32)
array([243, 243, 243, ..., 246, 246, 246], dtype=uint16)
array([[ 72.9, 72.8, 72.4, ..., 73. , 73. , 72.7],\n", " [ 9.5, 9.5, 9.8, ..., 6. , 6.4, 5.9],\n", " [-197.1, -197.2, -197.7, ..., -197.4, -198. , -195.7]],\n", " dtype=float32)
array([[-1.4370117e-02, 0.0000000e+00, -1.4370117e-02, ...,\n", " -4.7900393e-03, -1.9160157e-02, -1.4370117e-02],\n", " [-1.2693603e+00, -1.2885205e+00, -1.2837305e+00, ...,\n", " -1.0825489e+00, -1.1017090e+00, -1.1064991e+00],\n", " [ 9.7189894e+00, 9.7046194e+00, 9.7094088e+00, ...,\n", " 9.7141991e+00, 9.7094088e+00, 9.7237797e+00]], dtype=float32)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint16)
array([1053556738, 1053556738, 1053556738, ..., 1053556738, 1053556738,\n", " 1053557762], dtype=uint32)
array([ 1, 2, 3, ..., 54998, 54999, 55000], dtype=uint32)
array([[ 0.003, 0.021, 0.018, ..., 0. , -0.044, 0.009],\n", " [ 0.057, 0.034, 0.017, ..., 0.01 , 0.001, -0.002],\n", " [ 0.039, 0.022, 0.02 , ..., 0.039, -0.008, 0.018],\n", " ...,\n", " [-0.036, -0.013, 0.058, ..., 0.058, -0.013, 0.028],\n", " [-0.043, -0.009, 0.028, ..., 0.092, -0.021, 0.019],\n", " [-0.073, 0.003, 0. , ..., 0.049, -0.048, 0.09 ]],\n", " dtype=float32)
array([[80.5, 80.5, 80. , ..., 82. , 81.5, 81. ],\n", " [75.5, 76.5, 76. , ..., 78.5, 78. , 77.5],\n", " [72.5, 73.5, 73.5, ..., 75. , 76.5, 75.5],\n", " ...,\n", " [57.5, 57.5, 57. , ..., 49. , 49. , 48.5],\n", " [56.5, 57. , 56. , ..., 47.5, 48. , 48. ],\n", " [55.5, 55.5, 55. , ..., 46.5, 46. , 47.5]], dtype=float32)
array([[ 98, 100, 92, ..., 88, 90, 91],\n", " [ 97, 94, 98, ..., 97, 95, 97],\n", " [100, 100, 100, ..., 93, 100, 96],\n", " ...,\n", " [100, 100, 100, ..., 100, 100, 98],\n", " [100, 100, 100, ..., 99, 100, 98],\n", " [100, 100, 100, ..., 99, 94, 100]], dtype=uint8)
array([[[-2.16694236e-01, -2.16498137e-01, -2.16593146e-01, ...,\n", " -2.16118217e-01, -2.16699123e-01, -2.16318965e-01],\n", " [-9.67967808e-01, -9.68039632e-01, -9.68030274e-01, ...,\n", " -9.70095694e-01, -9.69992876e-01, -9.70033050e-01],\n", " [-1.26507595e-01, -1.26426160e-01, -1.26425594e-01, ...,\n", " -1.10033900e-01, -1.10009573e-01, -1.09963998e-01]],\n", "\n", " [[ 9.76198971e-01, 9.76259708e-01, 9.76250350e-01, ...,\n", " 9.76315439e-01, 9.76210594e-01, 9.76245522e-01],\n", " [-2.15024590e-01, -2.14829564e-01, -2.14924574e-01, ...,\n", " -2.14874983e-01, -2.15436578e-01, -2.15052128e-01],\n", " [-2.68766508e-02, -2.68536285e-02, -2.68591940e-02, ...,\n", " -2.31788009e-02, -2.33813375e-02, -2.34001204e-02]],\n", "\n", " [[-1.19058788e-03, -1.16700679e-03, -1.17257237e-03, ...,\n", " -1.16243958e-03, -1.02279335e-03, -9.55920666e-04],\n", " [-1.29325598e-01, -1.29241347e-01, -1.29241914e-01, ...,\n", " -1.12442717e-01, -1.12462208e-01, -1.12422116e-01],\n", " [ 9.91601229e-01, 9.91612315e-01, 9.91612315e-01, ...,\n", " 9.93657291e-01, 9.93655324e-01, 9.93659675e-01]]],\n", " dtype=float32)
array([[-0.00195312, -0.00195312, -0.00195312, ..., -0.00097656,\n", " -0.00195312, -0.00390625],\n", " [ 0. , 0. , 0.00097656, ..., 0.00097656,\n", " 0. , 0.00097656],\n", " [-0.00292969, -0.00292969, -0.00292969, ..., -0.00292969,\n", " -0.00292969, -0.00195312]], dtype=float32)
array([[ 0.6244507 , 0.62454224, 0.6245117 , ..., 0.625 ,\n", " 0.6247864 , 0.62490845],\n", " [-0.04101562, -0.04098511, -0.04098511, ..., -0.03570557,\n", " -0.03564453, -0.03561401],\n", " [-0.0501709 , -0.05014038, -0.05014038, ..., -0.04354858,\n", " -0.04360962, -0.04360962],\n", " [ 0.77835083, 0.7782898 , 0.7783203 , ..., 0.77856445,\n", " 0.77874756, 0.7786255 ]], dtype=float32)
array([65, 65, 65, ..., 65, 65, 65], dtype=uint16)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint8)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint8)
array([0, 0, 0, ..., 0, 0, 0], dtype=uint8)
array([0, 0, 0, ..., 0, 0, 1], dtype=uint8)
array([-12.52 , -12.505001, -12.51 , ..., -12.490002, -12.52 ,\n", " -12.500001], dtype=float32)
array([-0.065, -0.06 , -0.06 , ..., -0.06 , -0.05 , -0.05 ], dtype=float32)
array([-7.4250007, -7.42 , -7.42 , ..., -6.45 , -6.45 ,\n", " -6.45 ], dtype=float32)
array([[ 1.1831, 0. , -1.1831, 0. ],\n", " [ 0. , -1.1831, 0. , 1.1831],\n", " [ 0.5518, 0. , 0.5518, 0. ],\n", " [ 0. , 0.5518, 0. , 0.5518]], dtype=float32)