《地面探空电码译码系统气象网络与安全技术期末.doc》由会员分享,可在线阅读,更多相关《地面探空电码译码系统气象网络与安全技术期末.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流地面探空电码译码系统气象网络与安全技术期末.精品文档.气象信息与网络技术课程设计 题 目 地面/探空电码译码系统 学生姓名 学 号 . 学 院 电子与信息工程学院专 业 通信工程设计时间 16周 二一三年十二月十六日气象信息与网络技术课程设计(南京信息工程大学 电子与信息工程学院,江苏 南京 210044)摘要:地面/探空电码译码系统由地面部分和探空部分两部分组成,地面部分和探空部分均由C语言编程来完成,首先我们将输入地面电码文件,经过电码译码系统的处理将得出相关天气资料要素,同样在探空部分也如此。关键字:探空、电码、译码一、 前言随着经济发
2、展和人们生活水平的不断提高,气象对人类生活的影响程度也越来越大。对事关防灾减灾和应对气候变化能力建设的气象服务需求日益增加。气象电码蕴含了丰富的原始气象观测资料,气象电码的质量关系到天气预报准确度,关系到整个气象事业和人们的生活。科学准确的气象信息可以提高防灾减灾服务的质量,促进和谐社会的发展,提高应对气候变化能力积极推进社会的科学发展。而这些都要求我们有一个稳定、高效的气象电码译码系统,以适应发展的要求。地面气象电码是地面气象数据载体,国内外专家对气象数据做过较多研究。自动气象站资料实时质量控制应在两个层面进行,一是在观测台站进行基本质量控制;二是在数据处理中心进行,数据处理中心采用综合时间
3、一致性、内部一致性检查外,还应对仪器传感器失效、长期漂移进行评估。由于气象站点空间分布的不均匀性,在质量控制下,并不能以追求差值均方根误差最小为目标简单的对气象数据空间插值,而是应该追求误差稳定性。国内外对气象数据的研究较为丰富,但鲜有直接对气象电码质量控制相关的问题开展研究与讨论。探空报告亦称高空压、温、湿和风报告,简称探空报。气象站用气球、火箭携带无线电 探空仪升空,对自由大气中各高度上气压、 温度、湿度和风观测结果的报告,或从飞机、 气球上用降落伞投下探空仪进行的观测报告。探空报的国际通用的电码名称代码为TEMP(陆地测站), TEMP SHIP(海洋测站)和TEMP DROP(下投式探
4、空仪观测)。每天在00、12以及06、18时进行观测,并将观测结果按规定的电码型式编成电报,拍发给气象通信中心,再由通信中心汇总编辑后经电传和无线广播,供各地气象台分析高空天气形势和大气层结状况时使用。我国气象事业是科技型、基础性社会公益事业,而气象单位是科技型、基础性社会公益事业单位。在国务院及相关部委的支持下,气象系统内部的学术研究氛围浓重。全国各级气象部门每年都会有一定量的气象及相关领域课题或项目立项。特别是随着近年来计算机技术和软件工程的发展,气象业务得到了飞快的发展,与计算机技术相关课题越来越受到气象部门重视。本文将致力于设计一个小的气象地面/探空电码译码系统的研究与实现。二、 需求
5、分析气象灾害的频繁发生,对人类的生产、生活造成了极大的影响,气象信息资源对经济社会发展的重要性已是不言自明了。气象信息对许多社会经济部门的发展和人民生活都有很大贡献。其贡献表现在以下方面:1、政府部门需要根据气象部门提供的气象预报警报信息,对可能出现的暴雨、大风、冰雹、台风等灾害提前采取措施,最大限度地减少灾害对人民生命财产造成的损失;2、气象信息对水利、电力、民航、运输等部门工作起着关键的作用;3、气象预报警报信息系统以及公共气象信息服务是一种“公益性”的社会基础设施,利用该设施可以为人民生活或生产提供所需要的优质气象信息服务;4、气象信息还是重要的经济资源,企业能有效利用气象信息,制定生产
6、和销售计划,可以在一定程度上充分利用自然条件,从而提高经济效益等等。当前,面对气候变暖等一系列气候、环境问题,各国间的气象信息的共享,对共同爱护地球、保护家园有着不可言说的重大意义气象信息网络系统是气象业务系统的中枢和纽带, 是现代气象业务体系的重要基础支撑,是国家信息基础设施的重要组成部分。说到地面/探空电码译码,也许大家会感到陌生,但是它却实实在在的影响着我们,几乎涉及到我们生活的方方面面。现在我们的手机电脑上都会安装查看天气的软件,看天气已经成了我们习以为常的一件事。21世纪是我国国民经济持续、快速、健康发展的关键时期,经济建设、社会进步、人民生活和气象预报都有密切关系。改革开放以来,随
7、着我国国力的增强和科学技术的迅速发展,我国气象预报的业务技术水平也有了快速的提高,在防灾减灾和国民经济建设中发挥了巨大作用。天气预报成了一种无形的财富。在现实生活中,气象信息的主要表现形式便是天气预报,它关系着人们的衣食住行、生产、生活等各种活动,为人们的日常生活导航,使一切有条不紊地进行。而对气象信息的准确采集和翻译是这一切的保证,也是防灾减灾,保障人们生命财产安全的基础。作为气象信息的重要处理环节,电码译码必须要做好。电码译码系统对天气现象观测资料的实时显示以及对历史观测资料的查询权限,为天气预报员提供实时的天气资料,以便天气预报员进行天气分析及准确预报。电码译码系统提供给科研人员过去和现
8、在的天气各要素资料,以便分析总结,研究天气的发展、演变,为揭示天气变化作出贡献。电码译码提高了对天气观测的准确性和可靠性,做好电码译码分析才能将气象信息的作用发挥出来,这也就决定了电码译码系统的广阔发展前景。三、 概要设计本系统由地面部分和探空部分两部分组成,地面部分和探空部分均由C语言编程来完成,首先我们将输入地面电码文件,经过电码译码系统的处理将得出相关天气资料要素,同样在探空部分也如此。具体内容如下流图所示:1、 地面/探空电报译码数据流图地面/探空电码文件电码译码系统各天气资料要素图3.1地面/探空电码译码数据流程图2、 地面/探空电报译码程序流图在电码译码系统中输入相关电码文件(月、
9、日、时次等信息),通过电码译码系统一系列的运算,最终得出相关天气要素。当输入电码文件时,首先判断该文件是否为地面电码文件,若不是则显示电码资料出错返回电码文件输入;若是就直接读取一行,再输入指定站台号;若站台号输入正确,回车则显示正确的相关天气要素,反之则会显示站台号不存在,资料有误相关信息,同时会有是否继续翻译的提示。具体如流程图所示:读取电码文件,译出各要素值译出各要素连续三次读一行指定台站?NY返回不是地面电码资料,出错AAXX吗?读一行YN行尾为“=”?读一行N是否继续翻译?YN返回Y输入新的站台号图3.2地面电码译码功能流程图当输入电码文件时,首先判断该文件是否为探空电码文件,若不是
10、则显示电码资料出错返回电码文件输入;若是就直接读取一行,再输入指定站台号;若站台号输入正确,回车则显示正确的相关天气要素,反之则会显示站台号不存在,资料有误相关信息,同时会有是否继续翻译的提示。具体如流程图所示:读取电码文件,译出各要素值译出各要素连续三次读一行指定台站?NY返回不是探空电码资料,出错AAXX吗?读一行YN行尾为“=”?读一行N是否继续翻译?YN返回Y输入新的站台号图3.3探空电码译码功能流程图四、详细设计1、APPP组电码值翻译流程图先输入参数,接着判断参数值是否超出范围;若超出,则输出错误信息,否则判断a的值;若a值为4则表示气压变化为上升,为1表示气压变化为不变,为0表示
11、气压下降;做进一步判断,当a值为1或4时变化值为“+”变化量为ppp,输出结果;当a值为0时变化值为“-”变化量为ppp,输出结果;具体流程图如下:开始参数输入参数是否超出范围输出翻译结果结束输出错误信息NY为0气压变化为上升为1判断a的值为4变化值为+变化量为ppp气压变化为不变气压变化为下降变化值为-变化量为ppp图4.1appp组电码值翻译流程图2、 RRR组电码值翻译流程图先输入参数,接着判断参数值是否超出范围;如果超出,则输出错误信息,如果参数值没有超出范围则根据RRR值的不同范围翻译成为相应的降水量,并且输出翻译后的结果;具体流程图如下:开始参数输入参数是否超出范围输出翻译结果结束
12、输出错误信息NY根据不同RRR值范围翻译成相应降水量图4.2RRR组电码值翻译流程图3、 NhCLCMCH组电码值翻译流程图先输入参数,接着判断参数值是否超出范围;若超出,则输出错误信息,否则判断CL的值;若CL=0或CL=-1时,则总云量为中层云,翻译总云量Nh值,根据CL翻译成对应低云状、根据CM翻译成对应中云状,输出翻译结果;若CL=0&CL=0&CL=9根据CM翻译成对应中云状图4.3NhCLCMCH组电码值翻译流程图4、 wwW1W2组电码翻译程序流程图先输入参数,接着判断参数值是否超出范围;若超出,则输出错误信息,否则根据不同ww值翻译成现在天气现象,根据不同W1W2值翻译成过去天
13、气现象;最后输出翻译结果;具体流程图如下:开始参数输入参数是否超出范围输出翻译结果结束输出错误信息NY根据不同ww值翻译成现在天气现象根据不同W1W2值翻译成过去天气现象图4.4 wwW1W2组电码值翻译流程图5、PPPP组电码值翻译流程图先输入参数,接着判断参数值是否超出范围;若超出,则输出错误信息,若没有超出继续判断第一个值是否为0;若为0,则海平面气压值超过1000百帕,PPPP翻译成相应海平面气压输出气压值;若不为0,则PPPP直接翻译成相应海平面气压输出气压值;具体流程图如下:开始参数输入参数是否超出范围输出气压值结束输出错误信息NY海平面气压值超过1000百帕PPPP翻译成相应海平
14、面气压判断第一个值是否为0YPPPP翻译成相应海平面气压N图4.5 PPPP组电码值翻译流程图五、 编码设计本次研究实验主要是采用了C语言编程来实现电码译码系统功能的。程序详见电子稿附录。六、 运行与调试(一)地面电码文件1、输入正确的日期和正确的台站号时:当输入正确日期5月28时00时刻正确台站号58040时,相关时刻相关站台的天气资料将会全部显示;并且还能继续翻译其他站台的天气信息。如下:2、输入正确的日期和不正确的台站号时:当输入正确日期5月29时06时刻和错误台站号10204时,由于此站台号不存在,将不会有相关天气资料显示,不过我们可以继续翻译其他正确的站台,如下:3、 输入不正确的日
15、期和正确的台站号时当输入错误日期04月22时00时刻时,由于改程序设计时,只有当日期输入正确并且资料存在时,才会进行下一步输入站台号,因此当输入不正确的日期时,将会提示文件不存在的信息,如下:(二)探空电码文件1、 输入正确的日期和正确的台站号时:当输入正确日期6月3日00时刻正确台站号57494时,相关时刻相关站台的天气资料将会全部显示,如下:2、输入正确的日期和不正确的台站号时:当输入正确日期6月3时00时刻和错误台站号85464时,由于此站台号不存在,将不会有相关天气资料显示,不过我们可以继续翻译其他正确的站台,如下:3、输入不正确的日期和正确的台站号时:当输入错误日期04月21时06时
16、刻时,由于改程序设计时,只有当日期输入正确并且资料存在时,才会进行下一步输入站台号,因此当输入不正确的日期时,将会提示文件不存在的信息,如下:七、 总结对于以上我们实现的电码译码系统,我觉得我们的系统基本上完成了这个电码译码的工作,包括输入、输出、界面设计、错误处理等这些方面做的还很不错。不过我觉得还有很多可以改进和升级的地方。比如说多种方式输入,既支持一段一段输入,又支持文件输入,甚至还支持用ULR调用的网页输入等等;界面的优化,设计出更加美观的图形界面,可以结合地图,使查询结果能更加直观地展现出来;当然在报错,系统稳定性维护上还需进一步细化,还可以结合一些气象预报的知识,直接生成一个气象预
17、报系统。我们可以更深一步的设计出一个更完美的系统,它可以接受各方的信息输入和查询,在互联网中直接实现远距离电码译码,无需将所有观测站的数据都传到总站处理,这样将会减轻各方面的工作量。我觉得以上需要改进和升级的地方便是我们的方向,我们可以努力尝试着去实现。通过本次课程实验设计,我对电码译码有了更深一步的了解。这次电码译码系统课程设计实验使用C语言进行编程,对我来说实验最大的难点就是编程。这次实验我们在编程上面花了很长的时间,但是我收获了很多。首先了解到了气象地面电码和探空电码的一些基础知识,其次通过运用C语言编程也使得自己的编程能力得到了提高。这次课程设计实验给了我一次将课本学习与实践结合的机会
18、。鉴于现在平板电脑,智能手机发展势头火爆,我觉得我们可以针对不同的手机系统进行配套开发。不过这也得需要相关政府部门或者其他慈善机构合作,来保证我们的运行。我个人觉得通过这个系统发布预警应该比较具有广泛性,在预报重大自然灾害的前兆时,更能很好地达到预警的效果。相对于一个完善的系统规划,以上见解略显粗糙,一些细节还需进一步去落实,以实现系统的完善和升级,使此系统获得广大的使用和支持,以更好地服务人们。八、参考文献1 地面气象电码手册,中国气象局监测网络司 编,气象出版社,2007年版2 C语言程序设计教程,谭浩强 编,高等教育出版社,2008年版九、附录 电码译码程序: #include #inc
19、lude int readone(char *ch,FILE *fp) if(feof(fp) return -1; else fgets(ch,80,fp); return strlen(ch)-1;int comp(char *ch,char *s,int n) int i; for(i=0;i0&chk-1!=) k=readone(ch,fp);if(k!=-1)int iR,iX;iR=ch6;switch(iR)case 1: printf(是否编报降水量组: 编报n);break;case 3: printf(是否编报降水量组: 无降水而不编报n);break;case 4: p
20、rintf(是否编报降水量组: 有降水但因未观测或观测值无法测定而不编报n);break;iX=ch7;switch(iX)case 1:case 4:printf(是否编报了现在天气和过去天气组: 编报n);break;case 2:case 5:printf(是否编报了现在天气和过去天气组: 不编报(无规定要编报的天气现象)n);break;case 3:case 6:printf(是否编报了现在天气和过去天气组: 不编报(未观测)n);break;if(ch80&ch89) h=ch8-0; switch(h) case 0:printf(云高:50米n);break; case 1:p
21、rintf(云高:50-100米n);break; case 2:printf(云高:100-200米n);break; case 3:printf(云高:200-300米n);break; case 4:printf(云高:300-600米n);break; case 5:printf(云高:600-1000米n);break; case 6:printf(云高:1000-1500米n);break; case 7:printf(云高:1500-2000米n);break; case 8:printf(云高:2000-2500米n);break; case 9:printf(云高:2500米
22、,或无云n);break;else printf(云底高度不明,或云底低于测站而云顶高于测站n);VV=(ch9-0)*10+(ch10-0);if(VV=00) printf(有效能见度:0.1千米n);else if (01=VV&VV=50) printf(有效能见度:%2.1f千米n,VV/10.0);else if (51=VV&VV=55) printf(不用n);else if (56=VV&VV=79) printf(有效能见度:%3.1f千米n,VV-50);else if (VV=80) printf(有效能见度:30千米n);else if (81=VV&VV0&ch12
23、=001)&(RRR=991)&(RRR=999) printf(降水量:%2.1f毫米n,(RRR-990)/10); else if(RRR=000) printf(不用n); else if(RRR=989) printf(降水量989毫米n); else printf(降水微量n);else if(chN=7) if(chN+1=/)|(chN+2=/) printf(现在天气现象缺失!n); else ww=(chN+1-0)*10+(chN+2-0); switch(ww) case 0:printf(没有出现规定要编报的各种天气现象n);break; case 1:printf(
24、不用n);break; case 2:printf(不用n);break; case 3:printf(不用n);break; case 4:printf(现在天气现象:能见度因烟或火山爆发的灰尘障碍而降低n);break; case 5:printf(现在天气现象:观测时有霾n);break; case 6:printf(现在天气现象:观测时有浮尘,广泛散布的浮在空中的尘土n);break; case 7:printf(现在天气现象:由风吹起来的扬沙或尘土,但没有尘卷风或沙尘暴n);break; case 8:printf(现在天气现象:有尘卷风,但没有沙尘暴n);break; case 9
25、:printf(现在天气现象:有沙尘暴n);break; case 10:printf(现在天气现象:轻雾n);break; case 11:printf(现在天气现象:有浅雾,呈片状,陆地厚度2米,海上厚度10米n);break; case 12:printf(现在天气现象:有浅雾,已连续,陆地厚度2米,海上厚度10米n);break; case 13:printf(现在天气现象:闪电n);break; case 14:printf(现在天气现象:有降水,没有到达地面或海面n);break; case 15:printf(现在天气现象:有降水,已到地面或海面,但在5000米外n);break
26、; case 16:printf(现在天气现象:有降水,已到地面或海面,在测站附近,但本站无降水n);break; case 17:printf(现在天气现象:雷暴,但观测时没有降水n);break; case 18:printf(现在天气现象:飑,观测时或观测前一小时内在测站或视区内出现n);break; case 19:printf(现在天气现象:龙卷,观测时或观测前一小时内在测站或视区内出现n);break; case 20:printf(现在天气现象:毛毛雨n);break; case 21:printf(现在天气现象:雨n);break; case 22:printf(现在天气现象:
27、雪、米雪或冰粒n);break; case 23:printf(现在天气现象:雨夹雪,或雨夹冰粒n);break; case 24:printf(现在天气现象:毛毛雨或雨,并有雨凇n);break; case 25:printf(现在天气现象:阵雨n);break; case 26:printf(现在天气现象:阵雪,或阵性雨夹雪n);break; case 27:printf(现在天气现象:冰雹或霰(或伴雨)n);break; case 28:printf(现在天气现象:雾n);break; case 29:printf(现在天气现象:雷暴(或伴雨)n);break; case 30:printf(现在天气现象:轻的或中度的沙尘暴,过去1小时内减弱n);break; case 31:printf(现在天气现象:轻的或中度的沙尘暴,过去1小时内没有显著变化n);break; case 32:printf(现在天气现象:轻的或中度的沙尘暴,过去1小时内开始或增强n);break; case 33:printf(现在天气现象:强的沙尘暴,过去1小时内减弱n);break; case 34:pr
限制150内