Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - robyx

Pages: [1]
1
PCL and PJSR Development / scripts interferences
« on: Today at 04:46 »
Hi all,

I have one request for an update on how the Javascript runtime that executes the scripts is managed in PixInsight. Actually, as I figured out, the JS engine is instantiated once and shared across the scripts for the whole PixInsight session. This means that if I run a script that adds a prototype function to an array

Array.prototype.mySort = function() {...}

this function will be created once and then it will be available to every following script that I can run during the same session. Unfortunately, since re-assigning this variable again raises an error, the good practice is to properly do a pre-check like

// assign the function only if it has not already existing
if (!Array.prototype.mySort)
    Array.prototype.mySort = function() {...}

This has a HUGE drawback:  some scripts may the same function but with a slightly (or totally?) different implementation, this means that there is an inter-dependency between the scripts such that running a script could make a following script to fail.

My request is to reset the JS engine at each script launch or, if this has drawbacks, find a solution to restore a common clean starting state of the JS Engine at script launch-time to remove this kind of state-dependent interdependencies between scripts.

Regards,
Robyx

2
General / Weighted Batch Preprocessing update - v1.4.0
« on: 2019 November 17 14:37:24 »
Hi all,

due to the early feedbacks provided by several users we released an update of our Weighted Batch Preprocessing to version 1.4.0.

The updates are:

- auto-selection of reference frame update: in version 1.3.5 the reference frame selection is performed within the whole set of light frames. Since light frames with higher binning has always smaller and rounder stars then the reference frame is probably chosen among the light frames with the highest BINNING. That's exactly the opposite that what is typically done since light frames with higher binning are typically aligned to light frames with lower binning. In LRGB composition, for example, it's not uncommon to take L with BINNING 1 and RGB with BINNING 2 then RGB are aligned to L (and not viceversa). Now the reference frame is selected within the set of light frames with the lowest BINNING.

- light frame exposure tolerance: many users reported that their light frames have small exposure differences (fraction of seconds) which caused the light frames to be grouped separately (like groups of 300, 300.1 and 300.2 secs). We introduced the light frame exposure tolerance as for dark frames such that you can provide the tolerance you need to properly group light frames with short exposure time differences.

- Drizzle Files update (not a bugix as reported below): it has been reported that drizzle files generated by BPP (and so WBPP) do not work with drizzle integration. The reason is that these files are not updated during Light Frame integration in order to add the additional rejection map, statistical and extra metadata digested by Drizzle Integration process. This was done by purpose. With this update we proposed a change to this approach and now you can execute a Drizzle Integration at the end of the process using the generated drizzle files.

- minor bugfixes

You can download the new version here: https://www.tommasorubechi.it/wp-content/uploads/2019/11/weightedBatchPreprocessing1.4.0.zip

----------------------

english tutorial (version 1.3.5): https://www.tommasorubechi.it/2019/11/15/the-new-weighted-batchpreprocessing/
italian tutorial (version 1.3.5): https://www.tommasorubechi.it/2019/11/15/the-new-weighted-batchpreprocessing/
why WBPP and how it works in details: https://www.tommasorubechi.it/wp-content/uploads/2019/11/WBPP-Guide.pdf

BUG REPORTING:
mail to weightedbpp@gmail.com
If you have errors while using the dialog widow try to attach a screenshot of the error
if you have issues during the integration execution activate the "Save process log" option and attach the last created log file you can find into the "logs" folder.

Regards,
Robyx

3
Weighted Batch Preprocessing (WBPP)

Hi all,

I would announce a side project I'm working on with Tommaso Rubechi: an upgraded version of Batch Preprocessing script called Weighted Batch Preprocessing.

The reason behind this upgrade is that many mid and advanced users are not using BPP because they interpone the Subframe Selector weighting during the process. Our new upgrade integrates this step, providing a user friendly interface to combine SNR, FWHM and eccentricity to generate the light frame weights.

