现有一个面图层,是一个个区块;
还有一个点图层,每个点有一定的属性(可能还有权重之类的);
想根据每个区块点的密度做一个“热力图”。
大致思路:
- 使用空间连接做聚合计算,得到一个有聚合计算结果的新的面图层
- 通过坐标由面图层再弄出一个点图层,每个区块对应一个点
- 用插值工具做“热力图”
用空间连接做聚合计算
打开点图层的属性表,把不需要的字段删掉,怕误删的话可保存副本。
这步最好要做,原因如下:arcgis有一个很sb的地方,在使用空间连接做聚合计算(如求和、平均值、方差)的时候,它会把所有数值型字段统统算一遍,比如id这种算出来根本没意义的字段它也会算,而数据连接面板根本不会让你自行选择要算什么字段的什么统计量,就是傻乎乎地全部算一通,浪费了时间,也浪费了电脑的计算资源。即使把字段关闭也不能阻止arcgis对数值型字段做计算,因此,只能删字段了。
右击面图层 - joins and relates - joins - 跳出join data面板 -
- join data from another layer based on spatial location
- 要连接的点图层
- 勾选要计算的统计量(如果没有要算的就不选,就只计数)
- 检查新图层存储位置
- 确定
旧的面图层可以移除。
每个区块对应一个点
打开面图层属性表,导出这个表,再导进来,display X,Y,得到点图层
用空间内插做“热力图”
arctoolbox - spatial analyst tools - interpolation - spline - 跳出面板 -
- 选好点图层
- 选好Z值字段
- environments - raster analysis - mask - 选好面图层,作为热力图的边界范围
- 确定
生成结果之后调节一下配色和划分方式之类的。
效果也不是很好: