查看: 7828|回复: 14

如何打开dem格式的数据文件

[复制链接]

该用户从未签到

发表于 2008-2-18 11:09:45 | 显示全部楼层 |阅读模式
我使用OSG2.0处理.dem格式的数据文件时遇到了麻烦,由于OSG2.0里面没有打开dem格式文件的插件,我按照vpb调试规则调试vpb没有调试成功.
如果我想处理一个dem格式的文件时,我还可以怎么做呢?

该用户从未签到

发表于 2008-2-18 12:53:39 | 显示全部楼层
OSG 2.2版本添加了GDAL插件,osgdb_gdal.dll,可以用于读取dem文件。
osgdb_gdal.dll的编译需要GDAL开发库的支持,要注意版本的问题,OSG所依赖的是1.4.0或者1.3.2版本的GDAL库。
下载地点:http://download.osgeo.org/gdal
GDAL库在Windows下的生成可能需要使用makefile.vc。生成的lib文件供CMake选用~~
CMake的头文件目录:gdal.h所在的目录;
CMake的库文件:gdal_i.lib

VPB还是最好的选择,毕竟前身是osgdem嘛

该用户从未签到

 楼主| 发表于 2008-2-18 15:09:29 | 显示全部楼层

回复 2# 的帖子

非常感谢你!
以下引用的是osg官方网站的原文:
Building with Visual Studio 8
Open the generated OpenSceneGraph.sln file, which will be in the directory you entered unde "Where to build the binaries" (eg. OpenSceneGraph\build), with Visual Studio. Select your desired build type (Debug, Release, RelWithDebugInfo, MinSizeRel) and press F7 for "Build Solution". Assuming everything builds correctly, you can then right-click on the INSTALL project and build that, which will copy the compiled files to the correct directories (based on what you set CMAKE_INSTALL_PREFIX to). Before that, the compiled files all reside in the build directory, and I don't recommend you use them from there.

Just to reiterate: Always build the INSTALL project. The locations where the files are copied to as part of the INSTALL target are the correct locations from where you should use them (bin\ for application executables and DLLs, lib\ for libraries, include\ for headers, and share\OpenSceneGraph\bin\ for example executables). See "Environment variables" below for some tips to set up your build environment for your own project to use the files from the correct locations.

您可以帮我讲解一下,我经过CMAKE和VS对openscenegraph的build之后,为了实现打开显示dem文件的操作,我接下来可以怎么做吗?
以下是我参考编译vpb的步骤链接:
http://www.openscenegraph.org/pr ... cifics/VisualStudio
以下是我下载第三方代码和CMAKE的地址:
http://www.openscenegraph.org/pr ... nloads/Dependencies
http://www.cmake.org/HTML/Download.html

该用户从未签到

发表于 2008-2-18 16:37:11 | 显示全部楼层
您是要使用OSG 2.2来显示DEM吗?还是使用VPB?

前者的话,仅仅完成了您说的那几个网址的内容恐怕还不够,至少需要下载并安装GDAL,并在CMake中进行指定才可以。我不确定您是否完成了这一步?检查一下是否存在osgdb_gdal.dll文件,如果存在的话,那么直接使用osgviewer就可以了观看简单的效果了,OSG会自动寻找用于打开dem的文件插件。

如果不存在的话,也许您没有正确生成DLL文件,那么您也就不能够打开dem文件。目前您不妨参看一下下面两个地址的文章,不久之后本站会放上Win32/Linux下的OSG全编译手册:
OSG2.0 Windows下全编译:
http://bbs.vrdev.net/viewthread.php?tid=809
OSG2.2 编译补遗:
http://www.vrchina.net/bbs/archiver/?tid-3874.html

仅仅使用OSG 2.0版本也许是不能观看dem文件的。

该用户从未签到

 楼主| 发表于 2008-2-18 21:43:30 | 显示全部楼层

回复 4# 的帖子

