簡體   English   中英

使用 R 從另一個 nc 文件中提取基於 netcdf 文件的值的網格單元

[英]Extracting grid cells of a netcdf file based values from another nc file with R

我想從 MERRA2 netcdf 文件中提取網格單元,這些文件僅用 R 標記為 sea:

在此處輸入圖片說明

然而,由於土地區域下邊界的彎曲性質,部分土地區域在我的選擇范圍內。 我想選擇離陸地最近的海域區域,但是我的選擇中有些陸地區域要過濾掉。

我有另一個 nc 文件,其中包含陸地和海洋區域的分數,我知道可以從中提取我需要的網格單元:

在此處輸入圖片說明

所以我必須定義一個遮罩,我可以使用它來僅從我的第一個文件中選擇具有特定閾值的海洋點,因為陸地和海洋的覆蓋范圍很小。 請問有沒有辦法用R或者在ArcGIS中做到這一點

也許你可以使用 CDO 做一些事情。 如果您從您的 Landsea 掩碼文件 landsea.nc 中決定要用於掩碼的土地分數閾值“c”(從您的描述中可以看出 c 需要是一個非常小的正實數),那么您可以定義一個海面為 0,陸地為 1 的掩碼

cdo lec,c landsea.nc mask.nc 

這將值 < c 的所有點設置為 1,否則為 0(對於土地)

或者,如果您想將所有陸地點設置為“缺失”,那么您可以

cdo setrtomiss,0.5,2 mask.nc mask_miss.nc

現在土地點被設置為“失蹤”

然后您可以使用掩碼縮放數據文件以將陸地點設置為零

cdo mul merra2.nc mask.nc out1.nc 

或者您可以將它們設置為 missing :

cdo mul merra2.nc mask_miss.nc out2.nc 

然后您可以對其進行處理。

當然,這里我假設 landsea.nc 掩碼文件與您的 merra 文件位於同一網格上。 如果不是,您將需要先重新網格化掩碼文件,您也可以使用 CDO 來完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM