Conversation
load_sharpless computed j_dec_deg from b1950_to_j2000() and then passed the unconverted dec_deg to NewCatalogObject, so only right ascension was precessed. All 313 Sharpless objects sat 0.26 to 0.37 degrees off in declination, which is exactly the 1950-to-2000 shift at those coordinates. Found by cross-checking against the Perek-Kohoutek catalogue, which lists several of the same nebulae with independent J2000 positions.
abell.tsv carried the ngc6742 alias on row 51. NGC 6742 matches row 50 to 0.1 arcmin and is 66 degrees from row 51, and the Strasbourg-ESO catalogue independently gives A 50, not A 51, as NGC 6742. The misplaced alias bound the Abell 51 listing onto NGC 6742's sky object. Row 47 had lost its declination sign. Abell 47 is at -00 13 51 per SIMBAD and Kohoutek 2001. Its constellation, Serpens, spans the celestial equator, so nothing else caught it. The two remaining aliases were audited positionally: IC 972, NGC 7076 and IC 1454 all agree within 0.12 arcmin.
Adds catalog code PK: the 1510 galactic planetary nebulae of Kohoutek's
2001 revision of Perek-Kohoutek 1967, from VizieR IV/24. Positions come
from SIMBAD or IV/24 table4, sizes and cross-identifications from V/84.
Sources are vendored under astro_data/perek_kohoutek/ with PROVENANCE.md
and a fetch script; decisions are in docs/adr/0024.
No precession runs here. Every position used is already J2000, and each
refined position must agree with the catalogue's own coarse position
within 5 arcmin, which rejects a four-degree typo in IV/24 table4.
The sequence is the printed catalogue's 1-1510 running number, so "PK 743"
is a list position, not a designation; the real designation is stored as a
name in both spellings. No PK source carries a magnitude, so entries are
built with an empty one: the 211 that resolve to an existing NGC, IC,
Messier, Abell or Sharpless object inherit its magnitude, and the rest fall
out of any magnitude filter via UNKNOWN_MAG.
Alias matching had to be fixed first. ObjectFinder resolved aliases through
ui_utils.normalize(), which strips spaces and hyphens, so any compound
numeric part collapsed into a wrong sequence number. Feeding it this
catalogue's name column produced 147 matches, 145 of them false - 188 of
those names are Minkowski planetary nebulae ("M 1-92"), not Messier
objects, and "H 3-29" is Haro, not Herschel 329. catalog_import_utils now
carries CATALOG_CODE_ALIASES and parse_designation(), which require an
explicitly allowlisted prefix and a bare integer sequence, so a compound
designation never reaches hyphen-stripping.
That fix also makes an existing intent work: post_processing lists "Cr 42"
among M45's aka names so the Pleiades resolve to one object, but Cr had
never been mapped to Col, so the database shipped two Pleiades. It also
removes two false links in SAC Multistars.
Verified against the published 1510-row list transcribed on astronomy.com
and in a widely circulated spreadsheet: all 1510 PK designations and all
1510 other-designations match exactly. That check also found the
spreadsheet drops a declination sign at row 551.
Owner
Author
|
Retargeted to brickbots#617 (base Builds for a fork PR publish to the manifest of the repo running the workflow. Devices read |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds catalog code PK: the 1510 galactic planetary nebulae of Kohoutek's 2001 revision of Perek-Kohoutek 1967.
Decisions and evidence are in
docs/adr/0024-perek-kohoutek-catalog.md; data provenance is inastro_data/perek_kohoutek/PROVENANCE.md.Source
VizieR IV/24 (Kohoutek 2001), the direct successor to CGPN 1967.
table2supplies the 1510 rows,table4arcsecond positions; V/84 (Acker+ 1992) supplies sizes and cross-identifications; SIMBAD supplies positions and cross-IDs. All vendored underastro_data/perek_kohoutek/with afetch_sources.shthat regenerates the snapshot.Two secondary transcriptions circulate among amateurs — an astronomy.com PDF and a spreadsheet linked from a Google Sites page. Both are reprints of the same Kohoutek 2001 data with the PN G designation, flags and notes stripped and en-dashes substituted for hyphens, so neither is imported. They were used as an independent check instead: all 1510 PK designations and all 1510 other-designations match
table2.datexactly. The check also found the spreadsheet drops a declination sign at row 551, putting that object 88 degrees out.Epoch
No precession runs in the loader. Every position used is already J2000, and each refined position must agree with the catalogue's own coarse position within 5 arcmin. That guard rejected a four-degree typo in
table4(the equinox-2000 row for Vy 1-4 reads-02 26where its five sibling rows and SIMBAD read-06 26). Final split: 1399 SIMBAD, 111table4. Median SIMBAD-to-table4agreement is 0.04 arcmin, so no B1950 leaked in.Sequence and magnitude
The Sequence is the printed catalogue's 1-1510 running number, not the PK designation, which is not an integer. So
PK 743is a position in the list; the real designation is stored as a name in both spellings (PK 036+17.1andPK 036+17 1) and is searchable. Encoding the designation as an integer was rejected: it yields 8-digit sequences, unreadable on a 128px display and impractical by keypad.No PK source carries a magnitude, so entries are built with an empty one. The 211 entries that resolve to an existing NGC, IC, Messier, Abell or Sharpless object inherit its magnitude and size; the rest fall out of any magnitude filter via
UNKNOWN_MAG. 197 entries end up with a real magnitude, 1037 with a size.Alias matching had to be fixed first
ObjectFinderresolved aliases throughui_utils.normalize(), which strips spaces and hyphens, so any compound numeric part collapsed into a plausible but wrong sequence number. Checked against the shipped database, feeding it this catalogue's name column produced 147 matches, 145 of them false:normalize()M 1-1,M 2-9,M 3-1(Minkowski)m11,m29,m31H 1-1,H 3-29(Haro)h11,h329NGC 650-1(M76)ngc6501Sh 2-176sh2176188 of the 1510 names begin
M, and every one is Minkowski, not Messier. Left alone, 145 planetary nebulae would have silently displayed Messier and Herschel objects' positions and magnitudes.catalog_import_utilsnow carriesCATALOG_CODE_ALIASESandparse_designation(), which require an explicitly allowlisted prefix and a bare integer sequence, so a compound designation never reaches hyphen-stripping. This is in the shared util rather than the loader because the defect affects every catalog.Two knock-on effects, both improvements:
post_processinghas always listed"Cr 42"among M45's aka names so the Pleiades resolve to one object, butCrwas never mapped toCol— the database shipped two separate Pleiades objects. Now one, listed as bothM 45andCol 42.Three data errors this exposed
PK carries independent positions, so every cross-link also checks the catalog it links to. Of 211 links, 6 disagreed by more than 5 arcmin, each tracing to a real defect. All are fixed here, in separate commits so they can be split out:
load_sharplessnever precessed declination — it computedj_dec_degthen passed the unconverteddec_deg. All 313 Sharpless objects sat 0.26 to 0.37 degrees off, exactly the 1950-to-2000 shift.abell.tsvrow 47 lost its declination sign. Abell 47 is at-00 13 51. Serpens spans the equator, so nothing else caught it.abell.tsvhad thengc6742alias on row 51. NGC 6742 matches row 50 to 0.1 arcmin and is 66 degrees from row 51; V/84 independently gives A 50 as NGC 6742.After the fixes, 2 of 211 links still disagree — Sh2 176 by 6 arcmin and Sh2 216 by 17. Both are large diffuse nebulae (Sh2 216 spans ~1.6 degrees) where catalogues place the centre differently. Not errors.
The remaining
abell.tsvaliases were audited positionally: IC 972, NGC 6742, NGC 7076 and IC 1454 all agree within 0.12 arcmin.Verification
ruff check,ruff format --check,mypyall clean.tests/test_designation_parsing.pycovers the alias regression;test_catalog_data.pygains PK counts, PK/NGC/Abell/Sharpless linkage assertions, Minkowski-is-not-Messier assertions, and a Pleiades-is-one-object assertion.CatalogBuilder: PK loads 1510 objects,PK 2shares its sky object withNGC 40,PK 18(M 1-1) is correctly not Messier 11, and text search finds bothNGC 7009and036+17.Not verified on device. This branch has no
cedar-detect-serverbinary inbin/, so the app could not be launched here; verification was done at theCatalogslayer. Worth an on-device pass of Objects > DSO... and Filters > Catalogs.Note on the menu label
The entry is labelled "PK Planetary". "Perek-Kohoutek" is 14 characters against an established 12-character maximum on the 128px display. Easy to change if you prefer something else.
🤖 Generated with Claude Code