Radio Galaxy Zoo Talk

ARG0002v6q - NGC 7479 in FOV

  • Dolorous_Edd by Dolorous_Edd

    Purely just to marvel at this beauty for anyone who is interested

    http://skyserver.sdss3.org/dr9/en/tools/chart/chart.asp?ra=346.24&dec=12.33

    AFAIK it is NGC 7479

    Posted

  • JeanTate by JeanTate in response to Dolorous Edd's comment.

    I wrote about this in the GZ forum thread, Very Strange Spirals?, in this post.

    Here are some images (see GZ forum post for details):

    enter image description here

    enter image description here

    enter image description here

    Here's the last para:

    Hmm, I'm gonna let a radio astronomer comment on this ... yes, there is an intense (count those contours!) NVSS radio source which is at the same location as NGC 7479, but as in the above FIRST image, the radio emission isn't really strong at all. With a handful of exceptions, outside the galaxy, the radio sources are weak ... if there were doublelobes etc, they'd be really intense! But maybe NGC 7479 does have radio jets/lobes, only they're really faint?

    Posted

  • 1001G by 1001G

    enter image description here

    GREAT GALAXY FIND EACH OF YOU.
    ENLARGEMENT SHOWS BLUE STARS AND AREAS.

    Posted

  • WizardHowl by WizardHowl in response to JeanTate's comment.

    Very interesting galaxy! I'm glad you zoomed out the image - take a close look near the bottom at the 5 o'clock position:
    SDSS J230443.59+121210.2 Z_ph~0.16-0.28

    This galaxy has two loose spiral arms in the SDSS DR10 image and your composite shows a hint of radio emission extending beyond the optical perimeter. The emission is very faint so maybe it's noise but there's a good match to the position of this galaxy. Tentative but intriguing! What do you think?

    Posted

  • JeanTate by JeanTate in response to WizardHowl's comment.

    Funny you should ask about that ... SDSS J230443.59+121210.2 - spiral with AGN and radio plume? 😉

    Posted

  • 42jkb by 42jkb scientist, admin in response to JeanTate's comment.

    The contours on the radio overlay I think go too deep and that is why there is a number of radio sources in the image. The radio source that overlaps with the spiral galaxy is valid and I would say the the radio source to the right (around 4 or 5 o'clock) is valid as well. The rest would be noise.

    This is great work!

    Posted

  • ivywong by ivywong scientist, admin

    Seppo Laine has written a nice paper about this galaxy, its jet and its magnetic field. If interested, check out: http://adsabs.harvard.edu/cgi-bin/bib_query?2008ApJ...673..128L

    Posted

  • JeanTate by JeanTate in response to 42jkb's comment.

    Thanks. I've been increasingly interested in learning how radio astronomers decide when there is a 'catalogable' source, and when it's just noise. Particularly for diffuse/extended sources.

    And this has led me to ask this: is the code (or pseudo-code) for a) determining the 'noise threshold' for a radio field, and b) creating the SQRT(2)-scaled nicely-smooth-contours used in RGZ images available? Or something easily accessible describing how to create such code? Preferably in Python.

    From the work I've done on my own, I'm pretty confident I could write Python code for a), if the data were SDSS image FITS, but it seems to me that the noise structure in FIRST images is quite unlike that which comes from the SDSS camera (all those triangular lines!). But I wouldn't know where to start with b).

    One concrete example, ARG00036hs/SDSS J132435.81+084635.5 ("= ASK 482820.0, an IR- and HI emitting spiral with an FRII morphology", per HAndernach). Super-zooite c_cld tripped up over this (see this GZ forum post), and understandably so!

    Here's the FIRST data, somewhat massaged (and overlaid on an SDSS image):

    enter image description here

    How do you decide if the E lobe (on the left) is real (and not just noise)?

    Zooming out, and adding NVSS:

    enter image description here

    The W lobe seems to be unambiguous (but how can you verifiable confirm that, in a quantitative, objective manner?), but is the E lobe?

    And if the E lobe is real, why not some of the local NVSS peaks in the NGC 7479 field I posted above?

    Posted

  • 42jkb by 42jkb scientist, admin

    What do you use to display the FITS images? I use KVIS (or KARMA depending on who you talk to) for this. However, I believe that it is only available for Linux and Mac OS. I don't use DS9 so I can't help you out there.

    The noise in radio images is assumed to follow a Gaussian distribution, with the standard deviation being the noise in the image. I normally believe anything that is at a signal-to-noise of 5 or greater. So I start my contours at a SNR=3 then go up by sqrt(2) to make even contours. Depending on the science you want, some people believe the SNR=3 contour level.

    Posted

  • 42jkb by 42jkb scientist, admin

    Here is the FIRST image with contours starting at a noiselevel of 3, then going up by sqrt(2). I calculated the noise to be 0.160 mJy/beam.

    enter image description here

    Then I added the 2sigma contour to the image. As you can see the 2 sigma contour begins to show the noise. All of the RGZ images start at the 5 sigma level.

    enter image description here

    Posted

  • 42jkb by 42jkb scientist, admin

    And once I figure out how to insert images properly, I'll do the NVSS image too and overlay on the SDSS image.

    Posted

  • 42jkb by 42jkb scientist, admin

    Here is the python code (madstat.py) that I got from Enno and modified so that it should work with all FITS images. It uses the MAD statistic instead of fitting a Gaussian distribution for the noise.

    Posted

  • JeanTate by JeanTate in response to 42jkb's comment.

    Thanks! 😄

    I've not yet tried to extract data from a FIRST or NVSS FITS, but I see that DocR has done so successfully with DS9. I've used DS9 before, under both Windows and Linux, and it's a fantastic program 😃 ... but incredibly hard to learn how to do anything 😦 (I find the User documentation to be, um, sparse).

    The noise in radio images is assumed to follow a Gaussian distribution, with the standard deviation being the noise in the image

    Terrific ... no need to worry about all those triangular lines, because they contribute to the noise just as every other part of the image does. But how do you deal with a field (image) in which there's a diffuse source taking up most of the real estate (we have several of those in RGZ)?

    And yeah, an SNR of 3 seems to be pretty radical (5 seems safer), unless you're hunting faint extended sources I guess.

    Posted

  • 42jkb by 42jkb scientist, admin in response to JeanTate's comment.

    If the radio source is diffuse and takes up a lot of the RGZ image, I would suggest getting your hands on a larger radio image to look at the noise. Not the ideal thing to do but it does give a good indication for examining the image.

    Posted

  • JeanTate by JeanTate in response to JeanTate's comment.

    And this has led me to ask this: is the code (or pseudo-code) for a) determining the 'noise threshold' for a radio field, and b) creating the SQRT(2)-scaled nicely-smooth-contours used in RGZ images available? Or something easily accessible describing how to create such code? Preferably in Python.

    From the work I've done on my own, I'm pretty confident I could write Python code for a), if the data were SDSS image FITS, but it seems to me that the noise structure in FIRST images is quite unlike that which comes from the SDSS camera (all those triangular lines!). But I wouldn't know where to start with b).

    Here's what I could do with SkyView:

    enter image description here

    And here's my first attempt at producing smooth overlaid contours, using the same NVSS data (obtained from SkyView as a FITS file), via my own Python code (no nice SDSS image serving as canvass):

    enter image description here

    The 'noise floor' is 3 sigma, with sigma calculated from MAD (per 42jkb, above); the contours scale as sqrt(3); the background NVSS data is linear ... and the whole thing looks positively ugly! 😦 I haven't checked it properly yet, but it's likely to be close to what I just described. And of course there are many rough edges to smooth, and lots of work to make the code generic (don't ask), ...

    Posted

  • 42jkb by 42jkb scientist, admin

    The code I sent will just give you the noise level in the image, you will need to calculate the contours separately. The zero level would be the signal-to-noise level you choose (3sigma or 5 sigma, etc.)

    Welcome to the world of radio images! Depending on the resolution and noise of the image, the contours can look messy. We don't generally smooth the contours, just over plot them on the image. If you compare the SDSS overlay with the NVSS image you made, you can see that the contours are the same, just that you removed the contours that coincided with the noise. I think the image you made looks great.

    What I find interesting about this source is that the extended "blob" at the top of the spiral galaxy doesn't seem to correspond with the optical image. Intriguing!

    Posted

  • JeanTate by JeanTate in response to 42jkb's comment.

    Thanks! 😃

    My list of things to do, to make my plots scientific and useful for more than one FITS, is quite long. Just in case any reader has difficulty getting to sleep, reading this will surely put you in the land of zzzz's very quicky!

    • add scale (bar, auto coded)
    • add NE pointers
    • add coords of central pixel
    • change color map to the dark-blue/white one used in the radio of RGZ images
    • make the contours thinner!
    • determine 'noise floor' (sorry, haven't gotten used to the proper way yet) iteratively, e.g. mask all regions above threshold, redetermine floor (probably no need to do this more than once)
    • create contour values as a numpy array, automatically (using max flux value)
    • output the plot (canvass+contours+annotations) as data, not a matplotlib figure (?)
    • change noise floor and contour scale to arguments (i.e. not hardcoded, can be read in)
    • ditto the smoothing (the method is scipy.ndimage.filters.gaussian_filter, at the moment with a fixed sigma)
    • ditto contour line thickness, color, etc

    If you've read this far, and haven't fallen asleep, suggestions for additional features most welcome! 😃

    What I find interesting about this source is that the extended "blob" at the top of the spiral galaxy doesn't seem to correspond with the optical image. Intriguing!

    I noticed that too, and it's in Laine+ 2008 as well. My guess is that it's a background AGN, but it'd be really cool if it turned out to be something like a fossil SFR in NGC 7479 itself, or a giant SNR, or ...

    Posted

  • JeanTate by JeanTate in response to JeanTate's comment.

    enter image description here

    Ticking off things on my list:

    • add scale (bar, auto coded) almost: the bar is fixed at 1', size will adjust per metadata in FITS header (but if 1' is not appropriate, well, that's for later)
    • add NE pointers (i.e. orientation) likewise: the FITS header contains metadata to determine this, but all I do for now is make E go left or right
    • add coords of central pixel DONE
    • change color map to the dark-blue/white one used in the radio of RGZ images this proved too big a challenge: I created my own color map, but could not produce one that gives the black -> dark blue -> white of RGZ images; also, the values in the bespoke color map should be tied to things like the noise floor (but I didn't manage to work that out either 😦)
    • make the contours thinner! DONE took me forever ... the keyword in contour is 'linewidths', not 'linewidth'!
    • determine 'noise floor' (sorry, haven't gotten used to the proper way yet) iteratively, e.g. mask all regions above threshold, redetermine floor (probably no need to do this more than once) almost; I've gone as far as I can, next step is to get answers to How to decide the 'zero point' for radio contours?
    • create contour values as a numpy array, automatically (using max flux value) DONE! I used logspace (very neat, but easy to make mistakes)
    • output the plot (canvass+contours+annotations) as data, not a matplotlib figure (?) almost (you really don't want to know the gory details!)
    • change noise floor and contour scale to arguments (i.e. not hardcoded, can be read in) all but (not yet read in)
    • ditto the smoothing (the method is scipy.ndimage.filters.gaussian_filter, at the moment with a fixed sigma) ditto
    • ditto contour line thickness, color, etc ditto

    Now to try this on some other notable objects, and try adding a nice SDSS image as canvass (i.e. learn how to control transparency in matplotlib).

    Comments? Questions?

    Posted

  • JeanTate by JeanTate in response to JeanTate's comment.

    I created my own color map, but could not produce one that gives the black -> dark blue -> white of RGZ images; also, the values in the bespoke color map should be tied to things like the noise floor (but I didn't manage to work that out either 😦)

    Quick note: I think have now worked out how to do both of these things, but it may be a while (days) before I get a chance to post details (and an image which looks suitably like what I aimed at getting).

    Posted

  • JeanTate by JeanTate

    Pretty much done ...

    output the plot (canvass+contours+annotations) as data, not a matplotlib figure (?) almost (you really don't want to know the gory details!)

    That's now done, as the attached image shows (this is the figure which my Python code produces, a PNG file).

    Quick note: I think have now worked out how to do both of these things, but it may be a while (days) before I get a chance to post details (and an image which looks suitably like what I aimed at getting).

    See for yourself:

    enter image description here

    Some details? The color map has two breaks, one for black -> blue, and one for blue -> white. The total pixel value range (corresponding to the range of Jy/beam values) is 1.0, the first break at ~the value of the 'noise' threshold (which in turn is ~the 0th contour) divided by the total pixel value range, 'full white' is at ~three times this. The transition region, where black becomes blue then starts to go white, is very narrow, and so finely tuned.

    I've gone as far as I can, next step is to get answers to How to decide the 'zero point' for radio contours?

    Most of the free parameters in my code hinge on the detailed answers to this question!

    In the meantime, I'll have a go at producing images of different objects, and also using FIRST data.

    Posted

  • ivywong by ivywong scientist, admin

    Hi Jean,

    Not sure this is useful but here is a tutorial on making multicolour images:

    http://astronomy.swin.edu.au/sao/guest/english/imagetech.html

    Posted

  • JeanTate by JeanTate

    Here's FIRST data, processed the same way (but with different parameters to map black and blue):

    enter image description here

    Interestingly, applying the same threshold (3 sigma) to the FIRST data leaves some actual FIRST sources 'uncontoured' (i.e. not recognized as sources)*. This is due, no doubt in part, to a field-wide threshold being too imprecise ... in some parts of the field, the noise is 'quieter', so the threshold should be set lower.

    I'll see if I can plot NVSS contours on top of this...

    *may be hard to see, but there's such a FIRST source in the bottom left, to the 'E' of the "N" symbol

    Posted

  • JeanTate by JeanTate in response to JeanTate's comment.

    I'll see if I can plot NVSS contours on top of this...

    Almost too easy:

    enter image description here

    How about NVSS and FIRST contours on top of a nice SDSS image?

    Posted

  • JeanTate by JeanTate in response to JeanTate's comment.

    How about NVSS and FIRST contours on top of a nice SDSS image?

    enter image description here

    Oh the quirks of the history of how digital images are encoded ... "You are running into an artifact of how images are encoded. For historical reasons, the origin of an image is the top left (just like the indexing on 2D array ... imagine just printing out an array, the first row of your array is the first row of your image, and so on.)" (source).

    Now I think I'm ready to tackle SDSS images + thresholded NVSS and FIRST data ... 😃

    Many readers of my posts already know this, but some may not (and others may have forgotten), so to repeat: if any zooite is interested in the details of how I produced any of the images I've posted here or in the relevant GZ forum threads, and/or my journey (including the mistakes, which were - mostly - very informative), I'd be delighted to share!

    Posted

  • JeanTate by JeanTate in response to JeanTate's comment.

    A composite in which NVSS and FIRST flux below (separate) thresholds do not even show (i.e. the data at those locations are not plotted at all), together with NVSS contours, some transparency for 'above threshold' NVSS data (cyan becoming white), and 'above threshold' FIRST data opaque (red).

    enter image description here

    Beyond NGC7479, FIRST sources show as bright red spots, surrounded by cyan contours (and embedded in faint cyan glows).

    What do you think?

    Posted