文档库 最新最全的文档下载
当前位置:文档库 › 怎样安装GDAL以及使用

怎样安装GDAL以及使用

怎样安装GDAL以及使用
怎样安装GDAL以及使用

安装及其使用GDAL

1.首先下载GDAL安装包将其解压到指定目录如:C:\

2.启动cmd,即打开控制台窗口。进入Microsoft Visual Studio 10.0的安装目录下,如

cd C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\,在此目录下有个文件VCVARS32.BAT,执行一下这个文件。

这样就执行完毕

3.然后重新回到C:\下。运行命令nmake /f makefile.vc。编译完成后,用记事本打开文

件C:\gdalsrc\nmake.opt,根据自己的情况修改GDAL_HOME = 这一行,这个指的是最终GDAL的安装目录,比如说我们安装在C:\GDAL,那么这一行就是GDAL_HOME =

"C:\GDAL",在C:\gdalsrc下执行nmake /f makefile.vc install,然后是nmake /f makefile.vc devinstall,然后我们需要的东西就安装到了C:\GDAL下。

这样就完成了安装,将安装包安装在C:\GDAL下。(GDAL这个文件夹是我们自己在cmd外新建的)

在使用时,我们首先包涵头文件

#include”gdal_priv.h”

同时必须注意在在project property下点击c++ general 选中第一项additional

drozer使用详解

Mercury(Android APP 应用安全评估) Mercury 是一款优秀的开源Android APP应用安全评估框架,它最赞的功能是可以动态的与android设备中的应用进行IPC(组件通信)交互。 一、安装与启动 1. 安装 (1)windows安装 第一步:下载Mercury 2.2.2 (Windows Installer) 第二步:在Android设备中安装agent.apk adb install agent.apk (2)*inux安装(Debian/Mac) apt-get install build-essential python-dev python-setuptools #以下步骤mac也适合 easy_install --allow-hosts https://www.wendangku.net/doc/6e17788779.html, protobuf==2.4.1 easy_install twisted==10.2.0 (为了支持Infrastructure模式) wget https://www.wendangku.net/doc/6e17788779.html,/assets/415/mercury-2.2.2.tar.gz tar zxvf mercury-2.2.2.tar.gz easy_install mercury-2.0.0-py2.7.egg 2. 启动 有三种方式 (1)USB方式的 第一步:在PC上使用adb进行端口转发,转发到Mercury使用的端口31415 adb forward tcp:31415 tcp:31415 第二步:在Android设备上开启Mercury Agent 选择embedded server-enable

基于GDAL库的遥感图像处理软件的框架设计与开发

基于GDAL库及OpenGL的遥感图像处理类软件的框架 设计方法研究 王顺志 (中国海洋大学信息科学与工程学院,山东青岛266100) 摘要:本文介绍了GDAL库及OpenGL图形接口的功能及特点,以及这两者对于开发遥感软件的帮助和优势,在此基础上介绍了一种遥感图像处理软件框架的设计方法,使软件实现正确读取各类格式的遥感文件,进行图像处理操作并在窗口中绘图显示结果,为这类遥感软件的开发提供参考。 关键词:GDAL OpenGL 分块读取应用程序框架类对象关系

