Skip to content

Commit bf11d5f

Browse files
committed
added olsen nd2
1 parent 3f16dcb commit bf11d5f

File tree

6 files changed

+51
-15
lines changed

6 files changed

+51
-15
lines changed

sandbox/qt-plotly/myPlot.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77

88
from IPython.display import display
99

10+
"""
11+
Requires
12+
pip install PyQtWebEngine
13+
pip install ipywidgets
14+
"""
15+
1016
def plot():
1117
# fig = go.Figure(data=[go.Scattergl(x=[1, 2, 3], y=[4, 5, 6])])
1218
x=[1, 2, 3]
@@ -20,7 +26,7 @@ def plot():
2026

2127
out = Output()
2228

23-
class Backend(QtCore.QObject):
29+
class myBackend(QtCore.QObject):
2430
pointChanged = QtCore.Signal(float, float)
2531

2632
# @QtCore.Signal(float,float)
@@ -34,7 +40,7 @@ def __init__(self, parent=None):
3440

3541
# self.button = QtWidgets.QPushButton('Plot', self)
3642
# self.browser = QtWebEngineWidgets.QWebEngineView(self)
37-
self.browser = QtWebEngineWidgets.QWebEngineView()
43+
self.browser: QtWebEngineWidgets.QWebEngineView = QtWebEngineWidgets.QWebEngineView()
3844

3945
# self.vlayout = QtWidgets.QVBoxLayout(self)
4046
# self.vlayout.addWidget(self.button, alignment=QtCore.Qt.AlignHCenter)
@@ -55,20 +61,23 @@ def onPointChanged(self, x, y):
5561
def plot2(self):
5662
# map_view = QtWebEngineWidgets.QWebEngineView()
5763

58-
backend = Backend(self)
64+
backend = myBackend(self)
5965
backend.pointChanged.connect(self.onPointChanged)
66+
6067
channel = QtWebChannel.QWebChannel(self)
6168
channel.registerObject('backend', backend)
69+
6270
self.browser.page().setWebChannel(channel)
6371

6472
# file = QtCore.QDir.current().absoluteFilePath("index.html")
6573
# map_view.load(QtCore.QUrl.fromLocalFile(file))
6674

6775
x=[1, 2, 3]
6876
y=[4, 5, 6]
69-
self.fig = go.FigureWidget([go.Scatter(x=x, y=y, mode='markers')])
77+
self.fig : go.FigureWidget = go.FigureWidget([go.Scatter(x=x, y=y, mode='markers')])
7078

71-
scatter = self.fig.data[0]
79+
# The data property is a tuple of the figure's trace objects
80+
scatter = self.fig.data[0] # FigureWidget
7281
scatter.on_click(self.update_point)
7382

7483
self.browser.setHtml(self.fig.to_html(include_plotlyjs='cdn'))
@@ -81,6 +90,7 @@ def plot2(self):
8190

8291
@out.capture(clear_output=True)
8392
def update_point(self, trace, points, selector):
93+
sys.exit(1)
8494
print('!!!!')
8595

8696
def show_graph(self):

