【WRF工具】服务器上安装convert_geotiff

【WRF工具】服务器上安装convert_geotiff

将 GeoTIFF 转换为标准 TIFF 文件(WRF所需的二进制文件),涉及剥离与 GeoTIFF 格式关联的地理空间元数据,需要在服务器上编译安装convert_geotiff

convert_geotiff简介

convert_geotiff依赖安装 GeoTIFF和LibTIFF,各种库的安装还是configure、make、make install这三板斧,另外在安装好相关库以后记得设置环境变量

在安装时存在依赖关系为:

有两种安装方式,一是老老实实安装各依赖库,二是直接利用conda完成geotiff和libtiff库的安装,随后完成convert_geotiff安装。此处推荐后者,方便快捷,何乐而不为?

方法1:下载安装包后下载

convert_geotiff依赖库安装

库1:libtiff

在Linux系统中安装libtiff库是一项常见的操作,尤其对于需要处理TIFF格式文件的用户来说,这一步是必不可少的。libtiff是一个开源的软件库,用于处理TIFF格式文件的读取和写入,许多图形处理软件和打印机驱动都会用到这个库。因此,安装libtiff库可以帮助用户更方便地处理和操作TIFF格式的文件。

方法1:安装包下载

libTIFF安装包下载路径:Index of /libtiff/

安装代码:

bash 复制代码
cd /home/wanzhou/Packages
tar -xvf tiff-4.3.0.tar.gz
cd tiff-4.3.0/
./configure --prefix=your_install_dir/tiff
./configure --prefix=$DIR/tiff
make
make check
make install

终端界面如下:

库2:sqlite

sqlite安装包下载地址:SQLite Download Page

安装代码:

bash 复制代码
tar -xvf sqlite-autoconf-3460100.tar.gz
cd sqlite-autoconf-3460100/
./configure --prefix=your_install_dir/sqlite
make
make install

库3:curl

curl安装包下载地址:curl Releases and Downloads

安装代码:

bash 复制代码
 tar -xvf curl-7.82.0.tar.gz
 cd curl-7.82.0/
 ./configure --prefix=your_install_dir/curl --without-ssl
 make
 make install

库4:proj

proj安装包下载地址:Index of /proj/

最新的9.0.0版本需要使用cmake安装的。

由于出现error: downloading 'https://github.com/google/googletest/archive/release-1.11.0.zip' failed错误,因此在cmake步骤中选择取消测试选项,安装方法如下:

bash 复制代码
tar -xvf proj-9.0.0.tar.gz 
cd proj-9.0.0/
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=your_install_dir/proj \
-DSQLITE3_INCLUDE_DIR=$SQLITE3_HOME/include \
-DSQLITE3_LIBRARY=$SQLITE3_HOME/lib/libsqlite3.so \
-DTIFF_INCLUDE_DIR=$TIFF_HOME/include \
-DTIFF_LIBRARY_RELEASE=$TIFF_HOME/lib/libtiff.so.5 \
-DCURL_INCLUDE_DIR=$CURL_HOME/lib \
-DCURL_INCLUDE_DIR=$CURL_HOME/lib \
-DBUILD_TESTING=OFF \
..
make
make install

其中 S Q L I T E 3 H O M E 、 SQLITE3_HOME、 SQLITE3HOME、TIFF_HOME、$CURL_HOME为.bashrc环境变量中的设置量。

这里发现只有make、make install才能在指定安装目录生成lib,bin等文件夹,官网的cmake ...、cmake --build .步骤则不行。

其中需要注意的是sqlite3和tiff的lib库连接需要详细到xxx.so相关库,否则会报如下错误。

cmake更新(可选)

如果在执行cmake安装中出现如下报错,则需要安装新版的cmake,若没有问题则跳过cmake的安装这一步。

bash 复制代码
CMake Error at CMakeLists.txt:12 (cmake_minimum_required):
CMake 3.9 or higher is required.  You are running version 2.8.12.2

安装包下载地址:Index of /files/v3.23

安装代码:

bash 复制代码
tar -xvf cmake-3.23.0.tar.gz 
cd cmake-3.23.0/
./configure --prefix=your_install_dir/cmake
make
make install

其中在make这一步比较长,半小时还多。安装结束后在指定安装目录下会出现:bin,doc, share这3个文件夹。

由于需要使用cmake来编译proj,需要为cmake设置好环境变量。

bash 复制代码
# 加载cmake
export CMAKE_HOME=your_install_dir/cmake
export PATH=$CMAKE_HOME/bin:$PATH

其中PATH中需要把新装的路径放在最前面,否则执行cmake还是显示原来的安装位置。

bash 复制代码
$ cmake --version
cmake version 3.23.0

库5:geotiff

geotiff包下载路径:Index of /geotiff/libgeotiff/

安装代码:

bash 复制代码
tar -xvf libgeotiff-1.7.1.tar.gz 
cd libgeotiff-1.7.1/
./configure --prefix=your_install_dir/geotiff \
--with-libtiff=your_install_dir/tiff \
--with-proj=your_install_dir/proj \
--with-zlib --with-jpeg
make
make check
make install

tips:记得把${GeoTIFF_PATH}/lib加到LD_LIBRARY_PATH,否则运行convert_geotiff找不到库

convert_geotiff库安装

convert_geotiff安装包下载地址为:openwfm/convert_geotiff

安装代码:

bash 复制代码
export CPPFLAGS="-I/your_install_dir/tiff/include -I/your_install_dir/geotiff/include"
export LDFLAGS="-L/your_install_dir/tiff/lib -L/your_install_dir/geotiff/lib"

./configure --prefix=your_install_dir/convert_geotiff
make
make install

运行成功在安装目录中会自动生成bin文件夹,其中存在convert_geotiff可执行程序

bash 复制代码
$ ./bin/convert_geotiff 
Missing FileName.
Usage: ./bin/convert_geotiff [OPTIONS] FileName

Converts geotiff file `FileName' into geogrid binary format
into the current directory.

Options:
-h         : Show this help message and exit
-c NUM     : Indicates categorical data (NUM = number of categories)
-b NUM     : Tile border width (default 3)
-w [1,2,4] : Word size in output in bytes (default 2)
-z         : Indicates unsigned data (default FALSE)
-t NUM     : Output tile size (default 100)
-s SCALE   : Scale factor in output (default 1.)
-m MISSING : Missing value in output (default 0., ignored for categorical data)
-u UNITS   : Units of the data (default "NO UNITS")
-d DESC    : Description of data set (default "NO DESCRIPTION")

将convert_geotiff加入$PATH环境变量即可随意调用了。

错误总结

  • 如果在make阶段碰到如下问题,然后打开Makefile文件,找到207行LIBS = -lgeotiff -ltiff,在后面添加-lm,接着继续运行make。
bash 复制代码
/usr/bin/ld: geogrid_tiles.o: undefined reference to symbol 'ceil@@GLIBC_2.2.5'
//usr/lib64/libm.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [convert_geotiff] Error 1
  • 如果安装结束后运行./convert_geotiff出现如下错误:
bash 复制代码
./convert_geotiff: error while loading shared libraries: libgeotiff.so.5: cannot open shared object file: No such file or directory

可能是geotiff的LD_LIBRARY_PATH环境变量设置错误,修改后再重新编译即可运行。

  • 在configure步骤,出现了如下warning,虽然也不影响最终可执行程序的编译生成和运行,就先留个坑,如果后续发生报错再回头梳理。
bash 复制代码
checking for libproj... checking whether HAVE_LIBPROJ is declared... no
configure: WARNING: libproj support is not compiled into geotiff.  convert_geotiff will not be able to work with projected files.

方法2:使用Conda进行安装

convert_geotiff依赖库安装

还可以通过conda直接安装GeoTIFF and LibTIFF

bash 复制代码
conda install -c conda-forge geotiff
conda install -c conda-forge libtiff

终端界面如下:

查看版本,代码如下:

bash 复制代码
conda list geotiff
conda list libtiff

查看geotiff,终端界面如下:

查看libtiff,终端界面如下:

convert_geotiff库安装

添加环境变量如下:

bash 复制代码
GeoTIFF_PATH=/home/wanzhou/miniconda3/envs/gdal
export LD_LIBRARY_PATH=${GeoTIFF_PATH}/lib:$LD_LIBRARY_PATH

编译安装convert_geotiff库:

bash 复制代码
./configure --prefix=`pwd`/build CPPFLAGS=-I${GeoTIFF_PATH}/include LDFLAGS=-L${GeoTIFF_PATH}/lib
make
make install

终端界面如下:

另:GeoTIFF 和标准 TIFF 文件有什么区别?

  • GeoTIFF 是嵌入地理空间元数据的 TIFF 文件。此元数据包括坐标系、地图投影以及将图像链接到地球上特定位置的其他数据等信息。
  • 标准 TIFF 文件只是一种图像格式,没有附加的地理空间信息。它通常用于存储光栅图形。

将 GeoTIFF 转换为标准 TIFF 通常不会影响图像的视觉质量或分辨率。转换过程仅删除地理空间元数据。

参考

1、安装convert_geotiff步骤详解

相关推荐
WW、forever16 小时前
【WRF教程第3.5期】预处理系统 WPS 详解:以4.5版本为例
wrf
WW、forever17 小时前
【WPS安装】WPS编译错误总结:WPS编译失败+仅编译成功ungrib等
wrf
WW、forever20 小时前
【WRF教程第3.3期】预处理系统 WPS 详解:以4.5版本为例
wrf
WW、forever20 小时前
【WRF教程第3.4期】预处理系统 WPS 详解:以4.5版本为例
wrf
WW、forever16 天前
【WRF理论第十三期】详细介绍 Registry 的作用、结构和内容
wrf
WW、forever20 天前
【WRF-Urban】WPS中有关Urban的变量设置
wrf·urban
WW、forever20 天前
【WRF-Urban】城市冠层参数UCPs导入WPS/WRF中
wrf
高-老师23 天前
WRF-Chem模式安装、环境配置、原理、调试、运行方法;数据准备及相关参数设置方法
大气科学·wrf·wrf-chem·大气化学
WW、forever1 个月前
【WRF理论第十一期】检查WPS输出:geogrid和metgrid 输出nc数据+ungrib输出WPS数据
wps·wrf
WW、forever2 个月前
【WRF数据处理】基于GIS4WRF插件将geotiff数据转为tiff(geogrid,WPS所需数据)
qgis·1024程序员节·wrf