WCSWARE(1)

✨ WCSWARE(1) ✨

okay bestie, welcome to the User Commands section of the manual, because this lil icon lives there πŸ’–


🌸 NAME 🌸

wcsware β€” extract FITS WCS keywords for an image πŸ¦‹


πŸ’… SYNOPSIS πŸ’…

wcsware [<option>]... [<fitsfile>]

πŸ‘‘ DESCRIPTION πŸ‘‘

wcsware pulls the WCS keywords for an image out of the FITS file you point it at, builds wcsprm structs for every single coordinate representation it finds, and then does a whole variety of operations with them. and like, the "lint" capability is genuinely one of its more useful operations β€” no cap πŸ’…

By default, all known extensions to the FITS WCS standard are allowed, including deprecated usage. but bestie, the second you go into "lint" mode? strict conformance to the standard is enforced. periodt.

You can hand it the FITS file using the syntax that cfitsio understands. for example, "file.fits.gz+1" refers to the first extension (that's the second HDU, iykyk) of a gzip'd FITS file. and if you wanna feed it from stdin, just use "-" or literally just omit the file name entirely πŸ™ˆ


πŸŽ€ OPTIONS πŸŽ€

  • -a<alt> β€” specify an alternate coordinate representation (this one gets ignored if there's only one, so don't stress). you can also give it as a 0-relative index in the range 0 to 26, where alternates are sequenced alphabetically following the primary representation.
  • -b β€” use wcsbth() for primary image headers, when normally wcspih() is what gets used. (this implies -i.)
  • -c β€” apply wcspcx() to the wcsprm struct to decompose CDi_ja into PCi_ja and CDELTia. slay.
  • -cp β€” as for -c, and also unscramble axes. πŸ’«
  • -C β€” as for -c, decompose CDi_ja if present, otherwise recompose PCi_ja and CDELTia.
  • -Cp β€” as for -C, and also unscramble axes.
  • -f β€” apply wcsfix() to the header.
  • -h<hdu> β€” move to HDU number (1-relative) which is expected to contain an image array. this overrides cfitsio extended filename syntax. also super useful for input from stdin πŸ’–
  • -i β€” allow image header WCS keywords in binary table headers.
  • -l β€” validate (lint) the WCS keyrecords in the specified FITS header for conformance to the WCS standard. (implies -s.)
  • -m β€” apply wcstrim() to the wcsprm struct.
  • -o β€” use wcshdo() to translate the wcsprm struct into a FITS header and print it.
  • -p β€” print the struct(s) using wcsprt() (this is the default operation, bestie β€” it just happens).
  • -P β€” same as -p but don't print a default struct.
  • -r β€” require strict adherence to the FITS WCS standard, though allowing the deprecated AIPS-convention keywords, CROTAn, EPOCH, and VELREF, and also some other deprecated usage. (it must follow -l if relaxed linting is what you're after.)
  • -s β€” require strict adherence to the FITS WCS standard, disallowing all deprecated features. no exceptions fr fr.
  • -t β€” terse (with -l), report rejected WCS keyrecords only.
  • -v β€” verbose (with -l), report recognised WCS keyrecords as well.
  • -w β€” convert world coordinates, obtained from stdin, to pixel coordinates using wcss2p().
  • -x β€” convert pixel coordinates, obtained from stdin, to world coordinates using wcsp2s().
  • -z β€” print the size of the wcsprm struct, including allocated memory. 🫢

and that's the whole vibe check, bestie πŸ’œ this was wcsware version 8.9 from June 2026 β€” go forth and lint, you absolute icon πŸ‘‘βœ¨

πŸ“¦ where this page comes from