基于Hadoop实现气象分析大屏可视化项目

作者简介:Java领域优质创作者、优快云博客专家 、优快云内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企业讲师以及同行交流合作

主要内容:Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能与大数据、单片机开发、物联网设计与开发设计、简历模板、学习资料、面试题库、技术互助、就业指导等

业务范围:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路等

收藏点赞不迷路  关注作者有好处

文末获取源码 

项目编号:BS-BD-023

一,环境介绍

语言环境:Python3.8+Hadoop

数据库:Mysql: mysql5.7

WEB框架:Django

开发工具:IDEA或PyCharm

二,项目简介

信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对气象分析大屏可视化等问题,对气象进行研究分析,然后开发设计出气象分析大屏可视化系统以解决问题。

气象分析大屏可视化系统主要功能模块包括后台首页,系统用户(管理员),模块管理(日照时数,平均相对湿度,年降水量,平均气温,贵阳气象分析,气温对比),采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Hadoop框架、python技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对气象分析大屏可视化系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现气象分析大屏可视化系统和部署运行使用它。

三,系统展示

四,核心代码展示

import json
import csv
import ast
import os
from flask import jsonify
from core.mysql import MysqlPool
from service import service_select

mysqlPool = MysqlPool()


# 帮助方法,合并对象
def obj_update(*config):
    config_temp = {}
    for o in config:
        config_temp.update(o)
    return config_temp


# 权限集合
dict_auth = {}


# 控制器父类
class Controller:
    def __init__(self, config):
        """
        构造函数
        @param {Dictionary} config 配置参数
        """
        # 配置参数
        self.config = config or {}
        # 添加服务
        self.service = service_select(self.config["services"])
        cg = {
            # 选择的模板那路径模板
            "tpl":
                "./index/",
            # 选择的服务
            "services":
                "user",
            # 注册get请求路由
            "get": ["list", "view", "table"],
            # 注册post请求路由
            "post": [],
            # 注册get api路由
            "get_api": [
                "del",
                "get_list",
                "get_obj",
                "count",
                "count_group",
                "sum",
                "sum_group",
                "avg",
                "avg_group",
                "list_group",
                "bar_group",
                "get_hits_list",
                "get_business_order_list"
            ],
            # 注册post api路由
            "post_api": ["add", "del", "set", "import_db", "export_db", "upload"],
            "interact": [],
            "unique": []
        }
        if config:
            if "interact" in config:
                config["interact"].extend(cg["interact"])
            else:
                config["interact"] = cg["interact"]
            if "get" in config:
                config["get"].extend(cg["get"])
            else:
                config["get"] = cg["get"]
            if "post" in config:
                config["post"].extend(cg["post"])
            else:
                config["post"] = cg["post"]
            if "get_api" in config:
                config["get_api"].extend(cg["get_api"])
            else:
                config["get_api"] = cg["get_api"]
            if "post_api" in config:
                config["post_api"].extend(cg["post_api"])
            else:
                config["post_api"] = cg["post_api"]
            if "unique" in config:
                config["unique"].extend(cg["unique"])
            else:
                config["unique"] = cg["unique"]

    # 公共模型,用于在render()为传递模板数据补充
    def model(self, ctx, model):
        m = {}
        m.update(model)
        #
        # model_temp.user = ctx.session.user

        # 获取导航
        service = service_select("nav")
        m["nav_top"] = service.Get_list({"location": "top"})
        m["nav_side"] = service.Get_list({"location": "side"})
        m["nav_foot"] = service.Get_list({"location": "foot"})

        # 获取轮播图
        service = service_select("slides")
        m["list_slides"] = service.Get_list({})

        # 获取公告
        service = service_select("notice")
        m["list_notice"] = service.Get_list({},
                                            {"orderby": "`update_time` desc"})

        # 交互模型接口
        if ("interact" in self.config) and self.config["interact"]:
            m = self.model_interact(ctx, m)

        m["query"] = ctx.query
        m["body"] = ctx.body
        m["auth"] = ctx.auth

        return m

    # 交互对象
    def interact_obj(self, ctx, o):
        interact = self.config["interact"]
        if interact:
            source_table = service_select(
                self.config["services"]).config["table"]
            source_field = source_table + "_id"
            # 评论
            if "comment" in interact:
                service = service_select("c
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_469603589

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值