Saoimage ds9 howto1/29/2024 ![]() DS9 supports FITS images and binary tables, multiple frame buffers, region manipulation, and many scale algorithms and colormaps. So, the only functions that I propose adding are match and lock, with keyword args for scale, colorbar, slice, and crosshair, such that it will call match or lock appropriately for each of the keyword arguments that is true.SAOImage DS9 is an open source astronomical imaging and data visualization application. For example, the VIP DS9 has a zoom method, which always ends up calling ds9.set("zoom $value"), so I don't see the utility when you could've just called the above directly (in other words, the API should just need documentation, not new functions). For draw, I would also add a high-level function like draw(:ellipse x=12, y=35, a=5, b=7) which uses if-elses to dispatch alongside the kwargs.įor additional functionality, I think instead of providing an API equivalent to DS9, we should only provide functions that are an actual convenience. We can incorporate the config ideas from #2 into display, as well. I think display is a more appropriate verb for images and helps organize the image-based options from the shape based options in draw. This is designed in the nature of the VIP ds9.display function. This can take 2D or 3D arrays and if multiple are provided will automatically tile them. ![]() I propose we remove the array interface of draw and add a new method called display. Or, we can add an option to connect to automatically call start, in either case, the use-case is that users only have to issue a single start() or connect() call to having a working connection. The start method will have keywords for attaching to existing processes if available (true by default) and to automatically call connect. Get and set are mostly unchanged, and we can add a start method which starts the process in a platform-independent way. Utils.jl # display, draw, select, messageįirst off to just organize the code Core functionality SAOImageDS9.jl # configuration, includes _init_() functionĬore.jl # get, set, connect, XPA interface I have some premiminary code for that which I can put in a development branch to share it. overplotting of symbols, lines, text, etc.The mechanism should also work on other platforms than MacOSX.īTW There are at least 2 other things that are missing from the current SAOImageDS9.jl interface: Automatically launching DS9 application can be added to the existing connect method since the caller is likely to connect to it right after launching. The latter is (partialy) done in current SAOImageDS9.jl which should automatically connect to a running DS9, if any, when the module is loaded (with using or import). It would be nice that it can (i) avoid launching a new instance if one is already running, (ii) connect to the running DS9 instance. My understanding of your start is that it launches SAOImage/DS9. of SAOImageDS9.jl and also the VIP Python package you mentioned can be a source of inspiration. There is a short list of examples in the doc. Perhaps we should start with a list of common and useful recipes using the basic syntax (that of DS9 set/get commands) and see wheteher something coherent emerges (this is also related to your idea of having a dedicated REPL mode in #3). But I think this would be nice if we can elaborate on this subject. I have deliberately limited myself to providing such improvements in order to avoid them being too much biased towards my only personal taste.
0 Comments
Leave a Reply.AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |