-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IDL 8 plotting wrappers #3
base: master
Are you sure you want to change the base?
Conversation
Thanks for this. I have been trying to figure out a way to support this without having to write special function wrappers but I haven't found a good solution yet. Ultimately, I think we would have to write a custom graphics device that sends the data directly to the jupyter/ipython client over a ZeroMQ socket. But I have no idea how to do that or if its even possible. @mgalloy any ideas? At some point we may want to consider writing a native idl kernel so we would have more flexibility on issues like this. I'll merge this in once we have determined that there isn't a better way. |
Yes, I'd much prefer a non-wrapper solution, but couldn't find one after a moderate amount of research. Thanks for the work on this as well - I know a fair few people who will want to use Jupyter with IDL. |
I'm not sure about the custom graphics device. There is stuff about it in idl_export.h, but I don't see any explanation in the EDG, so I'm not sure how that would work — I've never done anything with it. But, in any case, I've seen some public demos of integration of Python and IDL in IDL 8.5. There will be bridges both ways and official Jupyter support. I think IDL 8.5. is tentatively scheduled for this fall. |
Its good to hear that there will be an official Jupyter support although I do hope they plan to make at least the kernel open source so it can better keep up with Jupyter's rate of development and possible API changes. I'll look into the idl_export.h and see if it can be used. I've been meaning to look into it for a separate project anyway. |
I've implemented wrappers for IDL 8 plot functions. They are a set of IDL .pro files with a j prefix (for Jupyter) to the relevant function name. They enable non-windowed mode, and add the resulting plot object to an array pointed to by a system variable in the kernel. This array is cycled through in the kernel postprocessor and each is written out to an appropriate png file.
Some consideration might be necessary in how to best package the .pro files - should they be bundled in to the kernel install location, and an appropriate change to IDL's !PATH made by the kernel? For now I'm just leaving them as present here but not explicitly incorporated.
I'm also maintaining a separate fork for Mac compatibility. This is mostly not included, but the 'device,retain=2' is needed on a Mac and I believe should be harmless on other systems at worst?