老大,我是希望使用OSG2.0来显示DEM格式的数据,但是我没能正确生成osgdb_gdal.dll。以下是我今天晚上的做法。请您指正我的错误。谢谢啦:)
按照您在例子(http://www.vrchina.net/bbs/archiver/?tid-3874.html)中提到的办法,安装GDAL1.4.0,并参考以下说明:
GDAL
osgdb_gdal.dll的编译需要GDAL开发库的支持,很幸运,它是免费的。不过要注意版本的问题,OSG所依赖的是1.4.0或者1.3.2版本的GDAL库。
下载地点:http://download.osgeo.org/gdal
GDAL库在Windows下的生成需要使用makefile.vc。生成的lib文件供CMake选用~~
CMake的头文件目录:gdal.h所在的目录;
CMake的库文件:gdal_i.lib

但是我使用nmake的时候怎么也不能成功,通过搜索,发现可能是VS2005没有完全安装的原因,于是下载了nmake.bat,并放在GDAL1.4.0的root目录下,但是运行的时候,还是错误。查看nmake /?,发现并没有/F的选项

应该还是我在nmake的过程出了问题,但是我不能找出原因,您能帮我解释一下吗?

该用户从未签到

发表于 2008-2-18 22:14:13 | 显示全部楼层
是在编译GDAL的时候出错了吗?我是这样做的:

进入控制台页面。
首先确信VS的环境变量是不是已经注册上了,如果没有的话,运行X:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\vcvars32.bat(也可能在别的位置)

用文本编辑器修改nmake.opt:
GDAL_HOME = "C:\warmerda\bld",这个必须改成自己的,要安装到什么地方。这里必须是绝对路径。
其它的可以根据自己的需要修改。

编译的时候:
执行源代码的编译
nmake /f makefile.vc
安装运行库(dll,exe)到指定位置
nmake /f makefile.vc install
安装开发库(include,lib)到指定位置
nmake /f makefile.vc devinstall
清理临时文件和目标文件
nmake /f makefile.vc clean

/f选项是肯定有的~~不妨看一下“nmake/?”帮助信息的第一行,而不是后面罗列参数的部分。 ^_^
/f是file的意思,也就是为Make程序选择Makefile。无论nmake,cygwin,gnumake都不会落下这个参数,呵呵。

该用户从未签到

 楼主| 发表于 2008-2-19 10:19:27 | 显示全部楼层

回复 6# 的帖子

我是从VS2005命令行(开始菜单->MS VS2005->Common Tools->命令行)中成功运行了namke(在DOS下还是没有能够成功运行。
在运行nmake /f makefile.vc后,出现了如下的错误提示:
ogrcurve.cpp
ogrcurve.cpp : fatal error C1033: 无法打开程序数据库“f:\gdal140\gdal-1.4.0\gdal
.pdb”
NMAKE : fatal error U1077: “"G:\Program Files\Microsoft Visual Studio 8\VC\BIN\
cl.EXE"”: 返回代码“0x2”

我就不明白是什么原因了。还要麻烦您指点一下

该用户从未签到

 楼主| 发表于 2008-2-19 11:47:27 | 显示全部楼层

NMAKE使用小结及CMAKE使用的问题

1、NMAKE使用小结
我在编译http://download.osgeo.org/gdal这个网址下GDAL1.4.0时总是出现以下错误。
ogrcurve.cpp
  ogrcurve.cpp : fatal error C1033: 无法打开程序数据库“f:\gdal140\gdal-1.4.0\gdal.pdb”
NMAKE : fatal error U1077: “"G:\Program Files\Microsoft Visual Studio 8\VC\BIN\
  cl.EXE"”: 返回代码“0x2”
  由于OSG基于GDAL1.4.0和1.3.2,所以我对1.3.2版本的GDAL进行的重编译,结果在NMAKE命令下顺利得出了结果。

疑问:是我操作有问题还是http://download.osgeo.org/gdal这里的GDAL1.4.0版本有问题?老大帮忙解释一下吧

2、CMAKE首先我有第三方软件库和由NMAKE得到的GDAL库,且3rdParty文件夹和GDAL文件夹都在F根目录下
   为了使用CMAKE得到osgdb_gdal.dll,我进行了如下操作。
   1)拷贝OpenSceneGraph源程序文件夹到F根目录下
   2)设置CMAKE where is the source code为F:\OpenSceneGraph
            设置CMAKE  where to build binaries为F:\OpenSceneGraph
      3)设置ACTUAL_3D_DIR为F:/3rdParty
      4)设置CMAKE_INCLUDE_DIR为F:/GDAL/Include
      5)设置CMAKE_INCLUDE_DIR为F:/GDAL/lib/gdal_i.lib
      6)configure
      7)configure->ok
经过上述操作,但是我没有得到osgdb_gdal.dll。您看是什么原因呢?

该用户从未签到

发表于 2008-2-19 13:26:55 | 显示全部楼层
关于打开dem格式的数据文件,VPB0.91里面调用GDAL的函数已经很好的实现了,里面有段读取的代码可以仔细看看~~~现在外出,没源码就不贴出来了~~~~~~~~~~呵呵~~~~~

该用户从未签到

发表于 2008-2-19 13:29:57 | 显示全部楼层
原帖由 neospoony 于 2008-2-19 11:47 发表
1、NMAKE使用小结
我在编译http://download.osgeo.org/gdal这个网址下GDAL1.4.0时总是出现以下错误。
ogrcurve.cpp
  ogrcurve.cpp : fatal error C1033: 无法打开程序数据库“f:\gdal140\gdal-1.4.0\gdal.pdb” ...


