BEAST-Fitting / beast

Bayesian Extinction And Stellar Tool
http://beast.readthedocs.io
23 stars 34 forks source link

production run - choose final parameters #322

Closed lea-hagen closed 5 years ago

lea-hagen commented 5 years ago

Someone (probably me): start a 2019 production run in the example folder. Everyone can look at the datamodel file to converge on a set of parameters (ASTs, grid spacing, etc) that we like. Discussion can happen either in this issue and/or via pull requests to edit datamodel.

lcjohnso commented 5 years ago

Choice of dust extinction curve (i.e., new F19 via dust_extinction package vs. current G16 w/ F99) needs to be decided. I'll post here how F19 looks (preferred choice) to help make final decision.

karllark commented 5 years ago

Toothpick focused ASTs to be used. Discussion/plots in #308.

Full physics grid range of fluxes. At least 50 ASTs per flux bin in every band. 1 repeat of each BEAST SED.

lea-hagen commented 5 years ago

I just put a datamodel.py and run_beast.py in #328, so we can start iterating on that.

lea-hagen commented 5 years ago

Here are the grid parameters suggested in Gordon+16 for the full production runs in M31, formatted as [min, max, spacing]:

This is a much finer grid than I had been thinking, but if we're willing to put in the computational time (and do the grid splitting, since that grid probably wouldn't load into RAM), it could work.

karllark commented 5 years ago

And here is the grid that was used for the PHAT production runs (reduced from BEAST paper desired grid to reduce RAM usage).

logt = [6.0, 10.13, 0.15] z = [0.03, 0.019, 0.008, 0.004] avs = [0.0, 10.055, 0.15] rvs = [2.0, 6.1, 0.5] fbumps = [0., 1.01, 0.25]

karllark commented 5 years ago

@lea-hagen : can you give the size of the physicsgrid model for the production proposed parameters?

It would be great to go with the BEAST desired grid spacing, but I would expect that the size would be in around 2.9 Tb(!) (estimated as desired is finer by factors of 3(age)x7.5(Av)x2.5(fA)x6(z) = 337).

lea-hagen commented 5 years ago

As an example for the grid size, I have one for METAL that's 9.28GB. Here are its properties compared to the huge grid.

parameter METAL grid giant grid
ages 28 83
metallicities 3 25
Av 70 500
Rv 9 9
fA 5 11

These imply the large grid is 388x larger, which is 3.6TB.

Karl and I were talking earlier about ways to make this smaller, and the two main ideas were (1) remove some things (like the predicted GALEX magnitudes) from the grid, and (2) figure out if we need the grid spacing to actually be that small.

lea-hagen commented 5 years ago

To investigate the grid spacing, I'm looking through figures 16 and 17 in the BEAST paper, which plot each parameter against their uncertainties. The goal is to make sure that the 1sigma uncertainties are larger than the grid spacing.

beast_param_sigma

Here are some musings on each parameter.

parameter PHAT grid spacing giant grid spacing notes
AV 0.15 0.02 Many of the sigmas (especially at AV<1.5) are running into the lower limit of 0.15, which would suggest finer spacing. I'm guessing there's no easy way to implement finer spacing at only low AVs.
log_age 0.15 0.05 Within 8 < log_t < 9, there are points bumping against the sigma floor. I'm not sure if a spacing of 0.1 would be sufficient or if it would need to be 0.05.
log_mass varies varies There are definitely points near the bottom, but I don't know if the spacing is set by us or the isochrones.
RV 0.5 0.5 It looks like this needs finer spacing, especially at RV<3. Though of course this is the parameter that was already at the finest spacing...
fA 0.25 0.1 Needs finer spacing, but it's hard to say whether 0.2 or 0.1 would be better, particularly given that PHAT doesn't include a filter that constrains the 2175A bump. Surveys with F225W might better constrain fA and therefore need a finer grid.
Z ~0.3 in log_z 0.1 in log_z The ceiling at sigma_z = 0.013 is where the metallicity is unconstrained. It's hard to tell precisely what's going on at low sigma_z, since the spacing isn't even. Also, the lowest metallicity (z=0.004) and smallest spacing (also 0.004) aren't visible with the plot's current axes (@karllark?).
lea-hagen commented 5 years ago

I made equivalent plots for IC1613 BEAST runs, which have observations in F275W, F336W, F390M, F555W, F814W, F110W, and F160W. They are also deeper observations than PHAT. Here are the grid parameters (the first 4 are the same as the PHAT run).

Some observations:

15275_IC1613_beast_stats_param_err

karllark commented 5 years ago

Great to see all the plots and musings. More high A(V) solutions in IC1613. Interesting.

Do you have an idea of what you grid spacing and min/max values we should pick based on all this? If you had to pick. :-)

lea-hagen commented 5 years ago

One thing I should have mentioned for the IC1613 plots is that the colors are done on a log scale, which perhaps over-emphasizes the areas with fewer stars. I'm not sure if the M31 colors are log or linear scaled.

If I had to choose a grid, here are my thoughts:

