面对对大体量矢量数据ArcGIS的优化方法
大数据量矢量数据的可视化需要解决的问题,就是如何在可接受的短时间内,能展示大数据量的矢量地图。
解决方案一:采用预先渲染的切片进行展示
切片是预先渲染的数据集,也是响应最快的展示方式。目前ArcGIS提供栅格切片和矢量切片两种切片格式。这两种切片格式各有利弊,如下表所示:
|
栅格切片 |
矢量切片 |
|
|
支持ArcGIS Desktop所有符号 |
支持 |
仅部分 |
|
支持高分辨屏幕自适应 |
不支持 |
支持 |
|
支持小比例尺下展示全部数据 |
支持 |
不支持,会自动简化数据。 |
|
支持动态改变样式 |
不支持 |
支持 |
|
生产耗时 |
耗时长 |
耗时短 |
由上述表格,可以得出,只有栅格切片才能支持展示全部数据。因此对于大数据量的矢量数据的展示,建议在小比例尺下预先生产栅格切片,并设置合理的比例尺。
解决方案二:使用查询图层进行动态聚合展示
在把大数据量的矢量数据进行可视化时,当地图缩放到小比例尺时,往往会出现地图上叠加了过多的要素,失去了地图应该表达的实际业务意义。因此,这时可以考虑使用按区域聚合的方法,制作具有实际业务意义的专题地图。具体方法如下:
1、创建用于聚合的区域,可以使用行政区域,或者使用Generate Tessellation工具创建六边形或正方形格网。

2、添加查询图层。通过SQL进行数据的动态聚合。这里可以使用两种SQL思路,第一是使用属性字段进行关联,第二种是使用空间SQL函数。显然第一种方法速度上是更快的,因为运算简单。
以下是示例代码:
SELECT c.objectid, c.Name, c.shape, c.POP2010, fo.Rainfall AS Weighted_Total_Rainfall
FROM COUNTIES_IL c
INNER JOIN
(
SELECT t.fips, (sum(r.rainfall_inch * t.area) / sum(t.area)) AS rainfall
FROM COUNTIES_THSN_INTSCT_IL t
INNER JOIN
(
SELECT site_no, Sum(rainfall_inch) AS rainfall_inch
FROM USGS_RAINFALL_TIMESERIES_IL
GROUP BY site_no
) r
ON r.site_no = t.site_no
GROUP BY t.FIPS
) fo
ON c.fips = fo.fips
解决方案三:使用ArcGIS Pro提供的数据聚合功能
对于存储在SDE或者关系型数据库的点数据,可以之间使用ArcGIS Pro提供的数据聚合功能。该功能使用起来十分简单,ArcGIS Pro 2.4以上版本可用。具体方法如下:
1、使用Enable Feature Binning工具,启用要素类的动态聚合功能。目前支持的数据库类型包括:Db2、PostgreSQL、MS SQL Server、Oracle、SAP HANA。支持的聚合方式有:平行六边形、点状六边形、正方形、大地哈希网格。该工具在聚合可视化的同时,还能对指定的属性字段进行统计,支持的统计类别包括:聚合的点要素个数、平均值、最大最小值、标准差和总和。对于静态的不经常更新的数据,可以对聚合结果进行缓存,这样显示速度会更快。

2、对于聚合结果的缓存,可以使用Manage Feature Bin Cache工具来管理缓存,可指定缓存的最大详细比例尺级别,也可以添加或删除属性字段统计信息。

解决方案四:使用SOI实现服务器端动态聚合
可以把需要被聚合的大体量数据存放在支持高效读取的存储系统中,例如Elasticsearch、Redis或者HBase或PostgreSQL-XL。

面对对大体量矢量数据ArcGIS的优化方法的更多相关文章
- Android中ListView的几种常见的优化方法
Android中的ListView应该算是布局中几种最常用的组件之一了,使用也十分方便,下面将介绍ListView几种比较常见的优化方法: 首先我们给出一个没有任何优化的Listview的Adapte ...
- 提升网速的路由器优化方法(UPnP、QoS、MTU、交换机模式、无线中继)
在上一篇<为什么房间的 Wi-Fi 信号这么差>中,猫哥从微波炉.相对论.人存原理出发,介绍了影响 Wi-Fi 信号强弱的几大因素,接下来猫哥再给大家介绍几种不用升级带宽套餐也能提升网速的 ...
- php-fpm优化方法详解
php-fpm优化方法 php-fpm存在两种方式,一种是直接开启指定数量的php-fpm进程,不再增加或者减少:另一种则是开始时开启一定数量的php-fpm进程,当请求量变大时,动态的增加php-f ...
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决(转载)
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- php-fpm进程数优化方法
原文地址:https://www.douban.com/note/315222037/ 背景最近将Wordpress迁移至阿里云.由于自己的服务器是云服务器,硬盘和内存都比较小,所以内存经常不够使,通 ...
- DevExpress ChartControl大数据加载时有哪些性能优化方法
DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等) ...
- Tomcat从内存、并发、缓存方面优化方法
Tomcat有很多方面,从内存.并发.缓存四个方面介绍优化方法. 一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 cata ...
- 股票投资组合-前进优化方法(Walk forward optimization)
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- Caffe学习系列(8):solver优化方法
上文提到,到目前为止,caffe总共提供了六种优化方法: Stochastic Gradient Descent (type: "SGD"), AdaDelta (type: &q ...
随机推荐
- OI数学汇总
最前面:\(\LaTeX\)可能需要加载一会,请耐心等待o~ 前言 数学在\(\text{OI}\)中十分重要.其中大多都是数论. 什么是数论? \[ 研究整数的理论 --zzq \] 本文包含所有侧 ...
- Computational biological hypothesis generation using "-omics" data
Computational biological hypothesis generation using "-omics" data Forming biological hypo ...
- sharepoint中的Power Shell命令创建、删除文档库列表
ListTemplateType 枚举: 自定义列表-GenericList.文档库-DocumentLibrary.图片库-PictureLibrary.公告-Announcements.联系人-C ...
- 虹软人脸识别SDK在网络摄像头中的实际应用
目前在人脸识别领域中,网络摄像头的使用很普遍,但接入网络摄像头和人脸识别SDK有一定门槛,在此篇中介绍过虹软人脸识别SDK的接入流程,本文着重介绍网络摄像头获取视频流并处理的流程(红色框内),以下内容 ...
- Navicat中文破解版(windows10)
1.下载安装包 链接:https://pan.baidu.com/s/1hP3cD9aTv8nvJfNwjXPdrQ 提取码:xmsu 2.解压安装包 选择.exe 文件然后 安装 选择自己要安装的 ...
- Python学习日记(六) 浅深copy
浅深copy即完全复制一份和部分复制一份 浅深copy在列表数据量较大时不建议使用,比较消耗内存资源 1.赋值运算 l1 = [1,'s',[1,2,3]] l2 = l1 print(id(l1), ...
- UIP和lwip的区别 转载
uIP是专门为8位和16位控制器设计的一个非常小的TCP/IP栈.完全用C编写,因此可移植到各种不同的结构和操作系统上,一个编译过的栈可以在几KB ROM或几百字节RAM中运行.uIP中还包括一个HT ...
- SpringBoot -生成Entity和Dto互转的双向枚举类 -使用注解@Mapper(componentModel = "spring")
1.导入pom文件 ,版本号自定 <!--mapStruct依赖--> <dependency> <groupId>org.mapstruct</groupI ...
- 「NOI2012」迷失游乐园
「NOI2012」迷失游乐园 题目描述 放假了,小Z觉得呆在家里特别无聊,于是决定一个人去游乐园玩. 进入游乐园后,小Z看了看游乐园的地图,发现可以将游乐园抽象成有n个景点.m条道路的无向连通图,且该 ...
- pl/sql developer 中文字段显示乱码 解决办法
一.原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的. 二.查看和修改oracle数据库字符集: select userenv('language') from d ...