📅  最后修改于: 2023-12-03 14:53:32.170000             🧑  作者: Mango
NetCDF (Network Common Data Form) 是一种数据格式,用于多维科学数据的存储和交换。 NetCDF 4 通过支持压缩、分块存储和并行 I/O 等功能,提高了数据的可用性和效率。
这里介绍在 Shell/Bash 环境下安装 netcdf4。
下载源代码:
wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.7.4.tar.gz
解压源代码包:
tar -xzf netcdf-4.7.4.tar.gz
进入源代码目录:
cd netcdf-4.7.4
编译和安装:
./configure --prefix=/usr/local/netcdf4 --disable-dap
make
sudo make install
解释:
--prefix
:指定安装的目录。--disable-dap
:禁用 DAP (Distributed Access Protocol) 功能,因为它需要一些额外的依赖项。最后,将以下语句添加到您的 .bashrc
文件或运行它,使系统能够找到 netCDF 库:
export LD_LIBRARY_PATH=/usr/local/netcdf4/lib:$LD_LIBRARY_PATH
如果您使用的是 zsh shell,你需要将语句添加到 .zshrc
文件。
您可以尝试编译一个简单的程序,测试安装是否成功。
例如,创建一个名为 test_nc.c
的文件,并将以下代码放入文件中:
#include <stdio.h>
#include <netcdf.h>
#define FILE_NAME "test.nc"
#define DIM_LEN 4
int main() {
int res, ncid, dimid, varid;
int dimids[] = {0};
float data[DIM_LEN] = {1.0, 2.0, 3.0, 4.0};
/* create empty NetCDF file */
res = nc_create(FILE_NAME, NC_CLOBBER, &ncid);
if (res != NC_NOERR) goto done;
/* define a dimension */
res = nc_def_dim(ncid, "time", DIM_LEN, &dimid);
if (res != NC_NOERR) goto done;
/* define a variable */
res = nc_def_var(ncid, "data", NC_FLOAT, 1, dimids, &varid);
if (res != NC_NOERR) goto done;
/* write data to variable */
res = nc_put_var(ncid, varid, data);
if (res != NC_NOERR) goto done;
/* close NetCDF file */
nc_close(ncid);
done:
if (res != NC_NOERR) printf("Error: %s\n", nc_strerror(res));
return res;
}
然后使用以下命令编译程序:
gcc -o test_nc test_nc.c -lnetcdf
如果编译成功,运行程序并创建名为 test.nc
的文件:
./test_nc
执行完后,在当前目录下会生成一个名为 test.nc
的文件。
以上是在 Shell/Bash 环境下安装 netcdf4 的步骤,通过测试程序的执行结果,验证了安装的成功性。