Skip to content
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

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

eddedmondson
Copy link

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?

@lstagner
Copy link
Owner

lstagner commented Jul 3, 2015

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.

@eddedmondson
Copy link
Author

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.

@mgalloy
Copy link

mgalloy commented Jul 4, 2015

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.

@lstagner
Copy link
Owner

lstagner commented Jul 4, 2015

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants