Hi. I'm an REU student assigned to analyze sensor data from an experiment where waves impacted model houses. I'm working on writing code which could generalize it, so in theory you could use it to analyze any type of data, not just related to this experiment (I haven't made it that general yet, but that's mainly because I need to work on this specific project). I have finished writing a very crude version of the program. I'll first list all the specifics of what it can do (this is not that important in terms of the actual working of the code, but I think it might help one get an idea for what it can do):
- A GUI is used to make it more user friendly.
- It can create plots comparing parameters. The title, labels, and legend title (the legend values are automatically generated based on a third parameter) are automatically generated. The user can create their own parameters from data (which are methods in a class), and the program integrates that in.
- It has a constants class in which constants can be added. These include physical constants (g and water density for me), dimensions (of the house and sensor coordinates for me), the directories everything should be saved (more on that next), and the data which I extracted from the raw data (more on that in 7).
- It can automatically save figures in the proper folder and update the figures in a PowerPoint. I haven't gotten around to making it update a Word document, but a quick check online makes me think it's similar to updating a PowerPoint.
- It can automatically produce graphs from the raw data (original data, phase averaged or Fourier transform).
- It can automatically produce some other graphs more specific for me (like comparing wave heights with and without the house in the basin, animations, and uplifts from pressure readings).
- It can automatically generate data based on the raw data (for me things like average wave height for different trials and uplift and moment for different trials). (This has not been customzied yet -- the user cannot create their own ways of extracting data, but that's mainly because that's not very useful for me now).
And this is the basic working behind it:
The interface is very basic, but you are able to make custom constants, custom parameters and your own types of graphs (by this I mean any sort of graph you want using constants and parameters). It works around a class which has Constant properties and methods for creating parameters. They can also open a template function in which they can write code to create their own type of graph, and other code inside the template integrates it with the rest of the program. While right now I'm just changing the class itself (which has all properties and methods), I could imagine having it open a subclass for the user to write in which has stuff more specific to the user (I could also imagine subclasses within subclasses, like wave flume experiments within civil engineering within engineering, but that's just some example -- I don't know how I would implement it yet).
I just want to know if something like this would be useful. If I were to develop it, I would opensource it (I'm definitely not looking to make money from it). Thanks!