第2天 CMG操作(builder)动态数据生成
- 格式:pptx
- 大小:4.17 MB
- 文档页数:26


C#动态创建和动态使⽤程序集、类、⽅法、字段等(⼀) 有时候在整个项⽬架构⾥也需要动态创建程序集的需求,那如何创建程序集呢,请跟我来学习⼀下吧。
⾸先需要知道动态创建这些类型是使⽤的⼀些什么技术呢?其实只要相关动态加载程序集呀,类呀,都是使⽤反射,那么动态创建也⼀样使⽤的是反射,是属于反射的技术!也就是将对象或者数据映射成⼀个对象或者程序集保存起来⽽已。
⾸先我们需要了解每个动态类型在.net中都是⽤什么类型来表⽰的。
程序集:System.Reflection.Emit.AssemblyBuilder(定义并表⽰动态程序集)构造函数:System.Reflection.Emit.ConstructorBuilder(定义并表⽰动态类的构造函数)⾃定义属性:System.Reflection.Emit.CustomAttributeBuilder(帮助⽣成⾃定义属性使⽤构造函数传递的参数来⽣成类的属性)枚举:System.Reflection.Emit.EnumBuilder(说明并表⽰枚举类型)事件:System.Reflection.Emit.EventBuilder(定义类的事件)字段:System.Reflection.Emit.FieldBuilder(定义并表⽰字段。
⽆法继承此类)局部变量:System.Reflection.Emit.LocalBuilder(表⽰⽅法或构造函数内的局部变量)⽅法:System.Reflection.Emit.MethodBuilder(定义并表⽰动态类的⽅法(或构造函数))模块:System.Reflection.Emit.ModuleBuilder(定义和表⽰动态程序集中的模块)参数:System.Reflection.Emit.ParameterBuilder(创建或关联参数信息如:⽅法参数,事件参数等)属性:System.Reflection.Emit.PropertyBuilder(定义类型的属性 (Property))类:System.Reflection.Emit.TypeBuilder(在运⾏时定义并创建类的新实例) 我们有了这些类型,基本上就可以动态创建我们的任何需要使⽤的类型,当然很多可以动态创建的类型我不可能都介绍完,如果在项⽬中有需要可以去查阅MSDN,⾥⾯都有DEMO的,主要的问题就是要理解每⼀种类型的定义,⽐如:程序集加载是靠AppDomain,程序集⾥包含多个模块,模块⾥可以声明类,类⾥可以创建⽅法、属性、字段。
Computer Modelling Group, Inc.加拿大数值模拟集团2008 Tutorial 2008培训教材Building, Running and Analyzing a“Black Oil” Reservoir Simulation Model建立、运行以及分析组分模拟模型Using 使用采用Builder2007.11组分模型- Field UnitsBuilder 2007.11 GEM 2007.11&在你硬盘上创建一个工作目录,把与该指南相关的图放在该目录下。
启动 CMG 主界面 (桌面上的图标或者开始/程序/CMG/Launcher)•选择菜单项Projects,然后Add Project.•浏览并选择存储图文件的目录•工程命名为Tutorial•点击确定回到主界面•现在你应该能看到工作目录打开 Builder(双击图标)•选择-GEM Simulator-Field Units-Single Porosity-today’s date-点击 ok•出现数据输入面板•点击File (位于左上角的菜单栏),然后Open Map File•选择Map Type –Atlas Boundary format,x/y坐标系的单位为ft•点击Browse按钮选择并导入构造顶部文件To10flt.bna•点击确定•点击窗口最大化按钮(窗口右上角的方块)使窗口最大化,以方便观察。
•点击Reservoir(位于菜单栏), 然后“Create Grid” ,选择“Non-Orthogonal Corner Point…”•点击按钮•右上角有个较小的向导将帮助建立网格。
需要4条边界线,包括开始的top-most, left-most, bottom-most以及最后的right-most.•通过鼠标点击油藏顶端的边缘数值化top-most boundary。
•点击Next line按钮,开始点击油藏边缘,完成Right-most boundary.•点击Next Line按钮,点击油藏边缘,完成Bottom-most boundary.•最后点击Next Line按钮,开始点击Left-most boundary(并不需要完全圈住,在下一步BUILDER自动找到最初的点,并与最后的点连接起来。
第三十二期:采用Builder地质统计学功能建模使用正确的能够反应实际油藏的地质模型在数值模拟的过程中是十分重要的。
传统的建模方法耗时较多,对开发人员的专业要求较高,因此获取难度较大。
而采用CMG-Builder地质统计学的功能,将地质、测井解释结果及其他结果输入到Builder中,按照操作要求即可建立油藏数值模拟模型。
建立的过程简单,且不需要转换不同软件的关键字输出。
下面为采用builder地质统计学功能来建模的操作流程:一、采用Builder任务管理工具创建一个地质模型1.启动CMG 主界面2.打开Builder (双击图标)3.选择:- IMAX Simulator, SI units, Single Porosity- Simulation Start date 2005-01-01, 确定2次4.在Reservoir 选择Build Static Model with Task Manager.5.将会得到下面的对话框6.选择默认选项Import Well Data from Well Trajectory Wizard. 输入井轨迹数据。
点击.7.选择文件类型: RMS Format;单位: x,y: m 和z, MD: m;RMS file: 选择所有的井‘well 1 ~well8’8.单击Next, 弹出对话框,关于某些井没有输入测量深度的警告,点Yes ,Next和Finish. 把任务管理窗口挪到一遍,就可以看到3D中的井轨迹。
9.RMS 格式已经有了一定的测井信息,然而,这还有一些额外的4口井的测井曲线,是*.LAS 格式的。
现在应该将其导入到地质模型中,选择Import well Datafrom Well Logs wizard (LAS2, Tables, ...),点击.10.点击Open File(s)... 按钮and 选择4 口井的数据,然后点击Open. 选择所有的井和测井曲线,然后点击OK.11. 在输入井轨迹和测井曲线后,紧接着就要导入井的分层数据。