基于OsgEarth地形仿真

基于OsgEarth地形仿真
基于OsgEarth地形仿真

osgEarth 地形仿真:基于osgEarth 扩展,展示:

1 全球30米影像、局部到2.5米影像

2 全球30米地形(包括海洋)

特点:1 速度流畅,运行稳定 2 以自定义驱动插件(dll )形式提供,简单方便

应用:

ERDAS 的三维地形可视化

南昌工程学院 毕业设计(论文) 水利与生态工程系(院)测绘工程专业毕业设计(论文)题目ERDAS的三维地形可视化 学生姓名章鹏 班级测绘工程(1)班 学号2011101843 指导教师何湘春 完成日期2015年6月1日

ERDAS的三维地形可视化 The visualization of3D terrain ERDAS 总计毕业设计33页 表格1个 插图16幅

南昌工程学院本(专)科毕业设计(论文) 摘要 随着经济与科学的迅速发展,三维可视化技术渐渐走向成熟,近来越来越受到人们的关注。本文分析了实现三维地形可视化的方法和步骤。将该地形图的高程点文件转换为IMG格式的数字高程模型的文件,然后将其与含该区域的TM影像图进行叠加,从而实现了三维地形的可视化。并在此基础上分析了三维地形可视化的应用。最后总结了在本次研究中所遇到的问题、解决方法以及所取得的成果。 关键词:三维地形可视化ERDAS ARCGIS数字高程模型

ABSTRACT ABSTRACT With the rapid development of economy and science,3D visualization technology gradually mature,recently more and more attention.This paper analyzes the realization method and steps of3D terrain visualization.The elevation of the terrain map file is converted to digital elevation model IMG format file,and then the stack with TM image with the area,so as to realize the visualization of3D terrain. Based on the analysis of the application of3D terrain visualization.Finally summarizes the encountered in this study,the problem solving methods and achievements. Key word:The visualization of3D Terrain ERDAS ARCGIS DEM

FLUENT在复杂地形风场精细模拟中的应用研究.pdf

FLUENT在复杂地形风场精细模拟中的应用研究* 李 磊 (深圳市国家气候观象台,深圳市气象局,深圳,518040) 摘 要 本文尝试将计算流体力学软件FLUENT用于复杂地形风场的精细模拟研究,所进行的一系列数值模拟试验表明:由于采用了中尺度模式较少采用的计算机辅助建模、非结构化网格和有限体积法等技术,FLUENT 可以实现复杂地形乃至极度陡峭地形上的风场模拟,完成普通中尺度模式难以完成的任务。相比于普通中尺度模式,FLUENT可以更为精确地描述下垫面的复杂地形特征,因而能够在小尺度范围内得到分辨率更高、且更为准确的复杂地形上的近地层风场模拟结果。 关键词:FLUENT, 计算流体力学, 复杂地形, 风场, 精细模拟 1 引言 了解近地层的风场特征,对于风能评估、大气环境影响评价以及气象灾害风险评估都有着非常重要的意义。然而在复杂地形上,近地层风场分布具有高度的非均匀性,观测数据所能代表的范围非常有限,在这种情况下,利用数值模拟方法获得复杂地形条件下高分辨率的近地层风场资料,就显得非常重要。 事实上,模拟复杂地形上的风场结构,一直是大气科学中一个重要的问题,许多学者已经针对大气环境评价、风能评估等不同方面的需求,从不同角度展开研究,并取得了丰富的成果[1-11]。这些研究主要基于中尺度模式展开,通常采用地形追随坐标,通过方程组的坐标变换来描述复杂地形,在数值计算方法上以差分格式为主。中尺度模式的空间分辨率最高可达到100m数量级,且在模拟的前处理阶段需要对地形进行不同程度平滑,以获得计算上的稳定性[12, 13]。对于中尺度模式而言,当遇到极为陡峭的地形时,有可能出现积分溢出的情况。 近年来,计算流体力学(Computational Fluid Dynamics,CFD)类的模式在气象领域的应用正在得到越来越多的关注,尤其是在城市微尺度风场及污染扩散研究中已经得到了较广泛的应用[14-17]。CFD类模式处理复杂几何体的能力引起了一些气象学者的注意,逐渐尝试将其应用到复杂地形风场模拟中。例如,程雪玲等[18]尝试利用地形高程的格点数据建立地形的计算网格模型,为CFD模拟复杂地形的风场作前期准备。相对于中尺度模式而言,CFD模式的空间分辨率较高(水平格距最小可达到10m量级),可以更为精细地描述真实地形。然而国内在这方面的学术研究还相对较少,为进一步加强这方面研究,本文利用商业CFD软件FLUENT进行了复杂地形上的风场模拟研究。 2 模拟工具及研究方法简介 *基金项目:国家自然科学基金(40805004,40705039,90715031)联合支持,本文已被《高原气象》期刊接收 联系方式:Email:chonp@https://www.360docs.net/doc/b812552888.html,

OSGEARTH + VS2010 安装

