在ArcGIS for Desktop中手动对超出范围的分级数据进行分类?


13

我有两个shapefile代表网格,这些网格的值用渐变的颜色符号表示,如下所示:

原版的

您可以看到两个shapefile包含相似的数据范围,但是为这些数据中的范围分配了略有不同的颜色。我想对两个shapefile的每个范围使用相同的颜色来表示相同的范围,从而使文件之间的比较更加容易,并允许使用单个图例。

但是,当我尝试使用手动间隔对范围进行分类时,ArcGIS会强制将最大范围包括在数据集中的最小值。您可以在下面左侧数据框的“ -81.64-10.00”范围内看到它。这迫使整个图层都用该颜色符号化。 本质上,ArcGIS要求将数据集中的最小值用作范围之一中的值。

新间隔

有没有办法避免此功能?


我也记得有这个问题,尽管我不记得确切的解决方法。如果您将其归类为“等间隔”,然后双击这些值,是否可以通过这种方式进行更改?
GISKid 2014年

双击@GISKid,不幸的是,分类恢复为“手动”。
hfisch 2014年

调整直方图本身的值怎么办?
GISKid 2014年

如果将其拖动到最小值以下,则@GISKid值将恢复为最小值。
hfisch 2014年

2
我认为最好的和最简单的答案是gis.stackexchange.com/a/136497-第一个(目前已接受)的答案对我来说太长了。
PolyGeo

Answers:


12

当ArcMap试图变得很有帮助时,即使您确实不希望这样做,这绝对是一个巨大的痛苦。

我发现的一种解决方法是创建一个新的临时数据集,并在输出中添加一些点,这些点具有您需要的最小值和最大值-只需确保覆盖整个范围即可。

基于此伪造的数据集创建符号系统,并将该符号系统保存在图层文件中

在此处输入图片说明

...然后将符号系统从* .lyr文件导入到您的真实数据集中:

在此处输入图片说明


1
该解决方案比我的解决方案更灵活。我要转到你的答案。
hfisch

谢谢,如果您足够仔细地阅读了arcmap抛出的所有对话框,它们就像是一种魅力。
Luuklag

6

@ChrisW说:

据我所知并能找到证据,您不能将分类范围设置为低于数据中的最小值。

这让我开始思考,实际上我找到了一种将分类范围设置为低于最小值的方法。我最初的问题是基于这样一个事实:最低的分类范围要求包含数据中的最小值。

但是,对所使用的其他分类范围没有任何限制。因此,可以迫使两个(或多个)分类范围降至数据中的最小值以下。其中一个将代表首选的最小分类范围,而另一个将用作包含最小值的虚拟范围。


这是我用于分类的起点。使用10英尺的定义间隔对四个数据帧中的每一层进行分类,而不考虑其他层的数据范围。

初始点

四个数据帧中任何一个的最大分类范围为“ 0.01到10.00”,最小分类范围为“ -110.62到-110.00”(理想情况下为“ -119.00到-110.00”)。由于我尝试保持10英尺的间隔,因此总共转换为13个间隔。


我使用左上角的数据框作为通用图例的来源。我首先打开“图层属性”并进行分类。由于我希望可见13个间隔,因此我需要选择14个间隔以具有可用的虚拟范围。为此,我选择“手动”作为方法并创建14个类。

步骤1a

将范围设置为当前状态(最大值在顶部)后,对该范围中输入的值所做的任何更改都不会影响列表底部的范围。@ChrisW指出这不是错误,而是ArcGIS分配中断值的功能。这是在选择“手动”方法之后但在对范围进行任何更改之前的“层属性”窗口:

步骤1b


为了解决此问题,我暂时反转了图层的排序。此时,最低范围在顶部,而最高范围在底部。

步骤2a

现在,如果我滚动到范围列表的底部(显示最高范围)并开始从下至上定义适当的间隔,ArcGIS将记住我定义的范围:

步骤2b

在此图像中,我定义了14个范围中的5个范围的上限值,从最大值(10.00)开始并向下工作。


当我到达列表的顶部并编辑我的第14个范围时,其最小值仍将定义为该图层中的最小值,因为它下面没有其他范围可从中提取值:

步骤3a

不过,这无关紧要,因为这是我之前提到的虚拟范围。在这一点上,我再次反转了图层的排序,因此最高范围再次位于顶部。下图显示了左上数据帧的更新图例,该图例现在反映了所有四个数据帧的正确范围,包括第14个虚拟范围:

步骤3b


下一步是将这些更改传播到其余数据帧。但是,当我尝试将符号系统导入其他数据框时,一些问题显而易见:

步骤4a

正如@ChrisW所指出的,这是由于我决定从一个在所有数据帧中都没有绝对最小值的图层开始。看起来数据框将不显示任何低于原始数据框中存在的范围的范围。

如果您是从与我一样的图层开始的,那么为此找到的最佳解决方案是针对四个数据帧中的每一个重复上面讨论的步骤;手动定义14个类别,颠倒类别的排序,重新定义每个范围的顶部,然后还原排序以将最高范围放置在顶部。

不过,最简单的解决方案是从具有最小值的图层开始分类过程。然后可以将“导入符号系统”选项正确用于其他数据帧。

步骤4b


最后,我可以删除三个图例,然后在剩余的图例中隐藏虚拟范围,或者将其转换为图形并删除虚拟范围。

终点


很高兴您能够解决一些问题。我修改了答案,以纠正您引用的雾化现象(我不确定为什么会这样说-您的原始图像显示出可以做到)。
克里斯·W

实际上,我在复制它时遇到了麻烦。为了使答案更有用,您是否可以精确地编辑创建低于最小值的那些范围的方式?
克里斯W

@ChrisW我已经大大扩展了该过程。让我知道它是否仍然没有意义!
hfisch 2014年

2
感谢更新。我发现了问题-在分类对话框和符号体系对话框之间定义中断的方式存在很大差异,这与您所质疑的错误有关。基本上,它会自动对中断值进行排序,但低于最小值的最低中断始终与最小值相关,并显示在顶部(或底部,取决于排序)。仅供参考,虽然您无法指定总数,但是可以通过右键单击直方图来在“手册”中添加或删除类别。
克里斯W

1
至于将符号体系应用于其他数据帧,如我的答案中所述,请尝试使用具有最低值(-110.62)的数据作为初始符号体系。我注意到在倒数第二张图像中,所有四个类的哑类最小值仍为-61.01,这就是为什么即使有一个类,下面的任何东西也不呈现的原因。如果您从最低的开始,并且最小值更高,那么我相信当您将符号体系应用于其他数据集时,它将在数据最小值中包含或显示符号体系min。
克里斯(Chris W)

5

我想,我遇到了同样的问题。...如果我理解正确,那么您就有两个(或更多)数据集,您需要获取匹配的数据集比例范围,以便进行比较。

我通过以下方法解决了它:

  1. 创建您要显示的第一个数据集。理想情况下,仅使用最大数据范围,以便可以将符号更轻松地复制到第二个(范围较小的)数据集。

在此处输入图片说明

  1. 创建您的第二个数据集,但现在不用担心任何符号系统。在第二个数据集的“ 图层特性”>“符号系统”选项卡中,选择与第一个数据集相同的分类类型,在本示例中,我使用的是“ 类别”>“唯一值”,然后单击“ 添加所有值”按钮。

在此处输入图片说明

  1. 对值进行分组,以使它们落入第一个数据集中使用的相应范围。选择特定类别的所有值,然后右键单击并选择“ 组”。顶部的两个类别已在下图中分组,四个突出显示的价位将被“拉”为第三组。

在此处输入图片说明

  1. 我发现在此阶段更容易重新标记类别,以便更轻松地跟踪。此时,您可以看到填充的七个类别中的五个。

在此处输入图片说明

  1. 最后(几乎)是问题的症结所在,添加第二个数据集的数据范围之外的空类别。在“ 图层属性”>“符号系统”选项卡中,单击“ 添加值”按钮,并根据需要在数据范围的上方和下方填充所需类别。

在此处输入图片说明

  1. 最后,重新标记新的空类别,使其与第一个数据集对应,然后为每个类别重新着色,使其与第一个类别匹配。

在此处输入图片说明

抱歉,如果这有点简化,甚至是简单的错误/不良做法。我已经是GIS Stack Exchange的长期用户,并且考虑到我开始贡献自己的时间,所以这是我的第一篇文章!


2
对不起,我刚刚意识到该OP用于分级数据,并且在快速检查之后发现我的解决方案无效。我会看更密切下次....
的NiGe

4
  1. 选择所需的班级数量。
  2. 右键单击符号并选择 save class breaks
  3. 这样会保存一个xml文件,您可以在任何文本编辑器中打开和编辑该文件
  4. 在xml文件中编辑所需的类休息并保存
  5. 再次右键单击符号,然后导入新编辑的课程中断文件

完成


3

尽管分类使用相似的范围,但数据却没有共享范围。我认为这里的解决方案是解决图例和颜色分配,而不是实际的分类。

从左下角的结果开始,然后将图例转换为图形。编辑文本以获取所需的范围。我注意到您所有其他图像的单位范围都是10,但此图像的范围是20,因此重叠。例如,其中三个图像具有-49.99至-40.00,但左下角具有-49.99至-60.00,而下一类是-59.99至-70.00。图像的范围也相反-即,三个在左侧为较低的值,而左下方为在右侧的较低的值(对我来说自然地读得更多,如果不是从左至右的,则数字增加)。也许需要首先解决这些问题以节省时间,而不仅仅是手动文本编辑。

一旦有了具有范围和所需颜色渐变的图例,您可以返回到前两层(已经正确分类)并手动编辑每个范围的色块,以匹配您为图例中范围确定的颜色。由于这两层不会显示自己的图例,因此在其中一层的范围实际上是-89.99到-80.00,而另一层的范围是-81.64到-80.00没关系,因为它们都具有相同的颜色。

但是请注意,这将暗示两个数据集具有相同的范围,但范围不同。实际上,看起来将有两个色块仅在一个贴图中使用(最高和最低)。您可能希望在每个地图上都注明其绝对数据范围。我还会在范围之间使用“至”而不是“-”,因为使用负值会使读取变得混乱。


替代解决方案:

据我所知并能找到证据,您必须拥有一门以最低价值开始的课程。您可以在数据范围的上方或下方手动添加类(甚至是空类),但是一个类必须从最小值开始。

因此,请使用包含所有栅格中最低/最小值的栅格来设置符号系统。获取这些符号。然后,您可以编辑课程标签以说出您想要的任何内容。因此,如果您的最低值为0.4,则仍可以将标签更改为0。

完成此操作并设置所需的色带后,请保存符号系统的lyr文件。然后,您应该能够打开其他栅格并应用相同的符号系统。因为其他栅格都将具有较高的值,所以它们应该正确分类,并且最小值本身会增加(或者,如果其中不包含任何类别,该类别将被丢弃)。如果该符号不保留在符号体系中,则可以再次将其更改为班级标签,而不是实际值。


实际上,您可以跳过.lyr步骤,并根据需要简单地对一个栅格进行分类(范围,颜色等),然后使用导入符号系统功能将此栅格应用于所有其他栅格。打开“图层属性”,选择“符号系统”选项卡,选择“右上角的文件夹图标”(当您将鼠标悬停在其上时将指示“导入”)-然后选择要模拟的栅格。
JWallace 2014年

@JWallace True,前提是您的其他栅格已经加载到相同的地图文档中(可能是相同的数据框-不能回忆起是否允许您从其他栅格导入符号系统),并且愿意让您的工作来设置Symbology 驻留在mxd中(如果您更改了内容,则可以保存它的备份)。我有一个图形化的答案,涵盖了这里的这些步骤。
克里斯W

左下角的结果在怪异的单元上有很好的捕获。我认为这是我尝试手动定义范围的产物,并且我以相反的顺序对其进行了定义。使用“至”而不是“-”也是一个不错的选择。我原始解决方案的问题在于,它需要进行大量的着色和标签手工操作,并且我需要生成一系列这些数字。不过,您的替代解决方案给了我一些想法。我想我找到了一种使它更加优雅并消除最小值问题的方法。
hfisch 2014年

3

一个对我有用的更简单但更肮脏的解决方案。不要忘记为原始数据创建备份。

  1. 打开属性表并开始编辑
  2. 手动编辑任意两个值,以便包括您要作为分类依据的最小值和最大值(请记住原始值)
  3. 保存并停止编辑
  4. 根据新的极值进行分类
  5. 重新开始并将更改后的值手动替换为原始值
  6. 现有分类不会受到影响

2

我相信这是关于要素图例,而不是栅格。如果这是关于栅格的,请忽略我的建议。我通常使用这些:

  • 将2个(或更多shapefile)小块合并为一个,我们称它为Family
  • 为家人创造传奇
  • 为家庭中的每个孩子导入符号

希望对您有帮助,FP


只是意识到它与JWallace非常相似
FelixIP 2014年

2

我做了以下解决方法。我在XML文档中创建了自己的类中断,并将其加载到两层的分类符号系统中。

  1. 要获得类Breaks-XML文档的模板:在图层属性中,在分类范围上单击鼠标右键,然后“保存类中断”。
  2. 编辑XML文档:输入XML文档中的类分隔符,还可以输入超出数据集范围的数字。
  3. 加载XML类中断:保存模板的菜单相同(请参见1),单击“加载类中断”

    步骤1和3

第2步


1
什么版本的ArcMap?我没有选择在v10.6中保存课程休息时间:i.imgur.com/znDqUpQ.png
马特·威尔基

@mattwilkie这不是版本问题,而是数据类型。您正在查看矢量数据的符号系统对话框,并且保存这样的类中断仅适用于栅格数据。该答案基本上与克雷格的答案相同,但带有插图。
克里斯W

1

另一种方法是将每个图层中的所有值合并到一个图层中,使用此方法,您将在图层中拥有最小值和最大值。

插图:1.
将所有图层的值组合到一张Excel工作表的一列中(我们将其命名为All_Vals)

  1. 在All_Vals列旁边,添加两个名为X和Y的新列,并用零填充。

  2. 在arcmap中,将excel表格添加为表格,并使用它通过使用display xy data命令/工具创建点要素类,然后将事件图层导出到shapefile(我将其命名为NB_Point)并将其添加到数据框中。

4。将NB_Point形状文件转换为大多数图层的要素类类型,例如,如果要素图层的类型为多边形,则使用缓冲工具从NB_Point形状文件创建多边形要素类(将其命名为NB_polygon)。

  1. 现在,您要做的就是右键单击最后一层NB_polygon并使用自然中断分类应用分级的颜色符号体系,将其导出到.lyr文件以在每个导入层符号体系实用程序中将其用作输入层原始图层。

希望这对您有所帮助,并对任何拼写错误感到抱歉。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.