diff --git a/CREAT.py b/CREAT.py
index 3bc7706..e8790a5 100644
--- a/CREAT.py
+++ b/CREAT.py
@@ -37,7 +37,8 @@ class create():
self.data = data
self.x_range = [min(data[:, 0]), max(data[:,0])]
self.y_range = [min(data[:, 1]), max(data[:,1])]
-
+ def singlefile(self):
+ pass
def contours_pre(self, level_nums, gWeight):
x = self.data[:, 0]
diff --git a/QT/PLT2.ui b/QT/PLT2.ui
deleted file mode 100644
index 2dee90b..0000000
--- a/QT/PLT2.ui
+++ /dev/null
@@ -1,196 +0,0 @@
-
-
- Form
-
-
-
- 0
- 0
- 871
- 766
-
-
-
-
- 8
- 0
-
-
-
- Form
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
- 0
-
-
-
- 数据名:
-
-
-
- -
-
-
-
- 2
- 0
-
-
-
- 请输入数据名,如data1.pos,data.pos
-
-
-
-
-
- -
-
-
-
-
-
-
- 1
- 0
-
-
-
- gWeight:
-
-
-
- -
-
-
- 15
-
-
-
-
-
- -
-
-
-
-
-
-
- 1
- 0
-
-
-
- levels:
-
-
-
- -
-
-
-
- 36
- 20
-
-
-
- 5
-
-
- QAbstractSpinBox::AdaptiveDecimalStepType
-
-
- 14
-
-
-
-
-
- -
-
-
-
-
-
-
- 1
- 0
-
-
-
- 井文件:
-
-
-
- -
-
-
-
- 2
- 0
-
-
-
- 请输入井文件名,如well.txt
-
-
-
-
-
- -
-
-
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
- 绘图
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
diff --git a/__pycache__/CREAT.cpython-310.pyc b/__pycache__/CREAT.cpython-310.pyc
index f404888..0321193 100644
Binary files a/__pycache__/CREAT.cpython-310.pyc and b/__pycache__/CREAT.cpython-310.pyc differ
diff --git a/new_code/CREAT.py b/new_code/CREAT.py
deleted file mode 100644
index 3bc7706..0000000
--- a/new_code/CREAT.py
+++ /dev/null
@@ -1,134 +0,0 @@
-import numpy as np
-import matplotlib as mpl
-import matplotlib.pyplot as plt
-from scipy.stats import gaussian_kde
-from scipy.spatial.distance import cdist
-import copy
-
-
-class create():
- def __init__(self):
- """
- data is the x and y coordinate of data.pos
- contours is the edge points
- f is the kernel density value
- levels is the levels for contours
- x_range is the range of x label
- y_range is the range of y label
-
- """
- self.data = []
- self.contours = []
- self.f = []
- self.levels = []
- self.x_range = []
- self.y_range = []
-
- def data_pre(self, data_name):
- with open(data_name, 'r') as f:
- lines = f.readlines()
- L_en=len(lines)
- lines= lines[1:L_en]
- data = []
- for line in lines:
- x, y,z,t = line.strip().split("\t")
- data.append(list(map(float, [x,y])))
- data = np.array(data)
- self.data = data
- self.x_range = [min(data[:, 0]), max(data[:,0])]
- self.y_range = [min(data[:, 1]), max(data[:,1])]
-
- def contours_pre(self, level_nums, gWeight):
-
- x = self.data[:, 0]
- y = self.data[:, 1]
- # 使用scipy库中的gaussian_kde函数计算密度估计
- kde = gaussian_kde(self.data.T)
- # 生成网格点坐标
- xx, yy = np.mgrid[x.min():x.max():200j, y.min():y.max():200j]
- positions = np.vstack([xx.ravel(), yy.ravel()])
- # 计算网格点上的密度估计值
- f = np.reshape(kde(positions).T, xx.shape)
- # 绘制等高线图
- levels = []
- for i in range(level_nums):
- levels.append(f.max() - (level_nums - i - 1) * (f.max() - f.min()) / gWeight)
- self.levels = levels
- contours = plt.contour(xx, yy, f, levels=[levels[0], levels[level_nums - 1]], cmap='coolwarm', alpha=0)
- plt.close()
- self_contours = []
- for i in range(len(contours.allsegs[0])):
- self_contours += contours.allsegs[0][i].tolist()
-
- for i in range(len(self_contours)):
- if self_contours[i] not in self.contours:
- self.contours += [self_contours[i]]
-
- self.f = f
-
-
-class well_to_edge():
- def __init__(self):
- """
- name is used to store the well names
- type is the types of the wells
- position is the coordinates of wells
- min_distance is the minimum distances between wells and edge
- welltoedge_points is the points responding to the min_distance
- angle is the angles between the shortest distance direction vector from the well to the edge and the positive direction of the y-axis during clockwise rotation;
- wells_num: the number of wells
- """
- self.name = []
- self.type = []
- self.position = []
- self.min_distance = []
- self.welltoedge_points = []
- self.angle = []
- self.wells_num = 0
-
- def wells_name_and_position(self, wells_name):
- # 读取井位信息
- with open(wells_name, 'r') as f_j:
- j_ing = f_j.readlines()
- points = []
- typee = []
- namee = []
- for line in j_ing:
- x, y, type, name = line.strip().split("\t")
- points.append(list(map(float, [x, y])))
- typee.append(list(map(int, [type])))
- namee.append(name.split('\n'))
- self.position = points
- self.name = namee
- self.type = typee
- self.wells_num = len(points)
-
- def welltoedge_distance(self, contour_points):
- min_distance = []
- contours_p=[]
- angles=[]
- wells_num = self.wells_num
- points = self.position
- # 定义待计算距离的点
- for i in range(wells_num):
- point = np.array([points[i][0], points[i][1]])
- # 计算点到等高线上所有点之间的距离
- distances = cdist(point.reshape(1, -1), contour_points)
- # 取距离的最小值
- min_distance.append(distances.min())
- # 记录最短距离对应的点
- for ii in range(distances.size):
- if distances[0][ii] == min_distance[-1]:
- contours_p.append(contour_points[ii])
- # 计算角度(y轴为正北方向)
- direct = contours_p[-1] - point
- if direct[0] < 0:
- angles.append(360-np.arccos(np.dot(direct, np.array(([0, 1]))) / np.linalg.norm(
- direct)) / np.pi * 180)
- else:
- angles.append(np.arccos(np.dot(direct, np.array(([0, 1]))) / np.linalg.norm(
- direct)) / np.pi * 180)
-
- self.min_distance = min_distance
- self.welltoedge_points = contours_p
- self.angle = angles
\ No newline at end of file
diff --git a/new_code/QT/PLT2.ui b/new_code/QT/PLT2.ui
deleted file mode 100644
index 2dee90b..0000000
--- a/new_code/QT/PLT2.ui
+++ /dev/null
@@ -1,196 +0,0 @@
-
-
- Form
-
-
-
- 0
- 0
- 871
- 766
-
-
-
-
- 8
- 0
-
-
-
- Form
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1
- 0
-
-
-
- 数据名:
-
-
-
- -
-
-
-
- 2
- 0
-
-
-
- 请输入数据名,如data1.pos,data.pos
-
-
-
-
-
- -
-
-
-
-
-
-
- 1
- 0
-
-
-
- gWeight:
-
-
-
- -
-
-
- 15
-
-
-
-
-
- -
-
-
-
-
-
-
- 1
- 0
-
-
-
- levels:
-
-
-
- -
-
-
-
- 36
- 20
-
-
-
- 5
-
-
- QAbstractSpinBox::AdaptiveDecimalStepType
-
-
- 14
-
-
-
-
-
- -
-
-
-
-
-
-
- 1
- 0
-
-
-
- 井文件:
-
-
-
- -
-
-
-
- 2
- 0
-
-
-
- 请输入井文件名,如well.txt
-
-
-
-
-
- -
-
-
-
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
- -
-
-
- 绘图
-
-
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
-
-
-
-
-
-
-
diff --git a/new_code/ZS1.pos b/new_code/ZS1.pos
deleted file mode 100644
index b70ad97..0000000
--- a/new_code/ZS1.pos
+++ /dev/null
@@ -1,169 +0,0 @@
-168
-148.3 51.1 3399.5 181.896
-39.9 53.3 3381.6 281.464
-56.6 -133.5 3408.2 444.495
--18.7 27.9 3391.1 565.336
--101.9 -40.6 3393.7 633.185
--84.7 -32.6 3395.7 727.757
-123.8 13.4 3394.6 872.940
--68.7 -15.1 3390.7 999.104
--8.2 -84.7 3381.7 1101.427
-20.6 18.7 3402.1 1250.124
-6.6 -23.1 3395.3 1419.339
-47 -19.9 3401.8 1608.589
-72.5 93.6 3397.8 1700.163
-45.5 -48 3391.1 1869.119
--49.8 5.7 3376.6 2065.702
--86.1 14.2 3386.8 2192.653
--8.3 -24.2 3389.6 2315.632
-98.1 52.3 3402.5 2447.997
-25 -39.9 3404.9 2537.608
--28.6 -101.7 3386.1 2708.270
-24.9 -3.4 3397.5 2785.926
--2.3 -52.8 3404.1 2939.141
-2.1 -2 3389.8 3045.125
--26 25 3384.5 3110.937
--126 24.7 3390.2 3207.461
--73.8 -62.2 3378.8 3319.875
--42.2 -18.7 3380.4 3437.201
--0.9 -38.3 3381.1 3562.799
--28.1 5.8 3386.9 3636.17
--102.2 93 3398.2 3766.726
-17.3 35.2 3387.7 3883.261
--113 73.5 3396.8 4011.833
--33.8 -108.7 3397.6 4154.798
-80.2 -76.7 3403.8 4324.489
--43.9 96.5 3386.8 4408.192
--56.4 -3.6 3390.4 4623.528
-47.6 -118 3398 4740.353
-24.1 39.1 3399.4 4844.247
-36.2 55.3 3396.2 5003.832
--19.6 94 3397.9 5111.672
-28.9 -7.4 3402.2 5224.29
-60.6 -73.3 3384.9 5290.447
-29.9 21 3402.1 5405.769
-20.9 8.2 3398.1 5523.281
-17.2 37.1 3399.4 5590.29
-37.4 4.9 3394.3 5757.829
-35.7 -77.2 3388.1 5826.650
--32.5 41.8 3387.2 5994.176
--38.2 92.8 3395.2 6176.337
--26.9 -6.1 3389.3 6315.656
-30.3 -64.5 3381.6 6467.95
-0.4 27.2 3399.2 6653.114
-79.4 112.7 3385.5 6778.105
--1.9 102.6 3387.4 6909.2
-67.5 2.5 3386.7 7044.364
-11.2 9.8 3384.9 7133.658
-35 169.3 3393.3 7266.248
--123 -30.2 3401.1 7403.31
-33.3 -52.5 3400 7555.890
-29.9 -25.8 3393.3 7628.279
--83.8 94 3399.5 7806.154
--20.9 -34.7 3375.7 7994.228
-47.1 -25.9 3397.7 8119.363
--87.3 101.1 3388.8 8343.580
--34.6 53.8 3404.2 8505.657
-47.9 24.9 3386.4 8594.292
-4.4 2.8 3395.8 8713.984
--26.3 -108.1 3386.3 8870.40
-5 68.5 3385.3 9029.961
-20.2 -86.2 3382.2 9191.356
-74.8 -93.4 3379.1 9262.467
--158.8 84.6 3403.3 9373.178
-102.1 -64.5 3401.3 9459.657
-50.4 46.5 3375.2 9565.598
--35.7 -91.9 3405.7 9699.872
--4.6 -41.2 3387.5 9821.975
--25.5 -62.5 3387.2 9894.588
-31.1 -120.2 3378.7 10021.556
-10.2 -58.8 3376.6 10119.946
-116.2 3.5 3388.5 10270.230
--46.1 46.8 3376.3 10374.513
-13.6 3.4 3385 10438.396
-20.3 159.5 3400.3 10612.80
--46.8 60.5 3386.1 10686.806
--77.4 -49.9 3400.7 10832.546
-77 -22.6 3379 11037.50
-63.7 -89.2 3389.5 11218.832
-34.2 40.2 3394.6 11355.443
--16.8 -6 3394.5 11482.404
-38 -82.7 3393.3 11629.193
--5.8 82.5 3397.5 11733.227
-10.5 97 3407 11844.65
-13.8 -4.8 3381.2 12025.476
-237.2 51.5 3381.5 12151.284
--47.6 39.8 3382 12226.309
-22 157.5 3405.1 12351.685
--92.7 0 3393.8 12512.12
-36.4 5.8 3373.1 12690.814
--13.7 78.6 3376.7 12814.922
--18.6 63.7 3395.1 12991.739
-23.7 -30.5 3400.1 13177.130
--9.4 -61.7 3378.4 13338.450
-23.4 53.9 3378.2 13468.281
--22 70.2 3377.6 13573.960
-56.2 71.5 3397.4 13664.607
--133.2 21.8 3383.3 13799.479
-4.5 85.7 3383.9 13949.509
-18.5 15.4 3394 14148.966
--31 -35.1 3395.6 14304.224
--85.2 -37.5 3381.9 14423.342
--11 -40.6 3385.1 14546.236
--91.4 -67.6 3394.2 14694.161
-104.6 -38.7 3394.2 14773.47
--33.7 141.6 3384.1 14865.767
-105.4 -14.2 3378 15022.698
-20 69.6 3377.2 15177.100
--81.6 -30.4 3387.7 15275.678
-0.1 92.1 3375.6 15387.988
-6.8 -53.7 3380.5 15542.38
-98.5 68.7 3394.1 15616.86
-5.7 48.3 3384.6 15703.586
--86.4 -79.5 3385 15795.561
--11.1 3.8 3387.6 15882.995
-41 -57.3 3384.9 16012.142
--13.4 -120.5 3387.1 16094.985
-35.5 14.9 3373.9 16169.788
-79.6 -62.4 3379.5 16270.36
--24.4 -66.8 3388.6 16350.149
-45.5 -89.7 3396 16468.753
-26.7 -6.5 3393 16609.482
-47.7 6.4 3383.8 16779.375
--15.4 -77.2 3398.7 16874.711
-48.2 20.3 3401.2 17009.701
-43.5 9 3380.1 17179.135
-57.8 -12.2 3391.3 17273.578
-12.1 25.5 3386 17418.895
-12.2 -41.2 3389.6 17500.464
--87.6 -46.3 3395.8 17714.984
-4.8 -9.6 3387.4 17872.32
--61.5 24.4 3390.5 18053.969
--19.8 -8.5 3402 18208.500
-36.2 26.4 3386 18380.499
--13.2 56.4 3390.7 18454.376
-14.6 139.4 3379.5 18636.789
--29.6 -75.4 3394.2 18773.720
--18.3 -23 3383.4 18871.590
-51.4 -53.2 3394 19015.733
-5.1 45.2 3391.8 19125.110
--60.5 0.9 3391.9 19297.574
--33.4 45.5 3388.9 19365.857
--5.2 14.4 3397.6 19529.190
-36.1 14.2 3401.3 19661.28
--89.5 -46 3403.4 19818.99
-48.2 -48.3 3380.5 19941.707
-5.8 -21.1 3393.9 20089.7
-36.2 -52.2 3390.2 20228.925
--38.1 -41.6 3379.3 20370.728
-166.8 7.2 3378.6 20522.951
--0.2 0.3 3392.3 20587.265
-49.2 -105.3 3389 20658.773
-152.2 41.8 3381.9 20751.993
-76.8 43.4 3388 20907.995
--14 19.3 3382.6 21106.365
--39.2 10.6 3395 21281.649
-9.2 -48.1 3395.3 21396.805
-12.8 66.7 3374.2 21541.777
--45.6 26.5 3398.1 21755.538
--35.1 9.9 3386.6 21912.614
diff --git a/new_code/ZS4.pos b/new_code/ZS4.pos
deleted file mode 100644
index 4a498d2..0000000
--- a/new_code/ZS4.pos
+++ /dev/null
@@ -1,192 +0,0 @@
-191
--35.2 -15.6 3382 54.395
--107.6 86.4 3372.1 144.763
-66.6 162.1 3380.4 240.820
-251.3 -137.4 3394.7 423.347
--152.1 -14.1 3375.9 524.943
--22.4 92.4 3381.7 637.568
-157.5 59.1 3385.3 727.265
-90 82.8 3374.1 870.392
-13.8 30.7 3375.2 978.509
-65.6 -134.9 3380.5 1041.359
--216.8 21 3393.1 1118.244
-0.7 -87.5 3379.3 1196.407
-88.6 -60.6 3380.8 1262.854
-38.6 64.5 3390.7 1440.695
-96.1 -72.5 3376.4 1497.699
-101 -274.9 3381.2 1561.435
-127.4 -56.9 3382.1 1632.677
-159.3 -102.7 3395.3 1821.443
-147.4 106.5 3386.4 1914.295
-129.4 -35.4 3406.1 2042.296
--98.5 -96.8 3405.9 2161.491
--46.5 -91 3392 2312.197
--39.4 85.9 3380.3 2365.984
-68.5 53.4 3404.6 2430.72
-6.5 74.5 3372.6 2543.397
--132.1 121.8 3395.9 2598.169
--10.4 -26 3375.2 2716.174
--48.9 -93.6 3390.7 2796.302
-246.3 -9.8 3385 2990.277
--58.1 -157.5 3388.1 3112.714
-74.8 -161.8 3400.4 3256.314
--83.8 82.4 3374.6 3439.688
-28.7 -134.9 3395.6 3533.169
--161.9 -129.4 3395.4 3678.872
-68.2 82.3 3401.9 3869.69
-45.5 112.2 3384.2 3930.92
-156.9 13.9 3382.9 3991.483
--23.1 -46.1 3387.2 4124.900
-121.7 168.5 3394.7 4178.836
-77 -23.7 3381 4293.655
-93.4 65 3402.3 4406.953
-98.1 95.6 3398.7 4502.493
--168.9 66.2 3386.9 4664.161
-252.4 148.2 3387.4 4780.228
-125.6 13.2 3401.9 4833.596
-172.7 84.3 3393.9 4942.853
-48.9 -160.2 3371.6 5059.295
-61.6 36.6 3383 5169.811
--125.8 123.6 3393.2 5295.327
--10.3 -163.1 3406 5382.191
--120.6 -8.9 3388.3 5464.662
--123.2 11.2 3403.6 5549.166
-79.7 17.4 3402.4 5731.526
--145 -10.1 3397.6 5864.299
-41.3 -41.8 3392.7 5949.131
--168.3 -280.9 3376.3 6148.218
--58.7 7.5 3407.3 6279.107
-146.9 31 3400.7 6356.678
--56.6 81.1 3380.8 6499.252
-1.7 170.3 3371.5 6633.223
--28.6 176.2 3391.6 6830.213
--16.4 162.8 3408.3 6902.228
--60 -182.5 3399.7 6955.213
-209.5 83.9 3398.8 7060.469
-73.9 -55.7 3379.1 7128.377
-39.3 -24.4 3373 7232.393
--93.8 15.6 3396.7 7379.994
--169 -24.3 3396.5 7452.312
--159.6 56.3 3382.9 7510.622
--181.1 18.7 3398.4 7672.877
--107.6 101.2 3394.4 7722.559
--155.8 -2.2 3398 7804.675
--107.1 152.2 3385.8 7862.703
-130.2 5.6 3374.8 8003.27
-146.5 47.4 3384.6 8170.533
--176.4 29 3401.8 8235.483
-118.1 168.6 3398.5 8420.588
--109.6 -18.2 3397.7 8539.11
--82.4 130.4 3389.5 8607.699
-116.8 92.7 3386.3 8666.982
-7.1 283.9 3396.8 8769.769
--46.1 22.5 3393.1 8847.503
--3.4 -65.4 3384 8998.728
-201.3 -50.7 3403.7 9137.325
-156 -179.5 3391.5 9270.907
--235.3 -1 3385.7 9404.39
-87.8 -150.5 3384.3 9524.357
--251.7 2.7 3390 9625.319
--121.4 -21.3 3404.3 9786.325
--274.9 116.4 3391.1 9983.432
-23.1 53.7 3399.4 10159.449
-68 40.8 3399.5 10219.625
--38.3 134 3383 10338.590
--46.7 -71.6 3378.8 10400.610
-251.9 267.7 3387.3 10518.0
-183.5 -58.1 3385.6 10703.720
-78.2 47.3 3381.8 10819.232
-62.1 173.6 3396 10939.836
--20.1 -133.6 3389.4 11033.998
-20 9.1 3388.7 11201.868
--64.6 -241.8 3380.7 11394.762
-12.3 -167.9 3380.9 11516.445
--38.2 -112.3 3395.5 11593.138
--158.8 -90.5 3397.1 11760.585
--85.2 151.2 3390 11855.544
--35.2 -304.4 3392.8 11944.251
--153.1 -72.4 3401.5 12012.728
-6.5 21.7 3387.5 12090.133
--53.7 249.8 3382.7 12173.121
-8.9 249.2 3409.4 12363.290
--50.5 -118.2 3396.4 12469.823
--191.1 -120.6 3392.2 12580.427
--57.7 -253.5 3389.9 12733.109
-13.4 24.4 3396.6 12864.853
--40.6 -152.6 3392.4 12949.14
--30.9 164.6 3385.5 13059.183
-50.5 -19 3396.6 13175.47
--90.7 -308.2 3397.7 13307.662
--198.2 43 3378.3 13385.242
--91.2 104.8 3392.6 13486.976
-68.6 180.5 3389.9 13661.668
--43.9 -57.9 3393.4 13838.218
-125.7 274.4 3388.8 13908.768
--91.7 31.5 3398.6 14010.520
-101.6 -66.4 3396.4 14135.375
-44.4 151.9 3391.5 14243.442
-20.4 -17.6 3400.2 14336.689
--176.3 333.7 3404.5 14470.233
-23 7.8 3396.8 14544.610
--89.7 -159.9 3381.9 14707.751
-38.1 -49.9 3400.2 14816.420
-23.5 89.8 3382.9 14877.454
-87.2 -92.3 3392.8 15063.550
--115.4 -102.2 3388.8 15184.149
-285.5 10.6 3380.9 15303.452
-93.3 -45.6 3392.1 15431.875
--101.8 -75.8 3390.9 15589.746
-188.8 41 3395.7 15652.542
--15.5 -112.6 3398.9 15803.676
--20.3 -14.6 3395.1 15871.695
--202.9 64.6 3388.9 15936.624
-53.6 -25.7 3373.9 16076.225
--316.4 -39.5 3394 16190.351
-122.7 -26.4 3387.9 16339.851
-56.6 106.8 3397.2 16451.496
--157.3 -188.8 3399.9 16597.867
-15.2 185.7 3391.2 16694.52
--101.5 94.4 3381.2 16811.236
--17.1 -25.6 3386.3 16938.527
--118.4 189.8 3387 17012.406
--75.2 -25.2 3371.9 17089.853
-26.2 194.7 3401.2 17243.194
--17.8 72.6 3394.8 17343.146
--53.6 -113.8 3406.1 17472.8
-29.4 -93.3 3398.5 17611.236
--19.3 -21.1 3374.8 17734.236
-42.7 -80.1 3388 17859.281
--45.6 194.7 3380.2 18000.553
--73.4 16.7 3394.3 18123.870
-243.2 -88.3 3406.2 18303.845
-19.9 46.4 3396.9 18360.136
-170 7.4 3388 18450.881
-159.7 -95.4 3392.4 18606.617
--187.6 -59.4 3387.8 18764.546
--58.3 -1.7 3399.1 18880.288
-270.9 -162.3 3387.1 18991.327
-141 -193 3388.3 19083.164
-258.8 -173.8 3399.6 19224.845
--68.1 -33.7 3375.1 19358.347
--309.6 420.1 3401.4 19412.823
--15.5 -128.3 3392.1 19525.545
-90.1 -16.3 3406 19632.654
-132.2 -81.5 3386.6 19775.648
--76.7 -163.6 3404.5 19910.70
--4 -117.7 3378.9 20067.947
--95.4 64.5 3389.6 20208.230
-151.2 126.9 3394.5 20263.194
--474 -140.6 3395.6 20404.470
-0.9 42.4 3387.4 20537.756
-183 87.3 3390 20649.171
--153.6 -33.6 3406.3 20737.469
-57 77.6 3384.5 20826.565
-239.9 24.3 3387 21017.517
-2.1 158.2 3392.9 21175.581
--136 -224.1 3392.7 21302.360
-163.7 -95.7 3389.1 21421.831
--54.1 10.8 3395.4 21622.320
--199.1 -181.9 3388.5 21825.63
-164.9 142.4 3381.2 21922.128
-45.7 -140.6 3397.5 21989.360
--254.4 -2.7 3386.4 22055.59
diff --git a/new_code/test2.py b/new_code/test2.py
deleted file mode 100644
index 758fef2..0000000
--- a/new_code/test2.py
+++ /dev/null
@@ -1,131 +0,0 @@
-import sys
-from PySide6.QtWidgets import QApplication, QMainWindow, QGraphicsView
-from PySide6.QtUiTools import QUiLoader
-from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
-from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
-from matplotlib.figure import Figure
-import matplotlib.pyplot as plt
-from PySide6.QtWidgets import QVBoxLayout
-import CREAT
-import numpy as np
-import matplotlib as mpl
-
-
-class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
- self.toolbar = None
- self.canvas = None
- # 加载UI文件
- self.ui = QUiLoader().load('QT/PLT2.ui')
- # 更新图窗
- self.ui.graphicsView.repaint()
- self.ui.graphicsView.update()
- self.graphics_layout = QVBoxLayout(self.ui.graphicsView)
- # 绘制Matplotlib图形
- self.ui.pushButton_4.clicked.connect(lambda: self.plot_density())
-
- def plot_density(self):
- fig, ax = self.scene_fig()
- data_name = self.ui.lineEdit.text().split(',')
- level_nums = self.ui.spinBox_2.value()
- gWeight = self.ui.spinBox.value()
- data = CREAT.create()
- zmin = 1
- zmax = 0
- for i in range(len(data_name)):
- data.data_pre(data_name[i])
- data.contours_pre(level_nums, gWeight)
-
- """画出密度等高线"""
- f = data.f
- x_min, x_max = data.x_range[0], data.x_range[1]
- y_min, y_max = data.y_range[0], data.y_range[1]
- levels = data.levels
-
- xx, yy = np.mgrid[x_min:x_max:200j, y_min:y_max:200j]
- # 填充等高线图中间的区域
- cmap = mpl.colormaps.get_cmap('jet')
- colors = cmap(np.linspace(0, 1, level_nums))
- level = [levels[0], levels[-1]]
- ff = ax.contourf(xx, yy, f, levels=level, colors=colors[level_nums - i - 1:level_nums - i], alpha=1,
- zorder=len(data_name) - i)
- zmin = min(zmin, ff.zmin)
- zmax = max(zmax, ff.zmax)
- ax.set_xlabel('X')
- ax.set_ylabel('Y')
- ax.set_title('Density Distribution')
-
- # 生成colorbar
- sm = mpl.cm.ScalarMappable(cmap=cmap, norm=mpl.colors.Normalize(vmin=zmin, vmax=zmax))
- sm.set_array([])
- fig.colorbar(sm, ax=ax)
-
- wells_name = self.ui.lineEdit_4.text()
- if wells_name == '':
- self.canvas_adjust(fig)
- else:
- wells = CREAT.well_to_edge()
- wells.wells_name_and_position(wells_name)
- wells.welltoedge_distance(data.contours)
-
- """画井位信息"""
- typee = wells.type
- points = wells.position
- namee = wells.name
- min_distance = wells.min_distance
- contours_p = wells.welltoedge_points
- for i in range(len(points)):
- if typee[i][0] == 0:
- ax.scatter(points[i][0], points[i][1], marker='o', edgecolors='black', facecolors='none', s=100)
- ax.scatter(points[i][0], points[i][1], marker='o', edgecolors='black', facecolors='none', s=50,
- linewidths=1)
- ax.scatter(points[i][0], points[i][1], marker='o', edgecolors='black', facecolors='none', s=30)
- ax.text(points[i][0] + min_distance[i] / 20, points[i][1] - min_distance[i] / 20, f'{namee[i][0]}',
- fontdict={'size': '10', 'color': 'b'}, zorder=len(data_name) + 2) # 井名信息
- else:
-
- ax.scatter(points[i][0], points[i][1], marker='o', edgecolors='black', facecolors='black', s=100, zorder=len(data_name)+1)
- ax.text(points[i][0] + min_distance[i] / 20, points[i][1] - min_distance[i] / 20, f'{namee[i][0]}',
- fontdict={'size': '10', 'color': 'b'}, zorder=len(data_name) + 2) # 井名信息
- continue
- # 绘制油井边缘最短距离点的箭头并标出距离
- ax.quiver(points[i][0], points[i][1], contours_p[i][0] - points[i][0], contours_p[i][1] - points[i][1],
- angles='xy', scale=1.03,
- scale_units='xy', width=0.002, zorder=len(data_name)+1) # 绘制箭头
- ax.text(points[i][0] * 1 / 2 + contours_p[i][0] * 1 / 2 + min_distance[i] / 20,
- points[i][1] * 1 / 2 + contours_p[i][1] * 1 / 2 - min_distance[i] / 20, f'{round(min_distance[i], 2)}',
- fontdict={'size': '10', 'color': 'g'}) # 标出距离
- # ax.text(points[i][0] * 1 / 2 + contours_p[i][0] * 1 / 2 + min_distance[i] / 20,
- # points[i][1] * 1 / 2 + contours_p[i][1] * 1 / 2 - min_distance[i] / 20,
- # r'$\theta$=' f'{round(wells.angle[i], 2)}', fontdict={'size': '10', 'color': 'y'}) # 标出角度
- self.canvas_adjust(fig)
-
- def scene_fig(self):
- fig = Figure()
- # 在Figure对象中添加子图
- ax = fig.add_subplot(111)
- return fig, ax
-
- def canvas_adjust(self, fig):
- if self.canvas is not None:
- # 从布局中删除旧的 canvas 和 toolbar
- item = self.graphics_layout.takeAt(0)
- while item:
- widget = item.widget()
- if widget:
- widget.setParent(None)
- item = self.graphics_layout.takeAt(0)
- self.graphics_layout.removeWidget(self.canvas)
- self.canvas = FigureCanvas(fig)
- self.toolbar = NavigationToolbar(self.canvas, self.ui.graphicsView)
- self.toolbar.setParent(self.canvas)
- self.graphics_layout.addWidget(self.canvas)
- self.adjustSize()
-
-
-if __name__ == '__main__':
- app = QApplication([])
- stats = MainWindow()
- stats.ui.show()
- app.exec()
diff --git a/new_code/well.txt b/new_code/well.txt
deleted file mode 100644
index bc3d528..0000000
--- a/new_code/well.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-0 0 1 L40-5
--184 -243 0 L40-4
--258 178 0 L39-5
-188 -169 0 L41-5
-242 321 0 L40-6
-446 180 0 L41-6
\ No newline at end of file
diff --git a/test2.py b/test2.py
deleted file mode 100644
index 758fef2..0000000
--- a/test2.py
+++ /dev/null
@@ -1,131 +0,0 @@
-import sys
-from PySide6.QtWidgets import QApplication, QMainWindow, QGraphicsView
-from PySide6.QtUiTools import QUiLoader
-from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
-from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
-from matplotlib.figure import Figure
-import matplotlib.pyplot as plt
-from PySide6.QtWidgets import QVBoxLayout
-import CREAT
-import numpy as np
-import matplotlib as mpl
-
-
-class MainWindow(QMainWindow):
- def __init__(self):
- super().__init__()
- self.toolbar = None
- self.canvas = None
- # 加载UI文件
- self.ui = QUiLoader().load('QT/PLT2.ui')
- # 更新图窗
- self.ui.graphicsView.repaint()
- self.ui.graphicsView.update()
- self.graphics_layout = QVBoxLayout(self.ui.graphicsView)
- # 绘制Matplotlib图形
- self.ui.pushButton_4.clicked.connect(lambda: self.plot_density())
-
- def plot_density(self):
- fig, ax = self.scene_fig()
- data_name = self.ui.lineEdit.text().split(',')
- level_nums = self.ui.spinBox_2.value()
- gWeight = self.ui.spinBox.value()
- data = CREAT.create()
- zmin = 1
- zmax = 0
- for i in range(len(data_name)):
- data.data_pre(data_name[i])
- data.contours_pre(level_nums, gWeight)
-
- """画出密度等高线"""
- f = data.f
- x_min, x_max = data.x_range[0], data.x_range[1]
- y_min, y_max = data.y_range[0], data.y_range[1]
- levels = data.levels
-
- xx, yy = np.mgrid[x_min:x_max:200j, y_min:y_max:200j]
- # 填充等高线图中间的区域
- cmap = mpl.colormaps.get_cmap('jet')
- colors = cmap(np.linspace(0, 1, level_nums))
- level = [levels[0], levels[-1]]
- ff = ax.contourf(xx, yy, f, levels=level, colors=colors[level_nums - i - 1:level_nums - i], alpha=1,
- zorder=len(data_name) - i)
- zmin = min(zmin, ff.zmin)
- zmax = max(zmax, ff.zmax)
- ax.set_xlabel('X')
- ax.set_ylabel('Y')
- ax.set_title('Density Distribution')
-
- # 生成colorbar
- sm = mpl.cm.ScalarMappable(cmap=cmap, norm=mpl.colors.Normalize(vmin=zmin, vmax=zmax))
- sm.set_array([])
- fig.colorbar(sm, ax=ax)
-
- wells_name = self.ui.lineEdit_4.text()
- if wells_name == '':
- self.canvas_adjust(fig)
- else:
- wells = CREAT.well_to_edge()
- wells.wells_name_and_position(wells_name)
- wells.welltoedge_distance(data.contours)
-
- """画井位信息"""
- typee = wells.type
- points = wells.position
- namee = wells.name
- min_distance = wells.min_distance
- contours_p = wells.welltoedge_points
- for i in range(len(points)):
- if typee[i][0] == 0:
- ax.scatter(points[i][0], points[i][1], marker='o', edgecolors='black', facecolors='none', s=100)
- ax.scatter(points[i][0], points[i][1], marker='o', edgecolors='black', facecolors='none', s=50,
- linewidths=1)
- ax.scatter(points[i][0], points[i][1], marker='o', edgecolors='black', facecolors='none', s=30)
- ax.text(points[i][0] + min_distance[i] / 20, points[i][1] - min_distance[i] / 20, f'{namee[i][0]}',
- fontdict={'size': '10', 'color': 'b'}, zorder=len(data_name) + 2) # 井名信息
- else:
-
- ax.scatter(points[i][0], points[i][1], marker='o', edgecolors='black', facecolors='black', s=100, zorder=len(data_name)+1)
- ax.text(points[i][0] + min_distance[i] / 20, points[i][1] - min_distance[i] / 20, f'{namee[i][0]}',
- fontdict={'size': '10', 'color': 'b'}, zorder=len(data_name) + 2) # 井名信息
- continue
- # 绘制油井边缘最短距离点的箭头并标出距离
- ax.quiver(points[i][0], points[i][1], contours_p[i][0] - points[i][0], contours_p[i][1] - points[i][1],
- angles='xy', scale=1.03,
- scale_units='xy', width=0.002, zorder=len(data_name)+1) # 绘制箭头
- ax.text(points[i][0] * 1 / 2 + contours_p[i][0] * 1 / 2 + min_distance[i] / 20,
- points[i][1] * 1 / 2 + contours_p[i][1] * 1 / 2 - min_distance[i] / 20, f'{round(min_distance[i], 2)}',
- fontdict={'size': '10', 'color': 'g'}) # 标出距离
- # ax.text(points[i][0] * 1 / 2 + contours_p[i][0] * 1 / 2 + min_distance[i] / 20,
- # points[i][1] * 1 / 2 + contours_p[i][1] * 1 / 2 - min_distance[i] / 20,
- # r'$\theta$=' f'{round(wells.angle[i], 2)}', fontdict={'size': '10', 'color': 'y'}) # 标出角度
- self.canvas_adjust(fig)
-
- def scene_fig(self):
- fig = Figure()
- # 在Figure对象中添加子图
- ax = fig.add_subplot(111)
- return fig, ax
-
- def canvas_adjust(self, fig):
- if self.canvas is not None:
- # 从布局中删除旧的 canvas 和 toolbar
- item = self.graphics_layout.takeAt(0)
- while item:
- widget = item.widget()
- if widget:
- widget.setParent(None)
- item = self.graphics_layout.takeAt(0)
- self.graphics_layout.removeWidget(self.canvas)
- self.canvas = FigureCanvas(fig)
- self.toolbar = NavigationToolbar(self.canvas, self.ui.graphicsView)
- self.toolbar.setParent(self.canvas)
- self.graphics_layout.addWidget(self.canvas)
- self.adjustSize()
-
-
-if __name__ == '__main__':
- app = QApplication([])
- stats = MainWindow()
- stats.ui.show()
- app.exec()