diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..dc9ea49 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d1d781e --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/program_1.iml b/.idea/program_1.iml new file mode 100644 index 0000000..8437fe6 --- /dev/null +++ b/.idea/program_1.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ZS1.pos b/ZS1.pos new file mode 100644 index 0000000..b70ad97 --- /dev/null +++ b/ZS1.pos @@ -0,0 +1,169 @@ +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/ZS4.pos b/ZS4.pos new file mode 100644 index 0000000..4a498d2 --- /dev/null +++ b/ZS4.pos @@ -0,0 +1,192 @@ +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/CREAT.py b/new_code/CREAT.py new file mode 100644 index 0000000..3bc7706 --- /dev/null +++ b/new_code/CREAT.py @@ -0,0 +1,134 @@ +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 new file mode 100644 index 0000000..2dee90b --- /dev/null +++ b/new_code/QT/PLT2.ui @@ -0,0 +1,196 @@ + + + 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 new file mode 100644 index 0000000..b70ad97 --- /dev/null +++ b/new_code/ZS1.pos @@ -0,0 +1,169 @@ +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 new file mode 100644 index 0000000..4a498d2 --- /dev/null +++ b/new_code/ZS4.pos @@ -0,0 +1,192 @@ +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 new file mode 100644 index 0000000..758fef2 --- /dev/null +++ b/new_code/test2.py @@ -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 / 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 new file mode 100644 index 0000000..bc3d528 --- /dev/null +++ b/new_code/well.txt @@ -0,0 +1,6 @@ +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