服務器安裝 LDOPE(MODIS 數據處理工具)

目錄

  • 下載方式1-(簡單快捷)
    • 根據WRF-VPRM 需要打補丁
  • 下載方式2:(手動安裝依賴)
    • 一、安裝所需依賴庫(4 個主庫 + 2 個基礎庫)
      • 另- HDF-EOS 手動編譯
    • 二、解壓并安裝 LDOPE
  • 參考

下載方式1-(簡單快捷)

LDOPE-Land Data Operational Products Evaluation

在這里插入圖片描述
1. 下載并解壓文件

wget https://lpdaac.usgs.gov/documents/208/LDOPE-1.7-linux-x64-installer.run.zip
unzip LDOPE-1.7-linux-x64-installer.run.zip

2. 給 .run 文件添加執行權限

打開終端,進入該文件所在的目錄,然后執行:

chmod +x LDOPE-1.7-linux-x64-installer.run

3. 運行安裝程序

繼續在終端中執行:

./LDOPE-1.7-linux-x64-installer.run

這將啟動圖形界面的安裝程序(或命令行安裝界面,取決于打包方式),你只需按照提示進行安裝即可。

在這里插入圖片描述
4. 安裝完成后設置環境變量(如有必要)

安裝完后,通常會提示你軟件安裝在哪個目錄,比如:

/home/yourname/LDOPE/

你可以將其添加到環境變量中,確保可以在任何地方通過命令行調用工具。例如:

export PATH=$PATH:/home/yourname/LDOPE/bin

可以將這行添加到你的 ~/.bashrc~/.zshrc 文件中,以便每次啟動終端時自動生效。

根據WRF-VPRM 需要打補丁

VPRM 預處理器對 LDOPE 的兩個源文件做了修改:

  • math_sds.c
  • cp_proj_param.c

VPRM 預處理器的源代碼中已經有了對應的補丁文件:

  • math_sds.patch
  • cp_proj_param.patch

它們的作用是將這些修改應用到 LDOPE 的源代碼中,然后重新編譯 LDOPE。

1. 找到 LDOPE 源代碼目錄

默認情況下,安裝 .run 文件后,LDOPE 會安裝在某個目錄中,比如:

~/LDOPE/

你需要找到其中包含 math_sds.ccp_proj_param.c 的目錄,通常在:

~/LDOPE/src/
$HOME/vprm_project/tools/LDOPE-1.7/src/

2. 將 patch 文件復制到 LDOPE 源代碼目錄

