气象信息与网络技术课程设计.docx
- 文档编号:24955351
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:20
- 大小:146.62KB
气象信息与网络技术课程设计.docx
《气象信息与网络技术课程设计.docx》由会员分享,可在线阅读,更多相关《气象信息与网络技术课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
气象信息与网络技术课程设计
气象信息与网络技术课程设计
题目地面/探空电码译码系统
学生姓名
学号000
学院电子与信息工程学院
专业通信工程
设计时刻16周
二O一四年十二月三十日
课程论文排版规范
xxxx(题目、居中、黑体、三号)
(空1行)
XXX(作者名宋体、居中、五号)
南京信息工程大学通信工程专业,南京210044(宋体、居中、小五号)
(空1行)
摘要:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(仿宋、小五号)
关键词:
XX;XX;XX(宋体,小五号)
(空1行)
正文,中文一概采用宋体五号宋体字,一级题目用四号黑体(小题目应上下空一行),文科类的论文排在正文的中间;理科类的论文顶格排。
(空2行)
参考文献(五号宋体加粗)居左,空两格放置:
[1]刘广珠.《高中生考试焦虑成因分析》.陕西师大学报(哲社版),1995,24
(1):
161-164.
[2]郑霖柴宗新郑远昌等.《四川省地理》.四川科学技术出版社,.
[3]夏敬华.《企业流程管理中的常见问题》.
2003年5月20日访问
[4][美]约瑟.H.多尔著,张林升等译.《教育新理念》教育科学出版社,.
以上注释的具体内容全数采用五号仿宋体
另起1页
英文题目(三号TimesNewRoman加粗居中放置)
姓名、单位与前面中文相对应(字体用五号TimesNewRoman)
ABSTRACT(四号加粗居中放置):
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(小五号)
Keyword:
XXX;XXX;XXX;XXX(小五号)
说明:
1.如有图表,图表的题目字体为宋体,小五号,居中;
纸打印,页边距上下设厘米,左右设置为2厘米;
3.若为基金项目资助,在首页脚注中注明;
4.论文及参考文献全数用倍行距,在“格式”选项中的“段落”设置窗口,采用多倍行距,行距设置值为;
5.引用文献中一般都应有外文文献;
6.文中的序号一般按层次采用“一、”“二、”“三、”……和“
(一)”“
(二)”“(三)”……或“1”“2”“3”……“1.1”、“1.2”……表示,文中的各级序号不得混用,以避免眉目不清、层次难分;
7.中文标点一概采用全角。
内容可能要求:
题目
摘要
关键词
一、引言
二、文献综述
。
。
。
。
。
。
(论文的正文部份)
总结
参考文献(5-10篇)
英文题目
英文摘要
英文关键词
文章评分要求:
1、考核标准采用百分制,
2、排版格式要求正确(15分),
3、内容符合要求(20分),
4、字数符合要求(15分),
5、另外,论点明确(20分),论据充分(20分),条例清楚(10分)。
《气象信息与网络技术》课程设计
课程论文设计是一个学习进程,也是充分发挥学生创造性能力进程。
其任务是,通过课程设计,学习如何进行选题、查阅资料、制定研究方案、实施方案、研究功效汇总和撰写论文的重要环节。
独立完成,不要剽窃。
课程论文编排:
中文一概采用五号宋体字,倍行距,一级题目用四号黑体(小题目应上下空一行),顶格排,中文标点一概采用全角。
如有图表,图表的题目字体为宋体,小五号,居中,图(表)与正文混排。
A4纸打印,页边距上下设2.5厘米,左右设置为2厘米。
论文的插图必需精心制作,线条要匀称,图面要整洁美观,插图应与正文呼应,不得与正文脱节。
每幅插图应有图序和图题,图序和图题应在图的正下方,全文插图能够统一编序,图序必需持续,不得重复或跳缺。
插图必需用运算机绘制,不得拷贝他人的功效图。
目标:
能够任意地译出某年某月某日某时次的某站点的各气象要素值。
一、前言
气象地面报文电码具有地面各类气象要素和天气现象,如气温、湿度、风向、风速、海平面气压和雨、雪、雾,还具有记录云高、云状、天气演变如三小时变压、气压偏向等。
最近几年来,随着运算机技术的快速进展和卫星通信技术的研究深度的加深,地面气象报文系统的进展日趋完善,报文电码的进展与运算机技术相关度愈来愈大,二者相结合为人类的日常生活产生了日趋深远的影响。
我国是自然灾害频发的国家,而气象灾害又是在自然灾害中损毁程度最严峻的。
如我国最近几年发生几回大的寒潮,和每一年夏天发生的台风等同时每次自然灾害给人民的生产生活都带来了极大的不便乃至对一个地域的生产秩序起到破坏性的作用,因此国际国内对天气系统的转变情形愈来愈关注,而在气象领域对卫星观测资料的依赖度愈来愈大,天气资料在天气预报系统中占据愈来愈重要的作用,气象报文信息发挥了比以往更关键的角色,气象台按照气象信息预报寒潮、台风、暴雨等自然灾害出现的位置和强度,就可以够直接为工农业生产和群众生活服务,通过应急预备及人员疏散等能够讲自然灾害带来的损害讲到最低。
气象信息就成为现代社会不可缺少的重要信息。
同时,气象信息的作用与气象代码翻译工作是分不开的,通过现代化的手腕和先进的通信工具,气象电码的翻译工作效率大大提高,气象信息一经翻译,依赖于先进的通信工具就可以够及时地发布出去,具有很强的实时性,因此此代码翻译系统是具有重要意义的。
在咱们可接触到的各类电码翻译系统中,翻译系统的实现采用了多种语言,本文提供一种基于C语言的电码翻译系统,按照地面报文电码的特点通过相关的语句翻译出所表示的气象信息。
世界气象组织所属的天气监测网由一百多个成员国组成,其观测系统中包括十多颗卫星、三千多架飞机、一万多个陆上观测站、七千多个船舶观测站和九百多个携带自动气象站的系统航标和浮标。
世界天气观测网络就是通过那个观测系统提供最新的全世界天气预报的。
天天,高速电信链路通过三个世界级气象中心、34个区域性气象中心和187个国家级气象中心向全世界传输气象资料和气象图。
气象资料是气象科学对天气进程进行的预测及对大气活动规律进行研究的主要依据,气象资料互换是气象业务的科研的基础。
可是,由于各国文字的不一致性,和文字占据大容量存储空间的问题,决定将其以规定的编码形式在国际国内间进行互换。
气象地面电码和探空电码就是其中的一种可供互换编码。
各个行业都有各自的国际电码。
地面气象观测的天气电码,不但反映天气实况,而且也反映了天气的演变规律。
因此,必需从天气学的角度去理解和选用天气报告电码。
这是全面、准确反映测站天气实况和保证天气预报工作、减少人为失误的重要环节。
电码需要依照必然的规则编写,如此,译码者才能依照那个规则译出电码所代表的通俗易懂的信息。
随着社会、经济的飞速进展和人民生活水生平活质量的大幅度提高,社会上各行各业对气象部门提出了全方位、多时效、针对性强、准确度高的天气预报服务要求。
社会需求永久是天气预报进展的动力和压力。
为了适应日趋增加的社会需要,做好预报服务,预报员需要用到最近几年来许多新的知识和参考资料,尤其是各个地域的地面和探空气象资料分析,能够有效帮忙预报员分析本地的天气现象,从而做出比较准确的天气预报。
二、需求分析
一、提供给天气预报员实时天气资料,以便实时进行天气分析及准确预报。
实时天气资料是天气分析和预报的基础,因为天气总在不断的转变,依据最接近所要预报的时刻的实时天气资料所得出天气预报的准确程度最高,短时刻的天气预报总比长期和中长期的天气预报准确。
所以想要取得较为准确的天气预报,必不可少的是方便及时地取得实时资料信息,这就需要电码译码系统来帮忙实现。
编写成电码的方式,能有效地节约信息传送的时刻和空间,增加了天气预报的时效。
二、提供给科研人员过去和此刻的天气各要素资料,从气温、气压、风、云、降水、能见度和空气湿度等,得出天气的性质,而且普遍地采用画图,建表等分析方式,加上具体情形的具体分析,联系各个地方、各个时段的天气情形,找出天气转变规律,系统地进行研究,以便分析总结,研究天气的进展、演变,为揭露天气转变、研究大自然的奥妙,进而应用天气现象做出奉献。
该系统对于这些大型的研究来讲只是渺小的一小步,但确是不可或缺的一部份。
3、为二次天气应用开发提供天气资料,从而生产各类应用产品。
天气应用十分普遍,天气信息能够直接应用播报天气情形,还能够应用在二次天气软件上,如能够设计出查询实时天气情形的软件,输入年月日时段和地址,即可显示出具体气象要素的信息,把软件安装在电话上,随身携带,方便快捷,符合公共的应用要求。
4、提供给开发人员一个译码工具,方便开发人员优化开发,充分利用译码的语句和设计流程,不需要开发人员从头设计,能够直接利用,如此简化了气象台的工作量,增加了其工作效率。
另外,还给教师的教学提供了专门大的方便,教师直接输入需要明白的时刻站点信息即可取得对应的气象要素值,学生能够专门好地了解具体的气象要素信息,能更好地学习气象知识。
五、提供给普通用户查询天气实时或过去天气资料,用户自己总结天气状况,决定自己在穿衣御寒防热还有度假出行等方面的生活。
六、提供给农人获取实时天气和过去天气资料,对比此刻天气情形,从而比较好地进行播种、收割等农家活动。
有了科学技术的支持,农业生产能取得迅速地进展,收获更多地粮食,养活更多的人口。
7、提供给工厂天气情形,有些产品的生产与天气的要素如温度、湿度等有着专门大的关系,清楚地了解了具体的天气情形就可以及时调整这些因素,这对产品的生产有专门大的益处,工厂生产效率也能极大的提高。
三、概要设计
1、设计思路
读取气象电报电码文件,通过本电码译码系统,生产各气象要素。
地面电码资料的气象要素有:
温度、露点、本站气压、海平面气压、气压趋势、气压转变量、降水量、天气现象、云状、能见度,风向飞速、总云量等;高空电码资料的气象要素分13层:
地面、1000hPa、925hPa、850hPa、700hPa、500hPa、400hPa、300hPa、250hPa、200hPa、150hPa、100hPa;高空电码资料的每层气象要素是:
温度、温度露点差、气压、风向飞速。
编程思路是:
由用户输入要译码的年、月、日、世界时次和台站号(注:
有可能的话用地名),并选择地面或高空;由译码系统进行译码,生产出气象各要素,在屏幕上显示。
2、地面/探空电报译码数据流图
3、地面/探空电报译码程序总流程图
四、详细设计
针对读取电码文件,译出各要素值功能模块进行程序流程图的详细设计,需要画出功能流程图。
详细设计以3000字左右为宜(包括图、表)。
1、判断该文件是地面电码文件吗?
或是探空电码文件吗?
是继续;不然关闭文件,显示犯错信息,并终止程序运行。
2、读取文件一直到指定的台站号或文件结束,若找到指定的台站号,则译出各要素值并显示,不然显示“无此台站号”信息。
3、关闭打开的文件,退出功能模块。
结构化程序设计的思想是:
自顶向下,慢慢求精。
即一步一步地细化,直到每一个具体的语句。
对每一个框都要细化,例如:
如何按照年月日世界时来组成地面文件名或探空文件名;如何显示各要素值等。
这些细化问题的流程图全数要计划好。
其中附图1~附图3是一部份细化流程图,本身还需要细化,交由学生完成。
五、编码设计
利用运算机高级语言对程序流程图进行实现,具体采用什么运算机高级语言不限。
编码设计以3000字左右为宜(只要论述重要程序,程序每行要注解,功能要具体说明)。
一、地面/高空电码处置程序:
#include<>
#include<>
intreadone(char*ch,FILE*fp);
intcomp(char*ch,char*s,intn);
intstr2int(char*ch,intk,intn);
voiddmdisp(char*ch);//对ch进行地面译码的功能函数由学生自行完成
voidupdisp(char*ch);//对ch进行高空译码的功能函数由学生自行完成
voidmain(void)
{intyear,month,day,hour,n,p;
charstation[6],filename[]=”00”,ch[400];
FILE*fp;
printf(“请输入年、月、日、时次及站台号\n”);
scanf(“%d%d%d%d%s”,&year,&month,&day,&hour,station);
printf(“请选择:
1—地面;2—高空\n”);
scanf(“%d”,&p);
if(p!
=1)
{filename[0]=’T’;filename[1]=’T’;
filename[2]=’A’;filename[3]=’A’;
p=13;
}
filename[4]=’0’+month/10;
filename[5]=’0’+month%10;
filename[6]=’0’+day/10;
filename[7]=’0’+day%10;
filename[10]=’0’+hour/10;
filename[11]=’0’+hour%10;
if(fp=fopen(filename,”rt”))
{n=readone(ch,fp);
n=readone(ch,fp);
if(p==1)n=readone(ch,fp);
while
(1)
{n=readone(ch,fp);
if(n==-1){printf(“%s--台站未找到,请检查!
!
!
\n”,station);break;}
while(n<300&&ch[n-1]!
='='&&!
feof(fp))
{ch[n]='';fgets(&ch[n+1],80,fp);n=strlen(ch)-1;}
if(comp(&ch[p-1],station,5))
{if(p==1)dmdisp(ch);elseupdisp(ch);break;}
}
fclose(fp);
}
elseprintf(“%s--文件不存在,请检查!
!
!
\n”,filename);
}
2、读一行程序,返回读取的字符串长度,返回负1,表示文件结束。
intreadone(char*ch,FILE*fp)
{intn=-1;
if(!
feof(fp)){fgets(ch,80,fp);n=strlen(ch)-1;}
returnn;
}
3、两个字符串进行比较,n表示比较字符的个数,返回非0表示相等,返回0表示不相等。
intcomp(char*ch,char*s,intn)
{inti;
for(i=0;i if(*(ch+i)! =*(s+i))break; if(i==n)return1; elsereturn0; } 4、长度为n的字符串转换为整形值。 对于含有非数字字符,则返回负1。 k为起点位置 intstr2int(char*ch,intk,intn) {inti,m=0; for(i=0;i {if(ch[k+i]<’0’||ch[k+i]>’9’)break; m=m*10+ch[k+i]-‘0’; } if(i==n)returnm; elsereturn-1; } 5、对字符串电码ch进行译码,翻译出高空各要素的值进行显示。 voidupdisp(char*ch)//对ch进行译码,由学生自行完成 {intn,i,p,y; puts(ch);//显示读到的字符串电码内容 n=(ch[10]=='')? 11: 12; y=str2int(ch,n-6,2); printf("区站号: "); for(i=0;i<5;i++)printf("%c",ch[n+i]); printf("\n"); while (1) {n+=6; p=str2int(ch,n+2,3);//处置气压,位势米 if(ch[n]=='9'&&ch[n+1]=='9')//99: 地面气压 {//此处输出地面气压的位势米高度p } elseif(ch[n]=='0'&&ch[n+1]=='0')//00: 1000hPa气压 {//此处输出1000hPa气压的位势米高度p } elseif(ch[n]=='9'&&ch[n+1]=='2')//92: 925hPa气压 {//此处输出925hPa气压的位势米高度p } elseif(ch[n]=='8'&&ch[n+1]=='5')//85: 850hPa气压 {//此处输出850hPa气压的位势米高度p } elseif(ch[n]=='7'&&ch[n+1]=='0')//70: 700hPa气压 {//此处输出700hPa气压的位势米高度p } elseif((ch[n]=='5'||ch[n]=='4')&&ch[n+1]=='0')//50或40: 500hPa或400hPa气压 {//此处输出500hPa或400hPa气压的位势米高度p } elseif((ch[n]=='3'&&ch[n+1]=='0')||(ch[n]=='2'&&ch[n+1]=='5')) {//此处输出300hPa或250hPa气压的位势米高度p } elseif(((ch[n]=='2'||ch[n]=='1')&&ch[n+1]=='0')||(ch[n]=='1'&&ch[n+1]=='5')) {//此处输出200hPa或150hPa或100hPa气压的位势米高度p } elsebreak; n+=6; p=str2int(ch,n,3);//处置温度 if(p>=0) {//此处输出温度p,p为偶数表示零上,不然为零下 } p=str2int(ch,n+3,2);//处置露点差 if(p>=0) {//此处输出露点差p } n+=6; p=str2int(ch,n,3);//处置风向 if(p%5==0) {//此处输出风向p p=str2int(ch,n+3,2);//处置风速 if(p>=0) {//此处输出风速p,注意风速的单位与y有关? } } } } 7、对字符串电码ch进行译码,翻译出地面各层各要素的值进行显示。 voiddmdisp(char*ch)//对ch进行译码,由学生自行完成 {intn,i,p; charcl[10][5]={"无低","淡积","浓积","积雨","积层","层积","碎雨","碎雨", "积","鬃积"}; charcm[10][5]={"无中","高层","雨层","高积","荚状","层积","积雨","积层", "积","散积"}; charchh[10][5]={"无高","毛卷","密卷","伪卷","钩卷","卷","辐卷","卷层", "层","卷积"}; charcw[7][9]={"沙尘暴","雾","毛毛雨","非阵性雨","固体降水","阵雨","雷暴"}; charvv[11][6]={"≥7万","<50","50","2百","5百","1千","2千","4千","1万", "2万","≥5万"}; charnh[10][6]={"无云","1成","2-3成","4成","5成","6成","7-8成","9成", "10成","有雾"}; puts(ch);//显示读到的字符串电码内容 printf("区站号: "); for(i=0;i<5;i++)printf("%c",ch[i]); printf("\n"); switch(ch[8])//处置云底高度 {case'0': printf("云高<50米,");break; case'1': printf("云高50--<100米,");break; case'2': printf("云高100--<200米,");break; case'3': printf("云高200--<300米,");break; case'4': printf("云高300--<600米,");break; case'5': printf("云高600--<1000米,");break; case'6': printf("云高1000--<1500米,");break; case'7': printf("云高1500--<2000米,");break; case'8': printf("云高2000--<2500米,");break; case'9': if(ch[12]=='0')printf("无云,");elseprintf("云高≥2500米,");break; } p=str2int(ch,9,2);//处置能见度 //此处按照p输出能见度资料 if(ch[12]! ='/')printf("总云量: %s,",nh[ch[12]-'0']); p=str2int(ch,13,2);//处置风向 if(p==0)printf("静风"); if(p>0)printf("风向: %d度,",p*10); p=str2int(ch,15,2);//处置风速 if(p>0)printf("风速: %d米/秒",p); printf("\n"); n=18; if(ch[n]=='1')//处置温度 {p=str2int(ch,n+2,3); //此处按照p输出温度资料,ch[n+1]为零表示正,不然为负 n+=6;} if(ch[n]=='2')//处置露点温度 {p=str2int(ch,n+2,3); //此处按照p输出露点温度资料,ch[n+1]为零表示正,不然为负 n+=6;} if(ch[n]=='3')//处置本站气压 {p=str2int(ch,n+1,4); //此处按照p输出本站气压资料 n+=6;} if(ch[n]=='4')//处置海平面气压 {p=str2int(ch,n+1,4); //此处按照p输出海平面气压资料 n+=6;} printf("\n"); if(ch[n]=='5')//处置过去三小时气压转变 {p=str2int(ch,n+2,3); //此处按照p输出过去三小时气压转变 n+=6;} if(ch[n]=='6')//处置降水量 {p=str2int(ch,n+1,3); //此处按照p输出降水量 n+=6;} printf("\n"); if(ch[n]=='7')//处置天气现象 {p=str2int(ch,n+1,2); //此处按照p输出此刻天气现象 if(ch[n+3]>='3'&&ch[n+3]<='9')printf("六小时内出现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 气象 信息 网络技术 课程设计