【WRF工具】服务器上安装convert_geotiff
【WRF工具】服务器上安装convert_geotiff
- convert_geotiff简介
- 方法1:下载安装包后下载
- convert_geotiff依赖库安装
- 库1:libtiff
- 库2:sqlite
- 库3:curl
- 库4:proj
- cmake更新(可选)
- 库5:geotiff
- convert_geotiff库安装
- 错误总结
- 方法2:使用Conda进行安装
- convert_geotiff依赖库安装
- 报错: configure: error: Cannot find TIFF library. Try setting CFLAGS and LDFLAGS if it is installed in a non-standard location.
- convert_geotiff库安装
- 另: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/
安装代码:
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
安装代码:
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
安装代码:
tar -xvf curl-7.82.0.tar.gzcd curl-7.82.0/./configure --prefix=your_install_dir/curl --without-sslmakemake 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步骤中选择取消测试选项,安装方法如下:
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的安装这一步。
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
安装代码:
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设置好环境变量。
# 加载cmake
export CMAKE_HOME=your_install_dir/cmake
export PATH=$CMAKE_HOME/bin:$PATH
其中PATH中需要把新装的路径放在最前面,否则执行cmake还是显示原来的安装位置。
$ cmake --version
cmake version 3.23.0
库5:geotiff
geotiff包下载路径:Index of /geotiff/libgeotiff/
安装代码:
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
安装代码:
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可执行程序。
$ ./bin/convert_geotiff
Missing FileName.
Usage: ./bin/convert_geotiff [OPTIONS] FileNameConverts 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。
/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出现如下错误:
./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,虽然也不影响最终可执行程序的编译生成和运行,就先留个坑,如果后续发生报错再回头梳理。
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
conda install -c conda-forge geotiff
conda install -c conda-forge libtiff
conda install libgeotiff-dev
终端界面如下:
查看版本,代码如下:
conda list geotiff
conda list libtiff
查看geotiff,终端界面如下:
查看libtiff,终端界面如下:
环境变量配置代码:
export LIBTIFF_HOME=/home/wanzhou/miniconda3/pkgs/libtiff-4.7.0-h6565414_0
export PATH=$LIBTIFF_HOME/bin:$PATH
export LD_LIBRARY_PATH=${LIBTIFF_HOME}/lib:$LD_LIBRARY_PATH
export INCLUDE=${LIBTIFF_HOME}/include:$INCLUDE
报错: configure: error: Cannot find TIFF library. Try setting CFLAGS and LDFLAGS if it is installed in a non-standard location.
CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该变量中来。
LDFLAGS:gcc 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。用法:LDFLAGS=-L/usr/lib -L/path/to/your/lib。每安装一个包都几乎一定的会在安装目录里建立一个lib目录。如果明明安装了某个包,而安装另一个包时,它愣是说找不到,可以抒那个包的lib路径加入的LDFALGS中试一下。
./configure --prefix=安装目录 CFLAGS="yourpath/include" LDFLAGS="yourpath/lib"
convert_geotiff库安装
1、编译安装convert_geotiff库:
cd /home/wanzhou/Packages/convert_geotiff-0.1
cd convert_geotiff
# 设置安装路径
./configure --prefix=/home/wanzhou/convert_geotiff
./configure --prefix=`pwd`/build CPPFLAGS=-I${GeoTIFF_PATH}/include LDFLAGS=-L${GeoTIFF_PATH}/lib
# 若Permission is denied
chmod +x ./configure
./configure --prefix=/home/wanzhou/convert_geotiff
./configure --prefix=/home/wanzhou/convert_geotiff CFLAGS="/home/wanzhou/miniconda3/pkgs/libtiff-4.5.0-h6adf6a1_2/include" LDFLAGS="/home/wanzhou/miniconda3/pkgs/libtiff-4.5.0-h6adf6a1_2/lib"
make
make install
终端界面如下:
2、convert_geotiff使用
方式1:将convert_geotiff加入$PATH环境变量,如下:
GeoTIFF_PATH=/home/wanzhou/miniconda3/envs/gdal
export LD_LIBRARY_PATH=${GeoTIFF_PATH}/lib:$LD_LIBRARY_PATH
方式2:或者移动到/usr/local/bin,如下:
mv /yourpath/convert_geotiff /usr/local/bin
3、测试convert_geotiff
convert_geotiff -h
另:GeoTIFF 和标准 TIFF 文件有什么区别?
- GeoTIFF 是嵌入地理空间元数据的 TIFF 文件。此元数据包括坐标系、地图投影以及将图像链接到地球上特定位置的其他数据等信息。
- 标准 TIFF 文件只是一种图像格式,没有附加的地理空间信息。它通常用于存储光栅图形。
将 GeoTIFF 转换为标准 TIFF 通常不会影响图像的视觉质量或分辨率。转换过程仅删除地理空间元数据。
参考
1、安装convert_geotiff步骤详解
相关文章:

【WRF工具】服务器上安装convert_geotiff
【WRF工具】服务器上安装convert_geotiff convert_geotiff简介方法1:下载安装包后下载convert_geotiff依赖库安装库1:libtiff库2:sqlite库3:curl库4:projcmake更新(可选)库5:geotiff…...

RPC通讯基础原理
1.RPC(Remote Procedure Call)概述 RPC是一种通过网络从远程计算机上调用程序的技术,使得构建分布式计算更加容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性,提供一种透明调用机制,让使用者不…...
JavaScript 第18章:安全性
在JavaScript开发中,确保应用的安全性是非常重要的。下面我将根据你提到的几个方面来讲解如何增强Web应用程序的安全性。 XSS(跨站脚本)攻击防御 示例代码: function escapeHTML(unsafe) {return unsafe.replace(/&/g, &qu…...
基于workbox实现PWA预缓存能力
引言 Service Worker 是一项流行的技术,尽管在许多项目中尚未得到充分利用。基于本次项目首页加载优化的机会,决定尝试使用 Google 出品的 Workbox,以观察其优化效果。 开始 安装 项目使用 Webpack 打包,而 Workbox 提供了 We…...

探索Web3生态系统:社区、协议与参与者的角色
Web3代表着互联网的下一个演变阶段,旨在通过去中心化技术赋予用户更大的控制权和参与感。在这个新兴生态系统中,社区、协议和参与者扮演着不可或缺的角色,共同推动着Web3的建设与发展。 社区的核心作用 在Web3中,社区通过提供反馈…...

无人机电机故障率骤降:创新设计与六西格玛方法论双赢
项目背景 TBR-100是消费级无人机头部企业推出的主打消费级无人机,凭借其出色的续航能力和卓越的操控性,在市场上获得了广泛认可。在产品运行过程,用户反馈电机故障率偏高,尤其是在飞行一段时间后出现电机过热、损坏以及运行不稳定…...
samba禁用时拷贝服务器文件到本地的脚本
Android系统开发一般在ubuntu服务器上,我们办公电脑一般是windows。在将编译出来的模块push到板子上时,一般采用adb push 方式。 有时由于种种原因会出现服务器禁用了samba,导致无法直接用adb push 的情况。 下面介绍用winscp 走ssh 拷贝服…...

C#代码 串口通信晋中A2板,控制直流电机
1,在电脑中给晋中板中下载编译好的程序。 0x39 :开启电机的标识 代码: /********************************************************************************** **** 实验名称:串口通信实验 接线说明: 实验现象&…...

3 机器学习之假设空间
归纳(induction)与演绎(deduction)是科学推理的两大基本手段。前者是从特殊到一般的“泛化”(generalization)过程,即从具体的事实归结出一般性规律;后者则是从一般到特殊的“特化”(specialization)过程,即从基础原理推演出具体状况。例如&a…...

基于STM32的风速风向传感器设计
引言 本项目设计了一个基于STM32的风速和风向传感器系统,能够通过组合使用旋转式风速传感器和电子罗盘,实时测量风速和风向,并将数据通过显示屏或无线模块发送给用户。该系统适用于气象监测、环境监控、农业自动化等场景,具有准确…...

域名申请.
操作场景 Internet上有成千上万台主机,每一台主机都对应一个唯一的IP地址。IP地址因不具备实际意义,非常难于记忆,于是就产生了域名。 域名(Domain Name)是一串用点分隔的字符串组成的名称(例如huaweiclo…...
mysql5.7与mysql8.0身份认证插件的区别
MySQL 5.7 和 MySQL 8.0 在身份认证插件方面有一些重要的区别。这些变化主要集中在默认的身份验证插件、密码管理和安全性增强上。 默认身份验证插件 MySQL 5.7 默认插件: mysql_native_password mysql_native_password 是 MySQL 5.7 及更早版本中的默认身份验证插件。它使用…...

进化吧!原始人
如果你想体验一下人类的进化过程~ 如果你有一颗充满探索的好奇心~ 千万不要错过博主新开发的小游戏哦! 点击链接,立即体验! 🙋 欢迎来到冒险互动游戏《进化吧原始人》! 🦍 在这里,你将扮演一…...

SaaS架构:中央库存系统架构设计
大家好,我是汤师爷~ 近年来,越来越多的零售企业大力发展全渠道业务。在销售额增长上,通过线上的小程序、直播、平台渠道等方式,拓展流量变现渠道。在会员增长方面,通过多样的互动方式,全渠道触达消费者&am…...
C语言中点操作符(.)和箭头操作符(->)的区别
在C语言中,点操作符(.)和箭头操作符(->)用于访问结构体的成员,但它们的使用方式有所不同。以下是具体介绍: 点操作符(.)的使用 直接访问结构体变量的成员:…...

基于FPGA的以太网设计(一)
以太网简介 以太网(Ethernet)是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问控制的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网标准如…...

Insert into on duplicate key update 死锁问题解析
Insert into on duplicate key update 死锁问题解析 背景 前段时间的需求中有这个么一个场景,每天早上需要通过定时任务到不同的平台拉取一些广告投放的相关数据,涉及的表比较多,数据量也比较大,有的需要全量同步,有…...

Apache Lucene 10 已发布!Lucene 硬件效率改进及其他改进
作者:来自 Elastic Adrien Grand Apache Lucene 10 刚刚发布,重点关注硬件效率!查看主要版本亮点。 Apache Lucene 10 终于发布了!自 Lucene 9.0(于 2021 年 12 月发布,距今已有近 3 年)以来&a…...

【SQL】SQL查询语句
目录 🎄 基本查询语法 ⭐查询多个字段 ⭐设置别名 ⭐去除重复记录 ⭐ 数据准备 ⭐ 案例 🎄 条件查询 ⭐ 语法 ⭐ 案例 🎄 聚合函数 ⭐ 介绍 ⭐ 常见的聚合函数 ⭐ 语法 ⭐ 案例 🎄 分组查询 ⭐ 语法 ⭐ where与having的区…...

AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型(LLM)应用开发平台
AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型(LLM)应用开发平台 目录 AGI 之 【Dify】 之 使用 Docker 在 Windows 端本地部署 Dify 大语言模型(LLM)应用开发平台 一、简单介绍 二、Docker 下载安…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...

ubuntu中安装conda的后遗症
缘由: 在编译rk3588的sdk时,遇到编译buildroot失败,提示如下: 提示缺失expect,但是实测相关工具是在的,如下显示: 然后查找借助各个ai工具,重新安装相关的工具,依然无解。 解决&am…...