APP下载

基于PHPCMS的专业气象服务平台的设计与实现

2022-10-10

计算机应用与软件 2022年9期
关键词:数据表页面气象

宋 永 鹏

(山东气象信息中心 山东 济南 250031)

0 引 言

随着经济社会发展及气象趋利避害服务需求的不断增加,专业气象服务稳步发展,中国气象局积极推动部门合作,有效推动了专业气象服务领域和服务内容的不断拓展。传统的气象服务由于科技水平的限制,要满足不同用户定时定量的订制需求会耗费业务人员大量的精力,工作强度大、效率低成了地市专业台的普遍现象[1]。广东省气象局使用JAVA Spring集成框架开发了广东省专业气象服务网,为专业用户提供实时服务、雨情服务等6种固定气象服务,其余各省的专业气象服务局限于面向社会的公共气象服务,没有可订制的服务内容。PHPCMS是国内领先的网站管理系统,同时也是一个开源的PHP开发框架,优点是易于功能扩展和代码维护,并拥有优秀的二次开发能力[2]。基于上述背景和条件,本文设计开发淄博市专业气象服务平台,通过Web方式发布气象服务产品并建立淄博专业气象门户网站,提供公共气象服务的同时,立足用户需求为企业和个人打造订制气象服务产品。

1 框架设计

1.1 组成系统

产品服务系统是企业在销售产品的同时提供销售服务,并且产品与服务高度集成、整体优化的新型生产系统,基于产品的服务在满足用户的前提下,达成企业与用户的双赢[3]。

依据上述理论,本文调研淄博市专业气象台的业务需求,平台包括内容服务系统和产品订制系统。如图1所示,内容服务系统为政府决策部门、社会公众和生产部门提供公共气象服务;产品订制系统以点对点的方式为用户提供订制精细化产品。

1.2 架 构

平台基于B/S架构、基于PHP+Mysql体系研发;两个系统数据部分耦合,面向公众的门户网站提供来自产品数据库的气象信息,产品订制系统面向用户的信息则保存于内容数据库中。内容服务系统通过对PHPCMS自定义标签的HTML标记或变量的替换进行页面的设计,对功能模块的二次开发完成栏目和内容的通用化,促成页面静态化的呈现,避免过多的动态化内容影响页面的响应速度;模板技术用来对栏目板块进行建设,不同栏目套用相同模板,实现代码的复用,缩减臃肿的代码体积。产品订制系统根据预报类型促使产品与数据表、数据字段与产品要素一一对应,保证产品的灵活多样性;实现一键发布功能,分析业务人员录入的基本气象数据,后台重新组合相关要素数据并运用公式进行计算,力求科学准确的产品数据并简化人工操作流程。

2 内容服务系统

内容服务系统以PHPCMS为框架开发而成。PHPCMS(PHP Content Management System)将前端和后端业务系统以Web应用的方式连接起来,架构如图2所示,内容服务系统后端由管理员进行数据的录入和内容的管理,前端使用浏览器进行数据的展示和分析。

2.1 模 板

内容服务系统的一个设计优势是页面开发过程中的模板化。虽然前端各个栏目的内容有很大的差异性,但本文通过PHPCMS模板技术对栏目的模板进行构建,图3为模板开发流程[4],所有栏目表现套用同一套设计好的模板,有效避免重复开发的情况。

图3 模板开发流程

模板作为对html的扩展,将特定的标签嵌入html文件用以表明内容和布局,改变标签的内容以达到调整表现内容的目的。模板定义了显示内容的布局,而没有加载实际数据,用户访问模板页面时,模板解释器分析其中的标签,用标签对应的数据库数据进行替换,将替换结果返回用户浏览器;标签解释器通过对元数据的分析实现对标签的定义和展现,由系统进行统一调度。模板和标签简单易懂,对内容布局的调整仅需对模板进行操作而不需要改编相应的代码,另外,模板页面以html这种静态文件的呈现,使得动态化的内容在浏览器中完成,避免与服务器的实时数据交换,对提升页面的运行速度有积极影响[5]。

2.2 单一入口和模块

内容服务系统采用单一入口和模块化开发,其文件系统如图4所示。

图4 内容服务文件系统

单一入口是指一个文件处理所有的http请求,访问内容服务系统前端的浏览视频、观看新闻或公共气象服务等功能,都是由浏览器访问特定的文件,就是文件系统中的前端入口文件index.php来完成,服务器收到http请求时会解析此请求,由index.php文件执行响应操作并将结果返回浏览器。所有的执行操作都由一个文件进行维护管理,就能够轻易地对全局系统进行安全检测、核心类库的部署及相应的过滤[6]。

内容服务系统的各模块保存于文件系统的框架主目录中,模块化开发的优势在于子系统的无关性和可扩展性。管理、发布、权限和统计四个模块在运行时不会相互制约和影响,当其中一个模块崩溃时,不会影响其他模块的正常运行;由于内容服务系统的统一管理,开发人员可以较轻松地在原有系统的基础上开发扩展模块以及相应的插件。

