Page 1 of 2

Working on script to count stars in an image

Posted: 11 Dec 2018, 16:38
by Forum_2017
Hi
me again

when I use the following script (using simulator mode for image and guide camera)
I get no counts of stars.
If I uncomment the first 4 commands and use the find stars command on the hires.fit image
then rerun th script I get the same count as in the star table

How can I run the find stars command from a script on the image - what am I missing in my ignorant novice world!?

Code: Select all

Camera.Binning(1)
Camera.Start(1)
Camera.Wait
Image.Rename("Hires.fit")

wx, wy =  Image.FWHM
Image,Photometry
Image.Find()

Print wx
Print wy

wstars = Image.Stars.COUNT

Print wx,wy,wstars
I hope this makes some sense

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:38
by Forum_2017
Hi
just thought I might not have explained my intentions very well so here goes
Using the following basic script I would like to do something based on the number of stars. (I can explain later)

However using this code the stars count comes out as 0 for the simulator image - this should be 10

Code: Select all

Camera.Binning(1)
Camera.Start(1)
Camera.Wait

Image.SaveView("Hires.jpg")
Image.Close
Image.Open("Hires.jpg")

wx, wy =  Image.FWHM

wstars = Image.Stars.COUNT

Print wx,wy,wstars
So my issue is how to get the star table to be set up/created so the count is updated.
I am sure this is easy but can't find any examples of what or where to start!?

Have tried looking at macros which can be called from the script but see no way to use the find stars command in the macro
doh most frustrating - any help suggestions appreciated.

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:39
by Forum_2017
Hello, the function to find stars will be available in SP3 this autumn. By the way, you should have the pre-release, so the functions is:

Image.Stars.Find(10)

"Image.Stars.xxxxx" functions do work on selected stars, those marked on the image or listed in the Stars Window.
Instead, "Image.FWHM" does not work on selected stars, it operates on the whole image to find out the average FWHM of all stars.
Does this solve the problem?

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:39
by Forum_2017
Fabio
that is excellent - worked first time - as they say a little bit of knowledge is a dangerous thing
Thanks for tips re what functions scope is.

I'm really getting impressed with this software - seems to be flexible and powerful
not an easy combination to get right for software developers

many thanks

Keith

PS sorry to say I'm sure to pester you in the future as I get into this tool - keep up the great work

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:40
by Forum_2017
Hi again - didn't think i'd be back so quick but this is a follow up to the original question.
I have the following draft code which does not return what I would say is sensible data!?
As before I am using simulator for both cameras and telescope.

Code: Select all

SQREF(10,10)
'SQTest(10,10)

sub SQRef (exposure, Repeats)
  For i = 1 to Repeats
      Camera.Binning(1)
      Camera.Start(exposure)
      Camera.Wait
      Image.SaveView("Hires.jpg")
      Image.Close
      Image.Open("Hires.jpg")
      Image.Stars.Find(100)
      wx, wy =  Image.FWHM
      wstars = Image.Stars.COUNT
      Print wx,wy,wstars
      Image.Close
  next i
end sub
Typical results

0 0 40
3.904069185 3.8873353 52
3.540431023 4.141536236 43
0 0 49
0 0 50
3.973602057 4.277648926 50
4.126881599 4.441424847 50
3.688899755 3.670616627 56
3.77259922 3.825807095 39
3.621572495 4.132948875 49
0 0 65

what am I missing!? Is this an artifact of the simulator mode/timing issues/function issue !?!?

many thanks Keith

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:40
by Forum_2017
Hi, I suggest to remove the second Image.Close to find out what is happening.
Saving an image to JPEG (8 bit, compressed) and reopening it actually destroys most of the scientific content of the image, so the FWHM is probably wrong.
About the number of stars, a workaround could be to increase the Minimum S/N of detected stars (Preferences) to stop JPEG artifacts beeing detected as faint stars, or just use: Image.Find(10)

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:41
by Forum_2017
Hi thanks for reply
I have started saving files as fit - I assumme this does not destroy most of the scientific content of the image - correct me if this is wrong please.
I tried the Image.Find(10) approach again but this does not do what I require - I am after all the stars in the image above the threshhold set in the image capture.

I did find if I dont close the image I can achieve what I require - not convinced there isnt an interaction between timing and open and closing images - but as you say this may be because saving as jpeg loses data!?
I have arrived at the following draft code which appears to work

Code: Select all

MasterSQRef = 0
TestSQRef = 0
SQexp = 1
SQRpt = 3
If SQRpt <= 10 then
   SQExpRpt = 1
else
    SQExpRpt = 10
end if

MasterSQRef = SQREF(SQexp,SQRpt)
TestSQRef = SQTest(SQexp,(SQRpt/SQExpRpt))
Print MasterSQRef,TestSQRef
if TestSQRef > MasterSQREf then
   Print "Carry On Imaging"
else
   Print "Stop Imaging"
end if

sub SQRef (exposure, Repeats)
  Print " Start SQRef --> "
  Image.Close
  SQRefAvg = 0
  For i = 1 to Repeats
      Camera.Binning(1)
      Camera.Start(exposure)
      Camera.Wait
      Image.Save("Hires.fit")
      Image.Stars.Find(exposure*100)
      'Image.Stars.Find(10)
      wx, wy = Image.FWHM
      wstars = Image.Stars.COUNT
      Print i,wx,wy,wstars
      SQRefAvg = SQRefAvg+wstars
      Image.Close
  next i
  SQRefAvg = SQRefAvg/(i-1)
  Return SQRefAvg
end sub

sub SQTest (exposure, Repeats)
Print " Start SQTEST -->"
  Image.Close
  SQTestAvg = 0
  For i = 1 to Repeats
      Camera.Binning(1)
      Camera.Start(exposure)
      Camera.Wait
      Image.Save("Hires.fit")
      Image.Stars.Find(exposure*100)
      'Image.Stars.Find(10)
      wx, wy =  Image.FWHM
      wstars = Image.Stars.COUNT
      Print i,wx,wy,wstars
      SQTestAvg = SQTestAvg+wstars
      Image.Close
  next i
  SQTestAvg = SQTestAvg/(i-1)
  Return SQTestAvg
end sub
I still have a way to go but with your help will get there :-)

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:42
by Forum_2017
Hi
another clarification

the function Image.FWHM Measures image average star FWHMX and Y
and returns 2 values Wx,wy = Image.FWHM

How does this relate to FWHM measurement as mentioned in the User Manual section 9.10

What I would like to do is cv seeing from a reference set of images to a test set before doing an imageing run and
make a decision as to whether to continue or pause till better seeing

Any help/comments/insight appreciated

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:42
by Forum_2017
Have just found this in a forum entry

FWHM = sqrt(FWHMx * FWHMy)

is that correct!?

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:42
by Forum_2017
Hello, it's the same thing of chapter 9.10.

Maybe it's = Sqrt(x^2+y^2) ? By the way, I think that it does not matter. Actually I usually use the Minimum value of X and Y to evalute focus, since X can be affected by imprecise tracking:

I wouldn't pause for bad seeing, who knows, a discover could happen there, and disk space is cheap. I would choose between ending the session or not(!)

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:44
by Forum_2017
Fabio
had a think about your last reply and think if FWHMX and FWHMY are measurements of star x and y radii then a ratio of 1 is what to aim for if the star is in focus
and the closer to one the better the focus - is that a safe assumption to make!? or have I gone too far :-)

One other thing re new function inputbutton
I am using it in the following way

Code: Select all

InfoMess = "----->REFERENCE-->Number of Stars-->"+str$(GetSQRef)+crlf$()+"Star Shape Ratio-->"+str$(GetFWHMRef)+"NELM value-->"+str$(GetSQMRef)
if ContinueOn(InfoMess) = "No" then End
and

Code: Select all

sub ContinueOn(ShowInfo)
   InputButton("Carry On ?"+ShowInfo,"Yes","No")
end sub
resulting in the following
Attachment 253

I realise this is probably a no no but is there anything that can be done re spacing of the prompt -

again thanks for your assistance

Re: Working on script to count stars in an image

Posted: 11 Dec 2018, 16:45
by Forum_2017
Hello,
yes, FWHM is just a measurement of the radius of the star, in pixel.
A FWHM X or Y of 1 would be very bad (undersampling, ccd structure problems).

A good FWHM is usually 2.5 - 3.5. By the way, there is not an optimal FWHM.
FWHM is not so imporant, it's only a relative value, it depends mainly on the camera and telescope.

For example, if my telescope and camera gives a FWHM of 3.2 in optimal conditions, and one day I get 4.5, this only means that I'm not working in optimal conditions (bad seeing? bad focus?). It's all relative.
For photometry, a higher FWHM would be even desirable.