寫netCDF文件¶
文件名格式¶
GMT生成網格數據時默認使用 nf
格式(默認網格檔格式由GMT參數
IO_GRIDFILE_FORMAT 控制)。可以通過在網格檔名後加上額外的信息以指定網格檔的格式。網格檔的文件名格式爲:
<name>[=<ID>][+s<scale>][+o<offset>][+n<nan>]
<name>
是網格檔名<ID>
是寫網格檔時要使用的網格檔格式<offset>
將數據加上一個常數<offset>
,默認值爲0<scale>
將數據乘以比例因子<scale>
,默認值爲1<nan>
表明將文件中值爲<nan>
認爲是NaN
<scale>
和 <offset>
都可以取爲 a
,表明由程序自動決定比例因子和偏移量的值。在寫網格檔時,會先加上偏移量,再乘以比例因子。
分塊與壓縮¶
出於性能的考慮,GMT在輸出超過16384個網格單元的網格檔時,會啓用分塊功能。所謂分塊,即數據不是按照一行一行序列存儲的,而是將整個網格分成若干個區塊,然後依次存儲每個區塊的數據。
在讀取數據時,若只需要讀取數據的一部分,netCDF只需要讀取相應的區塊即可,無需讀取整個數據。
由於數據的壓縮和解壓比磁盤IO要快,因而可以對netCDF數據進行壓縮,使得磁盤佔用更少,IO負載更少。netCDF的壓縮可以分爲若干等級,壓縮級別越高,文件越小,讀寫數據越快,但壓縮/解壓越耗時。通常,壓縮級別取1到3效果比較好。
GMT參數 IO_NC4_CHUNK_SIZE 可以控制分塊的大小, IO_NC4_DEFLATION_LEVEL 可以控制壓縮等級。