我可以使用 Clipper 检查多边形轮廓是否与其自身相交(如果是复杂多边形还是简单多边形)?
我知道它不会使多边形无效,但就我而言,我想避免自相交的多边形。
我想从一个简单的要素集合中选择与另一个 sf 集合中的多边形相交的多边形。这是一个可重现的示例:
library(sf)
nc <- st_read(system.file("shape/nc.shp", package="sf"))
nc <- st_transform(nc,32717);nc
poly <- nc[1,]
fishnet<-st_make_grid(st_as_sfc(st_bbox(poly)),cellsize=5000)
Run Code Online (Sandbox Code Playgroud)
现在,在创建了多边形和围绕它的渔网后,我想选择那些与多边形相交或完全被多边形包含的渔网单元。
谢谢你的帮助!
标记
例如,
a = [1, 1, 2, 4, 4, 4, 5, 6, 7, 100]
b = [1, 2, 2, 2, 2, 4, 5, 7, 8, 100]
Run Code Online (Sandbox Code Playgroud)
我可以使用以下方法找到匹配的元素:
np.intersect1d(a,b)
Run Code Online (Sandbox Code Playgroud)
输出:
array([ 1, 2, 4, 5, 7, 100])
Run Code Online (Sandbox Code Playgroud)
a那么,如何分别获取数组和中匹配元素的索引b?
IDL 中有一个函数"match"- https://www.l3harrisgeospatial.com/docs/match.html
Python中有类似的函数吗?
我正在寻找一种快速方法来遍历集合列表,并通过查找与列表中至少共享一个元素的任何其他元素的并集来扩展每个集合。
例如,假设我有四行数据,其中每一行对应于一组唯一元素
0, 5, 101
8, 9, 19, 21
78, 79
5, 7, 63, 64
Run Code Online (Sandbox Code Playgroud)
第一行和最后一行有相交元素 5,因此在执行操作后我想要并集
0, 5, 7, 63, 64, 101
8, 9, 19, 21
78, 79
0, 5, 7, 63, 64, 101
Run Code Online (Sandbox Code Playgroud)
现在,我几乎可以用两个循环来做到这一点:
def consolidate_list(arr):
"""
arr (list) : A list of lists, where the inner lists correspond to sets of unique integers
"""
arr_out = list()
for item1 in arr:
item_additional = list() # a list containing all overlapping elements
for item2 in arr:
if len(np.intersect1d(item1, …Run Code Online (Sandbox Code Playgroud) 假设我有两个具有多索引的数据帧,其中一个索引比另一个更深。现在我只想从一个(更深的)数据框中选择那些行,其中它们的部分索引包含在另一个数据框中。
输入示例:
df = pandas.DataFrame(
{
"A": ["a1", "a1", "a1", "a2", "a2", "a2"],
"B": ["b1", "b1", "b2", "b1", "b2", "b2"],
"C": ["c1", "c2", "c1", "c1", "c1", "c2"],
"V": [1, 2, 3, 4, 5, 6],
}
).set_index(["A", "B", "C"])
df2 = pandas.DataFrame(
{
"A": ["a1", "a1", "a2", "a2"],
"B": ["b1", "b3", "b1", "b3"],
"X": [1, 2, 3, 4]
}
).set_index(["A", "B"])
Run Code Online (Sandbox Code Playgroud)
视觉的:
V
A B C
a1 b1 c1 1
c2 2
b2 c1 3
a2 b1 c1 4
b2 c1 …Run Code Online (Sandbox Code Playgroud) 我有两个单元格数组,X和Y.每个单元格数组由字符串组成:即,X {i}是字符串forall i,因此是Y {i}.我想找到2个单元阵列的交集,(大概是第三个单元阵列),它具有X和Y共有的字符串.
任何想法如何去做?
我正在编写一个游戏,我需要检测两个CGRects之间的交叉点.要做到这一点,我没有问题.我喜欢这个:
CGRect rect1 = CGRectMake (x1, y1, a1, b1);
CGRect rect2 = CGRectMake (x2, y2, a2, b2);
if (CGRectIntersectsRect(rect1, rect2))
{
//do some stuff...
}
Run Code Online (Sandbox Code Playgroud)
所以我没问题.但是,如果有可能知道这两个CGRect的精确交点?如果有可能,怎么样?
谢谢 !
我有两个清单:
wordlist = ['A', 'Aani', 'Aaron', 'Aaronic',
'Aaronical', 'Aaronite', 'Aaronitic',
'Aaru', 'Ab', 'Ababdeh']
Run Code Online (Sandbox Code Playgroud)
和
wordlist_compound = [['A','0'], ['Aaronic','1'], ['Key','2'],
['Aaronical','3'], ['Aaronite','4'], ['Yes','5']]
Run Code Online (Sandbox Code Playgroud)
我想取两个单词的交集,并在第三个列表中创建一个包含单词,数字组合编号的列表wordlist_final,以便wordlist_final看起来像:
[['A','0'], ['Aaronic','1'], ['Aaronical','3'], ['Aaronite','4']]
Run Code Online (Sandbox Code Playgroud)
我目前的代码如下:
wordlist_final = []
for index, word in enumerate(wordlist):
for word_comp in wordlist_compound:
if word[index] == wordlist_compound[index][0]:
wordlist_final.append(wordlist_compound[index])
Run Code Online (Sandbox Code Playgroud)
但我得到一个"字符串索引超出范围错误"
我有一个不同长度的字典.每个条目都有一个名称和一个列表,如下所示:
somedict = {'Name': [1, 2, 3], 'Name2': [], 'Name3': [2,3] }
Run Code Online (Sandbox Code Playgroud)
如何获得以下列表的交集?我需要动态地做,我不知道dict会有多长.
对于上面的列表,我知道交叉点是空的.但对于
somedict = {'Name': [1, 2, 3], 'Name3': [2,3] }
Run Code Online (Sandbox Code Playgroud)
它应该回来
[2, 3]
Run Code Online (Sandbox Code Playgroud) 我有两个方程式:
ellipseOne = '((x-1)^2)/6^2 + y^2/3^2 = 1';
Run Code Online (Sandbox Code Playgroud)
和
ellipseTwo = '((x+2)^2)/2^2 + ((y-5)^2)/4^2 = 1';
Run Code Online (Sandbox Code Playgroud)
我画了他们:
ezplot(ellipseOne, [-10, 10, -10, 10])
hold on
ezplot(ellipseTwo, [-10, 10, -10, 10])
title('Ellipses')
hold off
Run Code Online (Sandbox Code Playgroud)
现在我试图找到两个椭圆的交集.我试过了:
intersection = solve(ellipseOne, ellipseTwo)
intersection.x
intersection.y
Run Code Online (Sandbox Code Playgroud)
找到它们相交的点,但是MATLAB给了我一个矩阵和一个方程作为答案,我不明白.谁能指出我正确的方向来获得交叉点的坐标?
intersection ×10
python ×5
matlab ×2
algorithm ×1
arrays ×1
cell ×1
cgrect ×1
clipperlib ×1
detect ×1
dictionary ×1
ellipse ×1
enumerate ×1
idl ×1
indices ×1
ios ×1
join ×1
list ×1
match ×1
multi-index ×1
objective-c ×1
pandas ×1
performance ×1
polygons ×1
r ×1
r-sf ×1