cp $HOME/vprm_project/WRF-VPRM/*.patch $HOME/vprm_project/tools/LDOPE-1.7/src/
cd $HOME/vprm_project/tools/LDOPE-1.7/src/

3. 應用補丁

src/ 目錄下執行以下命令:

patch < cp_proj_param.patch
patch < math_sds.patch

如果成功,終端將顯示類似:

patching file cp_proj_param.c
patching file math_sds.c

若提示類似 Reversed (or previously applied) patch detected!,說明補丁可能已經應用過,無需重復。

4. 重新編譯 LDOPE

通常在源代碼目錄下有 Makefile,你只需要運行:

make clean
make

如果沒有 Makefile,你可能需要手動編譯:

gcc -o cp_proj_param cp_proj_param.c
gcc -o math_sds math_sds.c

或者參考源代碼中的編譯說明(如 READMEINSTALL 文件)。

下載方式2:(手動安裝依賴)

官方頁面-LDOPE(Land Data Operational Product Evaluation)Tools

在這里插入圖片描述

LDOPETools_V3.6.tar.gz

是一個有效的工具包壓縮文件,包含了 NASA 提供的 MODIS 和 VIIRS 數據質量評估工具。

一、安裝所需依賴庫(4 個主庫 + 2 個基礎庫)

1. 所需庫列表

庫名說明下載地址
HDF4支持 HDF-EOS2 的底層庫HDF4 下載
HDF-EOS2基于 HDF4 的 EOS 數據結構支持HDFEOS2 下載
HDF5支持 HDF-EOS5 的底層庫HDF5 下載
HDF-EOS5基于 HDF5 的 EOS 數據結構支持HDFEOS5 下載
libjpegJPEG 圖像壓縮支持庫(HDF4 依賴)jpegsrc.v6b.tar.gz
zlib壓縮支持庫(HDF4 和 HDF5 依賴)zlib.net
# 安裝基礎依賴
conda install -c conda-forge libjpeg zlib# 安裝 HDF4 / HDF5
conda install -c conda-forge hdf4 hdf5# 安裝 HDF-EOS2 / HDF-EOS5
conda install -c conda-forge hdfeos2 hdfeos5
source load_vprm_env.shecho $HDF_INC
which get_sds_infols $CONDA_PREFIX/include/hdf.h          # HDF4
ls $CONDA_PREFIX/include/H5public.h     # HDF5
ls $CONDA_PREFIX/include/HE2_config.h   # HDF-EOS2
ls $CONDA_PREFIX/include/HE5_config.h   # HDF-EOS5
ls $CONDA_PREFIX/lib/libjpeg.*          # libjpeg
ls $CONDA_PREFIX/lib/libz.*             # zlib

2. 目錄結構建議

~/vprm_project/
├── tools/
│   ├── hdf4/
│   ├── hdfeos2/
│   ├── hdf5/
│   ├── hdfeos5/
│   ├── jpeg/
│   ├── zlib/
│   └── LDOPEtools_V3.6/

3. 安裝步驟(以源碼編譯方式為主)

Step 1:編譯安裝 JPEG 和 Zlib(基礎庫)

安裝 libjpeg:

wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
tar -xvzf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=$HOME/vprm_project/tools/jpeg
make && make install

安裝 zlib:

wget https://zlib.net/zlib.tar.gz
tar -xvzf zlib.tar.gz
cd zlib-*
./configure --prefix=$HOME/vprm_project/tools/zlib
make && make install
# HDFEOS2
./configure --prefix=$HOME/vprm_project/tools/hdfeos2 \--with-hdf4=$HOME/vprm_project/tools/hdf4
make && make install# HDFEOS5
./configure --prefix=$HOME/vprm_project/tools/hdfeos5 \--with-hdf5=$HOME/vprm_project/tools/hdf5
make && make install

另- HDF-EOS 手動編譯

How to build HDF-EOS
在這里插入圖片描述

1、安裝并編譯 HDF-EOS2

tar -xvzf hdf-eos2-3.0-src.tar.gz
cd hdf-eos2-3.0# 創建安裝目錄(可選)
mkdir -p ~/vprm_project/tools/hdfeos2# 配置,指定 HDF4 路徑(這里用 Conda 安裝的 HDF4)
./configure \--prefix=$HOME/vprm_project/tools/hdfeos2 \--with-hdf4=$CONDA_PREFIX \CC=${CC:-gcc} \CFLAGS="-I$CONDA_PREFIX/include" \LDFLAGS="-L$CONDA_PREFIX/lib"# 編譯
make -j$(nproc)# 安裝
make install
ls ~/vprm_project/tools/hdfeos2/include/HE2_config.h
ls ~/vprm_project/tools/hdfeos2/lib/libhe2.*

2、安裝并編譯 HDF-EOS5

在這里插入圖片描述

# 解壓源碼包
tar -xvzf hdf-eos5-2.0-src.tar.gz
cd hdf-eos5-2.0# 創建安裝目錄(可選)
mkdir -p $HOME/vprm_project/tools/hdfeos5# 配置,指定 HDF5 路徑(通過 Conda 安裝的 HDF5)
./configure \--prefix=$HOME/vprm_project/tools/hdfeos5 \--with-hdf5=$CONDA_PREFIX \CC=${CC:-gcc} \CFLAGS="-I$CONDA_PREFIX/include" \LDFLAGS="-L$CONDA_PREFIX/lib"# 編譯
make -j$(nproc)# 安裝
make install

安裝完成后驗證:

# 頭文件
ls $HOME/vprm_project/tools/hdfeos5/include/HE5_config.h# 庫文件
ls $HOME/vprm_project/tools/hdfeos5/lib/libhe5.*

添加環境變量(建議加到 load_vprm_env.sh):

export HDFEOS5_INC=$HOME/vprm_project/tools/hdfeos5/include
export HDFEOS5_LIB=$HOME/vprm_project/tools/hdfeos5/lib

二、解壓并安裝 LDOPE

以下是標準的安裝流程,當前目錄為:

$HOME/vprm_project/tools
cd ~/vprm_project/tools# 解壓
tar -xvzf LDOPETools_V3.6.tar.gz

這將解壓出類似結構的目錄,例如:

LDOPETools_V3.6/
├── bin/
├── include/
├── lib/
├── doc/
└── src/

進入文件地址,并開始安裝:

cd $HOME/vprm_project/tools/LDOPE_tools_V3.6/src/
cd ~/vprm_project/tools/LDOPEtools_V3.6/src
make

如果你下載了測試包 LDOPE_tools_V3.6_test_pkg.tar.gz,可以解壓并運行測試:

tar -xvzf LDOPE_tools_V3.6_test_pkg.tar.gz
cd LDOPE_tools_V3.6_test_pkg/
less README
which get_sds_info
get_sds_info -hwhich cp_proj_param
cp_proj_param -h

參考

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98802.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98802.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98802.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

克隆代幣 + 捆綁開盤:多鏈環境下的低成本發幣玩法

在加密世界&#xff0c;發幣已經不再是“少數開發者的專利”。隨著工具的普及&#xff0c;任何人都可以快速發行一個在加密世界&#xff0c;發幣已經不再是“少數開發者的專利”。隨著工具的普及&#xff0c;任何人都可以快速發行一個代幣。但問題是&#xff1a;如何在保證低成…

數據結構中的 二叉樹

1.前言 在 Java 中&#xff0c;樹&#xff08;Tree&#xff09;是一種非線性數據結構&#xff0c;由節點&#xff08;Node&#xff09;組成&#xff0c;常見的線性表則是我們之前學過的順序表、鏈表、棧、隊列等等。每個節點包含數據和指向子節點的引用。樹的常見實現方式包括二…

IntelliJ IDEA 啟動項目時配置端口指南

&#x1f31f; 一、為什么需要手動設置啟動端口&#xff1f; 默認情況下&#xff0c;Spring Boot 應用會使用 8080 端口啟動。但在以下場景中&#xff0c;我們必須自定義端口&#xff1a; 多個微服務同時運行&#xff0c;需避免端口沖突&#xff1b;團隊協作開發&#xff0c;統…

spark sql之from_json函數

目錄前言函數語法參數說明返回值案例案例1案例2前言 在Spark SQL中&#xff0c;from_json函數用于解析包含JSON字符串的列&#xff0c;并將其轉換為Spark SQL的結構化類型&#xff08;如struct、map或array&#xff09; 函數語法 from_json(jsonStr, schema [, options])參數…

數據結構 之 【位圖的簡介】

目錄 1.位圖的引入 2.位圖概念 3.位圖的實現 3.1前提準備 3.2set 3.3reset 3.4test 4.位圖的應用 1.位圖的引入 給40億個不重復的無符號整數&#xff0c;沒排過序 再給一個無符號整數&#xff0c;如何快速判斷這個無符號整數是否在 這40億個數中 首先&#xff0c;一個…

[iOS] ViewController 的生命周期

文章目錄前言一、UIViewController 生命周期有關函數二、UIViewController 中函數的執行順序運行結果1.present和dismiss2.push和pop三、總結前言 UIViewController 是在 iOS 開發中一個非常重要的角色&#xff0c;他是 view 和 model 的橋梁&#xff0c;通過 UIViewControlle…

第30章 零售與電商AI應用

本章將深入探討人工智能在零售與電商領域的革命性應用。我們將從智能推薦系統、動態定價、庫存管理到創新的虛擬試衣間&#xff0c;全面解析AI如何重塑購物體驗和商業運營效率&#xff0c;并為每個關鍵技術點提供代碼實戰&#xff0c;幫助你掌握將AI應用于真實商業場景的能力。…

QT通過QModbusRtuSerialMaster讀寫電子秤數據實例

一、電子稱常用功能&#xff1a;稱重、清零、去皮&#xff1b;電子秤的通訊方式&#xff1a;Modbus通信、串口通信。二、QT讀寫電子秤軟件界面如下&#xff1a;三、核心代碼如下&#xff1a;.pro項目文件代碼&#xff1a;QT core gui serialbus serialport.h頭文件代碼#…

sqlmap常用命令

ZZHow(ZZHow1024) 一、掃描注入點 1.GET方法&#xff0c;給URL&#xff1a; #探測該url是否存在漏洞 python sqlmap.py -u "http://192.168.10.1/sqli/Less-1/?id1"#如果我們已經知道admin這里是注入點的話&#xff0c;可以在其后面加個*來讓sqlmap對其注入 python …

JVM如何排查OOM

當JVM&#xff08;Java虛擬機&#xff09;出現OOM&#xff08;OutOfMemoryError&#xff09;時&#xff0c;可以按照以下步驟和方法&#xff0c;用于幫助定位和解決JVM中的OOM問題1.查看異常堆棧信息查看異常堆棧信息&#xff08;StackTrace&#xff09;是定位問題的關鍵。OOM異…

存算一體芯片生態評估:從三星PIM到知存科技WTM2101

點擊 “AladdinEdu&#xff0c;同學們用得起的【H卡】算力平臺”&#xff0c;注冊即送-H卡級別算力&#xff0c;80G大顯存&#xff0c;按量計費&#xff0c;靈活彈性&#xff0c;頂級配置&#xff0c;學生更享專屬優惠。 引言&#xff1a;存算一體技術的崛起與意義 在傳統馮諾…

[數據結構] 棧 · Stack

一.棧 stack 1.概念 棧 : 一種特殊的線性表 , 其只允許再固定的一段進行插入和刪除元素操作 進行數據插入和刪除操作的一段稱為 棧頂 ; 另一端稱為棧底棧中的數據元素遵循 先進后出 原則(LIFO)壓棧 : 棧的插入操作叫做 進棧 或 壓棧 或 入棧 , 入數據在棧頂出棧 : 棧的刪除…

MySQL執行過程中如何選擇最佳的執行路徑

本篇文章介紹一個非常核心的數據庫問題。MySQL 選擇最佳執行路徑&#xff08;即“查詢優化”&#xff09;的過程是由其查詢優化器&#xff08;Query Optimizer&#xff09; 完成的。 簡單來說&#xff0c;優化器的目標是&#xff1a;在多種可能的執行方案中&#xff0c;選擇一個…

【設計模式】從游戲角度開始了解設計模式 --- 抽象工廠模式

永遠記住&#xff0c;你的存在是有意義的&#xff0c; 你很重要&#xff0c; 你是被愛著的&#xff0c; 而且你為這個世界帶來了無可取代的東西。 -- 麥克西 《男孩、鼴鼠、狐貍和馬》-- 從零開始了解設計模式抽象工廠模式抽象工廠模式 今天我們一起來探究抽象工廠模式&#x…

tensorflow.js 使用場景

TensorFlow.js (簡稱 TF.js) 是一個利用 WebGL 和 Node.js 在瀏覽器和服務器端進行機器學習模型訓練和部署(推理)的 JavaScript 庫。它的核心價值在于將機器學習的能力帶入了 Web 開發者和 JavaScript 生態的領域。 其主要應用場景可以分為以下幾大類: 一、在瀏覽器中直接進…

詳解mcp以及agen架構設計與實現

文章目錄1.MCP概念2.MCP服務端主要能力3.MCP技術生態4.MCP與Function call區別5.MCP生命周期6.MCP java SDK7.MCP應用場景8.基于springAIollma阿里qianwenmcp設計私有AIAgent應用實現9.AI java項目落地技術選型10.構建AI Agent四大模塊11.LLM(大模型)與MCP之間關系12.A2A、MCP、…

六級第一關——下樓梯

上目錄&#xff1a; 目錄 題目描述 輸入格式 輸出格式 輸入輸出樣例 說明/提示 一、DP的意義以及線性動規簡介 在一個困難的嵌套決策鏈中&#xff0c;決策出最優解。 二、動態規劃性質淺談 三、子序列問題 &#xff08;一&#xff09;一個序列中的最長上升子序列&am…

【Linux基礎】Linux系統配置IP詳解:從入門到精通

目錄 1 Linux網絡配置概述 2 網卡配置文件位置和命名規則 2.1 配置文件位置 2.2 網卡命名規則 2.3 配置文件命名示例 3 網卡配置文件詳解 3.1 主要參數說明 4 Linux系統配置IP步驟 4.1 DHCP動態配置 4.2 靜態IP配置 5 Linux網絡配置流程 5.1 網絡配置流程 5.2 網卡…

C語言sprintf的高效替代方案

C語言的sprintf和snprintf將變量格式化輸出到內存buffer&#xff0c;其功能強大&#xff0c;用起來很方便。但sprintf系列函數的運行效率低下&#xff0c;主要包括四方面的原因&#xff1a;格式字符串解析、變參處理、locale&#xff08;本地化&#xff09;支持和通用&#xff…

【知識堂】制造業與物流數字化全景圖:系統縮寫大全與專業名詞速查手冊

前言在制造業和物流行業的數字化轉型過程中&#xff0c;我們經常會接觸到大量的 系統縮寫&#xff08;如 ERP、MES、WMS…&#xff09;和 專業名詞&#xff08;如 AGV、BOM、LOT…&#xff09;。 這些縮寫往往讓剛入行的人“一頭霧水”&#xff0c;即使是有經驗的從業者&#x…