日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

批量下载CMIP6数据

發(fā)布時間:2023/12/18 编程问答 94 豆豆
生活随笔 收集整理的這篇文章主要介紹了 批量下载CMIP6数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文介紹了如何批量下載 CMIP6 數(shù)據(jù)。

1. 注冊并登錄

  • 打開CMIP6官網(wǎng):https://esgf-node.llnl.gov/search/cmip6/;
  • 點擊網(wǎng)頁右上角的 Create Account 注冊賬戶;

  • 進入注冊界面,填寫相關(guān)資料(只用填寫加粗的必填部分),完成注冊;

  • 注冊成功后登錄帳號,會在右上角顯示用戶信息,并且可以使用 Data Chart 。

2. 選擇數(shù)據(jù)

  • 第一步,在左側(cè)設(shè)置相應(yīng)的條件選擇自己需要的數(shù)據(jù);
  • 第二步,在 “Total Number of Result” 處可以看到搜索結(jié)果數(shù);
  • 第三步,設(shè)置頁面顯示結(jié)果數(shù)大于搜索結(jié)果數(shù)(這樣能一次性將結(jié)果添加進 Data Cart 中);
  • 第四步,點擊 Add all displayed results to Data Cart ,將搜索結(jié)果添加進 Data Cart 中;
  • 第五步,My Data Cart 后面的括號中顯示搜索到的結(jié)果數(shù),說明添加成功。

3. 獲取下載鏈接

  • 點擊 My Data Cart ,進入數(shù)據(jù)車;

  • 勾選 Select All Datasets ,并點擊 WGET Script 打開腳本下載界面,下載所有 WGET 腳本;

為了獲得更好的性能,ESGF 分別為每個數(shù)據(jù)中心生成 WGET 腳本,不同數(shù)據(jù)中心的數(shù)據(jù)下載速度不同,數(shù)據(jù)中心的數(shù)據(jù)節(jié)點狀態(tài)可查看網(wǎng)址:https://esgf-node.llnl.gov/status/(或者點擊右上角的 Data Nodes Status 查看)。

  • 下載腳本時會出現(xiàn)如下狀態(tài),點擊仍然發(fā)送即可下載;

實際上可以用WGET根據(jù)腳本直接批量下載,但是還沒成功實現(xiàn),因此采用了一個略麻煩的方法。

  • 用 VS Code 或者記事本打開腳本,可以看到腳本中各文件的下載鏈接信息;
  • 將腳本中所有鏈接復(fù)制出來保存到一個文本文件中(例如:從數(shù)據(jù)源 esgf-node.llnl.gov 中獲取的鏈接保存為 gov.txt );
  • 建議每個腳本中的鏈接單獨復(fù)制保存,不要放在一起,這樣有利于提高下載效率。

4. 清洗鏈接數(shù)據(jù)

  • 從腳本中復(fù)制出的鏈接信息中(例如 gov.txt ),第一列為文件名,第二列為下載鏈接,之后的幾列為驗證信息(詳見上圖);
  • 為了方便下載,需要清洗復(fù)制出來的信息(例如 gov.txt ),只提取下載鏈接并保存(例如 gov-url.txt )。
if __name__ == '__main__':fw = open("C:\\Users\\xxx\\Desktop\\gov-url.txt", 'w') # 創(chuàng)建url保存文件with open("C:\\Users\\xxx\\Desktop\\gov.txt", 'r') as fr: # 讀取所有下載鏈接信息for line in fr.readlines(): # 按行讀取line = line.strip('\n').split(' ') # 去掉換行符并分割url = line[1].replace("'", '') # 清洗并獲取待下載地址fw.writelines(url + '\n') # 將下載地址寫入保存文件中fw.close() # 關(guān)閉文件

5. 批量下載

通過Internet Download Manager(IDM)軟件和迅雷批量下載數(shù)據(jù)。

