基于Python的贵州天气分析可视化系统

摘要: 基于大数据的天气分析可视化系统是一种利用先进的技术手段和庞大的数据资源,对全球范围内的天气情况进行深入研究和分析,并将结果以直观、易懂的方式呈现给用户的系统。通过该系统,我们可以实时获取各地区的温度、湿度、风速等多个指标,并结合历史数据和趋势预测模型,为用户提供准确可靠的天气信息。 这个系统不仅能够满足普通人们对天气预报需求,还可以广泛应用于各行业领域。例如,在农业生产中,农民可以根据该系统提供的精准天气预报来合理安排作物种植时间和灌溉计划;在城市规划中,政府部门可以借助该系统来评估建筑物抗风能力及防汛措施是否符合要求;在旅游行业中,旅行社可以根据该系统提供的景区天气情况来调整旅游线路安排。 此外,基于大数据技术开发出来的天气分析可视化系统还具备高度自动化和智能化特点。它能够自动收集并处理海量实时数据,并通过强大算法进行快速分析与挖掘。同时,在用户界面设计上也注重简洁明了、操作便捷性。无论是专业人士还是普通用户都能轻松使用这个功能强大且易上手的工具。 总之,“基于大数据的天气分析可视化系统”不仅为我们带来了更加精准、全面、方便快捷地获取天气信息与预测未来变化趋势等服务,而且也推动了科学研究与社会发展相结合,在多个领域起到积极促进作用。

本文设计了基于Python的贵州天气网站后台分析可视化系统,本系统的核心功能是通过爬取贵州海量天气数据的原始数据,并通过大数据技术将原始数据存储、计算,并将分析的结果以分类预测列表形式展示。

关键词:天气数据;Flask; Python;可视化

Visualization system of weather analysis in Guizhou based on Python

Abstract: The weather analysis visualization system based on big data is a system that makes use of advanced technical means and huge data resources to conduct in-depth research and analysis of weather conditions around the world, and presents the results to users in an intuitive and understandable way. Through this system, we can obtain multiple indicators such as temperature, humidity and wind speed in various regions in real time, and combine historical data and trend prediction models to provide users with accurate and reliable weather information. This system can not only meet the needs of ordinary people for weather forecasting, but also be widely used in various industries. In agriculture, for example, farmers can use the precise weather forecast provided by the system to schedule crop planting and irrigation plans. In urban planning, government departments can use the system to assess the wind resistance of buildings and flood control measures to meet the requirements; In the tourism industry, travel agencies can adjust travel route arrangements according to the weather conditions of scenic spots provided by the system. In addition, the weather analysis visualization system developed based on big data technology also has the characteristics of high automation and intelligence. It can automatically collect and process massive real-time data, and quickly analyze and mine it through powerful algorithms. At the same time, in the user interface design also pay attention to concise, easy to operate. Both professionals and casual users can easily use this powerful and easy-to-use tool. In short, the "weather analysis visualization system based on big data" not only brings us more accurate, comprehensive, convenient and fast access to weather information and forecast future trends and other services, but also promotes the combination of scientific research and social development, and plays a positive role in many fields.

This paper designs a backstage analysis and visualization system for Guizhou weather website based on Python. The core function of this system is to extract the original data of massive weather data in Guizhou, store and calculate the original data through big data technology, and display the analysis results in the form of classified prediction lists.

Key words: weather data; Flask; Python; visualization

第1章 绪论

1.1课题背景及意义

天气分析在现代社会中发挥着重要的作用,但是传统的方式并不如计算机化分析效率高,而且极其容易出错。在如今的互联网时代下,用户查询天气也由传统的线下转型为互联网,目前市场上流行的天气软件和网站种类繁多,天气数据分类标准也参差不齐。目前天气分析网站数据一般有以下特点: 

一, 数据量增长迅猛:互联网的迅速发展,数据量正在以指数级增长,互联网公司每年都会产生大量的数据。以前没有并行存储计算的时候,这些数据要么丢弃掉,要么进行归档封存。

