你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-07 23:14:03 +08:00
Removed 0.5mm & 1mm resolutions for 400MHz model as not valid anymore.
这个提交包含在:
@@ -420,12 +420,12 @@ def antenna_like_GSSI_1500(x, y, z, resolution=0.001, **kwargs):
|
|||||||
return scene_objects
|
return scene_objects
|
||||||
|
|
||||||
|
|
||||||
def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
|
def antenna_like_GSSI_400(x, y, z, resolution=0.002, **kwargs):
|
||||||
"""Inserts a description of an antenna similar to the GSSI 400MHz antenna.
|
"""Inserts a description of an antenna similar to the GSSI 400MHz antenna.
|
||||||
This model represents an update to the previous model of the GSSI 400MHz
|
This model represents an update to the previous model of the GSSI 400MHz
|
||||||
antenna and was created and optimised by Stadler et al. (2022)
|
antenna and was created and optimised by Stadler et al. (2022)
|
||||||
in: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9686638.
|
in: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9686638.
|
||||||
Can be used with 0.5mm, 1mm (default) or 2mm spatial resolution.
|
Can be used with 2mm spatial resolution.
|
||||||
The external dimensions of the antenna are 300x300x178mm.
|
The external dimensions of the antenna are 300x300x178mm.
|
||||||
One output point is defined between the arms of the receiver bowtie.
|
One output point is defined between the arms of the receiver bowtie.
|
||||||
The bowties are aligned with the y axis so the output is the y component
|
The bowties are aligned with the y axis so the output is the y component
|
||||||
@@ -451,7 +451,6 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
|
|||||||
casesize = (0.3, 0.3, 0.178) # original
|
casesize = (0.3, 0.3, 0.178) # original
|
||||||
casethickness = 0.002
|
casethickness = 0.002
|
||||||
shieldthickness = 0.002
|
shieldthickness = 0.002
|
||||||
foamsurroundthickness = 0.003
|
|
||||||
pcbthickness = 0.002
|
pcbthickness = 0.002
|
||||||
bowtiebase = 0.06
|
bowtiebase = 0.06
|
||||||
bowtieheight = 0.06 # original 0.056
|
bowtieheight = 0.06 # original 0.056
|
||||||
@@ -488,25 +487,12 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
|
|||||||
# Coordinates of source excitation point in antenna
|
# Coordinates of source excitation point in antenna
|
||||||
tx = x + 0.01 + 0.005 + 0.056, y + casethickness + 0.005 + 0.143, z + skidthickness
|
tx = x + 0.01 + 0.005 + 0.056, y + casethickness + 0.005 + 0.143, z + skidthickness
|
||||||
|
|
||||||
if resolution == 0.0005:
|
dx = 0.002
|
||||||
dx = 0.0005
|
dy = 0.002
|
||||||
dy = 0.0005
|
dz = 0.002
|
||||||
dz = 0.0005
|
foamsurroundthickness = 0.002
|
||||||
tx = x + 0.01 + 0.005 + 0.056, y + casethickness + 0.005 + 0.1435, z + skidthickness
|
metalboxheight = 0.088
|
||||||
elif resolution == 0.001:
|
tx = x + 0.01 + 0.004 + 0.056, y + casethickness + 0.005 + 0.143 - 0.002, z + skidthickness - 0.002
|
||||||
dx = 0.001
|
|
||||||
dy = 0.001
|
|
||||||
dz = 0.001
|
|
||||||
elif resolution == 0.002:
|
|
||||||
dx = 0.002
|
|
||||||
dy = 0.002
|
|
||||||
dz = 0.002
|
|
||||||
foamsurroundthickness = 0.002
|
|
||||||
metalboxheight = 0.088
|
|
||||||
tx = x + 0.01 + 0.004 + 0.056, y + casethickness + 0.005 + 0.143 - 0.002, z + skidthickness - 0.002
|
|
||||||
else:
|
|
||||||
logger.exception("This antenna module can only be used with a spatial discretisation of 0.5mm, 1mm, 2mm")
|
|
||||||
raise ValueError
|
|
||||||
|
|
||||||
# Material definitions
|
# Material definitions
|
||||||
absorber = gprMax.Material(er=absorberEr, se=absorbersig, mr=1, sm=0, id="absorber")
|
absorber = gprMax.Material(er=absorberEr, se=absorbersig, mr=1, sm=0, id="absorber")
|
||||||
@@ -565,68 +551,25 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
|
|||||||
scene_objects.extend((b1, b2, b3, b4, b5))
|
scene_objects.extend((b1, b2, b3, b4, b5))
|
||||||
|
|
||||||
# PCB
|
# PCB
|
||||||
if resolution == 0.0005:
|
b6 = gprMax.Box(
|
||||||
b6 = gprMax.Box(
|
p1=(x + 0.01 + 0.005 + 0.017, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
|
||||||
p1=(x + 0.01 + 0.005 + 0.018, y + casethickness + 0.005 + 0.0235, z + skidthickness),
|
p2=(
|
||||||
p2=(
|
x + 0.01 + 0.005 + 0.033 + bowtiebase,
|
||||||
x + 0.01 + 0.005 + 0.034 + bowtiebase,
|
y + casethickness + 0.006 + 0.202 + patchheight,
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
z + skidthickness + pcbthickness - 0.002,
|
||||||
z + skidthickness + pcbthickness,
|
),
|
||||||
),
|
material_id="pcb",
|
||||||
material_id="pcb",
|
)
|
||||||
)
|
b7 = gprMax.Box(
|
||||||
b7 = gprMax.Box(
|
p1=(x + 0.01 + 0.005 + 0.179, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
|
||||||
p1=(x + 0.01 + 0.005 + 0.178, y + casethickness + 0.005 + 0.0235, z + skidthickness),
|
p2=(
|
||||||
p2=(
|
x + 0.01 + 0.005 + 0.195 + bowtiebase,
|
||||||
x + 0.01 + 0.005 + 0.194 + bowtiebase,
|
y + casethickness + 0.006 + 0.202 + patchheight,
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
z + skidthickness + pcbthickness - 0.002,
|
||||||
z + skidthickness + pcbthickness,
|
),
|
||||||
),
|
material_id="pcb",
|
||||||
material_id="pcb",
|
)
|
||||||
)
|
scene_objects.extend((b6, b7))
|
||||||
scene_objects.extend((b6, b7))
|
|
||||||
|
|
||||||
elif resolution == 0.001:
|
|
||||||
b6 = gprMax.Box(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.018, y + casethickness + 0.005 + 0.023, z + skidthickness),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.034 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
|
||||||
z + skidthickness + pcbthickness,
|
|
||||||
),
|
|
||||||
material_id="pcb",
|
|
||||||
)
|
|
||||||
b7 = gprMax.Box(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.178, y + casethickness + 0.005 + 0.023, z + skidthickness),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.194 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
|
||||||
z + skidthickness + pcbthickness,
|
|
||||||
),
|
|
||||||
material_id="pcb",
|
|
||||||
)
|
|
||||||
scene_objects.extend((b6, b7))
|
|
||||||
|
|
||||||
elif resolution == 0.002:
|
|
||||||
b6 = gprMax.Box(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.017, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.033 + bowtiebase,
|
|
||||||
y + casethickness + 0.006 + 0.202 + patchheight,
|
|
||||||
z + skidthickness + pcbthickness - 0.002,
|
|
||||||
),
|
|
||||||
material_id="pcb",
|
|
||||||
)
|
|
||||||
b7 = gprMax.Box(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.179, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.195 + bowtiebase,
|
|
||||||
y + casethickness + 0.006 + 0.202 + patchheight,
|
|
||||||
z + skidthickness + pcbthickness - 0.002,
|
|
||||||
),
|
|
||||||
material_id="pcb",
|
|
||||||
)
|
|
||||||
scene_objects.extend((b6, b7))
|
|
||||||
|
|
||||||
elif smooth_dec == "no":
|
elif smooth_dec == "no":
|
||||||
# Plastic case
|
# Plastic case
|
||||||
@@ -682,366 +625,124 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
|
|||||||
scene_objects.extend((b8, b9, b10, b11, b12))
|
scene_objects.extend((b8, b9, b10, b11, b12))
|
||||||
|
|
||||||
# PCB
|
# PCB
|
||||||
if resolution == 0.0005:
|
b13 = gprMax.Box(
|
||||||
b13 = gprMax.Box(
|
p1=(x + 0.01 + 0.005 + 0.017, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
|
||||||
p1=(x + 0.01 + 0.005 + 0.018, y + casethickness + 0.005 + 0.0235, z + skidthickness),
|
p2=(
|
||||||
p2=(
|
x + 0.01 + 0.005 + 0.033 + bowtiebase,
|
||||||
x + 0.01 + 0.005 + 0.034 + bowtiebase,
|
y + casethickness + 0.006 + 0.202 + patchheight,
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
z + skidthickness + pcbthickness - 0.002,
|
||||||
z + skidthickness + pcbthickness,
|
),
|
||||||
),
|
material_id="pcb",
|
||||||
material_id="pcb",
|
averaging="n",
|
||||||
averaging="n",
|
)
|
||||||
)
|
b14 = gprMax.Box(
|
||||||
b14 = gprMax.Box(
|
p1=(x + 0.01 + 0.005 + 0.179, y + casethickness + 0.005 + 0.021, z + skidthickness),
|
||||||
p1=(x + 0.01 + 0.005 + 0.178, y + casethickness + 0.005 + 0.0235, z + skidthickness),
|
p2=(
|
||||||
p2=(
|
x + 0.01 + 0.005 + 0.195 + bowtiebase,
|
||||||
x + 0.01 + 0.005 + 0.194 + bowtiebase,
|
y + casethickness + 0.006 + 0.202 + patchheight,
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
z + skidthickness + pcbthickness,
|
||||||
z + skidthickness + pcbthickness,
|
),
|
||||||
),
|
material_id="pcb",
|
||||||
material_id="pcb",
|
averaging="n",
|
||||||
averaging="n",
|
)
|
||||||
)
|
scene_objects.extend((b13, b14))
|
||||||
scene_objects.extend((b13, b14))
|
|
||||||
|
|
||||||
elif resolution == 0.001:
|
|
||||||
b13 = gprMax.Box(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.018, y + casethickness + 0.005 + 0.023, z + skidthickness),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.034 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
|
||||||
z + skidthickness + pcbthickness,
|
|
||||||
),
|
|
||||||
material_id="pcb",
|
|
||||||
averaging="n",
|
|
||||||
)
|
|
||||||
b14 = gprMax.Box(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.178, y + casethickness + 0.005 + 0.023, z + skidthickness),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.194 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
|
||||||
z + skidthickness + pcbthickness,
|
|
||||||
),
|
|
||||||
material_id="pcb",
|
|
||||||
averaging="n",
|
|
||||||
)
|
|
||||||
scene_objects.extend((b13, b14))
|
|
||||||
|
|
||||||
elif resolution == 0.002:
|
|
||||||
b13 = gprMax.Box(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.017, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.033 + bowtiebase,
|
|
||||||
y + casethickness + 0.006 + 0.202 + patchheight,
|
|
||||||
z + skidthickness + pcbthickness - 0.002,
|
|
||||||
),
|
|
||||||
material_id="pcb",
|
|
||||||
averaging="n",
|
|
||||||
)
|
|
||||||
b14 = gprMax.Box(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.179, y + casethickness + 0.005 + 0.021, z + skidthickness),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.195 + bowtiebase,
|
|
||||||
y + casethickness + 0.006 + 0.202 + patchheight,
|
|
||||||
z + skidthickness + pcbthickness,
|
|
||||||
),
|
|
||||||
material_id="pcb",
|
|
||||||
averaging="n",
|
|
||||||
)
|
|
||||||
scene_objects.extend((b13, b14))
|
|
||||||
|
|
||||||
# PCB components
|
# PCB components
|
||||||
# My own bowties with triangle commands
|
# My own bowties with triangle commands
|
||||||
if resolution == 0.0005:
|
# "left" side
|
||||||
# "left" side
|
# extension plates
|
||||||
# extension plates
|
p1 = gprMax.Plate(
|
||||||
p1 = gprMax.Plate(
|
p1=(x + 0.01 + 0.005 + 0.025, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
|
||||||
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.0235, z + skidthickness),
|
p2=(
|
||||||
p2=(
|
x + 0.01 + 0.005 + 0.025 + bowtiebase,
|
||||||
x + 0.01 + 0.005 + 0.026 + bowtiebase,
|
y + casethickness + 0.005 + 0.021 + patchheight,
|
||||||
y + casethickness + 0.005 + 0.0235 + patchheight,
|
z + skidthickness - 0.002,
|
||||||
z + skidthickness,
|
),
|
||||||
),
|
material_id="pec",
|
||||||
material_id="pec",
|
)
|
||||||
)
|
p2 = gprMax.Plate(
|
||||||
p2 = gprMax.Plate(
|
p1=(x + 0.01 + 0.005 + 0.025, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
||||||
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
p2=(
|
||||||
p2=(
|
x + 0.01 + 0.005 + 0.025 + bowtiebase,
|
||||||
x + 0.01 + 0.005 + 0.026 + bowtiebase,
|
y + casethickness + 0.005 + 0.203 + patchheight,
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
z + skidthickness - 0.002,
|
||||||
z + skidthickness,
|
),
|
||||||
),
|
material_id="pec",
|
||||||
material_id="pec",
|
)
|
||||||
)
|
# triangles
|
||||||
# triangles
|
t1 = gprMax.Triangle(
|
||||||
t1 = gprMax.Triangle(
|
p1=(x + 0.01 + 0.005 + 0.025, y + casethickness + 0.005 + 0.081, z + skidthickness - 0.002),
|
||||||
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.0835, z + skidthickness),
|
p2=(x + 0.01 + 0.005 + 0.025 + bowtiebase, y + casethickness + 0.005 + 0.081, z + skidthickness - 0.002),
|
||||||
p2=(x + 0.01 + 0.005 + 0.026 + bowtiebase, y + casethickness + 0.005 + 0.0835, z + skidthickness),
|
p3=(
|
||||||
p3=(
|
x + 0.01 + 0.005 + 0.025 + (bowtiebase / 2),
|
||||||
x + 0.01 + 0.005 + 0.026 + (bowtiebase / 2),
|
y + casethickness + 0.005 + 0.081 + bowtieheight,
|
||||||
y + casethickness + 0.005 + 0.0835 + bowtieheight,
|
z + skidthickness - 0.002,
|
||||||
z + skidthickness,
|
),
|
||||||
),
|
thickness=0,
|
||||||
thickness=0,
|
material_id="pec",
|
||||||
material_id="pec",
|
)
|
||||||
)
|
t2 = gprMax.Triangle(
|
||||||
t2 = gprMax.Triangle(
|
p1=(x + 0.01 + 0.005 + 0.025, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
||||||
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
p2=(x + 0.01 + 0.005 + 0.025 + bowtiebase, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
||||||
p2=(x + 0.01 + 0.005 + 0.026 + bowtiebase, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
p3=(
|
||||||
p3=(
|
x + 0.01 + 0.005 + 0.025 + (bowtiebase / 2),
|
||||||
x + 0.01 + 0.005 + 0.026 + (bowtiebase / 2),
|
y + casethickness + 0.005 + 0.203 - bowtieheight,
|
||||||
y + casethickness + 0.005 + 0.204 - bowtieheight,
|
z + skidthickness - 0.002,
|
||||||
z + skidthickness,
|
),
|
||||||
),
|
thickness=0,
|
||||||
thickness=0,
|
material_id="pec",
|
||||||
material_id="pec",
|
)
|
||||||
)
|
# "right" side
|
||||||
|
p3 = gprMax.Plate(
|
||||||
|
p1=(x + 0.01 + 0.005 + 0.187, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
|
||||||
|
p2=(
|
||||||
|
x + 0.01 + 0.005 + 0.187 + bowtiebase,
|
||||||
|
y + casethickness + 0.005 + 0.021 + patchheight,
|
||||||
|
z + skidthickness - 0.002,
|
||||||
|
),
|
||||||
|
material_id="pec",
|
||||||
|
)
|
||||||
|
p4 = gprMax.Plate(
|
||||||
|
p1=(x + 0.01 + 0.005 + 0.187, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
||||||
|
p2=(
|
||||||
|
x + 0.01 + 0.005 + 0.187 + bowtiebase,
|
||||||
|
y + casethickness + 0.005 + 0.203 + patchheight,
|
||||||
|
z + skidthickness - 0.002,
|
||||||
|
),
|
||||||
|
material_id="pec",
|
||||||
|
)
|
||||||
|
# triangles
|
||||||
|
t3 = gprMax.Triangle(
|
||||||
|
p1=(x + 0.01 + 0.005 + 0.187, y + casethickness + 0.005 + 0.081, z + skidthickness - 0.002),
|
||||||
|
p2=(x + 0.01 + 0.005 + 0.187 + bowtiebase, y + casethickness + 0.005 + 0.081, z + skidthickness - 0.002),
|
||||||
|
p3=(
|
||||||
|
x + 0.01 + 0.005 + 0.187 + (bowtiebase / 2),
|
||||||
|
y + casethickness + 0.005 + 0.081 + bowtieheight,
|
||||||
|
z + skidthickness - 0.002,
|
||||||
|
),
|
||||||
|
thickness=0,
|
||||||
|
material_id="pec",
|
||||||
|
)
|
||||||
|
t4 = gprMax.Triangle(
|
||||||
|
p1=(x + 0.01 + 0.005 + 0.187, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
||||||
|
p2=(x + 0.01 + 0.005 + 0.187 + bowtiebase, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
||||||
|
p3=(
|
||||||
|
x + 0.01 + 0.005 + 0.187 + (bowtiebase / 2),
|
||||||
|
y + casethickness + 0.005 + 0.203 - bowtieheight,
|
||||||
|
z + skidthickness - 0.002,
|
||||||
|
),
|
||||||
|
thickness=0,
|
||||||
|
material_id="pec",
|
||||||
|
)
|
||||||
|
|
||||||
# "right" side
|
# Edges that represent wire between bowtie halves in 2mm model
|
||||||
p3 = gprMax.Plate(
|
e1 = gprMax.Edge(p1=(tx[0] + 0.162, tx[1] - dy, tx[2]), p2=(tx[0] + 0.162, tx[1], tx[2]), material_id="pec")
|
||||||
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.0235, z + skidthickness),
|
e2 = gprMax.Edge(
|
||||||
p2=(
|
p1=(tx[0] + 0.162, tx[1] + dy, tx[2]), p2=(tx[0] + 0.162, tx[1] + 2 * dy, tx[2]), material_id="pec"
|
||||||
x + 0.01 + 0.005 + 0.186 + bowtiebase,
|
)
|
||||||
y + casethickness + 0.005 + 0.0235 + patchheight,
|
e3 = gprMax.Edge(p1=(tx[0], tx[1] - dy, tx[2]), p2=(tx[0], tx[1], tx[2]), material_id="pec")
|
||||||
z + skidthickness,
|
e4 = gprMax.Edge(p1=(tx[0], tx[1] + dy, tx[2]), p2=(tx[0], tx[1] + 2 * dy, tx[2]), material_id="pec")
|
||||||
),
|
scene_objects.extend((p1, p2, t1, t2, p3, p4, t3, t4, e1, e2, e3, e4))
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
p4 = gprMax.Plate(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.186 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
# triangles
|
|
||||||
t3 = gprMax.Triangle(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.0835, z + skidthickness),
|
|
||||||
p2=(x + 0.01 + 0.005 + 0.186 + bowtiebase, y + casethickness + 0.005 + 0.0835, z + skidthickness),
|
|
||||||
p3=(
|
|
||||||
x + 0.01 + 0.005 + 0.186 + (bowtiebase / 2),
|
|
||||||
y + casethickness + 0.005 + 0.0835 + bowtieheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
thickness=0,
|
|
||||||
material_ID="pec",
|
|
||||||
)
|
|
||||||
t4 = gprMax.Triangle(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
|
||||||
p2=(x + 0.01 + 0.005 + 0.186 + bowtiebase, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
|
||||||
p3=(
|
|
||||||
x + 0.01 + 0.005 + 0.186 + (bowtiebase / 2),
|
|
||||||
y + casethickness + 0.005 + 0.204 - bowtieheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
thickness=0,
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
|
|
||||||
# Edges that represent wire between bowtie halves in 1mm model
|
|
||||||
e1 = gprMax.Edge(p1=(tx[0] + 0.16, tx[1] - dy, tx[2]), p2=(tx[0] + 0.16, tx[1], tx[2]), material_id="pec")
|
|
||||||
e2 = gprMax.Edge(
|
|
||||||
p1=(tx[0] + 0.16, tx[1] + dy, tx[2]), p2=(tx[0] + 0.16, tx[1] + 2 * dy, tx[2]), material_id="pec"
|
|
||||||
)
|
|
||||||
e3 = gprMax.Edge(p1=(tx[0], tx[1] - dy, tx[2]), p2=(tx[0], tx[1], tx[2]), material_id="pec")
|
|
||||||
e4 = gprMax.Edge(p1=(tx[0], tx[1] + dy, tx[2]), p2=(tx[0], tx[1] + 2 * dy, tx[2]), material_id="pec")
|
|
||||||
scene_objects.extend((p1, p2, t1, t2, p3, p4, t3, t4, e1, e2, e3, e4))
|
|
||||||
|
|
||||||
elif resolution == 0.001:
|
|
||||||
# "left" side
|
|
||||||
# extension plates
|
|
||||||
p1 = gprMax.Plate(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.023, z + skidthickness),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.026 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.023 + patchheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
p2 = gprMax.Plate(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.026 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
# triangles
|
|
||||||
t1 = gprMax.Triangle(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.083, z + skidthickness),
|
|
||||||
p2=(x + 0.01 + 0.005 + 0.026 + bowtiebase, y + casethickness + 0.005 + 0.083, z + skidthickness),
|
|
||||||
p3=(
|
|
||||||
x + 0.01 + 0.005 + 0.026 + (bowtiebase / 2),
|
|
||||||
y + casethickness + 0.005 + 0.083 + bowtieheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
thickness=0,
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
t2 = gprMax.Triangle(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.026, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
|
||||||
p2=(x + 0.01 + 0.005 + 0.026 + bowtiebase, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
|
||||||
p3=(
|
|
||||||
x + 0.01 + 0.005 + 0.026 + (bowtiebase / 2),
|
|
||||||
y + casethickness + 0.005 + 0.204 - bowtieheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
thickness=0,
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
|
|
||||||
# "right" side
|
|
||||||
p3 = gprMax.Plate(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.023, z + skidthickness),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.186 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.023 + patchheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
p4 = gprMax.Plate(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.186 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.204 + patchheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
# triangles
|
|
||||||
t3 = gprMax.Triangle(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.083, z + skidthickness),
|
|
||||||
p2=(x + 0.01 + 0.005 + 0.186 + bowtiebase, y + casethickness + 0.005 + 0.083, z + skidthickness),
|
|
||||||
p3=(
|
|
||||||
x + 0.01 + 0.005 + 0.186 + (bowtiebase / 2),
|
|
||||||
y + casethickness + 0.005 + 0.083 + bowtieheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
thickness=0,
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
t4 = gprMax.Triangle(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.186, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
|
||||||
p2=(x + 0.01 + 0.005 + 0.186 + bowtiebase, y + casethickness + 0.005 + 0.204, z + skidthickness),
|
|
||||||
p3=(
|
|
||||||
x + 0.01 + 0.005 + 0.186 + (bowtiebase / 2),
|
|
||||||
y + casethickness + 0.005 + 0.204 - bowtieheight,
|
|
||||||
z + skidthickness,
|
|
||||||
),
|
|
||||||
thickness=0,
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
|
|
||||||
# Edges that represent wire between bowtie halves in 1mm model
|
|
||||||
e1 = gprMax.Edge(p1=(tx[0] + 0.16, tx[1] - dy, tx[2]), p2=(tx[0] + 0.16, tx[1], tx[2]), material_id="pec")
|
|
||||||
e2 = gprMax.Edge(
|
|
||||||
p1=(tx[0] + 0.16, tx[1] + dy, tx[2]), p2=(tx[0] + 0.16, tx[1] + 2 * dy, tx[2]), material_id="pec"
|
|
||||||
)
|
|
||||||
e3 = gprMax.Edge(p1=(tx[0], tx[1] - dy, tx[2]), p2=(tx[0], tx[1], tx[2]), material_id="pec")
|
|
||||||
e4 = gprMax.Edge(p1=(tx[0], tx[1] + dy, tx[2]), p2=(tx[0], tx[1] + 2 * dy, tx[2]), material_id="pec")
|
|
||||||
scene_objects.extend((p1, p2, t1, t2, p3, p4, t3, t4, e1, e2, e3, e4))
|
|
||||||
|
|
||||||
elif resolution == 0.002:
|
|
||||||
# "left" side
|
|
||||||
# extension plates
|
|
||||||
p1 = gprMax.Plate(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.025, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.025 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.021 + patchheight,
|
|
||||||
z + skidthickness - 0.002,
|
|
||||||
),
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
p2 = gprMax.Plate(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.025, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.025 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.203 + patchheight,
|
|
||||||
z + skidthickness - 0.002,
|
|
||||||
),
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
# triangles
|
|
||||||
t1 = gprMax.Triangle(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.025, y + casethickness + 0.005 + 0.081, z + skidthickness - 0.002),
|
|
||||||
p2=(x + 0.01 + 0.005 + 0.025 + bowtiebase, y + casethickness + 0.005 + 0.081, z + skidthickness - 0.002),
|
|
||||||
p3=(
|
|
||||||
x + 0.01 + 0.005 + 0.025 + (bowtiebase / 2),
|
|
||||||
y + casethickness + 0.005 + 0.081 + bowtieheight,
|
|
||||||
z + skidthickness - 0.002,
|
|
||||||
),
|
|
||||||
thickness=0,
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
t2 = gprMax.Triangle(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.025, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
|
||||||
p2=(x + 0.01 + 0.005 + 0.025 + bowtiebase, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
|
||||||
p3=(
|
|
||||||
x + 0.01 + 0.005 + 0.025 + (bowtiebase / 2),
|
|
||||||
y + casethickness + 0.005 + 0.203 - bowtieheight,
|
|
||||||
z + skidthickness - 0.002,
|
|
||||||
),
|
|
||||||
thickness=0,
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
# "right" side
|
|
||||||
p3 = gprMax.Plate(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.187, y + casethickness + 0.005 + 0.021, z + skidthickness - 0.002),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.187 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.021 + patchheight,
|
|
||||||
z + skidthickness - 0.002,
|
|
||||||
),
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
p4 = gprMax.Plate(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.187, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
|
||||||
p2=(
|
|
||||||
x + 0.01 + 0.005 + 0.187 + bowtiebase,
|
|
||||||
y + casethickness + 0.005 + 0.203 + patchheight,
|
|
||||||
z + skidthickness - 0.002,
|
|
||||||
),
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
# triangles
|
|
||||||
t3 = gprMax.Triangle(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.187, y + casethickness + 0.005 + 0.081, z + skidthickness - 0.002),
|
|
||||||
p2=(x + 0.01 + 0.005 + 0.187 + bowtiebase, y + casethickness + 0.005 + 0.081, z + skidthickness - 0.002),
|
|
||||||
p3=(
|
|
||||||
x + 0.01 + 0.005 + 0.187 + (bowtiebase / 2),
|
|
||||||
y + casethickness + 0.005 + 0.081 + bowtieheight,
|
|
||||||
z + skidthickness - 0.002,
|
|
||||||
),
|
|
||||||
thickness=0,
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
t4 = gprMax.Triangle(
|
|
||||||
p1=(x + 0.01 + 0.005 + 0.187, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
|
||||||
p2=(x + 0.01 + 0.005 + 0.187 + bowtiebase, y + casethickness + 0.005 + 0.203, z + skidthickness - 0.002),
|
|
||||||
p3=(
|
|
||||||
x + 0.01 + 0.005 + 0.187 + (bowtiebase / 2),
|
|
||||||
y + casethickness + 0.005 + 0.203 - bowtieheight,
|
|
||||||
z + skidthickness - 0.002,
|
|
||||||
),
|
|
||||||
thickness=0,
|
|
||||||
material_id="pec",
|
|
||||||
)
|
|
||||||
|
|
||||||
# Edges that represent wire between bowtie halves in 2mm model
|
|
||||||
e1 = gprMax.Edge(p1=(tx[0] + 0.162, tx[1] - dy, tx[2]), p2=(tx[0] + 0.162, tx[1], tx[2]), material_id="pec")
|
|
||||||
e2 = gprMax.Edge(
|
|
||||||
p1=(tx[0] + 0.162, tx[1] + dy, tx[2]), p2=(tx[0] + 0.162, tx[1] + 2 * dy, tx[2]), material_id="pec"
|
|
||||||
)
|
|
||||||
e3 = gprMax.Edge(p1=(tx[0], tx[1] - dy, tx[2]), p2=(tx[0], tx[1], tx[2]), material_id="pec")
|
|
||||||
e4 = gprMax.Edge(p1=(tx[0], tx[1] + dy, tx[2]), p2=(tx[0], tx[1] + 2 * dy, tx[2]), material_id="pec")
|
|
||||||
scene_objects.extend((p1, p2, t1, t2, p3, p4, t3, t4, e1, e2, e3, e4))
|
|
||||||
|
|
||||||
# Metallic plate extension
|
# Metallic plate extension
|
||||||
b15 = gprMax.Box(
|
b15 = gprMax.Box(
|
||||||
@@ -1098,31 +799,17 @@ def antenna_like_GSSI_400(x, y, z, resolution=0.001, **kwargs):
|
|||||||
w2 = gprMax.Waveform(wave_type="gaussian", amp=0, freq=excitationfreq, id="my_zero_wave")
|
w2 = gprMax.Waveform(wave_type="gaussian", amp=0, freq=excitationfreq, id="my_zero_wave")
|
||||||
scene_objects.append(w2)
|
scene_objects.append(w2)
|
||||||
|
|
||||||
if resolution == 0.001 or resolution == 0.0005:
|
if src_type == "transmission_line":
|
||||||
if src_type == "transmission_line":
|
tl2 = gprMax.TransmissionLine(
|
||||||
tl2 = gprMax.TransmissionLine(
|
polarisation="y",
|
||||||
polarisation="y",
|
p1=(tx[0] + 0.162, tx[1], tx[2]),
|
||||||
p1=(tx[0] + 0.16, tx[1], tx[2]),
|
resistance=receiverresistance,
|
||||||
resistance=receiverresistance,
|
waveform_id="my_zero_wave",
|
||||||
waveform_id="my_zero_wave",
|
)
|
||||||
)
|
scene_objects.append(tl2)
|
||||||
scene_objects.append(tl2)
|
elif src_type == "voltage_source":
|
||||||
elif src_type == "voltage_source":
|
r1 = gprMax.Rx(p1=(tx[0] + 0.162, tx[1], tx[2]), id="rxbowtie", outputs="Ey")
|
||||||
r1 = gprMax.Rx(p1=(tx[0] + 0.16, tx[1], tx[2]), id="rxbowtie", outputs="Ey")
|
scene_objects.append(r1)
|
||||||
scene_objects.append(r1)
|
|
||||||
|
|
||||||
elif resolution == 0.002:
|
|
||||||
if src_type == "transmission_line":
|
|
||||||
tl2 = gprMax.TransmissionLine(
|
|
||||||
polarisation="y",
|
|
||||||
p1=(tx[0] + 0.162, tx[1], tx[2]),
|
|
||||||
resistance=receiverresistance,
|
|
||||||
waveform_id="my_zero_wave",
|
|
||||||
)
|
|
||||||
scene_objects.append(tl2)
|
|
||||||
elif src_type == "voltage_source":
|
|
||||||
r1 = gprMax.Rx(p1=(tx[0] + 0.162, tx[1], tx[2]), id="rxbowtie", outputs="Ey")
|
|
||||||
scene_objects.append(r1)
|
|
||||||
|
|
||||||
# Geometry views
|
# Geometry views
|
||||||
gv1 = gprMax.GeometryView(
|
gv1 = gprMax.GeometryView(
|
||||||
|
在新工单中引用
屏蔽一个用户