About Observing Plans

Observing plans are text files containing instructions on how to acquire images. The easiest way to make observing plans for most people is via the free ACP Planner. It is your responsibility to create your observing plans, using ACP Planner or by hand. Note that Planner can convert TheSky™ database exports and mosaics into ACP plans.

If you write plans by hand, or if you hand-edit plans created by ACP Planner, you should use the ACP Plan Checker before running them live. Or you can try running your plan, at which time the compiler/runner script AcquireImages.js will compile it into machine format, checking even deeper than the Plan Checker. If there are errors at that time, the plan won't run and you can correct the errors, then try again.

Once created, you can either initiate acquisition by running AcquireImages.js script and selecting the plan when it starts, or upload the plan through the web and initiate acquisition via the "Multiple Targets, Observing Plan" web page. If you are unclear on the role plan files play, see the New Users page.

Sample Plans

Overall Format

Plan files are text files. Each line of a plan file must be one of the following:

Typically, a plan will consist of some directives followed by a target, some more directives, another target, etc. Lines may be indented by tabs or spaces. Any leading or trailing tabs or spaces are removed as soon as each line is read from the file. Comments beginning with ';' may appear anywhere in a live line, and will be ignored. A directive and its argument may be separated by space(s) or tab(s).

Target Specifications

The heart of a plan file is its target specification lines. Most commonly, each target specification line contains three pieces of information: (1) the name of the target, (2) the J2000 right ascension of the target, and (3) the J2000 declination of the target. Other information may be in the line, but it is ignored.

One special type of target specification contains the orbital elements of a minor planet or comet, allowing AcquireImages.js to calculate its position at the precise time of the exposure, and optionally perform orbital tracking (if the mount supports it) to follow the motion of the object. Another special target specification contains ephemerides for a near-earth object. In this case, you supply several ephemeris records, spaced 1 or 2 hours apart, and ACP will perform a Lagrange interpolation on the positions to determine a precise position and velocity (for orbital tracking) of the NEO.

ACP accepts target specifications in several formats.

These target specifications may be freely intermixed within a single plan file.

They are:

Sets, Repeats, and Filter Groups

Plans have three levels of repeat capability. While this makes ACP plans very powerful and flexible, it can also be confusing at first, so please read on.

noteThe #Filter, #Binning, #Count, and #Interval directives remain in effect across multiple targets, until changed. #Repeat does not.

Each target can include a filter group, that is, a series of filters, counts, exposure intervals, and binnings. For example

#Filter Red,Clear,Green,Blue
#Binning 2,1,2,2
#Count 5,8,5,10
#Interval 180,240,180,180
M 51

This specifies a total of 28 images of M 51, starting with 5 Red images at 180 sec. and binning 2, etc.

noteThe number of items in each series must match and you must specify series for filter, count, interval, and binning. For example, if you specify four filters, you must also specify four counts, four intervals, and four binnings.

You can multiply a target's filter group with the #Repeat directive. For example

#Repeat 3
#Filter Red,Clear,Green,Blue
#Binning 2,1,2,2
#Count 5,8,5,10
#Interval 180,240,180,180
M 51

This specifies 28 x 3 = 84 images of M 51. The complete filter group is repeated three times, in other words, it will take 28 images in each of 4 filters, then loop back and do another 28 images in 4 filters, and then loop back for a third time taking another 28 images.

An entire plan may be repeated using the #Sets directive. Remember, #Repeat does not carry across multiple targets. For example:

#Sets 2
#Repeat 3
#Filter Red,Clear,Green,Blue
#Binning 2,1,2,2
#Count 5,8,5,10
#Interval 180,240,180,180
M 51
#Repeat 2
#Count 6,10,7,15
M 13

This specifies 2 x ((28 x 3) + (38 x 2)) = 320 images. Note that #Filter, #Binning, #Interval, and #Count all carry across targets, while #Repeat does not. If you omit the second #Repeat (#Repeat 2) the second filter group (for M13) will result in only 38 images, not 76.

Mixing Old and New Target Formats

