Python一键生成井身结构图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python一键生成井身结构图

1.准备如下.CSV文件井眼轨迹数据及固井数据,如水泥返高等。如下图

2.将程序里面的读取路径更改为上述CSV文件存放路径。

3.运行程序,即可生成如下井身结构图。

4.Python代码如下:

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd

import cv2

from PIL import Image, ImageDraw, ImageFont

data = pd.read_csv(r'C:\Users\Administrator\Desktop\2.CSV',encoding='gbk')#编码中文

# 获取“井眼垂深”,“水平位移”,存放于数组

data1 = data['TVD depth'] # 获取名字为TVD depth-列的数据

coordinate_H = data1.values.tolist() # 将csv文件中TVD depth列中的数据保存到列表中

data1 = data['Closure Distance'] # 获取名字为Closure Distance列的数据coordinate_W = data1.values.tolist() # 将csv文件中Closure Distance列中的数据保存到列表中

data1 = data['key_points'] # 获取名字为key_points列的数据

key_points = data1.values.tolist() # 将csv文件中key_points列中的数据保存到列表中

# 平移函数

def pingyi(list, s):

list1 = []

for i in list:

list1.append(i + s)

list = list1

return list

# width = 0.35 # the width of the bars: can also be len(x) sequence

# fig, ax = plt.subplots()

# ax.plot(coordinate_W, coordinate_H, color='tab:blue')

plt.xticks([]) # 去掉x轴

plt.yticks([]) # 去掉y轴

plt.axis('off') # 去掉坐标轴

plt.xlim(-5000, 7000) # 设置X轴范围

plt.ylim(-800, 3500) # 设置Y轴范围

# 设置plt.plot()划线的线条属性

color = (0, 0, 0)

linewidth = 1

linestyle = '-'

#设置文本属性

fontsize = 8

left = 260

right = 0

# 初始化向左或向右平移距离

s = [-420, 420, -300, 300, -210, 210, -140, 140]

# s1 = 350#向左或者向右平移距离

# s2 = -350#向左或者向右平移距离

# s3 = 300#向左或者向右平移距离

# s4 = -300#向左或者向右平移距离

# 自定义井口数据

a = -100 # 井口垂直增加长度

b = 1 # 井口垂直增加长度,起点坐标上移1,避免重复划线

# x0 = [coordinate_W[0],coordinate_W[0]+b]#垂直线

# y0 = [coordinate_H[0],a+b]#垂直线

# plt.plot(x0, y0, color=(0,0,0),linewidth=1, linestyle='-')

# plt.plot(coordinate_W, coordinate_H, color=(0,0,0),linewidth=1, linestyle='-')

h = 0 # 标记一开、二开及三开等下深位置(垂深)

# 中间线

middle_point_x = [coordinate_W[h], coordinate_W[h]]

middle_point_y = [coordinate_H[h] + b - 350, coordinate_H[h] - 40]

plt.plot(middle_point_x, middle_point_y, color='red', linewidth=1,

linestyle='-.')

plt.plot(coordinate_W, coordinate_H, color='red', linewidth=1, linestyle='-.')

#海平面,泥面

#左边

l = -560

r = 560

plt.text(coordinate_W[h]-1150+l, coordinate_H[h]-80,

r'~~~~~',fontsize=8,color='black')

plt.text(coordinate_W[h]-1165+l, coordinate_H[h]-40,

r'~~~~~',fontsize=8,color='black')

plt.text(coordinate_W[h]-1150+l, coordinate_H[h]-0,

r'~~~~~',fontsize=8,color='black')

# plt.text(coordinate_W[h]-1165+l, coordinate_H[h]+40,

相关文档
最新文档