Livestacking: Cloud rushes through image

Discussion of using SharpCap for Deep Sky Imaging
SternwarteOrion
Posts: 11
Joined: Wed Aug 28, 2024 8:17 am

Livestacking: Cloud rushes through image

#1

Post by SternwarteOrion »

Hi!
I‘ve had some toubles with the livrstacking feature the last few nights. I‘m using the unguided dithering via ASCOM pulse guidig and I activated recenter when drift is more than 80 Pixels. That worked great a few nights but the last 2 nights, a cloud was rushing through the Image for a few seconds and Sharpcap didn‘t dedect any stars in the image. The mount stopped tracking until the stars where showing. Then, livestacking was capturing the wrong area of the sky because it didn‘t regoto the correct coordinates.
Is there any way not to interrupt the tracking of the mount or to regoto the coordinates when the stars a visible again?

Kind regards,
Sternwarte Orion
User avatar
admin
Site Admin
Posts: 14661
Joined: Sat Feb 11, 2017 3:52 pm
Location: Vale of the White Horse, UK
Contact:

Re: Livestacking: Cloud rushes through image

#2

Post by admin »

Hi,

I'm a bit puzzled why the mount would stop tracking during cloud - surely it should just carry on tracking at sidereal rate while the cloud is going past. Of course, if the cloud continues for quite a while then the drift could build up to more than the normal 80 pixel threshold you have set, but I would have expected it to recover as long as there was still a good overlap between the stacked image and the current image when the cloud is past (50% overlap should be fine).

Obviously, as you say, if there is no overlap between the image being seen by the camera and the stacked image then the recenter will not recover to the correct position, but it would seem to require a combination of very poor tracking and a very long clouded out period for that to happen, unless I'm missing something...

cheers,

Robin
SternwarteOrion
Posts: 11
Joined: Wed Aug 28, 2024 8:17 am

Re: Livestacking: Cloud rushes through image

#3

Post by SternwarteOrion »

Hi,

so it happend again and I noticed the mount didn't stop tracking but Sharpcap tried to center the telescope to the target. Here is the log:
SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:55.179538 #1 After slew, mount points at RA=03:50:42,2,Dec=+68:02:46


So the coordinates I slew the mount to were
03 46 51.9 +68 05 43.7
so the drift should be about 600 pixels. The target should be in the field of view and with the dithering I don't think that these coordinates are that wrong. But the telescope didn't point at that coordinates at all, the target wasn't in the field of view. The plate solve workes every time I use it. Could be there any misunderstandings betwen the J200 and JNOW?

Cheers,
Sternwarte Orion.
User avatar
admin
Site Admin
Posts: 14661
Joined: Sat Feb 11, 2017 3:52 pm
Location: Vale of the White Horse, UK
Contact:

Re: Livestacking: Cloud rushes through image

#4

Post by admin »

Hi,

ah, OK, that starts to make sense. An educated guess at what might be happening is along the lines of

* Stacking is proceeding normally
* Cloud arrives - a very small number of stars still visible
* Low star numbers lead to a mistake in the alignment calculation - SharpCap thinks the image has moved a long way
* Recentering happens to try to 'correct' the misalignment
* Potentially the two previous steps repeat, moving away from the target at random
* Cloud goes away, but the image has moved more than 1 frame, so recentering fails

I think that's most likely - the difference between J2000 and JNOW is too small to account for this sort of thing.

Can you send me the full log which you extracted the line above from please? It would be interesting to see if my analysis above is correct. If it is, I will have to think about how to introduce some sort of 'safety' check that will avoid this happening.

thanks,

Robin
SternwarteOrion
Posts: 11
Joined: Wed Aug 28, 2024 8:17 am

Re: Livestacking: Cloud rushes through image

#5

Post by SternwarteOrion »

Hi Robin,
here is the part of the log data where the cloud covered the stars:
in void SharpCap.FrameTransforms.LiveStacking.StackingParameters.Pause(PauseType type, string reason)
Debug 01:31:28.326127 #32 Starting ZWO Exposure of 15000ms in bool SharpCap.Cameras.ASI.ASICameraProxy.StartExposure()
Warning 01:31:28.326521 #33 Frame not stacked because : Frame captured while recentering in void SharpCap.FrameTransforms.LiveStacking.LiveStackViewModel.SendToMainLogger(LoggingEvent loggingEvent)
Debug 01:31:28.329825 #1 Notification (Status=Warning): Warning: Last 50 frames have not been stacked, because: Frame captured while recentering in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 01:31:28.384864 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=23:00:15,9,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:28.966640 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=23:07:57,4,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:29.553156 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=23:07:57,4,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:30.151514 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=23:15:44,0,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:30.703399 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=23:27:28,6,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:31.325448 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=23:35:12,4,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:31.960012 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=23:43:09,9,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:32.512828 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=23:54:44,0,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:33.105388 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=00:02:43,6,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:33.701635 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=00:10:16,2,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:34.349273 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=00:22:04,7,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:34.961763 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=00:30:02,0,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:35.555515 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=00:38:01,1,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:36.136939 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=00:49:39,8,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:36.721421 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=00:57:20,8,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:37.326387 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=01:04:50,4,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:37.924941 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=01:16:24,9,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:38.518632 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=01:24:06,6,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:39.087309 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=01:35:31,4,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:39.682120 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=01:43:11,2,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:40.274566 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=01:51:03,4,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:40.840817 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=02:02:52,3,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:41.456305 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=02:10:45,2,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:42.064848 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=02:18:48,1,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:42.594241 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=02:30:04,8,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:43.176528 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=02:37:54,4,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:43.806342 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=02:49:20,5,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:44.320225 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=02:49:20,5,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Debug 01:31:44.396885 #32 Finished ZWO Exposure of 15000ms, gotFrame = True in bool SharpCap.Cameras.ASI.ASICameraProxy.GetFrameData(int timeout, BufferFrame frame, CancellationToken cancellationToken)
Info 01:31:44.397560 #33 Pausing stacking to ignore frame : Frame captured while recentering in BufferFrame SharpCap.FrameTransforms.LiveStacking.LiveStackTransform.HandleFrame(BufferFrame frame)
Info 01:31:44.397642 #33 Live stacking paused : Frame captured while recentering in void SharpCap.FrameTransforms.LiveStacking.StackingParameters.Pause(PauseType type, string reason)
Debug 01:31:44.399938 #32 Starting ZWO Exposure of 15000ms in bool SharpCap.Cameras.ASI.ASICameraProxy.StartExposure()
Warning 01:31:44.400341 #33 Frame not stacked because : Frame captured while recentering in void SharpCap.FrameTransforms.LiveStacking.LiveStackViewModel.SendToMainLogger(LoggingEvent loggingEvent)
Debug 01:31:44.400993 #1 Notification (Status=Warning): Warning: Last 51 frames have not been stacked, because: Frame captured while recentering in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Info 01:31:44.838089 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=02:56:57,7,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:45.454379 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=03:04:32,4,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:46.037934 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=03:15:50,1,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:46.599310 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=03:23:46,9,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:47.190531 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=03:31:44,3,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:47.779410 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=03:42:31,7,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:48.376566 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=03:47:35,9,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:48.999611 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=03:51:27,7,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:49.637774 #1 Waiting for recenter slew to complete, mount currently slewing: True, pointing at RA=03:51:10,8,Dec=+68:02:46 in Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)+() => { }
Info 01:31:55.179538 #1 After slew, mount points at RA=03:50:42,2,Dec=+68:02:46 in async Task SharpCap.FrameTransforms.LiveStacking.RecenterAdjustmentAction.DoActionAsync(int stackedFrameCount, CancellationToken token)
Debug 01:31:55.179699 #1 Notification (Status=OK): Mount movement and settling complete - preparing to restart stack. in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Debug 01:31:57.242823 #1 Notification (Status=OK): Recentering complete, Live stacking resuming in void SharpCap.UI.NotificationViewModel.DisplayMessage(NotificationMessage message)
Debug 01:32:00.466387 #32 Finished ZWO Exposure of 15000ms, gotFrame = True in bool SharpCap.Cameras.ASI.ASICameraProxy.GetFrameData(int timeout, BufferFrame frame, CancellationToken cancellationToken)
Debug 01:32:00.469494 #32 Starting ZWO Exposure of 15000ms in bool SharpCap.Cameras.ASI.ASICameraProxy.StartExposure()
Info 01:32:00.470643 #33 Pausing stacking to ignore frame : Frame captured while recentering
I hope it helps!

Kind regards,
Sternwarte Orion
User avatar
admin
Site Admin
Posts: 14661
Joined: Sat Feb 11, 2017 3:52 pm
Location: Vale of the White Horse, UK
Contact:

Re: Livestacking: Cloud rushes through image

