GDAL/ORG之Python获取与安装

GDAL(Geospatial Data Abstraction Library)是一个的开源栅格空间数据读取/转换库。其中还有一系列命令行工具来进行数据转换和处理。

      而ORG项目是GDAL的一个分支,功能与GDAL类似,但其提供对矢量数据的支持。 也就是说,可以用ORG的库来读取、处理shapefile等矢量数据(如果想显示shapefile,还需要用其他工具)。

     这里介绍GDAL和Python绑定的安装方法。

1、GDAL\OGR的Python版本的获取


二进制包

  Linux:

  • Fedora:可以直接在软件中心中搜索gdal,进行安装;
  • OpenSUSE:需要在YaST的软件源中添加地址http://download.opensuse.org/repositories/Application:/Geo/ 下的某个版本的软件源,注意,一定要选择对应版本,直接添加前面的地址是不行的(我犯的错误)。
  • Ubuntu:有个团队在维护Gdal for Ubuntu的可执行包,可以将其PPA添加到系统中以下载他们的软件,不过感觉他们更新二进制包的速度不怎么样。PPA地址为:ppa:ubuntugis/ppa 。

  其他Linux发行版中,Gdal二进制包的安装方式可能没前面说的那么简单,如果想了解详细信息,可参考http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries 。

  Windows:

  有人为Windows维护并每天更新Gdal的二进制包。包括GDAL/OGR完整的二进制包,以及GDAL的Java、C#和Python接口。注意,Gdal的Python接口要先安装GDAL核心,然后再安装Python扩展。地址为:http://www.gisinternals.com/sdk/ (英文)。

提示:
  1.   大家既然已经接触到GDAL了,应该有一定的英文水平了,所以这里就简要介绍,没有给出每一步的详细步骤。
  2.   Linux下的二进制包,只有Java和Python接口可选,没有C#接口包(虽然Linux下有Mono)。
  3.   Mac没测试过。。。

源码编译

  GDAL的源码在此:http://trac.osgeo.org/gdal/wiki/DownloadSource

  Windows

  Windows下自行编译GDAL,可以参考李明录老师的这篇文章:http://blog.csdn.net/liminlu0314/article/details/6945452。如果遇到什么问题,可以向他请教,他为人很和善的。如果他因故没有回复,您也可以在本文下留言,我会尽量回复的。

  Linux

  Linux下自行编译比较简单,只需要安装好相应的工具,然后输入:
[plain] view plaincopy
  1. % cd gdal  
  2. % ./configure  
  3. % make  
  4. % su  
  5. Password: ********  
  6. # make install  
  7. # exit  
  使用Linux的朋友应该能看懂。如果想编译Java或Python的扩展。需要下载相应的依赖,如Ant、Swig等。

提示:

  1. Windows下不建议自行编译,若需要支持特定格式和语言接口时,自行编译会需要安装许多软件并设置环境变量或修改makefile。这对于只想使用和研究的朋友来说无疑是个噩梦。比如想使用支持HDF的Java接口,那么编译时就需要下载GDAL本身的源码、SWIG二进制包、Ant、JDK(假设已经有了)、HDF4/5。并修改环境变量或GDAL的makefile。然后再使用VS的编译器或MinGW进行编译。这样无疑是痛苦的,所以建议除非迫不得已,否则使用前面所述的二进制包。
  2. 在Linux下,自行编译并添加依赖比较简单。
  3. MinGW编译问题,如上,笔者没有尝试过完整的编译的,所以仅仅尝试了用MinGW编译基本的GDAL包,这样做并不难,但是由于缺乏实用性。所以这样做目前看来没什么意义。
  4. 在Linux下,如果从“软件中心”安装GDAL时,需要安上devel包。Windows下,下载前述的二进制包时,如果需要进行C++开发时,需要下载目录中的lib包。例如,如果您想下载GDAL1.9.1的32位并进行C++开发,那么除了下载gdal-19-1600-core.msi ,还需要下载release-1600-gdal-1-9-mapserver-6-0-libs.zip ,后者包含GDAL的头文件和库。