The list of new features are the following:

  • possibility of weighing our Light frames thanks to the Subframe Selector
  • possibility to automatically select the reference frame for Light frames registration
  • possibility of grouping Light frames based on different integration times, useful for creating HDR images later
  • automatic choice of the best pixel rejection algorithm in the integration phase
  • smart file naming
  • an udpdated approach to flat frames calibration
  • extended diagnostic
  • smart reporting
  • session saving

You can find a detailed description and you can download the current script version 1.3.5 of on this page:

english: https://www.tommasorubechi.it/2019/11/15/the-new-weighted-batchpreprocessing/
italian: https://www.tommasorubechi.it/2019/11/15/the-new-weighted-batchpreprocessing/
why WBPP and how it works in details: https://www.tommasorubechi.it/wp-content/uploads/2019/11/WBPP-Guide.pdf

I hope you will appreciate and use this new version.
Several improvements are already planned and new versions will come.

BUG REPORTING:
mail to weightedbpp@gmail.com
  • If you have errors while using the dialog widow try to attach a screenshot of the error
  • if you have issues during the integration execution activate the "Save process log" option and attach the last created log file you can find into the "logs" folder.

Stay tuned!
Robyx

4
General / Misalignment between SubframeSelector script and process
« on: 2019 November 05 00:22:09 »
Hi all,

yesterday on a FB discussion it has been noticed that the weighting and acceptance formulas adopt different naming conventions on min/max measurement values (like FWHM minimum or maximum) between the SubframeSelector process and SubframeSelector script.

In the process you have to use FWHMMin, FWHMMax, EccentricityMin, EccentricityMax etc... while in the script you have to use FWHMMinimum, FWHMMaximum, EccentricityMinimum, EccentricityMaximum etc...

Being called with the same name I would expect them to adopt the same conventions and to digest the same formulas, which actually is not the case.

Attached you can find the two tooltips reporting the different naming convention.


Best regards,
Robyx

5
PCL and PJSR Development / Fast Fits/Xisf header reader
« on: 2019 November 01 18:56:27 »
Hi,

is there a way with PJSR to quickly read fits header table only without loading the entire image data from a fit/xisf?
by quick I mean milliseconds (10-20 max)...

Regards,
Robyx

6
PCL and PJSR Development / Commercial script / Process
« on: 2019 November 01 18:05:40 »
Hi,

does the PI licensing model allow to develop and sell JS script / Processes?

regards,
Robyx

7
PCL and PJSR Development / PSJR Javascript formatting
« on: 2019 October 15 10:34:09 »
Hi,

are the official javascript files linted? like using ESlint or other linting cli? If yes is it possible to know what you use and have the rules config file in order to maintain a consistent syntax?

Regards,
Robyx

8
PCL and PJSR Development / Disable console output of processes
« on: 2019 October 13 09:21:13 »
Hi all,

is it possible to disable the console output of a process when it is launched programmatically by a JS script? I would log only my logs but the console is flooded by the processes logs launched by my script.

Regards,
Robyx

9
PCL and PJSR Development / PJSR Parallel execution
« on: 2019 October 12 15:32:23 »
Hi all again :)

Is there the possibility to create a parallel for or a pull of threads to execute parallel operations? In my specific case I need to compute the gradient of a multivariable function which is done by computing the discrete partial difference of the cost function on each variable. This would be the perfect case to execute each computation in parallel.

Thanks in advance,
Robyx

10
PCL and PJSR Development / Run process icons programmatically
« on: 2019 October 08 14:34:02 »
Hi all,

I'm wondering if PSJR allows to do the following operations programmatically:

1. list the set of process icons existing in the workspace
2. read/update the parameters stored inside
3. open the process dialog (like what happens by double-clicking on the icon)
4. run one instance of the selected process setting the input and output images

Shortly, I would script the operation of dragging a process icon on an image (or just running it if input images are more than one) and control on which target image should be the output programmatically.

Does anyone have an idea if and eventually how to do it?

Thx,
Robyx