#6

Post by admin »

Hi,

is it possible that the target crossed the meridian at roughly this point? If the target has moved from the eastern to western side of the sky, the mount may have decided to meridian flip when the recenter GOTO adjustment was sent, and of course the pointing error is likely to be considerably changed after the flip is complete.

From the log, I can see the end of the recenter movement, which was moving a *lot* in RA (from 23h to nearly 4h), which would tie in with a flip happening as the offset sent to do the recenter should always be smooth. Unfortunately the log fragment doesn't include the start of the recenter, so it's hard to be sure. Could you post the whole log please (you can zip it up and attach the zip file if it is large - the log usually compresses really well).

cheers,

Robin
SternwarteOrion
Posts: 11
Joined: Wed Aug 28, 2024 8:17 am

Re: Livestacking: Cloud rushes through image

#7

Post by SternwarteOrion »

Hi Robin,
I can send you the full log soon, but is it possible that there was no cloud, but the Mount was flippig and meanwhile the camera took Images so the Stars where shooting through the Image so fast that they dissapear so it lookes like there was a cloud? But I ran the sequence, so that if the mount flipps, Sharpcap should close livestacking.

Cheers,
Sternwarte Orion
User avatar
admin
Site Admin
Posts: 14661
Joined: Sat Feb 11, 2017 3:52 pm
Location: Vale of the White Horse, UK
Contact:

Re: Livestacking: Cloud rushes through image

#8

Post by admin »

Hi,

can you share the sequence details with me so that I can check? Also looking forward to seeing the log.

thanks,

Robin
SternwarteOrion
Posts: 11
Joined: Wed Aug 28, 2024 8:17 am

Re: Livestacking: Cloud rushes through image

#9

Post by SternwarteOrion »

Hi,
sorry that I couldn't send it earlier, I had a lot of work to do.
So Here is the Full log. The sequence looks like this:
Image

The sequence worked the day before (The same object and the same data in the sequence).

Cheers,
Sternwarte Orion
You do not have the required permissions to view the files attached to this post.
User avatar
admin
Site Admin
Posts: 14661
Joined: Sat Feb 11, 2017 3:52 pm
Location: Vale of the White Horse, UK
Contact:

Re: Livestacking: Cloud rushes through image

#10

Post by admin »

Hi,

so, looking through the log, I get the following sequence of events happening

* Stacking runs fine up to 01:18:20 or so
* Cloud at this point leads to dimmer images - frames are ignored due to brightness filtering, but still enough stars to align
* Recenter triggered at 01:30:56 - I checked via Stellarium and it looks like the target crosses the meridian from E to W above the pole at or around this time
* The recenter GOTO movement causes the mount to flip over the next 60s or so - you can see the co-ordinates go up to +90N and back and the RA change significantly before ending up back at the right position
* After the flip, the target is out of view, so live stacking alignment fails - with the fairly small FOV of 0.43x0.24 degrees this is unsurprising
* The current recenter behaviour cannot recover from a target out of view (no alignment) and is also unable to deal with a meridian flip happening (I think it will adjust in the wrong direction after a flip), so frames are ignored until the sequencer terminates this phase at 01:45:00
* A new GOTO happens back to the target with plate solve - as far as I can see from the log, this turns out OK
* A new stack starts and runs for some hours (then more cloud)
* At 02:09, the recenter threshold of 80 pixels is passed, so SharpCap plate solves the stack to work out the required info to recenter - the position of the plate solving comes out at RA=03:45:30.2, Dec=68:12:48 (J2000). This is out by several minutes of arc compared to the place that the mount thought it was at via plate solving at 01:45:11 or so.

So, what went wrong?

I *think* the problem is starting the new stack straight after the plate solving operation - the log records completed frames, and the first one going into the new stack was completed at 01:45:24, meaning it started at 01:45:09 or so. Look back at that point in the log, and the plate solve/resync/recenter is still happening, so I think the first frame in the new stack was messed up by the mount movement - perhaps even mostly captured before the mount recentered. That means the stack will align on the old (pre-recenter) position, which explains the position being wrong.

The trick is to put in a delay of at least 1 frame length between the retry/plate solving and the start live stacking, to ensure the new stack starts with a clean frame. This is going to be an intermittent problem because it depends on when the end of frame times are relative to the mount movement - if the frame ends just after the mount recenter is done, then a new, clean frame will end up going into the new stack and all will be well...

Hope this helps,

Robin
Post Reply