Documented functions with links to source¶
Program to interactively explore grid searches according to different criteria
-
class
seggridexplore.SegGridExplorePar[source]¶ Class to initiate default dictionary with input parameters including help and range values and status dictionary
Methods
define_parameters_and_their_properties
define_program_states
set_file_prefix_symmetry_grid
set_parameter_pair_to_be_extracted
set_reconstitute_grid
set_subgrid_merge_option
-
class
seggridexplore.SegGridExploreSupport[source]¶ Methods
Converts None objects to nan, for use in NumPy arrays.
get_all_attr_from_search_result
get_common_criterias
get_criterias
get_general_grid_parameters
get_grid_information_from_database
get_rises_and_rotations_and_entered_symmetry_grid
-
convert_None2nan(x)[source]¶ Converts None objects to nan, for use in NumPy arrays. Returns an array. >>> from spring.segment3d.seggridexplore import SegGridExploreSupport >>> SegGridExploreSupport().convert_None2nan(5*[None]) [nan, nan, nan, nan, nan]
-
-
class
seggridexplore.SegGridExploreGuiPane(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())[source]¶ Methods
PaintDeviceMetric- Attributes
RenderFlag- Attributes
RenderFlags(…)acceptDrops(self)accessibleDescription(self)accessibleName(self)actionEvent(self, QActionEvent)actions(self)activateWindow(self)addAction(self, QAction)addActions(self, object)adjustSize(self)autoFillBackground(self)backgroundRole(self)baseSize(self)blockSignals(self, bool)changeEvent(self, QEvent)childAt(self, QPoint)childAt(self, int, int) -> QWidget
childEvent(self, QChildEvent)children(self)childrenRect(self)childrenRegion(self)clearFocus(self)clearMask(self)close(self)closeEvent(self, QCloseEvent)colorCount(self)connectNotify(self, QMetaMethod)contentsMargins(self)contentsRect(self)contextMenuEvent(self, QContextMenuEvent)contextMenuPolicy(self)create(self, window, initializeWindow, …)createWindowContainer(QWindow, parent, …)cursor(self)customContextMenuRequestedcustomContextMenuRequested(self, QPoint) [signal]
customEvent(self, QEvent)deleteLater(self)depth(self)destroy(self, destroyWindow, destroySubWindows)destroyeddestroyed(self, QObject = None) [signal]
devType(self)devicePixelRatio(self)devicePixelRatioF(self)devicePixelRatioFScale()disconnect(self)disconnectNotify(self, QMetaMethod)dragEnterEvent(self, QDragEnterEvent)dragLeaveEvent(self, QDragLeaveEvent)dragMoveEvent(self, QDragMoveEvent)dropEvent(self, QDropEvent)dumpObjectInfo(self)dumpObjectTree(self)dynamicPropertyNames(self)effectiveWinId(self)ensurePolished(self)enterEvent(self, QEvent)event(self, QEvent)eventFilter(self, QObject, QEvent)find(sip.voidptr)findChild(self, type, name, options, …)findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject
findChildren(self, type, name, options, …)findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject]
focusInEvent(self, QFocusEvent)focusNextChild(self)focusNextPrevChild(self, bool)focusOutEvent(self, QFocusEvent)focusPolicy(self)focusPreviousChild(self)focusProxy(self)focusWidget(self)font(self)fontInfo(self)fontMetrics(self)foregroundRole(self)frameGeometry(self)frameSize(self)geometry(self)getContentsMargins(self)grab(self, rectangle)grabGesture(self, Qt.GestureType, flags, …)grabKeyboard(self)grabMouse(self) grabMouse(self, …)grabShortcut(self, Union[QKeySequence, …)graphicsEffect(self)graphicsProxyWidget(self)hasFocus(self)hasHeightForWidth(self)hasMouseTracking(self)height(self)heightForWidth(self, int)heightMM(self)hide(self)hideEvent(self, QHideEvent)inherits(self, str)initPainter(self, QPainter)inputMethodEvent(self, QInputMethodEvent)inputMethodHints(self)inputMethodQuery(self, Qt.InputMethodQuery)insertAction(self, QAction, QAction)insertActions(self, QAction, Iterable[QAction])installEventFilter(self, QObject)isActiveWindow(self)isAncestorOf(self, QWidget)isEnabled(self)isEnabledTo(self, QWidget)isFullScreen(self)isHidden(self)isLeftToRight(self)isMaximized(self)isMinimized(self)isModal(self)isRightToLeft(self)isSignalConnected(self, QMetaMethod)isVisible(self)isVisibleTo(self, QWidget)isWidgetType(self)isWindow(self)isWindowModified(self)isWindowType(self)keyPressEvent(self, QKeyEvent)keyReleaseEvent(self, QKeyEvent)keyboardGrabber()killTimer(self, int)layout(self)layoutDirection(self)leaveEvent(self, QEvent)locale(self)logicalDpiX(self)logicalDpiY(self)lower(self)mapFrom(self, QWidget, QPoint)mapFromGlobal(self, QPoint)mapFromParent(self, QPoint)mapTo(self, QWidget, QPoint)mapToGlobal(self, QPoint)mapToParent(self, QPoint)mask(self)maximumHeight(self)maximumSize(self)maximumWidth(self)metaObject(self)metric(self, QPaintDevice.PaintDeviceMetric)minimumHeight(self)minimumSize(self)minimumSizeHint(self)minimumWidth(self)mouseDoubleClickEvent(self, QMouseEvent)mouseGrabber()mouseMoveEvent(self, QMouseEvent)mousePressEvent(self, QMouseEvent)mouseReleaseEvent(self, QMouseEvent)move(self, QPoint) move(self, int, int)moveEvent(self, QMoveEvent)moveToThread(self, QThread)nativeEvent(self, Union[QByteArray, bytes, …)nativeParentWidget(self)nextInFocusChain(self)normalGeometry(self)objectName(self)objectNameChangedobjectNameChanged(self, str) [signal]
overrideWindowFlags(self, …)overrideWindowState(self, …)paintEngine(self)paintEvent(self, QPaintEvent)paintingActive(self)palette(self)parent(self)parentWidget(self)physicalDpiX(self)physicalDpiY(self)pos(self)previousInFocusChain(self)property(self, str)pyqtConfigure(…)Each keyword argument is either the name of a Qt property or a Qt signal.
raise_(self)receivers(self, PYQT_SIGNAL)rect(self)releaseKeyboard(self)releaseMouse(self)releaseShortcut(self, int)removeAction(self, QAction)removeEventFilter(self, QObject)render(self, QPaintDevice, targetOffset, …)repaint(self) repaint repaint repaint(self, …)resize(self, QSize) resize(self, int, int)resizeEvent(self, QResizeEvent)restoreGeometry(self, Union[QByteArray, …)saveGeometry(self)scroll(self, int, int) scroll(self, int, …)sender(self)senderSignalIndex(self)setAcceptDrops(self, bool)setAccessibleDescription(self, str)setAccessibleName(self, str)setAttribute(self, Qt.WidgetAttribute, on)setAutoFillBackground(self, bool)setBackgroundRole(self, QPalette.ColorRole)setBaseSize(self, int, …)setContentsMargins(self, int, int, int, …)setContextMenuPolicy(self, Qt.ContextMenuPolicy)setCursor(self, Union[QCursor, Qt.CursorShape])setDisabled(self, bool)setEnabled(self, bool)setFixedHeight(self, int)setFixedSize(self, QSize) setFixedSize(self, …)setFixedWidth(self, int)setFocus(self) setFocus(self, Qt.FocusReason)setFocusPolicy(self, Qt.FocusPolicy)setFocusProxy(self, QWidget)setFont(self, QFont)setForegroundRole(self, QPalette.ColorRole)setGeometry(self, QRect) setGeometry(self, …)setGraphicsEffect(self, QGraphicsEffect)setHidden(self, bool)setInputMethodHints(self, …)setLayout(self, QLayout)setLayoutDirection(self, Qt.LayoutDirection)setLocale(self, QLocale)setMask(self, QBitmap) setMask(self, QRegion)setMaximumHeight(self, int)setMaximumSize(self, int, …)setMaximumWidth(self, int)setMinimumHeight(self, int)setMinimumSize(self, int, …)setMinimumWidth(self, int)setMouseTracking(self, bool)setObjectName(self, str)setPalette(self, QPalette)setParent(self, QWidget) setParent(self, …)setProperty(self, str, Any)setShortcutAutoRepeat(self, int, enabled)setShortcutEnabled(self, int, enabled)setSizeIncrement(self, int, …)setSizePolicy(self, …)setStatusTip(self, str)setStyle(self, QStyle)setStyleSheet(self, str)setTabOrder(QWidget, QWidget)setToolTip(self, str)setToolTipDuration(self, int)setUpdatesEnabled(self, bool)setVisible(self, bool)setWhatsThis(self, str)setWindowFilePath(self, str)setWindowFlags(self, Union[Qt.WindowFlags, …)setWindowIcon(self, QIcon)setWindowIconText(self, str)setWindowModality(self, Qt.WindowModality)setWindowModified(self, bool)setWindowOpacity(self, float)setWindowRole(self, str)setWindowState(self, Union[Qt.WindowStates, …)setWindowTitle(self, str)sharedPainter(self)show(self)showEvent(self, QShowEvent)showFullScreen(self)showMaximized(self)showMinimized(self)showNormal(self)signalsBlocked(self)size(self)sizeHint(self)sizeIncrement(self)sizePolicy(self)stackUnder(self, QWidget)startTimer(self, int, timerType)statusTip(self)style(self)styleSheet(self)tabletEvent(self, QTabletEvent)testAttribute(self, Qt.WidgetAttribute)thread(self)timerEvent(self, QTimerEvent)toolTip(self)toolTipDuration(self)tr(self, str, disambiguation, n)underMouse(self)ungrabGesture(self, Qt.GestureType)unsetCursor(self)unsetLayoutDirection(self)unsetLocale(self)update(self) update update update(self, int, …)updateGeometry(self)updateMicroFocus(self)updatesEnabled(self)visibleRegion(self)whatsThis(self)wheelEvent(self, QWheelEvent)width(self)widthMM(self)winId(self)window(self)windowFilePath(self)windowFlags(self)windowHandle(self)windowIcon(self)windowIconChangedwindowIconChanged(self, QIcon) [signal]
windowIconText(self)windowIconTextChangedwindowIconTextChanged(self, str) [signal]
windowModality(self)windowOpacity(self)windowRole(self)windowState(self)windowTitle(self)windowTitleChangedwindowTitleChanged(self, str) [signal]
windowType(self)x(self)y(self)add_1d_plot
add_3d_surface_tab
add_additional_1d_tab
define_2d_index_for_1d_profile
define_labels_for_1d_profile
exitApp
get_corresponding_symmetry_pair_from_picked_indices
get_stack_index_from_rise_and_rotation_index
launch_external_viewer_from_index
launch_external_viewers
launch_external_viewers_from1d
launch_external_viewers_from_index_pair
prepare_table_matrix_from_symmetry_grid_pairs
setup_matrix_image_plot
-
class
seggridexplore.SegGridExploreGui(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())[source]¶ Methods
PaintDeviceMetric- Attributes
RenderFlag- Attributes
RenderFlags(…)acceptDrops(self)accessibleDescription(self)accessibleName(self)actionEvent(self, QActionEvent)actions(self)activateWindow(self)addAction(self, QAction)addActions(self, object)adjustSize(self)autoFillBackground(self)backgroundRole(self)baseSize(self)blockSignals(self, bool)changeEvent(self, QEvent)childAt(self, QPoint)childAt(self, int, int) -> QWidget
childEvent(self, QChildEvent)children(self)childrenRect(self)childrenRegion(self)clearFocus(self)clearMask(self)close(self)closeEvent(self, QCloseEvent)colorCount(self)connectNotify(self, QMetaMethod)contentsMargins(self)contentsRect(self)contextMenuEvent(self, QContextMenuEvent)contextMenuPolicy(self)convert_None2nan(x)Converts None objects to nan, for use in NumPy arrays.
create(self, window, initializeWindow, …)createWindowContainer(QWindow, parent, …)cursor(self)customContextMenuRequestedcustomContextMenuRequested(self, QPoint) [signal]
customEvent(self, QEvent)deleteLater(self)depth(self)destroy(self, destroyWindow, destroySubWindows)destroyeddestroyed(self, QObject = None) [signal]
devType(self)devicePixelRatio(self)devicePixelRatioF(self)devicePixelRatioFScale()disconnect(self)disconnectNotify(self, QMetaMethod)dragEnterEvent(self, QDragEnterEvent)dragLeaveEvent(self, QDragLeaveEvent)dragMoveEvent(self, QDragMoveEvent)dropEvent(self, QDropEvent)dumpObjectInfo(self)dumpObjectTree(self)dynamicPropertyNames(self)effectiveWinId(self)ensurePolished(self)enterEvent(self, QEvent)event(self, QEvent)eventFilter(self, QObject, QEvent)find(sip.voidptr)findChild(self, type, name, options, …)findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject
findChildren(self, type, name, options, …)findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegExp, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, type, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] findChildren(self, Tuple, QRegularExpression, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject]
focusInEvent(self, QFocusEvent)focusNextChild(self)focusNextPrevChild(self, bool)focusOutEvent(self, QFocusEvent)focusPolicy(self)focusPreviousChild(self)focusProxy(self)focusWidget(self)font(self)fontInfo(self)fontMetrics(self)foregroundRole(self)frameGeometry(self)frameSize(self)geometry(self)getContentsMargins(self)grab(self, rectangle)grabGesture(self, Qt.GestureType, flags, …)grabKeyboard(self)grabMouse(self) grabMouse(self, …)grabShortcut(self, Union[QKeySequence, …)graphicsEffect(self)graphicsProxyWidget(self)hasFocus(self)hasHeightForWidth(self)hasMouseTracking(self)height(self)heightForWidth(self, int)heightMM(self)hide(self)hideEvent(self, QHideEvent)inherits(self, str)initPainter(self, QPainter)inputMethodEvent(self, QInputMethodEvent)inputMethodHints(self)inputMethodQuery(self, Qt.InputMethodQuery)insertAction(self, QAction, QAction)insertActions(self, QAction, Iterable[QAction])installEventFilter(self, QObject)isActiveWindow(self)isAncestorOf(self, QWidget)isEnabled(self)isEnabledTo(self, QWidget)isFullScreen(self)isHidden(self)isLeftToRight(self)isMaximized(self)isMinimized(self)isModal(self)isRightToLeft(self)isSignalConnected(self, QMetaMethod)isVisible(self)isVisibleTo(self, QWidget)isWidgetType(self)isWindow(self)isWindowModified(self)isWindowType(self)keyPressEvent(self, QKeyEvent)keyReleaseEvent(self, QKeyEvent)keyboardGrabber()killTimer(self, int)layout(self)layoutDirection(self)leaveEvent(self, QEvent)locale(self)logicalDpiX(self)logicalDpiY(self)lower(self)mapFrom(self, QWidget, QPoint)mapFromGlobal(self, QPoint)mapFromParent(self, QPoint)mapTo(self, QWidget, QPoint)mapToGlobal(self, QPoint)mapToParent(self, QPoint)mask(self)maximumHeight(self)maximumSize(self)maximumWidth(self)metaObject(self)metric(self, QPaintDevice.PaintDeviceMetric)minimumHeight(self)minimumSize(self)minimumSizeHint(self)minimumWidth(self)mouseDoubleClickEvent(self, QMouseEvent)mouseGrabber()mouseMoveEvent(self, QMouseEvent)mousePressEvent(self, QMouseEvent)mouseReleaseEvent(self, QMouseEvent)move(self, QPoint) move(self, int, int)moveEvent(self, QMoveEvent)moveToThread(self, QThread)nativeEvent(self, Union[QByteArray, bytes, …)nativeParentWidget(self)nextInFocusChain(self)normalGeometry(self)objectName(self)objectNameChangedobjectNameChanged(self, str) [signal]
overrideWindowFlags(self, …)overrideWindowState(self, …)paintEngine(self)paintEvent(self, QPaintEvent)paintingActive(self)palette(self)parent(self)parentWidget(self)physicalDpiX(self)physicalDpiY(self)pos(self)previousInFocusChain(self)property(self, str)pyqtConfigure(…)Each keyword argument is either the name of a Qt property or a Qt signal.
raise_(self)receivers(self, PYQT_SIGNAL)rect(self)releaseKeyboard(self)releaseMouse(self)releaseShortcut(self, int)removeAction(self, QAction)removeEventFilter(self, QObject)render(self, QPaintDevice, targetOffset, …)repaint(self) repaint repaint repaint(self, …)resize(self, QSize) resize(self, int, int)resizeEvent(self, QResizeEvent)restoreGeometry(self, Union[QByteArray, …)saveGeometry(self)scroll(self, int, int) scroll(self, int, …)sender(self)senderSignalIndex(self)setAcceptDrops(self, bool)setAccessibleDescription(self, str)setAccessibleName(self, str)setAttribute(self, Qt.WidgetAttribute, on)setAutoFillBackground(self, bool)setBackgroundRole(self, QPalette.ColorRole)setBaseSize(self, int, …)setContentsMargins(self, int, int, int, …)setContextMenuPolicy(self, Qt.ContextMenuPolicy)setCursor(self, Union[QCursor, Qt.CursorShape])setDisabled(self, bool)setEnabled(self, bool)setFixedHeight(self, int)setFixedSize(self, QSize) setFixedSize(self, …)setFixedWidth(self, int)setFocus(self) setFocus(self, Qt.FocusReason)setFocusPolicy(self, Qt.FocusPolicy)setFocusProxy(self, QWidget)setFont(self, QFont)setForegroundRole(self, QPalette.ColorRole)setGeometry(self, QRect) setGeometry(self, …)setGraphicsEffect(self, QGraphicsEffect)setHidden(self, bool)setInputMethodHints(self, …)setLayout(self, QLayout)setLayoutDirection(self, Qt.LayoutDirection)setLocale(self, QLocale)setMask(self, QBitmap) setMask(self, QRegion)setMaximumHeight(self, int)setMaximumSize(self, int, …)setMaximumWidth(self, int)setMinimumHeight(self, int)setMinimumSize(self, int, …)setMinimumWidth(self, int)setMouseTracking(self, bool)setObjectName(self, str)setPalette(self, QPalette)setParent(self, QWidget) setParent(self, …)setProperty(self, str, Any)setShortcutAutoRepeat(self, int, enabled)setShortcutEnabled(self, int, enabled)setSizeIncrement(self, int, …)setSizePolicy(self, …)setStatusTip(self, str)setStyle(self, QStyle)setStyleSheet(self, str)setTabOrder(QWidget, QWidget)setToolTip(self, str)setToolTipDuration(self, int)setUpdatesEnabled(self, bool)setVisible(self, bool)setWhatsThis(self, str)setWindowFilePath(self, str)setWindowFlags(self, Union[Qt.WindowFlags, …)setWindowIcon(self, QIcon)setWindowIconText(self, str)setWindowModality(self, Qt.WindowModality)setWindowModified(self, bool)setWindowOpacity(self, float)setWindowRole(self, str)setWindowState(self, Union[Qt.WindowStates, …)setWindowTitle(self, str)sharedPainter(self)show(self)showEvent(self, QShowEvent)showFullScreen(self)showMaximized(self)showMinimized(self)showNormal(self)signalsBlocked(self)size(self)sizeHint(self)sizeIncrement(self)sizePolicy(self)stackUnder(self, QWidget)startTimer(self, int, timerType)statusTip(self)style(self)styleSheet(self)tabletEvent(self, QTabletEvent)testAttribute(self, Qt.WidgetAttribute)thread(self)timerEvent(self, QTimerEvent)toolTip(self)toolTipDuration(self)tr(self, str, disambiguation, n)underMouse(self)ungrabGesture(self, Qt.GestureType)unsetCursor(self)unsetLayoutDirection(self)unsetLocale(self)update(self) update update update(self, int, …)updateGeometry(self)updateMicroFocus(self)updatesEnabled(self)visibleRegion(self)whatsThis(self)wheelEvent(self, QWheelEvent)width(self)widthMM(self)winId(self)window(self)windowFilePath(self)windowFlags(self)windowHandle(self)windowIcon(self)windowIconChangedwindowIconChanged(self, QIcon) [signal]
windowIconText(self)windowIconTextChangedwindowIconTextChanged(self, str) [signal]
windowModality(self)windowOpacity(self)windowRole(self)windowState(self)windowTitle(self)windowTitleChangedwindowTitleChanged(self, str) [signal]
windowType(self)x(self)y(self)get_all_attr_from_search_result
get_common_criterias
get_criterias
get_general_grid_parameters
get_grid_information_from_database
get_rises_and_rotations_and_entered_symmetry_grid
saveEmFile
update_panes
-
class
seggridexplore.SegGridExploreMerge(parset=None)[source]¶ Methods
>>> from spring.segment3d.seggridexplore import SegGridExplore
merge_grids_from_files
merge_subgrids_into_single_grid_file
perform_simple_additive_merge
update_new_grid_min_and_max_after_merge
write_symbolic_links_to_have_merged_data_in_one_place
-
check_whether_seamless_grid_merging_is_possible(primary_min, primary_max, primary_inc)[source]¶ >>> from spring.segment3d.seggridexplore import SegGridExplore >>> s = SegGridExplore() >>> s.check_whether_seamless_grid_merging_is_possible([16.25, 16.36], [16.35, 16.45], [0.01]) >>> s.check_whether_seamless_grid_merging_is_possible([16.25, 16.38], [16.35, 16.45], [0.01]) Traceback (most recent call last): File '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/doctest.py', line 1254, in __run compileflags, 1) in test.globs File '<doctest spring.segment3d.seggridexplore.SegGridExploreMerge.check_whether_seamless_grid_merging_is_possible[3]>', line 1, in <module> s.check_whether_seamless_grid_merging_is_possible([16.25, 16.38], [16.35, 16.45], [0.01]) File '/Users/sachse/Documents/en_casa/EMBL/08_python/26_springbox/develop-eggs/spring-dev/spring/segment3d/seggridexplore.py', line 517, in check_whether_seamless_grid_merging_is_possible raise ValueError(msg) ValueError: You have specified grid datbases to be merged that can not be merged seamlessly without gaps into a continuous grid.
-
update_new_grid_min_and_max_after_merge(primary_min, primary_max, second_min, second_max, merged_session)[source]¶
-
-
class
seggridexplore.SegGridExplore(parset=None)[source]¶ Methods
check_whether_seamless_grid_merging_is_possible(…)>>> from spring.segment3d.seggridexplore import SegGridExplore
extract_desired_em_files
launch_seggridexplore
launch_seggridexplore_gui
merge_grids_from_files
merge_subgrids_into_single_grid_file
perform_simple_additive_merge
update_new_grid_min_and_max_after_merge
write_symbolic_links_to_have_merged_data_in_one_place