Previous versions of ACP did not have support for filter groups. ACP will still run these old format plans, however in general you cannot mix old and new formats within a single plan. If you specify any target with more than one filter group, you must specify #Count, #Binning, #Interval, and (if you have filters) #Filter explicitly for the first target in the old format. For example:

#Filter Red,Clear,Green,Blue
#Binning 2,1,2,2
#Count 5,8,5,10
#Interval 180,240,180,180
M 51
#Count 1        ; Reset these to one filter group
#Filter Clear
#Binning 1
#Interval 120
M 13
#interval 240
M 21

Directives

Directives may be interspersed within the target lines in your observing plans. The system recognizes a directive by its first non-blank character, which must be a "#". Some directives take arguments (parameters). A directive and its argument may be separated by space(s) or tab(s).

These affect only the next target

#REPEAT
See Sets, Repeats, and Filter Groups . Tells script to take the given number of filter groups of the next target or dark/bias frame (#DARK) in a row. #REPEAT may be combined with #SETS. For example:

#REPEAT 5

#CALIBRATE
Forces calibration of the images for this target, even if ACP's auto-calibration preference is turned off (it is redundant if ACP's auto-calibration is turned on). This will not cause calibration of pointing exposures, only the final images. See Using Auto-Calibration. For example:

#CALIBRATE

#AUTOGUIDE
Forces the next target's images to be guided, regardless of the setting of ACP's "enable autoguiding" preference or the duration of the exposure(s).
#STACK
Combines repeated images within one filter group without aligning into a single image. Individual images used in the stack are preserved. File names will have -STACK in place of the repeat number. This is most useful when doing orbital tracking. See #TRACKON. The stacked image is saved in IEEE floating-point FITS format to preserve the dynamic range. For example:

#STACK

#STACKALIGN
Combines repeated images within one filter group and aligns images into a single image. Individual images used in the stack are preserved. File names will have STACK in place of the repeat number. Use this for all stare-mode image sets. The stacked image is saved in IEEE floating-point FITS format to preserve the dynamic range. For example:

#STACKALIGN

#AUTOFOCUS
See Sets, Repeats, and Filter Groups. Automatically refocus the optical system before each filter group in the filter group for this target. In order to preserve compatibility with the old target-per-filter plan format, this is modified if there is only one filter group. In this case, the autofocus is done once for the target, even if #repeat is greater than one. This requires that FocusMax 3.4.1 or later be installed and autofocus be enabled in ACP's preferences. For example:

#AUTOFOCUS

See the #AFINTERVAL directive for periodic autofocus. If your filters are non-parfocal, consider setting up a focus offset table so you can avoid wasting time focusing on filter changes. Finally, ACP has an adaptive autofocus feature. If you turn this on (in the AutoFocus tab of Preferences), then ACP will monitor the half-flux diameter (a measurement of focus quality) and autofocus when needed.
#POINTING
Schedule a pointing update prior to the target. This will work even if auto-center is disabled in Preferences. Thus, you can use #POINTING as a means to manually control when pointing updates occur in a plan. For example:

#POINTING

#NOPOINTING
Prevent the pointing update prior to the target. Harmless if auto-center is disabled in Preferences. For example:

#NOPOINTING

#NOPREVIEW
Prevent the generation of preview images for the web System Status display. This can save significant time per image, maximizing efficiency at the cost of no "last image preview" thumbnail or clickable light box image. For example:

#NOPREVIEW

#NOSOLVE
Prevent final/data image plate solving for all of the images of the current target. Harmless if final/data image solving is disabled in Preferences. For example:

#NOSOLVE

#WAITFOR
Pause for the given number of seconds before processing the next target. For example:

#WAITFOR 30

