Skip to content

Commit 3880706

Browse files
author
Lachlan Grose
committed
chore: black formatting
1 parent 9025f4b commit 3880706

File tree

7 files changed

+1696
-1040
lines changed

7 files changed

+1696
-1040
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
from .intrusion_frame import IntrusionBuilder
22
from .intrusion_network import IntrusionNetwork
33
from .intrusion_body import IntrusionBody
4-
from .intrusion_feature import IntrusionFeature
4+
from .intrusion_feature import IntrusionFeature

LoopStructural/modelling/intrusions/geom_conceptual_models.py

Lines changed: 114 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -2,113 +2,140 @@
22
import numpy as np
33
import pandas as pd
44

5-
def ellipse_function(lateral_contact_data, test = 0, minP=None, maxP=None, minS=None, maxS=None):
5+
6+
def ellipse_function(
7+
lateral_contact_data, test=0, minP=None, maxP=None, minS=None, maxS=None
8+
):
69
import math
7-
if minP==None:
8-
minP = lateral_contact_data['coord1'].min()
9-
if maxP==None:
10-
maxP = lateral_contact_data['coord1'].max()
11-
if minS==None:
12-
minS = lateral_contact_data['coord2'].abs().min()
13-
if maxS==None:
14-
maxS = lateral_contact_data['coord2'].max()
15-
16-
a = (maxP-minP)/2
17-
b = (maxS-minS)/10
18-
# b = abs(minS)
19-
20-
po = minP + (maxP-minP)/2
21-
22-
p_locations = lateral_contact_data.loc[:,'coord1'].copy().to_numpy()
23-
# s_values = lateral_contact_data.loc[:,'coord2'].copy().to_numpy()
24-
25-
s = np.zeros([len(p_locations),2])
26-
10+
11+
if minP == None:
12+
minP = lateral_contact_data["coord1"].min()
13+
if maxP == None:
14+
maxP = lateral_contact_data["coord1"].max()
15+
if minS == None:
16+
minS = lateral_contact_data["coord2"].abs().min()
17+
if maxS == None:
18+
maxS = lateral_contact_data["coord2"].max()
19+
20+
a = (maxP - minP) / 2
21+
b = (maxS - minS) / 10
22+
# b = abs(minS)
23+
24+
po = minP + (maxP - minP) / 2
25+
26+
p_locations = lateral_contact_data.loc[:, "coord1"].copy().to_numpy()
27+
# s_values = lateral_contact_data.loc[:,'coord2'].copy().to_numpy()
28+
29+
s = np.zeros([len(p_locations), 2])
30+
2731
for i in range(len(p_locations)):
2832
if minP < p_locations[i] < maxP:
29-
s[i,0] = b*math.sqrt(1-pow((p_locations[i] - po)/a , 2)) # max side
30-
s[i,1] = -b*math.sqrt(1-pow((p_locations[i] - po)/a , 2)) # min side
31-
# elif test == 1:
32-
# s[i,:] = lateral_contact_data.loc[i,'coord2']
33+
s[i, 0] = b * math.sqrt(1 - pow((p_locations[i] - po) / a, 2)) # max side
34+
s[i, 1] = -b * math.sqrt(1 - pow((p_locations[i] - po) / a, 2)) # min side
35+
# elif test == 1:
36+
# s[i,:] = lateral_contact_data.loc[i,'coord2']
3337
else:
34-
s[i,:] = 0
38+
s[i, :] = 0
3539

3640
return s
3741

38-
def rectangle_function(lateral_contact_data, minP=None, maxP=None, minS=None, maxS=None):
42+
43+
def rectangle_function(
44+
lateral_contact_data, minP=None, maxP=None, minS=None, maxS=None
45+
):
3946
import math
40-
if minP==None:
41-
minP = lateral_contact_data['coord1'].min()
42-
if maxP==None:
43-
maxP = lateral_contact_data['coord1'].max()
44-
if minS==None:
45-
minS = lateral_contact_data['coord2'].min()
46-
if maxS==None:
47-
maxS = lateral_contact_data['coord2'].max()
48-
49-
p_locations = lateral_contact_data.loc[:,'coord1'].copy().to_numpy()
50-
s = np.zeros([len(p_locations),2])
51-
47+
48+
if minP == None:
49+
minP = lateral_contact_data["coord1"].min()
50+
if maxP == None:
51+
maxP = lateral_contact_data["coord1"].max()
52+
if minS == None:
53+
minS = lateral_contact_data["coord2"].min()
54+
if maxS == None:
55+
maxS = lateral_contact_data["coord2"].max()
56+
57+
p_locations = lateral_contact_data.loc[:, "coord1"].copy().to_numpy()
58+
s = np.zeros([len(p_locations), 2])
59+
5260
for i in range(len(p_locations)):
5361
if minP < p_locations[i] < maxP:
54-
s[i,0] = maxS # max side
55-
s[i,1] = minS # min side
62+
s[i, 0] = maxS # max side
63+
s[i, 1] = minS # min side
5664
else:
57-
s[i,:] = 0
65+
s[i, :] = 0
5866