一、准备工作 下载: https://www.360docs.net/doc/b812552888.html,/wiki/Downloads 1. CURL (curl-7.21.7.tar.gz): http://curl.haxx.se/download.html 2. GDAL(gdal-1.8.0.tar.gz): https://www.360docs.net/doc/b812552888.html,/gdal/wiki/DownloadSource 3. GEOS(geos-3.2.2.tar.bz2):https://www.360docs.net/doc/b812552888.html,/geos/ 4. Expat(expat-win32bin-2.0.1.exe): code: https://www.360docs.net/doc/b812552888.html,/projects/expat/ exe文件:https://www.360docs.net/doc/b812552888.html,/eaglezhao/expat-win32bin-2.0.1.rar 5. libzip(libzip-windows.zip): code:http://nih.at/libzip/ 编译好的包供下载: vs2008: https://www.360docs.net/doc/b812552888.html,/trac/osgearth/raw-attachment/wiki/Downloads/libzip-windows.zip vs2010: https://www.360docs.net/doc/b812552888.html,/eaglezhao/libzip(vs10).rar 6. OSGEARTH(SVN上下载):svn: https://www.360docs.net/doc/b812552888.html,/gwaldron/osgearth.git(目前最新版是osgearth 2.0) 二、安装 1. CURL 使用CMAKE进行配置: 生成.sln后编译即可 编译好后将目录下的include/curl下文件拷到E:\OSG\3rdparty\include\curl ,进行覆盖编译好后将目录下的lib下的libcurl.dll文件拷到E:\OSG\3rdparty\bin ,进行

phoenics含地形的室外环境模拟

带有地形信息的室外环境模拟 目前,有越来越多的建筑是临山而建,我们的CAD图纸中,不仅有建筑的设计信息,还会加入一定的高程信息或者山脉的等高线信息。由于山体的属性较为复杂且对环境的影响较大,如果简单的将山体视为一个实体置入PHOENICS进行计算,会使影响室外热环境的准确性。为了使模拟结果与实际情况更为吻合,我们可以讲山体分解为下垫面(土壤层)与表层(植被层)两个部分,分别定义属性参数从而计算。具体操作方法如下: 一、 模型建立 1.地形信息 项目CAD中的地形信息以等高线的形式给出,其处理方式有3种: (1) 通过三角形网格较真实的反应地貌,输出格式为.STL,可由PHOENICS直接读取。 (2) 根据等高线以梯田的方式逐层拉伸,可输出格式有.dwg、.3ds,可由PHOENICS 直接读取。 (3) 使用sketch up中的地图获取功能,构建地形实体,输出格式.3ds,可由PHOENICS 直接读取。 第一种方法的三角形网格精度高,可以较好的捕捉山体实际地貌,适用于对山体形状要求高的项目模拟;第二种方法建立的山体表面为阶梯状,工作量大且与实际地貌不符;第三种方法构建的实体连续性较好,便于修改并支持分块导出,在实际建模中较常用到。 2.运用sketch up建立地形 使用sketch up中自带的Google earth功能得到带有地形信息的地形图片,然后使用沙盒拉伸并处理成实体块。需要注意的是,这里需要建立2个地形实体块,即下垫面(土壤层)与表层(植被层)。 (1) 收集地形的坐标信息:经纬度、就进城市或山脉名称。 (2) 添加地理位置:sketch up中文件——地理位置——添加位置

利用ArcScene进行三维地形模拟

利用ArcScene进行三维地形模拟 在ArcGIS Desktop中,可用于三维场景展示的程序为ArcGlobe和ArcScene,由于两者的差别,在三维场景展示中适用的情况有所不同。ArcScene是一个适合于展示三维透视场景的平台,可以在三维场景中漫游并与三维矢量与栅格数据进行交互。ArcScene是基于OpenGL的,支持TIN数据显示。显示场景时,ArcScene会将所有数据加载到场景中,矢量数据以矢量形式显示,栅格数据默认会降低分辨率来显示以提高效率。 在本文中,笔者就讲一下利用《由等高线生成DEM的方法》中生成的DEM外加DOM影像图,在ArcScene中进行三维地形模拟。 (1)点击ArcScene工具条上的“添加数据”按钮(如图一①处所示),将某地区的DEM和DOM影像图(图一②处)添加到ArcScene中去。 图一向ArcScene中添加数据 (2)在ArcScene的TOC窗口(左边窗口)中,在名为“yingxiang”的图层上右击(图二③处),在弹出的快捷菜单中选择Properties…(图二④处)。 图二打开图层属性对话框 (3)在打开的Layer Properties对话框中,点击“Base

Heights”选项卡,在其中的Height处(图三⑤处)选择“Obtain Heights for Layer from Surface”,此时该处的图层应该为我们添加的DEM图层,如果有多个DEM图层的话,在下拉列表中选择需要的DEM图层;在Z Unit Conversion中,输入Z值比例因子(图三⑥处),为了获得最佳的视觉效果,可以反复调整该因子值;在影像图和DEM 添加到ArcScene中时, 自动的将栅格图像的像素大小调大了,以加快显示速度,如果想调整该ArcScene默认的像元大小,可以在图三⑦处点击Raster Resolution,在弹出的对话框中修改默认的像元大小(图三⑧处),文本框中输入的是显示的像元大小,而文本框右边的是栅格图像实际的像元大小。 图三Layer Properties设置 (4)设置完成后点击OK即可看到三维显示的效果,可以使用Tools工具条上的按钮,来实现3D视图的放大、缩小、移动、飞行等功能。 图四三维显示最终效果图

