28 Generates the body data.
30 y_base = np.zeros(x_axis.shape)
31 nan_array = np.full(x_axis.shape, np.nan)
50 for loc, h, w
in peaks:
51 peak = scipy.stats.norm.pdf(x_axis, loc, w)
52 y_base = y_base + peak * h /max(peak)
55 noise = rng.normal(0, noise_gain, *(x_axis.shape))
57 y_data = y_base + noise
58 y_data = y_data.astype(np.int32)
60 nans_decision = np.random.random(x_axis.shape) > 0.1
61 y_data = np.where(nans_decision, y_data, nan_array)
66 Runs the script and generate demo file.
68 file =
"data/demofile.tsv"
69 if not os.path.exists(os.path.dirname(file)):
70 os.makedirs(os.path.dirname(file))
76 gage_length = 1.3 / 1000
78 start_time = datetime.datetime.now()
82 dt = datetime.timedelta(seconds=1/frequency)
84 duration = datetime.timedelta(seconds=10)
88 rng = np.random.default_rng(seed=0)
89 with open(file,
"w", encoding=
"utf-8")
as f:
90 f.write(
"Test name: Getting Started" +
"\n")
91 f.write(
"Notes: Generated demo file for getting started with fosanalysis" +
"\n")
92 f.write(
"Product: ODiSI 6102" +
"\n")
93 f.write(
"Date: {}".format(start_time.isoformat(sep=
" ")) +
"\n")
94 f.write(
"Timezone: UTC+0" +
"\n")
95 f.write(
"File Type: ODiSI 6xxx Data File" +
"\n")
96 f.write(
"File Version: 7" +
"\n")
97 f.write(
"System Serial Number: 123456789" +
"\n")
98 f.write(
"Software Version: 2.1.0" +
"\n")
99 f.write(
"Hardware Version: 1" +
"\n")
100 f.write(
"Firmware Version: 1.6.6 (08/18/2020)" +
"\n")
101 f.write(
"FPGA Version: v7.3.1-15016 (08/14/2020)" +
"\n")
102 f.write(
"Measurement Rate Per Channel: {} Hz".format(frequency) +
"\n")
103 f.write(
"Gage Pitch (mm): {}".format(gage_length*1000) +
"\n")
104 f.write(
"Standoff Cable Length (m): 50" +
"\n")
105 f.write(
"Temperature offset: 0.0" +
"\n")
106 f.write(
"Performance Mode: Full Optimization" +
"\n")
107 f.write(
"Spatial Average Window Size (gages): 0" +
"\n")
108 f.write(
"Temporal Average Window Size (gages): 0" +
"\n")
109 f.write(
"Channel: 1" +
"\n")
110 f.write(
"Sensor Name: GettingStartedSensor" +
"\n")
111 f.write(
"Sensor Serial Number: FS2022CUSTOM_ 123456789_123456789" +
"\n")
112 f.write(
"Sensor Part Number: CUSTOMER_GENERATED" +
"\n")
113 f.write(
"Sensor Type: Strain" +
"\n")
114 f.write(
"Units: microstrain" +
"\n")
115 f.write(
"x-axis units: m" +
"\n")
116 f.write(
"Length (m): {}".format(end) +
"\n")
117 f.write(
"Patch cord length (m): 0" +
"\n")
118 f.write(
"Key name: " +
"\n")
119 f.write(
"Tare name: " +
"\n")
120 f.write(
"----------------------------------------" +
"\n")
122 print(
"x-axis",
"",
"", *x_axis, sep=
"\t", end=
"\n", file=f)
125 timestamp = start_time
126 while dt * step <= duration:
128 timestamp = start_time + dt * step
129 print(
"{}".format(timestamp.isoformat(sep=
" ")),
"measurement",
"strain", *reading, sep=
"\t", end=
"\n", file=f)