Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >安装convert_geotiff步骤详解

安装convert_geotiff步骤详解

作者头像
自学气象人
发布于 2023-06-21 07:21:05
发布于 2023-06-21 07:21:05
1K20
代码可运行
举报
文章被收录于专栏:自学气象人自学气象人
运行总次数:0
代码可运行

引言

由于将geotiff文件转为WRF所需的二进制文件,需要在服务器上编译安装convert_geotiff

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

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

convert_geotiff安装依赖


libtiff

其中libTIFF安装包下载路径:

http://download.osgeo.org/libtiff/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -xvf tiff-4.3.0.tar.gz
cd tiff-4.3.0/
./configure --prefix=your_install_dir/tiff
make
make check
make install

sqlite

下载地址:

https://www.sqlite.org/download.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -xvf sqlite-autoconf-3380200.tar.gz
cd sqlite-autoconf-3380200/
./configure --prefix=your_install_dir/sqlite
make
make install

curl

下载地址:

https://curl.se/download.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 tar -xvf curl-7.82.0.tar.gz
 cd curl-7.82.0/
 ./configure --prefix=your_install_dir/curl --without-ssl
 make
 make install

proj

包下载路径

http://download.osgeo.org/proj/

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

其中SQLITE3_HOME、TIFF_HOME、

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFTileSize64'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFSetTagExtender'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFClose'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFMergeFieldInfo'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFGetField'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFIsCODECConfigured'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFIsTiled'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFReadEncodedTile'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFClientOpen'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFSetSubDirectory'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFReadDirectory'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFCurrentDirOffset'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFReadEncodedStrip'
../../lib/libproj.so.25.9.0.0: undefined reference to `TIFFStripSize64'
collect2: error: ld returned 1 exit status
gmake[2]: *** [bin/cct] Error 1
gmake[1]: *** [src/apps/CMakeFiles/cct.dir/all] Error 2
gmake: *** [all] Error 2

cmake更新(可选)

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CMake Error at CMakeLists.txt:12 (cmake_minimum_required):
CMake 3.9 or higher is required.  You are running version 2.8.12.2

下载安装包:

https://cmake.org/files/v3.23/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar -xvf cmake-3.23.0.tar.gz 
cd cmake-3.23.0/
./configure --prefix=your_install_dir/cmake
make
make install

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 加载cmake
export CMAKE_HOME=your_install_dir/cmake
export PATH=$CMAKE_HOME/bin:$PATH

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cmake --version

cmake version 3.23.0

geotiff

包下载路径:

http://download.osgeo.org/geotiff/libgeotiff/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

中间会出现问题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
checking for PROJ >= 6 library... checking for proj_create_from_wkt in -lproj... no
checking for proj_create_from_wkt in -lproj... no
checking for internal_proj_create_from_wkt in -lproj... no
checking for internal_proj_create_from_wkt in -lproj... no
checking for internal_proj_create_from_wkt in -linternalproj... no
checking for internal_proj_create_from_wkt in -linternalproj... (cached) no
configure: error: PROJ 6 symbols not found

打开config.log,可以发现对于proj库指向了-L/public1/home/scb5863/software/proj/lib,而最后的路径应该是lib64而非lib。

这里的解决办法是在proj的安装路径下将lib64文件夹直接复制为lib文件夹,即cp -r lib64/ lib/。当然也可以通过软连接的方式。

make check最后,出现了如下问题,但也不影响使用,留坑待续。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PROBLEMS HAVE OCCURRED
test file testlistgeo_out saved

make[2]: *** [check-local] Error 100
make[2]: Leaving directory `/public1/home/scb5863/software/package/libgeotiff-1.7.1/test'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/public1/home/scb5863/software/package/libgeotiff-1.7.1/test'
make: *** [check-recursive] Error 1

convert_geotiff

下载地址为:

https://github.com/openwfm/convert_geotiff

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 isntall

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./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环境变量即可随意调用了。

  1. 如果在make阶段碰到如下问题,然后打开Makefile文件,找到207行LIBS = -lgeotiff -ltiff,在后面添加-lm,接着继续运行make
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/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
  1. 如果安装结束后运行./convert_geotiff出现如下错误:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./convert_geotiff: error while loading shared libraries: libgeotiff.so.5: cannot open shared object file: No such file or directory

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

configure步骤,出现了如下warning,虽然也不影响最终可执行程序的编译生成和运行,就先留个坑,如果后续发生报错再回头梳理。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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.

小结

这里还是主要介绍了没有root权限的情况下,如何安装conver_geotiff以及相关依赖库。

因为后面会记录一下WRF中一些数据的替换,其中conver_geotiff用到的情况比较多,也是基础性的安装,所以就先放出来了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自学气象人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
2 条评论
热度
最新
敢问您知道如何替换LAI吗?从tiff转为WRF需要的二进制文件如何生成?conver_geotiff替换单层的lucc数据是可以的,但是多层的LAI该如何替换?
敢问您知道如何替换LAI吗?从tiff转为WRF需要的二进制文件如何生成?conver_geotiff替换单层的lucc数据是可以的,但是多层的LAI该如何替换?
回复回复点赞举报
请问cmake的时候,说找不到proj和sqlite库的路径:报错CMake Error: The source directory "/public/home/fdu_qiusy/qiusy/mathlib/proj-9.0.0/build/ -DSQLITE3_INCLUDE_DIR=$/public/home/fdu_qiusy/qiusy/mathlib/sqlite-autoconf-3440000/sqlite/include" does not exist. 请问有什么解决办法吗。谢谢博主
请问cmake的时候,说找不到proj和sqlite库的路径:报错CMake Error: The source directory "/public/home/fdu_qiusy/qiusy/mathlib/proj-9.0.0/build/ -DSQLITE3_INCLUDE_DIR=$/public/home/fdu_qiusy/qiusy/mathlib/sqlite-autoconf-3440000/sqlite/include" does not exist. 请问有什么解决办法吗。谢谢博主
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
麒麟系统V10 SP2 编译安装PHP 7.4.30
yum -y install libtool sqlite-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel
Kevin song
2022/11/19
3.2K0
麒麟系统V10 SP2 编译安装PHP 7.4.30
长篇好文 | 全离线部署Zabbix7.0+MySQL8.0+PHP8.0
银行作为金融行业的重要组成部分,对信息系统的稳定性和安全性有着极高的要求。为了确保银行机房内的系统能够得到有效的监控,笔者选择部署Zabbix 7.0 LTS作为主力军。然而,由于银行机房的特殊安全策略,不允许直连互联网,这对安装和部署带来了一定的挑战。因此,笔者决定采用全离线部署和编译的方式来完成Zabbix 7.0 LTS的安装,具体步骤详见下文。
Zabbix
2025/02/27
6810
长篇好文 | 全离线部署Zabbix7.0+MySQL8.0+PHP8.0
Mono Libgdiplus库
Libgdiplus是一个Mono库,用于对非Windows操作系统提供GDI+兼容的API。libgdiplus是mono中的System.Drawing依赖的一个组件,用于显示web页面基本颜色等。目前最新是libgdiplus-2.10,具体可以 http://www.mono-project.com/Libgdiplus 。 tar -xjvf libgdiplus-2.10.tar.bz2 cd libgdiplus-2.10 ./configure --prefix=/usr/local mak
张善友
2018/01/19
1.8K0
centos7 安装gdal2.3.1
在直接源码安装gdal2.3时报错,大概意思是说没有安装SFCGAL。 1、centos更新cmake到3.5版本: wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz tar xvf cmake-3.5.2.tar.gz cd cmake-3.5.2 ./bootstrap --prefix=/usr (这一步很关键,如果没有指定prefix,后面使用时会报错Could not find CMAKE_ROOT) gmake sudo gmake ins
Echo_fy
2018/08/02
1.4K0
ffmpeg 安装(支持h.265)
当执行./configure 时遇到 ERROR: x265 not found using pkg-config
全栈程序员站长
2022/10/01
1.6K0
Ubuntu 安装 Heartbeat 过程
1. 首先建立相关用户hacluster和组haclient,然后设定环境变量,最后就是安装heartbeat
星哥玩云
2022/06/30
9070
CentOS8中源码安装libcurl库
参考了centos 7.6 源码编译curl 7.75.0和curl安装时出现:configure: error: select TLS backend(s) or disable TLS with --without-ssl.这两篇博客, 由于libcurl源代码目录没有提供configure文件,所以要使用buildconf脚本生成对应的configure文件,步骤如下: 1)、安装automake、autoreconf、libtool工具,执行如下命令:
ccf19881030
2022/05/11
2.7K0
CentOS8中源码安装libcurl库
Centos7安装php8
title: 'Centos7安装php8' date: 2021-07-12T20:00:59+08:00 draft: false slug: 'centos7-install-php-8'
无道
2021/07/15
1.4K0
进阶数据库系列(二十五):PostgreSQL 数据库日常运维管理
这是个bug,版本升级后,pg_config改变了,会导致后面装外部extension时没有装到指定目录。
民工哥
2023/08/22
1.7K0
进阶数据库系列(二十五):PostgreSQL 数据库日常运维管理
CentOS6 编译安装LNMP步骤
# 手动安装lnmp 包含 libiconv libunwind gperftools libmcrypt mhash mcrypt libpng freetype jpeg gd pcre libmemcached php_memcached(memcached.so)  eaccelerator ZendOptimizer MySQL5.5 php5.3 nginx1.2.7 memcached tokyocabinet tokyotyrant #路径 程序存放      /data/service lib or common /data/service/common 数据存放      /data/data 日志存放      /data/logs
星哥玩云
2022/06/28
5620
openResty安装组件drizzle遇到的一些问题
考虑到大家找起来比较麻烦,这里提供一个百度云盘下载2011.07.21的包,点击即可下载提取码:92v4
友儿
2022/09/11
6660
shell脚本 一键源码编译安装LNMP
下载 wget https://raw.githubusercontent.com/goodboy23/shell/master/jobs/install_lnmp.sh
陈不成i
2021/06/23
9330
LAMP之PHP
保持apache、mysql正在运行 [root@cairui php-7.2.3]# lsof -i tcp:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME AliYunDun 1335 root 18u IPv4 9047 0t0 TCP 120.25.255.87:36408->106.11.68.13:http (ESTABLISHED) httpd 32150 root 3
用户1173509
2022/03/24
2.1K0
LAMP之PHP
LNMTP安装脚本
#!/bin/sh # add fastrepo #/bin/echo "nameserver 202.96.128.86" >> /etc/resolv.conf PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH dir=/usr/local/src function install_rest() { echo "nameserver 202.96.128.86">> /etc
小俊丶Eternally
2018/06/27
1.2K0
MinGW32和64位交叉编译环境的安装和使用「建议收藏」
CompileGraphics Magick, Boost, Botan and QT with MinGW64 under Windows 7 64
全栈程序员站长
2022/07/23
9.1K0
MinGW32和64位交叉编译环境的安装和使用「建议收藏」
memcached的安装以及php两个扩展软件安装(memcache、memcached)
百度云安装包:http://pan.baidu.com/s/1pKZeDwn  k3ap
那一叶随风
2018/08/22
9190
memcached的安装以及php两个扩展软件安装(memcache、memcached)
更新:Visual Studio配置C++的GDAL库
  本文介绍在Visual Studio软件中配置、编译C++环境下GDAL库、SQLite环境与PROJ库的详细方法。
疯狂学习GIS
2024/07/22
1.1K6
更新:Visual Studio配置C++的GDAL库
linux 基础学习编译安装php+my
    CentOS6.9 x86 - 64 最小化安装 配置好网络 用户 使用Xshell登录
py3study
2020/01/09
4540
Linux[CentOS]下编译安装Php7.3 步骤【附编译错误解决】
上一篇讲了如何在Centos下编译安装nginx服务器,但是Nginx服务器目前只能当做静态服务器使用,也即只能展示前端静态页面,没有动态语言来结合。
无道
2019/11/13
4.8K0
Linux[CentOS]下编译安装Php7.3 步骤【附编译错误解决】
配置nginx支持php
一、检查php是否已经安装,使用php -v,是否能够看到版本号,或者使用rpm -qa | grep php查看是否安装过。
conanma
2021/12/05
3.1K0
相关推荐
麒麟系统V10 SP2 编译安装PHP 7.4.30
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验