1.应用MATLAB进行地理三维地貌可视化和地形分析

第17卷 增刊2 广西工学院学报 V ol117 Sup2 2006年12月 JOU RNAL O F GUAN GX IUN I V ER S IT Y O F T ECHNOLO GY D ec12006 文章编号 100426410(2006)S220017203 应用M AT LAB进行地理三维地貌可视化和地形分析 唐咸远 (广西工学院土建系,广西柳州 545006) 摘 要:从M A TLAB软件强大的功能入手,讨论了M A TLAB中进行地理三维地貌可视化和地形分析的方法,并展望其在工程中良好的应用前景。 关 键 词:M A TLAB;三维地貌可视化;地形分析 0 引言 M A TLAB的含义是矩阵实验室(M A TR I X LABORA TOR Y)[1],自其问世以来,就以数值计算称雄。其计算的基本单位是复数数组(或称阵列),使得该软件具有高度“向量化”。经过十几年的完善和扩充, M A TLAB现已发展成为线性代数课程的标准工具。由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得简捷、高效、方便,这是其它高级语言所不能比拟的。 在地理信息系统(G IS)中,地形的三维可视化通常是利用数字高程模型(D E M)来完成的,而D E M最常用表示方法为规则格网,它是将区域空间切分为规则的格网单元,每个格网单元对应一个数值,即高程值。数学上可以表示为一个矩阵,在计算机实现中则是一个二维数组。可见利用M A TLAB处理D E M数据,完成地形的三维可视化分析是切实可行的。 1 M AT LAB软件及其功能 M A TLAB产品家族是美国M ath W o rk s公司开发的用于概念设计、算法开发、建模仿真、实时实现的理想的集成环境,已广泛地应用在航空航天,金融财务,机械化工,电信,教育等各个行业。该软件的主要特点包括: 1)有高性能数值计算的高级算法,特别适合矩阵代数领域;2)有大量事先定义的数学函数,并且有很强的用户自定义函数的能力;3)有强大的绘图功能以及具有教育、科学和艺术学的图解和可视化的二维、三维图;4)基于H TM L完整的帮助功能;5)适合个人应用的强有力的面向矩阵(向量)的高级程序设计语言;6)与其它语言编写的程序结合和输入输出格式化数据的能力;7)有在多个应用领域解决难题的工具箱。 2 利用M AT LAB进行三维可视化和分析 211 D E M数据的输入与存储形式 数据的输入可以采用两种方式:文件输入或屏幕数字化。屏幕数字化即用鼠标在打开的地图影像上单击离散点[2],获得坐标并输入高程值。 收稿日期:2006210212 作者简介:唐咸远(19732),男,广西灌阳人,广西工学院土木建筑工程系工程师。

osgearth,个人笔记

智能指针使用: osg::Geode* geode=new osg::Geode;//新建Geode指针 osg::ref_ptrgeodePtr=geode;//构造一个新的ref_ptr对象,并将Geode指针分配给它。新建Geode对象geode的引用计数值变为1 Osg::ref_ptr geode1=new osg::Geode;//实现上述两句功能,不会产生内存泄露,当ref_ptr的生命周期结束时会自动释放引用对象 结论:①osg中新创建的场景对象建议使用ref_ptr进行内存的分配和管理 ②对于不使用ref_ptr的对象,引用计数值将变的没有意义,并且它无法自动从场景中卸载 ③新建对象作为函数结果返回时,建议使用realease()传递,并尽快引入到别的场景对象中 叶节点Geode 1、OSG 定义了osg::Drawable 类,用于保存要渲染的数据。Drawable 是一个无法直接实例化的虚基类。 OSG 核心库从Drawable 派生出三个子类:①osg::DrawPixels,封装了glDrawPixels()的相关功能;②osg::ShapeDrawable,提供了一些已经定义好的几何体的使用接口,如圆柱体和球;③osg::Geometry。setVertexArray() ,setColorArray() ,setNormalArray()用户程序可以使用它们来指定顶点数组,颜色,以及法线数据。setVertexArray()和setNormalArray()均使用一个Vec3Array 指针作为输入参数,而setColorArray()使用一个Vec4Array 指针。 官方OSG四个程序: 1 osgViewer模型查看工具 osgViewer是这四个程序当中用的最多的OSG程序,代码也非常入门与浅显易懂,在开始->运行->CMD中就可以直接启动osgViewer,因为path中添加了它的路径。下面来看一下osgViewer的功能,如表2.1 表2.1 osgViewer的功能表 命令:注意有的双杠功能 --image 读取纹理文件,比如:osgViewer --image Images/skymap.jpg --dem 以高程图的形式渲染一个镜像/DEM 比如osgViewer --dem a.img -h或--help 命令行参数功能帮助 --help-env 所有可用的环境变量帮助 --help-keys 所有可用键帮助 --help-all 展示所有帮助信息 --SingleThreaded 为viewer选择单线程模式 --CullDrawThreadPerContext 为viewer选择CullDrawThreadPerContext线程模式 --DrawThreadPerContext 为viewer选择DrawThreadPerContext线程模式 --CullThreadPerCameraDrawThreadPerContext 为viewer选择—CullThreadPerCameraDrawThreadPerContext线程模式

