这是一个由加油站油罐传感器测量的油罐高度数据和出油体积,根据体积和高度的倒数,用截面积来描述油罐形状,求出拟合曲线,再用标准数据,求积分来验证拟合曲线效果和误差的一个小项目。 主要的就是首先要安装anaconda python库,然后来运用这些数学工具。
###最小二乘法试验###
import numpy as np
import pymysql
from scipy.optimize import leastsq
from scipy import integrate
###绘图,看拟合效果###
import matplotlib.pyplot as plt
from sympy import *
path='e:\pythonprogram\oildata.txt'
lieh0 =[] #初始第一列,油管高度
liev1 =[] #初始第二列,油枪记录的体积
h_median =[] # 高度相邻中位数
h_subtract =[] #相邻高度作差
v_subtract =[] #相邻体积作差
select_h_subtr =[] #筛选的高度作差 ########
select_v_subtr =[] #筛选的体积作差
vdth=[] #筛选的v 和 t 的 倒数。
def loaddata(spath,lie0,lie1):
with open(spath,'r') as f0:
for i in f0:
tmp=i.split()
lie0.append(float(tmp[0]))
lie1.append(float(tmp[2]))
print ("source lie0",len(lie0))
def connectmysql():
db = pymysql.connect(host='10.**.**.**', user='root', passwd='***', db="zabbix", charset="utf8") # 校罐
cur = db.cursor()
try:
# 查询
cur.execute("select * from station_snapshot limit 10 ")
for row in cur.fetchall():
# print(row)
id = row[0]
snapshot_id = row[1]
datetime = row[13]
attr1v = row[5]
attr2h = row[6]
print("id=%d ,s