1引言 卫星遥感技术自上世纪八十年代起进入了一个高速发展的阶段,随着美国宇航局(NASA)、欧空局(ESA)以及其他一些国家,如加拿大、日本、中国先后建立起各自的遥感系统,为科研人员提供了越来越多有价值的从太空观测地球的数据和图像,因此,如何快捷、准确地处理遥感数据成为卫星遥感一个新的课题。 计算机软硬件技术的发展和提高为遥感数字图像处理提供了重要的技术手段,由于遥感图像比普通数字图像包含更多的信息,如目标物的大小、形状、特征属性,区分各种目标并进行分类等,这就要求将遥感图像信息的获取发展为计算机支持下的遥感图像智能化识别,最终实现遥感图像理解。随着遥感技术在社会的许多领域发挥越来越重要的作用,研究人员对功能强大、使用方便的遥感数据处理软件的需求也在日益增长。如今,国际上最流行的遥感软件有加拿大 PCI公司开发的PCI Geomatica、美国 ERDAS LLC公司开发的ERDAS Imagine以及美国 Research System INC公司开发的ENVI,这些遥感软件虽然功能强大,可以通过简单的菜单操作就可以得到较为理想的结果输出,但却不能记录处理过程,然而很多从事遥感行业的研究员都希望将自己的成果在以论文形式发表的同时也可以以系统和软件的形式得到实际的应用,并为以后新的理论建立一个可扩展的开发平台。这就要求我们自己动手开发一套满足各自需求且实用的遥感软件。此类软件的开发有以下难点:遥感数据格式多样,读取方法难统一;遥感图像容量很大,全图读取或显示十分耗时;各种遥感地理、投影信息的读取;经过复杂图像处理算法后显示输出效率低等。本文介绍一种在Visual C++平台上基于GDAL库,并利用OpenGL图形接口的遥感图像处理类软件的框架设计方法,在此框架的基础上能够扩展出研发人员自己的各种遥感数据处理算法或功能模块,最终形成产品化的软件。 2GDAL库的功能及应用 任何图像处理软件的首要工作是能够正确读取数据,遥感图像处理软件也不例外。遥感数据是指太阳辐射、红外、微波等电磁波经过大气层到达地面,被地物反射后再次经过大气层,被遥感传感器接受,并由传感器将这部分能量特征传送回地面的能量特征数据。由于卫星搭载的传感器多种多样,接受数据选择的波段(或者说通道)各不相同,因此传回来的遥感数据格式也是种类繁多,这就给遥感软件读取数据模块的开发带来了不小的难度,然而GDAL库却能轻松解决这一难题。 GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行遥感数据转换和处理。有很多著名的GIS类产品都使用了GDAL/OGR库,包括ESRI 的ArcGIS 9.2,Google Earth和跨平台的GRASS GIS系统。GDAL库几乎支持现在所有的遥感数据格式,下表列出了几种常见格式(详细的格式支持见https://www.wendangku.net/doc/6e17788779.html,/formats_list.html):

zheng-环境搭建及系统部署文档20170213(三版)

1Een 项目描述 基于Spring+SpringMVC+Mybatis分布式敏捷开发系统架构:内容管理系统(门户、博客、论坛、问答等)、统一支付中心(微信、支付宝、在线网银等)、用户权限管理系统(RBAC细粒度用户权限、统一后台、单点登录、会话管理)、微信管理系统、第三方登录系统、会员系统、存储系统 https://www.wendangku.net/doc/6e17788779.html,/zhengAdmin/src/ 2项目组织结构

3项目模块图 4项目使用到的技术4.1后端技术 Spring Framework SpringMVC: MVC框架

Spring secutity|Shiro: 安全框架 Spring session: 分布式Session管理MyBatis: ORM框架 MyBatis Generator: 代码生成 Druid: 数据库连接池 Jsp|Velocity|Thymeleaf: 模板引擎ZooKeeper: 协调服务 Dubbo: 分布式服务框架 TBSchedule|elastic-job: 分布式调度框架Redis: 分布式缓存数据库 Quartz: 作业调度框架 Ehcache: 缓存框架 ActiveMQ: 消息队列 Solr|Elasticsearch: 分布式全文搜索引擎FastDFS: 分布式文件系统 Log4J: 日志管理 Swagger2: 接口文档 sequence: 分布式高效ID生产 https://www.wendangku.net/doc/6e17788779.html,/yu120/sequence AliOSS|Qiniu: 云存储 Protobuf|json: 数据传输 Jenkins: 持续集成工具 Maven|Gradle: 项目构建管理

GDAL_API Tutorial

GDAL API Tutorial Before opening a GDAL supported raster datastore it is necessary to register drivers. 在打开一个GDAL支持的栅格资料之前,必需要注册驱动。 There is a driver for each supported format. 每个驱动对应各自支持的格式。 Normally this is accomplished with the GDALAllRegister() function which attempts to register all known drivers, including those auto-loaded from .so files using GDALDriverManager::AutoLoadDrivers(). 通常这个会被GDALAllRegister()函数完成,试图去注册所有已知的驱动包括使用GDALDriverManager::AutoLoadDrivers()从.so文件来加载。 If for some applications it is necessary to limit the set of drivers it may be helpful to review the code from gdalallregister.cpp. 如果一些程序有必要去限制驱动集合,检查gdalallregister.cpp的代码将会有所帮助,Python automatically calls GDALAllRegister() when the gdal module is imported. 当gdal模块被导入时,Python会自动调用GDALAllRegister()。 Once the drivers are registered, the application should call the free standing GDALOpen() function to open a dataset, passing the name of the dataset and the access desired (GA_ReadOnly or GA_Update). 一但驱动被注册,程序将会调用独立的GDALOpen()函数通过dataset的名称和需要的存取方式(GA_ReadOnly或GA_Update)来打开dataset. Note that if GDALOpen() returns NULL it means the open failed, and that an error messages will already have been emitted via CPLError(). 注意如果GDALOpen()返回NULL,意味着打开失败了,这个错误信息将会通过CPLError ()释放出。 If you want to control how errors are reported to the user review the CPLError() documentation.

GoogleProtoBuf开发者指南

ProtoBuf开发指南 - 非官方不完整版 这个文档用于指导开发的,属于非官方发布版本进行选译的,并不完整。供参考使用。 1 概览 欢迎来到protocol buffer的开发者指南文档,一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。 本文档面向希望使用protocol buffer的Java、C++或Python开发者。这个概览介绍了protocol buffer,并告诉你如何开始,你随后可以跟随编程指导 ( https://www.wendangku.net/doc/6e17788779.html,/apis/protocolbuffers/docs/tutorials.html )深入了解protocol buffer编码方式 ( https://www.wendangku.net/doc/6e17788779.html,/apis/protocolbuffers/docs/encoding.html)。API 参考文档 ( https://www.wendangku.net/doc/6e17788779.html,/apis/protocolbuffers/docs/reference/overview .html )同样也是提供了这三种编程语言的版本,不够协议语言 ( https://www.wendangku.net/doc/6e17788779.html,/apis/protocolbuffers/docs/proto.html )和样式( https://www.wendangku.net/doc/6e17788779.html,/apis/protocolbuffers/docs/style.html )指导都是编写 .proto 文件。 1.1 什么是protocol buffer ProtocolBuffer是用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。 1.2 他们如何工作 你首先需要在一个 .proto 文件中定义你需要做串行化的数据结构信息。每个ProtocolBuffer信息是一小段逻辑记录,包含一系列的键值对。这里有个非常简单的 .proto 文件定义了个人信息: message Person { required string name=1; required int32 id=2; optional string email=3; enum PhoneType {

Gdalwarp命令解析

Gdalwarp gdalwarp.exe投影转换和投影设置。同时也可以进行图像镶嵌。这个程序可以重新投影所支持的投影,而且如果图像("raw" with)控制信息也可以把GCPs和图像存储在一起 用法 gdalwarp [--help-general] [--formats] [-s_srs srs_def] [-t_srs srs_def] [-order n] ] [-tps] [-et err_threshold] [-te xmin ymin xmax ymax] [-tr xres yres] [-ts width height] [-wo "NAME=VALUE"] [-ot Byte/Int16/...] [-wt Byte/Int16] [-srcnodata "value [value...]"] [-dstnodata "value [value...]"] -dstalpha [-rn] [-rb] [-rc] [-rcs] [-wm memory_in_mb] [-multi] [-q] [-of format] [-co "NAME=VALUE"]* srcfile* dstfile 参数解释 ?-s_srs srs_def 源空间参考集。所有可以使用 OGRSpatialReference.SetFromUserInput()来调用的坐标系统都可以使用。包括 EPSG PCS 和GCSes(例如EPSG:4296),PROJ.4 描述。或者包含知名文 本的以prf 为扩展名的文件。建议用Proj4 的描述。 ?-t_srs srs_def 目标坐标系统集。(可以参考上面的解释) ?-order n 用于绑定的多项式规则。默认的是选择一个基于GCPs 数量的多项式。 ?-tps 允许根据已有的GCPs 使用薄板内插转换方法。可以用这个来替代-order 参数。 ?-et err_threshold 转换的错误临界的近似值。(以象元单位- 默认到0.125) ?-te xmin ymin xmax ymax 设置被创建的输出文件的地理边界范围 ?-tr xres yres 设置输出文件分辨率(单位以目标地理参考为准) ?-ts width height 设置输出文件大小(以行列多少象元计量) ?-wo "NAME=VALUE" 设置绑定参数。GDALWarpOptions::papszWarpOptions 不会显示所有的参数,多个-wo 参数可以并列。 ?-ot type 设置输出波段的数据类型。 ?-wt type 工作的象元数据类型。包括在源图像和目标图像缓冲中的象元数据类型。 ?-rn 用最临近发进行重采样(默认,最快,但是内插质量最差) ?-rb 用双线性法进行重采样 ?-rc 用立方体发进行重采样 ?-rcs 用立方曲线发进行重采样(最慢的方法)

Ubuntu14.04的caffe编译及安装

Caffe Caffe CaffecuDNNAlexNetK40 1.17ms. Caffe BSD-2

sudo apt-get install build-essential # sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libop encv-dev libhdf5-serial-dev protobuf-com sudo apt-get install --no-install-recommends libboost-all-dev CUDA7.5 Nvidia Ubuntudeb , sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb sudo apt-get update

sudo apt-get install cuda sudo ldconfig /usr/local/cuda/lib64 660 sudo apt-get install nvidia-cuda-toolkit sudo apt-get install nvidia-352 sudo reboot Atlas sudo apt-get install libatlas-base-dev pythonpipeasy_install wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py sudo python ez_setup.py --insecure wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py python sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortr an python-numpy

GDAL安装

https://www.wendangku.net/doc/6e17788779.html,/chimneyqin/blog/item/6c785aeac77ef0dfd439c9ef.html 2010-05-19 15:12 最近在学习在VC中调用GDAL库处理遥感影像,现总结如下: 1. GDAL安装 (1)下载gdal的安装文件,解压到某目录下如C:\gdal下。 这里我们假定VC6的安装在默认目录C:\Program Files\Microsoft Visual Studio8下。 (2)启动cmd,即打开控制台窗口。进入VC6的安装目录下,如cd C:\Program Files\Microsoft Visual Studio8\VC\bin\,在此目录下有个文件VCVARS32.BAT,执行该文件。 然后重新回到C:\gdal下。运行命令nmake /f makefile.vc。 编译完成后,用记事本打开文件C:\gdal\nmake.opt,根据自己的情况修改GDAL_HOME = 这一行,这个指的是最终GDAL的安装目录,比如说我们安装在C:\GDAL,那么这一行就是GDAL_HOME = "C:\GDAL",在C:\gdalsrc下执行nmake /f makefile.vc install,然后是nmake /f makefile.vc devinstall,然后我们需要的东西就安装到了C:\GDAL下。 2 .GDAL使用 (1)在VS2005中新建win32控制台程序 testGDALconsole,将gdal14.dll拷贝到testGDALconsole/debug中。 (否则运行时会提示找不到gdal14.dll) (2)Tools/options: 在Library files、Include files中分别添加GDAL的LIB目录和INCLUDE 件目录 (也可以直接将gdal_priv.h拷贝到testGDALconsole.cpp所在目录下)

将GDAL编译成C#可用的DLL

目的:将GDAL编译成C#可用的DLL 环境 GDAL-1.10.1 .net framework 4.0 vs 2010 swigwin-2.0.11 代码错误记录 1、函数名称错误

....\GDAL\gdal-1.10.1\swig\csharp\gdal文件夹中的Band.cs、Dataset.cs、Driver.cs三个文 件中BandUpcast、DatasetUpcast、DriverUpcast函数名称应分别改为Band_SWIGUpcast、Dataset_SWIGUpcast、Driver_SWIGUpcast。 2、重复定义 ....\GDAL\gdal-1.10.1\swig\csharp\ogr文件夹中OgrPINVOK.cs、OsrPINVOK.cs中第188行 有名称为 static OgrPINVOKE() { }、static OsrPINVOKE() {}的函数,此函数重复定义,将重复定义的代码删除。 类似的将....\GDAL\gdal-1.10.1\swig\csharp\osr文件夹中OsrPINVOK.cs的代码也改过来。 3、安全透明代码的问题 猜测是.net framework 版本过高引起的 ....\GDAL\gdal-1.10.1\swig\csharp\gdal中有很多cs文件,在需要使用到的cs文件中加入

using System.Security; [SecuritySafeCritical] 要注意的是Dataset.cs第52行的Dispose()函数被override了,要在此函数上面,即51行也要写入 [SecuritySafeCritical] 然后就可以编译了XD 编译 用vs命令提示(2010) 进入....\GDAL\gdal-1.10.1\ 分别执行 nmake /f makefile.vc nmake /f makefie.vc install nmake /f makefile.vc devinstall 进入....\GDAL\gdal-1.10.1\swig\csharp\ 执行 nmake /f makefile.vc nmake /f makefie.vc install

comake使用详解

Comake2使用详解 1、适用用户范围: 第一次使用comake2工具 使用comake2搭建环境:这时用户不需要关心COMAKE文件细节,和第一次使用comake2工具时的情形差不多,第一次使用comake2工具初始化环境 $mkdir --parent ps/se/ac/make $cd ps/se/ac/make $comake2 -S $comake2 -UB comake2 -S //初始化COMAKE文件 comake2 -S表示从平台最新基线版本获取依赖列表;comake2 -S -r 1.0.1.0表示从平台1.0.1.0版本获取依赖列表友情提示:如果你的代码库里已有COMAKE文件,可跳过这一步;如果你的模块路径是ps/se/ac/make,请cd ps/se/ac/make再执行comake2 -S命令 comake2 -UB //下载并编译依赖代码 2、comake2命令 $ comake2 -h comake[com make]能够自动帮助用户搭建环境,并且生成Makefile工具. 程序会读取目录下面的COMAKE文件,产生Makefile和环境.用户需要提供这个COMAKE文件. 参数: -h --help 查看帮助 -D --debug 开启debug选项[默认不打开].-D -D可以查看更多调试信息. -S --scratch 创建一个默认的COMAKE文件 -r --revision 从平台检出模块cvspath指定的TAG对应的依赖列表,配合-S使用,如-S -r 1.0.0.0 -E --export-configs 导出模块的4位版本依赖,存放在COMAKE.CONFIGS下面.比如-E public/ub@1.0.0.0 -W --watch-configs 查看本地依赖模块.-W -W可以查看模块引入来源.-W -W -W可以查看依赖模块的依赖. -I --import-files 在解释COMAKE文件之前导入模块 -C --change directory 切换到directory下面执行[默认当前目录] -Q --quiet 安静模式[默认不打开] -U --update-configs 更新环境 -B --build-configs 构建环境 -F --force 构建环境时强制进行[默认不进行] -e --export-local-configs 导出本地环境到CONFIGS.SCM文件 -f --scmfile= 重现编译环境 -d --devdiff 存在本地修改的共同开发依赖列表(多模块共同开发时适用) -J --make-thread-number= 如果模块使用COMAKE生成的Makefile的话,编译线程数[默认是4] -j --modules-thread-number= 并发下载、编译模块的线程数[默认是1] -K --keep-going 构建/更新环境中途出错的话,忽略错误继续[已废弃] -P --pretreatment 生成Makefile时不进行预处理[默认进行预处理] -O --quot-all-deps 生成Makefile时引用所有头文件依赖[默认过滤目录外依赖]

GDAL开发文档

GDAL开发文档 这里列出所有相关的页面: ?GDAL数据模型 ?GDAL驱动实现向导 ?GDAL API入门 ?OGR API 使用向导 翻译:柴树杉(chaishushan@https://www.wendangku.net/doc/6e17788779.html,) 出处:opencv-extension-library GDAL数据模型 翻译:柴树杉(chaishushan@https://www.wendangku.net/doc/6e17788779.html,) 原文:https://www.wendangku.net/doc/6e17788779.html,/gdal_datamodel.html 该文档简要描述了GDAL的数据模型,该模型可以容纳其他各种信息。 数据集(Dataset) 一个dataset(对应GDALDataset类)是一个光栅数据以及和它有关系的信息的集合。特别地dataset包含了光栅数据的大小(像素、线等)。dataset同时也为对应的光栅数据指定了坐标系统。dataset本身还可以包含元数据,它们以一种键/值对的方式来组织。 GDAL的数据集是基于OpenGIS Grid Coverages的格式定义的。 坐标系统 Dataset的坐标系统由OpenGIS WKT字符串定义,它包含了: ?一个全局的坐标系名称。 ?一个地理坐标系名称。 ?一个基准标识符。 ?椭球体的名字。长半轴(semi-major axis)和反扁率(inverse flattening)。 ?初子午线(prime meridian)名和其与格林威治子午线的偏移值。 ?投影方法类型(如横轴莫卡托)。 ?投影参数列表(如中央经线等)。 ?一个单位的名称和其到米和弧度单位的转换参数。 ?轴线的名称和顺序。 ?在预定义的权威坐标系中的编码(如EPSG)。

更多信息请参考OpenGIS WKT坐标系统定义,以及osr教程文档和OGRSpatialReference类的描述文档。 在GDAL中,返回坐标系统的函数是GDALDataset::GetProjectionRef()。它返回的坐标系统描述了地理参考坐标,暗含着仿射地理参考转换,这地理参考转换是由GDALDataset::GetGeoTransform()来返回。由GCPs地理参考坐标描述的坐标系统是由GDALDataset::GetGCPProjection()返回的。 注意,返回的坐标系统字符串“”表示未知的地理参考坐标系统。 仿射地理变换 GDAL数据集有两种方式描述栅格位置(用点/线坐标系)以及地理参考坐标系之间的关系。第一种也是比较常用的是使用仿射转换,另一种则是GCPs。 仿射变换由6个参数构成,它们由GDALDataset::GetGeoTransform()返回它们把点/线坐标,用下面的关系转将点/线影射到地理坐标: Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2) Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5) 假设影像上面为北方,GT2和GT4参数为0,而GT1是象元宽,GT5是象元高,(GT0,GT3)点位置是影像的左上角。 注意,上面所说的点/线坐标系是从左上角(0,0)点到右下角,也就是坐标轴从左到右增长,从上到下增长的坐标系(即影象的行列从左下角开始计算)。点/线位置中心是(0.5,0.5)。 GCPs 数据集可以由一系列控制点来定义空间参考坐标系。所有的GCPs共用一个地理参考坐标系,由GDALDataset::GetGCPProjection()返回。每个GCP(对应GDAL_GCP 类)包含下面内容: typedef struct { char *pszId; char *pszInfo; double dfGCPPixel; double dfGCPLine; double dfGCPX; double dfGCPY; double dfGCPZ; } GDAL_GCP;

Protobuf编码详解

prtotocol buffer是google于2008年开源的一款非常优秀的序列化反序列化工具,它最突出的特点是轻便简介,而且有很多语言的接口(官方的支持C++,Java,Python,C,以及第三方的Erlang, Perl等)。本文从protobuf如何将特定结构体序列化为二进制流的角度,看看为什么Protobuf如此之快。 一,示例 从例子入手是学习一门新工具的最佳方法。下面我们通过一个简单的例子看看我们如何用protobuf 的C++接口序列化反序列化一个结构体。 1,编辑您将要序列化的结构体描述文件Hello.proto 每个结构体必须用message来描述,其中的每个字段的修饰符有required, repeated和optional 三种,required表示该字段是必须的,repeated表示该字段可以重复出现,它描述的字段可以看做C语言中的数组,optional表示该字段可有可无。 同时,必须人为地为每个字段赋予一个标号field_number,如上图中的1,2,3,4所示。更详细的proto文件的编写规则见这里。 2,用protoc工具“编译”Hello.proto protoc工具使用的一般格式是: protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/xxx.proto 其中SRC_DIR是proto文件所在的目录,DST_DIR是编译proto文件后生成的结构体处理文件的目录 之后会生成对结构体Hello.proto中描述的各字段做序列化反序列化的类 3, 编写序列化进程https://www.wendangku.net/doc/6e17788779.html,

我们用set方法为结构体中的每个成员赋值,然后调用SerializeToOstream将结构体序列化到文件log中。 并编译它: 4,编写反序列化进程https://www.wendangku.net/doc/6e17788779.html, 用ParseFromIstream将文件中的内容序列化到类Hello的对象msg中。 并编译它: , 5,做序列化和反序列化操作 上面只是一个简单的例子,并没有对protobuf的性能做测试,protobuf的性能测试详见这里。

Ubuntu下安装Caffe

Ubuntu下安装Caffe 安装需要的软件: 1. Ubuntu14.0.4 2. cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64 3. caffe-master 安装Ubuntu的过程在这里不做介绍。系统安装好了之后,执行下面的操作。 在线安装的步骤,在此之前将更新源换成163的,下载速度会快很多: 1. sudo apt-get update 2. sudo apt-get upgrade 以上更新系统相关软件 3. sudo apt-get install build-essential 4. sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev 5. sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler 6. sudo apt-get install libatlas-base-dev python-dev vim 以上为在线安装的依赖项需要按顺序执行 7. 切换到cuda安装包的目录下,执行sudo dpkg -i cuda-repo-ubuntu1504-7-5- local_7.5-18_amd64 8. sudo apt-get update 9. sudo apt-get install -y cuda 以上为安装CUDA驱动。(Nvidia驱动在这个过程也会自动装好) 10. vim ~/.bashrc 11. 按i进入编辑状态,将光标移到最下面一行。输入export PATH=/usr/local/cuda- 7.5/bin:$PATH 12. 输入export LD_LIBRARY_PATH=/usr/local/cuda- 7.5/lib64:$LD_LIBRARY_PATH,按:wq保存并退出 13. source ~/.bashrc 以上为配置环境变量 14. 将下载好的caffe源文件解压缩,即caffe-master然后切到那个目录中执行cp Makefile.config.example Makefile.config 15. vim Makefile.config 16. 按i进入编辑状态,修改:CUDA_DIR :=/usr/local/cuda-7.5 17. 如果使用了MATLAB或者Python需要按照Makefile.config文件中的提示在 Makefile.config进行相应的路径修改即可。 以上为配置Caffe相关路径 18. make all 19. make test 20. make runtest