这是个人在学习osgEarth时根据体会或从别的地方看到的做

这是个人在学习osgEarth时根据体会或从别的地方看到的做的一个简单整理,有些东东就是官方文档翻译过来的,都是根据自己的需要感觉需要记录下来什么东西就随便记录下来了,也没有个条理,都是用到哪记到哪,别见怪。对个人在初期使用osgEarth时有很多帮助,所以特发上来,希望对大家也有帮助osgEarth学习笔记1. 通过earth文件创建图层时,可以指定多个影像数据源和多个高程数据源,数据源的顺序决定渲染顺序,在earth文件中处于最前的在渲染时处于最底层渲染;所以如果有高低精度不同的影响数据或者高程数据,在创建earth 文件时要将粗精度的数据放在上方xml节点,高精度的放在其下面的节点;2. osgEarth自带多种驱动器,不同的驱动器驱动不同的数据源,自己也可以扩展驱动器读取相应的数据; 3. 可以通过profile属性指定数据的投影方式或者数据分页方式以及地理空间延展;osgEarth通过profile创建数据四叉树,每个四叉树节点数据瓦片通过TileKey类来标示;一个地形数据能否正常工作要看创建它的驱动器是否能够创建和对应profile兼容的数据瓦片;比如,如果要生成地球数据,就需要指定global-geodetic 或者global-mercator profile,相应的数据源要能够在这种profile下生成相应的地形数据; 4. 通过earth文件,最基本的也是最主要的功能是我们可以指定生成地形的坐标属性(地理坐标或投影坐标)影像数据、高程数据、矢量数据、模型数据、以及缓冲位置,通过这些基本要

素就可以轻易生成我们想要的地形;5. osgEarth只能使用16或32位的高程数据源;6. 如果直接使用原始的影像、高程以及矢量数据,可以用GDAL驱动器,在这种情况下需要注意几个性能的问题。第一,将数据源预先进行坐标变换,变换为目标地形坐标,否则osgEarth会对源数据进行坐标投影变换,这将降低数据的加载及处理速度。如果预先已经将数据源进行正确的坐标变换,osgEarth就可以省略这个步骤,从而提高其实时处理速度;第二,预先对影像数据进行瓦片处理,比如tiff格式的影像数据,它是逐行扫描存储的,而osgEarth是每次读取一个瓦片数据,如果预先对影像数据进行瓦片处理,在动态过程中osgEarth就不需要每次读取整个大块影像数据然后提取其需要的瓦片数据,而可以直接读取相应的瓦片数据即可,这样就大大提高了瓦片数据的读取速度。可以通过gdal_translate 工具对影像数据进行瓦片处理;第三,创建金字塔数据集可以使osgEarth读取数据更加高效,可以用gdaladdo工具创建金字塔数据集;总之,要想提高osgEarth的处理效率,就要预先创建高效的数据瓦片结构,除了用gdal、vpb等工具外,也可以通过osgEarth的数据缓冲机制创建预处理的瓦片数据集。比如我们可以创建一个如下的earth文件将数据缓冲到指定的目录:map name=bluemarble type=geocentric version=2 !--Add a reference to the image -- image name=bluemarble

地形测量模拟试卷(一)

课程:《地形测量》(A卷) 命题者:黎晶晶评卷者: 一、填空题(每空1.5分,共36分) 1、测量工作的基本原则是:、、。 2、绝对高程是指地面某点到的距离。 3、观测值中误差的基本表达示为:m= 。 4、等高线可分为、、和辅助等高线四种。 5、在四等水准测量某测站中,测得h黑= +0.054m,h红=-0.050m,则高差中数应为。 6、在水平角测量中,用经纬仪测得左、右两个目标的水平度盘读数分别为L1=195o36′24″,L2=23o45′06″,则所测水平角的半测回角值为。 7、某经纬仪盘左竖盘起始读数为90°,当望远镜仰视时其竖盘读数大于90°。现测得某目标竖盘读数为84°21′30",则竖直角α左=。 8、对某水平角观测六个测回,则各测回度盘起始读数应递增。 9、现对某单三角形的三个内角进行测量,其观测值分别为36o50′36″,40o27′18″,102o42′30″,则三角形闭合差w = 。 10、用钢尺丈量某直线段,S往=895.572m,S返=895.493m,则距离S= ,丈量相对误差k=。 11、我国大比例尺地形图通常采用和两种分幅方法。 12、已知X A = 532.187 m, Y A = 1262.164 m,X B = 542.822 m, Y B= 984.325 m,则S AB = ,αAB = 。 13、控制测量的外业工作主要有、、和。 二、判断题(每题1.5分,共15分) ()1、四等水准测量一测站的观测顺序是后、前、前、后。 ()2、偶然误差的正态分布曲线的蜂越陡,说明观测结果越差。 ()3、水准管的分划值越小,其灵敏度越高。 ()4、影响经纬仪测角精度的照准部偏心差可通过盘左盘右观测来消除。 ()5、相邻两条等高线的高程差称为等高距。