11
General / PixelMath shared variables across instances
« on: 2019 August 22 14:31:21 »
Hi all,

I'm dealing with this problem: I have this formula

mean(A)/$T

where $T is the target image and A is another image in the workspace. Actually I could refer to A using his ID but this means that I need to edit the formula anytime the ID changes so I would do something smarter to avoid this.

I would brake down the computation into two PixelMath instances X and Y such that X can be dragged on image A and it produces as output mean(A) and then Y can be dragged on any target image to compute mean(A)/$T. In this way I wouldn't need to edit the formula anymore, I would just need to drag the instance X on image A and instance Y on my target.

Let's say that the first PixelMath would look like

Code: [Select]
Calib_A_Mean = mean(A)
and the second one

Code: [Select]
Calib_A_Mean/$T
being Calib_A_Mean a global shared variable initialized by X and read by Y.

My issue is that I cannot find a way to declare a symbol with this properties.
Is that feasible?
if not is there any plan to implement this kind of global scope for variables in PixelMath? in my opinion it would really open new possibilities.

Kind regards,
Roberto

12
PCL and PJSR Development / Drizzle Integration documentation
« on: 2019 August 10 12:04:04 »
Hi all,

I would access to the Drizzle Integration PJSR class but I cannot find any documentation in the web doc at https://pixinsight.com/doc/.

I suppose this class is exposed, correct? Anyone has a reference?

Regards,
Roberto

13
General / Better image weighting with Subframe Selector
« on: 2019 July 17 07:32:20 »
Hi all,

I've read many posts in several forums talking about a formula that you can use to compute the weights to be used during the Image Integration step. The (probably well known) formula is:

20*(1-(FWHM-FWHMMinimum)/(FWHMMaximum-FWHMMinimum))+20*(1-(Eccentricity-EccentricityMinimum)/(EccentricityMaximum-EccentricityMinimum))+10*(SNRWeight-SNRWeightMinimum)/(SNRWeightMaximum-SNRWeightMinimum)+50

where the relative weights (20, 20, 10) can be changed and determine the contribution of the FWHM, eccentricity and SNR to the final weight.

My question is about the reliability of this formula: does it really work? is it substantially better than weighting subs just using the noise estimation? Does is work better if the range changes from 50-100 to maybe 30-100 or 10-100?

Moreover, I have a doubt about applying this formula BEFORE the registration or AFTER the registration: the registration itself could increase the noise because of the introduction of some artifacts so I assume that it would be worth to apply it to the registered images in order to take into account also this additional noise (at the end registered images are the one to be integrated). Someone could have different opinion such that the real noise should be measured before registration so the formula should be applied before.

Would anyone share its experience on using this formula and opinions about the improvements achieved?

Many thanks,
Roberto

14
Hi all,

I've read many posts in several forums talking about a formula that you can use to compute the weights to be used during the Image Integration step. The (probably well known) formula is:

20*(1-(FWHM-FWHMMinimum)/(FWHMMaximum-FWHMMinimum))+20*(1-(Eccentricity-EccentricityMinimum)/(EccentricityMaximum-EccentricityMinimum))+10*(SNRWeight-SNRWeightMinimum)/(SNRWeightMaximum-SNRWeightMinimum)+50

where the relative weights (20, 20, 10) can be changed and determine the contribution of the FWHM, eccentricity and SNR to the final weight.

My question is about the reliability of this formula: does it really work? is it substantially better than weighting subs just using the noise estimation? Does is work better if the range changes from 50-100 to maybe 30-100 or 10-100?

Moreover, I have a doubt about applying this formula BEFORE the registration or AFTER the registration: the registration itself could increase the noise because of the introduction of some artifacts so I assume that it would be worth to apply it to the registered images in order to take into account also this additional noise (at the end registered images are the one to be integrated). Someone could have different opinion such that the real noise should be measured before registration so the formula should be applied before.

Would anyone share its experience on using this formula and opinions about the improvements achieved?

Many thanks,
Roberto

Pages: [1]