DS9(1)
πΈ ds9(1) β General Commands Manual πΈ
okay bestie, welcome to section 1 of the General Commands Manual, and it's all about ds9 and I'm literally so excited to walk you through it π
β¨ NAME β¨
ds9 β image tool for astronomy
β¨ SYNOPSIS β¨
ds9 [options]
β¨ DESCRIPTION β¨
DS9 DS9 (yes it says it twice, we love a dramatic entrance π) is the modern image tool used by astronomers for visualization of astronomical data.
It supports a plethora of command line options, which may be used in a script-like fashion. iconic behavior β¨
An instance of the program is entirely controllable from the commandline with the XPA tools. no cap, the whole thing π«Ά
β¨ OPTIONS β¨
-analysisβ histogram save
and then the page justβ¦ drops a whole parade of -region lines on us. here they all are, verbatim, every single one π
ds9 -region composite
ds9 -region dissolve
ds9 -region template foo.tpl
ds9 -region template foo.tpl at 13:29:55.92 +47:12:48.02 fk5
ds9 -region savetemplate foo.tpl
ds9 -region group new
ds9 -region group foo new
ds9 -region group foo update
ds9 -region group foo select
ds9 -region group foo color red
ds9 -region group foo copy
ds9 -region group foo delete
ds9 -region group foo cut
ds9 -region group foo font 'times 14 bold'
ds9 -region group foo move 100 100
ds9 -region group foo movefront
ds9 -region group foo moveback
ds9 -region group foo property delete no
ds9 -region copy
ds9 -region cut
ds9 -region paste wcs
ds9 -region undo
ds9 -region open
ds9 -region close
-redβ For RGB frames, sets the current color channel to red. π
Syntax
-red
Example:
ds9 -rgb -red foo.fits
-restoreβ Restore DS9 to a previous state from a backup save set. it's giving time travel, but make it backups π¦
Syntax
-restore <filename>
Example:
ds9 -restore ds9.bck
-rgbβ Create RGB frame and control RGB frame parameters. the full rainbow moment π
Syntax
-rgb []
[red| green| blue]
[channel [red| green| blue] ]
[view [red| green| blue] [yes| no] ]
[system <coordsys> ]
[lock wcs| crop| slice| bin| scale| scalelimits| colorbar| block| smooth [yes| no] ]
[open| close]
Example:
ds9 -rgb # create new rgb frame
ds9 -rgb red # set current channel to red
ds9 -rgb channel red # set current channel to red
ds9 -rgb view blue no # turn off blue channel
ds9 -rgb system wcs # set rgb coordinate system
ds9 -rgb lock wcs yes
ds9 -rgb lock crop yes
ds9 -rgb lock slice yes
ds9 -rgb lock bin yes
ds9 -rgb lock scale yes
ds9 -rgb lock scalelimits yes
ds9 -rgb lock colorbar yes
ds9 -rgb lock block yes
ds9 -rgb lock smooth yes
ds9 -rgb open
ds9 -rgb close
-rgbarrayβ Load raw data array cube into rgb frame. raw data, no filter, main character energy β¨
Syntax
-rgbarray <filename> [[xdim=<x> , ydim=<y> | dim=<dim> ] , [zdim=3] , bitpix=<b> , skip=<s> , endian=[little| big] ]
Example:
ds9 -rgbarray foo.arr[dim=512, zdim=3, bitpix=-32, endian=little]
$cat foo.arr | ds9 -rgbarray -[dim=512, zdim=3, bitpix=-32, endian=little]
-rgbcubeβ Load FITS rgbcube into rgb frame. π§ (cubeβ¦ get itβ¦ okay moving on)
Syntax
-rgbcube <filename>
Example:
ds9 -rgbcube foo.fits
$cat foo.fits | ds9 -rgbcube -
-rgbimageβ Load FITS rgbimage into rgb frame. πΌοΈ
Syntax
-rgbimage <filename>
Example:
ds9 -rgbimage foo.fits
$cat foo.fits | ds9 -rgbimage -
-rotateβ Controls the rotation angle (in degrees) of the current frame. spin it, bestie π«
Syntax
-rotate [<value> ]
[to <value> ]
[open| close]
Example:
ds9 -rotate 45
ds9 -rotate to 30
ds9 -rotate open
ds9 -rotate close
-sampβ Configure SAMP protocol. protocol girlies rise π
Syntax
-samp [yes| no] | client [yes| no] ] | hub [yes| no] ] | web hub [yes| no] ] | connect| disconnect] [broadcast [image| table] ] [send [image| table] <application> ] [hub [start| stop| info] ]
Example:
ds9 -samp yes
ds9 -samp connect
ds9 -samp broadcast
ds9 -samp broadcast table
ds9 -samp send table
ds9 -samp send table topcat
ds9 -samp hub info
-saturationβ For HLS and HSV frames, sets the current color channel to saturation. π
Syntax
-saturation
Example:
(and that's where this part cuts off β the example's still loading, more pages incoming π)
π real talk, the running footer on this page reads exactly:
ds9 -hsv -saturation foo.fits
πΎ -save β save that data, bestie
okay so -save grabs the loaded image data of your current frame and writes it out as FITS. that's it, that's the whole assignment. your pixels, preserved, iconic π
Syntax
-save[fits|rgbimage|rgbcube|mecube|mosaic|mosaicimage] <filename> [image|table|slice]
Example
ds9 -save foo.fits
ds9 -save fits foo.fits image
ds9 -save fits foo.fits table
ds9 -save fits foo.fits slice
ds9 -save rgbimage foo.fits
ds9 -save rgbcube foo.fits
ds9 -save mecube foo.fits
ds9 -save mosaic foo.fits
ds9 -save mosaicimage foo.fits
πΈ -saveimage β screenshot era, no cap
creates a snap shot of the current DS9 window and saves it in whatever image format you asked for π«Ά and listen: if you don't specify a format, the file name extension is what decides the output format. so pick your extension wisely, bestie.
optional parameters, because we love options: jpeg quality int(1-100), and the tiff compression method. periodt β¨
Syntax
-saveimage[fits|eps|gif|tiff|jpeg|png] <filename>
-saveimage <filename>.jpeg [int(1-100)]
-saveimage <filename>.tiff [none|jpeg|packbits|deflate]
Example
ds9 -saveimage ds9.tiff
ds9 -saveimage jpeg ds9.jpeg 75
β¨ scale β¨
okay bestie this one is a whole vibe β -scale is the icon that runs the show for the limits and the color scale distribution. she decides what your data actually looks like. main character energy, no cap. π
π Syntax
-scale [linear|log|pow|sqrt|squared|asinh|sinh|histequ]
[log exp <value>]
[datasec yes|no]
[limits <minvalue> <maxvalue>]
[mode minmax|<value>|zscale|zmax]
[scope local|global]
[match]
[match limits]
[lock [yes|no]]
[lock limits [yes|no]]
[open|close]
πΈ Example
ds9 -scale linear
ds9 -scale log exp 100
ds9 -scale datasec yes
ds9 -scale histequ
ds9 -scale limits 1 100
ds9 -scale mode zscale
ds9 -scale mode 99.5
ds9 -scale scope local
ds9 -scale match
ds9 -scale match limits
ds9 -scale lock yes
ds9 -scale lock limits yes
likeβ¦ look at her go π¦ every single one of those is a real, legal invocation, and they all do different things, so don't be out here mixing them up fr fr. β¨
-scale openβ okay so this one's here, and that's literally the whole thing, no extra lore attached π-scale closeβ same energy, this is the counterpart, and again that's all there is to say about it, bestie πshmβ this one's the main character of this little trio: it Loads a shared memory segment into the current frame β¨ like, that's the whole job, that's the assignment, and it ate π«Ά
fr fr if you were waiting for a deep-dive on the first two, there just isn't one in this bit β they're listed plain, so I'm handing them to you plain π no invented behaviour, no made-up tea, we don't do that here π
okay so here's the whole shape of it, bestie β this is the master list of every way you can spell out these forms on the command line. One form per line, and every single one of them ends with that optional <filename> if you wanna point at a file instead of just an id. Look at her. She contains multitudes. π
-shm [<key> [<filename>]]
[key <id> [<filename>]]
[shmid <id> [<filename>]]
[fits [key|shmid] <id> [<filename>]]
[mosaicimage [iraf|wcs|wcsa...wcsz|wfpc2] [key|shmid] <id> [<filename>]]
[mosaic [iraf|wcs|wcsa...wcsz] [key|shmid] <id> [<filename>]]
[rgbcube [key|shmid] <id> [<filename>]]
[rgbimage [key|shmid] <id> [<filename>]]
[rgbarray [key|shmid] <id> [xdim=<x>,ydim=<y>|dim=<dim>,zdim=3],bitpix=<b>,[skip=<s>]]
[array [key|shmid] <id> [xdim=<x>,ydim=<y>|dim=<dim>],bitpix=<b>,[skip=<s>]]
quick vibe check on what you're looking at, because the nesting is giving layers on layers π:
-shmkicks the whole thing off, and everything after it is bracketed β meaning optional, meaning choose your fighter π«Ά- the first two are the bare-bones ones: just
-shmwith an optional<key>, or-shmwith the wordkeyplus an<id> - then
shmid, thenfits, thenmosaicimageβ and not me noticingmosaicimageis the only one withwfpc2in its little menu of choices, the others getiraf,wcs, orwcsa...wcszβ¨ mosaichas the same menu but nowfpc2, andrgbcube,rgbimage,rgbarrayandarrayjust take[key|shmid]and go π- and the last two?
rgbarrayandarrayare the high-maintenance icons of the group β they wantxdim=<x>,ydim=<y>ordim=<dim>, andrgbarrayalso drags alongzdim=3, thenbitpix=<b>, then an optionalskip=<s>π
ngl bestie, do not hand-type these from memory. The|means "pick one," the...means "a whole range lives in there," and the commas in those last two forms are literally part of the syntax. Copy, don't freestyle. π
Example: πΈ
okay so here she is in the wild β first the simplest possible call, then the same thing but with the word key out front so you're saying it's a key, not a shmid. iconic, no notes π
ds9 -shm 102
ds9 -shm key 102
notice how102doesn't change between the two β it's the<id>either way, you're just tellingds9which flavour of id it's looking at. π¦
so like, the -shm thing has SO many flavors bestie, it's giving β¨optionsβ¨ for days. let's go through every single one, no skips, no cap π
first up, the simplest vibe β you can just hand it a shmid directly:
ds9 -shm shmid 102 foo
okay and if you'd rather speak in fits terms:
ds9 -shm fits 100 foo
now we get into mosaic territory π¦ and there's a whole palette of mosaic types here, so buckle up:
ds9 -shm mosaicimage iraf key 100 foo
ds9 -shm mosaicimage wcs key 100 foo
ds9 -shm mosaicimage wcsa key 100 foo
ds9 -shm mosaicimage wfpc2 key 100 foo
like, iraf, wcs, wcsa, wfpc2 β all four mosaicimage options, iconic π
then plain-ol' mosaic (not mosaicimage, they're different bestie, don't @ me):
ds9 -shm mosaic iraf key 100 foo
ds9 -shm mosaic wcs key 100 foo
just the two for mosaic: iraf and wcs. periodt.
and then the rgb squad π β three of them, all taking a key:
ds9 -shm rgbcube key 100 foo
ds9 -shm rgbimage key 100 foo
last but absolutely not least, rgbarray, which is the β¨specialβ¨ one because it takes a shmid and a bracketed descriptor instead of just a key:
ds9 -shm rgbarray shmid 102 [dim=32, zdim=3, bitpix=-32]
see that [dim=32, zdim=3, bitpix=-32] at the end?? yeah that's the whole shape of the array right there β dim, zdim, bitpix, all chillin in the brackets. keep it exactly like that, no edits, i'm obsessed π
lowkey that's the entire -shm lineup and it's giving thorough. take a lil breather, there's more coming π«Ά
okay so finishing the -shm thought from before π
β the line lands exactly like this, no cap:
ds9 -shm array shmid 102 [dim=32, bitpix=-32]
-siaβ Support for VO Simple Image Access protocol π°οΈβ¨π
Here's the tea, bestie: the first command is the one that creates a new search π±. Every single other command after that? It operates on the last search created π― β unless you say otherwise with the current command. iykyk. π«Ά
Syntax π
-sia[2mass|akari|astrowise|cadc|cxc|hla|mast|sdss|skyview|tgssadr] [cancel] [clear] [close] [save <filename>] [export rdb|tsv <filename>] [coordinate <ra> <dec> <coordsys>] [crosshair] [current <ref>] [name <object>] [print] [retrieve] [radius <value> degrees|arcmin|arcsec] [sky <skyframe>] [skyformat <skyformat>] [system <coordsys>] [update]
So the service lineup is 2mass, akari, astrowise, cadc, cxc, hla, mast, sdss, skyview, and tgssadr π β pick your fighter, they're all iconic.
And the sub-commands tagging along for the ride: cancel, clear, close, save <filename>, export rdb|tsv <filename>, coordinate <ra> <dec> <coordsys>, crosshair, current <ref>, name <object>, print, retrieve, radius <value> degrees|arcmin|arcsec, sky <skyframe>, skyformat <skyformat>, system <coordsys>, and update ππ
Example πΈ
ds9 -sia 2mass
ds9 -sia cancel
the way that's it, that's the whole -sia situation π¦π
okay so we're still deep in the -sia zone, and bestie, -sia is basically the group chat you slide subcommands into β one bullet, one command, every single one of them, verbatim, no edits, no cap π
clearβds9 -sia clearβ¨closeβds9 -sia closecoordinateβds9 -sia coordinate 202.48 47.21 fk5, and yes, those three args are202.48,47.21andfk5π¦crosshairβds9 -sia crosshaircurrentβds9 -sia current 2massexportβds9 -sia export tsv bar.tsvnameβds9 -sia name m51printβds9 -sia printretrieveβds9 -sia retrievesaveβds9 -sia save foo.xmlradiusβds9 -sia radius 1 degreesskyβds9 -sia sky fk5skyformatβds9 -sia skyformat degreessystemβds9 -sia system wcsupdateβds9 -sia update
singleβ Set display mode to single. One mode. Single. It's giving main character energy, obviously π
Syntax: -single
Example:
ds9 -single skyview
skyviewβ Support for SkyView image server at HEASARC. obsessed, actually π₯
Not me pointing out that the example line above runs straight into the next entry in the source text β we keep it exactly as written, bestie, snuggled up and all π
β¨ Syntax β¨
okay bestie, here's the whole shape of it in one breath β this is the -skyview syntax, laid out exactly how the page lays it out πΈ
-skyview [] [<object>] [name <object> | clear] [<ra> <dec>] # in wcs fk5 [size <width> <height> degrees|arcmin|arcsec] [pixels <width> <height>] [save yes|no] [frame new|current] [update frame|crosshair] [survey <survey>] [open|close]
that's it, that's the whole thing π
square brackets mean optional, <angle brackets> are the spots where you plug something in, and a | is a "pick one of these" moment. the # in wcs fk5 bit is sitting right there in the middle of it, so don't come for me, I'm just transcribing π
π Example π
the page hands you a whole lil starter pack of invocations, and I'm handing them right back to you, untouched, exactly as written π«Ά
ds9 -skyview
ds9 -skyview m31
ds9 -skyview name m31
ds9 -skyview name clear
ds9 -skyview 00:42:44.404 +41:16:08.78
ds9 -skyview size 60 60 arcmin
ds9 -skyview pixels 600 600
ds9 -skyview save yes
ds9 -skyview frame current
ds9 -skyview update frame
look at that range, no cap π bare invocation, an object by name, coordinates, sizing in arcmin, sizing in pixels, saving, framing, updating β it's giving full menu, main character energy for real π
More -skyview tea, bestie β here's how you actually call it π
ds9 -skyview survey sdssi
ds9 -skyview open
ds9 -skyview close
sleep π΄
Not me giving you a literal nap button. This one delays execution for specified number of seconds. And if you're too lazy to say how long? The default is 1 second. Fr fr, it just vibes for a sec and then keeps going.
Syntax
-sleep [#]
Example:
ds9 -sleep
ds9 -sleep 2
slice / noslice π°
So slice is telling ds9 that the next files loaded are to treated as slices of a cube β like, the images are all layers of one big 3D situation, not separate lil pics. Iconic. And if you're over it? You can turn the whole thing off with the noslice command. Slay, reversible queen π
Syntax
-slice <filename>
-noslice
Example:
ds9 -slice *.fits
So, bestie, let me put you onto -smooth π β it smooths the current image, or it sets up the smooth parameters for you. Both. It's giving versatility, periodt.
And before anyone comes for me: yes, -noslice is sitting right here in this section too. Noted. Logged. Never skipped. π
Here's the tea on what each function actually does to your pixels:
- Boxcar β width =
2*radius+1 - Tophat β diameter =
2*radius+1 - Gaussian β diameter =
2*radius+1, mean=0 - Elliptical Gaussian β diameter =
2*radius+1, mean=0
β¨ Syntax β¨
-smooth [] [yes|no] [function boxcar|tophat|gaussian|elliptic]
[radius <value>] [radiusminor <value>] [sigma <value>]
[sigmaminor <value>] [angle <value>] [match]
[lock [yes|no]] [open|close]
β¨ Example: β¨
ds9 -smooth
ds9 -smooth yes
ds9 -smooth function tophat
ds9 -smooth radius 4
Look at those β four lil' glow-ups, all yours π¦ Run one, run all, whatever your heart says. πΈ
okay so the -smooth saga keeps going, bestie β these are all examples, so you can literally copy-paste the vibe π
ds9 -smooth radiusminor 4
ds9 -smooth sigma 2.0
ds9 -smooth sigmaminor 2.0
ds9 -smooth angle 45
ds9 -smooth match
ds9 -smooth lock yes
ds9 -smooth open
ds9 -smooth close
-squaredβ picks the squared scale function for the current frame. that's the whole job, she's simple, she's iconic β¨- Syntax:
-squared - Example:
ds9 -squared
- Syntax:
-sqrtβ picks the square root scale function for the current frame. yes it's the sibling of-squared, they're giving twins π¦- Syntax:
-sqrt - Example:
ds9 -sqrt
- Syntax:
-sourceβ sources TCL code from a file. basically you hand her a file and she runs the TCL in it, no questions asked π«Ά- Syntax:
-source <filename>
- Syntax:
and the example for that one? hold on, it's literally coming right upβ
okay bestie before we get into it, the page hands us this little leftover right here:
ds9 -source extensions.tcl
that's the tail end of the bit above, and then it launches straight into the good stuff. π
-tclβ Execute one TCL command. πͺ one command, that's it, that's the whole job.
β οΈ Note: this a different behavior from previous versions of DS9. so if you're running on pure muscle memory from an older DS9, vibe check yourself before assuming it behaves the same. π
Syntax β¨
-tcl <tcl command>
Example πΈ
ds9 -tcl 'puts "Hello, World"'
-tiffβ Load TIFF image into current frame. πΌοΈ TIFF girlies, this one's for you.
Syntax β¨
-tiff <filename>
Example πΈ
ds9 -tiff foo.tiff
and because we simply must pipe things around here:
$cat foo.fits | ds9 -tiff -
yep, that lone - is sitting in the filename spot doing the work. π«Ά
tileβ Controls the tile display mode. π§©
and that's where this part runs out of page, so hold that thought β more is coming. π
okay so here's the literal spelling of -tile, bestie β the whole menu of things it can swallow, in order:
-tile
[]
[yes|no]
[mode grid|column|row]
[grid]
[grid mode automatic|manual]
[grid direction x|y]
[grid layout <col> <row>]
[grid gap <pixels>]
[row]
[column]
everything in those square brackets is optional, and [] on its own is the "no arguments at all, thank u next" case. the words mode, grid, direction, layout, gap, row and column are literal keywords β you type them exactly like that, no vibes-based paraphrasing π
β¨ Syntax β¨
the shapes it comes in:
-tile
[] [yes|no] [mode grid|column|row] [grid] [grid mode automatic|manual] [grid direction x|y] [grid layout <col> <row>] [grid gap <pixels>] [row] [column]
like. <col>, <row> and <pixels> are the placeholders β you swap in actual numbers there, not the words themselves. don't be the girl who types <pixels> and wonders why nothing happened π
π Example: π
these are all valid, fr fr:
ds9 -tile
ds9 -tile yes
ds9 -tile mode row
ds9 -tile grid
ds9 -tile grid mode manual
ds9 -tile grid direction x
see how each one just stacks a lil more detail on top of the last? -tile alone, then a yes/no, then a mode, then full-on grid girlie mode with grid, grid mode, grid directionβ¦ the pipeline is piping π«Ά
ds9 -tile grid layout 5 5
okay so here's you setting up a grid layout that's 5 by 5 β five rows, five columns, all cute and even π
ds9 -tile grid gap 10
and here's the same energy but with a gap of 10 between them π«Ά
ds9 -tile row
row mode, bestie πΈ
ds9 -tile column
column mode, no cap β¨
-titlename β this one changes the display window title to whatever name you hand it. like, you literally get to name your window. main character behaviour fr fr π
β¨ Syntax β¨
-title name
β¨ Example: β¨
ok so real talk bestie β the raw page has a stray-title/Voyagerfragment wedged right here above this option, that's the leftover from the-titleentry earlier, it's not part of what's below π don't let it jump-scare you
-unixname β sets the IRAF unix socket name, the socket IRAF uses to communicate with DS9. The default is/tmp/.IMT%d, so that the standard IRAF unix socket is defined. π«Ά
Syntax β¨
-unix name
Example: π
(β¦and the example lines are dropping right below, keep scrolling bestie π)
-unixβ the socket-name option, and its value is the template"/tmp/.IMT%d". π§unix_onlyβ only use the IRAF unix socket name, bestie, that's the whole vibe π . This is the same as-fifo none -port 0.
β¨ Syntax β¨
-unix_only
π Example π
the example is literally right there in the next part, hold on ππ
ds9 -unix_only updateβ bestie, this one refreshes your current frame, or just a region of a frame, whichever vibe you're on. β¨
Now, in the second form, the first argument is the number of the fits HDU β and heads up, that count starts with 1 β and the remaining args are a bounding box in IMAGE coordinates. π¦
By default, the screen gets updated the next available idle cycle, so it's not like, instantly-instant, it just waits its turn like a polite little icon. π«Ά
BUT β and this is the fun part β you can also just force an immediate update whenever you want, by throwing in the NOW option. No waiting, no patience, no ~vibes-based delay~. You said now, so it's now, bestie. β¨
Syntax π
-update []
[# x1 y1 x2 y2]
[now]
[now # x1 y1 x2 y2]
Lowkey obsessed with how flexible this is. Empty? Fine. Coordinates? Fine.now? Fine.nowplus coordinates? Also fine. She contains multitudes. π
Examples π«Ά
Just plain, no extras, let her do her thing:
ds9 -update
Now with a lil rectangle of coordinates because you're being specific about it:
ds9 -update 1 100 100 300 400
And finally, the impatient icon behaviour β now and nothing else:
ds9 -update now
That's the whole move. Three little invocations, three completely different energies. Pick your fighter. πΈ
-updateβ the line here readsnow 1 100 100 300 400, and that is the entire thing π so it'snow, then1,100,100,300,400, in exactly that order, no commas, no renaming, no creative liberties π-urlβ loads a FITS file from a URL straight into the frame you're currently in</p> ππ no local path required, she'll go get it for you, main character behaviour fr fr
Syntax:
-url <url>
Example:
ds9 -url http://foo.bar.edu/foo.fits
-valueβ for HSV frames, this sets the current color channel to value π¨β¨ that's it, that's the whole vibe check.
Syntax:
-value
Example:
...and we're still rolling through this bit, so here's the rest, untouched and exactly as it lands:
ds9 -hsv -value foo.fits
β¨ version β¨
okay this one is giving one job, done perfectly π It returns the current version of DS9 and exits. That's the whole personality. It tells you what version you're running and then it dips. Iconic behavior honestly, no notes π«Ά
Syntax
-version
Example:
ds9 -version
π¦ view π¦
This one controls the GUI. yep, that's it β that's the entire job description, bestie. short, sweet, slaying πΈ
β¨ Syntax β¨
okay bestie, so -view has a whole little grammar of its own and it's giving "build your own dashboard" energy π
every single bracket-y bit is optional, and you just stack the ones you want, okay? like a lil charcuterie board of display settings π
-view
[layout horizontal|vertical|basic|advanced]
[multi yes|no]
[keyvalue <string>]
[info yes|no]
[panner yes|no]
[magnifier yes|no]
[buttons yes|no]
[icons yes|no]
[colorbar yes|no]
[graph horizontal|vertical|yes|no]
[filename yes|no]
[object yes|no]
[keyword
likeβ¦ look at her π every one of those <pink>yes|no</pink> pairs is literally just a little on/off switch you flip, and the ones with three or four choices (horizontal|vertical|basic|advanced for layout, and horizontal|vertical|yes|no for graph) are the ones where you gotta pick a vibe, not just a boolean πΈ
and yes, the graph one is being extra β it takes either a direction (horizontal or vertical) or a plain yes/no, so she's flexible like that πββοΈ no cap.
heads up bestie:keyvalueis the only one here that wants an actual<string>handed to it β everybody else just wants a yes/no or a keyword. don't be out here passing strings topanner, she will not know what to do with that π
and then there's [keyword β still going, still mysterious, we love a cliffhanger π stay tuned, the syntax section isn't done with us yet π¦
and the list just keeps going bestie, we are so back π every single one of these takes a yes or a no, and you already know which one you're picking π
... yes|no]β the tail end of the one that got cut off in the last part, don't @ me, that's just how the manpage rolled π«Ά[minmax yes|no]β minmax, toggled with a plain littleyesornoβ¨[lowhigh yes|no]β lowhigh, same deal,yesornoπ[units yes|no]β units,yesorno, iconic behavior honestly πΈ[image|physical|wcs|wcsa...wcsz yes|no]β okay so here you get choices inside your choices π it'simage, orphysical, orwcs, orwcsa...wcsz, and then ayesor anotacked on the end. yes, that...is literally in there, that is the manpage's own doing and not mine π main character energy fr fr π[frame yes|no]β frame,yesornoπ¦[rgb red yes|no]β rgb red, and yep,yesornoπ[rgb green yes|no]β rgb green,yesornoπ[rgb blue yes|no]β rgb blue,yesornoπ[hls hue yes|no]β hls hue,yesornoπ[hls lightness yes|no]β hls lightness,yesornoβ[hls saturation yes|no]β hls saturation,yesornoπ₯
and there's literally more where that came from, so keep scrolling bestie, we are not done here ππ
hsv hueyes|no β the H of the HSV trio, and yes bestie it's the exact same yes/no energy as everything else in this family. Flip it on, flip it off. πhsv saturationyes|no β the S of the HSV trio, still living that yes/no toggle life. πhsv valueyes|no β the V of the HSV trio, rounding out the set, and nope, still just yes or no. No plot twist, no secret third option. π
β¨ Example β¨
okay so here's what actually calling these looks like, one per line, no cap:
ds9 -view layout vertical
ds9 -view multi yes
ds9 -view keyvalue BITPIX
ds9 -view info yes
ds9 -view panner yes
ds9 -view magnifier yes
ds9 -view buttons yes
likeβ¦ look at that. layout vertical to stack things up, multi yes to go multi-frame mode, keyvalue BITPIX to key off the BITPIX value, then info, panner, magnifier and buttons all switched on with a lil yes. iconic. π₯
quick reminder bestie: every single one of those takes the values exactly as written βvertical,yes,BITPIXβ so don't get cute and swap the spelling, the vibe check is case- and letter-sensitive fr fr. π
Like okay bestie, here's the greatest hits of the -view command line flex π
β each one spins up a display with a different panel already turned on, so you don't gotta click around like a lost girlie. Copy, paste, slay:
ds9 -view icons yes
Icons panel? On. Say less. β¨
ds9 -view colorbar yes
Colorbar coming through, so you can actually read what those pixels mean π
ds9 -view graph horizontal yes
Graph panel but make it horizontal β the layout is giving spreadsheets but cuter π
ds9 -view filename yes
Filename view showing, so you never lose track of which file you're looking at π
ds9 -view object yes
Object panel up and running β your celestial bestie's got a name tag now πͺ
ds9 -view keyword yes
Keyword panel vibes, for when you wanna peek at all that header info π
ds9 -view minmax yes
minmax view, so you can see the range of your data at a glance π
ds9 -view lowhigh yes
lowhigh view β lowkey/highkey but for pixel values π
ds9 -view wcsa yes
WCSA view activated. It's giving world coordinate system energy, periodt π§
ds9 -view frame yes
Frame view, so every frame gets its own lil moment in the spotlight πΈ
That's the whole -view menu of yes-es, fr fr β flip any of these to no and it just won't show up, simple as. Keep reading bestie, there's more π
-viewβ the values it takes arergb,red,yes, andvisual. This one is the color visual picker: it forces DS9 to use the specified color visual. π
π¨ bestie READ THIS: this argument MUST be the first argument listed. Like, first-first. Not second, not "after that one other flag I wanted", first. And it requires the visual to be available β if it isn't, that's a whole problem, so vibe check your display first. π«Ά
Syntax:
-visual [truecolor|truecolor8|truecolor16|truecolor24]
Example:
-visualtruecolor24β okay bestie, so this is the visual vibe check: you passtruecolor24to it. Run it likeds9 -visual truecolor24and you're literally slaying. π β¨vlaβ Support for VLA Sky Survey. ππ
β¨ Syntax β¨
okay so this is the syntax breakdown, bestie, and it's giving optional brackets on brackets π . every single token, exactly as it came, no cap:
-vla
[]
[<object>]
[name <object> | clear]
[<ra> <dec>]
#
in
wcs
fk5
[size <width> <height> degrees|arcmin|arcsec]
[save yes|no]
[frame new|current]
[update frame|crosshair]
[survey first|stripe82]
[open|close]
like, the way these are all lined up β¨. iconic.
Example
and here's the example that shows it in action:
ds9 -vla
that's the vibe, slay π
okay bestie, this is the part where we show you what it actually looks like when you drive ds9 from the command line with the -vla switch. ten lil one-liners, each one a whole vibe, each one exactly as it's written. No cap, no edits, no "improvements". Copy-paste at your own risk (it's fine, they're fine, you're fine) π
ds9 -vla m31β the classic. just the-vlaflag and a target name, and you're off. short, sweet, iconic β¨ds9 -vla name m31β same energy but you're being explicit about it, saying the wordnameout loud like the main character you are. πds9 -vla name clearβ instead of a name, you passclear. not me wiping the slate clean mid-session πds9 -vla 00:42:44.404 +41:16:08.78β no words, just coordinates β right ascension then declination, dropped straight in. it's giving "I know exactly where I'm going" π«ds9 -vla size 60 60 arcminβ three little tokens: the wordsize, then60, then60, then the unitsarcmin. numbers stay numbers, units stay units πds9 -vla save yesβ the wordsave, and thenyes. consent culture but for files π«Άds9 -vla frame currentβframesays what,currentsays which. two words, one job, slayds9 -vla update frameβ note the order bestie,updatecomes first,framecomes second. do not flip them, I am begging πds9 -vla survey stripe82βsurveyis the keyword,stripe82is the value. iykyk πds9 -vla openβ and the grand finale, a single lonely word with nothing after it. she's done, she's justopen, periodt π
so the pattern is: ds9 -vla, then a keyword, then however many arguments that keyword wants β zero, one, two, three, whatever. β Some of these take a target, some take a coordinate pair, some take a couple of numbers and a unit, some take a single word, and one of them takes literally nothing at all. the range?? unmatched π¦
and yes, m31 shows up twice because name is how you set it and the bare form is just... the bare form. Both are in the list, so both are getting written down. π
Bestie, the option rollout continues and this little bite is short but it's serving π¦
-vlaβ Support for NRAO VLSS Sky Survey. π°οΈβ¨closevlss
That's genuinely the whole drop, no cap. -vla is the one wearing the description β Support for NRAO VLSS Sky Survey. β and close and vlss are just chillin' right there in the same part of the list with nothing else attached to them, so I'm not gonna make up lore that isn't there π
Not me handing you three lines and calling it a day π the page is long, there is so much more where this came from, so stay with me π
β¨ Syntax β¨
okay so before you type a single character, bestie, you need to see the whole shape of -vlss, because it's a lot and it's giving runway walk. here it is, every bracket, every pipe, exactly as written, no edits from me:
-vlss [] [<object>] [name <object> | clear] [<ra> <dec>] # in wcs fk5 [size <width> <height> degrees|arcmin|arcsec] [save yes|no] [frame new|current] [update frame|crosshair] [open|close]
and now let's break it down piece by piece, like we're going through an outfit and deciding what actually slays π
-vlssβ the flag itself. the main character. the whole reason we're here. π[]β an empty pair of square brackets, sitting right there after the flag. yes, genuinely. it's in the syntax. no, I don't make the rules.[<object>]β optionally, an object.[name <object> | clear]β either the wordnamefollowed by an object, or the wordclear. pick your fighter. π₯[<ra> <dec>]β an ra and a dec, together, holding hands. π«Ά#β a literal#. that's it. that's the token.in wcs fk5β the wordsin,wcsandfk5, in that order, right there in the middle of the syntax. periodt.[size <width> <height> degrees|arcmin|arcsec]β the wordsize, then a width, then a height, and then one ofdegrees,arcminorarcsec. three options, choose wisely. π[save yes|no]β the wordsave, set toyesorno.[frame new|current]β the wordframe, set toneworcurrent.[update frame|crosshair]β the wordupdate, set toframeorcrosshair.[open|close]β eitheropenorclose. and that's the whole vibe check. π
π« Example π«
two examples, and honestly they're lowkey the cutest little pair:
ds9 -vlss
just the flag. no object, no extras, nothing β running it bare and unbothered. β¨
ds9 -vlss m31
and here we're handing it m31 alongside the flag. that's the only difference between these two: one has an object, one doesn't. π
so yeah, that's the syntax and that's the examples β keep going bestie, there's still more coming π
okay so this is the part where the manpage just throws a whole gallery of VLSS examples at you, one after another, like a slideshow of its best angles π and honestly? every single one of them matters, so let's go through them all, no skipping, no skimming, bestie.
Each one is a ds9 invocation with the -vlss option and a sub-command hanging off it. Here's the full set, in order, exactly as written:
- name it β hand the survey a name, here
m31:
ds9 -vlss name m31
- clear the name β the
clearsub-command, doing its little reset thing:
ds9 -vlss name clear
- point it at a spot on the sky β right ascension and declination, in
hh:mm:ss.sssand+dd:mm:ss.ssform:
ds9 -vlss 00:42:44.404 +41:16:08.78
- set the size β
6060in units ofarcmin:
ds9 -vlss size 60 60 arcmin
- save it β
yes, as one does:
ds9 -vlss save yes
- frame, but make it
current:
ds9 -vlss frame current
- update the frame:
ds9 -vlss update frame
- and justβ¦ open π
ds9 -vlss open
that's the whole run-through, no notes, every line preserved like the little artifact it is π«Ά notice how the pattern never changes β it's always ds9 -vlss followed by whatever you want it to do, and the arguments trail along after like they're holding hands with the sub-command. name takes a word or clear, the bare coordinate form takes two sexagesimal values, size takes two numbers plus a unit, save takes yes, and frame and update each take a frame-ish keyword. iconic, consistent, obsessed β¨
and there's still more coming, so don't you dare close the tab π
the command ds9 is here, and it's bringing -nvess, close, and vo along for the ride π
-nvessβ no description in this chunk, just the flag itself, but we're including it because every detail is sacred π-voβ Invoke an connection to a Virtual Observatory site. (yes, the manpage really said "an connection", we're just the messenger π)
Syntax:
-vo [method xpa|mime] [server <url>] [internal yes|no] [delay #] [<url>] [connect <url>] [disconnect <url>] [open|close]
Example:
(and that's where this part dips, so the example is a mystery for now π΅οΈβοΈ)
okay so -vo is the whole virtual-observatory vibe, and she comes with a little squad of subcommands, so let's run through them one by one because they're all kinda cute π¦
first up: method. you're telling ds9 how to talk to the VO services, and bestie you have options:
ds9 -vo method xpa
that's the classic move, she's using XPA to chatter back and forth π
then there's server, where you point her at a server. and look, she does not care about your vibes β she wants a real URL:
ds9 -vo server "http://foo.bar.edu/list.txt"
note the quotes bestie, because URLs be URLing and shells be shelling π
next, internal. this one toggles whether she spins up her own internal VO server. yes means yes:
ds9 -vo internal yes
iconic. self-sufficient. main character energy fr fr π
and then there's delay, which is literally just the keep-alive timing. she pings to stay awake, and you decide how long she waits between lil naps:
ds9 -vo delay 15 # keep-alive delay
15 seconds of chill, then she's back at it β¨
okay now the service-y ones. chandra-ed β that's the Chandra Ed server, no argument needed, she just knows:
ds9 -vo chandra-ed
you can also connect to it explicitly if you're feeling thorough:
ds9 -vo connect chandra-ed
and naturally, what goes up must come down, so disconnect:
ds9 -vo disconnect chandra-ed
she's logging off, no hard feelings, we love a clean exit π«Ά
aaaand last but never least, open:
ds9 -vo open
that's the one that actually throws open the VO interface so you can go browse the cosmos like it's a lil app store πβ
quick vibe check: every one of these rides on -vo, and they stack the way you'd expect β pick your method, point at your server, flip internal on if you want, tune the delay, then connect/disconnect services or just open the thing. keep going bestie, there's more where this came from π
-voβ okay so-vois the one with little sub-things tucked underneath it, and the page lists them like this:closeβ that's the whole thing the page gives us here. No description, no elaboration, and bestie I am not about to invent one πwcsβ Controls the World Coordinate System for the current frame. If thewcssystem,skyframe, orskyformatis modified, the info panel, compass, grid, and
and yes, that sentence is literally still going π the page cuts off mid-thought right there β no cap, that's just where this chunk of the manpage ends. The rest of that list is coming up next, so don't panic. π«Ά
-mecube <filename>β-mecube, and it takes a<filename>. That's it, that's the line. No extra lore on this one yet, so we keep it exactly as written and move on. β¨
πΈ Example:
the example is loading in the next bit, hold please π
...and yes bestie, you can totally pipe that data in, she's flexible like that π
ds9 -mecube foo.fits
$cat foo.fits | ds9 -mecube -
Look at that β read it off disk, or stream it straight down the pipe with - standing in for "the data's coming from stdin, bestie, don't worry about it". Both serve the exact same snack. π
minmax β¨
Okay so this is the part where we talk about how DS9 decides the min and max data values from the data. That's literally the whole vibe of minmax, no cap.
And then there's SCAN β SCAN will scan all data. That's it, that's the whole thing. She looks at everything, every last pixel, no skipping, no shortcuts. Thorough queen energy fr fr π
Syntax β¨
okay so the -minmax option has its own whole lil grammar and honestly it's giving "build your own adventure" π
here's the shape of it:
-minmax
[scan|sample|datamin|irafmin]
[mode scan|sample|datamin|irafmin]
[interval #]
[rescan]
that's the whole vibe: you can hand it a bare mode, or say mode and then the mode, or tweak the interval, or just yell rescan at it π¦
Examples:
ds9 -minmax scan
ds9 -minmax mode scan
ds9 -minmax interval 100
ds9 -minmax rescan mode
and Select the current mode. π
ngl the flags are literally verbatim up there β don't go freestyling the spelling, bestie, or it's not gonna hit the way you want it to π
-mode[none|region|crosshair|colorbar|pan|zoom|rotate|catalog|examine|3d] β bestie, this sets the whole vibe of how your cursor and clicks behave. You gotnone,region,crosshair,colorbar,pan,zoom,rotate,catalog,examine, and3d. For example:ds9 -mode crosshairπ β¨-mosaic[wcs|wcsa...wcsz|iraf] <filename> β loads a FITS mosaic segment into the current frame. The options arewcs,wcsa...wcsz, oriraf. Example:ds9 -mosaic foo.fitsπ¦πΈ
okay so like, peep how flexible this thing is, bestie π β you can feed it a real file, or you can pipe the FITS data straight in and let it drink from stdin:
ds9 -mosaic wcs foo.fits
$ cat foo.fits | ds9 -mosaic -
$ cat foo.fits | ds9 -mosaic wcs -
three ways, same energy, no cap π
π§© mosaicimage
Loads a FITS mosaic image into the current frame. literally just drops it right where you're standing, no new window drama π
Syntax
-mosaicimage [wcs| wcsa...wcsz| iraf| wfpc2] <filename>
so the bracketed bit is your mosaic method situation β you got wcs, or a whole lil' range of wcsa...wcsz, or iraf, or wfpc2 β and then <filename> is the file you're serving up π«Ά
Example:
ds9 -mosaicimage foo.fits
and that's it, that's the whole vibe β¨
-mosaicimageβ okay so this one builds a mosaic image for you, bestie π. You tell it which coordinate system to use with awcsargument, then hand it the file, like:
ds9 -mosaicimage wcs foo.fits
You can also pipe stuff straight in if that's more your vibe β¨:
$cat foo.fits | ds9 -mosaicimage
$cat foo.fits | ds9 -mosaiimage wcs
ngl that last one is spelled -mosaiimage in here, so type it exactly like that if that's the invocation you're copying. no cap, don't let autocorrect gaslight you π
-movieβ this one is literally so fun, it makes a movie out of snap shots of the DS9 window π¬β¨. And when it's a slice movie? It cycles though all the slices of a cube, one after another, like a little flipbook of your data π¦. Iconic behavior, fr fr.
okay so listen, bestie, here's the movie tea π¬ because movies in ds9 are NOT like, cinema movies, they're literally how the frames do their lil dance β¨
- frame movie β a
framemovie just cycles through all the active frames. that's it, that's the whole vibe. it's giving slideshow but make it iconic. π¦ - 3d movie β a
3dmovie cycles through specified viewing angles instead. so not just flipping through frames, but swiveling around them angles. main character energy fr. π
and the default action? it's slice. no cap, if you don't say what you want, slice is what you get. periodt. π
also, movie types β you've got exactly two options, and i do mean exactly:
MPEGAnimated GIF
and the default is MPEG. so if you say nothing, you're getting MPEG, mwah π
Optional parameters for 3d:
<nice β next part picks it up from here> πβ¨
...and here's the lil menu of stuff you can hand over to it β mix and match, pick your faves, there are genuinely no wrong answers bestie ποΈβ¨
number of framesβ literally just that, the number of frames ποΈazimuth from/toβ an azimuth, specified as a from and a to, we love a range in this house π«elevation from/toβ same energy, but for elevation: from, slash, to π§slice from/toβ and again for slice, from/to, iconic behavior honestly πΈoscillate/repeat timesβ oscillate, or repeat, plus the times for whichever one you picked π
heads up: that/inoscillate/repeatis doing real work β those are two different things, not one long word π
and yeah, that's the whole vibe check for these args β everything here is fair game to combine, so go off π
π¬ Syntax π¬
okay bestie, buckle up, because -movie has two whole flavors and they do not take the same ingredients. here's the shape of each one, exactly as written:
-movie [slice|frame] [mpeg|gif <delay> blink|fade] <filename>
that's the first one π so you got a slice or a frame situation up front (both optional, both chillin' in their little brackets), then optionally mpeg or gif with a <delay>, plus blink or fade, and then <filename> rounds it out. the brackets mean optional, so like, vibe check each piece before you commit, iykyk.
and now the second form, the one with 3d in it, because we're being extra:
-movie 3d [mpeg|gif <delay>] <filename> [number|az from|az to|el from|el to|slice from|slice to|zoom from|zoom to|oscillate]
see the difference? 3d is just there, not optional, main character energy fr fr. then mpeg or gif with <delay> (still optional, still in brackets), then your <filename>, and then the big finale: a whole menu of trailing options π«Ά
numberaz fromaz toel fromel toslice fromslice tozoom fromzoom tooscillate
ngl that list is giving "pick your fighter" π and note that the from and to ones come in pairs β az from/az to, el from/el to, slice from/slice to, zoom from/zoom to β so they're literally just written out as separate items in the syntax, no shorthand, no merging. copy it exactly, bestie, don't get cute and invent a combined form π
heads up: these are the syntax shapes as documented, character for character. the brackets and the | bars are doing the heavy lifting here, so don't drop them when you're typing your command β that's the difference between slay and π
lowkey obsessed with how the second form just keeps going, it's the syntax equivalent of "and another thingβ" π anyway, that's the shape of it. more coming, don't go anywhere β¨
okay so the tail end of that parameter list is where the personality lives, bestie. Three little tokens, and they change <em>everything</em>:
repeatβ slap this in and the movie just... keeps going. Forever. It's giving infinite loop energy, it's giving screensaver at 3am, it's giving β¨never-ending storyβ¨.<#>β you want a specific number of laps instead of infinity? That's this one. You put your number where the<#>is. A finite, countable, reasonable amount of repeating. Iconic.]β the closing bracket. That's it. That's the whole job. It wraps the whole optional bundle up and says we're done here π . Every group needs someone to close it out, and this one is a closer fr fr.
Example: π
okay watch, here's the vibe in action, three little commands, three little moods:</p>
ds9 -movie slice mpeg ds9.mpg
ds9 -movie frame gif ds9.gif
ds9 -movie frame gif 100 fade ds9.gif
see how it works? The third one is the one doing the most β frame as the format, gif as the type, then 100 sitting there doing the count, fade doing the transition, and ds9.gif as the file catching all of it. That's a whole choreography and she ate π₯
and yeah, the first two are lowkey minimal β no repeat, no number, just the format and the file, chilling. Then the third one walks in with the 100 and the fade like the main character she is π
π ngl, the number is the thing people forget, and then they're confused why it doesn't loop the way they wanted. So like... don't be that girl. Put your number in.
anyway, that's the movie parameter list fully assembled, start to finish, no crumbs left π
-movieβ okay so bestie, this is the one that records a whole movie for you π¬β¨, and it takes a lil stack of keywords to tell it exactly what you want. The keywords go in order, like a lil recipe, and here's the whole lineup:3dβ renders it as a 3D movie, obviously πmpegβ the output format,mpegstyle πds9.mpgβ the filename it writes to, literally calledds9.mpgπ¦numberβ says "next up is a number" π10β and that number is10βazβ says "next up is an azimuth" πΈfromβ the start of the azimuth range β¨-60β start it at-60πazβ another azimuth keyword, yes again, she's thorough π«Άtoβ the end of that range π60β end it at60πoscillateβ and make it swing back and forth π₯1β with a value of1for the oscillating π
-msgβ this one lets you point at a whole directory full of translation tables and say "load these please" ππ«
The syntax is exactly this, no notes:
-msg <directory>
Example:
-msgβ$HOME/msgsπ-multiframeβ Load FITS multiple extension file as multiple images. π₯
bestie. this is the one. one FITS file, a whole little family of images hiding inside it (multiple extensions, we love to see it π), and this flag is how you tell ds9 to open them all as separate images instead of you sitting there doing it one by one like it's 2009.
Syntax
-multiframe <filename>
Example:
ds9 -multiframe foo.fits
$cat foo.fits | ds9 -multiframe -
see the two routes? π«Ά route one: just hand over foo.fits like a normal person. route two: pipe it in with $cat, then drop a lone - right where the filename would've gone. same destination, different vibe. slay.
-nameserverβ Support Name Server functions. Coordinates are infk5. β¨
yep, that's fk5 β lowercase, exactly like that, don't come for me π
β¨ Syntax β¨
okay so -nameserver has a whole syntax moment, and it's lowkey specific. here's the exact shape, bestie β no edits, no cap:
-nameserver
[<object>]
[name
<object>]
[skyformat
degrees|
sexagesimal]
[pan]
[crosshair]
[open|
close]
those brackets and pipes are literally part of the syntax, so don't come for me. π
β¨ Example: β¨
like, actual examples? say less. here's every single one, exactly as written:
ds9 -nameserver m31
ds9 -nameserver name m31
ds9 -nameserver server ned-sao
ds9 -nameserver skyformat sexagesimal
ds9 -nameserver pan
and that's the -nameserver syntax + example vibe, fr fr. π¦
-nameserver crosshair-nameserver open-nameserver close
πΈ notes πΈ
Display Notebook. That's it, that's the whole vibe β this one pulls up the notebook so you can actually look at it. β¨
β¨ Syntax β¨
-notes [<string>] [append <string>] [insert <string>] [clear] [load <filename>] [save <filename>] [open|close]
okay so real quick, bestie, let's walk through this lineup π«Ά
[<string>]β drop in a string, just like that.[append <string>]β tack a<string>onto the end.[insert <string>]β slide a<string>in.[clear]β wipe it clean, no cap.[load <filename>]β pull in a<filename>.[save <filename>]β write it out to a<filename>.[open|close]β open it up or close it down, your call π
β¨ Example: β¨
okay so here's the thing bestie β -notes has moves, and the way you call it changes everything. let's run the whole little tour, one vibe at a time π
set a note, plain and simple:
ds9 -notes 'Hello World'
β¨ boom. note set. that's it, that's the whole thing.
now append it instead β tack your text onto whatever's already chillin' in there:
ds9 -notes append 'Hello World'
no cap, this is the "and alsoβ¦" of notes π«Ά
or insert it, if you want it slid in rather than tacked on:
ds9 -notes insert 'Hello World'
the way that one little word changes the whole placement⦠iconic.
wanna wipe it clean? clear said what it said:
ds9 -notes clear
gone. poof. main character energy, zero regrets π
pull a note in from a file? load:
ds9 -notes load foo.txt
reading foo.txt and bringing it straight into your notes, no drama πΈ
push it back out? save:
ds9 -notes save foo.txt
your notes, off to foo.txt, safe and sound π
and last but not least, open:
ds9 -notes open
that's the whole lineup, bestie. every single one of these is literally just ds9 + -notes + whatever you want it to do π
okay bestie, we're still deep in flag territory β -notes, close, and the rest of the crew are all hanging out here in the list, and next up is one for the science girlies π
πΈ nrrd β Load an NRRD (Nearly Raw Raster Data) file πΈ
nrrd is giving "I have a big chunky slab of raw raster data and I need it on my screen, like, yesterday" β¨ And yes, NRRD literally stands for Nearly Raw Raster Data, iykyk π§π
Syntax
-nrrd <filename>
Just hand it a filename and it goes π¦
Example:
ds9 -nrrd foo.nrrd
$cat foo.nrrd | xpaset ds9 -nrrd-
See what's happening there? You can either point ds9 straight at the file π or pipe the bytes in through xpaset and let it eat from the stream instead. Both iconic, both valid, pick your fighter ππ₯
π nvss β Support for NRAO VLA Sky Survey π
-nvssβ support for the NRAO VLA Sky Survey β That's the whole thing, no cap. Sky survey data, loaded up, slay ππ«Ά
fr fr, that's all this part of the list has to say β more flags coming, so don't go anywhere π
β¨ Syntax β¨
okay bestie, here's the whole shape of it β every piece in square brackets, because apparently we're being β¨flexibleβ¨ about literally all of it:
-nvss
[]
[<object>]
[name <object> | clear]
[<ra> <dec>]
# in wcs fk5
[size <width> <height> degrees|arcmin|arcsec]
[save yes|no]
[frame new|current]
[update frame|crosshair]
[open|
look at all those brackets π that's the universal handshake for "you don't gotta include this one, but you absolutely can."
so you've got your empty [] doing its little minimalist moment, then [<object>] where you can just... hand it a thing. then [name <object> | clear] β and yes, that | is a real either/or, so you're choosing between naming your <object> or just going clear. then [<ra> <dec>] for when you wanna drop coordinates, and # in wcs fk5 sitting right there in the middle like the main character it is π
after that it's [size <width> <height> degrees|arcmin|arcsec] β width, height, and you pick your unit flavor from degrees, arcmin, or arcsec π
[save yes|no] β yes or no, iconic binary behavior, no notes.
[frame new|current] β new frame or the current one, your call bestie.
[update frame|crosshair] β updating the frame or the crosshair.
and then [open| just... shows up and keeps going, because the list is not done with us yet π
close] β and that's the bracket closed, we love a tidy bracket π
π Example π
Ok bestie, receipts time. Every single invocation, exactly as written, nothing renamed, nothing "fixed", no cap. Here we go π«Ά
ds9 -nvss
the bare version β just the option, no extra args riding along β¨
ds9 -nvss m31
now with m31 tagged on the end πΈ
ds9 -nvss name m31
here we've got the name keyword, and m31 after it π
ds9 -nvss name clear
same name keyword, but this time the thing after it is clear π
ds9 -nvss 00:42:44.404 +41:16:08.78
and this one is just that literal pair β 00:42:44.404 and +41:16:08.78 β every colon and every dot left exactly where it was, don't touch it π―
ds9 -nvss size 60 60 arcmin
size, then 60, then 60, then arcmin β all four tokens, in that exact order π
ds9 -nvss save yes
and finally save with a yes, because we love an affirmative π
ok that's the example reel, we move π
Okay bestie, next batch of calls coming in hot π₯ β write them down exactly, character for character, no autocorrect, no vibes-based spelling:
ds9 -nvss frame current
ds9 -nvss frame update
ds9 -nvss open
ds9 -nvess close
Not a typo on my end, bestie β that last one is-nvess, not-nvss. Copy what the page says, don't "helpfully" fix it, the shell will absolutely notice π
orient β this one controls the orientation of the current frame. Like, which way it's facing. The frame's whole little pose π
Syntax
-orient [none|x|y|xy] [open|close]
Example:
ds9 -orient xy
ds9 -orient open
ds9 -orient close
Okay so those are the -orient examples, bestie. No cap, you just run them exactly like that. π
-pagesetupβ controls Page Setup options. It's giving "let me set up my page, actually." π
Syntax
-pagesetup [orient portrait|landscape] [scale <numberic>] [size letter|legal|tabloid|poster|a4]
Example:
more -pagesetup glow-ups, bestie, because the people needed receipts β¨
Wanna flip your whole layout sideways? Say less:
ds9 -pagesetup orient portrait
Wanna tell it exactly how big to print? Just hand it a number:
ds9 -pagesetup scale 50
And if you're feeling extra and want a giant multi-page situation, go full poster mode:
ds9 -pagesetup size poster
That's the trio of -pagesetup flexes right there β orientation, scale, and size. Collect all three, iykyk π
panβ this one controls the current image cursor location for the current frame. That's it, that's the whole vibe check β it's your little remote for where the cursor is sitting in whatever frame you're on right now. Lowkey powerful, fr fr π
β¨ Syntax β¨
okay so here's the whole vibe of -pan, laid out for u bestie π
-pan [<x> <h> <coordsys> [<skyframe>]] # relative [to <x> <h> <coordsys> [<skyframe>]] # absolute [open|close]
breaking it down fr fr:
- the args in the first bracket are relative β
<x>,<h>,<coordsys>, and<skyframe>if u need it - then the
#separator, and then absolute β again[to <x> <h> <coordsys> [<skyframe>]] - and at the end,
[open|close]β like, pick one bestie, not both π
ngl the # in there is literally part of the syntax, not a comment. don't come for me, that's just how it is π
πΈ Example πΈ
no cap, here's what it actually looks like in the wild:
ds9 -pan 200 200 image# pan relative
see?? 200 and 200 for the <x> and <h>, then image as the <coordsys>, then that # doing its little separator thing, and pan relative closing it out π¦ iconic behavior, honestly.
okay so we're still deep in the OPTIONS section and the -pan sub-commands keep coming, bestie, they are so extra and I love that for them π
-pan tox yphysicalβ moves the pan to physical coordinates. You hand it two numbers, x then y, and it pans right on over to that physical spot. That trailing#you'll see in the raw help text? That's just the little separator between the command and its description, not a real argument β don't panic and don't type it π
ds9 -pan to 400 400 physical
pan to physical coords β that's the whole vibe: 400 across, 400 down, physical units, done β¨
-pan tox ywcsfkβ same idea but in wcs coordinates, so instead of boring pixels you're giving it actual sky coordinates. The numbers here are13:29:55and47:11:50, and then you tack onwcsand thefksystem. celestial main character energy π¦
ds9 -pan to 13:29:55 47:11:50 wcs fk
pan to wcs coords β no cap, this is the one where you feel like an astronomer π
-pan openβ and then there's this lil one. No coordinates, no numbers, justopen, and it does the pan thing it's supposed to do. iconic, minimal, no notes πΈ
ds9 -pan open
fr fr that's the -pan menu of moves β to with physical coords, to with wcs coords, and open doing its quiet little thing π«Ά and yeah, there's more where that came from, so stay with me π
β¦and yeah, that's ds9 -pan close wrapped up, moving on bestie π
-pixeltableβ shows the pixel table, or hides it. That's the whole job. No cap. π
β¨ Syntax β¨
-pixeltable [] [yes|open] [no|close]
so like, you can pass nothing (the empty [] vibe), or you can pass yes / open to pop it open, or no / close to make it go bye-bye. Two words for the same energy in each direction, pick whichever feels cuter π¦
πΈ Example πΈ
ds9 -pixeltable
ds9 -pixeltable yes
ds9 -pixeltable open
three little baddies, three little ways to get that pixel table living its best life β¨ iconic behavior, honestly π
-pixeltableβ okay so this is the plot corner of ds9, and it comes withcloseandplotunder it. Its whole job? Display and configure data plots. π
The vibe here is no take-backs: the last plot created is assumed. Like, it's not gonna ask you which one you meant β it just rolls with the most recent one. π
And the plot data itself? It's assumed to be a pair of coordinates, with optional error
lowkey the energy of this one is "trust the newest thing on the pile" β that's it, that's the whole rule. π¦
-plotβ okay so this one is create new plot from data file πβ¨ like, actual graph-making energy, bestie, we are no longer just looking at pixels, we are visualizing data. The grammar is giving "every slot is required, don't be shy":
-plot [line|bar [<ref>]] [line|bar [<ref>]] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey
and then there's the lil' short-serve version π
-plot [line|bar] <filename>
let's break the pieces down because there's a lot of brackets happening π
line|barβ those are your two choices, right there in the syntax, and notice you can do the whole[line|bar [<ref>]]situation twice in a row before you even get to the labels. iconic.<ref>β optional, sits inside the brackets, no notes.<title>β the title, duh, and yes it comes after the plot-type stuff.<xaxis label>and<yaxis label>β the axis labels, in that order, x first then y, periodt.xy|xyex|xyey|xyexeyβ pick exactly one, those are the four flavors, don't mix and match π<filename>β the data file the new plot is being created from π¦
ngl the short form -plot [line|bar] <filename> is the low-effort main-character move: file in, plot out, we love a one-liner π
okay so we're still deep in this option's whole situation, and here's the rest of its shape, bestie β every bracket exactly where it lives, do not "tidy" it up:
[<ref>] xy|xyex|xyey|xyexey]
[<ref>]β optional ref, it can come along or it can sit this one out, her choice πxy,xyex,xyey,xyexeyβ these four are the plot-type tokens, and you pick one. That's the whole vibe: it's giving "choose your fighter" but for axes. No cap, write them exactly like that, lowercase and glued together,xyexeyis not a typo and it is not two words, it is one iconic little string π¦
then the fancy version of the same deal:
[line|bar <filename> [<ref>] <title> <xaxis label> <yaxis label> xy|xyex|xyey|xyexey]
line|barβ picklineor pickbar, no third option, we don't do that here π<filename>β the file, the whole file, nothing but the file π[<ref>]β again optional, again just vibing in brackets<title>β the title. it wants a title. give it a title.<xaxis label>and<yaxis label>β yes both, in that order, x first then y, don't switch them or the whole plot gets main-character-in-the-wrong-movie energy πxy|xyex|xyey|xyexeyβ same four tokens as before, same rule: pick exactly one β¨
and then we hit this:
# existing plot
plot [gui] [load <filename> xy|xyex|
# existing plot is just sitting there being a comment, and then plot shows up with [gui] and [load <filename> xy|xyex| and then it just β trails off mid-token π because of course it does, this manpage is 125 parts long and it is not done with us yet. xy|xyex| is literally cut off in the middle of the list, so hold that thought, bestie, because the next bit picks it right back up and we are so close to knowing what comes after that pipe β
okay so we are still in this list, no brakes, no detours, and here come the next entries exactly as they show up π
Two of them land right here and they are β no cap, character for character β just this:
xyey|
xyexey]
and then the bracketed ones roll in one after another. Quick notation check for my bestie who's new here: the [ ] around a thing means that thing is optional, and the | between two things means pick one. That's the whole grammar of this list, iykyk. π
[save <filename>]β save, and the name of the file goes right into the<filename>slot. π[current <ref>]β current, with a<ref>sitting in its slot. β¨[layout grid|row|column|strip]β layout, and you choose one ofgrid,row,column, orstrip. That little|is giving or-energy the entire time. π₯[layout strip scale <percent>]β layout strip scale, and<percent>is where the number lives. πΈ[add graph line|bar]β add graph, and it'slineorbar, pick your fighter. β[current graph <graph>]β current graph,<graph>slot included, no substitutions. π¦[delete graph]β delete graph. That's the whole thing. No slots, no extras, nothing to fill in. π[currentβ and then the source justβ¦ stops. Mid-bracket. Mid-word. A genuine cliffhanger π bestie the rest of this one is absolutely coming in the next chunk, do not move.dataset <dataset>β thedatasetentry, and it's bringing a<dataset>along with it π that's the whole vibe, no cap.delete datasetβ yep, two whole words,deleteand thendataset. Not me double-checking that bestie, it literally says what it says β¨duplicateβ just the one word, riding solo, no arguments, no notes π¦stats yes|noβstats, and you pick:yesorno. Two options, that's the entire menu, periodt πlist yes|noβ same energy fr fr:listplus ayesor ano, and that's it πbackup <filename>βbackup, and it wants a<filename>handed to it. A whole filename, bestie, don't be shy πrestore <filename>βrestore, also holding out its little hand for a<filename>πΈ the symmetry is lowkey iconicpagesetup orient portrait|landscapeβ okay so it'spagesetupfollowed byorient, and then you're choosing betweenportraitandlandscape. That's the pair, those two, the whole vibe check πΌοΈpagesetup size letter|legal|tabloid|poster|a4β andpagesetupagain, this time withsize, and the lineup isletter,legal,tabloid,poster,a4β five of them, all exact, iykyk β¨
bestie these are literal, character for character, so type them exactly how they're written here β no autocorrect glow-ups, no cute little renames, fr fr π
and yeah, the list just keeps going, so stay with me π«Ά
[print]β bestie, just print it. that's the whole vibe. π¨οΈ[print destination printer|file]β where's it going? you get exactly two choices and they areprinterorfile. pick one, no third option, i don't make the rules π[print command <command>]β wanna hand it off to a<command>of your very own choosing? iconic. you're the main character here.[print filename <filename>]β and if you're the type who needs a specific<filename>, yeah, that's a thing you can set. go off π[print color rgb|gray]β color mood check β¨:rgbfor the full rainbow moment,grayfor the moody grayscale era. those are the two, periodt.[close]β closing time, you don't gotta go home but you can't stay here π¦[mode pointer|zoom]β what's the vibe?pointerorzoom. two modes, no in-between, pick your fighter π# export plotβ exporting a plot, lowkey a whole moment πΈ[export <filename>]β your<filename>goes right there, and boom, exported. so satisfying fr fr π[export eps|β okay so the export format list starts witheps|β¦ and it keeps going, bestie, we are not done here. next part, keep scrolling πexport gif|tiff|jpeg|png <filename>β bestie, this is the export squad π pick your format off the menu and hand over a<filename>, and boom, your image is out the door. gif, tiff, jpeg, png β four flavours, one job.export jpeg <filename> [int(1-100)]β the JPEG-specific glow-up β¨ same<filename>deal, but you can slide in an optional quality number that's an integer from1to100. That's the whole vibe check for how crisp you want it. int(1-100), no cap.export tiff <filename> none|jpeg|packbits|deflateβ TIFF girlies, this one's for you π give it a<filename>and then pick your compression era:none(raw, unbothered, moisturised),jpeg,packbits, ordeflate. Four choices, zero drama, pick one and go.# configure graph plot [axis x|y grid yes|no]β okay so this is the plotting setup line π the#is giving prompt energy, and then you're configuring a graph plot. Inside those square brackets you've got optional knobs:axis x|yto say which axis you're on, andgrid yes|noto toggle whether a grid shows up. Note the brackets β these bits are optional, so you can absolutely leave 'em out if you're feeling minimal. π¦
Heads up bestie π those[ ]brackets mean optional β everything inside them is a lil extra you can take or leave. The|bars mean pick exactly one from the list. Don't go picking two, that's not the move. π
and now we're deep in axis territory, so if you've been following along β hi, you're doing amazing π β every single one of these starts with that same axis x|y prefix. Pick x for the x-axis, pick y for the y-axis, and then tell it what to do. That's the whole vibe. No cap.
axis x|y log yes|noβ toggles the log setting for whichever axis you named β¨ sayyesto turn it on,noto turn it off. You gotta say one of them, bestie, there's no "eh whatever" option here.axis x|y flip yes|noβ flips that axis.yesorno, pick your fighter π¦axis x|y auto yes|noβ the auto setting for the axis,yesorno. Let the axis have main character energy and handle itself, or don't πaxis x|y min <value>β sets the minimum for the axis, and you gotta hand it a value. Like, an actual number. Don't leave it hanging πaxis x|y max <value>β same deal but for the max, and again it wants a value in there. Fill it in or it's just gonna sit there staring at you π
so yeah β every one of these needs BOTH the axis letter AND the yes/no (or the value, for min and max). It's giving "two ingredients, no substitutions" π and honestly? iconic. keep scrolling, there's more of this axis lore, and I am lowkey obsessed π
axisx|yformat<string>β bestie you're picking which axis you're talking about (xory), then feeding it aformatand a<string>. Two tokens, one job. πbackground<value>β set the background, drop your<value>in, done. β¨legendyes|noβ legend on, legend off. That's the entire menu, no secret third option. πlegendpositionright|left|top|bottom|plotareaβ okay and where does the legend go?right,left,top,bottom, or straight upplotarea. Pick your fighter. πfonttitle|labels|numbersfonttimes|helvetica|courierβ first you say which text you're styling (title,labels, ornumbers), then you say which font it gets (times,helvetica, orcourier). Yes, the wordfontshows up twice. That's not a typo, that's just how she is. π¦fontβ and then this one just... stops. Mid-thought. Mid-bracket. Iconic behaviour honestly, but we're gonna have to keep reading to find out what it wants. π
heads up β we're still deep inside the big bracket stack from earlier, so all of these are just more of the same choose-your-own-adventure keywords. Nothing has closed yet. πΈ
and we're still deep in this syntax bestie, the grammar just keeps going π here's the rest of it, verbatim:
title|labels|numbers size <value>]
[font title|labels|numbers weight normal|bold]
[font title|labels|numbers slant roman|italic]
[title <string>]
[title x|y <string>]
#
okay let's actually read this thing because it's giving very much "choose your own adventure" π
- the
title|labels|numberstrio is your picker β you're saying which text you're talking about: the title, the labels, or the numbers β¨ size <value>β you want a size? you feed it a<value>. that's the whole vibe, no notes π¦[font title|labels|numbers weight normal|bold]β weight time! picknormalor pickbold, there is no third option, it's giving decisive queen π[font title|labels|numbers slant roman|italic]β same energy but for the slant:romanoritalic, choose your fighter πΈ[title <string>]β hand it a<string>and boom, that's your title, periodt π[title x|y <string>]β and over here you can also slide in anxor ayalongside the<string>π§- and then there's just a lone
#chillin' at the end like ποΈπποΈ iconic honestly
okay so about those square brackets [ ] bestie β that's just the syntax waving at you saying "this whole chunk is optional," so you only grab the bits you actually need π«Ά
ngl this is the part where the font stuff really shows off, because you're not just picking a font, you're picking it per element β title over here, labels over there, numbers somewhere else entirely, each one with its own size, its own weight, its own slant π€ and the title bits let you set the actual text, with an x or a y if you're feeling fancy about it β
lowkey obsessed with how much control this gives you fr fr π
...and bestie, this next bit is all about making your plot actually look like something, okay? π
dataset plot [show yes|no] [name <string>]
# line dataset plot [line smooth step|linear|cubic|quadratic|catrom] [line color <value>] [line width <value>] [line dash
dataset plotβ the base move. This is you telling ds9 "hey, we're messing with a plot now," and everything after it is just stacking lil modifiers on top. β¨[show yes|no]β toggles whether the plot is actually visible. Sayyesand it's showing up to the function,noand it's giving invisible. Your call, no judgment. π«Ά[name <string>]β gives your plot a name. Pass in a<string>and that's its label now, periodt. π
Then we get the line flavored ones, and ngl this is where it gets cute:
# line dataset plotβ comment-prefixed version of thedataset plotline. Same energy, just chillin' behind a#. π[line smooth step|linear|cubic|quadratic|catrom]β picks how your line gets smoothed out. Your options arestep,linear,cubic,quadratic, orcatrom. That's the whole menu, bestie, no secret sixth one hiding. π[line color <value>]β sets the line's color. Drop your<value>in there and boom, it's a whole mood. π¨[line width <value>]β controls how thick the line is. Plug in a<value>and decide if it's serving thin and delicate or bold and main character. π[line dashβ and it just... keeps going from here, so hold that thought π
...and it closes out with a <pink>yes</pink> or a <pink>no</pink> β yes|no]. That little bracket is just the tail end of the toggle from before, bestie. Nothing new, carry on. π
[line fill yes|no]β the fill toggle for your line. Sayyesto fill it in,noto leave it hollow and sad. That's it, that's the whole vibe check. π[line fill color <value>]β you wanna pick the actual color of that fill? This is where you do it. Drop your<value>in and the fill goes from "default nothing" to serving. π[line shape symbol none|circle|square|diamond|plus|splus|scross|triangle|arrow]β okay this one is the fun one, ngl. You're choosing what lil symbol sits on your line. Your menu is, verbatim:nonecirclesquarediamondplussplusscrosstrianglearrow
Pick one, any one. circle for the soft girls, diamond for the ones who ate, arrow if you're feeling directional. β¨
[line shape size <integer>]β and now you're setting how big that symbol is, with an<integer>. Bigger number, bigger symbol, more main character energy. π[lineβ and that's where this part literally cuts off, mid-thought,[lineand nothing else ππ«Ά
okay bestie we're still deep in this list and it has not stopped, it just keeps handing you more tokens like a group chat that never sleeps π here's the exact next run of them, no renaming, no skipping, just vibes and keywords:
shapecolor<value>][lineshapefillyes|no]#bardatasetplot[barbordercolor<value>][barborderwidth<value>][barfillyes|no][barcolor
likeβ¦ see how it just keeps going? π
the ] guys are closing the little bracketed blocks and the [line, [bar guys are opening new ones, so it's giving very much "nested options but make it a novel". the # is sitting there in the middle doing its thing, yes|no] is the whole choose-your-own-adventure moment, and bar + dataset + plot are justβ¦ existing, side by side, unbothered β¨
fr fr do not get creative with these β every token is spelled exactly like this on purpose, brackets and pipes included π«Ά
and then [bar colorβ¦ yeah. it's still not done. hold on, bestie πΈ
okay so we're literally still in the middle of this list, no recap, no re-intro, we just keep going π β¨
here's the next chunk, token for token, copied exactly how it shows up:
<value>
]
[bar
width
<value>]
#
error
bar
plot
[error
yes|no]
[error
color
<value>]
[error
cap
yes|no]
[error
width
<value>]
let me walk you through what you're looking at, bestie, because this part is lowkey just the tail end of the group we were already inside π
- The bare
<value>and the lone]up top aren't a new thing β they're the closing bits of whatever bracket-group we were in the middle of. The<value>is the placeholder you swap for your actual value, and the]is the hug closing. Don't drop either of them π«Ά [bar width <value>]β there it is.bar, thenwidth, then a<value>slot, all wrapped up in square brackets. Square brackets are the classic "you can skip this whole thing if you want" hug, so it's optional vibes only β¨#β yes, a literal, bare#just sitting there on its own line. It is not decor, it is not a comment, it is a token. Copy it exactly, no cap πerror,bar,plotβ three separate words, each chilling on its own line. That's it, that's the whole vibe π₯[error yes|no]β optional group, keyworderror, then ayes|nochoice. Pick one, you don't get both, that's the|doing its job π[error color <value>]β same energy, but this one wants acolorand then a<value>to go with it π[error cap yes|no]βerror, thencap, thenyes|no. Again, one or the other π[error width <value>]β and we close out the chunk witherror,width, and a<value>slot π¦
quick vibe check on the notation itself, since it's the same grammar every time and i want you to feel it, not memorise it:
- square brackets
[ ]= optional, skip-friendly, no pressure πΈ <value>= a placeholder, like a lil blank for you to fill in, not a literal word you typeyes|no= choose exactly one of the two, the pipe means "or"
and that's this stretch. the list keeps going, so stay with me, we are so not done yet π§
okay bestie so let's see this in action, because reading about plot windows is one thing and watching them pop into existence is another π
Example:
# create new empty plot window
ds9 -plot line
ds9 -plot bar
# create new plot from data file
ds9 -plot line xy.dat xy
so like, look at that first little trio π β you hit ds9 -plot line and boom, empty line plot window, all yours, no data, just vibes and axes waiting to be filled. then ds9 -plot bar does the exact same thing but a bar plot instead, no cap. those two are literally just "give me a blank canvas" energy β¨
and then the last one is the glow-up moment: ds9 -plot line xy.dat xy β now you're not starting empty at all, you're pulling from an actual data file xy.dat and telling it xy is the name you want attached. it's giving "i brought my own data to the party" π
heads up though: notice how each one is a separate ds9 invocation. every command spawns its own window with its own plot. they don't stack, they don't merge, they don't share. one call, one plot, periodt π
so like, lowkey the whole pattern is: -plot <type> for a blank one, -plot <type> <file> <name> for one loaded from a file π¦ easy, iconic, no notes πΈ
So like, here's the plot era of the examples, bestie β all the ways you can boss ds9 around from the command line π
First up: you can yeet a whole new plot into existence and name it, all in one line. Title, X axis label, Y axis label, and a plot name of your choosing β the xy at the end is the name it'll go by:
ds9 -plot line xy.dat 'The Title' 'X Axis' 'Y Axis' xy # existing plot
That trailing # existing plot is the manpage's little note that you're pointing at a plot named xy. Obsessed with how much you can cram into one command, fr fr β¨
Wanna skip the typing and just vibe with the GUI instead? Say less:
ds9 -plot gui
Main character energy β you get the graphical plotting window and you can click around like a normal person π
Already got a data file and want it loaded straight into a plot you've named? Here's the move:
ds9 -plot load xy.dat xy
Reads xy.dat and loads it into the plot called xy. Iconic π¦
And if you've made something beautiful in the GUI and you're NOT about to lose it β save that masterpiece to disk, bestie:
ds9 -plot save foo.dat
Dumps the current plot out to foo.dat so it lives forever π
Last one in this little lineup: switching the active plot to one you already made. Meet foo:
ds9 -plot current foo
That's you telling ds9, "hey, this one β foo β is the plot we're working with now." Periodt. π
Reminder bestie: ds9 -plot needs its plot subcommand, and it needs it before any file gets opened β otherwise the plotting action just never happens and you'll be sitting there like π wondering where your graph went.
and the plot example saga continues, bestie π same energy, same ds9, same -plot β just more flavors of it. keep these in your back pocket iykyk:
ds9 -plot layout strip
strip the layout, periodt. π
ds9 -plot layout strip scale 30
same strip moment, but now with a scale of 30 attached. β¨
ds9 -plot add graph bar
adding a graph over here, and the graph type is bar. it's giving data visualization main character energy fr fr π
ds9 -plot current graph 1
pointing at the current graph and calling out 1. π
ds9 -plot delete graph
bye bye graph π deleting it, no notes.
ds9 -plot current dataset 1
and now the current dataset gets the 1 treatment. πΈ
not me casually running through every-plotvariant like it's a playlist π§ like, all of these are literally justds9+-plot+ the subcommand + its args, and the args stay exactly where you put them β no rearranging, no renaming, copy them character for character or the vibe check will fail π
lowkey obsessed with how consistent this pattern is tho π¦ same shape every single time:
ds9 -plot <subcommand> <thing> <value>
and the next one's already waiting for you, so don't you dare close the terminal π«Ά
okay bestie, more -plot examples, keep scrolling, we're still in the thick of it β¨
ds9 -plot delete dataset
deleting a dataset, no cap β poof, gone, that's the whole vibe π¦
ds9 -plot duplicate
duplicating, bestie β a lil copy moment, iconic π
ds9 -plot stats yes
stats turned on, yes energy only π
ds9 -plot list yes
listing, also with the yes β¨
ds9 -plot backup foo.bck
backing it up into foo.bck β protect the goods, fr fr π«Ά
ds9 -plot restore foo.bck
and restoring right back from foo.bck, the way it should be πΈ
ds9 -plot pagesetup orient portrait
page setup but make it portrait orientation, slay π
and yes we're still going, don't you dare close this tab yet π
So like, say you wanna actually print a plot instead of just staring at it? These are the little one-liners you type, bestie. Copy-paste energy, no cap. π
Set up your page size to letter:
ds9 -plot pagesetup size letter
Then just⦠send it. Straight to the printer:
ds9 -plot print
Wanna name a destination of file? Say less:
ds9 -plot print destination file
Wanna hand it off to a command β literally lp, the classic β because you're feeling fancy:
ds9 -plot print command lp
Prefer to aim it at a specific filename, like foo.ps? Iconic, here:
ds9 -plot print filename foo.ps
And if you want your color to be rgb, because obviously you do π:
ds9 -plot print color rgb
That's the whole vibe check on these β same flags, same order, same everything, just your printer getting fed the good stuff. β¨
okay bestie so the -plot flag has a bunch of lil sub-commands and we're gonna run through the glow-ups one by one, no skips π
First up, if you wanna just yeet the plot window closed? Say less:
ds9 -plot close
That's it. That's the whole vibe. She's gone. π«Ά
Next, setting the pointer mode β the way you tell ds9 what kind of pointer energy you want in the plot:
ds9 -plot mode pointer
ngl the pointer there is just the mode name, keep it exactly as written, don't get creative β¨
Now here's a lil comment marker moment for you β this line is just labeling what's coming next, not an actual command:
# export plot
iykyk, the # is doing the narrator voice. π
Wanna export your plot as a TIFF? Periodt, here's how:
ds9 -plot export tiff foo.tiff jpeg
So you're naming the format (tiff), giving it the filename (foo.tiff), and then β plot twist β that trailing jpeg is part of the command too. Keep all three, bestie, don't drop the last one. π
Same energy but for JPEG, except this one gets a lil quality number at the end:
ds9 -plot export jpeg foo.jpeg 75
See that 75? That's the quality value. Slay. π
And for the PNG girlies:
ds9 -plot export png foo.png
Clean, simple, iconic. No extra numbers needed here. β
Last one in this batch is just another lil comment flagging what's next:
# configure graph
Again, # = narrator voice, not a real command. The plot thickens (literally, we're about to configure a graph) and we'll get into it in the next bit π
okay bestie, we're in the -plot axis x era and it's giving β¨ total control β¨. every one of these is the same lil sentence with one word swapped, so once you get the pattern you're literally unstoppable π«Ά
first up, the grid. you want it? you say yes. that's it, that's the whole vibe:
ds9 -plot axis x grid yes
grid? on. slay. π
next one β same energy, different word. you're flipping the log switch to yes:
ds9 -plot axis x log yes
then flip, also yes. yes yes yes, we love a girl who commits:
ds9 -plot axis x flip yes
then auto, and this one's a no β not me turning auto off because I want to do it myself, main character energy fr fr π
ds9 -plot axis x auto no
and finally min, which takes an actual number, and that number is 1:
ds9 -plot axis x min 1
see the shape of it? it's always ds9 -plot axis x then one keyword, then a value β usually yes or no, sometimes a real number like that 1 up there. copy the pattern, swap the keyword, you're golden π
and lowkey that min 1 is the one to watch, because it's the first time we've handed it an actual value instead of a yes/no β so keep that in your back pocket, bestie π
no cap, this axis x stuff keeps going, so don't wander off β
Okay bestie, the -plot era continues and honestly? It's giving full customisation π
every one of these is a ds9 command you can literally just type, and the plot does what you told it. No cap.
Capping that x axis at a whole 100
ds9 -plot axis x max 100
So axis x max 100 is you saying "bestie, the x axis stops at 100" β that's the max, that's the ceiling, that's the vibe. π
Giving the x axis a format
ds9 -plot axis x format '%f'
axis x format '%f' β here's you handing the x axis a printf-style format string, and in this example it's '%f'. Keep those quotes, they're load-bearing, iykyk π«Ά
Background: white. Periodt.
ds9 -plot background white
background white β because sometimes the plot needs to look like a crisp lil piece of paper and not, like, the void. πΈ Set it, forget it, screenshot it for the group chat.
Legend: yes pls
ds9 -plot legend yes
legend yes β the legend is ON, it's invited to the party, it's main character energy, it's showing up. β¨
Legend but make it left
ds9 -plot legend position left
legend position left β so when the legend is enabled, you're telling it to post up on the left. Not right. Not floating around being mysterious. Left. π
See how these all stack? You can hit ds9 with a whole lil bouquet of -plot flags and it justβ¦ does all of it. Iconic behaviour, truly. π¦
okay so real talk β fonts in ds9 plots are a whole thing, and the way you set them is by chaining little keywords together after -plot font numbers. it's giving β¨lego bricksβ¨. watch:
ds9 -plot font numbers font times
that's you telling ds9: "hey bestie, for the numbers in my plot, use the times font." π
want it bigger? say less:
ds9 -plot font numbers size 12
size takes a number, and 12 is the number you're handing over. periodt. π
feeling bold? (literally, not metaphorically, although also maybe metaphorically)
ds9 -plot font numbers weight bold
weight set to bold. no cap, that's the whole vibe. π₯
and for the italic girlies:
ds9 -plot font numbers slant italic
slant β italic. slay. π
so the pattern is honestly so simple it's iconic: you start with ds9 -plot font numbers, then tack on whichever property you wanna flex β font times, size 12, weight bold, slant italic β and each one is its own little ds9 invocation. not me thinking this was gonna be complicated π
ngl, copy these exactly as written β same keywords, same order, same everything. the values matter, bestie. π«Ά
okay bestie so you wanna label your plots?? π because unlabeled axes are giving "mystery meat" and we are NOT doing that β¨
here's the vibe β slap a title on the whole plot:
ds9 -plot title 'This is a Title'
iconic. she has a name now π
and if you want to label the individual axes? you just tell it which axis, lowercase, and then the string:
ds9 -plot title x 'X Axis'
ds9 -plot title y 'Y Axis'
so β x for the x axis, y for the y axis, and the quoted string is literally whatever you want it to say πΈ keep it in quotes so your spaces and punctuation survive the trip through the shell, no cap.
lowkey the quotes are doing a lot of heavy lifting here β don't drop them and then act surprised when the shell eats your title π
three commands, three vibes, all the labels your plot could ever dream of π¦ and yes you can mix and match, go off π
Ok bestie so here's how you actually use these plot commands, watch this β¨
ds9 -plot title legend 'This is the Legend' # configure current dataset
That's it, that's the move. You're passing -plot title legend with the string 'This is the Legend', and the comment is right there in the original: this configures the current dataset. Note the quotes around the legend text β multi-word strings need them or your shell will eat the spaces and you'll be sad π
ds9 -plot show yes
Turning the plot display on with -plot show yes. Simple, iconic, no notes π
ds9 -plot name 'My Data' # line dataset
Setting the name to 'My Data' with -plot name. And see that comment? # line dataset β so name here is about the line dataset, iykyk. Again: quotes, bestie, always quotes π
ds9 -plot line smooth step
And finally -plot line smooth step β using smooth as the value for line in this case. Three little tokens, one very specific vibe πΈ
π«Ά Fr fr: keep those single quotes exactly where they are in these examples. The shell is not your friend about whitespace and the manpage is showing you the safe way.
okay bestie these next few are all about the line in your plot β same shape every time, ds9 -plot line and then one little setting, okay? watch π
- set the line color to
red:
ds9 -plot line color red
- set the line width to
2:
ds9 -plot line width 2
- turn the dash on with
yes:
ds9 -plot line dash yes
- turn the fill off with
no:
ds9 -plot line fill no
- set the fill color to
red:
ds9 -plot line fill color red
see the pattern? π it's giving one knob per command, no cap β you just swap out the last word and the value after it and you're literally customizing your line. iconic β¨
Okay so next up in the -plot line glow-up tour π
we're just stacking little style tweaks on top of each other, one at a time, and honestly? That's the whole vibe. Each one of these is a standalone command you can run on its own. No cap. β¨
First up, you wanna tell your line what shape of marker to use at the data points. Here we're going with circles, because circles are iconic and round things are superior π«Ά
ds9 -plot line shape symbol circle
Then you can decide how big that marker is. Size 5. That's it, that's the whole command:
ds9 -plot line shape size 5
Now let's talk colour, because obviously we care about aesthetics π β set the line's colour to cyan:
ds9 -plot line shape color cyan
And last but definitely not least, you can turn the fill off with no:
ds9 -plot line shape fill no
# bar dataset
Heads up bestie β that # bar dataset line is sitting right there in the docs as a comment, so don't go typing it into your shell expecting magic. It's a note, not a flag. π
okay so these are the lil bar-plot glow-up recipes π
every single one is a full ds9 invocation you can paste straight into your terminal and watch the magic happen. same -plot bar energy, different β¨lewkβ¨. let's get into it:
- border in red, because why would the frame be boring:
ds9 -plot bar border color red
- chunky border, width
2β a lil baby border, cute, subtle, demure:
ds9 -plot bar border width 2
- kill the fill β
fill no, so your bars are just outlines. hollow. ethereal. ghost bars fr fr:
ds9 -plot bar fill no
- the bars themselves in red β not the border this time bestie, the whole vibe, the main character bars:
ds9 -plot bar color red
- bar width
10β thicc. unbothered. those bars ate and left no crumbs:
ds9 -plot bar width 10
and yes, ds9 -plot bar border color red shows up in the list twice π that's not a typo, that's just the manpage being extra, and honestly? iconic. the border-color-in-red agenda is so real it had to be said twice. periodt. π«Ά
also quick vibe check on the whole set: every one of these is the same shape β you're calling ds9, you're saying -plot bar, and then you're stacking whatever bar options you want on top. mix and match them however you like, no cap. π
Okay so these are the -plot error glow-ups, bestie β little one-liners that tweak how that error plot shows up π
ds9 -plot error yesβ turns the error plot on. That's it, that's the whole job β¨ds9 -plot error color redβ sets the error plot's color to red. Yes literally the wordred. Obsessed πds9 -plot error cap yesβ caps the error plot. yes means capped, slay πds9 -plot error width 2β sets the error plot width to2. Lowkey a whole vibe πΈ
png π¦
Load PNG image into current frame. Iconic. Not me just dropping a PNG straight into whatever frame is on deck rn π
Syntax
-png <filename>
Example:
okay so real quick, the vibe here is you can absolutely pipe an image straight into DS9, no big deal, no cap π
ds9 png foo.png
$ cat foo.png | ds9 -png -
like. the way that you just hand it a file, or you cat one and shove it down the pipe β both iconic, both valid, both slay β¨
-portβ sets the IRAF port number, the lil channel IRAF uses to actually talk to DS9 π«Ά The default is5137, the standard IRAFβ¦
the port that's getting used by ximtool. β¨ iykyk.
Syntax π
-port number
Example πΈ
ds9 -port 5137
port_only,inet_onlyβ only use the IRAF port number, bestie, that's it, that's the whole vibe. this is literally the same thing as running-fifo none -unix none. π«Ά no cap.-port_onlyβ bestie, this one locks it down to port-only mode. That's the whole vibe, nothing else to it. π
Syntax:
-port_only
Example:
ds9 -port_only
Short, sweet, iconic. No notes. β¨
powβ pick the power scale function for whatever frame you're currently looking at. Yeah, the current frame, so like, check which one you're on before you go changing things, okay? π«Ά
Syntax:
-pow
Example:
ds9 -pow
prefsβ controls a whole bunch of preference settings. That's it, that's the description. It's giving "trust me, you'll figure it out" energy but fr fr that's what the page says. π
β¨ Syntax β¨
okay bestie, this is the whole vibe of the -prefs command β like, every little piece you can slot in. here's the shape of it, no cap:
-prefs
[open]
[save]
[clear]
[close]
[bg color yes|no]
[bg color <color>]
[nan color <color>]
[precision <linear> <degree> <hms> <dms> <len linear> <len degree>]
so real talk, -prefs is the main character here π and everything in those square brackets is optional β you pick and choose, mix and match, whatever your little heart desires π
π¦ the options, one by one π¦
openβ pulls up (opens) the preferences, like opening a fresh tab on your soul β¨saveβ saves the current prefs, so your settings are locked in and remembered. periodt πclearβ wipes the prefs clean, like clearing your camera roll after a bad photoshoot πcloseβ closes the preferences back up, bye bye πbg color yes|noβ toggles the background colour on or off. it's literally a yes-or-no situation, no in-between energy πbg color <color>β sets the background colour to whatever<color>you drop in there π¨nan color <color>β sets the colour used for NaN values to<color>. so when the data's giving "not a number", at least it looks cute πΈprecision <linear> <degree> <hms> <dms> <len linear> <len degree>β this one's the overachiever fr fr, it takes six values at once:<linear>β precision for linear values<degree>β precision for degree values<hms>β precision for hours, minutes, seconds<dms>β precision for degrees, minutes, seconds<len linear>β precision for linear length values<len degree>β precision for degree length values
ngl bestie, don't skip any of those six β it wants all of them, in that exact order, no substitutions π
[<len arcmin>]
[<len arcsec>]
[<angle>]
[theme <theme>]
[threads <numeric>]
[irafalign yes|no]
okay so let's vibe-check the last few of these bc they're giving "optional, but iconic" β¨
<len arcmin>β a length, bestie, and you're measuring it in arcminutes. space math, we love her π¦<len arcsec>β same energy, but the unit is arcseconds. smaller. precise. main character energy π<angle>β literally just an angle. that's the whole assignment. put an angle here π₯theme <theme>β hand it a<theme>and go. that's the deal πΈthreads <numeric>β a<numeric>value goes here. number in, number out, no cap π’irafalign yes|noβ you literally pickyesorno. that's it. that's the choice π
Example:
ds9 -prefs open
ds9 -prefs save
ds9 -prefs clear
not me showing you three whole moods in one go π like, ds9 -prefs open, ds9 -prefs save, ds9 -prefs clear β that's the trio, fr fr π keep reading, we're not done yet π«Ά
okay so these are literally the examples, bestie β copy-paste energy, no cap. π«Ά
ds9
-prefs
close
that's the close one, in all its tiny lowercase glory. the prefs get told close, and that's the whole command. iconic minimalism, honestly. π
ds9
-prefs
bg
color
no
here you're handing the bg color pref the value no. three little tokens doing the absolute most. πΈ
ds9
-prefs
bg
color
red
same shape, different vibe β bg color gets red this time. swap that last word and you've changed the whole aesthetic. main character behavior fr fr. π₯
ds9
-prefs
nan
color
blue
and this one's for the nan color, set to blue. yes, nan β like Not-A-Number. the pixels that aren't really pixels deserve a color too, and hers is blue. π¦
see the pattern? it's always:
ds9
-prefs
<pref>
<value>
pref, then value, then go. that's the whole rhythm, and once you clock it you can set basically anything your heart desires. π
Okay bestie, this is the part where we just show you the prefs getting set, because reading is one thing and watching it happen is another π
β¨ setting the precision, one number at a time β¨
The precision pref wants a whole lil squad of numbers, and you feed them in like this:
ds9
-prefs
precision
8
7
4
3
8
7
5
3
8
Yes, that's nine of them, in that exact order, no substitutions π Count them again if you want, they're all there: 8, 7, 4, 3, 8, 7, 5, 3, 8. Don't get creative, don't drop one, just hand them over in a row like you're passing notes in class π
π setting the theme π
Then there's the theme pref, which is genuinely the most main character pref of the bunch because it changes the whole vibe:
ds9
-prefs
theme
radiance
So here the theme is being set to radiance. That's the value. That's the whole thing. Slay β¨
π§΅ setting the threads π§΅
And finally, the threads pref, for when you want to tell it how many threads to run with:
ds9
-prefs
threads
8
Eight threads. 8. That's the number π«Ά
So yeah, the pattern here is always the same shape, bestie: you say ds9, you say -prefs, you name the pref, and then you give it whatever it wants β a stack of numbers, a word, a single digit, doesn't matter. It's giving very consistent, very demure, very mindful πΈ
ngl, the line breaks in the original are doing the most π β just read each one as a single command:ds9 -prefs precision 8 7 4 3 8 7 5 3 8,ds9 -prefs theme radiance, andds9 -prefs threads 8. Same characters, same order, zero changes. Promise π€
More of these coming, don't go anywhere π
ds9 -prefs iraf yes
π preserve
okay bestie, so preserve is literally here to preserve the follow attributes while loading a new image. no cap, that's the whole vibe. (yes, "follow", not "following", we keep it exactly πβ¨)
β¨ Syntax β¨
-preserve [pan yes|no] [regions yes|no]
πΈ Example πΈ
ds9 -preserve pan yes
-preserve regions yesβ okay so this one keeps your regions file alive through the operation, no cap β¨ it's giving "don't touch my stuff" energy and honestly? iconic. πpsprintβ invokes PostScript printing π¨οΈβ¨ like, it literally fires up the whole postscript printing thing. but bestie, if you wanna know more, it's pointing you atprintfor further details β so go read that one, iykyk. π«Άprintβ controls printing π the main character of print options, fr fr. and listen: use theprintoption itself to set your printing options. yes it's a little "option-ception" moment, we don't make the rules π but that's literally how you configure it, so go off. π
β¨ Syntax β¨
okay bestie, here's the shape of the whole thing when you actually write it out π«Ά every one of these bracket-y bits is a little optional slot you can fill in, and the pipes are just "pick ONE of these, not all of them" energy:
-print [destination printer|file] [command <command>] [filename <filename>] [color rgb|cmyk|gray] [level 1|2|3] [resolution72|screen|96|144|150|225|300|
and yes it literally just trails off right there π the page got cut mid-option, so hold that thought.
here's the breakdown, one bracket at a time:
[destination printer|file]β where you want the output to land. you're picking between a printer or a file, not both, bestie π[command <command>]β a command slot, and the placeholder it wants is literally written as<command>. iconic.[filename <filename>]β same deal, but for a file name. the placeholder is<filename>, no cap.[color rgb|cmyk|gray]β the color situation π and your three choices arergb,cmyk, orgray. pick your palette, queen.[level 1|2|3]β a level, and it only goes1,2, or3. three little tiers, no more, no less β¨[resolution72|screen|96|144|150|225|300|β the resolution slot, and look at all these options:72,screen,96,144,150,225,300, and then it just... stops. mid-pipe. the page ran out of room π«
ngl the whole thing is giving "choose your own adventure but make it a print command" and I am obsessed π
...and the very last lil bits of that value list, sitting here all by themselves like the end of a group chat scroll:
600|1200]
That's the whole list, bestie. Nothing missing, nothing extra. π
πΈ Example β¨
Okay so here's how you'd actually run this in real life β every single one of these is a legit invocation, copy-paste ready, no edits needed:
ds9 -print
ds9 -print destination file
ds9 -print command lp
ds9 -print filename foo.ps
ds9 -print color cmyk
ds9 -print level 2
Six whole moods. Pick the one that matches your vibe and go off. π
The tail of the list, bestie β every single token exactly as it drops, no edits, no vibes-based renaming π
ds9β the name of the program itself, lowercase, no caps, no notes. It's giving main character energy and it knows it. π-printβ one dash, the wordprint, all lowercase. That's the whole flag, spelled exactly like that. Don't get creative with it. πresolutionβ spelled out fully, all lowercase, no hyphens hiding in there. β¨96β just the number. Two digits.96. Not96.0, notninety-six, not9 6. Ninety-six, periodt. π₯prismβ lowercase, one word, five letters. π¦Invokeβ capitalI, the rest lowercase. Yes, the capital matters, don't @ me. πΈFITSβ all four letters uppercase, always. It's an acronym and it will not be disrespected. πanalysisβ lowercase, one word, no dash, no space. π§tool.β lowercase, and yes, the period is part of the line. Take the whole thing, punctuation included. π
No cap, lowkey the rule for this whole stretch: copy it character for character. Every letter, every capital, every dash, every dot. If you change one of them, that's not the same thing anymore. π
So the line reads, in full and untouched:
Invoke FITS analysis tool.
Obsessed with how plain it is. It just says what it says and moves on. π«Ά
β¨ Syntax β¨
okay so bestie, not me about to drop the syntax tea βοΈ the way that -prism has a whole little entourage of optional commands? it's giving main character energy, fr fr. here's the exact lineup, no cap:
-prism [open] [<filename>] [load <filename>] [import xml|rdb|tsv <filename>] [export xml|rdb|tsv <filename>] [clear] [current <ref>] [ext <int>
lowkey iconic. highkey obsessed. π
okay bestie, we're mid-syntax-situation, the bracket tower continues, do NOT panic, just breathe and read the lil grammar drip π
<extname>] [first|next|prev|last] [goto <int>] [image] [mode newplot|newgraph|overplot] [histogram <col> <numbins> [<min> <max>]] [plot <colx> <coly> [<colerrx>
and here's the same energy, broken out so your eyes stop crying π
]β yes, it's just a lone closing bracket, it's closing something that opened back in the previous part, she's the end of a bracket that had her whole beginning somewhere else, iconic cliffhanger behaviour fr fr[first|next|prev|last]β the little squad of four. you pick exactly one:first,next,prev, orlast. no cap, that's the whole vibe check.[goto <int>]βgotoplus a whole integer<int>. a number. she wants a number. π[image]β justimage, standing there, no arguments, no notes, main character energy πΈ[mode newplot|newgraph|overplot]β the wordmodefollowed by one of three:newplot,newgraph, oroverplot. three doors, pick one πͺ[histogram <col> <numbins> [<min> <max>]]β okay so this one's nested, it's giving matryoshka πͺ. you've gothistogram, then<col>, then<numbins>, and inside all of that there's an optional[<min> <max>]sitting pretty.[plot <colx> <coly> [<colerrx>β and we're cutting off right here mid-bracket,plotthen<colx>then<coly>then an optional bracket opening with<colerrx>β¦ and that's where this part ends bestie, the bracket is literally still open, it's a cliffhanger, we are NOT resolving it in this part π
reminder: every one of these lil guys is optional, hence the square hugs around all of them. the brackets aren't decoration, they're the whole point. π«Ά
we'll pick that dangling <colerrx> bracket back up in the next chunk, don't you dare close it yourself β¨
so the plot-type vibe check is literally just this β you pick one of these and that's the whole personality of your prism plot π«
]
[<colerry>
]
xy|
xyex|
xyey|
xyexey]
xyβ no error bars, just x and y doing their little thing, clean and unbothered β¨xyexβ x values come with errors, so you get horizontal error bars, she's horizontal πxyeyβ y values come with errors, vertical error bars only, standing tall πxyexeyβ both directions get errors, full error-bar realness, the whole package fr fr π₯
π Example π
not me showing you five whole ways to summon prism bestie π every single one of these is literally just ds9 -prism plus whatever energy you're bringing:
ds9
-prism
ds9
-prism
open
ds9
-prism
foo.fits
ds9
-prism
load
bar.fits
ds9
-prism
import
tsv
bar.tsv
okay so like β ds9 -prism on its own? she just arrives, no data, no notes, main character energy π
ds9 -prism open is her opening the whole thing up for you, iykyk π¦
ds9 -prism foo.fits is you handing her an actual FITS file and she's like "say less" πΈ
ds9 -prism load bar.fits is the load of it all, loading that bar.fits in π
and ds9 -prism import tsv bar.tsv is her importing a tsv β bar.tsv specifically β and honestly? ate. no cap π
lowkey obsessed with how much you can do just by tacking words onto -prism, it's giving versatility π
Aight bestie, time for the -prism glow-up tour β¨ Here's every single incantation, served fresh, no edits, no crumbs left behind π
Wipe the whole prism slate clean:
ds9 -prism clear
Swap over to the prism named prism2:
ds9 -prism current prism2
Point at extension number 2:
ds9 -prism ext 2
Or aim it at the extension literally called STDEVT β yes, by name, iconic behavior π
ds9 -prism ext STDEVT
Jump straight back to the first one:
ds9 -prism first
And just step forward one, no drama:
ds9 -prism next
Feeling specific? Teleport straight to 20345:
ds9 -prism goto 20345
That's the whole lineup, babes π Copy them exactly as they are β no cap, these arguments are picky and the vibes do not survive typos π«Ά
Okay bestie, here come the glow-up examples π β the way you actually type these out. Watch and learn π«Ά
ds9 -prism image
So you've got ds9, you've got -prism, and then you're handing it the word image like a little gift. That's the whole vibe. β¨
ds9 -prism mode newplot
Now we're in mode territory, and the mode we're asking for is newplot. New plot, who dis. π¦
ds9 -prism histogram RAWX 40
A histogram moment, RAWX as the axis, and a 40 sitting at the end doing its little number thing. No notes. πΈ
ds9 -prism histogram RAWX 40 0 100
Same histogram RAWX 40 energy, but now with 0 and 100 tagging along at the back β two extra numbers, same iconic lineup. ππ
ds9 -prism plot RAWX RAWY xy
And finally: a plot with RAWX and RAWY and then xy just chilling at the end. It's giving coordinates, it's giving main character, it's giving plot. π₯
Every single one of these isds9first,-prismsecond, then whatever the actual command wants. Order matters, bestie β don't shuffle the lineup. π
okay so the prism thing β here's what those invocations actually look like, bestie:
ds9 -prism plot RAWX RAWY PHA xyex
and the slightly more extra version:
ds9 -prism plot RAWX RAWY PHA PHI xyexey
That's the whole squad of tokens: plot, RAWX, RAWY, PHA, PHI, xyex, xyexey. Write them exactly like that, no cap. β¨
π«Ά -raise β the "notice me" flag
-raiseβ raise the thing in the window stacking order. That's literally the entire job. It pulls the window up to the front, like when your one unread notification finally claws its way above the other 47 tabs you swore you'd close. π Iconic behaviour, honestly.
Syntax
-raise
Example:
-raiseregionβ bestie this one is literally the region wrangler π it takes the argumentregionand it controls regions in the current frame. that's the whole vibe. current frame. regions. controlled. periodt β¨
heads up that this is all about the current frame β not some other frame, not a future frame, the one you're looking at right now π
β¨ Syntax β¨
okay bestie, here's the whole -region shape, laid out exactly like ds9 wants it π
-region
[<filename>]
[load [all] <filename>]
[save [select] <filename>]
[list [close|select]]
[epsilon <integer>]
[show yes|no]
[showtext yes|no]
read this like a lil recipe, not a spell π§ β everything inside [ ] is optional, and a | means "pick one of these, not both." that's the whole vibe check on the brackets, iykyk.
π what each lil piece is giving
-regionβ the main character flag itself. everything below hangs off it. π[<filename>]β an optional filename you can hand over right there, no extra keyword needed. just drop it in. πΈ[load [all] <filename>]β theloadmove, with an optionalallin the middle and a required<filename>at the end. so it can beload <filename>orload all <filename>, your call bestie π[save [select] <filename>]β thesavemove, with an optionalselecttucked in and a required<filename>after it. again:save <filename>orsave select <filename>. π«Ά[list [close|select]]βliston its own, orlistfollowed by eithercloseorselect. one or the other, no doubling up. π¦[epsilon <integer>]βepsilonplus an integer value. yes, an actual number, not a vibe. π’[show yes|no]βshowwants a straight-upyesorno. binary, no in-between. β¨[showtext yes|no]β same energy:showtexttakesyesorno. that's it, that's the tea. π
fr fr, if you're ever staring at this block wondering "do i need the brackets??" β no. the brackets are notation, not characters you type. they're just telling you what's optional. π
lowkey iconic that a syntax block can be this compact and still say so much. anyway, keep scrolling bestie, there's more π
[centroid]β okay so this is the whole centroid vibe, bestie π it's the umbrella situation, and the little bracketed bits that follow are the options you can stack inside it. Bare[centroid]on its own? Valid. No cap.[centroid auto yes|no]β theautosetting inside[centroid], and it takes exactly one of two values:yesorno. That's it, that's the whole menu π pick your fighter.[centroid radius <value>|iteration <value>]β here's where it gets spicy πΆοΈ inside[centroid]you get to choose one of these two: eitherradiuswith a<value>, oriterationwith a<value>. Note the pipe β it's giving "either/or", not "and", periodt.<value>is a placeholder, so swap in your actual number, don't type the angle brackets literally π[move front|back]β themovemove π« it takesfrontorback. Pick a lane, bestie, you can't have both.[select all|none|all|front|back]β yes you're reading that right,allshows up twice in this list π and that is exactly how it's written in the manual, so I'm not touching it. Your options areall,none,all,front,back. Iconic. Slightly chaotic. We love her anyway π¦[delete [select]]β thedeletesituation, and nested inside it there's a lil optional[select]π«Ά so[delete]alone is fine, and[delete [select]]is also a thing. Nested brackets, main character energy, she's doing the most and I respect it.[deleteβ okay so we're mid-thought here, this one literally cuts off at[deleteand keeps going in the next part π do **not panic, nothing's broken, the page just keeps scrolling. Stay with me, bestie, we're picking this back up in a sec π
[load <filename>]
[format ds9|xml|ciao|saotng|saoimage|pros|xy]
[system image|physical|wcs|wcsa...wcsz]
[sky fk4|fk5|icrs|galactic|ecliptic]
[skyformat degrees|sexagesimal]
load<filename>β okay so this is the "bestie, open this one for me" move π you hand it a<filename>and that's the file you're loading, no cap.formatds9|xml|ciao|saotng|saoimage|pros|xyβ this one's a pick-your-fighter situation π you tell ds9 which format the file is in, and your options are literally these seven and only these seven:ds9,xml,ciao,saotng,saoimage,pros,xy. Not me listing all of them so you don't have to guess πsystemimage|physical|wcs|wcsa...wcszβ the coordinate system vibe check β¨ choices areimage,physical,wcs, and thenwcsaall the way through towcz(yes really,wcsa...wcz, every letter in between, it's giving alphabet energy π).skyfk4|fk5|icrs|galactic|eclipticβ which sky frame we're living in π¦ pickfk4,fk5,icrs,galactic, orecliptic. Iconic lineup fr fr.skyformatdegrees|sexagesimalβ how the sky coords get written out π eitherdegreesorsexagesimal. That's the whole menu bestie, no hidden items π
the...inwcsa...wczis literally part of the syntax, don't @ me, that's just how it's written π keep it exactly like that.
...and then it just keeps going, bestie, like the syntax said "and one more thing" six times in a row π. Here's the rest of it, exactly as it lands:
[strip yes|no] [shape <shape>] [color <color>] [fill yes|no];
[width <width>] [dash yes|no] [font times|helvetica|courier]
[fontsize <value>
Yes, that last bracket is genuinely left hanging open in the original. Not me being messy. It's giving cliffhanger. π«Ά
πΈ the lil dials, one by one
[strip yes|no]β takesyesorno, that's the whole menu. Pick your fighter.[shape <shape>]β you hand it a <shape>. Whatever shape you got, that's the shape you're getting.[color <color>]β feeds on a <color>. Dress it up π[fill yes|no]β againyesorno. Binary queen, no in-between.[width <width>]β takes a <width>. Thiccness is a spectrum, apparently.[dash yes|no]βyesorno. Dashes: on or off, no half measures. β¨[font times|helvetica|courier]β exactly three choices and not a single one more:times,helvetica,courier. That's the whole roster. No Arial erasure discourse today, the manpage said what it said.[fontsize <value>]β takes a <value>. And yeah, the bracket closes... eventually. π
lowkey everything in this cluster is optional β see how they're all wrapped in [ ]? Bestie, that's the brackets saying "only if you feel like it." You are never obligated. That's the vibe. π¦
Every single one of these is a slot you can fill and none of them are a slot you must fill.</purl> Note that semicolon sitting right after [fill yes|no] up there β that's not decoration, it's punctuation with a job, so don't go ghosting it when you're typing this out for real. Copy it exactly, bestie, I am begging. π
And the [fontsize <value> at the very end? It just... stops. Right there. Mid-bracket. The syntax said "I'm tired" and clocked out. So when you're writing it out yourself you're gonna need to close that thing β because bestie, nothing in Unix closes your brackets for you. Ever. π
...and we're back, bestie π no new heading needed, we're just continuing the list like nothing happened. These are all still part of the same big family of bracketed choices, so read 'em, love 'em, and copy 'em character for character:
[fontweight normal|bold]β pick your weight, gorgeous:normalorbold. That's the whole menu, two options, no in-between π[fontslant roman|italic]β and here's the slant:roman(straight up) oritalic(leaning, serving looks) β¨
Then the toggle squad rolls in β four little switches, and each one wants a yes or a no, okay?
[fixed|edit|rotate|delete yes|no]β yes, all four live in one bracket, and each of them takes eitheryesorno. Say it with me:yesorno, no maybes, no "kinda", periodt π
[include|exclude|source|background]β four words, one bracket, no values attached. Just pick your fighter:include,exclude,source, orbackgroundπ¦
[command <marker command>]β this one's a placeholder situation, so keep the angle brackets exactly as they are:<marker command>goes in there literally as the placeholder, not as something you swap the words out of π«Ά
[analysis histogram|panda|plot2d|β and here we go again with the alternatives, bestie:histogram,panda,plot2d...
and yep, that bracket is still open π it just keeps going, we are not done β hold that thought, the next chunk picks it right back up π
...and the grammar keeps going, so here's the next stretch of the card π
plot3d|radial|stats
[open|close|save]
]
[composite]
[dissolve]
[template <filename>]
[template <filename> at <ra> <dec> <coordsys> <skyframe>]
[savetemplate <filename>]
[group new]
okay bestie, read this like a recipe card where the square brackets mean "only if you want it" and the straight-up words mean "yes, this, for real" π
plot3d|radial|statsβ three little words, and you pick exactly one of them. The|is the "or" of the whole thing. Not all three. One. Periodt. π[open|close|save]β optional, and if you do want it, it's another pick-one-of-three:open,close, orsave. Same|energy.]β bestie this is just the closing bracket for a group that got opened earlier, before this part. It has no friends and no arguments. It just closes the thing. Don't leave it out if you opened the thing. π«Ά[composite]β optional, standalone, no arguments, just the one word doing its little solo.[dissolve]β same deal, optional, just the word by itself.[template <filename>]β optional, and here<filename>is a placeholder, so you swap in your actual file name. Don't type the angle brackets, iykyk β¨[template <filename> at <ra> <dec> <coordsys> <skyframe>]β the longer twin of the one above: sametemplate <filename>, then the wordat, then four placeholders in a row:<ra>,<dec>,<coordsys>,<skyframe>. All four. In that order. No cap. π[savetemplate <filename>]β optional, and heads up: it's one word,savetemplate, no space in the middle, then your<filename>placeholder. The space goes after it, not inside it. π[group new]β optional, and it's two literal words:group, then a space, thennew. Both stay exactly like that, lowercase, as-is. Don't smoosh them together. π
lowkey the whole vibe here is: brackets = optional, no brackets = you're typing it,|= choose one,<like this>= swap in your own value. Learn that pattern once and the rest of this page just unlocks. π
it's giving grammar slay and honestly? obsessed. π
[group <tag> new]β okay so this is thegroupfamily, and this is thenewflavour of it. You're handing it a<tag>(that's a placeholder, bestie, swap in your actual tag name β¨) and asking for a brand-new one.<tag>stays a placeholder β don't literally type the angle brackets, iykyk π[group <tag> update]β samegroupenergy, same<tag>, but this one is theupdateone. You already have a thing and you wanna refresh it. Lowkey the glow-up option π«Ά[group <tag> select]β theselectvariant ofgroup <tag>. Picking it. Choosing it. Main character energy, obviously π[group <tag> color <color>]β oh this one's fun, it takes two placeholders: the<tag>and a<color>. So it'sgroup, then<tag>, thencolor, then<color>. Two blanks to fill, no skipping, fr fr π[group <tag> copy]β thecopyone. Samegroup, same<tag>, and thencopy. That's the whole line, no extra arguments hanging off it πΈ[group <tag> delete]β thedeleteone.group,<tag>,delete. That's it. (Be careful with delete-type things in general, bestie β that's just good life advice π)[group <tag> cut]β and thecutone.group,<tag>,cut. Same shape as its siblings, no extra bits π¦[group <tag>β and then it justβ¦ trails off π The line stops right there mid-thought, aftergroupand<tag>, with the bracket still wide open and absolutely no idea what comes next. We don't get to find out in this breath β hold that thought, the rest is pulling up any second now π§
okay so we're still deep in the command grammar and bestie it's literally just a list of tokens, but every single one matters, no cap. here's the next chunk, keep it exact:
font
<font>
]
[group
<tag>
move
<int>
<int>
]
[group
<tag>
movefront]
[group
<tag>
moveback]
[group
<tag>
property
<property>
yes|
no]
[copy]
[cut]
[paste
image|
and yes, there's more coming, so stay tuned π
...and the last of those bracket-y choices, bestie, in the exact order they show up:
physical|
wcs|
wcsa...wcsz]
[undo]
[open|
close]
physicalβ one of the picks you can hand over β¨wcsβ another one π¦wcsa...wcszβ the whole alphabet-ish range,athroughzπundoβ yep, that's an option in there too πopen|closeβ these two share a slot, it's giving "pick a lane" π
fr fr, that]at the end ofwcsa...wcsz]is just the closing bracket of the optional group β the list is donezo after this, no cap.
π Example π
Like, here's how it actually looks when you type it out:
ds9 -region foo.reg
And if you wanna be specific about the flavor of region file you're loading:
ds9 -region -format ciao bar.reg # load as ciao format
That # load as ciao format bit? Chef's kiss, it's literally telling you the vibe of that line β ciao format, loaded up, main character energy π
like, sometimes you just wanna yeet a region file straight at DS9 and let it cook π so here's the vibe:
ds9 -region foo.fits # FITS region files do not need a format specification
ds9 -region load foo.reg # load foo.reg into current frame
okay so line one, bestie: you hand ds9 the -region flag with foo.fits and that's it β no format specification required, because FITS region files already know what they are π¦ they're self-describing, they're the main character, they do not need you to hold their hand β¨
line two is the other flavour: -region load foo.reg β see that little load in there? that's the subcommand telling DS9 to load foo.reg into the current frame π not a new one, not a different one, the one you're already on. periodt.
ngl the difference matters: bare-regionwith a FITS file just does its thing, but if you're working with a plain region file you're gonna be typingload(or one of its siblings, iykyk β more on that in a sec π).
Aaand here's the little demo section, bestie β look how cute these two lines are π
ds9 -region load all foo.reg # load foo.reg into all frames
ds9 -region load '*.reg' # expand *.reg and load into current frame
Okay so let's break down what's actually happening here, because it's giving so much in like four words of flags π
ds9 -region load all foo.regβ this one loadsfoo.reginto all frames. Like, every single frame gets it. Not just the one you're staring at. All of them. Generous queen behavior πds9 -region load '*.reg'β and this one is the sneaky one. Here the shell expands*.regfor you (that's why it's wrapped in quotes so it travels as-is, and then it gets expanded at the right moment), and the result gets loaded into the current frame. Just the one you're on right now, not the whole squad π¦
Lowkey important: notice the difference in scope, bestie.all= every frame. Noall= just the current frame. That's the whole plot twist right there β¨
so iconic, so simple, so slay π
Okay bestie, more region example recipes, and these ones are lowkey the most useful ones for scripting, so lock in πβ¨
First up β loading a whole glob of region files into every single frame, no cap:
ds9 -region load all '*.reg' # expand *.reg and load into all frames
The way that all just scoops up every matching *.reg and yeets them into all frames?? Iconic. Note the quotes around '*.reg' β that's so your shell doesn't go feral and expand the glob itself before ds9 ever sees it. Let ds9 do the expanding, periodt. π
Next, saving the current regions out to a file:
ds9 -region save foo.reg
Just writes them out to foo.reg, simple as that. πΈ
But wait β what if you only want the selected regions, not the whole vibe? Say less:
ds9 -region save select foo.reg
That select keyword is doing the heavy lifting β only the selected regions make it into foo.reg. Main character behavior fr fr. π
And if you just wanna peek at what regions exist without saving anything?
ds9 -region list
Manifesting that region list right into your terminal. No files harmed, no frames touched, just vibes and information. π¦
Heads up babe β all of these use the exact same-regionflag from earlier, so if you skipped that part go back and read it, iykyk. The action word (load,save,list) is what tellsds9what to do, and the stuff after it is the what and where. π
ds9 -region list select
okay bestie this one right here β¨ β you're handing ds9 the -region flag, then telling it list, then select. three little words and a whole mood π
ds9 -region list close
same -region list energy, but the third word is close this time. notice how the pattern is doing the work here π¦ β -region, then list, then whatever verb you're feeling that day.
ds9 -region epsilon 5
epsilon 5 π the number is literally 5, no cap. that 5 is the whole point of this line β it's an argument to epsilon and it rides along after the -region flag like it owns the place π
ds9 -region show yes
show gets yes. that's it, that's the line πΈ β yes as the value, plain as day.
ds9 -region showtext no
showtext β not show, careful, they're different words and this is the exact kind of thing where a typo will lowkey betray you π β and its value here is no.
ds9 -region centroid
and finally, centroid with no argument at all π§ β just vibing on its own at the end of the line. no value, no number, nothing trailing after it. periodt.
a lil vibe check π₯ β see how every single one of these starts the exact same way? ds9 -region β¦ and then the rest is just whatever you're asking for. that's the shape of it. don't overthink, don't add words that aren't there π
these are all straight-up command lines you'd type at your shell, btw π β not fragments, not pseudocode, just you, your terminal, and ds9 doing exactly what you said.
okay bestie, more region glow-up recipes, let's go π
First up β let the centroid just do its thing automatically:
ds9
-region
centroid
auto
yes
β¨ Set auto to yes and the centroid computation handles itself. Lowkey the easiest glow-up in the whole file.
Wanna control how far out it reaches? Give it a radius:
ds9
-region
centroid
radius
10
πΈ That 10 is the radius value β no cap, that's literally just the number the example uses. Swap in whatever you need, iykyk.
And if it needs to iterate, you tell it how many times:
ds9
-region
centroid
iteration
20
π Twenty rounds of iteration. She's thorough. She's committed. She's giving main character energy.
Now the layering vibes β sending a region to the back:
ds9
-region
move
back
π¦ move back β that region is going behind everything else. Not deleted, bestie, just humble. Still there, just not stealing the spotlight.
And the reverse, obviously β front and center:
ds9
-region
move
front
π move front β now she's the moment. On top of every other region, impossible to ignore. Ate, no crumbs.
π«Ά Quick reminder, bestie:backandfrontare the two literal values shown here β don't go freestyling extra words in there, fr fr.
ds9 -region select all
okay bestie, this one right here? select all does exactly what it says on the tin β every single region in the whole dang list gets selected. no picking and choosing, no little checkboxes, just ALL OF THEM π. it's giving "select all" in your group chat when you're trying to mass-mute everyone, except iconic and about regions. periodt.
ds9 -region select none
and then we have the opposite energy π«Ά β select none deselects literally everything. zero regions selected, a totally blank slate, the cleanest vibe check you've ever seen. it's the "nvm ignore me" of region commands and honestly? sometimes you need that reset button energy. β¨
ds9 -region select invert
NOT me flipping the whole situation upside down π. select invert takes whatever's selected and makes it unselected, and whatever's unselected and makes it selected. the switcheroo. the uno reverse card π. if you had 3 regions selected out of 10, boom, now the other 7 are selected instead. math is mathing and the plot is plotting.
ds9 -region select front
ooh okay this one is layering coded π β select front grabs the region(s) at the very front of the stack, aka the ones sitting on top of everything else, the main character regions if you will. front row seats, VIP section, no cap. π₯
ds9 -region select back
and naturally we needed the flip side, so select back picks the region(s) hanging out at the back of the stack β the quiet ones, the wallflowers, the background characters who are lowkey carrying the whole plot π. not forgotten, just behind everyone. π
ds9 -region delete
final one for this part and it's a big mood β οΈ β ds9 -region delete removes the selected region(s). gone. deleted. yeeted into the void π. so likeβ¦ make sure you actually want them gone before you hit this, bestie, because there is no "oops undo" in the group chat. π¦
-region+delete selectβ yeets the currently selected regions out of existence ποΈβ¨ they're gone, they're deleted, it's over for them
ds9
-region
delete
select
-region+delete load foo.regβ loadsfoo.regand then deletes what's in it, so basically "open this file just to destroy it" π iconic behaviour honestly
ds9
-region
delete
load
foo.reg
-region+format ds9β sets the region file format tods9, which is the native DS9 region format π the home-team format, the one that just gets it
ds9
-region
format
ds9
-region+system wcsβ sets the coordinate system towcsπ so your regions are being read in World Coordinate System land, i.e. actual sky coordinates, not just pixel vibes
ds9
-region
system
wcs
-region+sky fk5β sets the sky coordinate system tofk5β the classic FK5 frame, she's an oldie but a goodie and she is not going anywhere
ds9
-region
sky
fk5
-region+skyformat degreesβ sets the sky format todegreesπ so all your sky coords are being spoken in degrees, no sexagesimal nonsense, just straight-up decimal degrees, clean and simple, we love to see it
ds9
-region
skyformat
degrees
okay bestie notice the pattern here π every single one of these is just ds9 followed by -region followed by what you wanna do followed by the value you wanna do it with β it's giving "learn one, you've learned them all" energy, and honestly? that's the whole flex π
Okay bestie, more examples, let's gooo π
Here's how you tell it to strip, and the answer is yes:
ds9 -region strip yes
Feeling a little round today? The example goes ellipse for the shape:
ds9 -region shape ellipse
And now she's wearing red π
:
ds9 -region color red
Filled in? yes please π«Ά:
ds9 -region fill yes
Line's a little thicc β 3:
ds9 -region width 3
And dash it up, yes β¨:
ds9 -region dash yes
Heads up, bestie: these are literally the command lines exactly as they appear. Type them the way they're written β the values (yes,ellipse,red,3,yes) stay exactly like that. No freelancing on the spelling, fr fr. π
okay bestie these next ones are all about making your -region text look exactly how you want it, and honestly? iconic behaviour β¨ every single one of these is a full command you can just type, no cap π
ds9
-region
font
times
font? set to times. it's giving β¨classicβ¨, it's giving "my annotations have main character energy" π
ds9
-region
fontsize
24
fontsize cranked to 24 β big text, big opinions, we LOVE to see it π«Ά
ds9
-region
fontweight
bold
fontweight on bold because sometimes your region labels simply need to be FELT, not just read πͺ
ds9
-region
fontslant
italic
fontslant set to italic β slanted, dramatic, a little mysterious π¦
ds9
-region
edit
yes
edit set to yes β you're in charge now, go ahead and tweak, you got this π
ds9
-region
include
and then include, just vibing there at the end of the list, doing its thing π
heads up bestie β these are the region options the way they show up in the examples, so type them exactly like this, spacing and all, or the whole vibe check fails π
...and honestly bestie, these are the little region glow-ups you can just type at it. Watch:
ds9 -region command "circle 100 100 20 # color=red"
That one hands the region a direct order β a circle at 100 100 with radius 20, and the # color=red is you telling it what to wear. π
ds9 -region analysis stats
Same energy, but now you're asking for the analysis stats instead. Slay.
And if you already got a DS9 running and wanna talk to it through the -region pipe? It's giving full group-chat, fr fr:
$ds9 -region analysis stats
close
$ds9 -region
See how it just... listens? You say analysis stats, you say close, and it's like okay bestie noted. Main character energy. π
π FILES π
The complete text of the DS9 manual β like the whole thing, not just this page β lives on Debian systems right here:
/usr/share/doc/saods9/ref/
Go read it. It's long but it's iconic. π«Ά
π AUTHOR π
DS9 is a product of the Smithsonian Astrophysical Observatory</>. No cap, that's the whole flex.
Also, this manual page wasn't hand-typed by some Victorian scribe β it was generated from the DS9 HTML documentation by a script written by Justin Pryzby</> and Ole Streicher</>. Automation ate, honestly. β¨
πΈ SEE ALSO πΈ
Go bother these cousins next:
And that's the whole page, bestie!! π This lil' DS9(1) page is dated 03 Jul 2012</> and yes it's the DS9(1) manual β oldie but a baddie, lowkey timeless. π Go circle some pixels for me. ππ¦
π¦ where this page comes from
- debian trixie: saods9 8.6+repack-5 Β· GPL-3.0-or-later
- ubuntu resolute: saods9 8.6+repack-5ubuntu2 Β· GPL-3.0-or-later
- ubuntu stonking: saods9 8.6+repack-5ubuntu2 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms