Waveform Classes/Properties - Where should waveforms live?
Since we are restructuring the package to have a SimPEG-like organization, we should define and implement waveforms in the same manner.
Original Structure
Simple Waveforms: For simple waveforms, a set of functions were defined in Waveform.py. The user would enter the on-times and parameters, and the function would return the on-time currents. The user would then define the waveform as part of the properties of a TD survey object.
Known Waveform: Some known waveforms (e.g. SkyTEM HM 2015) are defined in KnownWaveforms.py. Calling one of the functions will return a variable with all the waveform information
Known Systems: Some known systems (e.g. SkyTEM HM) are defined in KnownSystems.py. This will return an object with comprehensive definition of the waveform.
Future Considerations
Some things we should think about:
-
Should the waveform properties be defined as properties of a TEM source object? Or should we design a waveform class and let the waveform be a single required property of the TEM source object? The latter is done in SimPEG for TEM problems.
-
Creating a set of utilities for generating custom and standard waveforms