ratt-ru / meqtrees-timba

software system for implementing and solving arbitrary Measurement Equations
4 stars 5 forks source link

Divorce the GUI! #66

Closed o-smirnov closed 2 years ago

o-smirnov commented 3 years ago

As we move to KERN-7, there are many Qt issues to be resolved. Therefore I suggest we break out the browser into a separate package, meqtrees-browser, leaving zero Qt dependencies in meqtrees-timba. Work on porting the browser can proceed at its own pace then.

This should not be hard. The entirety of the browser code is under PyApps. We just need to retain the non-browser bits in PyApps. The meqtrees-pipelinerscript and all its dependencies, mequtils, PyApps/src/Meq, pynodes are the ones that come to mind.

bennahugo commented 3 years ago

Ok, I have already done some work towards this as is currently released - qt4 will be used if and only if it is on the system. Otherwise, the drop in signal events notification will take the president. So in principle, you should be able to move the files without much pain.

I think this affects @twillis449 so just tagging him in here.

bennahugo commented 3 years ago

The only issue is the Purr / kittens stuff also technically needs qt4. So maybe pyqt4 can just be added as optional dependency here?

twillis449 commented 3 years ago

I'll survive. :)

@o-smirnov - here's a couple of actual blockages - in Plugins these three pieces of code seem to need a complete update: array_browser.py, parmfiddler.py, and TableInspector.py These scripts all have some dependency on QTable. As far as I can see QTable has not been part of PyQt since PyQt3, so how its even worked with PyQt4 is beyond me. It probably needs to be replaced by QTableWidget but QTableWidget has some different API calls to QTable. You also import something called qttable which I can't find anywhere. I'm pretty sure ParmFiddler and TableInspectory are not mission-critical but array_browser certainly is. Bleagh!

bennahugo commented 3 years ago

I'm guessing this has gone nowhere fast - this package urgently needs love - there is just nothing that is as flexible in our arsenal. @twillis449 can you start a PR with what you have thus far (we can confidently assume that the plotting stuff is part of the debian package for qwt5 right - trigger has been quite successfully ported to qt5 with all its qwt. I will see if I can get back to it in September/October. Meqtrees is actually in the actual meerkat documentation on how to simulate various widefield effects (I wrote a whole tutorial for it https://skaafrica.atlassian.net/servicedesk/customer/portal/1/topic/bc9d6ad2-8321-4e13-a97a-d19d6d019a1c/article/305266763) and we need to build on top of it to support heterogeneous beams and delay errors

twillis449 commented 3 years ago

Because the original PyQwt package stopped being supported 'we' decided to switch to using PythonQwt (https://github.com/PierreRaybaut/PythonQwt) for the plotting stuff inside MeqTrees. That actually works fairly well (and the package's author reappeared last year and has actually made some fixes, updates etc). I will download the latest version and see how things are working. Unfortunately the original plotting designs were made around 2007 and did not anticipate SKA arrays with 20000 baselines, or telescopes with 10000 sprectral channels. As for the QT GUI stuff, I actually completed quite a bit of the conversion to PyQt5, but as I mentioned back in my message of Feb 12 the QTable module has disappeared because the qt people switched to a model-view-control (or whatever its called) and you have to use QTableView or QTbbleWidget in its place. However I will get the stuff together that I've done and send it to you.

As you say. MeqTrees is very good for simulations and I used it quite a bit up to 2013 for e.g. Focal Plane Array sims, pointing sims and polarization sims, mostly for ASKAP.

bennahugo commented 3 years ago

Thanks Tony. Yes I will have a look in a two or so weeks. Best is to start a PR - we can work with the python version of the qwt package - those decisions were based on what was available for 18.04

On Wed, 25 Aug 2021, 22:15 Tony Willis, @.***> wrote:

Because the original PyQwt package stopped being supported 'we' decided to switch to using PythonQwt (https://github.com/PierreRaybaut/PythonQwt) for the plotting stuff inside MeqTrees. That actually works fairly well (and the package's author reappeared last year and has actually made some fixes, updates etc). I will download the latest version and see how things are working. Unfortunately the original plotting designs were made around 2007 and did not anticipate SKA arrays with 20000 baselines, or telescopes with 10000 sprectral channels. As for the QT GUI stuff, I actually completed quite a bit of the conversion to PyQt5, but as I mentioned back in my message of Feb 12 the QTable module has disappeared because the qt people switched to a model-view-control (or whatever its called) and you have to use QTableView or QTbbleWidget in its place. However I will get the stuff together that I've done and send it to you.

As you say. MeqTrees is very good for simulations and I used it quite a bit up to 2013 for e.g. Focal Plane Array sims, pointing sims and polarization sims, mostly for ASKAP.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ska-sa/meqtrees-timba/issues/66#issuecomment-905842536, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB4RE6X6KQEXEQJTWG46OMTT6VFM7ANCNFSM4XQPM7TA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

twillis449 commented 3 years ago

I can start pushing some stuff from here. @o-smirnov I notice that the copyright for a lot of this stuff starts with

Copyright (C) 2002-2007

The MeqTree Foundation &

ASTRON (Netherlands Foundation for Research in Astronomy)

P.O.Box 2, 7990 AA Dwingeloo, The Netherlands

Do you want to get it changed to something more up-to-date?

twillis449 commented 3 years ago

Sigh - I don't have time to figure out this new authentication token stuff. When I do a git push it still asks me for a password. I'm leaving for a holiday till the end of September tomorrow AM. Anyway I'm attaching a tar file of my current PyApps directory. Hopefully you can use that. PyApps.tar.gz

bennahugo commented 3 years ago

Thanks @twillis449 I will push it and make a PR - it is as simple as using an ssh key to push by default

twillis449 commented 2 years ago

Sounds like you're getting there :} The current GUI would never work with current TByte+ sized visibility data sets in any case.

bennahugo commented 2 years ago

Ok this is fixed -- @twillis449 and @o-smirnov please note the install instructions have now changed quite substantially https://github.com/ska-sa/meqtrees/wiki/BuildFromSource

Although you can muck with PYTHONPATH, LD_LIBRARY_PATH, and PATH as before I highly recommend that you just install this into a virtualenv.

bennahugo commented 2 years ago

I've asked @Athanaseus to release the pipeliner for Kern 7 and above as all the dependencies, including casarest now have packages on 20.04.