Planning

Plan a target once for every rig that shoots it. Frame it on the sky, set goals per filter, and write the result into each rig's Target Scheduler database. Plans live in the Library beside the projects they shoot.

New in 0.12. A plan reads Activated or Needs activating, with its own Activate… button, and the Library says Activated on N rigs. A Library state pill asks before it changes Target Scheduler.

Planning is on for every server. A server without database management plans read only: framing and goals save as drafts, and activation and Target Scheduler edits are refused.

Frame Heart Mosaic over the survey image. Its four captured panels remain locked.
Frame Heart Mosaic over the survey image. Its four captured panels remain locked.

Rigs and plans appear on their own

When you open the Library, PSF Guard creates a rig for each registered database and a plan for each Target Scheduler project. No separate setup is needed.

PSF Guard recognizes the same rig after you move or rename its database. N.I.N.A. and Target Scheduler can still open the database.

Plans in the Library

Find plans in the Library, alongside their projects. A plan shared by several rigs shows N rigs, total progress and its stage (Framed, Planned or Activated on N rigs). Click ⚙ to open the plan's workspace. Each rig has its own row, with separate targets and frame counts for each rig.

Activated on N rigs counts the rigs the last activation wrote. It is not Target Scheduler's Active state, which each rig's row shows in its own pill.

Plans without captured images appear together, with their framing and activation status.
Plans without captured images appear together, with their framing and activation status.

Open a plan's workspace

Choose a project, then click Planning, including for a project imported from image folders. If the catalog cannot be planned, Planning shows the problem and Retry planning. Copying a database does not create a second rig: PSF Guard excludes the copy from planning while the original is registered. Use the original catalog. PSF Guard shows Fill in GUIDs guidance only when the selected project has no GUID.

Choose Planning or ⚙ on a Library row, or pick the project in the header and choose the Planning tab there. A plan with no database yet starts its framing from a name or typed coordinates.

The workspace has a summary at the top (target, goals, each rig's setup, and whether each rig matches the saved plan) and four tabs:

TabContents
FramingThe target, camera angle, mosaic grid and each rig's field on a survey image, with tonight's visibility. See Framing.
ExposuresGoals per filter, and for each rig its template, exposure length, frames and progress. See Exposures.
RigsEach rig's database project, its Target Scheduler settings and targets, and the plan's scheduling limits. See Rigs tab.
Priority and defaultsProject order and scheduling defaults for every plan, a site or a rig.

The workspace address is /plan?plan=<key>. The key is the Target Scheduler GUID the plan's rigs share, so one link opens the same plan on any PSF Guard server with those databases. The open tab is part of the address.

Save from one bar

Edits wait for the save bar at the top of the page. It shows every section with unsaved changes and lists what changed. Switching tabs keeps edits. Leaving the page, closing the tab, or opening another plan with edits unsaved asks first.

A copy saved elsewhere never replaces your edits. The page reports that the plan changed and offers Reload; the bar will not save over it.

Activate

Activation writes the saved plan into each rig's Target Scheduler database, and decides which of the project's exposure plans run there. The summary shows the activation status:

Activate…, a separate button beside the label, opens the activation dialog at any time. Once every edit is saved, a banner at the top explains why activation is needed; its button reads Activate again… after the first activation. See Activation.

The Activated badge confirms that the rig has the saved plan. Activate opens its preview again.
The Activated badge confirms that the rig has the saved plan. Activate opens its preview again.
This saved plan needs activation; the preview warns that four extra plans would turn off.
This saved plan needs activation; the preview warns that four extra plans would turn off.

Target Scheduler then runs the rows as it runs any project. When N.I.N.A. runs on another machine, the PSF Guard Sync plugin's Pull planning imports those changes into its Target Scheduler database. Target Scheduler with the Sync plugin is the recommended way to run a rig.

Order projects

Open Priority and defaults and unfold Project priority. Move projects with the up and down buttons and save the Global order once for all rigs. A site or rig override replaces that list for its rigs; tick Use inherited order to go back to the parent order.

The highest eligible project runs first. Finished work, blocked filters, horizon and meridian limits still stop acquisition. Goal priorities choose work inside a project; they never lift a lower-ranked project. New projects follow the saved list by name until you rank them. The list holds up to 1024 projects.

Project priority: Scope and Rig selects and the Global order with up and down buttons
Collapsed Project priority shows the plan's position in the order.

Scheduling limits

A plan carries Target Scheduler's per-project limits: minimum time, minimum and maximum altitude, custom horizon and its offset, meridian window, filter switch frequency, dither interval and smart exposure order.

The nearest scope that sets a limit wins: plan, then rig, then the rig's site, then global. An empty field inherits its value and shows the source. A limit nobody sets keeps Target Scheduler's default. Activation writes the resolved limits into each rig's project, so they hold when Target Scheduler runs the rig on its own.

Scheduling limits for every rig: inherited fields and a per-rig table showing where each value comes from
Empty fields inherit. The table shows what each rig gets and where it comes from.

Attach and detach projects

Two rigs that each made their own project for one target are two plans, since their GUIDs differ. In one plan's workspace, attach the other's project: the list offers projects in databases this plan has none in. Attaching moves the other plan's database links here and retires it. This plan keeps its own framing and goals and takes the other's only where it has none.

Detach gives a database's project a plan of its own again. When this plan has work for that rig, Detach says how many goals go and asks first. The project keeps its rows in Target Scheduler either way.

Fill in missing GUIDs

Target Scheduler skips GUIDs for existing rows when a database jumps past its schema 22 in one upgrade, and such projects cannot be planned. Settings › Databases says how many rows are affected and offers Fill in GUIDs. It copies the file beside itself first (<file>.before-guid-fill-<seconds>), then fills only the empty GUIDs.

psf-guard -d schedulerdb.sqlite fill-guids --dry-run
psf-guard -d schedulerdb.sqlite fill-guids
Close N.I.N.A. on that rig first, and fill the rig's own database, not a sync copy, so the GUIDs start where the rows do.

Where plans are kept

Drafts, rig profiles, sites and the template library live in director-meta.sqlite beside the database registry, or at --director-meta <path>. Back it up with the registry. Docker keeps it under /data/config. Director remains the name of the N.I.N.A. plugin, its protocol and the API.

More projects from theatr.us