计算机设计大赛 疫情数据分析与3D可视化 - python 大数据

这篇具有很好参考价值的文章主要介绍了计算机设计大赛 疫情数据分析与3D可视化 - python 大数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0 前言

🔥 优质竞赛项目系列,今天要分享的是

🚩 大数据全国疫情数据分析与3D可视化

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:2分
  • 工作量:3分
  • 创新点:4分

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate文章来源地址https://www.toymoban.com/news/detail-842409.html

1 课题背景

基于大数据的新型冠状病毒疫情三维可视化,借助3D工具实现新冠病毒的可视化分析。

2 实现效果

全球柱状图

计算机设计大赛 疫情数据分析与3D可视化 - python 大数据,python

计算机设计大赛 疫情数据分析与3D可视化 - python 大数据,python

全国和分省的面着色
计算机设计大赛 疫情数据分析与3D可视化 - python 大数据,python
计算机设计大赛 疫情数据分析与3D可视化 - python 大数据,python

计算机设计大赛 疫情数据分析与3D可视化 - python 大数据,python

全国城市热力图

计算机设计大赛 疫情数据分析与3D可视化 - python 大数据,python

计算机设计大赛 疫情数据分析与3D可视化 - python 大数据,python

计算机设计大赛 疫情数据分析与3D可视化 - python 大数据,python

3 设计原理

如何用EarthSDK构建一个简单的三维App

构建步骤
1下载EarthSDK
地址:https://earthsdk.com/v/v1.1.0.zip

2.在本地创建一个文件夹,将EarthSDK放入文件夹内,并新建一个index.html文件。
3.index.html文件写入以下代码:

DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="xbsj-labels" content="Earth起步">meta>
    <title>创建地球title>
    
    <script src="./v1.1.0/XbsjEarth/XbsjEarth.js">script>
    <style>
        html,
        body {
            width: 100%;
            height: 100%;
            margin: 0px;
            padding: 0px;
        }
    style>
head>

<body>
    <div id="earthContainer" style="width: 100%; height: 100%; background: grey">
    div>
    <script>
        var earth;

        function startup() {
            earth = new XE.Earth('earthContainer');

            earth.sceneTree.root = {
                "children": [
                    {
                        "czmObject": {
                            "name": "默认离线影像",
                            "xbsjType": "Imagery",
                            "xbsjImageryProvider": {
                                "createTileMapServiceImageryProvider": {
                                    "url": XE.HTML.cesiumDir + 'Assets/Textures/NaturalEarthII',
                                    "fileExtension": 'jpg',
                                },
                                "type": "createTileMapServiceImageryProvider"
                            }
                        }
                    },
                ]
            };
        }

        // 1 XE.ready()会加载Cesium.js等其他资源,注意ready()返回一个Promise对象。
        XE.ready().then(startup);            
    script>
body>

html>

4.在myApp目录下执行命令hs -p 81,从而建议一个本地的http服务。

5.打开chrome浏览器,输入http://127.0.0.1:81,即可访问刚才创建的三维App。

index.html文件代码讲解

1.head节点下需要引入XbsjEarth.js文件。

<script src="./v1.1.0/XbsjEarth/XbsjEarth.js">script>

XbsjEarth.js内部会自动调用Cesium相关的js和css文件,因此不需要再引入其他Cesium相关的js和css文件。

2.body节点下需要增加一个div

<div id="earthContainer" style="width: 100%; height: 100%; background: grey">

这个div用来承载三维App。

3.创建App

earth = new XE.Earth('earthContainer');

XE.Earth是EarthSDK提供的用来创建三维App的基础类,其参数’earthContainer’实际上是上一个步骤创建的div的id。这样就相当于基于这个div创建了一个三维App。
4 三维场景的基本配置

