从petrel软件导出来的等值线格式不能直接加入Geomap软件,所以需要进行一些数据预处理
做这个事情是想探索一下Geomap4.0的使用方法,毕竟Geomap3.6用了太久,也该换新的了。
遇到的第一个难题就是Geomap4.0需要加载的数据和3.6完全不同,不知道该把数据处理成什么样子。
思索了n长时间后,想出了一个解决方法:就是先建立一个3.6版本的工区,然后拿4.0版本打开,然后再导出成4.0版本的数据,这个数据不就是4.0可以加载的数据了么。我可真牛逼,所以开始动工。
基本流程
1. petrel导出等值线格式为Zmap+
2. 用python的pandas库处理数据***重点***
- 用Pandas读取数据,给四列数据加个名字,x,y,num,z
- 删除z列的重复项
- 将数据按照num分割开 存进一个列表
- 创建一个一行的空值的DataFrame,列名为x,y,num,z
- 把空的DataFrame加到每个分隔开的数据后面
- 将所有数据整合在一起
3. 在geomap4.0加载等值线
一、导出的Zmap+格式和的数据长这样(原数据)
二、Geomap4.0可加载的等值线数据长这样(处理后)
三、用python的pandas库处理数据
1. 读取数据
import pandas as pd
fpath = "petrel_Zmap.txt"
df = pd.read_table(fpath,
sep = '\s+', # 表明输入数据按照空格以及多个空格分列
#delim_whitespace = True,
header = None,
names = ['x', 'y', 'num', 'z'],
engine='python')
2.删除z列重复项
#新增一列 判断以num列分组 z值的重复项
df['bool'] = df.duplicated("num")
#删除“Z”重复项
df.loc[df['bool'], 'z'] = ""
print(df.head(5))
结果为
3.按照num列分隔数据存入列表
#计算循环次数
number = df['num'