(1)IDM 批量下載

  • IDM 的安裝和配置詳見博客批量下載ERA5數(shù)據(jù)(Python+IDM);
  • 復(fù)制清洗后的下載鏈接(例如 gov-url.txt );
  • 打開 IDM 軟件,點擊左上角 任務(wù) ,點擊 從剪貼板中添加批量下載

  • 在批量下載界面中會顯示每個待下載文件信息;
  • 選擇 所有文件保存至同一目錄(即文件下載目錄);
  • 點擊 全部選擇 ,勾選所有文件;
  • 點擊 確定 ,在彈出的新窗口中點擊 確定 即可將所有文件添加進隊列中開始下載。

  • 修改同時下載文件個數(shù):在主界面點擊 隊列 - 主要下載隊列 ,選擇 隊列中的文件 ,修改同時下載文件個數(shù)后,點擊 應(yīng)用 完成修改。

可能出現(xiàn)的特殊情況
點擊 從剪貼板中添加批量下載 后,文件類型和文件大小可能會出現(xiàn)“Error”或者為空的情況(如下圖),首先檢查一下數(shù)據(jù)中心的數(shù)據(jù)節(jié)點狀態(tài)( https://esgf-node.llnl.gov/status/ ),如果沒問題,嘗試將下載鏈接的 http 修改為 https ,若問題沒解決,則放到迅雷中下載。

(2)迅雷批量下載

不直接用迅雷的原因:(1)下載速度不如 IDM 快;(2)氪金才能變強(建議充值一個會員)

  • 復(fù)制清洗后的下載鏈接(例如 gov-url.txt );
  • 打開迅雷,點擊左上角 新建 ,迅雷會自動從剪貼板中讀取下載鏈接,點擊 確定

  • 設(shè)置文件保存路徑,點擊 確定 ,開始下載。

6. 查漏與分組

下載過程中還需檢查所有數(shù)據(jù)是否都完整下載,另外,下載完后還需對數(shù)據(jù)進行分組。下面提供兩段代碼分別用于查漏和數(shù)據(jù)分組。

(1)查漏

  • 基于從WGET腳本中復(fù)制出來的鏈接信息進行檢查(例如 gov.txt ),依次遍歷每個文件名,判斷是否在已下載文件中出現(xiàn),如果沒出現(xiàn)則為遺漏的文件,將其下載鏈接統(tǒng)一保存在一個文本文件中。
import osif __name__ == '__main__':fw = open("C:\\Users\\xxx\\Desktop\\remain.txt", 'w') # 存放未下載的數(shù)據(jù)鏈接with open("C:\\Users\\xxx\\Desktop\\gov.txt", 'r') as fr: # 讀取所有下載鏈接信息for line in fr.readlines(): # 按行讀取line = line.strip('\n').split(' ') # 去掉換行符并分割filename = line[0].replace("'", '') # 文件名url = line[1].replace("'", '') # 下載地址if filename not in os.listdir("F:\\CMIP6"): # 判斷文件名是否在已下載文件中出現(xiàn)fw.writelines(url + '\n') # 將下載地址寫入保存文件中fw.close() # 關(guān)閉文件

(2)分組

  • 基于文件名中的信息對數(shù)據(jù)進行分組,選擇分組依據(jù),判斷文件是否是這一類型,若是則移動到對應(yīng)的文件夾內(nèi)。
import os import shutil''' 例如:tas_day_NorESM2-LM_ssp370_r1i1p1f1_gn_20150101-20201231.nc 按模式 NorESM2-LM 對數(shù)據(jù)分組 ''' if __name__ == '__main__':folderpath = "E:\\CMIP6" # 數(shù)據(jù)存放路徑for filename in os.listdir(filepath): # 獲取所有文件名并遍歷groupname = filename.split('_')[2] # 分組的組名newpath = folderpath + '\\' + groupname # 新存放文件夾if not os.path.exists(newpath): # 判斷文件夾是否存在os.mkdir(newpath) # 不存在則創(chuàng)建filepath = folderpath + '\\' + filename # 文件詳細(xì)路徑shutil.move(filepath, newpath) # 將文件移動到新文件夾中

7. 最后

  • 內(nèi)容僅供大家學(xué)習(xí)參考,若有不足之處,敬請大家批評指正!

總結(jié)

以上是生活随笔為你收集整理的批量下载CMIP6数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。