GDAL读取tiff文件/C++源码
// gdal_geotiff.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "gdal_priv.h"
#include <iostream>
#include <iomanip>
#pragma comment(lib, "gdal_i.lib")
#define BYTE short //方便数据类型的修改
using namespace std;
int main(int argc, char* argv[])
{
int num_iamge_size=0;
BYTE *pafScanblock1; //开辟缓存区
char *file_path_name="C:/Users/afa/Desktop/srtm_59_04/srtm_59_04.tif";
GDALDataset *poDataset; //GDAL数据集
GDALAllRegister(); //注册所有的驱动
poDataset = (GDALDataset *) GDALOpen(file_path_name, GA_ReadOnly );
if( poDataset == NULL )
{
cout<<"fail in open files!!!"<<endl;
return 0;
}
//获取图像波段
GDALRasterBand *poBand1;
poBand1=poDataset->GetRasterBand(1);
//获取图像的尺寸
int nImgSizeX=poDataset->GetRasterXSize();
int nImgSizeY=poDataset->GetRasterYSize();
//获取坐标变换系数
double trans[6];
CPLErr aaa=poDataset->GetGeoTransform(trans);
//读取图像高程数据
double Xgeo,Ygeo;
pafScanblock1 = (BYTE *) CPLMalloc(sizeof(BYTE)*(nImgSizeX)*(nImgSizeY));
poBand1->RasterIO( GF_Read, 0, 0,nImgSizeX,nImgSizeY,pafScanblock1,nImgSizeX,nImgSizeY,GDALDataType(poBand1->GetRasterDataType()),0, 0 );
for(int i=0;i<(nImgSizeX-5990);i++)
{
for(int j=0;j<(nImgSizeY-5990);j++)
{
BYTE elevation=*pafScanblock1;
Xgeo=trans[0]+i*trans[1]+j*trans[2];
Ygeo=trans[3]+i*trans[4]+j*trans[5];
num_iamge_size++;
pafScanblock1++;
cout<<setprecision(15)<<Xgeo<<" "<<Ygeo<<" "<<elevation<<endl;
}
}
cout<<"总计:"<<num_iamge_size<<endl;
delete poDataset;
return 0;
}
GDAL读取tiff文件/C++源码的更多相关文章
- Java文件操作源码大全
Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...
- eclipse查看class文件的源码
eclipse查看class文件的源码: 1.网上下载jadClipse的jar包和执行文件jad.exe和 net.sf.jadclipse_3.3.0.jar. 2.把上面下载的jar包放在ecp ...
- Asp.Net Web Api 2 实现多文件打包并下载文件示例源码_转
一篇关于Asp.Net Web Api下载文件的文章,之前我也写过类似的文章,请见:<ASP.NET(C#) Web Api通过文件流下载文件到本地实例>本文以这篇文章的基础,提供了Byt ...
- 实现目标文件与源码分开的makefile测试实验
uboot提供了两种编译策略,即可以将生成的目标文件与源码混在一起,也可以将生成的目标文件与源码分开.通过对uboot Makefile的分析,笔者编写了一个简单的实现这种功能的Makfile. 顶层 ...
- 读取jar文件的sha1码,请求maven官方的solrsearch接口查询该jar文件所对应的maven坐标信息
版权声明:本文为博主原创文章,未经博主允许不得转载. import com.google.gson.JsonObject; import com.google.gson.JsonParser; imp ...
- 访问php文件显示源码
前天新装了个LAMP的环境,兴冲冲的clone下来代码,结果一访问乐子就大了,直接显现源码 面对这个问题,冥思苦想,四处找资料啊 让我改这改那的,最后终于找到症结 Ubuntu 16.04 系统 LA ...
- Eclipse安装反编译插件,查看.class文件的源码
2017-08-24 这样我们就可以通过Eclipse查看.class文件的源码了. 1.参考别人的博客,亲测有效 https://www.cnblogs.com/JealousGirl/p/setu ...
- Django的settings文件部分源码分析
Django的settings文件部分源码分析 在编写Django项目的过程中, 其中一个非常强大的功能就是我们可以在settings文件配置许多选项来完成我们预期的功能, 并且这些配置还必须大写, ...
- spark读取文件机制 源码剖析
Spark数据分区调研 Spark以textFile方式读取文件源码 textFile方法位于 spark-core_2.11/org.apache.spark.api.java/JavaSparkC ...
随机推荐
- Linux VM子系统参数调整
Timesten数据库下的Linux page子系统参数调整 如果Timesten(TT)采用了Durablecommits或是share memory segment被lock的话,那么linux ...
- careercup-高等难度 18.5
18.5 有个内含单词的超大文本文件,给定任意两个单词,找出在这个文件中这两个单词的最短距离(也即相隔几个单词).有办法在O(1)时间里完成搜索操作吗?解法的空间复杂度如何? 解法1:我们假设单词wo ...
- SQL优化 csdn
1.1.1 摘要 在开发过程中,我们不时会遇到系统性能瓶颈问题,而引起这一问题原因可以很多,有可能是代码不够高效.有可能是硬件或网络问题,也有可能是数据库设计的问题. 本篇博文将针对一些常用的数据库性 ...
- IOS开发之路三(XML解析之KissXML的使用)
最近再做一个项目需要用到xml的解析.今天查了一些资料自己做了一个小demo.纯OC没有界面.. 在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用 ...
- 分治法(一)(zt)
这篇文章将讨论: 1) 分治策略的思想和理论 2) 几个分治策略的例子:合并排序,快速排序,折半查找,二叉遍历树及其相关特性. 说明:这几个例子在前面都写过了,这里又拿出来,从算法设计的策略的角度把它 ...
- 简要地写出一个.NET Remoting的示例
在VS 2008中添加新的类库项目,并命名为NetRmClass,将所属解决方案命名为NetRm,勾选“创建解决方案的目录”.这样,NetRmClass类库项目目录即属于NetRm解决方案,并可以继续 ...
- 快递鸟API接口调用代码示例(免费不限量)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- cigarettes
描述 Tom has many cigarettes. We hypothesized that he has n cigarettes and smokes them one by one keep ...
- Calculate the formula
Problem Description You just need to calculate the sum of the formula: 1^2+3^2+5^2+……+ n ^2. Input ...
- ios 把毫秒值转换成日期 NSDate
ios 把毫秒值转换成日期 (比较好用) 1343359790000 这是毫秒值------最佳解决方案-------------------- long long time=134335979000 ...