我有一个由七个重叠的圆圈和椭圆组成的集群,我试图将它们组合成一个形状,但是当我运行cascaded_union()
时,我得到了错误:
ValueError: No Shapely geometry can be created from null value
以下是我到目前为止所写的内容:
import numpy as np
import matplotlib.pyplot as plt
from shapely.geometry import Polygon
from shapely.ops import cascaded_union
x = [-1.86203523, -1.91255406, -2.03575331, -2.16247874, -2.22159676, -2.17992322,
-2.06085035, -1.93121615, -1.86378696, -1.89641216, -1.838166, -1.88166833,
-1.98775658, -2.09688125, -2.14778844, -2.1119029, -2.00936791, -1.89773847,
-1.83967446, -1.86776838, -1.55136662, -1.60188546, -1.72508471, -1.85181013,
-1.91092815, -1.86925461, -1.75018174, -1.62054755, -1.55311836, -1.58574355,
-1.29187795, -1.33538028, -1.44146853, -1.5505932, -1.60150039, -1.56561485,
-1.46307986, -1.35145041, -1.2933864, -1.32148032, -1.07173048, -1.11382951,
-1.21649555, -1.32210007, -1.37136508, -1.33663714, -1.23740975, -1.12938125,
-1.07319027, -1.10037793, -1.87340556, -1.79563936, -1.5818673, -1.35208399,
-1.23527147, -1.29699902, -1.50261769, -1.73670954, -1.86787402, -1.82248584,
-1.98180156, -1.89591919, -1.66476691, -1.4180952, -1.29436593, -1.36303087,
-1.58554696, -1.83701142, -1.97627207, -1.92515911]
y = [0.80459679, 0.9296353, 0.98448714, 0.93836285, 0.81715295, 0.68889502,
0.62558285, 0.66275485, 0.77954562, 0.91039814, 0.63006386, 0.73773591,
0.78496944, 0.74525131, 0.6408761, 0.53043177, 0.47591296, 0.50792219,
0.60849203, 0.72117057, 0.6981317, 0.82317021, 0.87802205, 0.83189777,
0.71068786, 0.58242993, 0.51911776, 0.55628977, 0.67308054, 0.80393305,
0.60213859, 0.70981064, 0.75704417, 0.71732605, 0.61295084, 0.50250651,
0.44798769, 0.47999693, 0.58056676, 0.6932453, 0.77841685, 0.8826156,
0.92832546, 0.88988856, 0.78888032, 0.6819987, 0.62923856, 0.66021523,
0.75754088, 0.86658463, 0.84706981, 0.76282008, 0.69418295, 0.67968584,
0.7274663, 0.81070415, 0.88267631, 0.90298332, 0.86022645, 0.77840601,
0.56517702, 0.48654992, 0.41794253, 0.39786557, 0.43758864, 0.51481438,
0.5861944, 0.61166165, 0.57692084, 0.50147268]
m = 7
n = 10
x_1 = np.zeros(shape=(m,n))
y_1 = np.zeros(shape=(m,n))
for i in range(m):
for j in range(n):
x_1[i][j] = x[j+(n*i)]
y_1[i][j] = y[j+(n*i)]
plt.plot(x_1[i],y_1[i])
plt.axis('scaled')
plt.show()
Poly1 = Polygon(zip(x_1[0],y_1[0]))
Poly2 = Polygon(zip(x_1[1],y_1[1]))
Poly3 = Polygon(zip(x_1[2],y_1[2]))
Poly4 = Polygon(zip(x_1[3],y_1[3]))
Poly5 = Polygon(zip(x_1[4],y_1[4]))
Poly6 = Polygon(zip(x_1[5],y_1[5]))
Poly7 = Polygon(zip(x_1[6],y_1[6]))
polygons = [Poly1,Poly2,Poly3,Poly4,Poly5,Poly6,Poly7]
boundary = cascaded_union(polygons)
您的所有几何图形都无效。
[p.is_valid for p in polygons] # [False, False, False, ...]
如果仔细观察绘图,则用于每个线性化的线在起点和终点附近交叉。这会使多边形无效,从而不可避免地产生不可预测的结果。
以下是我对您所做工作的看法:
# Discard the first and last points from each list of coordinates
x_2 = x_1[:, 1:-1]
y_2 = y_1[:, 1:-1]
# Build a list of polygons
polygons = [Polygon(zip(x_2[i], y_2[i])) for i in range(x_2.shape[0])]
boundary = cascaded_union(polygons) # POLYGON ((-1.343821678336245 0.4932102...
问题内容: 我有一个列表,说temp_list具有以下属性: 现在,当我转换为numpy数组时, 我收到错误消息: 有人可以帮我吗? 问题答案: 列表中至少有一项不是三维的,或者其第二维或第三维与其他元素不匹配。如果仅第一维不匹配,则数组仍然匹配,但是作为单独的对象,不会尝试将它们协调为新的(四维)数组。下面是一些示例: 也就是说,冒犯元件的, 或(与是非负整数)。 那就是给你错误的原因。 您需要
若要使用形状生成器工具创建形状,请执行下列操作: 创建要应用“形状生成器工具”的形状。 使用“选择”工具,选择需要合并来创建形状的路径。 注意:请确保仅选择需要应用该工具的路径。如果在合并前全选路径,将会出现性能开销。 从工具面板或按 Shift+M 选择“形状生成器工具”。默认情况下,该工具处于合并模式;在此模式下,您可以合并不同的路径。在此模式下,指针显示为 。 识别您要选取或合并的选区。 若
问题内容: 我是TensorFlow和机器学习的新手。我正在尝试将两个对象归类为杯子和Pendrive(jpeg图像)。我已经成功训练并导出了model.ckpt。现在,我正在尝试恢复保存的model.ckpt以进行预测。这是脚本: 当我运行上述脚本进行预测时,出现以下错误: 我究竟做错了什么?以及如何修复numpy数组的形状? 问题答案: 形状为。 您的输入占位符的形状为。 问题是您要为占位符提
虽然这一形状的名字叫立方体(CubeGeometry),但它其实是长方体,也就是长宽高可以设置为不同的值。其构造函数是: THREE.CubeGeometry(width, height, depth, widthSegments, heightSegments, depthSegments) 这里,width是x方向上的长度;height是y方向上的长度;depth是z方向上的长度;后三个参数
在创建物体时,需要传入两个参数,一个是几何形状(Geometry),另一个是材质(Material)。本章将介绍几何形状的创建,第4章介绍材质,第5章介绍如何使用这两者创建网格。 几何形状(Geometry)最主要的功能是储存了一个物体的顶点信息。WebGL需要程序员指定每个顶点的位置,而在Three.js中,可以通过指定一些特征来创建几何形状,例如使用半径创建一个球体,从而省去程序员一个个指定顶
我想创建一个多边形从形状点。