23def generate_file(input_fileName, output, xSpace=73, ySpace=128, zSpace=1214, step=2.5, args=None) -> None:
24
25 field = pd.read_csv(input_fileName, skiprows=1, sep=r"\s+", names=["x", "y", "z", "bx", "by", "bz"])
26
27 field_mask = field.copy()
28 field_mask[["bx", "by", "bz"]] = field_mask[["bx", "by", "bz"]] != 0
29
30 field_new = field.copy()
31
32 if args.sidesOnly:
33 temp_by = np.array(field_new["by"]).reshape([xSpace, ySpace, zSpace])
34 temp_by = gaussian_filter(temp_by, sigma=args.sigma)
35 field_new["by"] = temp_by.reshape(-1)
36 field_new["by"] = field_new["by"] * field_mask["by"]
37 rezult = field_new
38 else:
39 field_new[["bx", "by", "bz"]] = 0
40 index_range = np.random.choice(field_new.index, size=args.nCores)
41 field_new.loc[index_range, "by"] = random.uniform(-args.peak, args.peak)
42 temp_by = np.array(field_new["by"]).reshape([xSpace, ySpace, zSpace])
43 temp_by = gaussian_filter(temp_by, sigma=args.sigma)
44 field_new["by"] = temp_by.reshape(-1)
45 field_new["by"] = field_new["by"] / (field_new["by"].abs().max())
46 field_new["by"] = field_new["by"] * field_mask["by"]
47 rezult = field.copy()
48 rezult["by"] = rezult["by"] + rezult["by"] * field_new["by"] * args.fraction
49
50
51
52
53
54 rezult.to_csv(output, sep="\t", header=None, index=None)
55
56