tiff和geotiff经度纬度高度值读取
(2012-05-16 21:34:44)
标签:
杂谈 |
分类: arcgis |
使用 tiff3.8.2 和 geotiff1.2.5 读取一个 geotiff 格式的图像,获取图片的经度、纬度和高度值。
1、 经度和纬度可以通过 geotiff 读到栅格坐标和地理坐标的换算关系。
GTIF *gtif ;
这里用到的是 geotiff 的方法。
ModelTiepointTag (2,3):
ModelPixelScaleTag (1,3):
坐标 (0,0) 点的经度和纬度是 118.999861 和 32.0001389 ,换算比例是 0.000277777778 和 0.000277777778 ,换算公式为
如果读到的是 ModelTransformationTag ,可以这样计算经度、纬度。
*x = x_in * transform[0] + y_in * transform[1] + transform[3];
*y = x_in * transform[4] + y_in * transform[5] + transform[7];
2、 要读取高度值,必须先读取某点的灰度值。
stripSize = TIFFStripSize (image);
stripMax = TIFFNumberOfStrips (image);
{
通过 TIFFReadEncodeStrip 将图像的灰度值读出来,灰度值即高度值。这里用到的 tiff 的方法。
3、 tiff 和 geotiff 在 windows 下的编译
打开 visual studio 2008 命令提示,
在 tiff 的解压目录下 nmake /f makefile.vc 。
如果提示缺少 jpeglib.h 导致编译失败,这时请修改 ../libtiff/tiffconf.h.vc , 把其中的 , 中的注释 去掉。这是因为机子上缺少 libjpeg 库,再删掉 .../libtiff/ 下的所有 .obj 文件。 然后再编译,这样就可以编译成功。
创建一个目录
libgeotiff (路径也可以是其它的),把 Libgeotiff 解压到
X:/libgeotiff/
下,同时在 X: /libgeotiff/ 创建一个 libtiff (文件夹名一定要为 libtiff )
, 再到 C:/
tiff-3.8.2/ 把编译好的
libtiff 目录复制到 C:/libgeotiff/libtiff/ 下,最后形成的目录结构如下所示:
/libgeotiff
/libgeotiff/libgeotiff-1.2.5
/libtiff
/libtiff/libtiff
nmake /f makefile.vc
4、 利用 Tiff 和 geotiff 在 vs2008 下的开发
在 VC 中你的工程里 Projects->Settings 中进行如下设置:
Link->Project Options 中加上 /nodefaultlib:"libcd.lib"
Link->Object/library modules 中添加 libgeotiff.lib 和 libtiff.lib ;
然后在 Tools->Options 中的 Drectories 选项卡中添加 libgeotiff 库的目录:
Include
Files :
.../libgeotiff ;
.../libgeotiff/libtiff/libtiff ;
.../libgeotiff/libxtiff
Library
Files :
.../libgeotiff ;
.../libgeotiff/libtiff/libtiff ;
5 、 VS2008 C++ 项目怎样添加 “ 依赖 ” 、 “ 库目录 ” 和 “ 包含目录 ”
1. 添加编译所需要(依赖)的 lib 文件
[
解决方案资源管理器 ]“ 项目
->
属性 -> 配置属性 -> 连接器 -> 输入 -> 附加依赖项 ” 里填写
“xxx.lib” ,多个 lib 以空格隔开。
(等同于 “#pragma comment(lib, "xxx.lib") ” 语句)
2. 添加库( Libs )文件目录
方法
1 : [ 解决方案资源管理器
]“ 项目 -> 属性 -> 配置属性 -> 连接器 -> 常规 -> 附加库目录 ”
方法
2 : [ 菜单
]“ 工具 -> 选项 -> 项目和解决方案 ->C++ 目录 ” ,选择对应平台,然后添加所需 “ 库文件
” 目录
3. 添加包含( include )文件目录
方法
1 : [ 解决方案资源管理器
]“ 项目 -> 属性 -> 配置属性 ->C/C++-> 常规 -> 附加包含目录 ”
方法
2 : [ 菜单
]“ 工具 -> 选项 -> 项目和解决方案 ->C++ 目录 ” ,选择对应平台,然后添加所需 “ 包括文件
” 目录。

加载中…