GDAL使用方法VC+C#

GDAL栅格图像操作 GDAL是一个操作各种栅格和矢量(由ogr这个库实现)地理数据格式的开源库。包括读取、写入、转换、处理各种栅格和矢量数据格式(有些特定的格式对一些操作如写入等不支持)。 即使不是进行地理遥感方面的应用研究,GDAL也是一个非常有用的库,因为它可以支持大量我们常见的图像数据,比如jpg,gif之类的。完整的格式清单可以到此链接查看 https://www.wendangku.net/doc/6e17788779.html,/formats_list.html。而且已经有包括GoogleEarth在内的很多软件都是在使用GDAL作为后台库。 本文就以VC为开发平台介绍GDAL对栅格数据的操作方法。 Include目录是开发中需要的头文件,lib中是所需要的lib文件,在VC8中应当将其存放目录添加到目录列表中,选择菜单的“工具-选项-项目和解决方案-VC++目录”,分别在“包含文件”和“库文件”中将此两个目录添加进去。 在项目的属性页中,选择“配置属性-链接器-输入”,在“附加依赖项”中添加gdal_i-vc8.lib和 gdal_id-vc8.lib两个使用GDAL中需要的静态库文件,或者在程序中添加以下两行代码也可以。 #pragma comment(lib, "gdal_i-vc8.lib") #pragma comment(lib, "gdal_id-vc8.lib") Bin目录下的动态链接库文件应当放置于程序能够访问的位置,比如windows\system32中。 此外,在程序中需要引入的头文件是gdal_priv.h。 现在开始用C++来对图像文件进行操作。 在打开文件之前需要首先注册所需要的驱动程序,一般来说我们可以默认注册所有支持的格式驱动,所使用的函数是GDALAllRegister()。然后就是打开文件操作。 这里要说一个数据集的概念,也就是所谓的Dataset。在GDAL中可以说数据的核心就是Dataset,简单来说可以将Dataset就理解为图像文件,比如说一个jpeg格式的文件就是一个数据集,当然其他一些文件格式可能在一个数据集中包含多于一个文件,比如可能除了图像数据文件外还可能会有一些附加信息文件等。 在数据集下最重要组成部分就是所谓的波段band,波段可多可少,比如一个RGB真彩色的图像就有3个波段,分别代表红色绿色和蓝色波段,如果是灰度图,那可能就只有一个波段,而很多遥感图像可能就会多于3个波段。 除了波段外,数据集中还含有图像相关的坐标系投影信息,元数据信息等数据。 文件的打开使用的是GDALOpen ( const char * pszFilename, GDALAccess eAccess ),pszFilename是文件路径,eAccess 是访问权限,可以是GA_ReadOnly只读,也可以是GA_Update 来对文件进行修改。比如我们以只读模式打开一个tif文件: GDALDataset *poDataset; //数据集对象指针 GDALAllRegister();//注册驱动 poDataset = (GDALDataset *) GDALOpen( "c:\\terra335h_EV_250_Aggr500_RefSB_b0.tif", GA_ReadOnly ); if( poDataset != NULL /*检查是否正常打开文件*/) { //do something } delete poDataset; //释放资源