5967
return s
6068

61-
def parallelepiped_function(othercontact_data, mean_growth=None, minP=None, maxP=None, minS=None, maxS=None, vertex=None):
62-
69+
70+
def parallelepiped_function(
71+
othercontact_data,
72+
mean_growth=None,
73+
minP=None,
74+
maxP=None,
75+
minS=None,
76+
maxS=None,
77+
vertex=None,
78+
):
79+
6380
if mean_growth == None:
64-
mean_growth = othercontact_data.loc[:,'coord1'].mean()
65-
66-
data_ps = np.array([othercontact_data.loc[:,'coord1'], othercontact_data.loc[:,'coord2']]).T
67-
68-
conceptual_growth = np.ones([len(data_ps),2]) * mean_growth
69-
81+
mean_growth = othercontact_data.loc[:, "coord1"].mean()
82+
83+
data_ps = np.array(
84+
[othercontact_data.loc[:, "coord1"], othercontact_data.loc[:, "coord2"]]
85+
).T
86+
87+
conceptual_growth = np.ones([len(data_ps), 2]) * mean_growth
88+
7089
return conceptual_growth
7190

7291

73-
def obliquecone_function(othercontact_data, mean_growth=None, minP=None, maxP=None, minS=None, maxS=None, vertex=None):
92+
def obliquecone_function(
93+
othercontact_data,
94+
mean_growth=None,
95+
minP=None,
96+
maxP=None,
97+
minS=None,
98+
maxS=None,
99+
vertex=None,
100+
):
74101
import math
75-
76-
ps_locations = othercontact_data.loc[:,['coord1','coord2']].to_numpy()
77-
78-
a = (maxP-minP)/2 #semi-major axis
79-
b = (maxS-minS)/2 #semi-minor axis
80-
a2 = pow(a,2)
81-
b2 = pow(b,2)
82-
83-
po = minP + a #p coordinate of ellipsis centre
84-
so = minS + b #s coordinate of ellipsis centre
85-
86-
alpha = vertex[0] #p coordinate of vertex
87-
beta = vertex[1] #g coordinate of vertex
88-
gamma = vertex[2] #s coordinate of vertex
89-
90-
growth = np.zeros([len(ps_locations),2]) #container for results
91-
102+
103+
ps_locations = othercontact_data.loc[:, ["coord1", "coord2"]].to_numpy()
104+
105+
a = (maxP - minP) / 2 # semi-major axis
106+
b = (maxS - minS) / 2 # semi-minor axis
107+
a2 = pow(a, 2)
108+
b2 = pow(b, 2)
109+
110+
po = minP + a # p coordinate of ellipsis centre
111+
so = minS + b # s coordinate of ellipsis centre
112+
113+
alpha = vertex[0] # p coordinate of vertex
114+
beta = vertex[1] # g coordinate of vertex
115+
gamma = vertex[2] # s coordinate of vertex
116+
117+
growth = np.zeros([len(ps_locations), 2]) # container for results
118+
92119
for i in range(len(ps_locations)):
93-
p = ps_locations[i,0]
94-
s = ps_locations[i,1]
95-
120+
p = ps_locations[i, 0]
121+
s = ps_locations[i, 1]
122+
96123
A = alpha - po
97-
B = beta*(p-alpha)
124+
B = beta * (p - alpha)
98125
C = gamma - so
99-
D = beta*(s-gamma)
100-
101-
F = pow(A*b,2) + pow(C*a,2) - a2*b2
102-
G = 2*(B*A*b2 + C*D*a2)
103-
H = pow(b*B,2) + pow(a*D,2)
104-
126+
D = beta * (s - gamma)
127+
128+
F = pow(A * b, 2) + pow(C * a, 2) - a2 * b2
129+
G = 2 * (B * A * b2 + C * D * a2)
130+
H = pow(b * B, 2) + pow(a * D, 2)
131+
105132
constant_g2 = F
106-
constant_g = -2*F*beta - G
107-
constant_1 = F*pow(beta,2) + G*beta + H
108-
109-
discriminant = pow(constant_g,2) - 4*constant_g2*constant_1
110-
111-
growth[i,0] = -(constant_g + math.sqrt(discriminant))/(2*constant_g2)
112-
growth[i,1] = -(constant_g - math.sqrt(discriminant))/(2*constant_g2)
113-
114-
return growth
133+
constant_g = -2 * F * beta - G
134+
constant_1 = F * pow(beta, 2) + G * beta + H
135+
136+
discriminant = pow(constant_g, 2) - 4 * constant_g2 * constant_1
137+
138+
growth[i, 0] = -(constant_g + math.sqrt(discriminant)) / (2 * constant_g2)
139+
growth[i, 1] = -(constant_g - math.sqrt(discriminant)) / (2 * constant_g2)
140+
141+
return growth

0 commit comments

Comments
 (0)