earth.sceneTree.root = {
    "children": [
        {
            "czmObject": {
                "name": "默认离线影像",
                "xbsjType": "Imagery",
                "xbsjImageryProvider": {
                    "createTileMapServiceImageryProvider": {
                        "url": XE.HTML.cesiumDir + 'Assets/Textures/NaturalEarthII',
                        "fileExtension": 'jpg',
                    },
                    "type": "createTileMapServiceImageryProvider"
                }
            }
        },
    ]
};

通过配置earth.sceneTree.root,来给地球表面贴上一层离线影像。

earth.sceneTree代表整个三维App的场景树,这里可以通过简单的JSON配置来达成。这里面只增加了一个CzmObject类型的对象,它的类型xbsjType是Imagery,即影像。

前两不创建App和三维场景配置的代码是写在startup这个函数里面的。我们可以通过:
XE.ready().then(startup);
来调用startup执行相应地创建操作。
那么为何需要通过XE.ready()来操作呢。因为XE.ready()函数会自动加载Cesium.js和相关的css文件,当加载完成以后才能进行Cesium的相关操作。

XE.ready()的返回值是一个Promise,我们可以通过then回调,等到Promise执行完成以后再执行startup操作。

4 部分代码



    // The Vue build version to load with the `import` command
    // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
    import Vue from 'vue'
    import App from './App'
    import router from './router'
    //import ViewUI from 'view-design';
    //import 'view-design/dist/styles/iview.css';
    
    Vue.config.productionTip = false;
    
    /* eslint-disable no-new */
    // XE.ready()用来加载Cesium.js等相关资源
    
    XE.ready().then(() => {
        // 加载标绘插件
        return XE.HTML.loadJS('../static/XbsjEarth-Plugins/plottingSymbol/plottingSymbol.js');
    }).then(() => {
        // 加载标绘插件
        return XE.HTML.loadJS('../static/XbsjEarth-Plugins/customPrimitive/customPrimitive.js');
    }).then(() => {
        // vtxf g_app赋值,方便调试
        window.g_app = new Vue({
            el: '#app',
            router,
            data() {
                return {
                    currentArea: 'china',
                    mousemoveArea: '',
                    //修改 currentDay 为 currentTime 表示整形,DataServer的所有数据查询接口 具有 ut 参数,表示查询的截至时间,0 表示取最新值
                    currentTime: new Date().getTime(),
                    intervalID: undefined
                }
            },
            components: {
                App
            },
            template: '',
            mounted() {
                this.startGlobeUpdate();
            },
            methods: {
                startGlobeUpdate() {
                    this.currentTime = new Date().getTime();
                    if (!this.intervalID) {
                        var self = this;
                        this.intervalID = setInterval(() => {
                            self.currentTime = new Date().getTime();
    
                            console.log('globe update', self.currentTime);
                        }, 60000);
                    }
                },
                stopGlobeUpdate() {
                    if (this.intervalID) {
                        clearInterval(this.intervalID);
                        this.intervalID = undefined;
                    }
                }
            }
        })
    });


    <!DOCTYPE html>
    <html lang="zh-CN">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <meta name="xbsj-labels" content="Earth起步"></meta>
        <title>创建地球</title>
    
        <!-- 强制提前加载Cesium.js,其中Cesium相关路径可以换成自定义的 -->
        <!-- <script src="../../XbsjCesium/Cesium.js"></script> -->
        <!-- <link rel="stylesheet" href="../../XbsjCesium/Widgets/Widgets.css"> -->
    
        <!-- 0 引入js文件 -->
        <script src="../../XbsjCesium/Cesium.js"></script>
        <link rel="stylesheet" href="../../XbsjCesium/Widgets/widgets.css">
        <script src="../../XbsjEarth/XbsjEarth.js"></script>
        <style>
            html,
            body {
                width: 100%;
                height: 100%;
                margin: 0px;
                padding: 0px;
            }
        </style>
    </head>
    
    <body>
        <div id="earthContainer" style="width: 100%; height: 100%; background: grey">
        </div>
        <script>
            var earth;
            var bgImagery;
    
            function startup() {
                // earth = new XE.Earth('earthContainer');
                earth = new XE.Earth('earthContainer', {
                    // 这里设置Viewer的配置,和new Viewer(container, options)中的options一致
                    homeButton: true,
                    timeline: true,
                });
    
                earth.sceneTree.root = {
                    "children": [
                        {
                            "czmObject": {
                                "name": "默认离线影像",
                                "xbsjType": "Imagery",
                                "xbsjImageryProvider": {
                                    "createTileMapServiceImageryProvider": {
                                        "url": XE.HTML.cesiumDir + 'Assets/Textures/NaturalEarthII',
                                        "fileExtension": 'jpg',
                                    },
                                    "type": "createTileMapServiceImageryProvider"
                                }
                            }
                        },
                    ]
                };
            }
    
            // 1 XE.ready()会加载Cesium.js等其他资源,注意ready()返回一个Promise对象。
            XE.ready().then(startup);            
        </script>
    </body>
    
    </html>



