氣象學中的CDO插值(多方法+多分辨率)

文章目錄

  • 說明
  • CDO代碼

說明

需要新建.sh腳本文件,將下面的CDO代碼復制到.sh腳本中,然后運行插值程序。

CDO代碼

#!/bin/bash # ================================================
# 用戶配置區(按實際需求修改)
# ================================================
input_directory="2m_temperature"  # 自定義路徑
grid_file="./target_grid_1x1.txt" 
log_file="./process.log" # ====================網格參數配置============================
# ================================================
# 函數:生成北→南網格
# 89.5~-89.5, -179.5~179.5, 1x1
# ================================================
# generate_grid() {
#     cat > "${grid_file}" << EOF 
# gridtype  = lonlat 
# xsize     = 360 
# ysize     = 180 
# xname     = lon 
# xlongname = longitude 
# xunits    = degrees_east 
# yname     = lat 
# ylongname = latitude 
# yunits    = degrees_north 
# xfirst    = -179.5 
# xinc      = 1 
# yfirst    = 89.5     # 北緯起始點 
# yinc      = -1       # 負向遞增 
# EOF
# }
# custom_name="180_1x1" # 需要根據實際情況修改# ================================================
# 函數:生成北→南網格
# 90~-90, 0~359, 1x1
# ================================================
# generate_grid() {
#     cat > "${grid_file}" << EOF 
# gridtype  = lonlat 
# xsize     = 360 
# ysize     = 181 
# xname     = lon 
# xlongname = longitude 
# xunits    = degrees_east 
# yname     = lat 
# ylongname = latitude 
# yunits    = degrees_north 
# xfirst    = 0  # 經度起點
# xinc      = 1  # 經度間隔
# yfirst    = 90     # 北緯起始點 
# yinc      = -1       # 負向遞增 
# EOF
# }
# custom_name="360_1x1" # 需要根據實際情況修改# ================================================
# 函數:生成北→南網格
# 90~-90, 0~358 2x2
# ================================================
# generate_grid() {
#     cat > "${grid_file}" << EOF 
# gridtype  = lonlat 
# xsize     = 180 
# ysize     = 91 
# xname     = lon 
# xlongname = longitude 
# xunits    = degrees_east 
# yname     = lat 
# ylongname = latitude 
# yunits    = degrees_north 
# xfirst    = 0  # 經度起點
# xinc      = 2  # 經度間隔
# yfirst    = 90     # 北緯起始點 
# yinc      = -2       # 負向遞增 
# EOF
# }
# custom_name="360_2x2" # 需要根據實際情況修改# ================================================
# 函數:生成北→南網格
# 90~-90, -180~178 2x2
# ================================================
generate_grid() {cat > "${grid_file}" << EOF 
gridtype  = lonlat 
xsize     = 180 
ysize     = 91 
xname     = lon 
xlongname = longitude 
xunits    = degrees_east 
yname     = lat 
ylongname = latitude 
yunits    = degrees_north 
xfirst    = -180  # 經度起點
xinc      = 2  # 經度間隔
yfirst    = 90     # 北緯起始點 
yinc      = -2       # 負向遞增 
EOF
}
custom_name="180_2x2" # 需要根據實際情況修改
# ================================================# ================================================
# 主程序流程
# ================================================
{
start_time=$(date +%s)  # 初始化開始時間echo "==== 處理開始: $(date '+%Y-%m-%d %H:%M:%S') ====" # 創建小寫輸出目錄
output_directory="2m_temperature_${custom_name}" # 自定義路徑
mkdir -p "${output_directory}" || { echo "目錄創建失敗"; exit 1; }# 生成網格文件
# 如果文件存在,則不更新文件
# [ -f "${grid_file}" ] || generate_grid #  # grid信息變化后,生成新的target_grid_1x1.txt文件
generate_grid# 批量處理
input_files=("${input_directory}"/*.nc)  # 使用數組存儲文件列表
total=${#input_files[@]}  # 獲取文件數量
count=0
errors=0# 如果沒有符合條件的文件
if [ "$total" -eq 0 ]; thenecho "沒有找到符合條件的.nc文件!"exit 1
fifor input_file in "${input_files[@]}"; do filename=$(basename -- "${input_file}")output_file="${output_directory}/${filename%.*}_${custom_name}.nc" # 進度顯示printf "處理中 [%03d/%03d] %-40s " $((++count)) $total "${filename:0:40}"# 執行插值操作 (8線程,雙線性插值)cdo -P 8 -L -O \-remapbil,"${grid_file}" \-sellonlatbox,-180,180,-90,90 \-sort "${input_file}" "${output_file}"# 最近鄰插值# cdo -P 8 -L -O \# -remapnn,"${grid_file}" \# -sellonlatbox,-180,180,-90,90 \# -sort "${input_file}" "${output_file}"# 立方插值# cdo -P 8 -L -O \# -remapcon,"${grid_file}" \# -sellonlatbox,-180,180,-90,90 \# -sort "${input_file}" "${output_file}"# 樣條插值# cdo -P 8 -L -O \# -remapspl,"${grid_file}" \# -sellonlatbox,-180,180,-90,90 \# -sort "${input_file}" "${output_file}"# 反距離夾權插值# cdo -P 8 -L -O \# -remapidw,"${grid_file}" \# -sellonlatbox,-180,180,-90,90 \# -sort "${input_file}" "${output_file}"# 分段常數插值# cdo -P 8 -L -O \# -remapidw,"${grid_file}" \# -sellonlatbox,-180,180,-90,90 \# -sort "${input_file}" "${output_file}"# 面積加權平均插值# cdo -P 8 -L -O \# -remaparea,"${grid_file}" \# -sellonlatbox,-180,180,-90,90 \# -sort "${input_file}" "${output_file}"# 保守重映射插值# cdo -P 8 -L -O \# -remapconservative,"${grid_file}" \# -sellonlatbox,-180,180,-90,90 \# -sort "${input_file}" "${output_file}"# 卡爾曼插值# cdo -P 8 -L -O \# -remapkalman,"${grid_file}" \# -sellonlatbox,-180,180,-90,90 \# -sort "${input_file}" "${output_file}"# 權重平均插值# cdo -P 8 -L -O \# -remapweighted,"${grid_file}" \# -sellonlatbox,-180,180,-90,90 \# -sort "${input_file}" "${output_file}"
done # 結果統計
end_time=$(date +%s)
elapsed_time=$((end_time - start_time))echo "==== 處理完成 ===="
echo "成功: $((total - errors))"
echo "失敗: $errors"
echo "耗時: ${elapsed_time}秒"
} | tee "${log_file}"

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

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

相關文章

計算機網絡:應用層 —— 動態主機配置協議 DHCP

文章目錄 什么是 DHCP&#xff1f;DHCP 的產生背景DHCP 的工作過程工作流程地址分配機制 DHCP 中繼代理總結 什么是 DHCP&#xff1f; 動態主機配置協議&#xff08;DHCP&#xff0c;Dynamic Host Configuration Protocol&#xff09;是一種網絡管理協議&#xff0c;用于自動分…

【OS安裝與使用】part3-ubuntu安裝Nvidia顯卡驅動+CUDA 12.4

文章目錄 一、待解決問題1.1 問題描述1.2 解決方法 二、方法詳述2.1 必要說明2.2 應用步驟2.2.1 更改鏡像源2.2.2 安裝NVIDIA顯卡驅動&#xff1a;nvidia-550&#xff08;1&#xff09;查詢顯卡ID&#xff08;2&#xff09;PCI ID Repository查詢顯卡型號&#xff08;3&#xf…

數據導入AI訓練步驟——人工智能訓練

一、人工操作轉化 數據導入過程 整理excel表格&#xff0c;通過數據庫管理工具導入數據&#xff0c;補充數據格式&#xff0c;調整sql語句 復制數據到目標數據 二、整理表格 三、導入數據 通過數據庫導入數據 四、合并 五、驗證更新數據 六、 更新數據 update temp_cus_hmz…

我國首條大型無人機城際低空物流航線成功首航

首航震撼開場&#xff1a;羊肉 “飛” 越 540 公里 在夜色的籠罩下&#xff0c;榆陽馬合通用機場的跑道上&#xff0c;一架大型固定翼無人機蓄勢待發&#xff0c;機身被燈光照亮&#xff0c;宛如一只即將展翅翱翔的鋼鐵巨鳥。它的貨艙里&#xff0c;滿滿裝載著新鮮的榆林羊肉&a…

《跟李沐學 AI》AlexNet論文逐段精讀學習心得 | PyTorch 深度學習實戰

前一篇文章&#xff0c;使用 AlexNet 實現圖片分類 | PyTorch 深度學習實戰 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章內容來自于學習 9年后重讀深度學習奠基作之一&#xff1a;AlexNet【下】【論文精讀】】的心得。 《跟李沐…

微軟Win11新動態:官方“換機助手”曝光,PC數據遷移或迎全新體驗

目錄 微軟入局數據遷移領域,第三方工具或面臨挑戰 無縫遷移體驗:近距離傳輸與OTP驗證 模擬圖僅為概念設計,最終功能或存變數 發布時間未定,Insider用戶或率先體驗 總結 微軟在近期發布了Windows 11 Insider Beta頻道的最新版本Build 22635.4945。盡管此次更新并未引入重…

Could not initialize class io.netty.util.internal.Platfor...

異常信息&#xff1a; Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class io.netty.util.internal.PlatformDependent0 Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.reflect.InaccessibleObjec…

java練習(34)

ps:題目來自力扣 尋找兩個正序數組的中位數 給定兩個大小分別為 m 和 n 的正序&#xff08;從小到大&#xff09;數組 nums1 和 nums2。請你找出并返回這兩個正序數組的 中位數 。 算法的時間復雜度應該為 O(log (mn)) 。 class Solution {public double findMedianSortedA…

用Java創建一個驗證碼的工具類

在Java中創建一個驗證碼工具類&#xff0c;可以通過以下代碼實現。該工具類支持生成包含字母和數字的隨機驗證碼圖片&#xff0c;并添加干擾線和噪點以提高安全性。以下是詳細實現&#xff1a; 完整代碼實現 import javax.imageio.ImageIO; import java.awt.*; import java.aw…

提升信息檢索準確性和效率的搜索技巧

一、基礎技巧 精準關鍵詞 避免長句子&#xff0c;提取核心關鍵詞&#xff08;如用“光合作用 步驟”代替“請告訴我光合作用的具體過程”&#xff09;。 同義詞替換&#xff1a;嘗試不同表達&#xff08;如“AI 發展史” vs “人工智能 歷史”&#xff09;。 排除干擾詞 使用…

設計模式 之 工廠模式(簡單工廠模式、工廠方法模式、抽象工廠模式)(C++)

文章目錄 C 工廠模式引言一、簡單工廠模式概念實現步驟示例代碼優缺點 二、工廠方法模式概念實現步驟示例代碼優缺點 三、抽象工廠模式概念實現步驟示例代碼優缺點 C 工廠模式 引言 在 C 編程中&#xff0c;對象的創建是一個常見且基礎的操作。然而&#xff0c;當項目規模逐漸…

DAY12 Tensorflow 六步法搭建神經網絡

六步法&#xff1a; 一.import 導入各種庫&#xff0c;比如&#xff1a; import tensorflow as tf from tensorflow.keras.layers import Dense, Flatten from tensorflow.keras import Model import numpy as np import pandas as pd # 可能還會根據需求導入其他庫&…

Zookeeper分布式鎖實現

zookeeper最初設計的初衷就是為了保證分布式系統的一致性。本文將講解如何利用zookeeper的臨時順序結點&#xff0c;實現分布式鎖。 目錄 1. 理論分析 1.1 結點類型 1.2 監聽器 1.3 實現原理 2. 手寫實現簡易zookeeper分布式鎖 1.1 依賴 1.2 常量定義 1.3 實現zookeeper分布式…

Git是什么

簡單介紹&#xff1a; Git是一個分布式版本控制系統&#xff0c;用于跟蹤文件的更改&#xff0c;特別是在多人協作開發的環境中。 Key: 分布式 版本控制 系統 最常用于軟件開發&#xff0c;但也可以用于管理任何類型的文件和文件夾。 Git幫助團隊跟蹤和管理文件的歷史版本&a…

Pycharm 2024在解釋器提供的python控制臺中運行py文件

2024版的界面發生了變化, run with python console搬到了這里:

【分布式理論12】事務協調者高可用:分布式選舉算法

文章目錄 一、分布式系統中事務協調的問題二、分布式選舉算法1. Bully算法2. Raft算法3. ZAB算法 三、小結與比較 一、分布式系統中事務協調的問題 在分布式系統中&#xff0c;常常有多個節點&#xff08;應用&#xff09;共同處理不同的事務和資源。前文 【分布式理論9】分布式…

免費deepseek的API獲取教程及將API接入word或WPS中

免費deepseek的API獲取教程: 1 https://cloud.siliconflow.cn/中注冊時填寫邀請碼&#xff1a;GAejkK6X即可獲取2000 萬 Tokens; 2 按照圖中步驟進行操作 將API接入word或WPS中 1 打開一個word&#xff0c;文件-選項-自定義功能區-勾選開發工具-左側的信任中心-信任中心設置…

【SFRA】筆記

GK_SFRA_INJECT(x) SFRA小信號注入函數,向控制環路注入一個小信號。如下圖所示,當前程序,小信號注入是在固定占空比的基礎疊加小信號,得到新的占空比,使用該占空比控制環路。 1.2 GK_SFRA_COLLECT(x, y) SFRA數據收集函數,將小信號注入環路后,該函數收集環路的數據,以…

論文筆記-WSDM2024-LLMRec

論文筆記-WSDM2024-LLMRec: Large Language Models with Graph Augmentation for Recommendation LLMRec: 基于圖增強的大模型推薦摘要1.引言2.前言2.1使用圖嵌入推薦2.2使用輔助信息推薦2.3使用數據增強推薦 3.方法3.1LLM作為隱式反饋增強器3.2基于LLM的輔助信息增強3.2.1用戶…

Ubuntu 系統 cuda12.2 安裝 MMDetection3D

DataBall 助力快速掌握數據集的信息和使用方式&#xff0c;會員享有 百種數據集&#xff0c;持續增加中。 需要更多數據資源和技術解決方案&#xff0c;知識星球&#xff1a; “DataBall - X 數據球(free)” 貴在堅持&#xff01; ---------------------------------------…