June 24 2026 APP 2.0.0-beta46 has been released !
Improved internal memory configuration (lower ! memory usage), fixed beta45 startup issue, fixed Set Save Directory & 2-panel mosaics.
May 27 2026 APP 2.0.0-beta45 has been released !
Fully Multi-Threaded LNC, many improvements for the registration engine, platform upgrade, and further tuning of internal memory consumption and memory release back to OS.
Apr 14 2026: Google Pay, Apple Pay & WeChat Pay added as payment options
Update on the 2.0.0 release & the full manual
We are getting close to the 2.0.0 stable release and the full manual. The manual will soon become available on the website and also in PDF format. Both versions will be identical and once released, will start to follow the APP release cycle and thus will stay up-to-date to the latest APP version.
Once 2.0.0 is released, the price for APP will increase. Owner's license holders will not need to pay an upgrade fee to use 2.0.0, neither do Renter's license holders.
Hello
I keep getting the following error when I batch crop images; typically they are normalized Broadband (OSC) and Narrowband (dual NB) Fit files. This started to occur at beta44 (wasn't a problem before) and it is still there in beta45. It occurs NOT during the crop but during the save... Here is the error in beta44:
---
Astro Pixel Processor - 2.0.0-beta44
Oracle JDK 26.0.1 - Windows-64-bit
Encountered error in module:
FileDetailListUpdater
Error message:
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "this.a[<local25>]" is null
Cause:
Cannot invoke "String.equals(Object)" because "this.a[<local25>]" is null
astropixelprocessor@2.0.0-beta44/com.ariesproductions.frameDetails.t.a(FileDetailListUpdater.java:437)
astropixelprocessor@2.0.0-beta44/com.ariesproductions.frameDetails.t.doInBackground(FileDetailListUpdater.java:39)
java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)
java.base/java.util.concurrent.FutureTask.run(Unknown Source)
---
Please note, however, that as far as I can tell, the crops appear to have been successful.
Here is the log portion (I added the "arrows"):
---
11:57:24 - Batch crop tool: processed frame 2 of 3 frames - W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop\IC_5070_A-Multi-NB-Ha-02_graxpert_Prism-crop.fits
11:57:24 - Batch crop tool: processing frame 3 of 3 frames...
11:57:24 - GENERAL IMAGE LOADER: loading frame W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\02 Grax Prism\IC_5070_A-Multi-NB-O3-02_graxpert_Prism.fits
11:57:24 - FITS FRAME SAVER: W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop\IC_5070_A-Multi-NB-Ha-02_graxpert_Prism-crop.fits : finished successfully
11:57:24 - GENERAL FRAME SAVER: null : finished successfully
11:57:25 - GENERAL IMAGE LOADER: frame W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\02 Grax Prism\IC_5070_A-Multi-NB-O3-02_graxpert_Prism.fits was loaded successfully
11:57:26 - GENERAL FRAME SAVER: file name: IC_5070_A-Multi-NB-O3-02_graxpert_Prism-crop
11:57:26 - GENERAL FRAME SAVER: directory: W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop
11:57:26 - GENERAL FRAME SAVER: file type: FITS
11:57:26 - GENERAL FRAME SAVER: bit depth: 32 bits floats
11:57:26 - GENERAL FRAME SAVER: DPI (Dots Per Inch): 72
11:57:26 - GENERAL FRAME SAVER: ICC profiles: Linear Gray
11:57:26 - GENERAL FRAME SAVER: W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop\IC_5070_A-Multi-NB-O3-02_graxpert_Prism-crop.fits : starting...
11:57:26 - GENERAL FRAME SAVER: performing bitdepth conversion if required...
11:57:26 - IMAGE CONVERTER: image conversion not needed, data is already normalized...
11:57:26 - GENERAL FRAME SAVER: W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop\IC_5070_A-Multi-NB-O3-02_graxpert_Prism-crop.fits : starting FITS FRAME SAVER
11:57:26 - FITS FRAME SAVER: W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop\IC_5070_A-Multi-NB-O3-02_graxpert_Prism-crop.fits : starting...
11:57:26 - FITS FRAME SAVER: W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop\IC_5070_A-Multi-NB-O3-02_graxpert_Prism-crop.fits : constructing 32-bits FLOAT databuffer..
11:57:26 - FITS FRAME SAVER: W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop\IC_5070_A-Multi-NB-O3-02_graxpert_Prism-crop.fits : creating FITS HEADER...
11:57:26 - FITS FRAME SAVER: W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop\IC_5070_A-Multi-NB-O3-02_graxpert_Prism-crop.fits : writing to disc...
11:57:27 - Batch crop tool: processed frame 3 of 3 frames - W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop\IC_5070_A-Multi-NB-O3-02_graxpert_Prism-crop.fits
11:57:27 - FITS FRAME SAVER: W:\AstroPhoto\IC5070 Pelican\Integrate\A+B\A\03 Crop\IC_5070_A-Multi-NB-O3-02_graxpert_Prism-crop.fits : finished successfully
11:57:27 - GENERAL FRAME SAVER: null : finished successfully
11:57:27 - FRAME DETAILS UPDATER: starting...
11:57:27 - FRAME DETAILS UPDATER: checking for duplicates in new frames...
11:57:27 - FRAME DETAILS UPDATER: adding 1 new frames...
11:57:27 - FRAME DETAILS UPDATER: encountered an execution exception <==========
11:57:31 - SWITCH APPLICATION BUSY STATE : restoring imageviewer zoom factor to 1.00
11:57:31 - SWITCH APPLICATION BUSY STATE : restoring imageviewer splitpane position to 0.00
11:57:31 - SWITCH APPLICATION BUSY STATE : exiting busy state...
11:57:31 - SWITCH APPLICATION BUSY STATE : restarting image viewer mouse listener...
11:57:31 - SWITCH APPLICATION BUSY STATE : buttons are turned on.
11:57:31 - SWITCH APPLICATION BUSY STATE : enabling frame list table
11:57:31 - CONSTRUCT FRAME DETAILS LIST: starting...
11:57:31 - CONSTRUCT FRAME DETAILS LIST: finished
11:57:31 - FRAME DETAILS UPDATER: starting...
11:57:31 - FRAME DETAILS UPDATER: checking for duplicates in new frames...
11:57:31 - FRAME DETAILS UPDATER: adding 1 new frames...
11:57:31 - FRAME DETAILS UPDATER: encountered an execution exception <==========
11:57:32 - SWITCH APPLICATION BUSY STATE : no change in busy state
11:57:33 - CONSTRUCT FRAME DETAILS LIST: starting...
11:57:33 - CONSTRUCT FRAME DETAILS LIST: finished
11:57:33 - FRAME DETAILS UPDATER: starting...
11:57:33 - FRAME DETAILS UPDATER: checking for duplicates in new frames...
11:57:33 - FRAME DETAILS UPDATER: adding 1 new frames...
11:57:33 - FRAME DETAILS UPDATER: encountered an execution exception <==========
11:57:33 - SWITCH APPLICATION BUSY STATE : no change in busy state
11:57:33 - CONSTRUCT FRAME DETAILS LIST: starting...
11:57:33 - CONSTRUCT FRAME DETAILS LIST: finished
===
Thanks a lot Gilles @museceleste for reporting this.
I will test and fix it a.s.a.p. I have opened an issue on my list to fix this.
Will report back when solved 😉
Mabula
Hi Gilles @museceleste,
Just following up, I am aiming to have it fixed in a couple of days from today 😉
Mabula
Greetings, Mabula
Superbe !! Merci !
By the way, just two questions: is the plate solve information of the reference frame propagated to the cropped images? If the crop modifies the image centroid, will an embedded plate solve be executed?
Cheers
G
Hi Gilles,
No not yet, we do not yet have plate solving implemented in APP.
I intend to work on this once 2.0 stable and the manual is released, I am nearly there !
Mabula
Hi Gilles@museceleste,
I am trying to reproduce this error, by cropping both normalized RGBÂ + monochrome data, but all is working fine here.
Maybe you can upload the data set on which this occurs, so I can make sure that I properly fix it?
Can you upload it here:
https://upload.astropixelprocessor.com/
username: uploadData
password: uploadTestData
Please make a folder with your name and issue like: Gilles-Crop-Save-Issue
and upload the data there and let me know once done. Thanks !
Mabula
It is done: I dropped the three files into a folder called "Gilles-Crop-Save-Issue" and also added "_NullPointerException in Batch Crop" as a suffix to each file's name, for reference purposes.
Cheers
Gil
Thank you Gilles,
Yes, now I can duplicate the problem and I can fix it 😉 I have added it to my issue list.
Thanks !
Mabula
Hello Mabula,
I still get the null pointer error in Beta46, this time when I try to save a normalized set of NB images (Ha, O3, S2). My sequence is this: load the files, analyze stars, register, normalize. So far so good. But then, save normalized files to a set directory generates the error. Mind you, I didn't see a note on this issue in the Beta46 release so perhaps testing is till ongoing...
Gil
