<jupyter_start><jupyter_text>RaDICaL Dataset SDK> The RaDICaL Dataset: A synchronized and calibrated low-level Radar, RGB-D and IMU dataset. ![CI](https://github.com/moodoki/radical_sdk/workflows/CI/badge.svg)                  This is pre-alpha research quality code, and is being actively developed on.Anything may change at anytime. Please check back here often.Bug reports are very much appreciated.  TODO - [x] Radar config reader - [x] Read from aligned H5 dataset - [ ] Read from raw bags (to produce aligned/unaligned H5 datasets) - [x] Polar to Cartesian Projection - [ ] Camera/Radar coordinate transforms  Install `python -m pip install git+https://github.com/moodoki/radical_sdk.git`<jupyter_code>#hide

#For an easier life when developing
%load_ext autoreload
%autoreload 2
#hide

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'  # prevent ugly warnings from cluttering documentation
os.environ['TF_ADDONS_PY_OPS'] = '0'
import tensorflow as tf
tf.get_logger().setLevel('ERROR')<jupyter_output><empty_output><jupyter_text>How to use> Our dataset is distrbuted under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) license. The dataset is currently under review and will be made available soon. DOI: [10.13012/B2IDB-3289560_V1](https://doi.org/10.13012/B2IDB-3289560_V1). Download the dataset at our [project page](https://publish.illinois.edu/radicaldata/).A small sample (50 frames) to try things our can be found [here](https://fireball.teckyianlim.me/file/flaming-cake/indoor_sample_50.h5). [md5sum: b195ff422cc4c979eeb81623899050cb] Reading and displaying depth and RGB is easy<jupyter_code>import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['figure.figsize'] = [10, 20]
from radicalsdk.h5dataset import H5DatasetLoader

data = H5DatasetLoader('../samples/indoor_sample_50.h5')


frame_idx = 1
plt.figure()
plt.imshow(data['rgb'][frame_idx][..., ::-1])
plt.title(f'RGB frame {frame_idx}@{data["rgb_timestamp"][frame_idx]}')
plt.show()
plt.figure()
plt.imshow(data['depth'][frame_idx])
plt.title(f'Depth frame {frame_idx}@{data["depth_timestamp"][frame_idx]}')
plt.show()<jupyter_output><empty_output><jupyter_text>The radar data is a 3D array arranged slow_time, antenna, fast_time.`RadarFrame` encapsulates the necessary processing and saves computation on subsequent callsas steps can be very expensive.<jupyter_code>from radicalsdk.radar.config_v1 import read_radar_params
from radicalsdk.radar.v1 import RadarFrame

# Read config and configure RadarFrame object
radar_config = read_radar_params('../samples/indoor_human_rcs.cfg')
rf = RadarFrame(radar_config)<jupyter_output><empty_output><jupyter_text>Range Azimuth in Polar Coordinates<jupyter_code>plt.figure()
plt.imshow(np.log(np.abs(rf.compute_range_azimuth(data['radar'][1]))))
plt.show()<jupyter_output><empty_output><jupyter_text>Projecting to cartesian<jupyter_code>from radicalsdk.geometry import PolarToCartesianWarp

p2c = PolarToCartesianWarp()

cartesian_radar = p2c(np.abs(rf.range_azimuth_capon)[np.newaxis, ..., np.newaxis])
plt.figure()
with np.errstate(divide='ignore'):
    plt.imshow(np.log(cartesian_radar[0, ...]))
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12027707808564232, 'fraction_numerical': 0.02739294710327456, 'mean_word_length': 6.286697247706422, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 23, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '450715', 'license': 'Apache-2.0', 'n_tokens_mistral': 1159, 'n_tokens_neox': 1084, 'n_words': 253, 'path': 'nbs/index.ipynb', 'repo_name': 'moodoki/radical_sdk', 'size': '3176'}