📜  安装 netcdf4 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:53:32.170000             🧑  作者: Mango

安装 netcdf4 - Shell/Bash

NetCDF (Network Common Data Form) 是一种数据格式,用于多维科学数据的存储和交换。 NetCDF 4 通过支持压缩、分块存储和并行 I/O 等功能,提高了数据的可用性和效率。

这里介绍在 Shell/Bash 环境下安装 netcdf4。

前置条件
  • 确保已经安装了必要的 build 工具。
安装
  1. 下载源代码:

    wget ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.7.4.tar.gz
    
  2. 解压源代码包:

    tar -xzf netcdf-4.7.4.tar.gz
    
  3. 进入源代码目录:

    cd netcdf-4.7.4
    
  4. 编译和安装:

    ./configure --prefix=/usr/local/netcdf4 --disable-dap
    make
    sudo make install
    

    解释:

    • --prefix:指定安装的目录。
    • --disable-dap:禁用 DAP (Distributed Access Protocol) 功能,因为它需要一些额外的依赖项。
  5. 最后,将以下语句添加到您的 .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 的步骤,通过测试程序的执行结果,验证了安装的成功性。