我现在正在处理模型输出,我似乎无法想出一个很好的方法来组合两个数据数组。数组A和B存储不同的数据,每个数组中的条目对应于某个空间(x,y)点——A保存一些参数,B保存模型输出。问题是B是a的一个空间分段——也就是说,如果模型是针对整个世界的,a将存储地球上每个点的参数,而B只存储非洲这些点的模型输出。在
所以我需要找出B与A的偏移量——换句话说,我需要找出它们开始重叠的索引。如果A.shape=(10001500),那么B是(750:850,200:300)的一部分,还是(783:835427:440)小节?我有与A和B关联的数组,它们存储每个网格点的(x,y)位置。在
这似乎是一个简单的问题——找出两个数组重叠的地方。我可以用凌乱的空间的KDTree很简单,但速度很慢。有什么更好的主意吗?在
你能多说几句吗?你用什么型号的?你在做什么模特?如何计算?在
你能使尺寸匹配以避免配合吗?(也就是说,如果B不依赖于A的所有部分,则只插入B所建模的A部分,或者计算B中不与A重叠的部分的无聊值,并在以后删除这些值)
在这种情况下,答案应该很简单。。。在
这两个网格是否严格在同一网格方案上?假设他们是,你可以做一些类似的事情:
假设两个网格的世界坐标以与网格的指示符相同的方向增加,这将给出子网格的左下角。(如果它们不在同一方向上增加(即负数
dx
或dy
),则只给出另一个角点)在下面的例子中,我们显然可以从
^{pr2}$ix = (Bxmin - Axmin) / dx
等计算适当的指标,但是假设你有一个更复杂的网格系统,这仍然可以工作。然而,这是假设两个网格在同一网格方案上!如果他们不是。。。在那么您是从A中还是从B中查找索引?B是严格矩形的吗?在
找到B的边界盒或凸壳是非常便宜的。在
相关问题 更多 >
编程相关推荐