测井信息管理系统设计与实现
2014-07-28赵林
摘要:这篇文章描述了测井信息管理系统设计和实现。测井信息管理系统是基于测井数据管理和对测井数据进行图形化展示的系统。
关键词:管理信息系统;设计模式;c#;Sqlserver 2005 ;敏捷开发
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)18-4175-03
Design and Implementation of Well Log Information Management System
ZHAO Lin
(Changqing Oilfield Company of CNPC, Xi'an 710018, China)
Abstract: This paper describes design and implementation of well log information management system. Well log information management system is a system which is based on oil field well log data, and graph display.
Key word: Management Information System; GOF; c#; Sqlserver 2005; Agile Development
目前,国内外油田测井公司使用的测井仪器及各自处理系统的多样化致使测井数据记录格式非常多,而且格式彼此不兼容。面对众多的测井数据格式,常见的有las,716和wis等,油田勘探开发研究者无所适从,很多测井解释类的软件无法察看和解释测井数据,增加了研究工作的难度。另外,由于是文件管理,经常出现井和测井文件脱节的情况,经常出现有井找不到测井数据的情况。为了解决上面的问题,希望能开发一套测井数据管理和转换系统。该系统可以进行常规的油田工区井位信息管理,井位测井数据管理,后面如果有需要可以扩展,进行其它资料的管理。常规测井曲线文件的导入和转换为符合研究者使用的标准格式,同时,可以导出转换为常用的专业格式测井曲线文件。
1 系统设计
本软件采用c/s模式,前端客户端软件操作,后台数据库服务器。软件体系架构采用三层架构设计,设计图如图1软件架构图所示。三层架构设计,便于软件的开发和维护,实现“高内聚,低耦合”的思想。
1.1模块设计
通过和用户交流,同时参与到用户实际工作中,经过交流和分析,确定了软件的模块结构如下图2所示。同时,采用Mindjet MindManager工具心灵图(mind map)的来进行思路整理,同时和甲方进行交流沟通,提高了交流的准确性和精确性。
图2 软件模块图
1.2界面设计
软件设计开发中,软件的界面设计和布局相当重要,因为只有好的界面设计和用户体验,软件才有可能被用户接受和认可。好的软件设计,对于用户来说感觉不到人为的设计,而是认为一切都那么自然,舒服,就跟空气对于我们一样,离不开,但有感觉不到它的存在。在软件设计的时候遵循下面的理念和原则:
“Dont make me think”原则(不让用户思考的原则)。软件设计中,尽可能的减少用户的操作和思考,让用户做到轻松使用软件和工作。
软件操作风格和习惯和常用的办公软件office的风格一致,采用了ribbon模式减少用户的培训和学习。
1.3标准设计
为了增加软件的通用性和标准性,增加产品的竞争力。制定并公开了本系统的测井曲线格式标准。这样其他公司只需要做特定的动态库,将所需要的测井数据文件转换为软件给定格式的文件。就可以在本系统中使用和编辑操作。方便了用户的使用和后期的维护和扩展。
结合常用的测井数据格式文件和标准,参考了加拿大测井协会的LAS(测井ASCII标准)。制定了符合用户需要的测井数据格式。
Struct CurveInfo
{string Name ; //曲线名称
string Unit; //单位
string DepthUnit; //深度单位
double InvalidateValue; //无效值
double BeginDepth; //起始深度
double EndDepth; //终止深度
double Step; //间隔深度
double[] Values; //值列表
}
基于这个标准,可以将用户的测井数据,转换为软件所需要的数据,通过对应的软件接口函数,读取并图形展示。
2 系统实现
2.1 数据库实现
下面,数据库的部分数据表信息。
1)油田区块信息表
表名称:WORKAREA_INFO_TABLE
表说明:油田区块信息表
表1
2)井位信息表
表名称:WELL_INFO_TABLE
表说明: 井位信息表
表2
2.2 测井格式转换实现
为了实现几种主要的测井数据格式文件的转换,软件采用了抽象工厂(Abstract Factory)模式设计,来实现测井曲线文件的数据加载,获取曲线名称列表和获取曲线数据信息。具体的接口定义和对实现类如下。
//测井曲线数据读取和处理文件接口类
IwellLogDataProcessor
{Bool LoadFile(String FileName); //加载曲线文件
GetCurveNames(ref String[] CurveName); //获取曲线名称列表
GetCurveInfo( String CurveName, ref CurveInfo curveInfo); //获取给定名称曲线信息
}
派生并实现716格式文件测井曲线读取类
Cg716WellLogDataProcessor
{……}
派生并实现 LAS格式文件测井曲线读取类
CgLASWellLogDataProcessor
{……}
另外,在开发中,为了选择合理的文件读取类,采用了工厂模式(Factory Method)来选择合理的文件读取处理类,提高了软件的可读性和可维护性。
//测井数据文件工程类
CgWellLogDataFactory
{//根据文件名称获取文件读取处理类,716文件的扩展名为716。Las文件的扩展名为las。
IwellLogDataProcessor GetWellLogDataProcessor(String FileName)
}
3 应用实例
3.1工区井位管理
软件采用了工区井位的模式来管理井位和测井曲线,合理的分组处理,极大地方便了用户数据管理和操作。树状结构管理,方便了用户的操作和应用研究,用户比较满意。
3.2测井数据的图形展示
在数据的读取和存储的基础上,通过调用UserControl控件,在其上实现了测井曲线数据的图形展示,如图3所示。其中两个测井数据曲线展示,一个为线性道展示,一个是对数道展示。符合石油行业的图形展示规范,满足用户勘探开发研究的需要。
4 结束语
测井信息管理信息系统在该公司使用后,用户体验良好,工作效率有了极大的提高。同时,该企业的信息负责部门对软件的开发模式和架构也比较满意,对于软件的后期维护和扩展比较满意。以上就是本次软件系统开发的经验总结,抛砖引玉,有不足之处,希望批评指正。
参考文献:
[1] 王翔.设计模式:基于C#的工程化实现及扩展[M].北京:电子工业出版社,2009.
[2] Robert C Martin .敏捷软件开发-原则、模式与实践[M].邓辉,译.北京:清华大学出版社,2003.
[3] 施伯乐.数据库系统教程[M].北京:高等教育出版社,2008.
[4] Reenskaug, Trygve. THING-MODEL-VIEW-EDITOR: an Example from a planningsystem,1979.
[5] Donald Hearn.计算机图形学[M].北京:电子工业出版社,2005.
[6] JungHyun Han.计算机图形学-基于3D图形开发技术[M].北京:清华大学出版社,2013.
[7] 冀振燕.UML系统分析设计与应用案例[M].北京:人民出版社,2003.endprint
//测井曲线数据读取和处理文件接口类
IwellLogDataProcessor
{Bool LoadFile(String FileName); //加载曲线文件
GetCurveNames(ref String[] CurveName); //获取曲线名称列表
GetCurveInfo( String CurveName, ref CurveInfo curveInfo); //获取给定名称曲线信息
}
派生并实现716格式文件测井曲线读取类
Cg716WellLogDataProcessor
{……}
派生并实现 LAS格式文件测井曲线读取类
CgLASWellLogDataProcessor
{……}
另外,在开发中,为了选择合理的文件读取类,采用了工厂模式(Factory Method)来选择合理的文件读取处理类,提高了软件的可读性和可维护性。
//测井数据文件工程类
CgWellLogDataFactory
{//根据文件名称获取文件读取处理类,716文件的扩展名为716。Las文件的扩展名为las。
IwellLogDataProcessor GetWellLogDataProcessor(String FileName)
}
3 应用实例
3.1工区井位管理
软件采用了工区井位的模式来管理井位和测井曲线,合理的分组处理,极大地方便了用户数据管理和操作。树状结构管理,方便了用户的操作和应用研究,用户比较满意。
3.2测井数据的图形展示
在数据的读取和存储的基础上,通过调用UserControl控件,在其上实现了测井曲线数据的图形展示,如图3所示。其中两个测井数据曲线展示,一个为线性道展示,一个是对数道展示。符合石油行业的图形展示规范,满足用户勘探开发研究的需要。
4 结束语
测井信息管理信息系统在该公司使用后,用户体验良好,工作效率有了极大的提高。同时,该企业的信息负责部门对软件的开发模式和架构也比较满意,对于软件的后期维护和扩展比较满意。以上就是本次软件系统开发的经验总结,抛砖引玉,有不足之处,希望批评指正。
参考文献:
[1] 王翔.设计模式:基于C#的工程化实现及扩展[M].北京:电子工业出版社,2009.
[2] Robert C Martin .敏捷软件开发-原则、模式与实践[M].邓辉,译.北京:清华大学出版社,2003.
[3] 施伯乐.数据库系统教程[M].北京:高等教育出版社,2008.
[4] Reenskaug, Trygve. THING-MODEL-VIEW-EDITOR: an Example from a planningsystem,1979.
[5] Donald Hearn.计算机图形学[M].北京:电子工业出版社,2005.
[6] JungHyun Han.计算机图形学-基于3D图形开发技术[M].北京:清华大学出版社,2013.
[7] 冀振燕.UML系统分析设计与应用案例[M].北京:人民出版社,2003.endprint
//测井曲线数据读取和处理文件接口类
IwellLogDataProcessor
{Bool LoadFile(String FileName); //加载曲线文件
GetCurveNames(ref String[] CurveName); //获取曲线名称列表
GetCurveInfo( String CurveName, ref CurveInfo curveInfo); //获取给定名称曲线信息
}
派生并实现716格式文件测井曲线读取类
Cg716WellLogDataProcessor
{……}
派生并实现 LAS格式文件测井曲线读取类
CgLASWellLogDataProcessor
{……}
另外,在开发中,为了选择合理的文件读取类,采用了工厂模式(Factory Method)来选择合理的文件读取处理类,提高了软件的可读性和可维护性。
//测井数据文件工程类
CgWellLogDataFactory
{//根据文件名称获取文件读取处理类,716文件的扩展名为716。Las文件的扩展名为las。
IwellLogDataProcessor GetWellLogDataProcessor(String FileName)
}
3 应用实例
3.1工区井位管理
软件采用了工区井位的模式来管理井位和测井曲线,合理的分组处理,极大地方便了用户数据管理和操作。树状结构管理,方便了用户的操作和应用研究,用户比较满意。
3.2测井数据的图形展示
在数据的读取和存储的基础上,通过调用UserControl控件,在其上实现了测井曲线数据的图形展示,如图3所示。其中两个测井数据曲线展示,一个为线性道展示,一个是对数道展示。符合石油行业的图形展示规范,满足用户勘探开发研究的需要。
4 结束语
测井信息管理信息系统在该公司使用后,用户体验良好,工作效率有了极大的提高。同时,该企业的信息负责部门对软件的开发模式和架构也比较满意,对于软件的后期维护和扩展比较满意。以上就是本次软件系统开发的经验总结,抛砖引玉,有不足之处,希望批评指正。
参考文献:
[1] 王翔.设计模式:基于C#的工程化实现及扩展[M].北京:电子工业出版社,2009.
[2] Robert C Martin .敏捷软件开发-原则、模式与实践[M].邓辉,译.北京:清华大学出版社,2003.
[3] 施伯乐.数据库系统教程[M].北京:高等教育出版社,2008.
[4] Reenskaug, Trygve. THING-MODEL-VIEW-EDITOR: an Example from a planningsystem,1979.
[5] Donald Hearn.计算机图形学[M].北京:电子工业出版社,2005.
[6] JungHyun Han.计算机图形学-基于3D图形开发技术[M].北京:清华大学出版社,2013.
[7] 冀振燕.UML系统分析设计与应用案例[M].北京:人民出版社,2003.endprint