5 最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

到了这里,关于计算机设计大赛 疫情数据分析与3D可视化 - python 大数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 地铁大数据客流分析系统 设计与实现 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 地铁大数据客流分析系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 使用 Flink 完成数据清洗和聚合,使用 Elasticsearch + Kibana 的的技术路线,完成了客流信息

    2024年02月08日
    浏览(46)
  • python汽车大数据分析可视化系统【计算机毕业设计】大数据 (含源码)建议收藏

    [毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总 2023年 - 2024年 最新计算机毕业设计 本科 选题大全 汇总 技术栈: Python语言、Django框架、vue前端框架、MySQL数据库、网络爬虫技术、懂车帝数据、HTML、Echarts可视化大屏 (1)汽车大数据分析可视化大屏 (2)数据后台管

    2024年02月04日
    浏览(55)
  • 计算机设计大赛 深度学习中文汉字识别

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习中文汉字识别 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgr

    2024年02月21日
    浏览(89)
  • 计算机毕业设计 基于大数据的智能家居销量数据分析系统的设计与实现 Java实战项目 附源码+文档+视频讲解

    博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 ——————————

    2024年02月04日
    浏览(56)
  • 计算机设计大赛 深度学习乳腺癌分类

    🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习乳腺癌分类 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgradu

    2024年02月19日
    浏览(62)
  • 计算机毕业设计:基于python热门旅游景点数据爬取分析系统+可视化 +大数据(附源码+文档)✅

    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来,点赞、关注不迷路✌ 毕业设计:2023-2024年计算机毕业设计1000套(建议收藏)

    2024年01月17日
    浏览(56)
  • 计算机毕业设计-大数据展示-管理系统-基于大数据分析的在校学生素质发展监测系统(含有Github代码)

    本项目基于已有的高校学生在校期间各方面的信息,联合教务办、学工办、就业办及研究生处等多部门,开发学生发展数据综合评价与分析系统,实现对学生在校期间学习、发展情况的智能化统计、分析,挖掘其内在的数据关系,为教师和辅导员提供更具针对性的教学对策,

    2023年04月21日
    浏览(51)
  • 计算机设计大赛 疲劳驾驶检测系统 python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https:/

    2024年03月12日
    浏览(60)
  • 计算机毕业设计:基于python招聘数据分析可视化系统+预测算法+爬虫+Flask框架(建议收藏)

    [毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总 2023年 - 2024年 最新计算机毕业设计 本科 选题大全 汇总 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 。 本项目旨在通过使用Python的requests库

    2024年01月23日
    浏览(57)
  • 计算机设计大赛 深度学习的视频多目标跟踪实现

    🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的视频多目标跟踪实现 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 基于初始化帧的跟踪,在视频第一帧中选择你的目标,之后交给跟踪算法去

    2024年03月11日
    浏览(137)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包