当前位置:   article > 正文

GDAL简介与安装

gdal

一、什么是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 项目中 添加如下依赖:

  1. <dependency>
  2. <groupId>org.gdal</groupId>
  3. <artifactId>gdal</artifactId>
  4. <version>3.3.0</version>
  5. </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

  1. # 进入安装包目录下
  2. cd /usr/local/gdaljai
  3. # 解压
  4. tar -zxvf apache-ant-1.9.16-bin.tar.gz
  5. # 改变权限
  6. chmod 777 apache-ant-1.9.16
  7. # 修改系统环境变量,在文件的最后加上如下两行代码
  8. vim /etc/profile
  9. export ANT_HOME=/usr/local/gdaljai/apache-ant-1.9.16
  10. export PATH=$PATH:$ANT_HOME/bin
  11. # 使环境变量生效
  12. source /etc/profile
  13. # 测试ant是否生效(如果正常显示版本信息,则证明Ant安装成功)
  14. ant -version

        2.2 安装pcre

  1. # 进入安装包目录
  2. cd /usr/local/gdaljai
  3. # 解压
  4. tar -zxvf pcre-8.41.tar.gz
  5. cd pcre-8.41
  6. # 编译
  7. ./configure
  8. # 安装
  9. make && make install

        2.3 安装swig

  1. cd /usr/local/gdaljai
  2. # 解压
  3. tar -zxvf swig-3.0.12.tar.gz
  4. cd swig-3.0.12
  5. # 编译
  6. ./configure
  7. # 安装
  8. make && make install
  9. # 查看版本信息
  10. swig -version

         2.4 安装geos

  1. cd /usr/local/gdaljai
  2. # 解压
  3. tar -xjf geos-3.6.3.tar.bz2
  4. cd geos-3.6.3
  5. # 编译
  6. ./configure
  7. # 安装
  8. make && make install

3、安装 SFCGAL

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

        3.1 安装cmake、boost、boost-devel

  1. yum install cmake
  2. yum install boost
  3. yum install boost-devel

        3.2 安装 gmp

  1. # 下载gmp
  2. wget https://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2
  3. # 解压
  4. tar -jxvf gmp-6.1.2.tar.bz2
  5. # 进入安装包
  6. cd gmp-6.1.2
  7. # 编译
  8. ./configure --enable-cxx
  9. # 安装
  10. make
  11. make check
  12. make install

         3.3 安装mpfr

  1. # 下载
  2. wget https://www.mpfr.org/mpfr-4.0.2/mpfr-4.0.2.tar.bz2
  3. # 解压
  4. tar -jxvf mpfr-4.0.2.tar.bz2
  5. cd mpfr-4.0.2
  6. # 编译
  7. ./configure
  8. # 安装
  9. make
  10. make check
  11. make install

        3.4 安装cgal

  1. wget https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-4.7/cgal-4.7.tar.gz
  2. tar -xzvf CGAL-4.7.tar.gz
  3. cd CGAL-4.7
  4. cmake .
  5. make
  6. make install

        3.5 安装SFCGAL

  1. wget https://github.com/Oslandia/SFCGAL/archive/v1.3.0.tar.gz -O SFCGAL-1.3.0.tar.gz
  2. tar -xzvf SFCGAL-1.3.0.tar.gz
  3. cd SFCGAL-1.3.0/
  4. cmake .
  5. make
  6. 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 。

  1. # 解压sqlite3
  2. tar -zxvf sqlite-autoconf-3400000.tar.gz
  3. # 进入sqlite3目录
  4. cd sqlite-autoconf-3400000/
  5. # 编辑
  6. vim sqlite3.c
  7. # 在以下内容后 新增 #define SQLITE_ENABLE_COLUMN_METADATA 1
  8. #define SQLITE_CORE 1
  9. #define SQLITE_AMALGAMATION 1
  10. #ifndef SQLITE_PRIVATE
  11. # define SQLITE_PRIVATE static
  12. #endif
  13. #define SQLITE_ENABLE_COLUMN_METADATA 1
  14. # 配置sqlite3
  15. ./configure
  16. # 安装编译sqlite3
  17. make && make install
  18. # 配置sqlite的环境变量
  19. vim /etc/profile
  20. # 配置地址
  21. # export LD_LIBRARY_PATH=/usr/local/lib
  22. export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
  23. # export LD_RUN_PATH=/usr/local/lib
  24. # 配置生效
  25. source /etc/profile
  26. # 查看sqlite版本信息
  27. sqlite3 --version

5、安装PROJ6

  1. # 进入安装包目录下
  2. cd /usr/local/gdaljai
  3. # 解压
  4. tar -zxvf proj-6.1.0.tar.gz
  5. # 进入安装包目录
  6. cd proj-6.1.0
  7. # 编译(这步可能报错,在满足版本的需求前提下,如果报错内容和下文一致,可参考解决)
  8. ./configure
  9. # 安装
  10. 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位置下,因此可执行如下命令进行配置。

  1. cd /etc/ld.so.conf.d/
  2. touch local.conf
  3. echo “/usr/local/lib” > local.conf

        6.2 安装gdal

  1. cd /usr/local/gdaljai
  2. # 解压
  3. tar -zxvf gdal-3.3.0.tar.gz
  4. cd gdal-3.3.0/
  5. # 编译安装 !!!提示:该过程比较耗时,请耐心等待
  6. ./configure --with-static-proj4=/usr/local --with-java=$JAVA_HOME
  7. # 编译安装 !!!提示:该过程比较耗时,请耐心等待
  8. make && make install
  9. # 查看版本信息
  10. gdalinfo --version

        查询Java jdk安装位置 

echo  $JAVA_HOME

        修改java版配置文件

  1. cd swig/java/
  2. 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、

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

        解决办法:

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

2、

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

        解决方法:

  1. # 进入sqlite安装目录
  2. cd /usr/local/gdaljai/sqlite-autoconf-3400000
  3. vim sqlite3.c
  4. # 在以下内容后 新增 #define SQLITE_ENABLE_COLUMN_METADATA 1
  5. #define SQLITE_CORE 1
  6. #define SQLITE_AMALGAMATION 1
  7. #ifndef SQLITE_PRIVATE
  8. # define SQLITE_PRIVATE static
  9. #endif
  10. #define SQLITE_ENABLE_COLUMN_METADATA 1
  11. # 清除编译配置 重新进行sqlite的编译配置安装
  12. make clean
  13. ./configure
  14. make && make install
  15. # 进入gdal安装目录 清除编译配置 重新编译安装
  16. cd /usr/local/gdaljai/gdal-3.3.0
  17. make clean
  18. ./configure --with-static-proj4=/usr/local --with-java=$JAVA_HOME
  19. 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博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/1015953
推荐阅读
相关标签
  

闽ICP备14008679号