Source code for astrobase.services.fortney2k7

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# fortney2k7.py - Waqas Bhatti (wbhatti@astro.princeton.edu) - 04/2016
# MIT License - data from tables in Fortney et al. 2007, ApJ, 2659, 1661

'''
This contains data from Fortney et al. 2007 on planet compositions, masses and
radii. Also contains functions that return numpy arrays from these data based on
specified input.

Requires numpy.

'''

from numpy import nan, array

# planet radii as a function of mass (first key) for different compositions
ICEROCKPLANETRADII = {
    0.010:{
        'ice':               0.38,
        '0.50ice+0.50rock':  0.33,
        'rock':              0.25,
        '0.67rock0.33iron':  0.24,
        '0.50rock0.50iron':  0.23,
        'iron':              0.19,
    },
    0.032:{
        'ice':               0.55,
        '0.50ice+0.50rock':  0.48,
        'rock':              0.37,
        '0.67rock0.33iron':  0.34,
        '0.50rock0.50iron':  0.33,
        'iron':              0.27,
    },
    0.1:{
        'ice':               0.79,
        '0.50ice+0.50rock':  0.69,
        'rock':              0.54,
        '0.67rock0.33iron':  0.50,
        '0.50rock0.50iron':  0.48,
        'iron':              0.39,
    },
    0.32:{
        'ice':               1.12,
        '0.50ice+0.50rock':  0.97,
        'rock':              0.77,
        '0.67rock0.33iron':  0.71,
        '0.50rock0.50iron':  0.68,
        'iron':              0.55,
    },
    1.0:{
        'ice':               1.55,
        '0.50ice+0.50rock':  1.36,
        'rock':              1.08,
        '0.67rock0.33iron':  1.00,
        '0.50rock0.50iron':  0.95,
        'iron':              0.77,
    },
    3.16:{
        'ice':               2.12,
        '0.50ice+0.50rock':  1.85,
        'rock':              1.48,
        '0.67rock0.33iron':  1.36,
        '0.50rock0.50iron':  1.30,
        'iron':              1.04,
    },
    10.0:{
        'ice':               2.87,
        '0.50ice+0.50rock':  2.48,
        'rock':              1.97,
        '0.67rock0.33iron':  1.80,
        '0.50rock0.50iron':  1.71,
        'iron':              1.36,
    },
    31.6:{
        'ice':               3.74,
        '0.50ice+0.50rock':  3.23,
        'rock':              2.54,
        '0.67rock0.33iron':  2.31,
        '0.50rock0.50iron':  2.19,
        'iron':              1.72,
    },
    100.0:{
        'ice':               4.68,
        '0.50ice+0.50rock':  4.03,
        'rock':              3.14,
        '0.67rock0.33iron':  2.84,
        '0.50rock0.50iron':  2.69,
        'iron':              2.09,
    },
    316.0:{
        'ice':               5.43,
        '0.50ice+0.50rock':  4.67,
        'rock':              3.64,
        '0.67rock0.33iron':  3.29,
        '0.50rock0.50iron':  3.12,
        'iron':              2.42,
    }
}


# planet masses and radii for different semimajor axes and core masses
# first key is orbit distance in AU, second key is core mass in Mearth
MASSESRADII_0_3GYR = {
    0.02:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[nan,2.326,1.883,1.656,1.455,
                            1.378,1.342,1.327,1.308,1.311,
                            1.315,1.284]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[1.102,1.388,1.465,1.422,1.349,1.325,1.311,
                             1.306,1.295,1.304,1.310,1.281]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.493,0.945,1.133,1.220,1.253,]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.801,1.030,1.144,1.193,1.226,
                             1.245,1.276,1.292,1.270]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.669,0.939,1.055,1.128,
                              1.187,1.242,1.270,1.256]}
    },
    0.045:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[2.795,1.522,1.345,1.255,1.240,1.228,1.212,
                            1.206,1.199,1.210,1.203,1.170]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.801,1.012,1.091,1.124,1.168,1.185,1.185,
                             1.188,1.188,1.204,1.199,1.168]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.447,0.793,0.968,1.071,1.124,1.147,
                             1.161,1.173,1.195,1.193,1.164]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.719,0.921,1.033,1.084,1.119,
                             1.148,1.179,1.183,1.157]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.627,0.863,0.968,1.036,
                              1.101,1.148,1.163,1.146]}
    },
    0.1:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[1.595,1.395,1.270,1.197,1.202,1.198,
                            1.187,1.182,1.178,1.189,1.178,1.144]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.755,0.956,1.035,1.084,1.134,1.157,
                             1.160,1.164,1.168,1.183,1.174,1.142]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.438,0.767,0.938,1.042,1.099,1.123,
                             1.138,1.153,1.174,1.169,1.138]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.702,0.899,1.011,1.063,
                             1.098,1.129,1.158,1.159,1.132]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.618,0.847,0.950,
                              1.018,1.084,1.128,1.140,1.121]}
    },
    1.0:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[1.504,1.325,1.222,1.169,1.182,1.182,
                            1.173,1.169,1.168,1.179,1.169,1.136]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.727,0.921,1.004,1.063,1.116,1.141,1.146,
                             1.152,1.158,1.173,1.165,1.134]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.433,0.754,0.923,1.027,1.085,1.110,
                             1.127,1.143,1.164,1.159,1.130]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.693,0.888,0.999,1.051,
                             1.087,1.120,1.149,1.149,1.124]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.613,0.839,0.941,1.009,
                              1.075,1.119,1.131,1.113]}
    },
    9.5:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[0.929,0.951,0.983,1.020,1.070,1.106,
                            1.127,1.146,1.167,1.169,1.156,1.130]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.565,0.733,0.847,0.939,1.016,1.072,1.104,
                             1.131,1.157,1.163,1.152,1.127]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.394,0.664,0.826,0.942,1.024,
                             1.073,1.146,1.142,1.153,1.146,1.124]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.635,0.823,0.951,1.020,
                             1.072,1.119,1.137,1.137,1.118]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.587,0.810,0.920,0.999,
                              1.072,1.107,1.119,1.107]}
    }
}


MASSESRADII_1_0GYR = {
    0.02:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[nan,1.770,1.539,1.387,1.309,1.281,1.258,
                            1.248,1.235,1.244,1.240,1.199]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.909,1.150,1.221,1.211,1.228,1.234,
                             1.229,1.229,1.224,1.237,1.235,1.197]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.461,0.838,1.022,1.121,1.169,
                             1.189,1.200,1.206,1.228,1.229,1.192]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.746,0.958,1.072,1.122,
                             1.156,1.180,1.211,1.218,1.186]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.640,0.888,0.997,1.068,
                              1.130,1.179,1.198,1.173]}
    },
    0.045:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[1.490,1.271,1.183,1.144,1.163,
                            1.167,1.160,1.157,1.156,1.164,1.149,1.107]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.698,0.888,0.975,1.043,1.099,1.127,
                             1.134,1.140,1.147,1.158,1.145,1.105]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.426,0.739,0.908,1.012,1.072,
                             1.099,1.115,1.132,1.149,1.140,1.101]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.684,0.877,0.988,1.041,
                             1.077,1.109,1.134,1.130,1.095]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.607,0.831,0.932,
                              0.999,1.065,1.105,1.111,1.084]}
    },
    0.1:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[1.298,1.197,1.127,1.105,1.133,1.143,
                            1.139,1.138,1.139,1.147,1.130,1.087]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.665,0.847,0.934,1.012,1.072,1.105,
                             1.114,1.122,1.130,1.141,1.126,1.085]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.420,0.719,0.883,0.989,1.051,
                             1.080,1.097,1.116,1.132,1.121,1.081]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.670,0.859,0.970,1.023,
                             1.059,1.094,1.117,1.111,1.076]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.600,0.818,0.918,0.984,
                              1.050,1.088,1.093,1.065]}
    },
    1.0:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[1.229,1.148,1.095,1.086,1.118,
                            1.130,1.128,1.127,1.130,1.137,1.121,1.079]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.646,0.823,0.915,0.996,1.058,1.092,
                             1.103,1.111,1.121,1.131,1.117,1.077]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.416,0.709,0.871,0.977,1.040,
                             1.069,1.087,1.107,1.123,1.112,1.073]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.663,0.850,0.961,1.014,1.050,
                             1.085,1.108,1.102,1.068]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.595,0.811,0.910,
                              0.976,1.042,1.080,1.085,1.057]}
    },
    9.5:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[0.857,0.877,0.910,0.955,1.003,
                            1.044,1.068,1.089,1.113,1.119,1.109,1.074]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.532,0.683,0.791,0.882,0.955,
                             1.013,1.047,1.075,1.104,1.113,1.105,1.072]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.386,0.631,0.780,0.888,
                             0.970,1.018,1.089,1.090,1.105,1.100,1.069]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.610,0.784,0.904,
                             0.970,1.021,1.068,1.090,1.091,1.063]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.570,0.775,0.878,
                              0.954,1.026,1.063,1.074,1.053]}
    }
}


