数据从中国气象共享网站获取
注册之后记得经常登陆签到,就当自己充了个vip一样
否则的话你刚开始注册能下载的数据量就只有2.0M(虽然TXT文件比较小)
到筛选那输入3.0点击筛选。
生物积温:指的是每天平均气温≥10℃的数据。
由于用的是 MODIS 数据 15 景合成的数据,规定的生长期为 3 月 6 日- 10 月 6 日,所以需要找出这里面 ≥ 10 ℃ ≥10℃ ≥10℃ 的数据,由于数据都是整月的数据,需要自己剔除一部分数据,如 3.1-3.6,10.6-10.31 日。
由于数据文件的命名非常的对称,为批量处理埋下了伏笔,其实就是真正循环就是为了字符串的拼接。
SURF_CLI_CHN_MUL_DAY_CES-TEM-12001-200910.TXT
所以只需要想办法把字符串拼接起来即可。由于是10年每年 8 个月,所以外层循环套年份,内层套月份。
file1 = 'SURF_CLI_CHN_MUL_DAY_CES-TEM-12001-';
file2 = '.TXT';
year = {'2009','2010','2011','2012','2013','2014','2015','2016','2017','2018'};
month = {'03','04','05','06','07','08','09','10'}; %``
真正重要的就是这部分,因为外层年份用元胞数组{j}获取内层月份用{i}表示,
这样就阔以了,先拼出字符串好让textread
能找到,我也尝试过用fid
和fopen
但是这样出现的数据是大元胞,又得继续重新构造数据,于是在小体量数据下还是用了textread
,如果是像我之前打建模的时候 104w 条数据还是建议用fid,fopen
。
整体的思路就是先找到站点,然后拿出温度所在的列,就是第 8 列,如果是 3 月份取后面的 25 天,如果是 10 月就 6 天,然后是找到大于 10 ℃ 10℃ 10℃ 的位置,由于数据是以 0.1 ℃ 0.1℃ 0.1℃ 为单位,所以这里大于等于 100 100 100 ,然后把所有的数据给并起来,最后得到一个总和就是这个年份的积温,其他 6 个站点也是同理,外层大循环就得到 10 年的数据。由于最后做总和的时候会有一个累加的过程,所以需要差分以及取出第一个数据,就需要差分拼接合成最后一个矩阵。
这个是后来加了range部分的结果,然后自己改一改excel就ok了
这个就是最后的结果,然后和站点的坐标数据放一起然后便于导入Arcmap,导入的最后结果咯。
然而之前把属性数据忘记放进去了直接导入了,就不想管了就这样把。
感谢我2点时Mind Palace的运动让我失眠到5点,昨天差点猝死。
最后,我将在另外一个账号写博客,有兴趣的可以关注。