Unity3D客户端和Java服务端使用Protobuf

Unity3D客户端和Java服务端使用Protobuf 本文测试环境: 系统:WINDOWS 7(第3、6步)、OS X 10.9(第4步)软件:VS 2012(第3、6步)、Eclipse(第5、6步) 硬件:iPad 2(第4步)、Macbook Pro Mid 2012(第4步)文章目录: 1、关于Protobuf的C#实现 2、为什么有些Protobuf发布到iOS就用不了,甚至有些在PC都用不了? 3、手动处理C#版本的Protobuf 3.1、创建一个C#工程,先手动创建每一个要通过Protobuf序列化或反序列化的数据模型类,然后导出dll 3.2、创建一个用于序列化的C#工程,然后运行生成dll 3.3、将上面两个工程生成的dll拖到unity中 4、在Unity中反序列化Protobuf 5、服务端Java也用Protobuf 6、太烦了?!客户端也要自动处理Protobuf1、关于Protobuf 的C#实现 首先,U3D里面Protobuf使用的是C#的实现,那么目前有几个可选的C#实现:

C#: https://www.wendangku.net/doc/6e17788779.html,/p/protobuf-csharp-port C#: https://www.wendangku.net/doc/6e17788779.html,/p/protosharp/ C#: https://https://www.wendangku.net/doc/6e17788779.html,/protobuf/ C#/.NET/WCF/VB: https://www.wendangku.net/doc/6e17788779.html,/p/protobuf-net/我这里选用的是https://www.wendangku.net/doc/6e17788779.html,/p/protobuf-net/(你可以在 https://https://www.wendangku.net/doc/6e17788779.html,/p/protobuf-net/downloads/list 这里下载到他的代码和工具),它比较好的一点是,提供了各种平台的支持,解压后在“Full”目录中可以看到各个平台的支持看到里面的unity了吗,它里面的protobuf-net.dll将是我们准备用到的。2、为什么有些Protobuf发布到iOS就用不了,甚至有些在PC都用不了? a、Protobuf使用了JIT,即在运行时动态编译,而这个特性在Unity发布到iOS时候是不支持的。因此,会导致你在PC 上可以正常运行,发布到iOS就有问题。 b、Protobuf是基于.net 2.0以上框架写的,而Unity仅支持.net 2.0,或者有些使用2.0中比较多的特性,而你在Unity 中发布设置了.net 2.0的子集。后者你只需要在Player setting中修改设置就可以了。 上面两项也可适用于其它第三方类库,如果你自己下载了一个在PC上或C#里面能正常使用的类库,在U3D里面就不能用了,那么请检查是否是上面两条原因导致的。3、手动

分布式数据库原理及应用实验10-redis与hbase安装

《分布式数据库原理及应用》 实验报告 实验10:redis与hbase安装

一、实验目的 1.掌握redis与hbase的特点。 2.掌握redis与hbase的安装。 二、实验环境 操作系统自定 三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果) 实验内容: 1.梳理mongodb,neo4j,memcache,redis,hbase的异同 2.完成redis的安装与测试 3.完成hbase的安装与测试 实验步骤: 1.梳理mongodb,neo4j,memcache,redis,hbase的异同 Redis 所用语言:C/C++ 特点:运行异常快使用许可: BSD 协议:类 Telnet 有硬盘存储支持的内存数据库 Master-slave复制 虽然采用简单数据或以键值索引的哈希表,但也支持复杂操作。 Redis支持事务,支持哈希表,支持排序sets,支持队列(阻塞/非阻塞),支持将数据设置成过期数据(类似快速缓冲区设计) Pub/Sub允许用户实现消息机制。最佳应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。 例如:股票价格、数据分析、实时数据搜集、实时通讯。 Master-slave复制:如果同一时刻只有一台服务器处理所有的复制请求,这被称为Master-slave复制,通常应用在需要提供高可用性的服务器集群。 MongoDB 所用语言:C++ 特点:保留了SQL一些友好的特性(查询,索引) 使用许可: AGPL(发起者: Apache)协议: Custom binary( BSON) Master/slave复制(支持自动错误恢复,使用 sets 复制)内建分片机制 支持javascript表达式查询可在服务器端执行任意的 javascript函数 update-in-place支持比CouchDB更好。在数据存储时采用内存到文件映射对性能的关注超过对功能的要求建议最好打开日志功能(参数–journal) 最佳应用场景:适用于需要动态查询支持;需要使用索引而不是 map/reduce功能;需要对

GDAL API入门

GDAL API入门 打开文件 在打开GDAL所支持的光栅数据之前需要注册驱动。这里的驱动是针对GDAL支持的所有数据格式。通常可以通过调用GDALAllRegister()函数来注册所有已知的驱动,同时也包含那些用GDALDriverManager::AutoLoadDrivers()从.so文件中自动装载驱动。如果程序需要对某些驱动做限制,可以参考gdalallregister.cpp代码。 当驱动被注册之后,我们就可以用GDALOpen()函数来打开一个数据集。打开的方式可以是GA_ReadOnly或者GA_Update。 In C++: #include "gdal_priv.h" int main() { GDALDataset *poDataset; GDALAllRegister(); poDataset = (GDALDataset *) GDALOpen( pszFilename, GA_ReadOnly ); if( poDataset == NULL ) { ...; } In C: #include "gdal.h" int main() { GDALDatasetH hDataset; GDALAllRegister(); hDataset = GDALOpen( pszFilename, GA_ReadOnly ); if( hDataset == NULL ) { ...; } 如果GDALOpen()函数返回NULL则表示打开失败,同时CPLError()函数产生相应的错误信息。如果您需要对错误进行处理可以参考CPLError()相关文档。通常情况下,所有的GDAL函数都通过CPLError()报告错误。另外需要注意的是pszFilename并不一定对应一个实际的文件名(当然也可以就是一个文件名)。它的具体解释由相应的驱动程序负责。它可能是一个URL,或者是文件名以后后面带有许多用于控制打开 方式的参数。通常建议,不要在打开文件的选择对话框中对文件的类型做太多的限制。 获取Dataset信息 如果GDAL数据模型一节所描述的,一个GDALDataset包含了光栅数据的一系列的波段信息。同时它还包含元数据、一个坐标系统、投影类型、光栅的大小以及其他许多信息。

相关文档