2.3 功能展示

图5展示内容服务系统前端和后端的部分实现功能。

图5 内容服务系统前端和后端部分功能展示

3 产品订制系统

产品订制系统镶嵌于内容服务系统中,用户登录被放置于后者首页。产品订制发布流程如图6所示,业务人员将温湿压风等基础气象数据进行录入,系统依据用户订制的产品内容对数据进行重组入库,插入与产品种类一一对应的数据表,并通过公式将基础数据进行计算得出多种指数预报产品,用户登录验证后进行订制产品的展示。

图6 产品订制发布流程

3.1 产品和数据表的对应

系统将基础气象数据分配入库采取预报产品种类和数据表一一对应的方式,每种服务产品只对一张数据表进行读写操作,取代传统的单数据表统一读取的方式。这种结构增强了单一产品设计的灵活性和独立性,开发人员能够依照产品特性设计独立的表结构,新增产品种类的操作不会影响现存的数据结构,而且避免因为新产品增加的字段导致现存数据行需要进行字段数据的补录,便于数据表的维护和管理;同时由于数据分散多张表中,避免了一张表的数据过大的情况,能够一定程度提高数据库的查询速度和存取效率[7];该结构的缺点是需要开发人员在业务新增时对每一种产品进行对应数据表的重新设计。

3.2 分析运算

部分指数预报产品无法直接对表中字段数据进行重组生成以满足客户需求,需要进行一定的计算,以人体舒适度指数和道路湿滑指数为例说明。在查阅国内外人体舒适度理论研究的基础上,发现温湿压风四个气象要素对体表影响最大,引进上海区域气象中心的舒适度预报模型并根据淄博气候特征进行了订正,得到式(1)[8]。

Comf=(t×1.9+34)-0.60×(1-RelHum/100)×

(1)

式中:Comf是人体舒适度;t是气温;RelHum是相对湿度;WS是风速;Comf分为十级,系统通过读取自动气象站的要素数据对自动站所属区域进行人体舒适度的计算并分级。

道路湿滑指数是通过对2011年-2014年泰安交通站逐时观测资料在不同季节和不同天气条件的路面温度、气温、相对湿度和风场数据进行相关性分析,利用多云回归方法对春夏秋冬四季分别建立了道路温度的预报模型,模型如表1所示。其中:RoadTem是路面温度;Tem是气温;RelHum是相对湿度;U和V分别是风速在水平坐标XY轴的数值,通过得到的路面温度值对路面湿滑指数进行分级。

表1 道路温度的预报模型

3.3 订制产品需求

平台上线服务至今订制用户数超过100,提供服务产品种类超过20,通过对产品数据库的已订制产品表进行统计,提取用户订制的产品种类和用户数进行加和计算,将结果使用Acess生出柱状图如图7所示。

图7 各服务产品订制用户数

订制数较多的分别是逐时预报、三小时预报、天气实况、各区县预报和区县三天预报。结果显示各行业用户对短时类预报和区县类预报需求较多。

3.4 功能展示

图8展示了产品订制系统业务和用户操作的部分实现功能。

图8 产品订制系统业务和用户操作部分功能

4 运行效率

平台各图标、气象图片、卫星云图和雷达图的加载采用基于PHP GD库(图像处理扩展类库)的图像压缩技术,压缩图片的冗余数据,保证清晰度的基础上允许一定程度的失真以提高页面的加载速度和用户体验度[9]。平均1.2 MB大小的卫星云图经压缩后体积缩小至400 KB,利用Google Chrome开发者工具测试卫星云图订制服务页面的加载时间如图9所示,方框中的数据是各个卫星云图的页面加载时间,用时最长的也控制在0.3 s之内,避免页面由留白状态慢慢加载的情况,而且动图的色彩和清晰度并未因压缩而明显丢失[10]。

图9 卫星云图动图订制页面的加载时间

卫星云图动图页面加载要叠加25幅云图图片,理论上是全平台加载最耗时的页面[11]。经测试平台其他页面的加载时间均控制在0.3 s之内,保证了高质量的运行效率和用户操作的流畅性。

5 结 语

专业气象服务是公共气象服务的重要组成部分,是为经济社会有关行业和用户提供的用来满足特定行业和用户个性化需求、有专门用途的气象服务,着重提高服务的针对性和满足服务对象具体的需求[12]。本文设计的基于PHPCMS的专业气象服务平台完成了淄博专业气象门户网站、提供公共气象服务并实现了针对行业用户的20余项气象服务产品的订制功能,上线以来运行稳定,为淄博市气象局创收300余万,助力该市专业气象服务的发展。

猜你喜欢

数据表页面气象
气象树
中国气象“风云”
答案
让Word同时拥有横向页和纵向页
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
文章有象
驱动器页面文件大小的总数为何总是07