parameter notes
log_age = [6.0, 10.13, 0.1] I feel good about this
Av = [0.01, 10.0, 0.05 I don't see a reason to use 0.02 spacing
Rv = [2.0, 6.0, 0.5] The uncertainties for some low Rv stars were running into the barrier from using 0.5 spacing, but it's few enough that it's probably fine
fA = [0.0, 1.0, X] Runs so far have been using X=0.25, which is too big. Maybe X=0.2 would be ok, since going to X=0.1 would be a lot of extra calculations for an uncertain amount of improvement.
z = ?? I'm still unsure about this - the previous grids have been so coarse that it's difficult to evaluate whether we need 2x, 5x, or 10x the sampling. Others' input would be useful.
karllark commented 5 years ago

One issue we've run into in the past is the need to have max limits slightly above the actual max desired to make sure it is included. For example, Av = [0.0, 10.01, 0.05] instead of [0.0, 10.0, 0.5]. Does anyone know if this is still needed?

karllark commented 5 years ago

On the topic of the Av range. Should we go from [0.0, 10.0], not [0.01, 10.0]? I know that having Av with 0.0 is an issue for our current MegaBEAST A(V) distribution model, but is this something that we have to solve in the BEAST - or is this something we can solve later in the MegaBEAST?

lea-hagen commented 5 years ago

I have no idea if that's still needed, but it's probably straightforward to check. I'll take a look this afternoon.

For Av = 0.0 vs 0.01, I have no idea if we'll solve it for the MegaBEAST. I recall that in discussions about it, we decided that no star will have Av=0 anyway.

karllark commented 5 years ago

Good point about Av=0.0. I agree between MW foreground and M31, there will be dust. :-)

lea-hagen commented 5 years ago

From make_extinguished_sed_grid in beast/physicsmodel/model_grid.py:

avs = np.arange(av[0], av[1] + 0.5 * av[2], av[2])
rvs = np.arange(rv[0], rv[1] + 0.5 * rv[2], rv[2])
...
fAs = np.arange(fA[0], fA[1] + 0.5 * fA[2], fA[2])

where av, rv, and fA are the lists formatted as [min, max, step_size]. So we don't need to add the extra bit when we define the boundaries in datamodel.

karllark commented 5 years ago

Cool!

lea-hagen commented 5 years ago

Doing a quick estimate of grid size for the most recently proposed model grid

parameters number of points
log_age = [6.0, 10.13, 0.1] 42
Av = [0.01, 10.0, 0.05] 200
Rv = [2.0, 6.0, 0.5] 9
fA = [0.0, 1.0, 0.2] 6
5 metallicity points (range will change with galaxy) 5

This has a total of 2268000 grid points. This is 8.6x larger than the METAL grid that's 9.28GB, so the grid would be 79.5GB.

EDIT: With the metallicity grid from below (9 points), the largest grid would be 143GB.

lea-hagen commented 5 years ago

After discussion, metallicity will be uniformly spaced in log Z space, with spacing of 0.3 dex:

log Z = [-2.3, -2. , -1.7, -1.4, -1.1, -0.8, -0.5, -0.2,  0.1]

We will chop out the larger metallicities when we're running for lower metallicity galaxies.

lea-hagen commented 5 years ago

We also decided that subgridding will be necessary, especially since the SMC (and possibly the LMC) will need to incorporate a range of distances.

lea-hagen commented 5 years ago

I'm not sure if we need to decide now, but it just occurred to me that we haven't actually discussed what type of distance grid we want to use for the SMC/LMC. Would we want to do a constant number of slices along the known depth, slices separated by the typical photometric uncertainty, ...?

karllark commented 5 years ago

I would say a number of slices along the known depth. Probably with a fixed distance spacing and just have more for the SMC to be consistent with our other grid parameters (e.g., metallicity).

lcjohnso commented 5 years ago

Regarding dust extinction curve choice: the use of a R_V/f_A model using F20+G03_SMCBar (magenta) is preferable over the G16 use of F99+G03_SMCBar (cyan) when compared to reddenings derived for stars that fall within the reddened red clump sequence from SMIDGE (black points; stars with estimated A_V > 0.5 mag that give robust reddening estimations). The models shown represent reddenings for red clump stars with moderate A_V (<5 mag) and spanning the full prior range of R_V and f_A (see Fig 7 in Gordon+16).

dustcompare_gvijh

I'll note that a similar comparison incorporating the F336W band is less favorable, but I have lingering doubts about the models and photometry of these red clump stars in such a blue passband.

dustcompare_ugvijh

lea-hagen commented 5 years ago

For the distance grid: After discussion, including some awesome SMIDGE plots from @petiay, we've decided to have a grid spacing of 2.5 kpc (corresponding to ~0.1 mag in distance modulus) in the Magellanic Clouds.

In M31/M33, 0.1 mag corresponds to ~30-40kpc, so at this point, we won't do a distance grid for them. If there any dwarfs that are much closer, we'll consider using multiple distances.

karllark commented 5 years ago

Agreed to close on 16 Jul 19 HackDay.

lea-hagen commented 5 years ago

Metallicity update: PARSEC only does metallicities from 0.0001 to 0.06. Therefore, without objections, we'll use this grid:

log Z/Z_sun = [-2.1, -1.8, -1.5, -1.2, -0.9, -0.6, -0.3,  0.0,  0.3]

When using Z_sun = 0.0152, this corresponds to

Z = [0.000121, 0.000241, 0.000481, 0.000959, 0.00191, 0.00382, 0.00762, 0.0152,
 0.0303]