pluto_ps1_nir_finder.py creates a printable finder chart for Pluto using:
- Pluto position at a chosen date/time (Astropy ephemerides)
- Pan-STARRS DR1 stars (
II/349/ps1) for RA/Dec and brightness - r-band magnitudes only for star size scaling
- Black-on-white atlas style with RA/Dec grid, N/E arrows, and Pluto marker
Repository:
Clone with Git:
git clone https://github.com/blackhaz/pluto_ps1_nir_finder.git
cd pluto_ps1_nir_finderIf you do not use Git, you can also download ZIP from GitHub:
- Open the repository URL above
- Click Code → Download ZIP
- Extract ZIP
- Open terminal in extracted folder
- Python 3.10+ (3.11 recommended)
- Internet access (queries Pan-STARRS through CDS VizieR)
- Python packages:
numpymatplotlibastropyastroquery
- Install Python from https://www.python.org/downloads/windows/
- During install, check Add Python to PATH.
- (Optional) Install Git: https://git-scm.com/download/win
Open PowerShell in the project folder and run:
py -3 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install numpy matplotlib astropy astroqueryIf PowerShell blocks activation, run once:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
python pluto_ps1_nir_finder.py --helpIf needed:
xcode-select --installInstall Homebrew (optional but recommended):
Install Python + Git:
brew install python gitpython3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install numpy matplotlib astropy astroquerypython pluto_ps1_nir_finder.py --helpsudo apt update
sudo apt install -y python3 python3-venv python3-pip gitsudo dnf install -y python3 python3-pip gitsudo pacman -S --needed python python-pip gitpython3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install numpy matplotlib astropy astroquerypython pluto_ps1_nir_finder.py --helpRequired argument:
--datetimeobservation date/time in ISO-8601 format
Example:
python pluto_ps1_nir_finder.py \
--datetime 2026-04-10T00:00:00+00:00 \
--fov 3.0 \
--rmag-limit 15.0 \
--dpi 240 \
--output pluto_finder.pngThis creates pluto_finder.png in the current folder.
Topocentric (observer-specific) example:
python pluto_ps1_nir_finder.py \
--datetime 2026-04-10T00:00:00+00:00 \
--observer-lat 52.5200 --observer-lon 13.4050 --observer-elevation-m 35 \
--fov 1.0 --rmag-limit 17.5 \
--output pluto_finder_berlin.png--datetime Required. ISO datetime, e.g. 2026-07-15T22:30:00+00:00
--fov Field width in degrees (default: 1.2)
--rmag-limit Faintest r magnitude to include (default: 18.0)
--dpi Output DPI (default: 240)
--output Output image filename (default: pluto_finder_ps1_r_printable.png)
--center-ra Optional fixed chart center RA in deg
--center-dec Optional fixed chart center Dec in deg
--center-datetime Optional fixed center = Pluto position at this datetime
--observer-lat Optional observer latitude in deg (for topocentric Pluto)
--observer-lon Optional observer longitude in deg, east positive
--observer-elevation-m Optional observer elevation in meters (default: 0)
- Default: chart center follows Pluto at
--datetime - For motion studies (same star field, Pluto moves), use:
--center-datetime(recommended), or--center-raand--center-dec
Generate two charts with the same center:
python pluto_ps1_nir_finder.py \
--datetime 2026-04-10T00:00:00+00:00 \
--center-datetime 2026-04-10T00:00:00+00:00 \
--fov 0.8 --rmag-limit 17.5 --output chart_2026-04-10.png
python pluto_ps1_nir_finder.py \
--datetime 2026-05-10T00:00:00+00:00 \
--center-datetime 2026-04-10T00:00:00+00:00 \
--fov 0.8 --rmag-limit 17.5 --output chart_2026-05-10.pngNow the stars stay fixed and Pluto position shifts.
Star diameters are atlas-style, based on r magnitude:
- mag 0 → 20 mm
- mag 1 → 10 mm
- mag 3 → 5 mm
- mag 4 → 2 mm
Then all diameters are scaled by the script constant:
STAR_DIAMETER_SCALE = 2.0
Faintest stars at --rmag-limit are forced to at least 2 output pixels diameter (because of the 2x scale).
- Increase
--fov(e.g.,1.2→3.0) - Use a fainter
--rmag-limit(e.g.,15→18) - Check internet/firewall/proxy
This is expected if chart center follows Pluto (default). Use fixed center:
--center-datetime <baseline_date>or--center-ra ... --center-dec ...
Use the same time, location, and coordinate mode when comparing:
- Set
--datetimeexactly (including timezone offset) - If needed, pass observer site:
--observer-lat--observer-lon--observer-elevation-m
- In Stellarium, compare using J2000/ICRF-like equatorial coordinates (not apparent-of-date readout)
The script computes Pluto as an Earth-observed apparent position (GCRS) and uses Pan-STARRS J2000 star coordinates. Small arcsecond-level differences may still occur vs. Stellarium due to ephemeris/model differences.
Make sure your virtual environment is activated and dependencies are installed:
pip install numpy matplotlib astropy astroqueryUse:
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedpython pluto_ps1_nir_finder.py \
--datetime 2026-04-10T00:00:00+00:00 \
--fov 0.8 --rmag-limit 17.5 \
--output test_chart.pngIf successful, the script prints:
Saved finder chart: test_chart.png