-
Notifications
You must be signed in to change notification settings - Fork 0
/
raytr_plot.py
67 lines (46 loc) · 1.59 KB
/
raytr_plot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import numpy as np
import matplotlib.pyplot as plt
from itertools import cycle
import os
r"""
Plots ray traing data (midplane)
"""
plt.figure(figsize=(6,6))
ax = plt.gca()
scale = 5
plt.xlim(-scale,scale)
plt.ylim(-scale,scale)
def main(filename,color="black",label='data',linestyle="-"):
data_type = np.dtype([
('block',bool),
('x',float),
('y',float),
('z',float)
])
data = np.fromfile(filename,dtype=data_type)
indexesToSplit = np.where(data["block"] == True)[0]
splittedBlocks = []
previousIndex = 0
# Separation of different geodesics
for indexToSplit in indexesToSplit:
newData = data[previousIndex+1:indexToSplit]
newData = newData[["x","y","z"]]
splittedBlocks.append(newData)
previousIndex = indexToSplit
nSplittedBlocks = len(splittedBlocks)
for datablock in splittedBlocks[::8]:
ax.plot(datablock["x"], datablock["y"],linestyle,alpha=0.5,color=color)
ax.plot([],[],alpha=0.5,label=label,color=color)
# ==========================================================================
# Configuration of the script
# --------------------------------------------------------------------------
# * (ray-tracing) Data ID (directory)
dataid = "raytr_test1"
# * Root directory where Data ID is located
rootdir = "data/raytr"
# ===========================================================================
for filename in os.listdir(rootdir+"/"+dataid):
if filename.endswith('.dat'):
main(rootdir+"/"+dataid+"/"+filename,label=filename[:-4])
ax.legend(ncol=2,loc=4)
plt.show()