/PsXisfReader

Primary LanguagePowerShellMIT LicenseMIT

A collection of scripts for maintaining, pre-processing, and stacking images obtained during and after an astrophotography session.

This repository is home to a powershell module named PsXisfReader.

PsXisfReader.psd1

  • A collection of cmdlets for reading data from xisf files per the XISF 1.0 spec.
  • A collection of cmdlets that can be used to launch PixInsight and invoke a number of workflow procedures for pre-processing (calibrating, debayering, weighting, aligning, and even integrating) images.

Required tools:

  • PowerShell 7.1 or newer
  • A licensed copy of PixInsight installed on the machine maintaining the scripts
  • At least one PixInsight "slot" reserved for use by the scripts that you author or would like to run
  • A powershell Editor such as Visual Studio Code (Recommended) with the PowerShell 2020.6.0 Preview plugin enabled (or newer)

The module sourced in this repository is maintained on Powershell Gallery here: https://www.powershellgallery.com/packages/PsXisfReader/

Getting Started:

  • Launch your preferred powershell editor and run the command install-module PsXisfReader to install the module.
  • Create a folder to create a project for maintaining your own scripts.
  • Create a powershell script to author your processing workflow.
  • At the top of the script add a line to import the PsXisfReader module using the import-module PsXisfReader command.
  • Explore the available cmdlets using the following command: get-command module PsXisfReader

To reserve one or more Slots in PixInsight run the cmdlet Start-PixInsight -PixInsightSlot XXX one-time. This will launch an instance of PixInsight using the slot number you specified. It's recommended to configure a dedicated Swap Storage Directory in Global Preferences for each slot you reserve. When you are done, close that instance of PixInsight.

Example usage:

  • To gather total integration time of images in a particular folder by filter, here's a short cmdlet that can be run.
Get-XisfLightFrames -Path "E:\Astrophotography\1000mm\Eye of Smaug in Cygnus" -Recurse -UseCache -SkipOnError |
    Where-Object {-not $_.HasTokensInPath(@("reject","process","testing","clouds","draft","cloudy","_ez_LS_","drizzle"))} |
    group-object Filter|foreach-object {
        $_.Group |
            Measure-ExposureTime -TotalHours -TotalMinutes |
            add-member -NotePropertyName Filter -NotePropertyValue ($_.Name) -PassThru
    } | 
    format-table Filter,Count,TotalMinutes,TotalHours