Unlock the Power of Your Data
MathEngine gives you the tools to get the information you need from your data. With many ways to process, analyze, and monitor your data, as well as a team that will work with you and your needs, MathEngine will take you beyond data collection to an intelligent data solution.
$50 /monthfor your entire SensorCloud account
MathEngine provides multiple ways for you to analyze your data. The first is a set of tools that is accessed from the FastGraph interface. This allows you to easily process your data on the fly as you are viewing it. You can generate FFT plots, filter out frequencies, and smooth out noisy data, among other things, to get a better understanding of what your data means. When appropriate, these tools will automatically create a new output channel in the FastGraph viewer. This greatly improves iterative analysis by allowing you to immediately compare the input and output channels.
This tool set also allows you to generate plots from your data. These plots allow you to visualize and understand your data outside of the time series graph. Fast Fourier Transform and Power Spectral Density plots allow you to isolate key frequencies and harmonics picked up by your sensors. A waterfall FFT plot allows you to view frequency changes over time as elements of your system change. Histograms generate a simple visualization of your data set, making it simple to see where the average values and peaks of your data lie.
MathEngine also integrates IPython Notebooks into its cloud service. These Notebooks allow you to write custom Python scripts to process your data, all on the Cloud.
With Matplotlib you can create a wide range of 2d and 3d plots to visualize your data in a meaningful way. By adding titles and text between code blocks, you can create a full report that can be downloaded and shared.
Pull your data down from the Cloud
import MathEngine from matplotlib.pyplot import plot deviceSerial = 'YourDeviceSerial' inSensor = 'sensor1' inChannel = 'channel1' repo = TimeSeriesRepo(deviceSerial) inSeries = repo.getAllTimeSeries( inSensor, inChannel, startTime = 1378334486189250000 ) data = inSeries.getData() print len(data), 'Points' # Slice out the points you want to look at data = data[:60000]
Generate an FFT plot
Find the value at specific frequencies
fft, freq = MathEngine.FFT(data, inSeries.getSampleRate(), xMin=6, xMax=12) plot(freq, fft)
Generate a Waterfall FFT plot
Watch frequency values change over time
fig = plt.figure() MathEngine.waterfallFFT(fig, data[:60000], inSeries.getSampleRate(), segments=10, xMax=12)