OSGEarth学习

第一章OSGEarth学习 这是个人在学习osgEarth时根据体会或从别的地方看到的做的一个简单整理,有些东东就是官方文档翻译过来的,都是根据自己的需要感觉需要记录下来什么东西就随便记录下来了,也没有个条理,都是用到哪记到哪,别见怪。对个人在初期使用osgEarth时有很多帮助,所以特发上来,希望对大家也有帮助osgEarth学习笔记 1. 通过earth文件创建图层时,可以指定多个影像数据源和多个高程数据源,数据源的顺序决定渲染顺序,在earth文件中处于最前的在渲染时处于最底层渲染;所以如果有高低精度不同的影响数据或者高程数据,在创建earth文件时要将粗精度的数据放在上方xml节点,高精度的放在其下面的节点; 2. osgEarth自带多种驱动器,不同的驱动器驱动不同的数据源,自己也可以扩展驱动器读取相应的数据; 3. 可以通过profile属性指定数据的投影方式或者数据分页方式以及地理空间延展;osgEarth通过profile创建数据四叉树,每个四叉树节点数据瓦片通过TileKey类来标示;一个地形数据能否正常工作要看创建它的驱动器是否能够创建和对应profile兼容的数据瓦片;比如,如果要生成地球数据,就需要指定global-geodetic 或者global-mercator profile,相应的数据源要能够在这种profile下生成相应的地形数据; 4. 通过earth文件,最基本的也是最主要的功能是我们可以指定生成地形的坐标属性(地理坐标或投影坐标)影像数据、高程数据、矢量数据、模型数据、以及缓冲位置,通过这些基本要素就可以轻易生成我们想要的地形; 5. osgEarth只能使用16或32位的高程数据源; 6. 如果直接使用原始的影像、高程以及矢量数据,可以用GDAL驱动器,在这种情况下需要注意几个性能的问题。第一,将数据源预先进行坐标变换,变换为目标地形坐标,否则osgEarth会对源数据进行坐标投影变换,这将降低数据的加载及处理速度。如果预先已经将数据源进行正确的坐标变换,osgEarth 就可以省略这个步骤,从而提高其实时处理速度;第二,预先对影像数据进行瓦片处理,比如tiff格式的影像数据,它是逐行扫描存储的,而osgEarth是每次读取一个瓦片数据,如果预先对影像数据进行瓦片处理,在动态过程中osgEarth就不需要每次读取整个大块影像数据然后提取其需要的瓦片数据,而可以直接读取相应的瓦片数据即可,这样就大大提高了瓦片数据的读取速度。可以通过gdal_translate工具对影像数据进行瓦片处理;第三,创建金字塔数据集可以使osgEarth读取数据更加高效,可以用gdaladdo工具创建金字塔数据集;总之,要想提高osgEarth的处理效率,就要预先创建高效的数据瓦片结构,除了用gdal、vpb等工具外,也可以通过osgEarth的数据缓冲机制创建预处理的瓦片数据集。比如我们可以创建一个如下的earth 文件将数据缓冲到指定的目录: c:/data/bluemarble.tif c:/osgearth_cache

三维地形的模拟生成方法研究

三维地形的模拟生成方法研究 朱梅 摘要:地形是自然界最复杂的景物之一,三维地形的模拟是可视化系统中最基本也是最重要的技术之一。分形地形的生成是三维自然景物的模拟的重要组成之一,本文从三维地形的生成方法入手,重点介绍了基于分形技术的三维地形的模拟生成相关技术.以分形技术中的一维中点位移法、二维中点位移法为基础,引出了Diamond-Square算法,并介绍了使用该算法生成三维地形的过程。 关键词:三维地形模拟可视化真实地形分形 随着仿真技术和虚拟现实应用需求的不断提高,具有真实自然视觉效果的虚拟环境建模技术正发挥着越来越重要的作用,而自然景物如地形、植物、云烟、水火、海浪等的建模则是其中不可或缺的一个方面.其中,尤以地形的建模在实践中有很强的应用需求,如军事演习及训练、军事仿真视景系统开发、基于遥感和卫星图像的大范围虚拟环境自动建模等。三维地形的生成技术在飞行模拟或背景纹理图制作及三维动画制作和三维军事地图等多种技术中得到广泛应用。 地形是自然界最复杂的景物之一,三维地形的模拟是可视化系统中最基本也是最重要的技术之一。 地面的模拟可以分为两类:真实地形与模拟地形。真实地形是现实世界中真实地形的再现,具有非常高的真实度,必须采用真实世界中的具体数据来构造。模拟地形一般采用随机生成或分形法生成,采用这种方法生成的地形也很美观,生成的速度也很快。 三维地形的生成方法可分为三种:基于真实地形数据的地形生成和实时显示,基于真实地形数据建模构造场景的常用方法是采用数字地面模型和数字高程模型。数据获取有难度,而且数据量大,绘制速度对环境设备要求较高;基于随机方法数据拟合的地形仿真,最简单且常用的一种地形建模方法,是由稀疏分布点的高程值构成一些简单的三角形平面,形成地形框架。这种方法渲染速度很快,但地形的真实感会打很大的折扣;基于分形技术的地形生成仿真,其中地形完全由分行算法生成或半自动生成。 分形几何学是一门以不规则几何形态为研究对象的几何学。它能够逼真地显示自然景物,对自然现象的真实绘制和建模起着重要的作用。在自然物体不规则形态背后都有一定规则性,比如海岸线、山脉、云、河流等都可以用分形方法建模,相比其他景物,地貌形态是研究的重点内容。 基于分形技术的地形生成仿真主要是利用了分形的自相似原理,用递归算法使复杂的大块地形可用简单的小块特征地形经过一定的规则来生成。分形地形建模大致可归纳为泊松阶跃法、傅立叶滤波法、中点位移法、逐次随机增加法和带限噪声累积法等5类。用分形法进行自然景物建模能有效的表达自然界中许多非线性现象,也是迄今为止能够描述真实地形的最好的随机过程。一般用于非真实感地形的模拟。 二维空间中的分形插值算法是通过在平面上划分正方形网格,随机给四个角点的颜色;然后根据4个角点的颜色的平均值,产生中点M的颜色;根据A、B、M点和网格外一虚拟点取平均,得到边中点E的颜色,根据B、C、M点和网格外一虚拟点取平均,得到边中点F的颜色,同理取得G、H的颜色;根据小正方形BEMF四角点颜色的平均,取得小正方形中点以及边中点的颜色;以此类推;再通过递归,使正方形网格不断细化,直到达到预期的递归深度。

