【WRF工具】服务器上安装convert_geotiff
- convert_geotiff简介
- 方法1:下载安装包后下载
- 方法2:使用Conda进行安装
- [另:GeoTIFF 和标准 TIFF 文件有什么区别?](#另:GeoTIFF 和标准 TIFF 文件有什么区别?)
- 参考
将 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 通常不会影响图像的视觉质量或分辨率。转换过程仅删除地理空间元数据。