基于cc3d处理球面时空数据的3D连通组件周期边界问题
球面上时空连通特征识别的周期边界(日界线)问题
我正尝试识别球面上的时空连通特征,使用cc3d包已完成90%的工作,但在处理日界线(即三维中的某一维周期边界条件)时遇到困难。
在2D地图中,问题十分明显:南极附近0经度处,本应连通的区域被标记为不同部分。这是因为数据的经度范围定义为0到360(为更直观展示问题,我将其转换为-180到180显示)。
我尝试的两种常规解决方案均无效:
- 将反子午线切换至太平洋区域仅会转移问题,无法解决根本问题;
- 在右边界拼接数据副本会导致原始左侧与粘贴的右侧数据间的标签出现歧义,同样不可行。
最小可复现示例(MWE)
以下是该问题在二维场景下的简化复现代码:
import cc3d import numpy as np import matplotlib.pyplot as plt arr = np.sin(np.random.RandomState(0).randn(100).reshape(10, 10)) > .3 labels = cc3d.connected_components(arr) map = plt.pcolormesh(labels, vmin=.5) map.cmap.set_under('none')
在该示例中,右上角的黄色结构应与顶部其余结构连通,底部的两个结构也应连通。请注意,有效的解决方案需同时适用于三维连通特征识别。
恳请各位提供可行的解决思路。
内容的提问来源于stack exchange,提问作者Lukas
相关产品推荐
相关产品推荐