osgEarth编译

以下文档是osg和osgearth的编译过程,系统要求如下: 操作系统:win7 home basic x64 编译器:vs2010 〇前言 本文档编译成功后会形成4个目录,分别为: 1Open Scene Graph, C:\Open Scene Graph 2OpenSceneGraph, C:\OpenSceneGraph 3OSG, D:\OSG 4osgEarth, D:\osgEarth 第一个存放osg软件,用于只使用osg软件用。文件夹大小199M 第二个存放osg+osgearth软件,用于使用osgearth和osg用。文件夹大小626M 第三个存放osg编译过程文件,用于对osg软件升级开发用。文件夹大小3.6G 第四个存放osgEarth编译过程文件,用于对osgEarth软件升级开发用。文件夹大小2.54G 先编译 一osg编译 1.1 文件目录构建 第一步:我们在D盘编译OSG,首先建立一个文件夹:D:\OSG; 第二步:把源代码拷贝进OSG文件夹:D:\OSG\OpenSceneGraph-3.0.1 第三步:把3rdParty第三方库拷贝到OSG文件夹:D:\OSG\3rdParty 第四步:重新组织3rdParty,把x86文件夹中的内容拷贝到3rdParty中,把x86,x64删除。 如下图所示: 第五步:把数据文件Data拷贝到OSG文件夹:D:\OSG\Data 通过以上五步,所需准备完毕,文件目录组织情况如下:

1.2 Qt和wxWidgets安装 下载qt和wxWidgets安装文件:qt-win-opensource-4.8.4-vs2010.exe和wxMSW-2.8.12-Setup.exe,如图所示: 1.3 cmake设置 第一步:把cmake程序拷贝到C盘,C:\cmake-2.8.11-win32-x86 第二步:打开cmake程序 第三步:直接在source code文本框中输入D:/OSG/OpenSceneGraph-3.0.1 第四步:在OSG文件夹中建立Build目录,用于存放编译工程文件 第五步:直接在build the binaries文本框中输入D:/OSG/Build

osgearth学习文档

osgEarth::Drivers::TMSOptions Class Reference 通过程序加载数据 赶紧进入正题,程序加载各种数据,首先介绍一下总体的方式 /*这里XXXOptions 是根据不同的数据类型选择不同驱动,比如加载本地数据可以使用GDALOptions ,加载TMS数据可以使用TMSOptions(注意TMSOptions可以加载本地也可以加载网上数据),WMSOptions可以加载网上数据(注意这个options主要加载影像和图片数据),ArcGISOptions加载ArcGIS Server发布数据。*/ osgEarth::Drivers::XXXOptions XXXLayer; /*这里就是加载的数据路径,如果加载的本地数据就是本地数据的路径,如果加载是网上数据就是相应的网址*/ XXXLayer.url()=osgEarth::URI("................................."); /*加载的数据是分层管理,每加载进来一个数据在earth上就是一个数据层,这里给数据层付个名字。*/ std::string LayerName="earth"; /*osgearth里layer主要有三种类型ImageLayer、ElevationLayer和ModleLayer ,前两个大家从字面就可以知道第一个是加载影像和第二个是加载高程数据的,第三个是主要用来加载shp数据,至少我是这样用的,不知道还能否加载其他数据类型。确定加载用的驱动、数据源位置(路径)、数据层名和初始化了数据层,接下来就是把数据层加到地球中如下所示。*/ osg::ref_ptr layer =new osgEarth::XXXLayer(osgEarth::XXXLayerOptions(LayerName,XXXLayer)); m_pMap->addImageLayer(layer.get());

基于OpenGL 的三维地形可视化技术

