beast icon indicating copy to clipboard operation
beast copied to clipboard

ASTs results a little confusing

Open karllark opened this issue 4 years ago • 7 comments

I've been working on enhancing/fixing the BEAST simulations. As part of this, I've dived into the toothpick noisemodel to fix issues with the completeness calculation. Nothing that would impact the BEAST fitting, but things that do impact the BEAST simulations and the MegaBEAST.

I've made a new plot that illustrates all the individual AST results and the binned toothpick model. This plot is for the AST results for the METAL LMC 14675 (AST results in 14675_LMC-13361nw-11112.gst.fake.fits). This plot is created using the command beast plot_toothpick_details that will be available once PR #605 is done and merged. Two things:

  1. The ASTs for this field do not seem to be deep enough in the NIR (and maybe optical)? I'm wondering if these ASTs were done while we were still trimming the AST inputs by the observed data range. Will need to test this again with new AST results (maybe from the soon-to-be-done Scylla test field).

  2. There are a number of bright ASTs that are recovered very faint. This is the origin of the ASTs that are shown very near 1 in the left plots. The left plots show the results normalized by the input fluxes - hence recovering a bright stars very faint results in a value of 1 in these plots.

14675_LMC-13361nw-11112 gst fake_plot

A few people that may be interested: @benw1 , @galaxyumi , @cmurray-astro , @christinawlindberg , @lea-hagen

karllark avatar Sep 04 '20 16:09 karllark

I think this has been answered as due to sources at the edges. But I'm not sure this has been tested. @cmurray-astro, @galaxyumi, @christinawlindberg, @lea-hagen or anyone else - have time to test this?

karllark avatar Oct 07 '20 16:10 karllark

I'll have a look at this sometime in the next few days :)

cmurray-astro avatar Oct 07 '20 18:10 cmurray-astro

So I checked this plot for the AST results for SMC_6 from Scylla (post removing NaNs) and I don't see the same population (bright sources recovered faint as in above). Can check the METAL field if you can share the file? 15891_SMC-3956ne-9632 gst fake_plot

cmurray-astro avatar Oct 08 '20 15:10 cmurray-astro

There are many fewer sources for sure. But I think I see a few of them in the F336W plot. I will send you the file (it is only 8.3 Mb) of the METAL ASTs I'm using.

karllark avatar Oct 08 '20 16:10 karllark

For the METAL example (yay the same one in "metal_small" in beast-examples!), I re-created the initial plot and then just plotted the x,y coordinates of all the weird ASTs (defined as (flux_in-flux_out)/flux_in >0.7 and flux_in > 5e-19 as a rough approximation). here are the plots as a function of band: 14675_LMC-13361nw-11112 gst fake_plot

Most of the sources (especially in IR) are just edge cases, and there are some which look like chip gap sources. Otherwise in WFC/UVIS there are some distributed randomly-- maybe just happen to be near other bright sources?

cmurray-astro avatar Oct 08 '20 17:10 cmurray-astro

Nice plots! Definitely says we should avoid edges. I wonder if there is some flag that says we are near the edge in the photometry files.

karllark avatar Oct 08 '20 17:10 karllark

I had a conversation with @benw1 (maybe 6 months ago??) about keeping PHAT ASTs away from the edges. This was after running the METAL ASTs. I implemented something for the PHAT ASTs that I suppose could be easily incorporated into make_ast_inputs.py with an optional keyword or something. It's unlikely that I'll have time to do that in the next couple weeks, so here's a code snippet in case someone would like to add it sooner! It uses the coordinates from boundary_coord in beast_settings, but could easily be changed to reference a convex hull from the catalog boundaries instead.

from shapely import geometry

# make an eroded version for ASTs (10 pix = 0.5")
boundary_polygon = geometry.Polygon(
    [[float(boundary_ra[i]), float(boundary_dec[i])]
     for i in range(len(boundary_ra))]
)
erode_polygon = boundary_polygon.buffer(-0.5/3600)
boundary_ra_erode = [str(x) for x in erode_polygon.exterior.coords.xy[0]]
boundary_dec_erode = [str(x) for x in erode_polygon.exterior.coords.xy[1]]

lea-hagen avatar Oct 08 '20 18:10 lea-hagen