ArcGIS中的查询
最近身体不适,静下心来看了一下以前收集的电子书。下面是《ArcGIS地理信息系统教程_第5版》(李玉龙)第5章“查询”的读书笔记。
1.查询的常见应用:
选择感兴趣的要素:查找哪些要素满足特定标准。例如当前成都哪些房价是本人能够承受的价格范围?应该没有。
探索图案样式:从选定的要素中创建地图,并检查其空间分布。例如到底是哪些位置排污量大,造成如此重度污染?
为进一步分析而分离要素:例如要分析个人的效益情况,先要把工资高、干活少的员工选择出来。
探索空间关系:哪趟火车能够到达目的地附近50公里城市?
创建栅格查询:矢量查询用得非常多,但栅格也可以按像元进行查询。例如从土地利用类型图上查询近3年本市建筑范围变化的区域。
查询主要包括空间查询(Spatial Query)和属性查询(Attribute Query)两种。
2.属性查询
属性查询遵守SQL语法,但需要每个表达式条件必须包含一个字段名(即使为相同字段),例如SQL无法正确识别表达式”Gay”=’工资高’ AND ‘干活少’,而应当写成”Gay”=’工资高’ AND ‘”Gay”=‘干活少’。
除了AND、OR、NOT外,有时XOR也有用。
当遇到多个表达式时,用括号来区分判断的先后顺序;或者使用“在当前选择集中选择”来一步一步地选择。
模糊查询时,记住通配符,在Shapefile文件文件中’%‘表示任意个字符,’_‘表示一个字符;但在数据库中’?‘表示任意个字符,’?‘表示一个字符。
例如:"NAME" LIKE ‘% LiJie%’,表达中第2个%,也许有人认为是多余的,通常情况是这样的。但是这确定避免出现一种特殊情况,就是姓名后面多出一些意外的空格,以致于无法选择正确的内容。
3.空间查询
空间查询是GIS所独有的一种功能强大的工具,是基于空间关系进行选择。例如大家熟悉的平移和缩放也是一种特殊的空间查询类型。平移和绽放操作基于XY坐标定义了一个兴趣矩形,并提交软件返回落入其中的所有要素。
因为要素类的精确度和几何准确度不同,经常会发生真实世界中的一致的两个对象(例如河流标尺和河流),当在GIS中比较其XY坐标时无法完全精确匹配。当评估空间条件时,指定搜索半径非常有用,可以使用要素不需要精确匹配。
以城市与河流相交的问题为例。国家比例尺下的城市通过点来表达,而河流是通过广义线来表达的。即使城市真的与河流相交,如果点发生在表示西游记的线上也只是幸运,应用搜索半径是一种解决方案,假定典型的大城市可能通过一侧的10km2所表示,那么设置搜索半径为5km也许能够生成一种可以接受的结果。即使如此,可能还是会遇到一些错误的结果(正值的相关与负值)。
必须总是记得真实世界中的实体与GIS所表现的实体之间的差别,并缓和由于比例尺或精度所导致的问题。例如在这种情况下,用户可能继续执行了查询,但是然后通过联机影像来检查每个选定的城市,从而确保存在正确的关系。
4.空间关系
包含:检查一个要素是否包含另一个要素。分为以下六种情况:
A严格等于B(具有完全相同的几何特征),对应are identical to(A相等B);
B所有要素完全被A环绕,对应A completely contains B(A完全包含B),也对应B completely within A(B完全位于A范围内);
B位于A内,但它们共享一条边,对应contains(A包含B),也对应B within A(B位于A范围内);
A中某个要素的中心是否位于B中某个要素范围内,对应A have their center in B(A 中心位于 B)。
相交:返回A中接触、穿越或叠加B中要素任何部分的任何要素. A are crossed by the boundary of B (A被B的边界所穿越),返回A中只穿越B中要素边界的要素。
邻近:检测A中要素与B中要素之间有多么接近。最常见的检测是are within a distance of(在……距离范围内),选择A中位于B某个特定距离范围内的要素。例如返回学校周围2公里范围内所有地块。邻接(Adjacency)是一种特殊的邻近情形,距离变为0,实际上要素的边界彼此之间接触在一起,这些条件为share a line segment with(与……共享一条线段)和touch the boundary of(接触……的边界)运算符所覆盖。
5.要素选择方法
在ArcMap中提供了3种要素选择方法:交互式选择,按属性选择和按位置选择。
处理包含选择的图层,在ArcMap中有一个非常重要的原则:图层要素选中,只会处理选择的部分,否则全部处理。
交互式选择方法:
创建选择图层:选择要素后可以右键创建选择图层,选择图层显示在原图层的上方,其具有几种优势,不仅可以为其指定自己的符号,而且能够独立于原始图层之外进行显示。如果选定的集合是复杂分析的焦点所在,那么该图层会为未来使用而保留选定的要素,从而避免意外清除这个选择而不得不再次执行它的风险。选择图层可用于将相同的要素集合输入到不同的工具或命令,对于 查看和记录长且复杂的系列查询的中间结果很有用。用户也可将该图层保存为图层文件,然后在其他地图文档中使用。当对源图层或选择图层进行编辑时,同时改变。
因为基于要素类,所以不会创建要素的多个副本,也举改变源数据。当需要临时副本的时候,而要素来自于自己的数据或者多个用户所共享的机构数据库,这是最好的解决方案。
定义查询:定义查询是图层的一种属性,类似于选择图层,但是不从选定的集合创建,查询实际上执行的目标是定义哪些要素包含在图层中。像图层一样,定义查询指向原始数据库,而不是创建其副本,并且分享相同的优点和缺点。
ArcGIS中的查询的更多相关文章
- ArcGIS中使用异步回调函数查询图层Graphic
在我们的地图的操作中经常会有一些操作是需要通过画多边形或者画线来查找某一块区域内的特定的Graphics比如我们在做的交警的项目中通过框选来查找某一块区域中的摄像机,某一块区域中的警力.警情.警员等相 ...
- 【转】ArcGIS中File Geodatabase与Personal Geodatabase的区别
原文地址:ArcGIS中File Geodatabase与Personal Geodatabase的区别作者:最爱忆宝贝 一.平台支援: 1.Personal Geodatabase:仅可在Windo ...
- ArcGIS中的WKID(转)
ArcGIS中的WKID link: https://www.cnblogs.com/liweis/p/5951032.html 提到坐标系统,大家多少能明白一些,但在运用时,有些朋友搞得不是非常清楚 ...
- 【总结整理】关于ArcGIS中拓扑的理解
空间拓扑: https://www.baidu.com/link?url=f8fd1d75GhwtT1JuyPDZydZlWCgEXB9DeuTzDqGQIIRpq0bM-8t3MlC5tXYvEwQ ...
- (转)ARCGIS中坐标转换及地理坐标、投影坐标的定义
原文地址:http://blog.sina.com.cn/s/blog_663d9a1f01017cyz.html 1.动态投影(ArcMap) 所谓动态投影指,ArcMap中的Data 的空间参考或 ...
- AE中地图查询方式
樱木 原文 AE中地图查询方式 地图查询主要有两种查询:空间查询和属性查询 所用到知识点: 1 Cursor(游标)对象 本质上是一个指向数据的指针,本身不包含数据内容,提供一个连接到ROW对象或者 ...
- arcgis中的Join(合并连接)和Relate(关联连接)
arcgis中的Join(合并连接)和Relate(关联连接) 一.区别 1.连接关系不一样. Relate(关联连接)方式连接的两个表之间的记录可以是“一对一”.“多对一”.“一对多”的关系 Joi ...
- arcgis中nodata设为0及其小技巧
一.arcgis中nodata设为0 两个栅格进行叠加,有时会有一部分没有数据,即用identify点击该区域,Value为NoDat a,而不是像其他非空区域一样有值. 此时注意nodata区域要赋 ...
- arcgis中栅格矢量计算技巧收藏
编辑 一.计算面积 ( 可以帮我们计算小班面积 )添加 AREA 字段,然后右键点击字段列,然后点击 CALCULATE VALUES; ---> 选择 ADVANCED -->把下 ...
随机推荐
- bzoj 3240 矩阵乘法+十进制快速幂
首先,构造出从f[][i]->f[][i+1]的转移矩阵a,和从f[i][m]->f[i+1][1]的转移矩阵b, 那么从f[1][1]转移到f[n][m]就是init*(a^(m-1)* ...
- 在Hexo中渲染MathJax数学公式
最近学机器学习涉及很多的数学公式,公式如果用截图显示,会比较low而且不方便.因此需要对Hexo做些配置,支持公式渲染.同时文末整理了各种公式的书写心得,比如矩阵.大小括号.手动编号.上下角标和多行对 ...
- 如何在java中跳出当前多重嵌套循环?有几种方法?
如何在java中跳出当前多重嵌套循环?有几种方法? - 两种方法 - 1.在外层循环定义标记 ok: for(int i=0;i<100;i++){ ...
- Git_多人协作
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin. 要查看远程库的信息,用git remote: $ git r ...
- Comparable<T> 和 Comparator<T>
相同点: Comparable<T> 和 Comparator<T>都是接口 不同点: 两者声明的方法不同.前者是compareTo()方法,后者是compare()方法. C ...
- [置顶] 解决EXTJS文本框长度验证在ORACLE数据库下不正确的问题
由于ORACLE数据库里面一个汉字和符号占2 个字节,数字和英文占1个字节,所以用EXTJS的文本框MaxLenght去限制输入的长度是不正确的,因为EXTJS只限制了输入的字数量,而不是字节数量. ...
- 【Eclipse提高开发速度-插件篇】安装多语言Propertys编辑工具
安装的的时候能够通过 Help>Eclipse Marketplace的 搜索方式安装 或者 Help>Install New Software Name:Propertys URL:ht ...
- WordPress 客户端软件列表
Windows: BlogDesk BlogJet Blog Writer Chrysanth WebStory Deepest Sender (Firefox或SeaMonkey扩展,跨平台- De ...
- sql 递归查询所有的下级
--> 生成测试数据表: [tb] IF OBJECT_ID('[Users]') IS NOT NULL DROP TABLE [Users] GO CREATE TABLE [Use ...
- 算法:希尔排序(Shell Sort)
背景 在三种简单的排序算法中(冒泡.选择和插入)插入排序的算法最好,不过插入过程可能需要进行大量的移动,如何尽可能少的移动元素呢?希尔排序正是基于对这个问题的思考而想出来的,考虑到希尔排序对已排序数组 ...