主要流程
主要是7个变量:温压湿 风,降水,入射太阳辐射,向下长波辐射
所有这些变量要写到NC文件中 存放维数为:time,lat,lon. NC 文件命名格式为YYYY-MM.nc
存放在
$MYCSMDATA/atm/datm7/CLM1PT_data/$MYUSRDAT
同时还需要将你之前做好的含有坐标信息的domain file放到
$MYCSMDATA/atm/datm7/domain.lnd.$MYUSRDAT_USGS.nc
PTCLM要求(可以快速根据自己的塔站处理已有的数据,不会)
PTCLMmkdata
$SITEGROUP_sitedata.txt, $SITEGROUP_soildata.txt and $SITEGROUP_pftdata.txt
sitegroup是名字
Site data file:$SITEGROUP_sitedata.txt
): The header for this file is:
site_code,name,state,lon,lat,elev,startyear,endyear,alignyear
the align year for an 1850 case for the data
- 对于土壤质地的定义:
Soil data file: $SITEGROUP_soildata.txt:
The header for this file is:
site_code,soil_depth,n_layers,layer_depth,layer_sand%,layer_clay%
The first three fields after “site_code” are currently unused. The only two that are used are the percent sand and clay columns to set the soil texture. - 对于土地利用动态过程
$SITEGROUP_pftdata.txt
单点模拟方法
这里用到自己的大气强迫数据
所以用CLM_USRDAT_NAME方法,但是需要创建自己的数据集
制作nc文件(主要还是这个部分)
-
时间
重点在于time的设置,这是个难点
NetCDF Climate and Forecast (CF) Metadata Conventions
以上有关于时间的具体的定义 -
制作参考的是matlab脚本是
http://bbs.06climate.com/forum.php?mod=viewthread&tid=37444&extra=&highlight=%B5%A5%B5%E3&page=1
对于数据的处理
目前数据存在的问题
!时间是有缺失的(站点数据嘛)
解决方法
用matlab做提取
首先是时间的设置,matlab先用处理成时间矢量
测试一下怎么可以向nc文件需要的时间去转换(已解决)
强迫数据目前就只有两年的(缺失严重),缺测要想办法插值,官网显示是只要有一年的数据即可,但是必须连续
matlab中显示的时间是日+时的数据
对于这个参考的脚本
改以下几个部分
edgewid = netcdf.defVar(outid,‘EDGEW’,‘NC_DOUBLE’,scalarID);
- 定义变量的部分将xtype 由原来的double --> NC_DOUBLE (参考了官网,这个可能是由于版本问题,如果读取不了nc文件的变量,改一下这个)
- 对于名称的定义部分对于double类型要加num2str,不然不能识别为string
- 对于变量输入数据时注意纬度,是三维数据,有可能取数据的是一维
- 输入数据格式取决于自己的数据,由于能力有限,是对观测数据存放方式进行了修改的
完成
不能插入文件,算了
制作nc文件方法参考了指路
!太阳辐射是不能小于0的