Skip to content
Back to skills

Wcs Nddata

ASecurity

"Operate Astropy FITS WCS and NDData/CCDData workflows, including

  • 247 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 8, 2026
testingpythonapidocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill wcs-nddata --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wcs Nddata?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Wcs Nddata
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-wcs-nddata/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-wcs-nddata)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wcs-nddata
description: "Operate Astropy FITS WCS and NDData/CCDData workflows, including
  pixel-world conversion, WCS validation, masks, uncertainties, units, and
  metadata."
metadata:
  disco-role: operating
disable-model-invocation: true
license: BSD 3-Clause
---

# WCS and NDData Router

Use this sub-skill when an Astropy task centers on the relationship between
image-like array pixels and physical/world coordinates, or on carrying image
data together with masks, uncertainties, units, metadata, and WCS.

## Load This When

- A user has FITS WCS header keywords and needs an `astropy.wcs.WCS` object.
- The task asks for pixel-to-world or world-to-pixel conversion.
- The user needs to choose between high-level APE14 WCS calls and legacy
  origin-aware WCS calls.
- The task mentions `all_pix2world`, `all_world2pix`, `pixel_to_world`,
  `world_to_pixel`, `world_to_array_index`, or `array_index_to_world`.
- A FITS header emits WCS warnings or must be validated with `wcslint`.
- The user needs to create or update WCS header cards programmatically.
- The task uses `NDData`, `NDDataArray`, `NDDataRef`, or `CCDData`.
- Image data must keep a boolean mask, `StdDevUncertainty`,
  `VarianceUncertainty`, `InverseVariance`, a unit, metadata, or a WCS object.
- `CCDData.read`, `CCDData.write`, `to_hdu`, FITS `BUNIT`, mask/uncertainty HDUs,
  or WCS-preserving slicing/cutouts are part of the task.

## Route Away When

- FITS file opening, HDU inspection, table formats, ECSV, VOTable, or general
  unified I/O are the main topic; use `../tables-io/SKILL.md`.
- Plotting with WCSAxes, image normalization, RGB rendering, `fits2bitmap`, or
  convolution is the main topic; use `../visualization-convolution/SKILL.md`.
- Coordinate-frame science transforms, `SkyCoord` catalog matching, IERS, or
  `EarthLocation` dominate after the WCS conversion step; use
  `../time-coordinates/SKILL.md`.
- Unit arithmetic, equivalencies, or constants are the main obstacle; use
  `../units-constants/SKILL.md`.
- Install/import, remote data, config/cache, logging, or the general CLI catalog
  is the main topic; use `../cli-config-data/SKILL.md`.

## First Actions

1. Identify the input object: FITS header, FITS file/HDU, existing `WCS`, array,
   `NDData`, `CCDData`, or a world-coordinate object.
2. Record the pixel convention before transforming coordinates.
3. Prefer the high-level WCS API for user-facing coordinates and Astropy objects.
4. Use low-level or legacy WCS methods when the caller needs raw numeric arrays,
   explicit `origin`, or distortion-pipeline control.
5. Inspect `pixel_n_dim`, `world_n_dim`, `array_shape`, `pixel_shape`,
   `world_axis_physical_types`, and `world_axis_units` before assuming axis order.
6. For NumPy indexing, prefer `world_to_array_index` or
   `world_to_array_index_values`, not rounded `world_to_pixel` outputs.
7. For WCS construction from headers, decide whether `relax`, `fix`,
   `translate_units`, `naxis`, and `preserve_units` matter.
8. For image containers, check data shape, unit, mask convention, uncertainty
   type, metadata type, and whether WCS should be attached at construction.
9. Validate with a small round-trip or temporary-file smoke before giving final
   operational code.

## API Selection Rules

- `WCS(header)` is the normal FITS-WCS constructor. It accepts headers,
  dict-like header cards, or a filename, and can also create an empty WCS with
  `naxis=`.
- High-level `pixel_to_world` and `world_to_pixel` return and consume Astropy
  world objects such as `SkyCoord` or `Quantity` when the WCS describes those
  axes.
- High-level methods use Python zero-based pixel coordinates. They do not take
  an `origin` argument.
- Low-level `all_pix2world` and `all_world2pix` include detector, SIP, lookup
  table, and core WCS corrections when present; pass `origin=0` for NumPy-style
  pixels or `origin=1` for FITS/DS9-style coordinates.
- Core `wcs_pix2world` and `wcs_world2pix` omit SIP and table-lookup distortion;
  use them only when that distinction is intentional.
- `array_index_to_world` and `world_to_array_index` use NumPy array order
  `(row, column, ...)`; `pixel_to_world` and `world_to_pixel` use pixel order
  `(x, y, ...)`.
- By default FITS-WCS may normalize angles to degrees and spectral/other units
  to SI. Use `preserve_units=True` when the original header units are the
  required output/input units.
- Use `.celestial`, `.sub(...)`, slicing, or `SlicedLowLevelWCS` when a cube or
  higher-dimensional WCS must be reduced or cut out.

## NDData Selection Rules

- Use `NDData` as a lightweight container for `data`, `uncertainty`, `mask`,
  `wcs`, `meta`, `unit`, and optional PSF information.
- Use `NDDataRef` or `NDDataArray` when slicing, arithmetic helpers, or
  ndarray-like behavior are needed.
- Use `CCDData` for 2D image data that should read/write FITS naturally; a unit
  is required, and a FITS `BUNIT` card is used when reading/writing units.
- Boolean masks follow NumPy masked-array convention: `True` means invalid or
  ignored.
- Use explicit uncertainty classes when propagation matters:
  `StdDevUncertainty`, `VarianceUncertainty`, or `InverseVariance`.
- Attach WCS when constructing `NDData`/`CCDData` when possible. For `CCDData`
  loaded from FITS, WCS keywords are converted to a `WCS` object automatically.
- For cutouts, use `Cutout2D` with a WCS when the cutout must update CRPIX and
  keep pixel/world consistency; confirm distortion limitations first.

## Reference Files

- Use [references/api-reference.md](references/api-reference.md) for verified
  constructor signatures, WCS methods, NDData classes, and CLI/API notes.
- Use [references/workflows.md](references/workflows.md) for self-contained
  recipes: WCS construction, round-trips, WCS header writing, `wcslint`,
  `NDData`/`CCDData`, FITS round-trips, and cutouts.
- Use [references/troubleshooting.md](references/troubleshooting.md) for warning
  handling, axis/order bugs, non-standard headers, WCS convergence failures,
  mask/uncertainty pitfalls, FITS I/O issues, and optional dependency notes.

## Required Safety And Validation

- Do not rely on the original source checkout, tests, examples, or documentation
  at runtime; use only the public installed Astropy package and bundled skill
  references.
- Keep validation temporary-file based when a FITS file is needed, and do not
  overwrite user data unless the user explicitly requested it.
- Treat `wcslint` as diagnostic. Its output can identify suspicious WCS cards,
  but a successful lint does not replace a numeric round-trip check for the
  user’s specific coordinate convention.
- When suppressing `FITSFixedWarning` or FITS verification warnings, state which
  warning was inspected and why ignoring it is safe for the task.
- Verify WCS transformations with at least one pixel/world/pixel or
  world/pixel/world round-trip inside the relevant image domain.
- For `CCDData` workflows, verify that data shape, mask shape, uncertainty
  shape, unit, and WCS metadata survived the read/write/slice/cutout step.

## Native-Backed Validation Ideas

- Tiny in-memory FITS-like header: build a 2D celestial `WCS`, convert a pixel
  to world and back, and check agreement within a small tolerance.
- Distortion-aware check: if SIP or lookup-table distortion is present, compare
  `all_pix2world` against `wcs_pix2world` only to explain the difference, not to
  demand equality.
- `wcslint` smoke: write a temporary FITS file with simple WCS cards and confirm
  that the CLI runs and reports WCS diagnostics without mutating the file.
- `NDData`/`CCDData` smoke: construct data with a mask, unit, metadata,
  `StdDevUncertainty`, and WCS; then slice or FITS round-trip and assert the
  critical attributes remain present.

## Known Boundaries

- This sub-skill does not teach FITS HDU management beyond the amount needed to
  obtain a header or read/write a `CCDData` image.
- This sub-skill does not own Matplotlib WCSAxes plotting or image display.
- This sub-skill does not own astronomy coordinate-frame decisions except as
  WCS inputs or outputs.
- This sub-skill does not require GPU, accelerator, or network resources.

Files in this skill

  • SKILL.md8 KB
  • references/api-reference.md1.8 KB
  • references/troubleshooting.md1.8 KB
  • references/workflows.md1.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.