# 创建NetCDF文件 **Repository Path**: harold_finch/create-netcdf-file ## Basic Information - **Project Name**: 创建NetCDF文件 - **Description**: windows环境下,通过C++创建NetCDF文件。 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-02-27 - **Last Updated**: 2025-03-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NetCDF 文件生成工具 C++封装的NetCDF文件操作工具,支持多维数据写入和属性管理 ## 使用方法 1. 将`NetCDFReader.h`、`NetCDFReader.cpp`、文件夹`netCDF_4.9.2`和所有的`*.dll`复制到项目中 如果是vs工程,放到`*.vcxproj`同级目录下 2. 在项目中包含`NetCDFReader.h` 3. 在需要使用的地方创建`NetCDFReader`对象 4. 调用对象的方法进行数据写入和属性管理 使用遵照以下步骤: - 文件创建 - 维度定义管理 - 变量定义(支持多种数据类型) - 全局属性写入(double/float/int) - 数据写入(支持double/float/int类型) - 文件关闭 5. 示例代码 运行示例代码,会在项目根目录下生成`weather_data.nc`文件,编译命令如下: ```bash g++ -o main main.cpp NetCDFReader.cpp -I"netCDF_4.9.2/include" -L"netCDF_4.9.2/lib" -lnetcdf ``` 6. 潜在错误 注意检查`NetCDFReader.h`中的链接库路径 ```C++ #include "netCDF_4.9.2\\include\\netcdf.h" #pragma comment(lib, "netCDF_4.9.2\\lib\\netcdf.lib") ``` ## NC 变量类型 ```C++ #define NC_NAT 0 // 未指定类型 #define NC_BYTE 1 // 8位有符号整数 #define NC_CHAR 2 // 8位文本字符 #define NC_SHORT 3 // 16位有符号整数 #define NC_INT 4 // 32位有符号整数 #define NC_LONG NC_INT // 通常等同于NC_INT (历史遗留类型) #define NC_FLOAT 5 // 32位浮点数 #define NC_DOUBLE 6 // 64位浮点数 #define NC_UBYTE 7 // 8位无符号整数 #define NC_USHORT 8 // 16位无符号整数 #define NC_UINT 9 // 32位无符号整数 #define NC_INT64 10 // 64位有符号整数 #define NC_UINT64 11 // 64位无符号整数 #define NC_STRING 12 // 空终止字符串 ``` ## 生成的示例NC文件 ![weather_data.nc](img/example.png)