数据可视化学习笔记一——概述

工作准备

工作内容

岗位:web前端开发工程师

岗位职责:1参与大数据可视化平台研发;2参与大数据查询系统的研发;3能独立完成网站页面开发;4负责使用美观的组件将数据展示到前端;5偶尔参与后端,根据数据编写相应的接口;

任职要求:1大学本科统招,计算机、GIS(地理信息系统)等相关专业;2精通web前端、参与vue完整项目,拥有vue项目经验;3熟悉一门后端语言;4熟悉SQL语句。熟练使用关系型数据库以及空间数据库(如postgreSQL、postGIS);5熟悉ES6,会echarts、mapbox;6大数据分析和可视化系统开发工作经验;

加分项:1有一定的大数据处理经验或相关智慧城市方向项目经验;2有一定的互联网数据爬虫经验;3有一定webGL开发能力,了解three.js等框架;4了解Spark数据存储、查询及Rdd操作;5具备大数据分析挖掘和数据建模能力,了解通用机器学习算法;6熟练使用ArcGIS、QGis等GIS软件;

补充说明

地理信息数字化技术

GIS

(Geographic Information System)又称地理信息系统 。结合地理学与地图学,是用于输入、存储、查询、分析和显示地理数据的计算机系统,可以分为五部分:人员、数据、硬件、软件、过程。与全球定位系统GPS、遥感RS合称3S。

在这基础上,还发展处数字地球、数字城市。

举个例子,高德地图就是一个GIS,车上的导航系统也是一个GIS。

GIS是复合型学科,包括数字化技术(输入地理数据,将数据转换为数字化形式的技术)、存储技术、空间分析技术、环境预测与模拟技术、可视化技术(用数字、图形、表格等形式显示,表达地理信息的技术)。这些技术的作用就是采集、存储、处理、分析、检索和显示空间数据。

开源的GIS软件:QGis;

给我的感觉就是存地理数据的数据库系统。最核心的三个点:收集数据(难点在于将地理数据转化为数字化数据)、存储数据(难点在于使存储的数据可编程)、可视化(将数据显示出来,美观、性能要基本达标);

QGis

由Gary Sherman于2002年开始开发,并于2004年成为开源地理空间基金会的一个孵化项目,版本1.0于2009年1月发布。

以C++写成,GUI使用Qt库。推荐安装PostGIS、PostgreSQL。可以导入和显示PostGIS数据。

没用过,之后深入。

PostGIS

是一个开源程序,为对象-关系型数据库PostgreSQL提供了存储空间地理数据的支持,使PostgreSQL成为了一个空间数据库,能够进行空间数据管理、数量测试与几何拓扑分析。

PostGIS是一个重要的GIS基础软件,因为目前它是为数不多的开源空间数据库存储方案之一。有许多著名的GIS软件都使用PostGIS作为数据库后端。

作为GIS软件的数据库后端,提供空间地理数据。

PostgreSQL

是开源的对象-关系数据库数据库管理系统。和其他数据库系统类似,使用SQL语言来执行资料的查询。不过SQL数据以表格形式存储数据,不便于在面向对象编程中使用,PostgreSQL使用对象关系映射来解决这一问题。

给我的感觉就像SSM框架中的mybatis。网站后端一般是通过mysql存储数据,用mybatis进行对象关系映射,然后操作对象使用数据。这里的PostgreSQL就像mybatis,PostGIS就像mysql。

可视化技术

echarts

是一个使用JavaScript实现的开源可视化库。通过下载echarts.min.js用script标签引入来使用。浏览器端图表可以选择canvas或SVG渲染。

echarts生成图表的配置:创建HTML页面、为echarts准备一个具备高宽的DOM容器、使用json格式配置。

我习惯用菜鸟教程来简单了解这些库,它的官网教程在这

一个可视化的JavaScript库,主要用于图表显示。本质是canvas,可以参考源代码造轮子。

mapbox

是为许多公司的网站提供订制在线地图的大型供应商。自2010年起,该公司快速拓展了订制地图的市场地位。官网在这里

mapbox gl js 是一个JavaScript库,使用webGL,以vector tiles和mapbox styles为来源,将它们渲染成互动式地图。

一个专用于地图显示的JavaScript库,主要用于显示地图。本质是webGL

three.js

一个跨浏览器的脚本,使用JavaScript函数库或API在浏览器中创建和展示动画的三维计算机图形。three.js使用webGL,源代码托管在GitHub。官网在这里

本质是webGL。可以参考造轮子。

Vue.js Examples

example.vue:vue框架中的例子。

数据处理技术

Spark数据存储、查询及Rdd操作

参考博客:初识Spark弹性分布式数据集(RDD)

Spark是一个开源的强大的分布式查询和处理引擎.他提供了MapReduce 的灵活性和可扩展性,但速度明显更高:当数据存储在内存中时,他比Hadoop快100倍,访问磁盘时高达10倍。

Spark允许用户读取、转换、聚合数据,还可以轻松地训练和部署复杂地统计模型.

pandas处理千万级以下的数据还是很快的,差不得一个G的数据量

如果追求更好的体验,就要用spark,pyspark可以满足需求,类似于sql语句的操作,主要应用的数据类型还是dataframe,处理方法和pandas类似,因为是集群处理,所以速度快,数据存储和读取都存在hadoop实现的hdfs上,主要文件形式,是csv文件

弹性分布式数据集(RDD)

RDD是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。
RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。

RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作之后的结果,都可以存放到内存中,下一个操作可以直接从内存中输入,省去了MapReduce大量的磁盘IO操作。这对于迭代运算比较常见的机器学习算法, 交互式数据挖掘来说,效率提升比较大。

DataFrame也是分布式的数据集,但是DataFrame更像是一个传统的数据库里面的表,他除了数据之外还能够知道更多的信息,比如说列名、列值和列的属性,这一点就和hive很类似了,而且他也能够支持一些复杂的数据格式。从API应用的角度来说DataFrame提供的API他的层次更高,比RDD编程还要方便,学习的门槛更低。下面举个例子进行对比:

互联网数据爬虫

参考文章:网络爬虫

网络爬虫,又称网络机器人。是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

网页抓取策略可以分为深度优先、广度优先、最佳优先三种。深度优先在很多情况下会导致爬虫的trapped问题,常见的是广度优先和最佳优先。

网页分析算法可以归纳为基于网络拓扑、基于网页内容和基于用户访问行为三种类型。

爬虫的系统框架中,主过程由控制器、解析器、资源库三部分组成。控制器是网络爬虫的中央控制器,负责根据系统传过来的URL链接,分配线程给爬虫。解析器是网络爬虫的主要部分,负责下载网页,过滤抽象网页中的数据。资源库是存储网页中下载下来的数据记录的容器,如mysql。

数据分析技术

数据挖掘

参考博文:浅谈对数学建模,数据挖掘,数据分析和数据模型的区别

数据建模:数学的一个分支,根据实际问题来建立数学模型,对数学模型求解,根据结果去解决实际问题。用数学符号、公式等对实际课题本质属性进行刻画。需要灵活巧妙利用各种数学知识。

数据挖掘:从大量的数据中通过算法搜索隐藏于其中信息的过程。通过统计、在线分析处理、情报检索、机器学习、专家系统等方法实现。有名的案例是“尿布与啤酒”的故事。目前(2019年7月)最流行的挖掘算法有最大邻近值、决策树、paperank算法等;

数据分析:对数据结构的透视,是对挖掘数据的价值提升。

数据模型:对数据特征的抽象。

目前随着算法和计算机技术的不断提高,数据挖掘利用AI和统计分析的进步,将这两门学科致力于模式发现和预测。

通用机器学习算法

参考博文:学会这10种机器学习算法,你才算入门(附教程) - 知乎

机器学习十大算法总览(含Python3.X和R语言代码)

线性回归算法、决策树、朴素贝叶斯、随机森林、降维算法。

学习说明

重点放在数据可视化部分。学习的技术栈有:vue.js(example.vue)、echarts、mapbox、three.js。本质是学习JavaScript,框架主要是为了提高效率,可以参照框架学习里面精华部分。参照echarts来学习canvas,参照three.js学习webGL。水平提高后,提高视觉体验,造轮子。

辅助了解QGis、PostGIS、PostgreSQL。还有后端部分。达到使用层次。

更新地址:GitHub

更多内容请关注:CSDN、GitHub、掘金

猜你喜欢

转载自blog.csdn.net/weixin_42875245/article/details/107351459
今日推荐