基于OpenGL 的三维地形可视化技术 摘要:三维地形可视化技术一直是地理信息系统、数字摄影测量、虚拟现实等领域的研究热点。对OpenGL发展现状、数字地面模型和构网技术进行了对比研究,重点讨论了利用Visual C++ 6.0平台和OpenGL编程技术,建立虚拟地形三维可视化系统的实现过程和关键技术。通过实验数据模拟, 实现了三维地形可视化。 关键词:OpenGL;三维;地形;可视化 1 引言 我国政府从国家战略高度将“数字地球”列为中国21世纪的战略目标之一,并提出了“数字中国”战略。“数字地球”强调对地球的三维描述,在实现这一使命的过程中,需要有现代空间信息科学技术的支撑,三维地形可视化的具有重大研究意义。三维地形可视化的应用涉及地理信息系统、虚拟现实(VR)、环境仿真、数字城市、地形的穿越飞行、国土资源管理、娱乐与游戏、气象数据、空间分析等领域。三维真实感地形图能够逼真的反应外部真实世界,相对传统的纸质地图和计算机生成的地图,三维真实感地形图具有可视化程度高、存储和查询方便、可实时生成等优点。因此地形三维显示有着广阔的应用背景,所以受到了广泛的关注。 2 OpenGL简介 人们对计算机可视化技术的研究已经历了一个很长的历程,而且形成了许多可视化工具,其中Silicon Graphics Incorporated(SGI公司)推出的GL三维图形库表现突出,易于使用而且功能强大。随着计算机技术的继续发展,GL已经进一步发展成为开放图形程序库(open graphics library,OpenGL),并被集成到Unix、Windows 2000、Windows XP等窗口操作系统中。OpenGL被认为是高性能图形和交互式视景处理的标准。 OpenGL是指开放图形程序库,实际上是一种图形与硬件的接口。它集成了所有几何建模、图形变换、光源设置、材质设置、纹理映射、运动模糊、像素操作、融合、反走样技术、雾化等复杂的计算机图形学算法,其中包括120个图形函数,开发者可以用这些函数来绘制点、线、多边形、面,建立三维模型和进行三维实时交互。 为了利用Visual C++6.0的强大功能来实现对OpenGL三维图像的绘制,Windows提供了OpenGL32.DLL和GLU32.DLL动态链接库,Visual C++6.0包含了GL库(opengl32.lib)、辅助库(glaux.lib)和实用库(glu32.lib),开发者可以在多种硬件平台及操作系统下方便的利用这个图形库,使我们方便地编程,简单、快速的生成美观、漂亮的复杂的三维彩色图形,并且OpenGL 在网络上工作时,显示图形的计算机(客户端)可不是运行图形程序的计算机(服务器),客户机与服务器可是不同类型的机器,只要两者服从相同的协议。 3 基于OpenGL的三维地形显示的实现过程及关键技术 地形是自然界复杂的景物,三维地形是模拟自然界环境中不可缺少的重要组成部分,因此三维真实感地形的绘制一直是国内外计算机图形学领域关注的热点。三维真实感地形的生成通常分为两步:①地形建模,即选择合适的地形建模方法控制地形轮廓;②地貌特征模拟,即采用有效的技术呈现丰富的地貌特征。 目前地形建模常用方法是曲面造型方法和高度场方法。曲面造型方法是首先用几何造型方法生成的曲面刻画地形的大致形状,然后利用纹理合成技术生成地表丰富细节,高度场的方法是把地域视为一个高度场,采用各种高度场来生成地域的三维模型。该过程可以借助AUTOCAD和3DMAX等建模工具,也可以直接利用OpenGL或VEML等专用建模语言完成建模。

在ArcGIS中构建生成三维地形地貌

如何在ArcGIS中构建生成三维地形地貌场景 一、为什么要用三维地形地貌场景 地理信息与人类的生产生活息息相关,人类的诸多活动都离不开地形。如何更好的表达真实地形供人类实践活动所用,一直是人们追求的目标。在古代,人类用符号、线条在绢、丝、布、兽皮、纸等介质上标绘地形。所用的符号各种各样,如用△代表山峰,用数字标注海拔,用线条表示行进路线等等。在不同的历史时期和不同的区域,符号系统有很大的区别。到了近代逐渐形成了统一的图例,平面地图被广泛应用在更行各业中,这种方式最大的缺点是不直观,缺乏真实感。为了更直观更形象的表达地理信息,人们用到了沙盘,它除了平面方位之外,还能表达空间上的方位,因为它是真实三维地形地貌的微缩场景。 二、什么是三维虚拟仿真技术 三维地形虚似可视化仿真技术是指在计算机上对数字地形模型中的地形数据实时的进行三维逼真显示、模拟仿真、简化和多分辨率表达等内容的一项技术。它涉及到遥感与测绘、现代数学、计算几何、地理信息系统、计算机图形学等众多学科领域,在游戏交互、土地与城市规划、战场环境仿真、飞行器导航与地形提示和警告系统等众多领域有广泛应用。 三、如何在ArcGIS中构建生成三维地形地貌 首先,请确保水经注万能地图下载器软件版本为X3.0build1469及以上,然后我们只需要以下几步说明如何在ArcGIS(ArcSence)中构建生成“察隅县”虚拟三维地形地貌场景。 第一步:下载卫星影像和高程数据 这里我们按行政区划下载的方式同时下载“察隅县”的谷歌高清卫星影像和高程数据。 在软件的右上角点击选择“区划”并按省市县的方式依次选择“察隅县”,然后在显示的行政区域范围中点击“下载”按钮显示“新建任务”对话框。

