资源描述:
《grads处理台站数据精讲》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Nanjinguniversityofinformationscience&technology阿木废话不说,开始讲解第一步:处理站台id文件:文件处理成三列数据,第一列为站台号,第二列为纬度,第三列为经度注意,如:站号纬度经度5013652.97122.525024652.35124.725034951.70124.335035351.72126.65上述数据中50136连同后面的空格要保证一共有8位(这点不容质疑)第二步:处理数据一般要将所要的要素,如日照时间,单个要素放到一个txt文件中,数据的顺序是:同一
2、个时间点371个站数据,然后放下一个时间点的371个要素值,如此直到最后时刻。第三步:处理成对应格式数据grd文件案例程序(371个站18263天的数据):说明:这里的rct_50years_371_5vars50year_371id.txt为第一步生成的台站id文件rct_50years_371_5vars371_sd_1956_2005.txt为第二步生成的数据文件注意:1、数据必须设成实型的,站号必须为8位字符型(与第一步照应);2、数据存放依然是先站,后时次,即最外层为时间循环3、每一行数据:站号—纬
3、度—经度—相对时次—记录标志—nflag—要素数据4、程序中tim为相对时次,指的是相对于一天的世界时,如果数据本身是日数据,那么time就取0.0,一般都是这样,除非是有08时、20时等多个时刻,才考虑time不为0.0,此处设为0.0恒定,元数据为日数据5、程序中nlev标志一个时刻记录开始,结束时赋值为0,对应程序;6、nflag为有没有地面报,有为1,否则为0,此处为地面观测相对湿度,为17、循环中每个时次的371个站数据输完后,要加一行标志记录(红色)8、生成的文件为二进制grd文件,所以为write(
4、30),没有格式说明;直接加文件号9、第一二三步数据的顺序一定要与站号顺序对应。programex00implicitnoneintegernlev,nflag,i,jreallat(371),lon(371),tim,sd(371)character*8stid(371)tim=0.0nflag=1open(10,file='D:ProgramFilesFORTRAN6.0txt_gridrct_50years_371_5vars50year_371id.txt')open(20,file='D:P
5、rogramFilesFORTRAN6.0txt_gridrct_50years_371_5vars371_sd_1956_2005.txt')6Nanjinguniversityofinformationscience&technology阿木open(30,file='D:ProgramFilesFORTRAN6.0txt_gridrct_50years_371_5vars371_sd_1956_2005.grd',form='binary')doi=1,371read(10,*)stid(
6、i),lat(i),lon(i)enddoclose(10)doi=1,18263nlev=1doj=1,371read(20,*)sd(j)write(30)stid(j),lat(j),lon(j),tim,nlev,nflag,sd(j)enddonlev=0write(30)stid(371),lat(371),lon(371),tim,nlev,nflagwrite(*,*)"Finishwritting:",ienddoclose(20)close(30)end第四步:写相应数据grd的ctl,如下d
7、setc:371yue371_sd_1956_2005.grddtypestationstnmapc:371yuesd50.mapundef32766titlesunhourtdef18263linear01jan19561dyvars1sd099sunhour(0.1h)endvars第五步:写标准的格点文件用于后期插值这里经度为1°*1°,70E-140E,15N-55-N注意:grd的经纬度范围要大于格点的范围,时间可对应。parameter(nx=71,ny=41,nt=600)reallat(n
8、y),lon(nx)reals(nx,ny)open(1,file='grid.grd',form='binary')lat(1)=15.0lon(1)=70.0doj=1,ny-1lat(j+1)=lat(j)+1.06Nanjinguniversityofinformationscience&technology阿木enddodoi=1,nx-1lon(i+1)=lo