Hi Eddie,
I'm glad to know you're working on this project, that's great news!
I saw in a previous thread that you are planning to phase-out FITS keyword dependency and I have a question about how you plan to implement this.
1. Will it happen all at once, for all keywords, or would you expect to phase-in the new property list over time? I ask because the nomenclature for XISF properties will obviously be different to FITS keywords and I'm considering how to implement the changeover.
Removing all FITS keyword dependencies from a complex platform like PixInsight is not a small task, as you surely figure out. Hopefully this will happen during 2017, or at least this is my intention, but of course we now have other priorities. So don't expect this to happen in the very short term. Anyway, FITS keyword generation will remain as an optional feature, since many existing scripts and third-party projects and applications depend on them. So we'll have the possibility of FITS keywords and XISF properties coexisting in image files for a relatively long time.
Once I start removing FITS dependencies from the platform, this task will be as fast as possible, so yes, hopefully all FITS keywords will be replaced by properties in a single operation. The good news is that adapting existing tools and scripts should be very easy. Both FITS keywords and XISF properties are name/value pairs, and XISF is much more flexible than FITS (UTF-8 vs ASCII, and no practical length restrictions). So the adaptation basically consists of replacing names.
Once I release the final XISF 1.0 Specification document (soon), all standard properties will be formalized so you can have all the changes planned.
2. Are you expecting XISF to continue to include FITS keywords, or will FITS keywords be removed as they are replaced with XISF properties?
As I've said FITS keyword generation will be an optional feature. I'm not sure if it will be enabled by default, though. Maybe yes for some time, but it will be discouraged and will generate visible warnings.
3. I'm also planning to implement a XISF image decoder (only) for thumbnails and previews, again Windows-only.
Great. Along with the final specification, I'm working on a first version of libXISF, which will be the reference implementation of XISF. It will be open-source (released under
PCL license) and multiplatform.
Starting from the XISF support module directly is another possibility if you modify it. However the modifications are not trivial and require a lot of heavy work, since a PixInsight module depends strongly on the PixInsight core application. For example, you'd have to implement data compression, cryptographic hashing, XML decoding, etc. So the best option is waiting for libXISF, IMO.
I would rather use your XISF library as you have done much of the hard work there and so generously made it available. I've read the terms and *think* that I can use your lib in a commercial app. Is that correct?
Yes, that's correct. The PixInsight Class Library and almost all modules released as open-source products (except a few contributed modules that have been released under GPL by their authors), have been released under the
PixInsight Class Library License (PCLL) Version 1.0. PCLL is a liberal BSD-like license that allows you to release your PCL-based developments as freeware or commercial, open-source or closed-source products.
All the best also to you and yours for 2017. Let me know if you need further assistance with this project.