2、GDAL\OGR的Python版本的安装

  Linux下,安装GDAL的二进制包并使用时很简单的。这里就说下Windows下安装GDAL的二进制包的方法。

  首先,我这里是32位的Win7,并计划使用VS2010中的C++编译器,那么我就选择GDAL Windows二进制包 下载地址中的MSVC2010 (Win32) -stable 一项,读者根据自己的配置进行选择。

  点击该选项后面一栏中的链接,如下:


这时,进入一个该机器和编译器配置下的不同软件包的下载,读者可根据自己的需要进行下载。这里我选择libs包、core包,以及Python2.7的扩展进行下则,如下

首先安装Core,这里使用了默认安装,也就是GDAL将安装到C:\Program Files\GDAL目录下。

  1. 设置新的环境变量,变量名为GDAL_DATA,值为C:\Program Files\GDAL\gata-data;
  2. 将C:\Program Files\GDAL添加到环境变量的PATH中,注意,尽量将这个目录添加到PATH环境变量中的起始位置,以免发生其他问题(重要!)。
  3. 双击安装Python接口包。
  4. 测试使用。
这样,Gdal的Python接口就安装完成了,本文不完善的地方将会进行改进。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Firewall配置

一、安装firewall #yum install -y firewalld firewall-config 二、启动并设置开机自启动# systemctl start firewalld# systemctl enable firewalld# systemctl stop firewalld# systemctl disable firewalld 三、firewall配置# firewall-config 防火墙图形配置界面# firewall…

网页cookie是什么?

Cookie 是用户访问的网站创建的文件,存储在用户电脑的硬盘中,用于保存浏览信息,例如您的网站偏好设置或个人资料信息。网站依靠Cookie辨认用户行踪,了解用户感兴趣内容,收集与用户有关的信息。用户访问查询网页上操作信…

使用基于微服务的流架构更好地进行大规模的复杂事件处理(第1部分)

基于微服务的流架构与开源规则引擎相结合,使实时业务规则变得容易 这篇文章旨在详细说明我将OSS业务规则引擎与Kafka风格的现代流消息传递系统集成在一起的项目。 该项目的目标(即众所周知的复杂事件处理(CEP))旨在实…

chown r mysql ._chown -R 用户名:组名 ./ 及 chown用法介绍

当我们在不通过yum(CentOS)、apt-get(Ubuntu)来安装MySQL的时候,通常执行以下命令来改变目录的拥有者:[rootlocalhost ~]# chown -R mysql:mysql ./这两个mysql谁是用户名谁是用户组呢?见chown详解。chown将指定文件的拥有者改为指定的用户或…

c语言abs和fabs的区别是什么?

abs是整数取绝对值,定义在stdlib.h头文件中。而fabs是指浮点数取绝对值,定义在math.h头文件中。 函数原型 int abs(int x) double fabs(double x)

Linux下编译GDAL

一、准备工作 从官网下载GDAL、PROJ.4和GEOS,将其存放在/home/liml/Work/3rdPart目录并解压,如下图所示。下载地址请自行Google。注:使用的系统是CentOS6.4 X64版本,其他的Linux系统都是一样的。 接下来检查系统中是否安装了开发…

PS提示错误1解决办法

重装电脑系统后,PS打不开了,提示错误1.在网上搜索,很多网友说要卸载重装。控制面板看不到ps,于是下载了Adobe卸载工具(点击链接下载),但是这个程序识别不了安装的ps.最后通过以下办法解决。 1.…

如何为你的博客园添加到百度统计

1.打开百度统计的地址 https://tongji.baidu.com/web/welcome/login?castkLTE%3D 2.注册,打开网址后,右面有注册按钮,点击注册 选择站长版,点击去 填写自己的注册信息 3.填完之后,登录进去,在管理标签下有…

mysql 左连接 重复_mysql左连接重复行

我正在设计一个类似于4个表格的字典数据库wordswordid | lemmasenseswordid | synsetidsynsetssynsetid | definitionsamplessynsetid | sample所以我使用下面的查询来获取所有意义定义和样本if(isset($searchterm)){echo "".$searchterm."";// QUERY TO F…

osgi java_使普通的旧Java OSGi兼容

osgi java尽管OSGi在Java世界中越来越流行,但仍有许多Java应用程序和库尚未设计成可在OSGi中使用。 有时您可能需要在OSGi环境中运行这样的代码,或者是因为您想利用OSGi本身提供的好处,或者因为您只需要此特定环境提供的某些功能。 通常&…

Matlab如何求离散点的导数

1.通过差分估算 已知同维度的x和y序列&#xff0c;则可使用diff(y)./diff(x)来估算。设x为n维向量&#xff0c;Dxdiff(x) 计算向量x的向前差分&#xff0c;DX(i)X(i1)-X(i)&#xff0c;0<i<n。 例一 y[7.86 7.84 7.82 7.77 7.72 7.68 7.61 7.51 7.42 7.33 7.21 7.07 6…

ERROR 6: GEOS support not enabled.

要学习GEOS库&#xff0c;肯定绕不开地理方面的东西。如果需要判断的两个多边形或几何图形&#xff0c;不是自己创建的&#xff0c;而是来自shapefile文件&#xff0c;那就得将GEOS库和GDAL/OGR库结合使用了。实际上只需要OGR就行了&#xff0c;但OGR和GDAL是放在一起的。OGR库…

java面向对象(this关键字)

一.this的作用 1.this 相当于是指向当前对象本身 2.成员变量和局部变量同名问题 class Person {private int age;private String name;// 给姓名和年龄初始化的构造方法Person(String name, int age) {// 当需要访问成员变量是&#xff0c;只需要在成员变量前面加上this.即可th…

c语言float二进制输出代码_下面C语言中这十四大谜题,不看答案你能做出来吗?...

C语言领取福利资料前往文末领取本篇文章《C语言的谜题》展示了14个C语言的迷题以及答案&#xff0c;代码应该是足够清楚的&#xff0c;而且我也相信有相当的一些例子可能是我们日常工作可能会见得到的。通过这些迷题&#xff0c;希望你能更了解C语言。如果你不看答案&#xff0…

平台策略:从Portlet到OpenSocial小工具再到渐进式Web应用程序:最新技术

介绍 由于世界仍在Java的掌控之中&#xff0c;因此我们经常定义所谓的基于组件的平台 。 我在2000年的OpenUSS&#xff08;开放大学支持系统&#xff09;方面拥有这一经验。 当时我有一个想法&#xff0c;就是开发一个可以使用组件体系结构和J2EE技术​​&#xff08; OpenUSS …

webm文件怎么在手机上正常播放以及在电脑上转换为mp4格式!

webm是一个开放、免费的媒体文件格式。WebM影片格式是以Matroska&#xff08;即MKV&#xff09;容器格式为基础开发的新容器格式&#xff0c;里面包括了VP8影片轨和Ogg Vorbis音轨&#xff1b;其中Google将其拥有的VP8视频编码技术以类似BSD授权开源&#xff0c;而Ogg Vorbis本…

WKT介绍

WKT&#xff0c;是一种文本标记语言&#xff0c;用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。它的二进制表示方式&#xff0c;亦即WKB(well-known binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。 目录 1概念2几何对象…

DS树+图综合练习--构建邻接表

题目描述 已知一有向图&#xff0c;构建该图对应的邻接表。邻接表包含数组和单链表两种数据结构&#xff0c;其中每个数组元素也是单链表的头结点&#xff0c;数组元素包含两个属性&#xff0c;属性一是顶点编号info&#xff0c;属性二是指针域next指向与它相连的顶点信息。单…

mysql datetime 间隔,MySQL datetime默认时间间隔

Is it possible to add to a default time with NOW(), 10 minutes?Ive tried something like that:CREATE TABLE table1 (date DATETIME NOT NULL DEFAULT DATE_ADD(NOW(), INTERVAL 10 MINUTE));However, it doesnt work.解决方案I dont think you can do this.The DEFAULT …

golang mysql 崩溃_mysql连接问题,goruntime里执行总是出错,程序一直崩溃

初学golang&#xff0c;尝试写一个程序&#xff0c;但是在mysql操作时遇到了问题~看网上文章&#xff0c;推荐mysql直接创建一个db全局变量&#xff0c;然后连接一次&#xff0c;以后使用到直接用这个db&#xff0c;我按照这样的方法&#xff0c;然后进行操作&#xff0c;可是程…