osgEarth数据加载及组织解析

osgEarth数据加载及组织解析 1.osgEarth的数据加载流程 由前文可知,用户可以使用osgEarth自己的earth文件,简单指定各种数据源,而不用关心数据如何渲染,便能在三维球上显示各种地形数据。本节,将会解读osgEarth如何解析earth 文件,利用用户提供的数据源,来构建三维球上的各种地形。 图3.1所示是加载数据的整体流程,本节将就这四个步骤进行具体的解读。 图3.1 osgEarth数据加载整体流程 1.1 读取earth文件 osgEarth继承了OSG的插件机制,所以osgEarth提供了专门读取earth文件的osgdb_earth 插件。通过查找并调用此插件,达到读取earh文件的目的。图3.2展示了查找读取earth插件的具体流程:

图3.2 查找读取earth插件的具体流程 这个具体流程展示了osgEarth如何找到读取earth的插件——osgdb_earth.dll。这个流程其实也是osg插件机制中的具体流程,主要在read函数中根据文件后缀名查找读写插件,查找策略见前文2.1.3的OSG插件机制,找到插件后便根据文件名构建ReadNodeFunctor的仿函数,然后调用doRead()函数来具体读取。 无论读取earth文件,还是读取影像数据、高程数据或一般的文字,都是这样一个流程,通过找到具体插件后调用插件里的doRead函数。 在osgdb_earth中,主要就是将earth文件中的内容转换成后面构造map需要的conf对象。图3.3展示了一个包含标签比较全面的earth文件,图3.4为转换后的conf结果结构图:

OSGEarth编译与测试

第一章OSGEarth编译与测试 2.1 OSGEarth编译 第一步:配置系统环境变量。 新设置OSG_FILE_PATH变量,值为E:\OSGearth\OSGEARTH\data; E:\OSGearth\GDAL\data; 向PATH添加值: E:\OSGearth\3rdParty\bin; E:\OSGearth\OSGEARTH\bin\Debug; E:\OSGearth\OSGEARTH\bin\Release; 第二步:使用“生成”->“批生产”,选择all_build(debug|win32和release|win32)进行生成。 在编译过程中存在4个文件无法编译成功,但是不影响正常的测试。 第三步:修改这些错误。 上述错误的问题主要出现在 E:\osgearth\osgearth\src\applications\osgearth_imageoverlay\osgearth_imageoverlay.cpp文件的36-39行。

原因是OSG_MIN_VERSION_REQUIRED(2,9,6)限制了osg的版本。本文使用了v3.0.1版,因此需要添加需要添加ImageOverlayEditor文件。 (目前还没有解决) 2.2 OSGEarth测试 测试release版本: 1.打开cmd窗口,进入E:\osgearth\osgearth\vs2010\bin\Release; 2.输入命令:osgearth_viewer.exe E:\osgearth\osgearth\tests\gdal_tiff.earth;会出现一个提示 3.复制所需的dll到E:\osgearth\osgearth\vs2010\bin\Release文件夹中。可能需要重复好多次。 4.测试成功会出现下面界面:

osgEarth加载谷歌卫星地图的源码案例

osgEarth加载谷歌卫星地图的源码案例 2014-12-24 11:51 242人阅读评论(0) 收藏举报osgEarth谷歌卫星地图 一、准备工作 安装水经注万能地图下载器,如果没有安装本软件,可以百度“水经注软件”到官方网站下载。 编译OSG、OSGEarth和第三方插件等,这里有一个已经编译好的vs2010+osgearth,下载地址 “https://www.360docs.net/doc/b812552888.html,/share/link?shareid=107009& uk=2801833827”。 二、下载地图 首先需要把谷歌卫星地图下载下来,这里以“郫县”为例。 启动水经注万能地图下载器,点击“框选下载区域”,双击下载区域,选择级数,如下图。 image001.jpg(269.3 KB, 下载次数: 0) 下载附件保存到相册 2014-12-23 16:01 上传 在级别列表中,你可以选择任何级别,但一般来讲城区选择19级,郊区选择16级比理想,但选择级别之前,最好在在线地图浏览中先查看所想要下载的级别是否有数据,这里我们以10级为例。选择好级别后,点击确定开始下载。 下载完成后会弹出对话框询问是否要立即导出,选择“是”,然后显示“导出图片数据”对话框,如下图所示。

在该对话框中,不需要作任何设置,点击“输出”按钮以默认参数导出数据即可。默认导出路径为“D:\SGDownload\tt1_拼接[默认]\L10”。 三、VS2010创建应用程序 解压编译包后还不能直接使用,需要设置环境变量: OSG_ROOT X:\OSG OSG_FILE_PATH %OSG_ROOT%\data OSG_WINDOW 600 15 800 800 Path %OSG_ROOT%\bin;

相关文档
最新文档