#WAITUNTIL (date/time, see below for alternate form)
Pause during a specific set (see #SETS) until the given UTC date/time or (only) time. The first parameter is the set number for the pause, the second is the date/time at which to resume. The set number may range from 0 through the number of sets given by the #SETS directive. If there is no #SETS directive on the plan, the set number must be 1. If the set number is 0, it means "wait on all sets". This is useful, when only a time is given, for plans that are stopped before completion then resumed on subsequent nights. If a complete date/time is given, and has passed, the directive is ignored. If only a time is given, it will wait for up to 12 hours. If the time is less than 12 hours in the past, it will not wait. The idea is that the time is relative to that observing night, and may be re-used on the next night. See the note below. For example:

#WAITUNTIL 1, 21-Apr-2011 08:02:00
Wait until 08:02 UTC only if set #1 and only if 21-Apr-2011

#WAITUNTIL 2, 08:32:00
Wait until 08:32 UTC if set #2 no matter what the date is

#WAITUNTIL 0, 09:21:00
Wait until 09:21 UTC on any night on any set # (set #0 means "all sets")

The date/time format is flexible. We use US English here, so acceptable formats for us include:

7/3/06 08:22
07/03/2006 18:34:24
03-July-2006 06:34 PM

You can use any acceptable date/time format for your version (language) of Windows.

If the date part is not included, the directive will wait for up to 12 hours. This allows plans to be re-used for multiple runs. If the time is less than 12 hours in the past, it will not wait.
#WAITUNTIL (sun-down angle, see above for alternate form)
Pause during a specific set (see #SETS) until the Sun gets below the given angle, degrees (must be a negative number). The first parameter is the set number for the pause, the second is the negative sun-down angle (degrees) at which to resume. The set number may range from 0 through the number of sets given by the #SETS directive. If there is no #SETS directive on the plan, the set number must be 1. If the set number is 0, it means "wait on all sets". This is mostly useful for runs that start before dusk. The directive waits for the nearest dusk, so if you start a run with this directive after solar nadir, it will wait until the upcoming dusk! For example:

#WAITUNTIL 1, -10.5
Wait until the Sun gets to 10.5 degrees below the horizon if set #1

#WAITUNTIL 0, -10.5
Wait until the Sun gets to 10.5 degrees below the horizon on any night on any set # (set #0 means "all sets")

#WAITINLIMITS
Pause until the target is within the observatory limits: minimum elevation, horizon, and any tilt-up limit. If target will never meet the criteria, it Is immediately skipped. A maximum time to wait (minutes) must be included. For Example:

#WAITINLIMITS 60

This will wait for the target to rise above the observatory limits for up to 60 minutes.

#WAITZENDIST
Pause until the target is within the given zenith distance (deg) for up to the given time (min). If the target will never get within the given zenith distance, or won't get there within the time limit, it is skipped. A maximum time to wait (minutes) must be included. For Example:

#WAITZENDIST 40, 30

This will wait until the target is within 40 degrees of the zenith for up to 30 minutes.

#WAITAIRMASS
Pause until the target is at or below the given air mass. If the target will never get within the given air mass, or won't Get there within the time limit, it is skipped. A maximum time to wait (minutes) must be included. For example:

#WAITAIRMASS 2.5, 30

This will wait until the target is at or below 2.5 air masses for up to 30 minutes.

#TAG
Adds a named tag to the target. This directive does not affect the image acquisition process; it simply attaches the tag name and value to the target. You can specify as many of these as you want (each with different names) for any target. The tag name(s) and value(s) will be echoed to the run log, but this is most useful when you have custom actions defined for TargetStart and TargetEnd. These custom actions are passed a Target object as a parameter. Within the custom action, you can refer to tags by their name (as you defined them) with the syntax Target.Tags.name. Thus, you can use tags to alter the action of TargetStart and TargetEnd based on the tags' value(s). This is an expert feature and allows powerful custom logic to be implemented. The syntax is #TAG name=value. There must be an '=' in the #TAG directive. For example:

#TAG type=reference star

This will attach a tag "type" with the value "reference star" to the target.

These affect the current and all subsequent targets

#COUNT
See Sets, Repeats, and Filter Groups. Used only when specifying a filter group. For example:

#Count 5,10,5,15

#INTERVAL
See Sets, Repeats, and Filter Groups. Set the final target exposure interval(s) for subsequent targets (sec.). For example:

#INTERVAL 31.5
#INTERVAL 180,240,180,180

#FILTER
See Sets, Repeats, and Filter Groups. Required if the system has filters. Set the filter(s) for subsequent targets. If the filter name is not recognized, an error is logged at plan start, and the plan will not run. For example:

#FILTER Blue
#FILTER Red,Clear,Green,Blue

#BINNING
See Sets, Repeats, and Filter Groups. Sets the binning factor(s) for subsequent targets. Note that some detectors don't support arbitrary binning values. Consult the documentation for your detector for specifics. Note: for auto-calibration, of the binned size must be available in MaxIm's calibration groups. For example:

#BINNING 4
#BINNING 2,1,2,2

#SUBFRAME
Sets the fraction of the chip to be used for subsequent images. Legal values are 0.1 to 1.0 (full frame). For example, if the chip is 1K by 1K (1024 by 1024), a SUBFRAME of 0.5 will result in using the center 512 by 512 pixels of the chip. For example:

#SUBFRAME 0.5

#POSANG
Required if a rotator is connected in ACP. If a rotator is installed and connected in ACP, sets the position angle for subsequent images. The value of the position angle ranges from 0 up to but not including 360 degrees. 0 Degrees is pole-up, and the angle increases counterclockwise, that is, north toward east. The rotator will be positioned correctly regardless of GEM meridian flip, and the guider will be adjusted accordingly as well. For example:

#POSANG 240.5

#DITHER
Offset each image in a repeat-set by some small amount away from the original target location. Works for both guided and unguided images. If no parameter is given, ACP uses a value of 5 main imager pixels for dithering (see below). Normally, this value will be appropriate for achieving the noise reduction effect of dithering. Dithering is done by generating two uniform random numbers ranging from minus to plus the "amount". One is applied in the X direction, the other in the Y direction. Note that you must supply a value for the guider's plate scale in order for ACP to calculate main imager pixels for guided dithering. If you fail to do this, a warning message will appear in your run log and dithering will be in guider pixels.

If given, the parameter specifies the maximum amount in each axis of this offset in fractional pixels. A parameter value of 0 disables dithering. The random offsets are applied independently in X and Y and are always relative to the initial position. For example:

#DITHER        ; Automatic dithering
#DITHER 3.0  ; 3 pixels dither on the image
#DITHER 0     ; Disable dithering

#DIR
Temporarily change the directory into which all subsequent images are to be stored. This can be a relative or full (with a drive letter) directory path, with multiple levels. If relative, the folder is relative to the default image folder as configured in the Local User tab of ACP Preferences (or for web users, their images folder). The folder, including all intermediate levels, is created if needed. For example:

#DIR C:\Special\Comet Search\28-Sep-2003  (absolute)
#DIR Photometric Standards\Landolt  (relative)

If no folder name is given, this will switch back to the default image folder as configured in the Local User tab of ACP Preferences (or for web users, their images folder) plus the usual date-based subfolder. For example:

#DIR          ; Restore default image folder

The file path/name customization feature should be used to permanently change image file names and folders. This directive will override the custom folder, and if #DIR is given without a folder name, the custom folder will be restored.
#TRACKON
Initiates orbital tracking of solar system bodies. This remains in effect until cancelled by #TRACKOFF. Orbital tracking will not be done except for solar system bodies, so non-solar-system targets may be intermixed without harm. Autoguiding will not be done if orbital tracking is active. Note that orbital tracking requires orbital elements as the target specification (major planet targets will also be tracked). For example:

#TRACKON

#TRACKOFF
Cancels orbital tracking. This remains in effect until re-enabled with #TRACKON. For example:

#TRACKOFF

#READOUTMODE
Selects the imager's readout mode for the current target and all subsequent targets. The imager must support readout modes, and the name you give must be supported by your imager. You can see which readout modes (if any) are supported by looking on the MaxIm DL CCD control window's "Expose" tab. Pointing exposures will always use Fast or Normal, so this will not impact pointing update times. For example:

#READOUTMODE 8 MPPS (RBI Flood)

#DEFOCUS
Moves the focuser the given number of integer steps away from proper focus just before acquiring each subsequent image. The focus position is restored immediately after acquiring the image, but this directive does carry from target to target, so unless changed, the focus will be moved away from proper focus before each subsequent image. This does not affect pointing images. For example:

#DEFOCUS -150

This should not be used when you have an internal or off-axis guider and the image exposure duration would result in guiding being used. Doing so will obviously defocus the guider, probably not what you want! If #defocus is specified, the "aggregate exposure" algorithm will not be used to determine whether guiding will be used, only the individual exposure interval will be considered.

These affect the plan as a whole

#SETS
See Sets, Repeats, and Filter Groups. Repeat the entire plan a given number of times. The images are acquired in round-robin order. This directive may appear anywhere in the plan. If it appears more than once, the last value is used for the plan. The default is a single set. For example:

#SETS 3

#AFINTERVAL
Turns on periodic autofocus and forces an autofocus at the start (or resumption) of the plan. The interval is given in minutes. If an #AUTOFOCUS directive is seen, it overrides a scheduled autofocus, and the time to the next autofocus is reset to the interval. This directive may appear anywhere in the plan, and the value given in the last appearance will be used for the entire plan. For example, to start the plan with an autofocus, then do an autofocus every 30 minutes:

#AFINTERVAL 30

#ALWAYSSOLVE
Normally, when ACP fails to solve a final/data image in a series (the same target/filter/etc.), it will not try to solve again for that series. This prevents wasting time waiting for plate solves that will probably fail (again). If you want to override this behavior and force ACP to attempt solving every final/data image, include this directive anywhere in your plan. For example:

#ALWAYSSOLVE

#DUSKFLATS
The plan starts by acquiring a series of automatic sky flats at dusk via the AutoFlat.vbs script (which is run under control of AcquireImages.js). See #DAWNFLATS below, and Using Automatic Flat Frames. Will result in an error is the observatory is configured to use a light panel for flats.

If no argument is supplied, there must be a default flat plan named defaultduskflat.txt or just defaultflat.txt in the Local User's default plans folder or AcquireImages will not try to start AutoFlat. This avoids AutoFlat stalling waiting for flat plan input. If an argument is supplied it can be either a full path to a flat plan, or just a flat plan file name. If just the flat plan file name is given, it is assumed to be in your default Plans folder. For example:

#DUSKFLATS        ;Need standard flat plan defaultflat.txt in user's default plans folder
#DUSKFLATS 20060122-dusk-flats.txt     ; In user's default plans folder
#DUSKFLATS C:\MasterCalibration\LRGB-Standard-Flats.txt

#MINSETTIME
The minimum amount of time that a set is allowed to take. This can be used to limit the number of sets per unit time. For example:

#MINSETTIME 00:05

will tell ACP to wait until at least 5 minutes has elapsed before starting the next set.

#QUITAT
Set a "quitting time" at which the plan will stop acquiring images. The quitting date/time is in UTC, and is interpreted the same as for #WAITUNTIL. If you specify #DAWNFLATS, #CHAIN, or #CHAINSCRIPT, these actions will still occur after the plan ends. For example:

#QUITAT 7/1/01 08:22

If the plan completes before the quit date/time is reached, it ends as usual. If only a time is given, it will always wait until the given time, even if it was just passed (it will wait till it is that time again).

#SHUTDOWNAT
Same as #QUITAT, except the scope is parked and the camera is shut down at the quitting time, or at normal exit. The shutdown time is in UTC, and is interpreted the same as for #WAITUNTIL. For example:

#SHUTDOWNAT 7/1/06 08:22

If the plan completes before the shutdown date/time is reached, it acts as though a #SHUTDOWN directive was given instead. If only a time is given, it will always wait until the given time, even if it was just passed.

#SHUTDOWN
At the end of the run, parks the scope and shuts down the camera and cooler. If dome control is active, and if the "Automatically park or home and close AFTER the scope is parked" option is set, then the dome will be parked or homed and the shutter or roll-off roof will be closed. This may be used with #DAWNFLATS, and shutdown will occur after dawn flats have been taken. For example:

#SHUTDOWN

#STARTSETNUM
The starting set number used in naming image files. Do not include this in your plans, it is automatically inserted in all plans by AcquireImages.js. Each time the plan runs to completion, this number is incremented by the number of sets specified in #SETS or by 1. Its main use is to prevent overwriting of images when the same plan is run multiple times. For example:

#STARTSETNUM 6

 
#COMPLETIONSTATE
The number of sets, targets in the current set, repeats in the current target, filter groups in the current repeat, and images in the current filter group, that have been completed. Do not include this in your plans, it is automatically inserted in all plans by AcquireImages.js each time a target is completed, then removed if and when the plan runs to completion (at which time #STARTSETNUM is adjusted as described above). Its main use is to allow an interrupted plan to resume at the point where the interruption occurred. For example:

#COMPLETIONSTATE 2,4,1,3,1

These act like targets

#DARK
Acquire a dark or bias frame using the current target exposure interval. If you set #INTERVAL to 0 before using #DARK, ACP will acquire a bias frame, and the file naming will be adjusted. It is recommended, however, to use the #BIAS directive described below. You can use the #REPEAT directive to acquire multiple darks or biases. Multiple darks/biases will be sequence numbered as well as carrying the current #SET number, similar to file naming for light images (except no filter name is included of course). For example:

#DARK

results in one or more files of the form Dark-Snnn-Rnnn.fts, or if the preceding #INTERVAL was 0, Bias-Snnn-Rnnn.fts.

An optional complete file path and name may be given, in which case the dark or bias will be created in the given folder with the exact given name. Dark vs bias name changing and sequencing are not done. Any existing file with that name will be replaced. For example:

#DARK D:\MyCalibration\2006012\Dark-Bin2.fts

#BIAS
Acquire a bias frame using the current target exposure interval. You can use the #REPEAT directive to acquire multiple biases. Multiple biases will be sequence numbered as well as carrying the current #SET number, similar to file naming for light images (except no filter name is included of course). For example:

#BIAS

results in one or more files of the form BIAS-Snnn-Rnnn.fts.

An optional complete file path and name may be given, in which case the bias will be created in the given folder with the exact given name. Any existing file with that name will be replaced. For example:

#BIAS D:\MyCalibration\2006012\Bias-Bin2.fts

#MANUAL
Acquire an image at the current telescope location. No pointing updates or slews will be done. This is actually a type of target, so don't include a target line. Include an object name. For example:

#MANUAL MyImage

If you don't include an object name, the current date/Time will be used. For example:

#MANUAL

results in an image file name of Manual-dd-mm-yyyy@hhmmss-Snnn-Rnnn-filter.fts

#CHILL
If needed, turns on the imager's cooler and waits for 5 seconds. In any case, the imager's temperature setpoint is changed to the given temperature (deg. C). After the change, #chill waits for up to 15 minutes for the cooler to reach a temperature within the given tolerance (or 2 degrees, default) of the setpoint. This is actually a type of target, so you can wait before it, have the imager cooled, then wait again so that imaging starts later. If the cooler does not reach the given temperature and tolerance, the plan fails with an error. For example:

#CHILL -35.0
#CHILL -32.5, 0.2

If your application requires tight temperature tolerances, you can include one of these directives for every target. Thus, before starting on a target, ACP will change or verify the cooler temperature, and fail if it does not meet your criteria.

#DOMEOPEN
Opens the shutter or roll-off roof, and waits until the shutter or roof is actually open. Will un-home or un-park the dome if needed. Effective only during the first or only set-loop of the plan. This is actually a type of target, so you can wait before it, have the shutter or roof opened, then wait again so that imaging starts later. For example:

#DOMEOPEN

If you have a dome or roof that is potentially hazardous, ACP will allow you to start your plan. If your plan attempts to slew before the shutter/roof is in a safe condition, the slew will result in an immediate script error.

#DOMECLOSE
Closes the shutter or roll-off roof, and waits until the shutter or roof is actually closed. Effective only during the last or only set-loop of the plan. For example:

#DOMECLOSE

#NOWEATHER
Disconnects the weather input. This is provided so that you can do calibration frames (darks/biases) in unsafe weather without the weather safety interrupt. Normally follows #domeclose. Weather will not be disconnected if the dome or roof is open. If you have no dome or roof, this will disconnect the weather, so beware! This latter logic is for special cases where the roof or enclosure is not under ACP's control and is sure to be closed in unsafe weather by another means (for example observatory pods housing multiple telescopes). For example:

#NOWEATHER

These terminate the plan (last or only set)

#CHAIN
When encountered during the last (or only) set, immediately stops reading image acquisition lines from the current plan file, queues a new run of AcquireImages.js with the new plan, then exits. A chained-to plan is thus run in a separate invocation of AcquireImages.js, and starts with conditions identical to those when the same plan is run directly. Use this to chain together plans, each of which might take several sets of images, then wait for a while, then run the new plan which would also take several sets of images. For example:

#CHAIN C:\Program Files (x86)\ACP\Plans\LateNight.txt

or if you just specify a file name, the plan is assumed to be in the same folder as the plan being chained-from. For example:

#CHAIN LateNight.txt    ; In current plan's folder

#DAWNFLATS
When encountered during the last (or only) set, immediately stops reading image acquisition lines from the current observing plan file, terminates AcquireImages.js, and starts ACP's automatic sky-flat script AutoFlat.vbs. If AcquireImages fails or is aborted, the auto-flats will not occur. See #DUSKFLATS above, and Automatic Flat Frames. Will result in an error is the observatory is configured to use a light panel for flats.

If no argument is supplied, there must be a default flat plan named defaultdawnflat.txt or just defaultflat.txt in the Local User's default plans folder or AcquireImages will not try to start AutoFlat. This avoids AutoFlat stalling waiting for flat plan input. If an argument is supplied it can be either a full path to a flat plan, or just a flat plan file name. If just the flat plan file name is given, it is assumed to be in your default Plans folder. For example:

#DAWNFLATS        ;Need standard flat plan defaultflat.txt in user's default plans folder
#DAWNFLATS 20060122-dawn-flats.txt     ; In user's default plans folder
#DAWNFLATS C:\MasterCalibration\LRGB-Standard-Flats.txt

#SCREENFLATS
When encountered during the last (or only) set, immediately stops reading image acquisition lines from the current observing plan file, terminates AcquireImages.js, and starts ACP's automatic flat script AutoFlat.vbs. If AcquireImages fails or is aborted, the auto-flats will not occur. See Automatic Flat Frames. Will result in an error is the observatory is configured for sky flats.

If no argument is supplied, there must be a default flat plan named defaultflat.txt in the Local User's default plans folder or AcquireImages will not try to start AutoFlat. This avoids AutoFlat stalling waiting for flat plan input. If an argument is supplied it can be either a full path to a flat plan, or just a flat plan file name. If just the flat plan file name is given, it is assumed to be in your default Plans folder. For example:

#SCREENFLATS        ;Need standard flat plan defaultflat.txt in user's default plans folder
#SCREENFLATS 20060122-flats.txt     ; In user's default plans folder
#SCREENFLATS C:\MasterCalibration\LRGB-Standard-Flats.txt

#CHAINSCRIPT
When encountered during the last (or only) set, immediately stops reading image acquisition lines from the current plan file, terminates AcquireImages.js, and starts the given ACP script. If AcquireImages fails or is aborted, the chain will not occur.

The argument is either the full path/name or just the file name only of the script to be chained-to. If only the script file name is given, it is assumed to be in the ACP scripts folder. For example:

#CHAINSCRIPT C:\Program Files (x86)\ACP Obs Control\Scripts\Cleanup.vbs
#CHAINSCRIPT Cleanup.vbs    ; In ACP script folder