R語言學習記錄:nc格式轉tif
R語言轉換nc至tif的方法探究
法1:

Reference:https://www.jianshu.com/p/50fac745eb76
總結:代碼有點長,路徑設置比較麻煩。但是當某個nc文件是連續(xù)幾年的數(shù)據(jù)時候比較好用。
另外還學到了一種設置批量路徑的新思路,就是提前把各個路徑以及文件名設置好,在寫出文件路徑的時候直接用這個集合【i】的格式。
法2:

Reference:
NetCDF(nc)數(shù)據(jù)讀取與格式轉換 (qq.com)
https://mp.weixin.qq.com/s/pB4ZAOGSvxdRI4U-yXdxOg
總結:其實原文只有三行代碼,長這樣:
但是有一個問題,第二行里varname參數(shù)是需要指定的,如果不指定它會默認進行猜測。我這里的示例nc只有一個變量就是pre,如果有多個變量的話最好還是提前查看指定一下。這個時候就需要用到法1里提到過的ncdf4包。
法3:

Reference:王老實(我自己)
總結:在查到法2的時候我自己忍不住又想探究一下terra包會不會有什么區(qū)別,促使我探究的原因大概率是前幾天在StackExchange上被瘋狂安利terra包,法2的作者徐老師也曾經(jīng)對比過raster包和terra包的運行速度,也推薦使用terra包,但是在徐老師的后面幾篇文章中提到:terra包目前有幾處地方還不太穩(wěn)定,有的地方會報錯。具體哪來著我也忘了(好像是裁剪還是掩膜啥來著對不齊)。
然后就開始試了一下terra包的writeRaster,果然還是有些不同的:
1.Terra寫出必須要加上一個“filetype”的參數(shù),不然會報錯。
2.Terra輸出的堆棧信息較多
raster包寫出的names就是X1...X12,while terra包的names是pre_1...pre_12

雖然自己肯定都知道自己下載的是什么數(shù)據(jù),但是展示出來的信息更多看起來就更舒服一點
3.還有就是兩個包輸出的時候最好都設置overwrite=T,不然可能會報錯。
4.這里還可以手動更改name,讓它變成xx_01、xx_02、xx_03的格式。
然后輸出的時候可以直接按照name輸出
5.需要注意的是法2用raster包寫出的時候沒加“.tif”,但是最后輸出的文件自動帶了tif后綴。terra包寫出的時候就必須加“.tif”后綴。

另外,在StackExchange上有人比較了raster和terra加載nc文件,那個提問者說他用terra加載一個很大的nc用了40多分鐘 while raster包只用了一兩秒,然后這個問題的回答說raster讀取nc文件基于ncdf4,terra讀取nc文件基于GDAL,所以很慢,答主當時建議讀取nc文件還是用raster包。這是2021年10月12日的提問和回答,不知道現(xiàn)在解決了沒有。
https://gis.stackexchange.com/questions/413105/terrarast-vs-rasterbrick-for-loading-in-nc-files