sandbox/qt-plotly/utils.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ window.onload = function() {
1212
var mapDiv = 'map' + suffix;
1313
var map = API.map(mapDiv, {
1414
center: [51.505, -0.09],
15+
// center: [38.575764, -121.478851],
1516
zoom: 4,
1617
dragging: true,
1718
scrollWheelZoom: true,
@@ -30,12 +31,14 @@ window.onload = function() {
3031
"name": "Grand Canyon USGS",
3132
"format": "png",
3233
"bounds": [15.976953506469728, 45.813157465613884],
34+
// "bounds": [38.575764, -121.478851],
3335
"minzoom": 10,
3436
"version": "1.0.0",
3537
"maxzoom": 16,
3638
"center": [15.976953506469728,
3739
45.813157465613884, 16
3840
],
41+
// "center": [38.575764, -121.478851],
3942
"type": "overlay",
4043
"description": "",
4144
"basename": "grandcanyon",

src/pymapmanager/interface2/mainMenus.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,8 @@ def _refreshFileMenu(self):
425425

426426
frontWindow = self.getApp().getFrontWindow()
427427

428+
logger.warning(f'frontWindow is:{frontWindow}')
429+
428430
if isinstance(frontWindow, (mmWidget2, mapWidget)):
429431
if frontWindow.getPath().endswith('.mmap.zip'):
430432
enableSave = False

src/pymapmanager/interface2/openFirstWindow.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,12 @@
1313
from qtpy import QtCore, QtWidgets, QtGui
1414

1515
import pymapmanager
16-
from pymapmanager.interface2.mainWindow import MainWindow
16+
# from pymapmanager.interface2.mainWindow import MainWindow
1717

1818
from pymapmanager._logger import logger
1919

20-
class OpenFirstWindow(MainWindow):
20+
# class OpenFirstWindow(MainWindow):
21+
class OpenFirstWindow(QtWidgets.QMainWindow):
2122
"""A file/folder loading window.
2223
2324
Open this at app start and close once a file/folder is loaded
@@ -29,6 +30,9 @@ def __init__(self,
2930

3031
self._app : PyMapManagerApp = pyMapManagerApp
3132

33+
self.statusBar = QtWidgets.QStatusBar()
34+
self.setStatusBar(self.statusBar)
35+
3236
# self.recentStackList = self.getApp().getConfigDict().getRecentStacks()
3337
# self.recentMapList = self.getApp().getConfigDict().getRecentMaps()
3438

@@ -53,8 +57,15 @@ def __init__(self,
5357

5458
self.setWindowTitle('MapManager Open Files and Folders')
5559

56-
# def getApp(self):
57-
# return self._app
60+
def setStatus(self, txt : str):
61+
self.statusBar.showMessage(txt)
62+
63+
def getApp(self) -> "pymapmanager.interface2.PyMapManagerApp":
64+
"""Get running application.
65+
"""
66+
# from PyQt5.QtWidgets import QApplication
67+
# return QApplication.instance()
68+
return self._app
5869

5970
# def _makeRecentTable(self, pathList : List[str], headerStr = ''):
6071
def _makeRecentTable(self, pathDictList : List[dict], headerStr = '') -> QtWidgets.QTableWidget:

src/pymapmanager/interface2/runInterfaceBob.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,27 @@ def run():
2727
# path = '/Users/cudmore/Desktop/multi_timepoint_map_seg_spine_connected.mmap'
2828
# path = mapmanagercore.data.getMultiTimepointMap()
2929

30-
path = '/Users/cudmore/Desktop/olsen_example.mmap'
30+
# path = '/Users/cudmore/Desktop/olsen_example.mmap'
31+
path = '/Users/cudmore/Desktop/example_nd2.mmap'
32+
path = '/Users/cudmore/Desktop/example_nd2.mmap.zip'
33+
path = '/Users/cudmore/Sites/MapManagerCore-Data/data/Animal_145_Slice_1_Right.mmap.zip'
34+
path = '/Users/cudmore/Desktop/Animal_145_Slice_1_Right.mmap.zip'
35+
36+
from mapmanagercore.data import getNd2Channel_1, getSingleTimepointMap_nd2
37+
path = getNd2Channel_1()
38+
path = getSingleTimepointMap_nd2()
3139

3240
app = PyMapManagerApp(sys.argv)
3341
# mw will be map widget if path has multiple timepoints, otherwise mw is a stackwidget2
42+
43+
logger.info(f'loading stack widget from path:{path}')
3444
mw = app.loadStackWidget(path)
3545

3646
# run a stack plugin
3747
# mw.runPlugin('Stack Contrast')
3848

3949
# works
40-
from pprint import pprint
50+
# from pprint import pprint
4151
# logger.info('getTimeSeriesCore')
4252
# pprint(mw.getTimeSeriesCore().getMapImages().metadata(0).experimentMetadata.getValue('Species'))
4353
# pprint(mw.getTimeSeriesCore().getMapImages().metadata(0).experimentMetadata.asDict())

src/pymapmanager/timeseriesCore.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -144,16 +144,16 @@ def __init__(self, path : str):
144144

145145
self._isDirty : bool = False
146146

147+
# when user drags/drops a mmap zarr DirectoryStore folder
148+
if path.endswith('/'):
149+
path = path[:-1]
150+
147151
# TODO just use endswith(), splitext does not handle '.ome.zarr'
148152
_ext = os.path.splitext(path)[1]
149-
# if path.endswith('.mmap') or path.endswith('.mmap/') or path.endswith('.mmap.zip'):
150153
if _ext in LOAD_SAVE_EXTENSIONS:
151154
self._load_zarr()
152155
elif path.endswith('.tif') or path.endswith('.nd2'):
153156
self._import_tiff()
154-
# elif path.endswith('.ome.zarr'):
155-
# elif path.endswith('.zarr') or path.endswith('.zarr/'):
156-
# self._import_ome_zarr()
157157
else:
158158
# TODO properly handle this
159159
logger.error(f'did not load file extension: "{_ext}"')

0 commit comments

Comments
 (0)