import radarsimpy
radarsimpy.__version__
'10.0.0'
This is example shows how to use RadarSimPy
to simulate the RCS of an object based on its 3D model.
The Tesla Model S is with .stl
.
import meshio
import plotly.graph_objs as go
from IPython.display import SVG, display
mesh_data = meshio.read('../models/vehicles/lamborgini_aventador.stl')
fig = go.Figure()
fig.add_trace(go.Mesh3d(x=mesh_data.points[:, 0],
y=mesh_data.points[:, 1],
z=mesh_data.points[:, 2],
i=mesh_data.cells[0].data[:, 0],
j=mesh_data.cells[0].data[:, 1],
k=mesh_data.cells[0].data[:, 2],
intensity=mesh_data.points[:, 2],
colorscale='Viridis'
))
fig['layout']['scene']['aspectmode'] = "data"
# fig.show()
display(SVG(fig.to_image(format='svg', scale=1)))
import time
import numpy as np
from radarsimpy.rt import rcs_sbr
phi = np.arange(0, 180, 1)
theta = 90
freq = 76e9
pol = [0, 0, 1]
density = 0.1
rcs = np.zeros_like(phi)
tic = time.time()
for phi_idx, phi_ang in enumerate(phi):
rcs[phi_idx] = 10 * np.log10(
rcs_sbr('../models/vehicles/lamborgini_aventador.stl',
freq,
phi_ang,
theta,
pol=pol,
density=density))
toc = time.time()
print('Exec time :'+str(toc-tic) + 's')
Exec time :120.2574450969696s
fig = go.Figure()
fig.add_trace(go.Scatter(x=phi, y=rcs))
fig.update_layout(
# title='RCS vs Observation Angle',
template="seaborn",
yaxis=dict(title='RCS (dBsm)'),
xaxis=dict(title='Observation angle (Degree)', dtick=20),
)
# fig.show()
display(SVG(fig.to_image(format='svg', scale=1)))
# fig.write_image('car_rcs_vs_angle.svg', height=400, width=600)