主动源catalog里面的source id和19号文件夹里的文件名有关联,为了画出source分布图写了个脚本
from pathlib import Path
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
函数里面输入文件格式如下
def plot_zuobiaopd():
'''
得到li文件夹中所有19日sgy文件的坐标分布
'''
df = pd.read_csv('./li3.1/porotomo_sweep_all.dat', header = None, delimiter=r'\s+')
path = Path('./li3.1/')
sgy_list = []
index = []
for folders in path.rglob('*.sgy'): #指定日期和分量
sgy_list.append(folders)
index.append(folders.name.split('_')[0])
zuobiao = pd.DataFrame(columns=['name', 'utmeasting', 'utmnorthing'])
# zuobiao = np.zeros((len(sgy_list), 3))
for i in range(len(index)):
name = df.loc[int(index[i])][17]
east = df.loc[int(index[i])][10]
north = df.loc[int(index[i])][11]
zuobiao = zuobiao.append({'name':name, 'utmeasting':east, 'utmnorthing':north}, ignore_index = True)
plt.figure(figsize=(15,10))
plt.scatter(327961.54-320000, 4407554.94-4407000)
plt.annotate('well', xy = (327961.54-320000, 4407554.94-4407000), xytext = (327961.54-320000+10, 4407554.94-4407000) )
for i in range(len(zuobiao)):
plt.scatter(zuobiao.loc[i][1]-320000, zuobiao.loc[i][2]-4407000, c = 'r', s = 10)
plt.annotate(zuobiao.loc[i][0], xy = (zuobiao.loc[i][1]-320000, zuobiao.loc[i][2]-4407000), xytext = (zuobiao.loc[i][1]-320000, zuobiao.loc[i][2]-4407000))
plt.title('PoroTomo_3.19_DASV_source_distribution')
plt.xlabel('easting(m)')
plt.ylabel('northing(m)')
plt.show()
return zuobiao
# east north
如图
知识点1:dataframe给定column后,把数据按格式append进去
zuobiao = pd.DataFrame(columns=['name', 'utmeasting', 'utmnorthing'])
# zuobiao = np.zeros((len(sgy_list), 3))
for i in range(len(index)):
name = df.loc[int(index[i])][17]
east = df.loc[int(index[i])][10]
north = df.loc[int(index[i])][11]
zuobiao = zuobiao.append({'name':name, 'utmeasting':east, 'utmnorthing':north}, ignore_index = True)
dataframe可以把文字写出来,numpy的话,不能存字符,可以这样写
def plot_zuobiao():
'''
得到li文件夹中所有19日sgy文件的坐标分布
'''
df = pd.read_csv('./li3.1/porotomo_sweep_all.dat', header = None, delimiter=r'\s+')
path = Path('./li3.1/')
sgy_list = []
index = []
for folders in path.rglob('*.sgy'): #指定日期和分量
sgy_list.append(folders)
index.append(folders.name.split('_')[0])
# zuobiao = pd.DataFrame(columns=['name', 'utmeasting', 'utmnorthing'])
zuobiao = np.zeros((len(sgy_list), 3))
for i in range(len(index)):
zuobiao[i,0] = df.loc[int(index[i])][17][1:]
zuobiao[i,1] = df.loc[int(index[i])][10]
zuobiao[i,2] = df.loc[int(index[i])][11]
return zuobiao
# east north