二,数据的多样性:我们传统意义上的数据可能会存储在数据库中的关系型数据,如用户信息,订单信息等。但目前数据格式上多种多样,特别是应用日志,很多都是以Json格式来进行存储。Json 格式数据中也会有List等等结构。所以数据结构的复杂程度也越来越高。

三,数据来源丰富:以前我们分析的数据基本都是存储在关系型数据库中。如Oracle或者Mysql.现在关系型数据库中的数据已经成为数据来源的一种方式。 更多的数据来源于应用日志,打点数据。网站访问行为等数据。

基于以上三点,传统的关系型数据库已经没有办法来进行处理了。所以就迫切需要一种能够存储海量数据的分布式web系统。Flask便成为首选的技术解决方案。

总而言之,从上述问题可以看出目前互联网天气数据平台信息缺乏整合,用户在冗杂的天气数据中难以筛选出有效的信息。本论文拟初步研究开发出一套完整的基于Python平台的天气平台信息分析系统,本系统主要用于对天气数据和相关信息进行采集,通过大数据平台对数据进行存储和计算,将指标分析和预测结果以分类预测形式给用户查询。这样,用户在使用本平台时只需一次注册操作,即可浏览各平台发布的天气数据,并且可以根据用户的条件进行筛选,可极大的提高查询天气效率,给查询天气的用户都带来一定的便利。

1.2国内外研究现状

1.2.1外研究现状

天气分析系统是一种用于研究和预测天气变化的工具,其在国内外都受到广泛关注和研究。目前,各个国家和地区都在积极开展相关的科学研究,并不断推进天气分析系统的发展。 在国内,我国自主研发了多款先进的天气分析系统,并取得了显著成果。这些系统通过收集、整理和分析大量的观测数据、卫星遥感数据以及模式输出等信息,能够准确地描述当前天气状态并进行未来预报。同时,在应对灾害性天气事件、农业生产管理、航空航海安全等方面也起到了重要作用。 而在国际上,各个国家之间也存在着广泛合作与交流。例如,世界气象组织(WMO)定期组织会议与讨论,促进各成员国之间共享数据与技术经验。此外,在跨境污染物传输、全球变暖趋势等全球性问题上也需要各个国家通力合作来解决。 总体而言,无论是在国内还是在国际上,对于天气分析系统的研究都非常重要且具有挑战性。随着科技水平不断提高和数据获取手段日益完善,相信未来将会有更多创新型的方法和技术被引入到该领域中,并为人们提供更加精准可靠的天气回报与服务。和国外对比,国内的天气分析系统虽然输在了起跑线上,但发展潜力大大高于国外,目前国内知名的天气分析软件就有中国天气网,是国内知名的企业天气管理软件提供商[9],如图1.1所示。

图 1. 1 天气分析系统截图

国内已有的天气分析系统中,市场相对开放,产品质量也参差不齐,大多采取 C/S 结构,虽然这类管理系统对应的行业有很多,但是还没有专门针对企业的特定需求做出具体适应[10]。在此基础上,本系统针对一系列痛点,设计出了一套低成本、功能完善、运行稳定的天气分析系统。

1.3研究的主要内容

本课题主要是解决在天气分析中的各种问题,主要实现销售管理、采购管理、库存管理、天气管理和基本信息管理等。

第1章:首先描述了背景和意义,再从时间线一步步发展,分国内外讲述天气分析系统现状。

第2章:是对天气分析系统中不同角色进行需求分析,并且描述该系统开发所需要用的技术知识和环境要求,以及从不同方面(经济可行性、技术可行性和操作可行性)对照系统进行分析。

第3章:系统总体框架构成和实体图、E-R图。

第4章:从不同模块进行具体分析,进行数据库表设计,列举出该系统的难点和创新点分析。

第5章:根据模块进行具体实现和测试,展示了系统效果图和使用说明。

第6章:是自己做完整个系统的一些总结和感受,以及分析整个系统的不足和优化方式。


第2章 系统需求分析与可行性设计

2.1功能需求分析

天气分析系统中主要有两类用户:管理员、普通人员。每一类用户都有自己的权限,不同用户登陆系统后显示的菜单栏是不同的,显示每一类用户所对应的模块。

2.1.1系统管理员用例

管理员用例主要包括登录、基本信息管理、天气管理、天气分析等模块,如图2.1所示。

表2-1 管理员登陆

描述

描述

用户输入用户名和密码之后,系统判断是管理员角色,登录天气分析系统

基本流程

  1. 管理员进入管理员登陆页面
  2. 输入管理员用户名和密码之后,点击登陆按钮
  3. 系统验证管理员信息正确性
  4. 验证成功后,系统切换至管理员主页面

返回数据

管理员登陆结果集

表2-2基本信息管理

描述

描述

登录成功,进入系统的基本信息管理界面,可以对基本信息管理进行操作

基本流程

  1. 管理员登录成功进入系统
  2. 进入基本信息管理界面
  3. 对基本信息管理进行操作
  4. 确认是否进行操作
  5. 操作成功提示
  6. 显示操作之后的信息

返回数据

基本信息结果集

表2-3 天气数据管理

描述

描述

管理员可以进入天气管理界面,可以对天气信息管理进行操作

基本流程

  1. 管理员登录成功进入系统
  2. 进入天气管理界面
  3. 对天气信息管理进行操作
  4. 确认是否进行操作
  5. 操作成功提示
  6. 显示操作之后的信息

返回数据

天气结果集

2.2 所需技术分析

2.2.1  Django

Django是一个开放源代码Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯网络IP 集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。2019年12月2日,Django 3. 0发布 。

Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。其工作流程主要可划分为以下几步:

1.用manage .py runserver 启动Django服务器时就载入了在同一目录下的settings .py。该文件包含了项目中的配置信息,如前面讲的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Django哪个Python模块应该用作本站的URLConf,默认的是urls .py。

2.当访问url的时候,Django会根据ROOT_URLCONF的设置来装载URLConf。

3.然后按顺序逐个匹配URLConf里的URLpatterns。如果找到则会调用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是request)。

4.最后该view函数负责返回一个HttpResponse对象

2.2.2 爬虫技术

Scrapy是目前较为成熟的爬虫技术框架,一般采用Python语言开发程序,Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

在本设计中,由于需要使用到贵阳天气网站的原始数据,因此需要开发相应的网络爬虫程序完成对原始数据的采集,图2-1为爬取网站的天气数据的原理流程图。

图2-1 贵阳天气爬虫原理流程图

2.2.3 MySQL

MySQL是关系型数据库管理系统(RDBMS),是RDBMS中最流行的一种,且许多操作系统上都能运行 MySQL。安装容易,运营成本低,便于维护。与其他大型数据库相比,对初学者更加友好,容易学习。与此同时,MySQL也是网络应用的最佳RDBMS之一[14]。

2.3系统可行性

在深入了解一个企业的运行状况和管理方式之后,为了更好的对企业运作进行分析。从经济可行性、技术可行性和操作可行性三个角度对天气分析系统进行了探讨。

2.3.1经济可行性分析

天气分析系统主要目的是为了使公司能够很好地管理库存,确保销售利润最大化,降低公司成本,及时知晓公司的天气状况。目前,有些企业还在人工管理阶段,每天都要用纸笔,但这样做费时、费人力,还会造成其它问题,比如,会造成资料遗失或错误记录。因此,要真正达到规模效益,节省企业成本,企业就需要提高信息化管理水平,这样,才能提高核心竞争力[11],这时,天气分析系统就可以为企业提供很好的帮助,来保证企业管理的效率,同时,为企业争取更高的利润。并且自动化的一个盈利分析也让公司更清楚、更直观地了解目前阶段企业的发展水平,从而提高公司的盈利能力[12]

2.3.2技术可行性分析

本系统应用的开发使用了MySQL作为天气分析系统相关数据的存储中心。采用的语言是稳定的Python语言,整体开发架构是:后端使用的是:Django框架,Django目前被许多大公司使用,是一个可靠的技术框架,前端使用的echarts组件等,操作流畅、运行速度快。因此,该系统在技术上是足够可行的。

2.3.3操作可行性分析

  1. 此系统的界面设计简洁明了、美观大方,各个组件操作起来比较流畅,对操作人员来说,页面的提示通俗易懂。
  2. 此系统,对有计算机经验或者经过简单培训的操作人员来说,易于使用。
  3. 对于操作人员十分友好,只需查看操作手册或者程序说明便可灵活使用,同时,也能满足不同操作人员的需求。


第3章 系统功能总体设计

3.1设计目标

本管理系统是为了深入研究企业是怎么样来管理其库存、销售和采购等业务模块,并且,通过一个全面的业务流程的生命周期管理,改善对库存、销售和采购业务模块的控制以及相应数据分析的准确性。

    1. 天气数据爬虫设计

这个项目我们的主要目的是爬取中国海洋网的天气数据信息,包括天气

位、企业名称和企业描述和规模等具体详情信息,下面描述本文爬虫工程主要设

计步骤。

(1)创建项目

打开一个终端输入:scrapy startproiect python_ zgc _data,Scrapy框架将会在指定目录下生成整个工程框架。系统生成的目录如下图3-2所示:

图3-2爬虫框架目录结构

(2)修改setting文件

如图3-1所示为修改后的setting文件主要内容,本设计主要修改三项内容,

第一个是不遵循机器人协议,第二个是下载间隙,由于下面的程序要下载多个页

面,所以需要给一个间隙(不给也可以,只是很容易被侦测到),第三个是请求

头,添加一个User-Agent。

表3-1 爬虫setting文件主要配置

BOT_NAME = 'python_city_data'

SPIDER_MODULES = ['python_city_data.spiders']
NEWSPIDER_MODULE = 'python_city_data.spiders'
# Crawl responsibly by identifying yourself (and your website) on the user-agent
#USER_AGENT = 'python_city_data (+http://www.yourdomain.com)'
#换伪造请求头
USER_AGENT = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
# Obey robots.txt rules
ROBOTSTXT_OBEY = False

(3)确认要提取的数据,item 项

item定义你要提取的内容(定义数据结构),比如我提取的内容为天气数据的所在城市和企业天气详情,于是需要在items类中新建对应的实体类,并需要设置相应的字段取出对应的数据。Field 方法实际上的做法是创建一个字典,给字典添加一个建,暂时不赋值,等待提取数据后再赋值。

(4)开发爬虫程序,访问下载网页,使用Xpath语法提取内容

    1. 3.6 预测程序设计

本文在设计天气分类预测模型中选用的是Pandas软件中的神经网络工具包,在确定好神经网络结构以后,将数据输入到模型训练后就可以对天气分类进行预测。如图5-7所示是本文针对天气分类预测模型设计的卷积函数神经网络流程。本文在前文分析了特征的提取过程,并经多次调整参数和改变原始训练样本实验后,本文最终确定了输入层,隐含层,输出层个数分别为5,3,1。最后输出层设置为单个值,即为预测角度值的输出如图3-3所示

图3-3 CNN算法过程

本文中如需分析目前天气网站上的各行各业的天气岗位总量情况,首先需要定义一个任务中的核心逻辑,需要在代码中对每条天气数据的里程字段过滤,下面为分析任务的主要逻辑代码。

表3-2 主要模型类

# 创建模型

class RolesUsers(db.Model):

    __tablename__ = 'roles_users'

    id = db.Column(db.Integer, primary_key=True)

    user_id = db.Column('user_id', db.Integer, db.ForeignKey('user.id'))

    role_id = db.Column('role_id', db.Integer, db.ForeignKey('role.id'))

    def __repr__(self):

        return "<{} 用户 {} 权限>".format(self.user_id,self.role_id)

class Role(db.Model, RoleMixin):

    __tablename__ = 'role'

    id = db.Column(db.Integer(), primary_key=True)

    name = db.Column(db.String(80), unique=True)

    description = db.Column(db.String(255))

    def __repr__(self):

        return "<{} 权限>".format(self.name)

class User(db.Model, UserMixin):

    __tablename__ = 'user'

    id = db.Column(db.Integer, unique=True, primary_key=True)

    username  = db.Column(db.String(255))

    email = db.Column(db.String(255), unique=True)

    password = db.Column(db.String(255))

    active = db.Column(db.Boolean())

    confirmed_at = db.Column(db.DateTime())

    roles = db.relationship('Role', secondary='roles_users',

                         backref=db.backref('user', lazy='dynamic'))

    def __repr__(self):

        return "<{} 用户>".format(self.username)

class XinXi(db.Model):

    __tablename__ = 'xinxi'

    id = db.Column(db.Integer, unique=True, primary_key=True)

    Date = db.Column(db.DateTime())

    WD = db.Column(db.Float)

    WSPD = db.Column(db.Float)

    GST = db.Column(db.Float)

    WVHT = db.Column(db.Float)

    DPD = db.Column(db.Float)

    APD = db.Column(db.Float)

    BAR = db.Column(db.Float)

    ATMP = db.Column(db.Float)

    WTMP = db.Column(db.Float)

    地区 = db.Column(db.String(255))

    def __repr__(self):

        return "<{} 数据>".format(self.Date)

class Item(db.Model):

    __tablename__ = 'Item'

    id = db.Column(db.Integer, unique=True, primary_key=True)

    Date = db.Column(db.DateTime())

    WD = db.Column(db.Float)

    WSPD = db.Column(db.Float)

    GST = db.Column(db.Float)

    WVHT = db.Column(db.Float)

    DPD = db.Column(db.Float)

    APD = db.Column(db.Float)

    BAR = db.Column(db.Float)

    ATMP = db.Column(db.Float)

    WTMP = db.Column(db.Float)

    地区 = db.Column(db.String(255))

    def __repr__(self):

        return "<{} 历史数据>".format(self.Date)

if __name__ == '__main__':

    # db.drop_all()#清除表

    db.create_all()#创建表

    # 设置flask-security

    user_datastore = SQLAlchemySessionUserDatastore(db.session, User, Role)

    security = Security(app, user_datastore)

    user_datastore.create_role(name='admin',description='管理员')#注册管理员权限

    user_datastore.create_role(name='User', description='普通用户')#注册用户权限

    db.session.commit()

    new_user = user_datastore.create_user(username='admin', password='root123456',email='123@qq.com',active=True)#注册管理员

    normal_role = user_datastore.find_role('admin')

    db.session.add(new_user)

    user_datastore.add_role_to_user(new_user, normal_role)

    db.session.commit()

再编写完Mapper任务和reducer任务的业务代码后,还需要定义一个主类用于管理上述的作业,CNN算法框架会将上述的Mapper和Reducer任务拆分为一个个的car,并提交到yarn上管理执行。下表3-4为天气数据所属行业CNN算法作业管理类的主要逻辑。

3-4 所属海洋CNN算法

df = pandas.read_csv("46014h2001day-mean.csv")

print(df)

for resu in df.values.tolist():

    models.db.session.add(

        models.XinXi(

            Date = datetime.datetime.strptime(resu[0],'%Y-%m-%d'),

            WD = resu[1],

            WSPD = resu[2],

            GST = resu[3],

            WVHT = resu[4],

            DPD = resu[5],

            APD = resu[6],

            BAR = resu[7],

            ATMP = resu[8],

            WTMP = resu[9],

            天气地区=random.choice(['贵阳', '黔西北', '黔东南', '黔东北'])

        )

    )

    models.db.session.commit()

df = pandas.read_csv("46014h2003-2004day-mean.csv")

print(df)

for resu in df.values.tolist():

    models.db.session.add(

        models.XinXi(

            Date = datetime.datetime.strptime(resu[0],'%Y-%m-%d'),

            WD = resu[1],

            WSPD = resu[2],

            GST = resu[3],

            WVHT = resu[4],

            DPD = resu[5],

            APD = resu[6],

            BAR = resu[7],

            ATMP = resu[8],

            WTMP = resu[9],

           天气地区=random.choice(['贵阳', '黔西北', '黔东南', '黔东北'])

        )

    )

    models.db.session.commit()

import random

df = pandas.read_csv("46014h2001.csv")

print(df)

for resu in df.values.tolist():

    models.db.session.add(

        models.Item(

            Date = datetime.datetime.strptime(resu[0],'%Y-%m-%d %H:%M:%S'),

            WD = resu[1],

            WSPD = resu[2],

            GST = resu[3],

            WVHT = resu[4],

            DPD = resu[5],

            APD = resu[6],

            BAR = resu[7],

            ATMP = resu[8],

            WTMP = resu[9],

           天气地区=random.choice(['贵阳', '黔西北', '黔东南', '黔东北'])

        )

    )

    models.db.session.commit()

为了验证径向基神经网络的预测效果的好坏,本文另外建立了基于卷积神经网络的天气分类预测模型,并对预测结果进行了对比。卷积神经网络(Convolutional Neural Networks,CNN)是深度学习应用于分类识别和回归任务的经典模型[53]。如图5-9所示,是本文设计的基于CNN网络的天气分类预测模型,该模型由两层卷积层,两层池化层和三层全连接层和一个输出层组成,其中卷积层的卷积核大小2×2,卷积核数为64个;全连接层共分为三层,第一层为1024个神经元,第二层为512个神经元,输出层为一个神经元,是关节角度的预测值。本文采用Adam优化器对网络进行优化,并设置学习速率为

3-4 分类预测模型网络结构图

损失函数为均方误差函数:

,其中y为膝关节角度的真实数值,output为卷积神经网络学习后的预测值,图5-10是上述卷积神经网络在训练100000次迭代内的损失图,由图可以看出在前60000次迭代的网络损失变化幅度较大,在100000次迭代后网络的损失接近在5°以内。

 

3-5 卷积神经网络迭代损失图

第4章 系统详细分析与设计

基于Django天气分析可视化分析平台的基本业务功能是采用Django框架实现的, 在本文的第四章将详细介绍后台系统的实现部分,包括详细阐述了系统功能模块的具体实现,并展示说明了部分模块的功能界面。

4.1 开发环境与配置

4.1.1 开发环境

本系统设计基于B/S架构,其中服务器包括应用服务器和数据库服务器。这种架构模式,使用户只需要在有网络的地方即可通过浏览器访问,而不需要再安装天气端软件,交互性更强。基于Django天气分析可视化分析平台使用IDEA集成开发工具。而系统运行配置时,选择应用本地来部署Web服务器来保障平台的正常运行,本地 是Apache的核心项目,其技术先进、性能稳定并且开源免费,因而被普遍应用。本系统的主要开发环境以及开发工具如表4-1所示。

表4-1 系统开发环境和工具

项目

系统环境及版本

硬件环境

Windows 64 位操作系统

Python

Python2.6

数据库

MySql

开发工具

Pycharm

项目架构

Django

4.1.2 框架配置介绍 

本系统使用集成开发工具Pycharm进行开发,由于 IDEA 中本地配置详细资料有很多,不做详细赘述, 本文主要介绍 Django框架及Shiro 框架的配置。首先需要在项目中中引入各框架以及数据库连接等所需要工具包。

图4-1 后台的配置文件

4.2 数据库的设计

数据库设计是系统设计中特别重要的一部分。数据库的好坏决定着整个系统的好坏,并且,在之后对数据库的系统维护、更新等功能中,数据库的设计对整个程序有着很大的影响。

根据功能模块的划分结果可知,本系统的用户由于使用账号和密码进行登录,因此在本系统中需要分别进行数据记录。首先根据如下6个数据实体:用户、天气分析可视化等数据库表。

用户的属性包括用户编号、用户名、密码和性别、注册账号的时间。用户实体属性图如图4-2所示:

图4-2 用户实体属性图

根据以上分析,各个实体之间有一定的关系,使实体与实体可以联系起来,建立成整个系统的逻辑结构,本系统中,普通用户通过对天气分析可视化的管理,使天气分析可视化与用户实体存在对应关系。

4.3 系统功能模块实现

4.3.1登录认证

用户登录时需要在登录界面输入用户名、密码进行身份认证,要求必须是表单认证、校验。具体流程如时序图如4-2所示。

图4-3登录界面图

图4-2登录认证流程图

4.3.2协议字段解析功能

天气数据管理功能是对天气数据进行查询,删除等操作的功能集合,天气数据管理功能使用到了天气数据表t_tianqi,天气数据表t_tianqi的主要数据字段,结构,类型及描述如下表4-2所示。

表4-2 天气数据表字段

字段名称

数据类型

是否允许为空

描述

id

int

不允许

自增主键,唯一ID

cityname

String

允许

所在地区名称

company

String

允许

最低温度

company_size

String

允许

最高温度

Fengxiang

String

允许

白天风向

experience

String

允许

夜晚风向

industry

String

允许

采集年份

recruiter

String

允许

风向等级

salary

String

允许

范围

天气分析可视化分析系统的天气分析可视化协议解析功能界面如下图所4-4所示:

图4-4 贵阳天气数据管理

天气分析可视化协议解析

功能流程功能图如图4-5所示:

图4-5 天气分析可视化协议解析功能流程图

 通过“天气分析可视化分析”按钮,进入天气分析可视化分析界面,用户可以看到天气分析可视化列表,例如:天气分析可视化名称、所属类别、长度、天气分析可视化目的地、天气分析可视化源、天气分析可视化时间的详细信息。通过此界面,用户可以对天气分析可视化进行删除管理操作。

4.3.3天气分析可视化大数据看板功能

数据可视化模块就是对我们采集和计算的分析结果的展示。数据分析模块的

数据进行一个精美而又直接的展示,我们采用大屏的方式进行展示,展示数据结

构分明,背景具有科技感,把相对复杂的、抽象的数据通过可视的、交互的方式

进行展示,从而形象直观地表达数据蕴含的信息和规律。

图4-6 天气分析可视化分析界面

天气分析可视化大数据分析可视化开发的难点并不在于图表类型的多样化,而在于如何能在简单的一页之内让用户读懂天气分析可视化数据之间的层次与关联,这就关系到布局、色彩、图表、动效的综合运用。如排版布局应服务于业务,避免为展示而展示;配色一般以深色调为主,注重整体背景和单个视觉元素背景的一致性。本文使用Echarts中地图、线条等组件,将分析结果较为直观的展示给平台用户,使得用户能够简便的获取有效的信息。

4.4 本章小结

本章主要分析了基于Django的天气分析可视化分析系统开发过程中使用到的技术和具体的实现步骤,这其中主要介绍了基于Django框架的天气分析可视化分析系统的搭建环境和开发步骤,包括程序中的一些数据库配置等。前端页面采用的是html实现。


第5章 系统功能实现与运行测试

5.1后台登录页面

5.1.1功能概要

该功能是用于用户登陆天气分析系统,当用户输入用户名和密码之后,经过数据校验,成功则进入主页面。

5.1.2详细描述

该后台登录功能,通过向后台登录接口发送请求,如图5.1是后台登录界面。登陆成功,则提示登陆成功,并跳转到天气管理信息界面,如图5.2所示。

图 5. 1 后台登录页面截图

图 5. 2 登录成功页面

5.2信息管理

5.2.1天气信息管理

天气信息管理功能:实现天气信息的相关操作。如图5.3是天气管理详情界面,进入天气管理界面,加载完毕则显示所有的天气信息。

添加天气信息:进行添加操作后,会弹出一个dialog让用户输入天气信息。表单带*号的需要验证输入合法性,如图5.4所示。

图 5. 3 天气信息管理

5.2.2 天气数据可视化看板功能

数据分类预测模块就是对我们采集和计算的分析结果的展示。数据分析模块的

数据进行一个精美而又直接的展示,我们采用大屏的方式进行展示,展示数据结

构分明,背景具有科技感,把相对复杂的、抽象的数据通过可视的、交互的方式

进行展示,从而形象直观地表达数据蕴含的信息和规律。天气数据大数据看板界面如图5-4所示。

图5-7贵阳天气大数据分析平台界面


第6章 总结与展望

6.1 系统开发遇到的问题 

由于基于Python天气数据分析平台是由本人独立开发,因此在系统设计和业务逻辑方面更多地借鉴了目前市场上较为流行的框架和技术点,包括大数据技术,很多是不熟悉没接触过的,在开发过程中不断学习新知识。另外由于本人的时间和精力的原因,在系统开发过程中有很多地方可能并不能够完全尽如人意,还有许多需要补充的功能与模块。

6.2展望

由于时间有限,天气分析系统在满足基本功能的同时,也存在着一些不足。如功能和安全性不够完善,页面的布局与市场上的一些信息管理系统还是有很大的差距等。因此,在系统需求分析与系统设计初期,必须进行更多的研究,对气象局的具体经营状况进行更深入的探讨。这样,才能开发出一个真正能满足企业业务需求的天气分析系统。存在的不足和后续需要改进的地方如下几个方面:

1)确保数据真实性和美化界面,在整个系统 UI 界面的样式和配色应该进行更详细的设计的美化,改善用户体验。

2)在登陆时采用更安全的加密方法,确保系统的安全。

当我的毕业论文接近尾声时,我意识到我很快就会进入社会。这次经历让我体会到如何自己发现和解决问题,以及会去思考更优解。在未来,我会朝自己选择的方向不断努力。

参考文献

  1. 于瑶瑶. 天气分析系统的设计与实现[D]. 济南: 山东大学, 2019.
  2. 刘文博. 天气分析系统的设计与实现[D]. 吉林大学, 2016.
  3. 于隆. 中小天气分析系统的设计与实现[D]. 大连理工大学, 2015
  4. Liu N, Chen L J, University Q N. Management System Design of Stocking, Selling and Storing of Enterprises[J]. Journal of Hebei North University, 2016.146-152.
  5. Bose Indranil, Pal Raktim, Ye Alex. ERP and SCM systems integration:The case of a valve manufacturer in China[J]. Information & Management. 2008, 45(4):233~241.
  6. 陈京民. 管理信息系统[M]. 北京:清华大学出版社, 2006.136~137.
  7. 陈晓. 制造企业ERP深化应用研究[D]. 华北电力大学, 2014:6~8.
  8. 廖芹等. 工业企业库存管理信息系统的设计和研究[J]. 华南理工大学学报,2019(5): 254~260.
  9. 张瑞君, 孙玥璠, 石保俊. 中国企业 ERP 投资关键信息披露问题研究[J]. 会计研究, 2018, 02:55-62+96.
  10. 刘华敏,李玉. 天气分析系统的设计与实现[J]. 电脑知识与技术, 2018,  (11) :34~37.
  11. 徐鑫, 何红军, 包玉玲. 供应链中库存管理的研究[J]. 自然科学,2005, 3(6): 46~52.
  12. 邓笑. 基于Spring Boot的校园轻博客系统的设计与实现[D].华中科技大学, 2018.
  13. 王松. Spring Boot+Vue全栈开发实战[M]. 北京:清华大学出版社, 2018.12.
  14. 冰河. MySQL技术大全: 开发优化与运维实战[M]. 北京:机械工业出版社, 2020.11.
  15. 苏阳. 企业在线进销存管理信息系统的设计与实现[D]. 北京工业大学, 2016.
  16. 王崇娴. 中小型天气分析信息系统的设计与实现[D]. 江西财经大学, 2017.12.
  17. James A O'Brien. Managing Information Technology in the E-Business Enterprise[M]. Mcgraw -Hill, 2009, 77-89.

  • 28
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值