这个问题我确实也不清楚,可能是Makefile或者编译器版本的问题,印象中我好像没有遇到这种情况。

2、CMAKE首先我有第三方软件库和由NMAKE得到的GDAL库,且3rdParty文件夹和GDAL文件夹都在F根目录下
   为了使用CMAKE得到osgdb_gdal.dll,我进行了如下操作。
   1)拷贝OpenSceneGraph源程序文件夹到F根目录下
   2)设置CMAKE where is the source code为F:\OpenSceneGraph
            设置CMAKE  where to build binaries为F:\OpenSceneGraph
      3)设置ACTUAL_3D_DIR为F:/3rdParty
      4)设置CMAKE_INCLUDE_DIR为F:/GDAL/Include
      5)设置CMAKE_INCLUDE_DIR为F:/GDAL/lib/gdal_i.lib
      6)configure
      7)configure->ok
经过上述操作,但是我没有得到osgdb_gdal.dll。您看是什么原因呢?


CMake的作用是:根据用户所使用的编译器环境,生成对应的工程文件。换句话说,如果您选择VC7作为编译器的话,那么CMake会为之生成OpenSceneGraph.sln以及所有预设的vcproj工程文件。然后我们就可以使用VC 2003来进行DLL和EXE文件的生成了。
按照您提供的步骤,我相信您已经生成了.sln文件,但我不确定您是否使用VC2003对其进行编译了?使用VS或者其它的编译环境我们方可生成OSG的动态库文件(DLL)和例子程序(EXE)

另外,建议您尝试编译一下VPB,今早我刚做过试验,最新的VPB版本可以使用gdal 1.5的开发库和运行库进行生成了,首先对其CMake然后编译所生成的工程即可。

该用户从未签到

 楼主| 发表于 2008-2-19 15:44:10 | 显示全部楼层

回复 9# 的帖子

谢谢老大!我还有以下的问题:
VPB0.9.1是基于OSG1.2的吧?那么我尝试编译一下。按照freesource老大对osgdem的解释(http://bbs.vrdev.net/viewthread. ... =1&authorid=162),使用VPB0.9.1中osgDEM应用程序是转化.dem格式的高程数据和纹理数据成为.ive格式的文件吧?这样的话,是不能直接显示.dem格式的文件的吧?

该用户从未签到

 楼主| 发表于 2008-2-19 15:51:33 | 显示全部楼层

回复 10# 的帖子

嗯~我再尝试编译一遍,看看是否还有操作上的问题。

老大,最新版本的VPB是基于OSG2.0吗?(嘿嘿,这里偷懒问问您了)
我做的项目是基于OSG2.0的,所有版本问题还需要考虑的。您看OSG几个版本之间的转化有什么见解吗?

该用户从未签到

发表于 2008-2-19 16:03:21 | 显示全部楼层
原帖由 neospoony 于 2008-2-19 15:51 发表
嗯~我再尝试编译一遍,看看是否还有操作上的问题。

老大,最新版本的VPB是基于OSG2.0吗?(嘿嘿,这里偷懒问问您了)
我做的项目是基于OSG2.0的,所有版本问题还需要考虑的。您看OSG几个版本之间的转化有什么见解 ...


VPB 0.9.1是基于OSG 2.0/2.2的。

至于转化,1.2和2.0之间编程上的区别我觉得主要是Producer类的移除和Viewer的引入。这样在视景、摄像机的操作上会产生不小的改动。
其它库的变化基本不大,所以翻译NPS教程的时候,后面几章的源代码没费什么力气就从1.2改到2.2了~~
OSG是越发展越强大的,OpenGL的很多新特性被不断引入(例如Texture2DArray之类)。所以用新版本绝对不会有害处~~

该用户从未签到

 楼主| 发表于 2008-2-19 16:59:05 | 显示全部楼层

回复 13# 的帖子

以下是我通过VS2005编译由CMAKE生成的OpenSceneGraph的.sln文件的步骤,但是我在bin里面并没有得到osgdb_gdal.dll。
我在CMAKE里面设置的生成路径是C:/program files/OpenSceneGraph
1、打开.sln文件,F7
2、生成install
查看OpenSceneGraph中bin文件夹下,并没有生成osgdb_gdal.dll这个文件

还要麻烦老大啊。这几天实在谢谢您的指点了。让我少走了很多弯路。我想坚持争取把这种方法调试出来,希望老大多多指点了。
晚上我再尝试一下VPB的编译试一下。

该用户从未签到

发表于 2008-4-18 10:11:31 | 显示全部楼层

回复 14楼 的帖子

有没有gdal支持的dem文件传一个给我。
邮箱:long70000000@qq.com

[ 本帖最后由 tylr 于 2008-4-18 10:52 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表