On Sep 2, 2021, at 16:31, Craig Young <craig.young.m8@...> wrote:I want to move my NINA plugin in that kind of direction, with it being able to tell APPM to generate a dec-arc model on demand for each target, but there are some prerequisites that are needed on the APPM side of things to make this a programmatically smooth thing to do. I've talked to Ray about these needs and he'll look into implementing them if they're reasonably feasible. So, no guarantees on timeline or anything, but we've talked about the concept.
But say such a thing does become possible, where you can drop a "Create Dec-Arc Model" instruction into your NINA sequence template and it'll do just that based on the target's declination, then there would be some additional considerations around reuse of the model that comes out of that instance.
When APPM creates a model, it saves it as a .pnt file under C:\ProgramData\Astro-Physics\APCC\Models. These pnt files contain various metadata about the run, such as the date it was created, the location, various options that were selected, and so on. For Dec-Arc models, APPM would also need to note the declination in the metadata of each dec-arc model pnt file.
If the above were to be done, the envisioned "Create Dec-Arc Model" instruction could look at those pnt files and build a list of model creation dates and the declination they were created for. This would allow the plugin to match up an existing model to the target's declination. The model creation date would tell the instruction how old it is. Thus, using a user-suppled date limit measured in hours or fractional days, the instruction can decide if any existing model for a given declination is too old to use and instruct APPM to create a new one, or tell APPM (or APCC) to load the existing model and run with that instead. This interface - telling APCC to load a particular model - is a programmatic interface that I'm not sure exists or not. I recon it does, as APPM already seems to have a way to tell APCC to load the model it just created.
Anyway, there are some efficiencies in time that can be automated with this. If one is reasonably sure of their models as they age, they can set a use-if-no-older-than length of time in the plugin's configuration and not have to worry about time being wasted if you do a multiple night run on a specific target coordinates where you don't necessarily need a new Dec-Arc model each time. This is clearly up to user discretion, obviously, and I don't know if Dec-Arc models have any differences in sensitivities towards age compared to all-sky models.
This expiry date concept is something I could put in to the existing "Create APPM model" instruction in my plugin, though, since all that would be interested in is the creation date. No sense in creating a new model if one feels that their existing one is still valid. The instruction would then be a no-op at that point.