分类 默认分类 下的文章

探讨虚拟仿真系统中gis地图的实现原理


前言

随着 HTML5 以及 WebGL技术的问世和发展,浏览器中的三维可视化在游戏和动画领域已经成为热门研究方向,与此同时,利用本地计算机的显卡直接在浏览器上实现gis的三维显示已经成为可能。

名词解释

分析需求

  1. 准确、实时显示动态3d效果。
  2. 查询方便。
  3. 响应速度快,加载数据量小,对带宽要求低,对客户端要求低。

实现原理

1.gis地图三维可视化的方法

2.浏览器中实现三维可视化的实现
2.1HTML5 和 WebGL
HTML5是网页标准,WebGL是免插件调用OpenGl ES 2.0的的一种 3D 图形 API 网络标准。使用WebGL可以方便浏览器调用显卡进行JavaScript的渲染。

2.2 WebGL 的绘图流程

2.3三维可视化系统框架

2.4数据读取模块
2.4.1读取过程:
浏览器请求数据,读取服务器数据,传输完成返回结果。

2.4.2网络流量优化
必须有个更好的处理理论和压缩算法支持无损压缩多边形网格上的几何信息,减少带宽和流量的消耗。可以使用人工智能实现数据压缩算法。

2.5数据处理模块
2.5.1将需要渲染的三维模型
(1)按类型分:
地形
岩层
煤层

气体
粉尘

管线
设备

(2)按更新频繁程度分:
不改动
频繁改动

2.5.2需要加载的数据
人员实时轨迹显示、人员历史轨迹回放。
安全监测数据实时显示。
机械设备开停显示。
煤炭运输动态显示。

2.6可视化模块
2.6.1初始化地图

2.6.2初始化图层

2.6.3初始化实体

2.6.4初始化数据

2.6.5执行绘图

2.7查询
场景漫游

2.8资料输出

参考:

基于HTML5的水利枢纽仿真系统的研究与实现
基于 WebGL 的医学图像三维可视化研究
基于THREE.JS和Google Map API的网页交互可视化技术——以等角航线为例
煤矿安全虚拟现实仿真通用引擎的设计与研究
基于虚拟现实技术的三维矿井漫游演示系统开发与应用
基于虚拟现实技术的煤矿事故救援训练系统设计与实现
三维建模在虚拟矿山系统中的应用1 - 中国科技论文在线
煤矿综采工作面多角色虚拟演练平台关键技术研究 - 煤炭科学技术
虚拟现实中物理引擎关键技术的研究与应用
基于OGRE的煤矿安全虚拟现实3D软件设计与实现


发现了一个webgl制作的3D模型


前言

发现html5真不是一般的强,使用webgl进行渲染,居然效果那么好。
参考示例网站:滨海新能源-天津西站光伏发电
如果从前端到后台都用最优化的方案,是不是可以搭建一个综合性的虚拟现实系统。
类似于这样的:无插件纯Web 3D机房,HTML5+WebGL倾力打造

实现

通过HT for Web技术实现的,教程在这里
ht.js的博客
发现ht特别适合进行大型系统的管理控制。
不多说了,上demo

下载页面所需所有资源

如js、css
可以用wget命令,但只能在linux下面执行。
我执行了`wget -E -H -k -K -p http://www.hightopo.com/demo/windTurbines/index.html
`
放在网站的web页面里,就可以访问了。

参考:

基于 HTML5 WebGL 的低碳工业园区监控系统
原理可以参考:基于HTML5的水利枢纽仿真系统的研究与实现
wget命令下载页面里所有资源文件


使用typecho搭建博客


前言

准备搭建博客,看中了简洁小巧的typecho

Typecho 搭建

1.环境安装
安装宝塔 Linux 面板
PHP 版本改为 7.1,点击 “一键安装”
2.创建网站
3.安装 Typecho
复制web文件,浏览器访问 hello.com/install.php,按提示完成 Typecho 配置。
4.管理Typecho
进入后台,管理发布的页面。
可添加logo,修改header.php文件。
插入代码<img src="../../../imgs/yixzm_title_logo.png" width="48" height="48" alt="">

参考:

30分钟搭建 Typecho 个人博客教程
typecho修改站点logo图标


宝塔面板安装教程


简介

宝塔linux面板:一键创建网站、FTP、数据库、SSL;安全管理,计划任务,文件管理,PHP多版本共存及切换;自带LNMP与LAMP。

面板特色功能:

一键配置服务器环境(LAMP/LNMP)
一键安全重启
一键创建管理网站、ftp、数据库
一键配置(定期备份、数据导入、伪静态、301、SSL、子目录、反向代理、切换PHP版本)
一键安装常用PHP扩展(fileinfo、intl、opcache、imap、memcache、apc、redis、ioncube、imagick)
数据库一键导入导出
系统监控(CPU、内存、磁盘IO、网络IO)
防火墙端口放行
SSH开启与关闭及SSH端口更改
禁PING开启或关闭
方便高效的文件管理器(上传、下载、压缩、解压、查看、编辑等等)
计划任务(定期备份、日志切割、shell脚本)
软件管理(一键安装、卸载、版本切换)

准备

vps已购入,我用的是搬瓦工的vps,ubunut14.04。请确保纯净系统安装(支持CentOS、Ubuntu、Debian、Fedora、deepin),不支持32位系统。

安装步骤

宝塔linux面板
使用SSH 连接工具进行ubuntu下的安装:

wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh

初始化宝塔linux面板
按照上面的提示宝塔linux面板的登陆地址http://SERVER_IP:8888,设置一下管理员密码(尽量设置的复杂一些),以后你就用这个地址和密码登陆宝塔linux面板了。

设置

防火墙端口设置,可以将需要的端口放行。
系统时间调整失败。

参考

宝塔Linux面板


解决sql server主进程占用cpu100%的问题


问题

sql server进程占用cpu一直很高,重启服务器也无效。

原因分析

有哪些SQL语句会导致CPU过高? 上网查看了下文章,得出以下结论:

1.编译和重编译

编译是 Sql Server 为指令生成执行计划的过程。Sql Server
要分析指令要做的事情,分析它所要访问的表格结构,也就是生成执行计划的过程。这个过程主要是在做各种计算,所以CPU 使用比较集中的地方。

执行计划生成后会被缓存在 内存中,以便重用。但是不是所有的都可以
被重用。在很多时候,由于数据量发生了变化,或者数据结构发生了变化,同样一句话执行,就要重编译。

2.排序(sort) 和 聚合计算(aggregation)

在查询的时候,经常会做 order by、distinct 这样的操作,也会做 avg、sum、max、min
这样的聚合计算,在数据已经被加载到内存后,就要使用CPU把这些计算做完。所以这些操作的语句CPU 使用量会多一些。

3.表格连接(Join)操作

当语句需要两张表做连接的时候,SQLServer 常常会选择 Nested Loop 或 Hash 算法。算法的完成要运行 CPU,所以
join 有时候也会带来 CPU 使用比较集中的地方。

4.Count(*) 语句执行的过于频繁

特别是对大表 Count() ,因为 Count() 后面如果没有条件,或者条件用不上索引,都会引起 全表扫描的,也会引起 CPU
的大量运算

解决步骤

  1. 使用SQL Server Profiler进行分析。
    开始--程序--Microsoft SQL Server 2005--性能工具--SQL Server Profiler

新建跟踪,20分钟就行。
另存一下跟踪文件。
2.进行优化
开始--程序--Microsoft SQL Server 2005--性能工具--数据库引擎优化顾问
工作负荷:选择跟踪文件
选择需要优化的数据库。
等待很久,查看建议和报告。
应用所有建议
检查一下效果。

总结

一般sql占用cpu过高可能和索引有关,可以重建索引。

参考

1.程序猿是如何解决SQLServer占CPU100%的
2.SQL Server Profiler:使用方法和指标说明