astroplan icon indicating copy to clipboard operation
astroplan copied to clipboard

Feature request / enhancement: meridian flip

Open gnthibault opened this issue 6 years ago • 7 comments

Dear astroplan developer, Thank you for your work, I now use astroplan (mostly in simulations / tests right now) and I find it very useful.

I wanted to know if there was already, or if there is a plan to implement an automatic meridian flip block in the scheduler. It would automatically add a meridian flip block during the acquisition, given a certain angular margin.

Thank you in advance for your help

Regards

gnthibault avatar Jun 15 '18 06:06 gnthibault

There's isn't already one, though I might recall @StuartLittlefair thinking about meridian flips?

bmorris3 avatar Dec 05 '18 16:12 bmorris3

Pinging @jdgibson as he and I talked at SPIE 2018 about a number of constraints they wrote for Queue scheduling software at the MMTO, which I believe included a meridian flip constraint.

wtgee avatar Dec 07 '18 04:12 wtgee

In the SPIE paper that @wtgee mentions on queue scheduling at the MMT Observatory, I used two meridian-related constraints. The second case below may be most appropriate for your "meridian flip" constraint, or you may want to use both constraints together.

The MeridianAltitudeConstraint determines a score for an observing block based upon how far the target is from the meridian. Observing blocks get a 1.0 score if they are on the meridian and a 0.0 on the anti-meridian. The math just determines what portion of 12 hours (using absolute value) the observing block is from the meridian using: observer.target_meridian_transit_time(time, target, which='nearest')

The big difference between this constraint and the existing AltitudeConstraint is that some of our high-priority targets are never high in the sky. So, we wanted to consider how close a target is to its highest point in the sky (i.e., crosses the meridian) rather than how high in the sky. Some of our low-altitude targets were never getting scheduled using the AltitudeConstraint.

I also describe a MeridianAvoidanceConstraint where the target will not pass through the meridian during the observing block. This is a requirement for some of our telescope configurations. This constraint considers if the target is ‘strictly rising’ or ‘strictly setting’ during the observing block. I basically see if the sorted altitudes are in the same order as the calculated altitudes for the beginning, middle, and end of the observing block. If the order is the same, the target is either strictly rising or strictly setting. If the order is different, the target has passed through the meridian.

Hope this helps. Duane.

jdgibson avatar Dec 10 '18 18:12 jdgibson

@jdgibson – would you consider making a PR with these constraints for other people's use? I think they'd be really generally useful!

bmorris3 avatar Dec 10 '18 18:12 bmorris3

@bmorris3 - I'm behind on versions of both astropy and astroplan. I'll see how soon I can get to migrating our code to the current versions of astropy/astroplan. Also, many of the constraints that we are using are customized for MMTO's particular needs (including scoring). I've subclassed many of the astroplan library classes.

jdgibson avatar Dec 10 '18 19:12 jdgibson

That'd be great, thanks so much for considering.

bmorris3 avatar Dec 10 '18 19:12 bmorris3

Hello, may I ask if the PRs have been made ? and if the issue can be closed ? I'd love to test all those very cool features :)

Unfortunately, I don't see MeridianAltitudeConstraint in this repo

gnthibault avatar Jul 18 '19 08:07 gnthibault