GDAL简介与安装

本文详细介绍了GDAL库的基本概念,包括其功能、支持的数据格式以及在Windows和Linux环境下的安装步骤,重点展示了如何在不同操作系统上配置GDAL,特别是Python接口的使用和常见问题解决方案。
摘要由CSDN通过智能技术生成

一、什么是gdal

        gdal 中文版官网文档地址:  GDAL — GDAL 文档        

         GDAL(Geospatial Data Abstraction Library)是一个开源的地理空间数据处理库,提供了一系列用于读取、写入和处理各种地理空间数据格式的功能。它是一个跨平台的库,可以在多种操作系统上使用,包括 Windows、Linux 和 macOS。

        GDAL 库的一些主要功能和特性如下:

  • 地理空间数据格式支持: GDAL 支持多种常见的地理空间数据格式,包括栅格数据(如 GeoTIFF、JPEG2000、HDF、NetCDF)、矢量数据(如 Shapefile、GeoJSON、KML)和栅格矢量数据集(如 GeoPackage)等。
  • 数据转换和处理: GDAL 提供了一系列功能强大的工具和函数,用于数据转换、重投影、裁剪、合并、分割和统计等操作,使得用户能够灵活地处理和分析地理空间数据。
  • 数据读取和写入: GDAL 提供了统一的 API,用于读取和写入各种地理空间数据格式,使得用户可以方便地将数据加载到内存中进行处理,或者将处理结果写入到文件中保存。
  • 投影和坐标系支持: GDAL 支持各种常见的地理空间投影和坐标系,包括经纬度坐标系、投影坐标系、地心地固坐标系等,并提供了一系列函数用于投影转换和坐标系转换。
  • Python 接口: GDAL 提供了 Python 接口,允许用户使用 Python 编程语言调用 GDAL 库中的函数和工具,从而进行地理空间数据处理和分析。
  • 跨平台性: GDAL 是一个跨平台的库,可以在 Windows、Linux、macOS 等多种操作系统上使用,并且支持多种编程语言,包括 C/C++、Python、Java、JavaScript 等。
  • GDAL 是地理信息系统(GIS)领域中最重要和最常用的开源库之一,被广泛应用于地图制图、遥感影像处理、空间分析和地理空间数据可视化等领域。

二、Windows 环境下安装GDAL

        Windows安装包下载地址:download_gdal_Windows 

1、选择下载gdal版本。

        点击左侧目录树中的 "Older Release" ,根据需求选择gdal版本进行下载。 

2、拷贝 " *.dll " 文件。

        下载好后,将安装包解压到指定文件夹下(保证不会被移动或删除),打开下载的压缩包,打开到release-1928-x64-gdal-3-3-0-mapserver-7-6-3\bin目录下,把 bin 目录下的所有 " *.dll " 文件复制到自己所对应的 java  jdk bin 目录下(注意:64位就要对应64位的jdk),复制到 jdk bin过程中有重复的,就选择跳过就好

        同样把release-1928-x64-gdal-3-3-0-mapserver-7-6-3\bin\gdal\java目录下的

"gdalalljni.dll" 文件复制到 Java jdkbin 里面

 3、配置环境变量

        打开“设置”->“系统”->“系统信息”->“高级系统设置”->"环境变量",配置环境变量。

         配置 "GDAL_HOME" 变量,配置到所下载的 gdal 目录下

         配置 "PROJ_LIB" 变量,配置到所下载的 gdal 目录下的 "\bin\proj7\share" 下。

        配置path的变量,在path中新增 两个变量

        "%GDAL_HOME%\bin","%GDAL_HOME%\bin\gdal-data" 。

        注意:设置完 gdal 这几个环境变量后,重启电脑,否则可能不会生效   

4、gdal 使用

         在spring boot 项目中 添加如下依赖:

<dependency>
   <groupId>org.gdal</groupId>
   <artifactId>gdal</artifactId>
   <version>3.3.0</version>
</dependency>

 三、Linux 环境下安装GDAL

         Linux 安装包下载地址:download_gdal_Linux

        将所需要的安装包拷贝到 指定文件夹下(本人使用文件夹为:/usr/local/gdaljai)。

1、安装 gcc  g++

         检查版本gcc -v(使用默认版本即可)

gcc -v

        显示以下内容则表明gcc 已安装 

        如果没有gcc,可使用yum安装最新版本 

yum -y install gcc automake autoconf libtool make

         检查版本 g++ -v(使用默认版本即可)

g++ -v

        显示以下内容则表明g++ 已安装成功

        如果没有g++,可使用yum安装最新版本 

yum install gcc-c++ libstdc++-devel

2、安装Ant、pcre、swig、geos

       2.1 安装Ant

# 进入安装包目录下
cd /usr/local/gdaljai

# 解压
tar -zxvf  apache-ant-1.9.16-bin.tar.gz

# 改变权限
chmod 777 apache-ant-1.9.16

# 修改系统环境变量,在文件的最后加上如下两行代码
vim /etc/profile
export ANT_HOME=/usr/local/gdaljai/apache-ant-1.9.16
export PATH=$PATH:$ANT_HOME/bin

# 使环境变量生效
source  /etc/profile

# 测试ant是否生效(如果正常显示版本信息,则证明Ant安装成功)
ant -version 

        2.2 安装pcre

# 进入安装包目录
cd /usr/local/gdaljai

# 解压
tar -zxvf pcre-8.41.tar.gz

cd pcre-8.41

# 编译
./configure

# 安装
make && make install

        2.3 安装swig

cd /usr/local/gdaljai

# 解压
tar -zxvf swig-3.0.12.tar.gz

cd swig-3.0.12

# 编译
./configure

# 安装
make && make install

# 查看版本信息
swig -version

         2.4 安装geos

cd /usr/local/gdaljai

# 解压
tar -xjf geos-3.6.3.tar.bz2

cd geos-3.6.3

# 编译
./configure

# 安装
make && make install

3、安装 SFCGAL

        (SFCGAL-1.3.0.tar.gz),需要以下依赖环境:

        3.1 安装cmake、boost、boost-devel

yum install cmake

yum install boost

yum install boost-devel

        3.2 安装 gmp

# 下载gmp
wget https://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2

# 解压
tar -jxvf gmp-6.1.2.tar.bz2

# 进入安装包
cd gmp-6.1.2

# 编译
./configure --enable-cxx

# 安装
make
make check
make install

         3.3 安装mpfr

# 下载
wget https://www.mpfr.org/mpfr-4.0.2/mpfr-4.0.2.tar.bz2

# 解压
tar -jxvf mpfr-4.0.2.tar.bz2

cd mpfr-4.0.2

# 编译
./configure

# 安装
make
make check
make install

        3.4 安装cgal

wget https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.7/cgal-4.7.tar.gz

tar -xzvf CGAL-4.7.tar.gz

cd CGAL-4.7

cmake .
make
make install

        3.5 安装SFCGAL

wget https://github.com/Oslandia/SFCGAL/archive/v1.3.0.tar.gz -O SFCGAL-1.3.0.tar.gz

tar -xzvf SFCGAL-1.3.0.tar.gz

cd SFCGAL-1.3.0/

cmake .
make
make install

 4、安装 SQLite3

        检查SQLite3版本。(SQLite3如果满足版本需求可不安装,大于3.11即可)    

        安装SQLite3。

安装好的sqlite3默认可执行文件在/usr/local/bin/sqlite3 ;

默认库文件在/usr/local/lib;

默认配置文件在/usr/local/etc;

默认头文件在/usr/local/include;

        官网 SQLite Download Page 下载 sqlite-autoconf-3400000.tar.gz 。

# 解压sqlite3
tar -zxvf sqlite-autoconf-3400000.tar.gz

# 进入sqlite3目录  
cd sqlite-autoconf-3400000/

# 编辑
vim sqlite3.c
# 在以下内容后 新增 #define SQLITE_ENABLE_COLUMN_METADATA 1  
#define SQLITE_CORE 1
#define SQLITE_AMALGAMATION 1
#ifndef SQLITE_PRIVATE
# define SQLITE_PRIVATE static
#endif
#define SQLITE_ENABLE_COLUMN_METADATA 1 

# 配置sqlite3
./configure

# 安装编译sqlite3
make && make install

# 配置sqlite的环境变量
vim /etc/profile

# 配置地址
# export LD_LIBRARY_PATH=/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
# export LD_RUN_PATH=/usr/local/lib

# 配置生效
source /etc/profile

# 查看sqlite版本信息
sqlite3 --version

5、安装PROJ6

# 进入安装包目录下
cd /usr/local/gdaljai

# 解压
tar -zxvf  proj-6.1.0.tar.gz

# 进入安装包目录
cd proj-6.1.0

# 编译(这步可能报错,在满足版本的需求前提下,如果报错内容和下文一致,可参考解决)
./configure

# 安装
make && make install

         安装proj6可能出现的问题
  checking for SQLITE3... configure: error: Package requirements (sqlite3 >= 3.7) were not met:
        解决办法:

yum install sqlite-devel

6、安装gdal

        6.1 设置动态链接库

        让gdal能够找到proj及geos的所在位置。共享文件默认安装在/usr/local/lib位置下,因此可执行如下命令进行配置。

cd /etc/ld.so.conf.d/

touch local.conf

echo “/usr/local/lib” > local.conf

        6.2 安装gdal

cd /usr/local/gdaljai

# 解压
tar -zxvf gdal-3.3.0.tar.gz

cd gdal-3.3.0/

# 编译安装  !!!提示:该过程比较耗时,请耐心等待
./configure --with-static-proj4=/usr/local --with-java=$JAVA_HOME

# 编译安装  !!!提示:该过程比较耗时,请耐心等待
make && make install

# 查看版本信息
gdalinfo --version

        查询Java jdk安装位置 

echo  $JAVA_HOME

        修改java版配置文件

cd swig/java/

vim java.opt

        设置JAVA_HOME=$JAVA_HOME为JDK安装目录 

        最后执行编译安装

make && make install

        执行完成上述命令,会在"/usr/local/gdaljai/gdal-3.3.0/swig/java"目录下生成gdal依赖包。

        6.3 配置 gdal 依赖包

  1. 把gdal根目录/swig/java中生成的gdal.jar文件复制到$JAVA_HOME/jre/lib/ext下
  2. 把.so、.lo、.o、.la、*.a复制到自己方便的文件夹下,一般是$JAVA_HOME/jre/lib/amd64/server
  3. 在/etc/profile中添加:export LD_LIBRARY_PATH=.:$JAVA_HOME/jre/lib/amd64/server
  4. 文件生效:source /etc/profile

         

        7、可能会遇到的问题

1、

ogr_sfcgal.h:34:34: 致命错误:SFCGAL/capi/sfcgal_c.h:没有那个文件或目录
 #include <SFCGAL/capi/sfcgal_c.h>
                                  ^
编译中断。
make[1]: *** [ogrgeometryfactory.lo] 错误 1
make[1]: 离开目录“/usr/local/gdaljai/gdal-3.3.0/ogr”
make: *** [ogr-target] 错误 2

        解决办法:

        需要安装SFCGAL(SFCGAL-1.3.0.tar.gz)

2、

/usr/local/gdaljai/gdal-3.3.0/.libs/libgdal.so: undefined reference to `sqlite3_column_origin_name'
/usr/local/gdaljai/gdal-3.3.0/.libs/libgdal.so: undefined reference to `sqlite3_column_table_name'
collect2: error: ld returned 1 exit status
make[1]: *** [gdalinfo] 错误 1
make[1]: 离开目录“/usr/local/gdaljai/gdal-3.3.0/apps”
make: *** [apps-target] 错误 2

        解决方法:

# 进入sqlite安装目录
cd /usr/local/gdaljai/sqlite-autoconf-3400000
vim sqlite3.c
# 在以下内容后 新增 #define SQLITE_ENABLE_COLUMN_METADATA 1  
#define SQLITE_CORE 1
#define SQLITE_AMALGAMATION 1
#ifndef SQLITE_PRIVATE
# define SQLITE_PRIVATE static
#endif
#define SQLITE_ENABLE_COLUMN_METADATA 1 

# 清除编译配置 重新进行sqlite的编译配置安装
make clean
./configure
make && make install

# 进入gdal安装目录  清除编译配置 重新编译安装
cd /usr/local/gdaljai/gdal-3.3.0
make clean
./configure --with-static-proj4=/usr/local --with-java=$JAVA_HOME
make && make install

3、 

解决办法:

将以下三个文件拷贝到 /usr/local/lib/ 目录下

-- Up-to-date: /usr/local/lib64/libSFCGAL.so.1.3.0
-- Up-to-date: /usr/local/lib64/libSFCGAL.so.1
-- Up-to-date: /usr/local/lib64/libSFCGAL.so

参考链接:

linux机器搭建java版gdal环境_checking for sqlite3... configure: error: package -CSDN博客

GDAL编译报错ogr_sfcgal.h:34:34:fatal error:SFCGAL/capi/sfcgal_c/h:No such file or directory_ogr_sfcgal.h:34:34: fatal error: sfcgal/capi/sfcga-CSDN博客

Linux下安装GDAL(含docker部分)_linux安装gdal-CSDN博客

Linux(CentOS)编译安装GDAL3.0.4+Postgresql 12.2+Postgis-3.0.1_postgis 下载 linux 安装tar,gz-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值