把梦想照进现实

中国高时空分辨率地表太阳辐射数据集(2007-2014)的数据处理

2016.11.21

第一步处理

中国高时空分辨率地表太阳辐射数据集(2007-2014)的数据处理原地址
http://www.tpedatabase.cn/portal/MetaDataInfo.jsp?MetaDataId=249449
所有数据为二进制文件,格式为float格式(real*4),没有头文件。每个小时对应一个文件,文件命名方式为: RAD_yyyymmddhh.dat,其中yyyy表示年,mm表示月,dd表示日,hh表示小时(世界时)。经度(X轴)格点:70.025:0.05:140.025,纬度(Y轴)格点:59.975:-0.05:14.975。
感谢唐文君老师给我的数据读取方法。唐老师给的Matlab的读取方法为
https://www.dropbox.com/s/haapm2q6bxz5bov/read_rad_example.m

http://geotechnical.cn/download/web_share/read_rad_example.m
通过该方法,可以将二进制的数据导出为十进制的数据

第二步处理

将十进制的数据以经纬度表示,并添加中国地图,具体见上一篇日志,可得下图。
Matlab的操作链接为https://www.dropbox.com/s/eqf4adwp5fcz05m/read_rad.m?dl=0

第三步处理

之前处理的数据是某一天某一个小时的全国辐射强度,而实际的操作的某一个点的日辐射量和总辐射量,涉及多个文件的操作。
具体的操作见下面的一个文件:

clear all
close all
clc;
%取所有文件
%
po=0;
rax=zeros(12,1); %12天的辐射量
for i=[617 618 619 620 621 622 623 624 625 626 627 628]; %获取所需的月份
po=po+1;
rm=0; %日子的计数器
for a=0:23;
% eg filename = '.\RAD_2012060105.dat';

filename=['.\RAD_20120',num2str(i),num2str(a,'%02d'),'.dat'];
%读取filename的内容,只读
fid = fopen(filename,'r');
%显示需要显示的内容
disp(filename);
%fread 读取901*1401个数,以real*4的格式读取
a = fread(fid,901*1401,'real*4');
%重新保存数据,以901行,1401列保存
b = reshape(a,901,1401);
% xa=70.025:0.05:140.025;
% ya=59.975:-0.05:14.975;
% [x,y]=meshgrid(xa,ya);
%关闭文件
fclose(fid);
%取出杭州所在的经纬值
%杭州 120.2E,30.3N,
rm=rm+b(594,1005);
end
rax(po)=rm;
end
%数据的单位是W·m-2,保存为每日的焦耳能量为 rax*60*60
rax_J=rax*60*60;
%数据以兰勒表示:
rax_L=rax_J/41840;

再次感谢唐文君老师。

Comments
Write a Comment