IQEngine has been moved to https://github.com/IQEngine/IQEngine
microsoft / iqengine Goto Github PK
View Code? Open in Web Editor NEWImproving Storage, Visualization, Annotation, and Sharing of RF Recordings by Leveraging Azure and SigMF
Improving Storage, Visualization, Annotation, and Sharing of RF Recordings by Leveraging Azure and SigMF
IQEngine has been moved to https://github.com/IQEngine/IQEngine
The spectrogram generator Azure Function only currently only supports blob files directly in a storage container, not if they are located in subdirectories. This task is to add support for blob files uploaded in subdirectories in the storage container.
Starting point: src/Utils/create_thumbnails.py
Create a new version of the script that uses a given local directory instead of blob storage. The code should go through all the files in the directory, process and create a .png for each meta/data file pair it finds (not including subdirs). It should replace any existing .png in the dir.
Add a loader when:
Marc will provide an example SigMF metadata file, which is json, and you will parse it into python
Print the number of annotations
The purpose of this task is to expand the SigMF example repo by maintaining an interesting dataset for testing and demo purposes.
Add a dropdown and new state for "window type", it needs to get passed into selector, and witin selector you either run the hamming window code (code line 79 to 81) or for no window dont run that code
We need to add a loader to the File Browser component so once a user clicks on the Browse button, the user can see the data loading while the data is downloaded from the blob and rendered
Current color of the arrows is black, and since the background is dark grey, it's hard to see them. We should change the color to a more visible one
Constraints:
Plan:
This task adds support for files in subdirectories in a given local directory.
On the spectrogram page, next to the download button, make a new button called Save, and have it disabled if the storage account is read-only, and you can figure that out using code that already exists here https://github.com/microsoft/IQEngine/blob/main/src/Components/FileBrowser/AzureBlobBrowser.js#L32 but you'll want to copy that line of code to the spectrogram page, becuase the SAS token is already in the connection state on spectrogram page
For now, the Save button is just UI, it doesn't do anything when you click on it, but it should still get disabled if its a read-only blob
Make download button on right side (float right)
Convert from text Download/Save to an icon like an arrow and a check mark, but make the alt-text (hover over) say download and save
Function should be triggered when a recording gets uploaded to blob storage.
Functionality includes inserting metadata into MongoDB.
Function should be triggered when a blob gets uploaded to storage account.
Functionality includes:
Add a button right below magnitude min and max inputs, where when you click on it, it looks at the samples that have been downloaded and processed (window.fft_data, which is a 1D array of integers between 0 and 255) and it looks for the minimum value, maximum value, and sets the magnitude-min and maxnitude-max to each one. So if my highest value in window.fft_data is 245 then when I click the autoscale button, it will set magnitude max to 245, and the same with magnitude min except the min value of window.fft_data.
start/stop sample, and start/stop freq and description will always be there, other fields may or may not. so you could start with a table that only includes the 5 we know are there, then think of some way to show the rest (e.g. a column called other that is a json obj or stringified json)
add a column next to the author section in the recording browser labeled "email" where it will display the email of the author and "none" if there is no email. add email section under the author's name in the info section for the side panel
Use draw.io to make a .drawio.png file that shows how all our azure services relate. So one azure function that triggers off blob storage, and parses metadata into cosmosdb. Then another azure function that triggers off blob storage and creates a spectrogram thumbnail that gets inserted back into blob storage. And show our web app, which is hosted with an app service, uses blob storage.
Maheen is an expert with draw.io
should be able to display several storage acounts, we can give credentials for a 2nd one for testing sake. dont worry about the secrets being stored in state for now.
When you finish dragging a corner of a rectangle, update the local state (meta.annotations)
We'll have to do the opposite math to convert from canvas coords to annotation fields.
On the InfoPane on the Spectrogram page, make all the fields editable and add a right arrow. When clicked on the arrow, meta in the spectrogram page will update
Create a nav bar that has two tags: home and about which route to their corresponding pages
both mags should be between 0 and 255, and they are integers
fft size should be a power of 2, at least 64, no max
You'll create all the resources in a new resource group, configure them all, then download the template. Might not include 100% of the configuration you do, like the code isnt going to be there
Currently the local spectrogram generator script processes each file in the given directory, so if there is a sigmf pair (meta & data), the image for that pair gets created twice.
Right now we have hamming and none. Rename "none" to "rectangle". Then add these other windowing functions using haming as the example:
hanning: https://numpy.org/doc/stable/reference/generated/numpy.hanning.html
barttlet: https://numpy.org/doc/stable/reference/generated/numpy.bartlett.html#numpy.bartlett
blackman: https://numpy.org/doc/stable/reference/generated/numpy.blackman.html#numpy.blackman
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.