Compare commits
No commits in common. '089aa0008dfa1295c43e4adc8d052eb05b49864f' and 'bb80232bc37b8953b4f329932c4d546e0c55c529' have entirely different histories.
089aa0008d
...
bb80232bc3
@ -1,113 +0,0 @@
|
||||
112
|
||||
-45.9 -71.2 1009.9 10.384
|
||||
-74.3 135.3 1006.9 65.182
|
||||
4.1 -38.5 1007.9 96.275
|
||||
-6 148.3 1006.9 254.818
|
||||
26.9 -5.9 1005.9 353.900
|
||||
-80.9 -10.8 1006.9 400.117
|
||||
-12.7 -127.7 1006.9 554.83
|
||||
66.9 -31.1 1009.9 837.881
|
||||
-28.1 -39.8 1006.9 1031.90
|
||||
-32.8 20.5 1006.9 1281.306
|
||||
36.5 -25.1 1006.9 1411.553
|
||||
-92.1 13.7 1006.9 1439.940
|
||||
-79.2 105.5 1011.9 1500.433
|
||||
99.7 63.1 1006.9 1542.607
|
||||
-26.3 3.3 1006.9 1549.297
|
||||
-63.1 -0.1 1010.9 1685.309
|
||||
-11.3 4.1 1004.9 1923.693
|
||||
34.6 -51.2 1006.9 2083.725
|
||||
36 69.5 1001.9 2136.755
|
||||
177.9 0.5 1012.9 2311.923
|
||||
-3.7 -5.8 1003.9 2345.193
|
||||
-8.1 -9 1004.9 2497.272
|
||||
-18.1 -5.2 1001.9 2673.628
|
||||
109.9 1.4 1006.9 2687.248
|
||||
137.8 -41.5 1006.9 2729.813
|
||||
44 -0.5 1008.9 2908.834
|
||||
-5.2 -32.3 1006.9 2913.675
|
||||
198.3 60.8 1006.9 3084.214
|
||||
11.1 -91.6 1006.9 3298.919
|
||||
-4.9 4.9 1013.9 3523.955
|
||||
19.6 -35.7 1008.9 3695.617
|
||||
-37.4 -26.9 1008.9 3916.784
|
||||
137.6 -42.9 1008.9 3938.952
|
||||
7.1 -10.1 1006.9 4063.108
|
||||
80.6 -103.8 1006.9 4107.944
|
||||
8.9 -20.9 1006.9 4183.385
|
||||
-44 -6 1007.9 4310.811
|
||||
-50.1 28.4 1009.9 4491.107
|
||||
104 97.2 1001.9 4715.866
|
||||
-60.3 -41.4 1006.9 4772.88
|
||||
61.3 58.9 1006.9 5042.962
|
||||
-121.1 -82.8 1006.9 5181.381
|
||||
31.5 -22.7 1002.9 5373.757
|
||||
-41.9 170 1006.9 5472.766
|
||||
-7.3 5.2 1006.9 5521.58
|
||||
82.8 102.9 1011.9 5636.275
|
||||
154.7 106.1 1011.9 5756.394
|
||||
-37.8 18.5 998.9 5880.473
|
||||
-151.5 -1.2 1005.9 5907.330
|
||||
10.2 4.8 1007.9 6024.836
|
||||
80.3 26.1 1002.9 6050.715
|
||||
-144.7 -101.9 1004.9 6163.211
|
||||
9.1 -57.8 1006.9 6404.898
|
||||
-122.7 -22.3 1011.9 6442.493
|
||||
8 2.4 1007.9 6652.171
|
||||
-182.8 -0.4 1004.9 6935.490
|
||||
25 48.1 1006.9 7113.943
|
||||
-93.6 116.2 1006.9 7237.796
|
||||
-110.2 -14 1006.9 7414.765
|
||||
-101.6 -19.4 1014.9 7642.493
|
||||
-76.8 -12.3 1007.9 7755.607
|
||||
1.6 -26.1 1008.9 7814.322
|
||||
-201.5 1.2 1006.9 7915.129
|
||||
37.5 63.5 1004.9 8003.43
|
||||
21.2 -173.7 1006.9 8089.478
|
||||
-5.5 143.1 1004.9 8316.296
|
||||
-67.6 -52.5 1007.9 8394.665
|
||||
-156.4 15.6 1010.9 8604.577
|
||||
-89.1 31.6 1007.9 8730.251
|
||||
-34.6 -29.8 1006.9 8874.838
|
||||
11.5 -131.3 1008.9 8938.423
|
||||
10.2 4.9 1004.9 8958.814
|
||||
9.2 -46.1 1006.9 9135.222
|
||||
95.2 171 1010.9 9267.394
|
||||
19.3 50.3 1010.9 9344.557
|
||||
127.7 -61.9 1010.9 9574.948
|
||||
7.5 -96.9 1005.9 9668.554
|
||||
6.1 -74.5 1008.9 9855.509
|
||||
-148.6 22.3 1009.9 9903.75
|
||||
39.2 103.1 1010.9 10066.866
|
||||
-80.4 48 1006.9 10208.58
|
||||
157.1 101.1 1006.9 10490.953
|
||||
-92 30.2 1007.9 10499.380
|
||||
111.1 73.2 1009.9 10643.279
|
||||
1.4 -29.7 1006.9 10690.866
|
||||
9.7 -141.4 1007.9 10804.785
|
||||
-0.4 2.5 1003.9 11081.846
|
||||
-8.9 -144.1 1000.9 11233.580
|
||||
-92.8 -26.4 1009.9 11419.149
|
||||
-35.8 38.4 1006.9 11657.103
|
||||
62.8 149.6 1006.9 11853.628
|
||||
40.7 73.8 1009.9 11895.399
|
||||
-38.8 -56.2 1004.9 12158.102
|
||||
69.3 -101.4 1004.9 12196.795
|
||||
-7.4 -4.4 1000.9 12254.790
|
||||
-176.5 -81.9 1001.9 12306.909
|
||||
-34.5 -42.2 1008.9 12375.591
|
||||
-2.5 3.9 1010.9 12391.64
|
||||
-2.5 -1 1008.9 12561.584
|
||||
-128.9 -34.1 1006.9 12669.326
|
||||
83.6 52.6 1001.9 12799.414
|
||||
-48.4 28.4 1005.9 13009.623
|
||||
-55.2 20.7 1002.9 13277.377
|
||||
2 -8.8 1010.9 13432.271
|
||||
-63.7 62.3 1006.9 13496.217
|
||||
29.3 29.6 1007.9 13550.730
|
||||
26 -0.2 1009.9 13572.226
|
||||
108.2 104.8 1006.9 13675.451
|
||||
-34.5 129 1006.9 14009.216
|
||||
113.9 133.5 1006.9 14096.519
|
||||
-32.7 -58.4 1006.9 14356.918
|
||||
1 45.2 1003.9 14454.743
|
@ -1,114 +0,0 @@
|
||||
112
|
||||
-45.9 -71.2 1009.9 10.384
|
||||
-74.3 135.3 1006.9 65.182
|
||||
4.1 -38.5 1007.9 96.275
|
||||
-6 148.3 1006.9 254.818
|
||||
26.9 -5.9 1005.9 353.900
|
||||
-80.9 -10.8 1006.9 400.117
|
||||
-12.7 -127.7 1006.9 554.83
|
||||
66.9 -31.1 1009.9 837.881
|
||||
-28.1 -39.8 1006.9 1031.90
|
||||
-32.8 20.5 1006.9 1281.306
|
||||
36.5 -25.1 1006.9 1411.553
|
||||
-92.1 13.7 1006.9 1439.940
|
||||
-79.2 105.5 1011.9 1500.433
|
||||
99.7 63.1 1006.9 1542.607
|
||||
-26.3 3.3 1006.9 1549.297
|
||||
-63.1 -0.1 1010.9 1685.309
|
||||
-11.3 4.1 1004.9 1923.693
|
||||
34.6 -51.2 1006.9 2083.725
|
||||
36 69.5 1001.9 2136.755
|
||||
177.9 0.5 1012.9 2311.923
|
||||
-3.7 -5.8 1003.9 2345.193
|
||||
-8.1 -9 1004.9 2497.272
|
||||
-18.1 -5.2 1001.9 2673.628
|
||||
109.9 1.4 1006.9 2687.248
|
||||
137.8 -41.5 1006.9 2729.813
|
||||
44 -0.5 1008.9 2908.834
|
||||
-5.2 -32.3 1006.9 2913.675
|
||||
198.3 60.8 1006.9 3084.214
|
||||
11.1 -91.6 1006.9 3298.919
|
||||
-4.9 4.9 1013.9 3523.955
|
||||
19.6 -35.7 1008.9 3695.617
|
||||
-37.4 -26.9 1008.9 3916.784
|
||||
137.6 -42.9 1008.9 3938.952
|
||||
7.1 -10.1 1006.9 4063.108
|
||||
80.6 -103.8 1006.9 4107.944
|
||||
8.9 -20.9 1006.9 4183.385
|
||||
-44 -6 1007.9 4310.811
|
||||
-50.1 28.4 1009.9 4491.107
|
||||
104 97.2 1001.9 4715.866
|
||||
-60.3 -41.4 1006.9 4772.88
|
||||
61.3 58.9 1006.9 5042.962
|
||||
-121.1 -82.8 1006.9 5181.381
|
||||
31.5 -22.7 1002.9 5373.757
|
||||
-41.9 170 1006.9 5472.766
|
||||
-7.3 5.2 1006.9 5521.58
|
||||
82.8 102.9 1011.9 5636.275
|
||||
154.7 106.1 1011.9 5756.394
|
||||
-37.8 18.5 998.9 5880.473
|
||||
-151.5 -1.2 1005.9 5907.330
|
||||
10.2 4.8 1007.9 6024.836
|
||||
80.3 26.1 1002.9 6050.715
|
||||
-144.7 -101.9 1004.9 6163.211
|
||||
9.1 -57.8 1006.9 6404.898
|
||||
-122.7 -22.3 1011.9 6442.493
|
||||
8 2.4 1007.9 6652.171
|
||||
-182.8 -0.4 1004.9 6935.490
|
||||
25 48.1 1006.9 7113.943
|
||||
-93.6 116.2 1006.9 7237.796
|
||||
-110.2 -14 1006.9 7414.765
|
||||
-101.6 -19.4 1014.9 7642.493
|
||||
-76.8 -12.3 1007.9 7755.607
|
||||
1.6 -26.1 1008.9 7814.322
|
||||
-201.5 1.2 1006.9 7915.129
|
||||
47.5 67.5 1001.9 8009.43
|
||||
21.3 -173.7 1006.9 8089.478
|
||||
-1.5 143.1 1004.9 8616.296
|
||||
-6.6 -52.5 1027.9 8394.665
|
||||
-16.4 15.6 1310.9 8694.577
|
||||
-89.1 31.6 1007.9 8730.251
|
||||
-34.6 -29.8 1006.9 8874.838
|
||||
11.5 -131.3 1008.9 8938.423
|
||||
10.2 4.9 1004.9 8958.814
|
||||
9.2 -46.1 1006.9 9135.222
|
||||
95.2 171 1010.9 9267.394
|
||||
19.3 50.3 1010.9 9344.557
|
||||
127.7 -61.9 1010.9 9574.948
|
||||
7.5 -96.9 1005.9 9668.554
|
||||
6.1 -74.5 1008.9 9855.509
|
||||
-148.6 22.3 1009.9 9903.75
|
||||
39.2 103.1 1010.9 10066.866
|
||||
-80.4 48 1006.9 10208.58
|
||||
157.1 101.1 1006.9 10490.953
|
||||
-92 30.2 1007.9 10499.380
|
||||
111.1 73.2 1009.9 10643.279
|
||||
1.4 -29.7 1006.9 10690.866
|
||||
9.7 -141.4 1007.9 10804.785
|
||||
-0.4 2.5 1003.9 11081.846
|
||||
-8.9 -144.1 1000.9 11233.580
|
||||
-92.8 -26.4 1009.9 11419.149
|
||||
-35.8 38.4 1006.9 11657.103
|
||||
62.8 149.6 1006.9 11853.628
|
||||
40.7 73.8 1009.9 11895.399
|
||||
-38.8 -56.2 1004.9 12158.102
|
||||
69.3 -101.4 1004.9 12196.795
|
||||
-7.4 -4.4 1000.9 12254.790
|
||||
-176.5 -81.9 1001.9 12306.909
|
||||
-34.5 -42.2 1008.9 12375.591
|
||||
-2.5 3.9 1010.9 12391.64
|
||||
-2.5 -1 1008.9 12561.584
|
||||
-128.9 -34.1 1006.9 12669.326
|
||||
83.6 52.6 1001.9 12799.414
|
||||
-48.4 28.4 1005.9 13009.623
|
||||
-55.2 20.7 1002.9 13277.377
|
||||
2 -8.8 1010.9 13432.271
|
||||
-63.7 62.3 1006.9 13496.217
|
||||
29.3 29.6 1007.9 13550.730
|
||||
26 -0.2 1009.9 13572.226
|
||||
108.2 104.8 1006.9 13675.451
|
||||
-34.5 129 1006.9 14009.216
|
||||
113.9 133.5 1006.9 14096.519
|
||||
-32.7 -58.4 1006.9 14356.918
|
||||
1 45.2 1003.9 14454.743
|
||||
-145.3 32.2 1008.9 14323.789
|
@ -0,0 +1,131 @@
|
||||
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 / 9 + contours_p[i][0] * 8 / 9 + min_distance[i] / 20,
|
||||
points[i][1] * 1 / 9 + contours_p[i][1] * 8 / 9 - 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()
|
Loading…
Reference in New Issue