ArcGIS加权怎么确定权重

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ArcGIS加权怎么确定权重相关的知识,希望对你有一定的参考价值。

参考技术A gis计算权重的方法是:

1、对每一个用到的数据图层,添加属性(如渗透系数层加个字段“stxs”,并在该字段下加入等级属性,然后再添加一个字段“stxsfs”并加入分数);

2、对所有用到的图层进行叠加union(两两叠加),这样最后叠加得到的图层中就包含了所有有用的数据;

3、在最后得到的图层中加入一个字段,左键选中这一列,右键点击这一列的列名,选择calculator,在弹出的对话框中输入计算公式就可以了。

在无向加权图中找到所有循环权重的有效算法

【中文标题】在无向加权图中找到所有循环权重的有效算法【英文标题】:Efficient algorithm to find weights of all cycles in an undirected weighted graph 【发布时间】:2017-09-02 09:44:40 【问题描述】:

我的目标是在加权无向图中找到所有循环及其各自的权重。循环的权重定义为构成循环的路径的权重之和。我的预设算法执行以下操作:

dfs(int start, int now,int val)

     if(visited[now])
        return;
     if(now==start)
     
        v.push_back(val);// v is the vector of all weights
        return;
     
     dfs through all nodes neighbouring to now;
 

我从每个起点呼叫dfs()

for(int i=0;i<V;++i)

    initialise visited[];
    for(int j=0;j<adj[i].size();++j)//  adj is the adjacency matrix
        dfs(i,adj[i][j].first,adj[i][j].second); 
//  adj is a vector of vector of pairs
// The first element of the pair is the neighbour index and the second element is the weight

所以这个算法的整体复杂度是O(V*E)(我想是的)。任何人都可以提出更好的方法吗?

【问题讨论】:

在图完整的特定情况下,任何节点序列都构成一个循环。因此(如果我正确理解了要求),一个好的算法似乎不可能在最坏的情况下不需要指数复杂度。 正如查询人所说,可能有指数数量的周期。你真的需要每一个重量(那么除了指数级的结果之外别无他法),或者可能只是最小、最大或类似的东西? 看这里***.com/questions/12367801/… @deviantfan 确切地说,我需要知道任何重量是否是奇数。但它不需要计算所有的权重吗? (重量 == 一个周期的重量) @yobro97 不,它不需要。我正在写一个答案... 【参考方案1】:

由于不是每个人都以相同的方式定义它,我假设......

权重在边上,而不是顶点上 循环中唯一被访问多次的顶点是开始/结束顶点 单个顶点,或两个相连的顶点,都不是环,即。它至少需要三个顶点 在图中的两个顶点之间,不能有超过一条边(没有“多重图”)

以下步骤可以确定是否(至少)存在一个奇数加权循环:

删除所有只有 0 或 1 条连接边的顶点(不是必需的,但使用它可能会更快)。 通过插入一个新顶点来分割每个偶数加权边(只有它们,而不是奇数加权边!)。例如。如果顶点 A 和 B 之间的 egde 的权重为 4,它应该变为 A-Z 2 和 Z-B 2,或 A-Z 3 和 Z-B 1,或类似的东西。 实际重量分布并不重要,你甚至不需要保存它。因为,从这一步开始,所有的权重都不再需要了。 这实际上做了什么?认为每个奇数权重都是 1,每个偶数权重都是 2。(如果存在奇数权重循环,这不会改变:如果 3+4+8 是奇数,那么 1+2+2 也是)。现在您将所有 2 分成两个 1。由于现在唯一存在的权重是 1,因此确定总和是否为奇数与确定边“计数”是否为奇数相同。 现在,检查二分性 / 2coloring: 您可以在此处使用修改后的 DFS 顶点可以是未知的、0 或 1。开始时,将 0 分配给单个顶点,所有其他顶点都是未知的。 0 顶点的未知邻居总是得到 1,而 1 顶点的未知邻居总是得到 0。 在检查顶点的邻居是否已被访问时,还要检查数量是否与您现在正在处理的顶点不同。 如果没有,你刚刚发现你的图有奇数加权循环,你可以停止一切。 如果您在 DFS 结束时没有发现,则不存在奇数加权循环。 对于实施,请注意,您可能会在仍有未访问的顶点时到达 DFS 的“结束”,即如果您有一个断开连接的图。如果是这样,您需要将剩余顶点之一设置为已知数 (0),然后从那里继续 DFS。

复杂性O(V + E)(这一次是真的,而不是指数级的事情或不起作用的解决方案)。

【讨论】:

以上是关于ArcGIS加权怎么确定权重的主要内容,如果未能解决你的问题,请参考以下文章

arcgis中的加权叠加怎么做

加权最小二乘法的权重形式

Sklearn k-means聚类(加权),确定每个特征的最佳样本权重?

我目前有四幅图,都是栅格图。每幅图都有自己的权重值,我想把这四幅图用GIS做加权叠加

请问如何用ARCGIS将高程、坡度、坡向、XXX保护区等多样因子根据权重进行综合叠加分析,希望详细些

arcgis叠加的优先级