全国高分辨率土地利用数据服务 土地利用数据服务 土地覆盖数据服务 坡度数据服务 土壤侵蚀数据服务 全国各省市DEM数据服务 耕地资源空间分布数据服务 草地资源空间分布数据服务 林地资源空间分布数据服务 水域资源空间分布数据服务 建设用地空间分布数据服务 地形、地貌、土壤数据服务 分坡度耕地数据服务 全国大宗农作物种植范围空间分布数据服务
多种卫星遥感数据反演植被覆盖度数据服务 地表反照率数据服务 比辐射率数据服务 地表温度数据服务 地表蒸腾与蒸散数据服务 归一化植被指数数据服务 叶面积指数数据服务 净初级生产力数据服务 净生态系统生产力数据服务 生态系统总初级生产力数据服务 生态系统类型分布数据服务 土壤类型质地养分数据服务 生态系统空间分布数据服务 增强型植被指数数据服务
多年平均气温空间分布数据服务 多年平均降水量空间分布数据服务 湿润指数数据服务 大于0℃积温空间分布数据服务 光合有效辐射分量数据服务 显热/潜热信息数据服务 波文比信息数据服务 地表净辐射通量数据服务 光合有效辐射数据服务 温度带分区数据服务 山区小气候因子精细数据服务
全国夜间灯光指数数据服务 全国GDP公里格网数据服务 全国建筑物总面积公里格网数据服务 全国人口密度数据服务 全国县级医院分布数据服务 人口调查空间分布数据服务 收入统计空间分布数据服务 矿山面积统计及分布数据服务 载畜量及空间分布数据服务 农作物种植面积统计数据服务 农田分类面积统计数据服务 农作物长势遥感监测数据服务 医疗资源统计数据服务 教育资源统计数据服务 行政辖区信息数据服务
Landsat 8 高分二号 高分一号 SPOT-6卫星影像 法国Pleiades高分卫星 资源三号卫星 风云3号 中巴资源卫星 NOAA/AVHRR MODIS Landsat TM 环境小卫星 Landsat MSS 天绘一号卫星影像
一、SDE空间索引简介
ArcSDE的空间查询采用网格索引机制,因此索引网格单元大小的设置直接影响数据的响应和系统的性能。一般导入图层到SDE数据库时,其都会默认地自动建立好网格索引,该索引已基于图层的空间参考、图形的类型等相关信息,并进行了优化。
ArcSDE最多提供三级索引,对于一般的数据我们只需建立一级网格索引即可,比如点状数据、或者是数据量不大而且单个图形所占用的最大范围与最小范围相差比例不是很大的情况。在SDE空间数据库中,第二级、第三级空间网格大小的值一般都是0,我们可以通过更改第二级、第三级网格大小的值来达到建立二、三级索引的目的。原则是后一级别空间网格的大小应是前一级网格大小的三倍以上,只有这样建立的索引才会有意义。
二、空间网格大小设置分析
我们知道图层数据在SDE数据库中是分别存储在B表、F表,相应的图层空间网格索引则存储在S表,里面以Feature ID序列存储着构成这个空间对象的切割部分。如果一个几何对象被空间网格分割成三部分,则在S表中将会存在三条Feature ID号相同的记录。
现在问题的关键在于到底应该用多大的线性比例来切割存储几何图形才能达到即节省存储空间,又以较快的速度显示出来呢?下面分两种情进行分析:
如果线性比例过大,如以10000作为线性比例切割几何对象,那么会存在这样的问题:10000*10000网格中会存储着多个记录,如果放大显示时,一些不在当前显示窗口的几何对象也会被读取出来,势必减慢显示速度。
如果线性比例过小,如以1作为线性比例切割几何对象,那么会存在这样的问题:一个较大的几何对象被分割成了多个部分存储在S表中,增大了存储空间,缩小操作显示一条记录时,则必须先进行多部分读取,然后进行拼接显示。另外对于大范围的记录,会导致 Feature Class is read-only mode,图层不再可读。
因此,对于线性比例的设置,无论过大或者过小都会影响存储和性能。在此顺便也解答一同事向我提出的小比例尺与大比例尺为什么要分层存储的问题:如果几何对象大小不一,相差比例很大,计算出来的线性比例总是不能令人满意,因此也就达不到性能上优化的目的。
三、如何设置空间网格大小
A、设置空间网格大小的几个原则:
1. 点层只需建立单级索引,而且Grid Cell Size 可以选择得大一些,因为点层处理效率是最高的;
2. 监视spatial index,如果数据变化频繁,则需要经常根据数据的变化情况重新评估索引的优劣;
3. 根据实际应用,将Grid Index 中Cell Size 调整为应用程序经常使用的窗口显示大小;
4. 对于未知应用,可以将Grid Index 中Cell Size 设置为图形平均覆盖范围的三倍大小;
B、获取图形信息的几种方法:
1、图形平均覆盖范围的计算方法:
select (avg(emaxx - eminx) + avg(emaxy - eminy)) / 2 from f<N> ;
例:select (avg(emaxx - eminx) + avg(emaxy - eminy)) / 2 from sde.f200;
2、图层各种统计信息查询方法:
sdelayer -o stats -l layer_name,spatial_column_name –u sde_user_name -p sde_user_password –I service_name;
这些信息是确定Grid Index 中Cell Size 大小的重要依据。
3、图形统计信息查询方法:
sdelayer -o si_stats -l layer_name,spatial_column_name –u sde_user_name -p sde_user_password –I service_name;
C、Grid Index 调整方法(注册版本后不可调整):
1. 通过Catalog 实现:
选中图层的Spatial 字段(默认情况下是shape 字段),修改起Grid Index 参数;
2. 通过SDE 命令行实现:
Sdelayer –o alter –l layer_name,spatial_column_name –g grid_size0,grid_size1,grid_size2 –u sde_user_name -p sde_user_password –I service_name;
试验中,发现对于一般的图层,在导入数据时,默认建立的Cell Size 已经比较优化。
四、总结
本文在分析空间网格大小设置对性能影响的基础上,简述了怎样优化SDE空间网格索引。对于提高系统的性能,优化网格索引只是其中的一个因素,如想知道更多关于空间信息访问优化的问题,可以参考:《基于Oracle与ArcSDE的空间信息访问优化》。