NetCDF一维数据的写入
一、环境
环境:win7+vs2013+NetCDF4.4.2
二、写入方法
1、先创建要写入的文件直接调用库中函数:nc_create()即可,该函数有三个参数,第一个参数是写入文件路径,第二个参数是你要创建的文件的类型,官方说明:he creation mode flag. The following flags are available: NC_NOCLOBBER (do not overwrite existing file), NC_SHARE (limit write caching - netcdf classic files only), NC_64BIT_OFFSET (create 64-bit offset file), NC_64BIT_DATA (Alias NC_CDF5) (create CDF-5 file), NC_NETCDF4 (create netCDF-4/HDF5 file), NC_CLASSIC_MODEL (enforce netCDF classic mode on netCDF-4/HDF5 files), NC_DISKLESS (store data only in memory), NC_MMAP (use MMAP for NC_DISKLESS), and NC_WRITE. See discussion below.(根据自己的需要使用,一般选择NC_NOCLOBBER就行),第三个参数是返回文件的唯一标识ID。
2、增加一个维度,调用函数nc_def_dim():第一个参数是调用nc_create返回的唯一标识ID,第二个参数是纬度取的名字、第三个是传入的数据长度、第四个是纬度唯一标识ID。
3、增加一个变量,调用函数nc_def_var():第一个参数是调用nc_create返回的唯一标识ID,第二个参数是变量取的名字(一般和纬度名字相同)、第三个是数据类型(NC_FlOAT等)、第四是表示你要创建的是几维的数据(本文介绍1维的,写1即可)、第五个参数是纬度唯一标识ID,第六个是返回的变量唯一标识ID。
4、定义好维度和变量后,调用nc_enddef()结束定义,传入的参数是文件的唯一标识ID,即nc_create返回的ID。
5、写入变量值,根据你存入的数据类型调用,以存储float类型调用nc_put_var_float函数为例:第一个参数是文件唯一标识ID、第二个参数是变量唯一标识ID、第三个是数据。
6、写完之后调用nc_close()函数,关闭写入,参数是文件唯一标识ID。
三、注意事项
第5步需要注意写入的数据要存到数据中、数据个数要和你第2步中传入的长度一致,否则可能出现崩溃现象。
如果数据量过大的话,可以使用vector存储写入。
四、建议
建议:如果不太明白怎么回事,把官方提供的样例代码拷贝下来先跑一下看看效果,先搞明白一维的怎么回事。
说明:编者也是初学者,请根据自己的实际情况请参考使用,更多问题请参考博客中的其他文章。