MASSESRADII_4_5GYR = {
    0.02:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[nan,1.355,1.252,1.183,1.190,1.189,
                            1.179,1.174,1.170,1.178,1.164,1.118]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.726,0.934,1.019,1.072,1.123,
                             1.148,1.153,1.157,1.160,1.172,1.160,1.116]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.430,0.756,0.928,1.032,1.091,
                             1.116,1.131,1.145,1.163,1.155,1.112]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.695,0.891,1.004,1.056,
                             1.091,1.121,1.148,1.144,1.106]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.613,0.841,0.944,1.011,
                              1.076,1.118,1.125,1.095]}
    },
    0.045:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                                1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[1.103,1.065,1.038,1.049,1.086,
                            1.105,1.107,1.108,1.113,1.118,1.099,1.053]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.599,0.775,0.878,0.964,1.029,
                             1.069,1.083,1.092,1.104,1.112,1.095,1.050]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.403,0.686,0.846,0.952,1.019,
                             1.050,1.069,1.090,1.104,1.090,1.047]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.648,0.831,0.942,0.996,1.033,
                             1.068,1.090,1.081,1.042]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.587,0.798,0.896,
                              0.961,1.026,1.062,1.063,1.032]}
    },
    0.1:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[1.068,1.027,1.005,1.024,1.062,1.085,
                            1.090,1.092,1.099,1.104,1.084,1.038]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.592,0.755,0.858,0.942,1.008,
                             1.051,1.067,1.077,1.090,1.098,1.080,1.036]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.404,0.675,0.829,0.934,1.002,
                             1.034,1.054,1.077,1.090,1.075,1.033]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.639,0.817,0.928,0.982,
                             1.019,1.055,1.076,1.066,1.027]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.582,0.788,0.884,
                              0.949,1.014,1.049,1.049,1.018]}
    },
    1.0:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[1.014,0.993,0.983,1.011,1.050,1.074,
                            1.081,1.084,1.091,1.096,1.075,1.030]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.576,0.738,0.845,0.931,0.997,1.041,
                             1.058,1.068,1.082,1.090,1.072,1.028]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.400,0.666,0.820,0.924,
                             0.993,1.026,1.046,1.069,1.082,1.067,1.025]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.633,0.810,0.920,0.974,
                             1.011,1.048,1.068,1.058,1.020]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.578,0.782,0.878,
                              0.942,1.007,1.041,1.041,1.010]}
    },
    9.5:{
        0:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                          1.0,1.46,2.44,4.1,6.8,11.3],
           'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
           'radiusjupiter':[0.798,0.827,0.866,0.913,0.957,
                            0.994,1.019,1.037,1.056,1.062,1.055,1.023]},
        10:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[0.508,0.653,0.759,0.844,0.911,0.966,
                             0.999,1.024,1.048,1.057,1.052,1.021]},
        25:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,0.378,0.611,0.750,0.849,0.926,
                             0.972,1.037,1.035,1.050,1.047,1.018]},
        50:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                           1.0,1.46,2.44,4.1,6.8,11.3],
            'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
            'radiusjupiter':[nan,nan,nan,0.594,0.754,0.865,
                             0.926,0.973,1.015,1.037,1.039,1.013]},
        100:{'massjupiter':[0.052,0.087,0.15,0.24,0.41,0.68,
                            1.0,1.46,2.44,4.1,6.8,11.3],
             'massearth':[17,28,46,77,129,215,318,464,774,1292,2154,3594],
             'radiusjupiter':[nan,nan,nan,nan,0.558,0.746,0.842,
                              0.911,0.976,1.012,1.023,1.004]}
    }
}


[docs]def massradius(age, planetdist, coremass, mass='massjupiter', radius='radiusjupiter'): '''This function gets the Fortney mass-radius relation for planets. Parameters ---------- age : float This should be one of: 0.3, 1.0, 4.5 [in Gyr]. planetdist : float This should be one of: 0.02, 0.045, 0.1, 1.0, 9.5 [in AU] coremass : int This should be one of: 0, 10, 25, 50, 100 [in Mearth] mass : {'massjupiter','massearth'} Sets the mass units. radius : str Sets the radius units. Only 'radiusjupiter' is used for now. Returns ------- dict A dict of the following form is returned:: {'mass': an array containing the masses to plot), 'radius': an array containing the radii to plot} These can be passed to a plotting routine to make mass-radius plot for the specified age, planet-star distance, and core-mass. ''' MR = {0.3:MASSESRADII_0_3GYR, 1.0:MASSESRADII_1_0GYR, 4.5:MASSESRADII_4_5GYR} if age not in MR: print('given age not in Fortney 2007, returning...') return massradius = MR[age] if (planetdist in massradius) and (coremass in massradius[planetdist]): print('getting % Gyr M-R for planet dist %s AU, ' 'core mass %s Mearth...' % (age, planetdist, coremass)) massradrelation = massradius[planetdist][coremass] outdict = {'mass':array(massradrelation[mass]), 'radius':array(massradrelation[radius])} return outdict