In [1]:
from IPython.display import HTML
from IPython.display import Image
import os

%pylab
%matplotlib inline
%run ../../utils/load_notebook.py


Using matplotlib backend: Qt5Agg
Populating the interactive namespace from numpy and matplotlib

In [2]:
from photometry import *


importing Jupyter notebook from photometry.ipynb
Using matplotlib backend: Qt5Agg
Populating the interactive namespace from numpy and matplotlib

In [3]:
from instabilities import *


importing Jupyter notebook from instabilities.ipynb
Using matplotlib backend: Qt5Agg
Populating the interactive namespace from numpy and matplotlib

In [4]:
from utils import *


importing Jupyter notebook from utils.ipynb

In [5]:
def label_line(line, label, x, y, color='0.5', size=12):
    """Add a label to a line, at the proper angle.

    Arguments
    ---------
    line : matplotlib.lines.Line2D object,
    label : str
    x : float
        x-position to place center of text (in data coordinated
    y : float
        y-position to place center of text (in data coordinates)
    color : str
    size : float
    """
    xdata, ydata = line.get_data()
    x1 = xdata[0]
    x2 = xdata[-1]
    y1 = ydata[0]
    y2 = ydata[-1]

    ax = line.get_axes()
    text = ax.annotate(label, xy=(x, y), xytext=(-10, 0),
                       textcoords='offset points',
                       size=size, color=color,
                       horizontalalignment='left',
                       verticalalignment='bottom')

    sp1 = ax.transData.transform_point((x1, y1))
    sp2 = ax.transData.transform_point((x2, y2))

    rise = (sp2[1] - sp1[1])
    run = (sp2[0] - sp1[0])

    slope_degrees = np.degrees(np.arctan2(rise, run))
    text.set_rotation(slope_degrees)
    return text

Пример как работать с моделями:


In [6]:
dictionary = np.load('test_short//models//n1167_modelRmax.npy').tolist()

In [7]:
def plot_data_lim(ax, data_lim):
    '''Вертикальная линия, обозначающая конец данных'''
    ax.axvline(x=data_lim, ls='-.', color='black', alpha=0.5)
    
def plot_disc_scale(scale, ax, text=None):
    '''Обозначает масштаб диска'''
    ax.plot([scale, scale], [0., 0.05], '-', lw=6., color='black')
    if text:
        ax.annotate(text, xy=(scale, 0.025), xytext=(scale, 0.065), textcoords='data', arrowprops=dict(arrowstyle="->"))
        
def plot_Q_levels(ax, Qs, style='--', color='grey', alpha=0.4):
    '''Функция, чтобы рисовать горизонтальные линии различных уровней $Q^{-1}$:'''
    for Q in Qs:
        ax.axhline(y=1./Q, ls=style, color=color, alpha=alpha)
        
def plot_2f_vs_1f_(ax=None, total_gas_data=None, epicycl=None, gas_approx=None, sound_vel=None, scale=None, sigma_max=None, sigma_min=None, star_density_max=None, 
                  star_density_min=None, data_lim=None, color=None, alpha=0.3, disk_scales=[], label=None, **kwargs):
    '''Картинка сравнения 2F и 1F критерия для разных фотометрий и величин sig_R, 
    куда подается весь газ, результат НЕ исправляется за осесимметричные возмущения.'''
    
    Qgs = []
    Qss = []
    invQeff_min = []
    for ind, (r, gd) in enumerate(total_gas_data):
        Qgs.append(Qg(epicycl=epicycl[ind], sound_vel=sound_vel, gas_density=gd))
        Qss.append(Qs(epicycl=epicycl[ind], sigma=sigma_max[ind], star_density=star_density_min[ind]))
        qeff = findInvKinemQeffBrentq(Qss[-1], Qgs[-1], sound_vel/sigma_max[ind], np.arange(0.01, 60000., 1.))
        invQeff_min.append(qeff[1])


    Qgs = []
    Qss = []
    invQeff_max = []
    for ind, (r, gd) in enumerate(total_gas_data):
        Qgs.append(Qg(epicycl=epicycl[ind], sound_vel=sound_vel, gas_density=gd))
        Qss.append(Qs(epicycl=epicycl[ind], sigma=sigma_min[ind], star_density=star_density_max[ind]))
        qeff = findInvKinemQeffBrentq(Qss[-1], Qgs[-1], sound_vel/sigma_min[ind], np.arange(0.01, 60000., 1.))
        invQeff_max.append(qeff[1])
           
    rr = zip(*total_gas_data)[0]
    
    ax.fill_between(rr, invQeff_min, invQeff_max, color=color, alpha=alpha, label=label)
    ax.plot(rr, invQeff_min, 'd-', color=color, alpha=0.6)
    ax.plot(rr, invQeff_max, 'd-', color=color, alpha=0.6)
    ax.plot(rr, [1./_ for _ in Qgs], 'v-', color='b')

    ax.set_ylim(0., 1.5)
    ax.set_xlim(0., data_lim+50.)
    plot_data_lim(ax, data_lim)
    for h, annot in disk_scales:
        plot_disc_scale(h, ax, annot)
    plot_Q_levels(ax, [1., 1.5, 2., 3.])
    ax.legend()

In [8]:
plot_2f_vs_1f_(ax=plt.gca(), **dictionary);



In [9]:
dictionary = np.load('test_short//models//n1167_modelRsubmax.npy').tolist()

In [10]:
plot_2f_vs_1f_(ax=plt.gca(), **dictionary);


Считываем все модели


In [11]:
models = {}
for model in os.listdir('test_short//models/'):
    if not model[0].startswith('_'):
        models[model[:-4]] = np.load('test_short//models//'+model).tolist()

In [12]:
models.keys()


Out[12]:
['n5533_modelRzeroH2',
 'n4725_model36max',
 'n5533_modelr',
 'n1167_modelRsubmax',
 'n338_modelB',
 'n3898_modelRmax',
 'n4725_modelHmax',
 'n3898_modelR2dmax',
 'n2985_modelKmax',
 'n1167_modelRmax',
 'n5533_modelRmax',
 'n2985_model36max',
 'n338_modelR',
 'n4258_model36max',
 'n4258_modelImax']

Ставим классику:


In [13]:
import matplotlib as mpl
mpl.style.use('classic')

Меняем цвета на разные


In [14]:
for ind, model in enumerate(models.keys()):
    models[model]['color'] = cm.rainbow(np.linspace(0, 1, 15))[ind]
    
# swap for better look
models['n4258_model36max']['color'], models['n3898_modelRmax']['color'] = models['n3898_modelRmax']['color'], models['n4258_model36max']['color']

Вычисление $Q$:


In [15]:
def calc_Qs(total_gas_data=None, epicycl=None, gas_approx=None, sound_vel=None, scale=None, sigma_max=None, sigma_min=None, star_density_max=None, 
                  star_density_min=None, data_lim=None, color=None, alpha=0.3, disk_scales=[], label=None, sfrange=None, **kwargs):
    
    rr = zip(*total_gas_data)[0]

    Qgs = []
    Qss = []
    invQeff_min = []
    for ind, (r, gd) in enumerate(total_gas_data):
#         print 'r={}'.format(r)
        if type(sound_vel) == list:
            sound_vel_ = sound_vel[ind]
        else:
            sound_vel_ = sound_vel
        Qgs.append(Qg(epicycl=epicycl[ind], sound_vel=sound_vel_, gas_density=gd))
        Qss.append(Qs(epicycl=epicycl[ind], sigma=sigma_max[ind], star_density=star_density_min[ind]))
#         print 'gas_density={}'.format(gd)
#         print 'epicycl={}'.format(epicycl[ind])
#         print 'sigma={}'.format(sigma_max[ind])
#         print 'star_density={}'.format(star_density_min[ind])
#         print 'Qgs={}'.format(Qgs[-1])
#         print 'Qss={}'.format(Qss[-1])
        qeff = findInvKinemQeffBrentq(Qss[-1], Qgs[-1], sound_vel_/sigma_max[ind], np.arange(0.01, 60000., 1.))
        invQeff_min.append(qeff[1])
#         print 'invQeff_min={}'.format(invQeff_min[-1])
        
    invQwff_WS_min = [1./Qg_ + 1./Qs_ for Qg_, Qs_ in zip(Qgs, Qss)]

    Qgs = []
    Qss_max = []
    invQeff_max = []
    for ind, (r, gd) in enumerate(total_gas_data):
        if type(sound_vel) == list:
            sound_vel_ = sound_vel[ind]
        else:
            sound_vel_ = sound_vel
        Qgs.append(Qg(epicycl=epicycl[ind], sound_vel=sound_vel_, gas_density=gd))
        Qss_max.append(Qs(epicycl=epicycl[ind], sigma=sigma_min[ind], star_density=star_density_max[ind]))
#         print 'sigma={}'.format(sigma_min[ind])
#         print 'star_density={}'.format(star_density_max[ind])
#         print 'Qss={}'.format(Qss_max[-1])
        qeff = findInvKinemQeffBrentq(Qss_max[-1], Qgs[-1], sound_vel_/sigma_min[ind], np.arange(0.01, 60000., 1.))
        invQeff_max.append(qeff[1])
#         print 'invQeff_max={}'.format(invQeff_max[-1])
        
    invQwff_WS_max = [1./Qg_ + 1./Qs_ for Qg_, Qs_ in zip(Qgs, Qss_max)]
    
    return Qgs, Qss, Qss_max, invQeff_min, invQeff_max, invQwff_WS_min, invQwff_WS_max


for ind, key in enumerate(models.keys()):
    print key
    model = models[key]
    Qgs, Qss, Qss_max, invQeff_min, invQeff_max, invQeff_WS_min, invQeff_WS_max = calc_Qs(**model)
    model['Qgs'] = Qgs
    model['Qss_min'] = Qss
    model['Qss_max'] = Qss_max
    model['invQeff_min'] = invQeff_min
    model['invQeff_max'] = invQeff_max
    model['invQeff_WS_min'] = invQeff_WS_min
    model['invQeff_WS_max'] = invQeff_WS_max


n5533_modelRzeroH2
n4725_model36max
n5533_modelr
n1167_modelRsubmax
n338_modelB
n3898_modelRmax
n4725_modelHmax
n3898_modelR2dmax
n2985_modelKmax
n1167_modelRmax
n5533_modelRmax
n2985_model36max
n338_modelR
n4258_model36max
n4258_modelImax

Области звездообразования:


In [16]:
def plot_SF_338(ax, y=0):
    ax.plot([5., 60.], [y, y], '-', lw=7., color='red')
    
def plot_SF_1167(ax, y=0):
    ax.plot([16., 40.], [y, y], '-', lw=7., color='b') #GALEX
#     ax.plot([55., 80.], [y, y], '-', lw=7., color='b') #GALEX
    ax.plot([49., 80.], [y, y], '-', lw=7., color='b') #GALEX
#     ax.plot([22., 45.], [y, y], '-', lw=7., color='red') #Halpha
    ax.plot([22., 49.], [y, y], '-', lw=7., color='red') #Halpha
    
def plot_SF_2985(ax, y=0):
    ax.plot([10., 70.], [y, y], '-', lw=7., color='b')
    ax.plot([10., 7.2/(0.102*22.4/21.1)], [y, y], '-', lw=7., color='r') #TODO: исправить менее грубо
    
def plot_SF_3898(ax, y=0):
    ax.plot([70., 80.], [y, y], '-', lw=7., color='red')
    ax.plot([190., 210.], [y, y], '-', lw=7., color='red')
    ax.plot([0., 70.], [y, y], '-', lw=7., color='blue')
    ax.plot([40., 50.], [y, y], '-', lw=7., color='blue') #GALEX
    ax.plot([60., 75.], [y, y], '-', lw=7., color='blue') #GALEX
    
def plot_SF_4258(ax, y=0):
    ax.plot([0., 86./2/(175./600.)], [y, y], '-', lw=7., color='b')
    ax.plot([0., 150*58./180.], [y, y], '-', lw=7., color='r')
    ax.plot([250./2/(175./600.), 260./2/(175./600.)], [y, y], '-', lw=7., color='b') #внешняя спираль
    ax.plot([220./2/(175./600.), 310./2/(175./600.)], [y, y], '-', lw=7., color='b') #внешняя спираль, на глаз
    
def plot_SF_4725(ax, y=0):
    ax.plot([0., 300./238 * 161./4.], [y, y], '-', lw=7., color='red') #очень примерно, потому что в SDSS не видно, но оно там есть
    ax.plot([300./238 * 161./4., 300./238 *268./2.], [y, y], '--', lw=6., color='red', alpha=0.5) #в спитцере видно слабое
    ax.plot([300./238 * 161./2., 300./238 *268./2.], [y, y], '-', lw=7., color='red')
    ax.plot([290./238 *220., 300./238 *240], [y, y], '-', lw=7., color='b') #внешняя спираль, ширина условна
    
def plot_SF_5533(ax, y=0):
    ax.plot([10., 95.], [y, y], '-', lw=7., color='red')
    ax.plot([58.*(60/149.), 78.*(60/149.)], [y, y], '-', lw=7., color='b') #спирали оценил из картинки SDSS с масштабом
    ax.plot([126.*(60/149.), 155.*(60/149.)], [y, y], '-', lw=7., color='b')
    ax.plot([204.*(60/149.), 212.*(60/149.)], [y, y], '-', lw=7., color='b')
    ax.plot([235.*(60/149.), 250.*(60/149.)], [y, y], '-', lw=7., color='b')

SF = {'n338' : plot_SF_338, 'n1167' : plot_SF_1167, 'n2985' : plot_SF_2985, 'n3898' : plot_SF_3898, 'n4258': plot_SF_4258, 'n4725' : plot_SF_4725, 'n5533' : plot_SF_5533}

Полосы и имена:


In [17]:
for ind, name in enumerate(['n338', 'n1167', 'n2985', 'n3898', 'n4258', 'n4725', 'n5533']):
    for key in models.keys():
        if name in key:
            models[key]['name'] = 'NGC '+name[1:]
            models[key]['band'] = models[key]['label'].split(' ')[0]
            if name == 'n338':
                if key == 'n338_modelR':
                    models[key]['band'] = 'R^{sub}'
                else:
                    models[key]['band'] = 'B^{sub}'
            if name == 'n1167':
                if key == 'n1167_modelRsubmax':
                    models[key]['band'] = 'R^{sub}'
                else:
                    models[key]['band'] = 'R^{max}'
            if key == 'n5533_modelr':
                models[key]['band'] = 'r'
            if key == 'n3898_modelRmax':
                models[key]['band'] = 'R^{N}'
            if key == 'n3898_modelR2dmax':
                models[key]['band'] = 'R^{G}'
            if models[key]['band'] in ['S4G', 'SPITZER']:
                models[key]['band'] = '3.6\mu m'
            if key == 'n5533_modelRzeroH2':
                models[key]['band'] = 'R\,(H_2=0)'

Qg vs Qs vs Qeff


In [18]:
fig, (ax, ax2) = plt.subplots(ncols=2, nrows=1, figsize=[20, 10], sharey=True)

for ind, name in enumerate(['n338', 'n1167', 'n2985', 'n3898', 'n4258', 'n4725', 'n5533']):
    for key in models.keys():
        if name in key:
            color = models[key]['color']
            model = models[key]
            
            alpha_ = 0.5
            
            ax.scatter(map(lambda l: 1/l, model['Qgs']), map(lambda l: 1/l, model['Qss_min']), map(lambda l: 2000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax.scatter(map(lambda l: 1/l, model['Qgs']), map(lambda l: 1/l, model['Qss_max']), map(lambda l: 2000./l[0], model['total_gas_data']), marker='s', color=color, alpha=alpha_)
            ax2.scatter(model['invQeff_min'], map(lambda l: 1/l, model['Qss_min']), map(lambda l: l[0]/2., model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax2.scatter(model['invQeff_max'], map(lambda l: 1/l, model['Qss_max']), map(lambda l: l[0]/2., model['total_gas_data']), marker='s', color=color, alpha=alpha_)
            
#             model['Qgs'] = Qgs
#             model['Qss_min'] = Qss
#             model['Qss_max'] = Qss_max
#             model['invQeff_min'] = invQeff_min
#             model['invQeff_max'] = invQeff_max
#             model['invQwff_WS_min'] = invQwff_WS_min
#             model['invQwff_WS_max'] = invQwff_WS_max
            
            ax.plot([-1, -2], [-1, -2], '-', color=color, label=r'$\rm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=6, alpha=alpha_)
            ax2.plot([-1, -2], [-1, -2], '-', color=color, label=r'$\rm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=6, alpha=alpha_)
            
# ax.legend(loc='lower right')
ax.set_xlim(0, 1.6)
ax.set_ylim(0, 1.05)
ax.set_ylabel(r'$Q_{s}^{-1}$', fontsize=30)
ax.set_xlabel(r'$Q_{g}^{-1}$', fontsize=30)
ax.grid()

ax2.legend(loc='upper left', fontsize=16)
ax2.set_xlim(0, 1.6)
# ax2.set_ylim(0, 1.05)
ax2.set_xlabel(r'$Q_{eff}^{-1}$', fontsize=30)
# ax2.set_ylabel(r'$Q_{s}^{-1}$', fontsize=30)
ax2.grid()

# for _ in np.linspace(1., 2., 5):
       
#     line, = ax.plot([0., _*2], [0., 2.0], '--', alpha=0.3, color='gray')
#     label_line(line, 'y={:2.2f}x'.format(1./_), 0.8*_, 0.8, color='black')
    
#     line2, = ax.plot([0., 1.0], [0., _], '--', alpha=0.3, color='gray')
#     label_line(line2, 'y={:2.2f}x'.format(_), 0.8/_, 0.8, color='black')
# #     print np.arctan(1./_)*(180./np.pi)
# #     ax.text(0.8*_, 0.8, 'y={}x'.format(_), rotation=np.arctan(1./_)*(180./np.pi))

ax.plot([0., 2.0], [0., 2.0], '--', alpha=0.9, color='gray', lw=3)
ax2.plot([0., 2.0], [0., 2.0], '--', alpha=0.9, color='gray', lw=3)

line, = ax2.plot([0., 2/0.89], [0., 2.0], '--', alpha=0.5, color='gray', lw=2.)
label_line(line, 'y={:2.2f}x'.format(0.935), 0.9/0.935, 0.9, color='black')

plt.setp(ax2.get_xticklabels()[0], visible=False)

plt.tight_layout(pad=0.1, w_pad=0.1, h_pad=0.1)
fig.subplots_adjust(wspace=0.01, hspace=0.02)
plt.savefig(paper_imgs_dir+'Qs_vs_Qg_vs_Qeff.eps', format='eps', bbox_inches='tight')
plt.savefig(paper_imgs_dir+'Qs_vs_Qg_vs_Qeff.png', format='png', bbox_inches='tight')
plt.savefig(paper_imgs_dir+'Qs_vs_Qg_vs_Qeff.pdf', format='pdf', dpi=150, bbox_inches='tight')

plt.show()


C:\Anaconda\lib\site-packages\matplotlib\artist.py:233: MatplotlibDeprecationWarning: get_axes has been deprecated in mpl 1.5, please use the
axes property.  A removal date has not been set.
  stacklevel=1)

In [19]:
fig, (ax, ax2) = plt.subplots(ncols=2, nrows=1, figsize=[20, 10], sharey=True)

for ind, name in enumerate(['n338', 'n1167', 'n2985', 'n3898', 'n4258', 'n4725', 'n5533']):
    for key in models.keys():
        if name in key:
            color = models[key]['color']
            model = models[key]
            
            alpha_ = 0.5
            
            ax.scatter(map(lambda l: 1/l, model['Qss_min']), map(lambda l: 1/l, model['Qgs']), map(lambda l: 2000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax.scatter(map(lambda l: 1/l, model['Qss_max']), map(lambda l: 1/l, model['Qgs']), map(lambda l: 2000./l[0], model['total_gas_data']), marker='s', color=color, alpha=alpha_)
            ax2.scatter(model['invQeff_min'], map(lambda l: 1/l, model['Qgs']), map(lambda l: l[0]/2., model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax2.scatter(model['invQeff_max'], map(lambda l: 1/l, model['Qgs']), map(lambda l: l[0]/2., model['total_gas_data']), marker='s', color=color, alpha=alpha_)
            
#             model['Qgs'] = Qgs
#             model['Qss_min'] = Qss
#             model['Qss_max'] = Qss_max
#             model['invQeff_min'] = invQeff_min
#             model['invQeff_max'] = invQeff_max
#             model['invQwff_WS_min'] = invQwff_WS_min
#             model['invQwff_WS_max'] = invQwff_WS_max
            
            ax.plot([-1, -2], [-1, -2], '-', color=color, label=r'$\rm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=6, alpha=alpha_)
            ax2.plot([-1, -2], [-1, -2], '-', color=color, label=r'$\rm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=6, alpha=alpha_)
            
# ax.legend(loc='lower right')
ax.set_xlim(0, 1.05)
ax.set_ylim(0, 1.6)
ax.set_ylabel(r'$Q_{g}^{-1}$', fontsize=30)
ax.set_xlabel(r'$Q_{s}^{-1}$', fontsize=30)
ax.grid()

ax2.legend(loc='upper left', fontsize=16)
ax2.set_xlim(0, 1.6)
# ax2.set_ylim(0, 1.05)
ax2.set_xlabel(r'$Q_{eff}^{-1}$', fontsize=30)
# ax2.set_ylabel(r'$Q_{s}^{-1}$', fontsize=30)
ax2.grid()

# for _ in np.linspace(1., 2., 5):
       
#     line, = ax.plot([0., _*2], [0., 2.0], '--', alpha=0.3, color='gray')
#     label_line(line, 'y={:2.2f}x'.format(1./_), 0.8*_, 0.8, color='black')
    
#     line2, = ax.plot([0., 1.0], [0., _], '--', alpha=0.3, color='gray')
#     label_line(line2, 'y={:2.2f}x'.format(_), 0.8/_, 0.8, color='black')
# #     print np.arctan(1./_)*(180./np.pi)
# #     ax.text(0.8*_, 0.8, 'y={}x'.format(_), rotation=np.arctan(1./_)*(180./np.pi))

ax.plot([0., 2.0], [0., 2.0], '--', alpha=0.9, color='gray', lw=3)
ax2.plot([0., 2.0], [0., 2.0], '--', alpha=0.9, color='gray', lw=3)

# line, = ax2.plot([0., 2/0.89], [0., 2.0], '--', alpha=0.5, color='gray', lw=2.)
# label_line(line, 'y={:2.2f}x'.format(0.935), 0.9/0.935, 0.9, color='black')

plt.setp(ax2.get_xticklabels()[0], visible=False)

plt.tight_layout(pad=0.1, w_pad=0.1, h_pad=0.1)
fig.subplots_adjust(wspace=0.01, hspace=0.02)
# plt.savefig(paper_imgs_dir+'Qs_vs_Qg_vs_Qeff.eps', format='eps', bbox_inches='tight')
# plt.savefig(paper_imgs_dir+'Qs_vs_Qg_vs_Qeff.png', format='png', bbox_inches='tight')
# plt.savefig(paper_imgs_dir+'Qs_vs_Qg_vs_Qeff.pdf', format='pdf', dpi=150, bbox_inches='tight')

plt.show()


Qeff vs Q_WS vs Q_RF

Подготовка


In [20]:
for ind, key in enumerate(models.keys()):
    print key
    model = models[key]
    model['r_g_dens'] = zip(*model['total_gas_data'])[0]
    model['HI_gas_dens'] = [l[0][1]/He_coeff - l[1] for l in zip(model['total_gas_data'], model['CO'])]
    model['CO_gas_dens'] = model['CO']
    model['star_density'] = model['star_density_min']
    model['sigma_R_max'] = model['sigma_max']
    model['sigma_R_min'] = model['sigma_min']
    model['sound_vel_CO'] = model['sound_vel']
    model['sound_vel_HI'] = model['sound_vel']


n5533_modelRzeroH2
n4725_model36max
n5533_modelr
n1167_modelRsubmax
n338_modelB
n3898_modelRmax
n4725_modelHmax
n3898_modelR2dmax
n2985_modelKmax
n1167_modelRmax
n5533_modelRmax
n2985_model36max
n338_modelR
n4258_model36max
n4258_modelImax

Трехкомпонентная версия с одинаковой дисперсией равной $c$:


In [21]:
# from math import pi

# def romeo_Qinv(r=None, epicycl=None, sound_vel=None, sound_vel_CO=6., sound_vel_HI=11., sigma_R=None, star_density=None, 
#                HI_density=None, CO_density=None, alpha=None, verbose=False, thin=True, He_corr=False):
#     '''Возвращает приближение Q из Romeo&Falstad(2013), оно же трехкомпонентное Romeo&Wiegert(2011) и наиболее неустойчивую компоненту.'''
#     G = 4.32
#     kappa = epicycl
    
#     if not He_corr:
#         CO_density = He_coeff*CO_density
#         HI_density = He_coeff*HI_density
        
#     if sound_vel is not None:
#         sound_vel_CO=sound_vel
#         sound_vel_HI=sound_vel
        
#     Q_star = kappa*sigma_R/(pi*G*star_density) # не 3.36
#     Q_CO = kappa*sound_vel_CO/(pi*G*CO_density)
#     Q_HI = kappa*sound_vel_HI/(pi*G*HI_density)
#     if not thin:
#         T_CO, T_HI = 1.5, 1.5
#         if alpha > 0 and alpha <= 0.5:
#             T_star = 1. + 0.6*alpha**2
#         else:
#             T_star = 0.8 + 0.7*alpha
#     else:
#         T_CO, T_HI, T_star = 1., 1., 1.
#     dispersions = [sigma_R, sound_vel_HI, sound_vel_CO]
# #     print dispersions
#     QTs = [Q_star*T_star, Q_HI*T_HI, Q_CO*T_CO]
#     components = ['star', 'HI', 'H2']
#     mindex = QTs.index(min(QTs))
    
#     if verbose:
#         print 'QTs: {}'.format(QTs)
#         print 'min index: {}'.format(mindex)
#         print 'min component: {}'.format(components[mindex])
    
#     sig_m = dispersions[mindex]
#     def W_i(sig_m, sig_i):
# #         print sig_m, sig_i
#         return 2*sig_m*sig_i/(sig_m**2 + sig_i**2)
    
#     if verbose:
#         print 'Ws/TQs={:5.3f} WHI/TQHI={:5.3f} WCO/TQCO={:5.3f}'.format(W_i(sig_m, dispersions[0])/QTs[0], W_i(sig_m, dispersions[1])/QTs[1], W_i(sig_m, dispersions[2])/QTs[2])
#         print 'Ws={:5.3f} WHI={:5.3f} WCO={:5.3f}'.format(W_i(sig_m, dispersions[0]), W_i(sig_m, dispersions[1]), W_i(sig_m, dispersions[2]))
#         print 'THI = {:5.3f} QHI={:5.3f}'.format(T_HI, Q_HI)
        
#     return W_i(sig_m, dispersions[0])/QTs[0] + W_i(sig_m, dispersions[1])/QTs[1] + W_i(sig_m, dispersions[2])/QTs[2], components[mindex]

In [22]:
def plot_RF13_vs_2F_(r_g_dens=None, HI_gas_dens=None, CO_gas_dens=None, epicycl=None, sound_vel_CO=6., sound_vel_HI=11., sound_vel=None, sigma_R_max=None, sigma_R_min=None,  
           star_density=None, alpha_max=None, alpha_min=None, thin=True, verbose=False, scale=None, gas_approx=None, invQeff_min=None, invQeff_max=None, **kwargs):
    '''Плотности газа передаются не скорр. за гелий.'''
           
    fig = plt.figure(figsize=[20, 5])
    ax = plt.subplot(131)
    
    totgas = zip(r_g_dens, [He_coeff*(l[0]+l[1]) for l in zip(HI_gas_dens, CO_gas_dens)])[1:]
    
    if sound_vel is not None:
        sound_vel_CO=sound_vel
        sound_vel_HI=sound_vel
    
    if verbose:
        print 'sig_R_max case:'
    romeo_min = []
    for ind, (r, g, co) in enumerate(zip(r_g_dens, HI_gas_dens, CO_gas_dens)):
        rom, _ = romeo_Qinv(r=r, epicycl=epicycl[ind], sound_vel=sound_vel, sigma_R=sigma_R_max[ind], 
               star_density=star_density[ind], HI_density=He_coeff*g, CO_density=He_coeff*co, 
                         alpha=alpha_min, verbose=False, He_corr=True, thin=thin)
        romeo_min.append(rom)
        if _ == 'star':
            color = 'g' 
        elif _ == 'HI':
            color = 'b'
        else:
            color = 'm'
        ax.scatter(r, rom, 10, marker='o', color=color)


#     invQg, invQs, invQeff_min = zip(*get_invQeff_from_data(gas_data=totgas, 
#                                     epicycl=epicycl[ind], 
#                                     gas_approx=gas_approx,
#                                     sound_vel=sound_vel, 
#                                     scale=scale,
#                                     sigma=sigma_R_max,
#                                     star_density=star_density[ind]))

    if verbose:
        print 'sig_R_min case:'
    
    romeo_max = []
    for ind, (r, g, co) in enumerate(zip(r_g_dens, HI_gas_dens, CO_gas_dens)):
        rom, _ = romeo_Qinv(r=r, epicycl=epicycl[ind], sound_vel=sound_vel, sigma_R=sigma_R_min[ind], 
               star_density=star_density[ind], HI_density=He_coeff*g, CO_density=He_coeff*co, 
                         alpha=alpha_max, verbose=False, He_corr=True, thin=thin)
        romeo_max.append(rom)
        if _ == 'star':
            color = 'g' 
        elif _ == 'HI':
            color = 'b'
        else:
            color = 'm'
        ax.scatter(r, rom, 10, marker = 's', color=color)


#     invQg, invQs, invQeff_max = zip(*get_invQeff_from_data(gas_data=totgas, 
#                                     epicycl=epicycl, 
#                                     gas_approx=gas_approx,
#                                     sound_vel=sound_vel, 
#                                     scale=scale,
#                                     sigma=sigma_R_min,
#                                     star_density=star_density))

    ax.plot(r_g_dens, invQeff_min, '-', alpha=0.5, color='r')
    ax.plot(r_g_dens, invQeff_max, '-', alpha=0.5, color='r')
    
    plot_Q_levels(ax, [1., 1.5, 2., 3.])
    ax.set_xlim(0)
    ax.set_ylim(0)
    ax.legend([matplotlib.lines.Line2D([0], [0], linestyle='none', mfc='g', mec='none', marker='o'), 
                      matplotlib.lines.Line2D([0], [0], linestyle='none', mfc='b', mec='none', marker='o'), 
                      matplotlib.lines.Line2D([0], [0], linestyle='none', mfc='m', mec='none', marker='o')], 
                     ['star', 'HI', 'H2'], numpoints=1, markerscale=1, loc='upper right') #add custom legend
    ax.set_title('RF13: major component')
    ax.set_xlim(0., 130.)
    
    ax = plt.subplot(132)
    ax.plot(romeo_min, invQeff_min, 'o')
    ax.plot(romeo_max, invQeff_max, 'o', color='m', alpha=0.5)
    ax.set_xlabel('Romeo')
    ax.set_ylabel('2F')
    ax.set_xlim(0., 1.)
    ax.set_ylim(0., 1.)
    ax.plot(ax.get_xlim(), ax.get_ylim(), '--')
    
    ax = plt.subplot(133)
    ax.plot(r_g_dens, [l[1]/l[0] for l in zip(romeo_min, invQeff_min)], 'o-')
    ax.plot(r_g_dens, [l[1]/l[0] for l in zip(romeo_max, invQeff_max)], 'o-', color='m', alpha=0.5)
    ax.set_xlabel('R')
    ax.set_ylabel('[2F]/[Romeo]')
    ax.set_xlim(0., 130.)
    ax.set_ylim(1., 1.5);

In [23]:
for ind, key in enumerate(models.keys()):
    print key
    model = models[key]   
    plot_RF13_vs_2F_(r_g_dens=model['r_g_dens'], HI_gas_dens=model['HI_gas_dens'], CO_gas_dens=model['CO_gas_dens'], 
                epicycl=model['epicycl'], sound_vel=model['sound_vel'], sigma_R_max=model['sigma_R_max'], sigma_R_min=model['sigma_R_min'],  
                star_density=model['star_density'], 
                alpha_max=0.7, alpha_min=0.3, scale=model['scale'], gas_approx=model['gas_approx'], thin=True, invQeff_min=model['invQeff_min'], invQeff_max=model['invQeff_max'])
#     plot_RF13_vs_2F(alpha_max=0.7, alpha_min=0.3, thin=True, **model)
    plt.show()


n5533_modelRzeroH2
n4725_model36max
n5533_modelr
n1167_modelRsubmax
n338_modelB
n3898_modelRmax
n4725_modelHmax
n3898_modelR2dmax
n2985_modelKmax
n1167_modelRmax
n5533_modelRmax
n2985_model36max
n338_modelR
n4258_model36max
n4258_modelImax

Видно, что отличия существенные - например n2985_model36max.

Двухкомпонентное приближение:


In [24]:
# def romeo_Qinv2(r=None, epicycl=None, sound_vel=None, sigma_R=None, star_density=None, 
#                HI_density=None, CO_density=None, alpha=None, verbose=False, thin=True, He_corr=False, **kwargs):
#     '''Возвращает приближение Q из Romeo&Falstad(2013), оно же трехкомпонентное Romeo&Wiegert(2011) и наиболее неустойчивую компоненту.'''
#     G = 4.32
#     kappa = epicycl
    
#     if not He_corr:
#         CO_density_ = He_coeff*CO_density
#         HI_density_ = He_coeff*HI_density
#     else:
#         CO_density_ = CO_density
#         HI_density_ = HI_density
    
#     gas = CO_density_ + HI_density_
#     Q_star = kappa*sigma_R/(pi*G*star_density) # не 3.36
#     Q_g = kappa*sound_vel/(pi*G*gas)
#     if not thin:
#         T_g = 1.5
#         if alpha > 0 and alpha <= 0.5:
#             T_star = 1. + 0.6*alpha**2
#         else:
#             T_star = 0.8 + 0.7*alpha
#     else:
#         T_g, T_star = 1., 1.
#     dispersions = [sigma_R, sound_vel]
#     QTs = [Q_star*T_star, Q_g*T_g]
#     components = ['star', 'gas']
#     mindex = QTs.index(min(QTs))
    
#     if verbose:
#         print 'QTs: {}'.format(QTs)
#         print 'min index: {}'.format(mindex)
#         print 'min component: {}'.format(components[mindex])
    
#     sig_m = dispersions[mindex]
#     def W_i(sig_m, sig_i):
#         return 2*sig_m*sig_i/(sig_m**2 + sig_i**2)
    
# #     if verbose:
# #         print 'Ws/TQs={:5.3f} WHI/TQHI={:5.3f} WCO/TQCO={:5.3f}'.format(W_i(sig_m, dispersions[0])/QTs[0], W_i(sig_m, dispersions[1])/QTs[1], W_i(sig_m, dispersions[2])/QTs[2])
# #         print 'Ws={:5.3f} WHI={:5.3f} WCO={:5.3f}'.format(W_i(sig_m, dispersions[0]), W_i(sig_m, dispersions[1]), W_i(sig_m, dispersions[2]))
    
#     return W_i(sig_m, dispersions[0])/QTs[0] + W_i(sig_m, dispersions[1])/QTs[1], components[mindex]

In [25]:
def plot_RF13_vs_2F_(r_g_dens=None, HI_gas_dens=None, CO_gas_dens=None, epicycl=None, sound_vel_CO=6., sound_vel_HI=11., sound_vel=None, sigma_R_max=None, sigma_R_min=None,  
           star_density=None, alpha_max=None, alpha_min=None, thin=True, verbose=False, scale=None, gas_approx=None, invQeff_min=None, invQeff_max=None, **kwargs):
    '''Плотности газа передаются не скорр. за гелий.'''
           
    fig = plt.figure(figsize=[20, 5])
    ax = plt.subplot(131)
    
    totgas = zip(r_g_dens, [He_coeff*(l[0]+l[1]) for l in zip(HI_gas_dens, CO_gas_dens)])[1:]
    
    if sound_vel is not None:
        sound_vel_CO=sound_vel
        sound_vel_HI=sound_vel
    
    if verbose:
        print 'sig_R_max case:'
    romeo_min = []
    for ind, (r, g, co) in enumerate(zip(r_g_dens, HI_gas_dens, CO_gas_dens)):
        rom, _ = romeo_Qinv2(r=r, epicycl=epicycl[ind], sound_vel=sound_vel, sigma_R=sigma_R_max[ind], 
               star_density=star_density[ind], HI_density=He_coeff*g, CO_density=He_coeff*co, 
                         alpha=alpha_min, verbose=verbose, He_corr=True, thin=thin)
        romeo_min.append(rom)
        if _ == 'star':
            color = 'g' 
        elif _ == 'HI':
            color = 'b'
        else:
            color = 'm'
        ax.scatter(r, rom, 10, marker='o', color=color)


#     invQg, invQs, invQeff_min = zip(*get_invQeff_from_data(gas_data=totgas, 
#                                     epicycl=epicycl[ind], 
#                                     gas_approx=gas_approx,
#                                     sound_vel=sound_vel, 
#                                     scale=scale,
#                                     sigma=sigma_R_max,
#                                     star_density=star_density[ind]))

    if verbose:
        print 'sig_R_min case:'
    
    romeo_max = []
    for ind, (r, g, co) in enumerate(zip(r_g_dens, HI_gas_dens, CO_gas_dens)):
        rom, _ = romeo_Qinv2(r=r, epicycl=epicycl[ind], sound_vel=sound_vel, sigma_R=sigma_R_min[ind], 
               star_density=star_density[ind], HI_density=He_coeff*g, CO_density=He_coeff*co, 
                         alpha=alpha_max, verbose=verbose, He_corr=True, thin=thin)
        romeo_max.append(rom)
        if _ == 'star':
            color = 'g' 
        elif _ == 'HI':
            color = 'b'
        else:
            color = 'm'
        ax.scatter(r, rom, 10, marker = 's', color=color)


#     invQg, invQs, invQeff_max = zip(*get_invQeff_from_data(gas_data=totgas, 
#                                     epicycl=epicycl, 
#                                     gas_approx=gas_approx,
#                                     sound_vel=sound_vel, 
#                                     scale=scale,
#                                     sigma=sigma_R_min,
#                                     star_density=star_density))

    ax.plot(r_g_dens, invQeff_min, '-', alpha=0.5, color='r')
    ax.plot(r_g_dens, invQeff_max, '-', alpha=0.5, color='r')
    
    plot_Q_levels(ax, [1., 1.5, 2., 3.])
    ax.set_xlim(0)
    ax.set_ylim(0)
    ax.legend([matplotlib.lines.Line2D([0], [0], linestyle='none', mfc='g', mec='none', marker='o'), 
                      matplotlib.lines.Line2D([0], [0], linestyle='none', mfc='b', mec='none', marker='o'), 
                      matplotlib.lines.Line2D([0], [0], linestyle='none', mfc='m', mec='none', marker='o')], 
                     ['star', 'HI', 'H2'], numpoints=1, markerscale=1, loc='upper right') #add custom legend
    ax.set_title('RF13: major component')
    ax.set_xlim(0., 130.)
    
    ax = plt.subplot(132)
    ax.plot(romeo_min, invQeff_min, 'o')
    ax.plot(romeo_max, invQeff_max, 'o', color='m', alpha=0.5)
    ax.set_xlabel('Romeo')
    ax.set_ylabel('2F')
    ax.set_xlim(0., 1.)
    ax.set_ylim(0., 1.)
    ax.plot(ax.get_xlim(), ax.get_ylim(), '--')
    
    ax = plt.subplot(133)
    ax.plot(r_g_dens, [l[1]/l[0] for l in zip(romeo_min, invQeff_min)], 'o-')
    ax.plot(r_g_dens, [l[1]/l[0] for l in zip(romeo_max, invQeff_max)], 'o-', color='m', alpha=0.5)
    ax.set_xlabel('R')
    ax.set_ylabel('[2F]/[Romeo]')
    ax.set_xlim(0., 130.)
    ax.set_ylim(1., 1.5);

In [26]:
for ind, key in enumerate(models.keys()):
    print key
    model = models[key]   
    plot_RF13_vs_2F_(r_g_dens=model['r_g_dens'], HI_gas_dens=model['HI_gas_dens'], CO_gas_dens=model['CO_gas_dens'], 
                epicycl=model['epicycl'], sound_vel=model['sound_vel'], sigma_R_max=model['sigma_R_max'], sigma_R_min=model['sigma_R_min'],  
                star_density=model['star_density'], 
                alpha_max=0.7, alpha_min=0.3, scale=model['scale'], gas_approx=model['gas_approx'], thin=True, invQeff_min=model['invQeff_min'], invQeff_max=model['invQeff_max'])
#     plot_RF13_vs_2F(alpha_max=0.7, alpha_min=0.3, thin=True, **model)
    plt.show()


n5533_modelRzeroH2
n4725_model36max
n5533_modelr
n1167_modelRsubmax
n338_modelB
n3898_modelRmax
n4725_modelHmax
n3898_modelR2dmax
n2985_modelKmax
n1167_modelRmax
n5533_modelRmax
n2985_model36max
n338_modelR
n4258_model36max
n4258_modelImax

RW WS картинка

Двухкомпонентная приближает хорошо, ее в данном случае и будем использовать.


In [27]:
def calc_romeo_Q(r_g_dens=None, HI_gas_dens=None, CO_gas_dens=None, epicycl=None, sound_vel=None, sound_vel_CO=6., sound_vel_HI=11., sigma_R_max=None, sigma_R_min=None,  
           star_density=None, alpha_max=None, alpha_min=None, scale=None, gas_approx=None, thin=True, show=False, color=None, **kwargs):    
            
    totgas = zip(r_g_dens, [He_coeff*(l[0]+l[1]) for l in zip(HI_gas_dens, CO_gas_dens)])

    romeo_min = []
    for ind, (r, g, co) in enumerate(zip(r_g_dens, HI_gas_dens, CO_gas_dens)):
        rom, _ = romeo_Qinv2(r=r, epicycl=epicycl[ind], sound_vel=sound_vel, sound_vel_CO=sound_vel, sound_vel_HI=sound_vel, sigma_R=sigma_R_max[ind], 
               star_density=star_density[ind], HI_density=He_coeff*g, CO_density=He_coeff*co, alpha=alpha_min, thin=thin, He_corr=True)
        romeo_min.append(rom)

    
    romeo_max = []
    for ind, (r, g, co) in enumerate(zip(r_g_dens, HI_gas_dens, CO_gas_dens)):
        rom, _ = romeo_Qinv2(r=r, epicycl=epicycl[ind], sound_vel=sound_vel, sound_vel_CO=sound_vel, sound_vel_HI=sound_vel, sigma_R=sigma_R_min[ind], 
               star_density=star_density[ind], HI_density=He_coeff*g, CO_density=He_coeff*co, alpha=alpha_max, thin=thin, He_corr=True)
        romeo_max.append(rom)
    
    return romeo_min, romeo_max

for ind, key in enumerate(models.keys()):
    print key
    model = models[key]
    romeo_min, romeo_max = calc_romeo_Q(alpha_max=0.7, alpha_min=0.3, **model)
    model['romeo_min'] = romeo_min
    model['romeo_max'] = romeo_max


n5533_modelRzeroH2
n4725_model36max
n5533_modelr
n1167_modelRsubmax
n338_modelB
n3898_modelRmax
n4725_modelHmax
n3898_modelR2dmax
n2985_modelKmax
n1167_modelRmax
n5533_modelRmax
n2985_model36max
n338_modelR
n4258_model36max
n4258_modelImax

In [29]:
inverse = lambda l: 1./l
fig, (ax, ax2) = plt.subplots(ncols=2, nrows=1, figsize=[20, 8], sharey=True)

ax.plot([0., 7.0], [0., 7.0], '--', alpha=0.9, color='gray', lw=5)
ax2.plot([0., 7.0], [0., 7.0], '--', alpha=0.9, color='gray', lw=5)

WS_ratio = []
RW_ratio = []

for ind, name in enumerate(['n338', 'n1167', 'n2985', 'n3898', 'n4258', 'n4725', 'n5533']):
    for key in models.keys():
        if name in key:
            print key
            model = models[key]
            color = model['color']
            romeo_min = model['romeo_min']
            romeo_max = model['romeo_max']
            
            invQwff_WS_min = model['invQeff_WS_min']
            invQwff_WS_max = model['invQeff_WS_max']
            
            invQeff_min = model['invQeff_min']
            invQeff_max = model['invQeff_max']
            
            alpha_ = 0.9
            
            ax2.scatter(map(inverse,romeo_min), map(inverse, invQeff_min), 
                        map(lambda l: 4000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax2.scatter(map(inverse,romeo_max), map(inverse,invQeff_max), 
                        map(lambda l: 4000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax.scatter(map(inverse,invQwff_WS_min), map(inverse,invQeff_min), 
                       map(lambda l: 4000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax.scatter(map(inverse,invQwff_WS_max), map(inverse,invQeff_max), 
                       map(lambda l: 4000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            
            RW_ratio.extend([l[0]/l[1] for l in zip(map(inverse,romeo_min), map(inverse, invQeff_min))])
            RW_ratio.extend([l[0]/l[1] for l in zip(map(inverse,romeo_max), map(inverse,invQeff_max))])
            WS_ratio.extend([l[0]/l[1] for l in zip(map(inverse,invQwff_WS_min), map(inverse,invQeff_min))])
            WS_ratio.extend([l[0]/l[1] for l in zip(map(inverse,invQwff_WS_max), map(inverse,invQeff_max))])
            
            if name in ['n338', 'n1167', 'n2985', 'n3898']:
                ax.plot([-1, -2], [-1, -2], '-', color=color, 
                        label=r'$\mathrm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=9, alpha=alpha_)
            else:
                ax2.plot([-1, -2], [-1, -2], '-', color=color, 
                         label=r'$\mathrm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=9, alpha=alpha_)
            
# ax.legend(loc='lower right')
ax.set_xlim(0, 7.0)
ax.set_ylim(0, 7.0)
ax.set_ylabel(r'$Q_\mathrm{eff}$', fontsize=32)
ax.set_xlabel(r'$Q_\mathrm{WS}$', fontsize=32)
ax.grid()
for tick in ax.yaxis.get_major_ticks():
    tick.label.set_fontsize(25)
for tick in ax.xaxis.get_major_ticks():
    tick.label.set_fontsize(25)

ax2.legend(loc='upper left', fontsize=19.5)
ax.legend(loc='lower right', fontsize=19.5)

ax2.set_xlim(0, 7.)
ax2.set_ylim(0, 7.)
# ax2.set_ylabel(r'$Q_{eff}^{-1}$', fontsize=30)
ax2.set_xlabel(r'$Q_\mathrm{RW}$', fontsize=32)
ax2.grid()
for tick in ax2.yaxis.get_major_ticks():
    tick.label.set_fontsize(25)
for tick in ax2.xaxis.get_major_ticks():
    tick.label.set_fontsize(25)

# for _ in np.linspace(1.5, 2., 2):
for _ in [2.]:
       
#     line, = ax2.plot([0., _*2], [0., 2.0], '--', alpha=0.3, color='gray', lw=2.)
#     label_line(line, 'y={:2.2f}x'.format(1./_), 0.8*_, 0.8, color='black', size=18)
    
    line2, = ax.plot([0., 7.0], [0., _*7], '--', alpha=0.3, color='gray', lw=2.)
    label_line(line2, 'y={:2.1f}x'.format(_), 4./_, 4., color='black', size=25)

# line, = ax2.plot([0., 0.88*2], [0., 2.0], '--', alpha=0.5, color='gray', lw=2.)
# label_line(line, 'y={:2.2f}x'.format(1./0.88), 1.2*0.88, 1.2, color='black')


# plt.setp(ax2.get_xticklabels()[0], visible=False)

# plt.tight_layout(pad=0.1, w_pad=0.1, h_pad=0.1)
fig.subplots_adjust(wspace=0.05, hspace=0.02)

plt.savefig(paper_imgs_dir+'Qeff_vs_QWS_vs_QRF.eps', format='eps', bbox_inches='tight')
plt.savefig(paper_imgs_dir+'Qeff_vs_QWS_vs_QRF.png', format='png', bbox_inches='tight')
plt.savefig(paper_imgs_dir+'Qeff_vs_QWS_vs_QRF.pdf', format='pdf', dpi=150, bbox_inches='tight')

plt.show()


n338_modelB
n338_modelR
n1167_modelRsubmax
n1167_modelRmax
n2985_modelKmax
n2985_model36max
n3898_modelRmax
n3898_modelR2dmax
n4258_model36max
n4258_modelImax
n4725_model36max
n4725_modelHmax
n5533_modelRzeroH2
n5533_modelr
n5533_modelRmax

In [43]:
plt.plot(range(len(WS_ratio)), WS_ratio, 'o')
plt.plot(range(len(RW_ratio)), RW_ratio, 's')
plt.ylim(0.49, 1.1)
plt.axhline(y=1.065, alpha=0.3)


Out[43]:
<matplotlib.lines.Line2D at 0x13eeecc0>

In [36]:
max(RW_ratio), min(WS_ratio)


Out[36]:
(1.068511301759155, 0.55549862610462275)

In [38]:
from sklearn.metrics import mean_squared_error
from math import sqrt

rms = sqrt(mean_squared_error([1. for _ in range(len(RW_ratio))], RW_ratio))
print rms

rms = sqrt(mean_squared_error([1. for _ in range(len(WS_ratio))], WS_ratio))
print rms


0.0332328531868
0.278012023644

In [ ]:

Одинаковые маркеры для верхней и нижней оценки (EDIT: теперь выше тоже):


In [29]:
fig, (ax, ax2) = plt.subplots(ncols=2, nrows=1, figsize=[20, 8], sharey=True)

ax.plot([0., 2.0], [0., 2.0], '--', alpha=0.9, color='gray', lw=5)
ax2.plot([0., 2.0], [0., 2.0], '--', alpha=0.9, color='gray', lw=5)

for ind, name in enumerate(['n338', 'n1167', 'n2985', 'n3898', 'n4258', 'n4725', 'n5533']):
    for key in models.keys():
        if name in key:
            print key
            model = models[key]
            color = model['color']
            romeo_min = model['romeo_min']
            romeo_max = model['romeo_max']
            
            invQwff_WS_min = model['invQeff_WS_min']
            invQwff_WS_max = model['invQeff_WS_max']
            
            invQeff_min = model['invQeff_min']
            invQeff_max = model['invQeff_max']
            
            alpha_ = 0.9
            
            ax2.scatter(romeo_min, invQeff_min, map(lambda l: 4000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax2.scatter(romeo_max, invQeff_max, map(lambda l: 4000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax.scatter(invQwff_WS_min, invQeff_min, map(lambda l: 4000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax.scatter(invQwff_WS_max, invQeff_max, map(lambda l: 4000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            
            ax.plot([-1, -2], [-1, -2], '-', color=color, label=r'$\mathrm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=9, alpha=alpha_)
            ax2.plot([-1, -2], [-1, -2], '-', color=color, label=r'$\mathrm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=9, alpha=alpha_ )
            
# ax.legend(loc='lower right')
ax.set_xlim(0, 2.0)
ax.set_ylim(0, 1.6)
ax.set_ylabel(r'$Q_{2F}^{-1}$', fontsize=30)
ax.set_xlabel(r'$Q_{WS}^{-1}$', fontsize=30)
ax.grid()

ax2.legend(loc='lower right', fontsize=17)
ax2.set_xlim(0, 2.0)
ax2.set_ylim(0, 1.6)
# ax2.set_ylabel(r'$Q_{eff}^{-1}$', fontsize=30)
ax2.set_xlabel(r'$Q_{RW}^{-1}$', fontsize=30)
ax2.grid()

for _ in np.linspace(1.5, 2., 2):
       
    line, = ax.plot([0., _*2], [0., 2.0], '--', alpha=0.3, color='gray', lw=2.)
    label_line(line, 'y={:2.2f}x'.format(1./_), 0.8*_, 0.8, color='black')
    
    line2, = ax2.plot([0., 2.0], [0., _*2], '--', alpha=0.3, color='gray', lw=2.)
    label_line(line2, 'y={:2.2f}x'.format(_), 1.2/_, 1.2, color='black')

line, = ax2.plot([0., 0.88*2], [0., 2.0], '--', alpha=0.5, color='gray', lw=2.)
label_line(line, 'y={:2.2f}x'.format(1./0.88), 1.2*0.88, 1.2, color='black')


plt.setp(ax2.get_xticklabels()[0], visible=False)

plt.tight_layout(pad=0.1, w_pad=0.1, h_pad=0.1)
fig.subplots_adjust(wspace=0.01, hspace=0.02)

# plt.savefig(paper_imgs_dir+'Qeff_vs_QWS_vs_QRF.eps', format='eps', bbox_inches='tight')
# plt.savefig(paper_imgs_dir+'Qeff_vs_QWS_vs_QRF.png', format='png', bbox_inches='tight')
# plt.savefig(paper_imgs_dir+'Qeff_vs_QWS_vs_QRF.pdf', format='pdf', dpi=150, bbox_inches='tight')

plt.show()


n338_modelB
n338_modelR
n1167_modelRsubmax
n1167_modelRmax
n2985_modelKmax
n2985_model36max
n3898_modelRmax
n3898_modelR2dmax
n4258_model36max
n4258_modelImax
n4725_model36max
n4725_modelHmax
n5533_modelRzeroH2
n5533_modelr
n5533_modelRmax

Неполные маркеры:


In [30]:
fig, (ax, ax2) = plt.subplots(ncols=2, nrows=1, figsize=[20, 8], sharey=True)

ax.plot([0., 2.0], [0., 2.0], '--', alpha=0.9, color='gray', lw=5)
ax2.plot([0., 2.0], [0., 2.0], '--', alpha=0.9, color='gray', lw=5)

for ind, name in enumerate(['n338', 'n1167', 'n2985', 'n3898', 'n4258', 'n4725', 'n5533']):
    for key in models.keys():
        if name in key:
            print key
            model = models[key]
            color = model['color']
            romeo_min = model['romeo_min']
            romeo_max = model['romeo_max']
            
            invQwff_WS_min = model['invQeff_WS_min']
            invQwff_WS_max = model['invQeff_WS_max']
            
            invQeff_min = model['invQeff_min']
            invQeff_max = model['invQeff_max']
            
            alpha_ = 0.6
            
            ax2.scatter(romeo_min, invQeff_min, map(lambda l: 4000./l[0], model['total_gas_data']), marker='s', color='w', alpha=alpha_, linewidth=4, 
                        edgecolors=matplotlib.colors.colorConverter.to_rgba(color, alpha=alpha_))
            ax2.scatter(romeo_max, invQeff_max, map(lambda l: 4000./l[0], model['total_gas_data']), marker='o', color='w', alpha=alpha_, linewidth=4, 
                        edgecolors=matplotlib.colors.colorConverter.to_rgba(color, alpha=alpha_))
            ax.scatter(invQwff_WS_min, invQeff_min, map(lambda l: 4000./l[0], model['total_gas_data']), marker='^', color='w', alpha=alpha_, linewidth=4, 
                       edgecolors=matplotlib.colors.colorConverter.to_rgba(color, alpha=alpha_))
            ax.scatter(invQwff_WS_max, invQeff_max, map(lambda l: 4000./l[0], model['total_gas_data']), marker='D', color='w', alpha=alpha_, linewidth=4, 
                       edgecolors=matplotlib.colors.colorConverter.to_rgba(color, alpha=alpha_))
            
#             ax2.loglog(romeo_min, invQeff_min, 's', color=color, alpha=alpha_)
#             ax2.loglog(romeo_max, invQeff_max, 'o', color=color, alpha=alpha_)
#             ax.loglog(invQwff_WS_min, invQeff_min, '^', color=color, alpha=alpha_)
#             ax.loglog(invQwff_WS_max, invQeff_max, 'D', color=color, alpha=alpha_)
            
            ax.plot([-1, -2], [-1, -2], '-', color=color, label=r'$\mathrm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=9, alpha=alpha_)
            ax2.plot([-1, -2], [-1, -2], '-', color=color, label=r'$\mathrm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=9, alpha=alpha_ )
            
# ax.legend(loc='lower right')
ax.set_xlim(0, 2.0)
ax.set_ylim(0, 1.6)
ax.set_ylabel(r'$Q_{2F}^{-1}$', fontsize=30)
ax.set_xlabel(r'$Q_{WS}^{-1}$', fontsize=30)
ax.grid()

ax2.legend(loc='lower right', fontsize=17)
ax2.set_xlim(0, 2.0)
ax2.set_ylim(0, 1.6)
# ax2.set_ylabel(r'$Q_{eff}^{-1}$', fontsize=30)
ax2.set_xlabel(r'$Q_{RW}^{-1}$', fontsize=30)
ax2.grid()

for _ in np.linspace(1.5, 2., 2):
       
    line, = ax.plot([0., _*2], [0., 2.0], '--', alpha=0.3, color='gray', lw=2.)
    label_line(line, 'y={:2.2f}x'.format(1./_), 0.8*_, 0.8, color='black')
    
    line2, = ax2.plot([0., 2.0], [0., _*2], '--', alpha=0.3, color='gray', lw=2.)
    label_line(line2, 'y={:2.2f}x'.format(_), 1.2/_, 1.2, color='black')

line, = ax2.plot([0., 0.873*2], [0., 2.0], '--', alpha=0.5, color='gray', lw=2.)
label_line(line, 'y={:2.2f}x'.format(1./0.873), 1.2*0.873, 1.2, color='black')


plt.setp(ax2.get_xticklabels()[0], visible=False)

plt.tight_layout(pad=0.1, w_pad=0.1, h_pad=0.1)
fig.subplots_adjust(wspace=0.01, hspace=0.02)

plt.show()


n338_modelB
n338_modelR
n1167_modelRsubmax
n1167_modelRmax
n2985_modelKmax
n2985_model36max
n3898_modelRmax
n3898_modelR2dmax
n4258_model36max
n4258_modelImax
n4725_model36max
n4725_modelHmax
n5533_modelRzeroH2
n5533_modelr
n5533_modelRmax

Влияние толщины и разных дисперсий - двухкомпонентная с толщиной и трех с дисперсиями, поскольку трех с дисперсиями и толщиной уже представлена в fiducial:


In [31]:
for ind, key in enumerate(models.keys()):
    model = models[key]
    romeo_min, romeo_max = calc_romeo_Q(alpha_max=0.7, alpha_min=0.3, thin=False, **model)
    model['romeo_min_h'] = romeo_min
    model['romeo_max_h'] = romeo_max

In [32]:
def calc_romeo_Q_(r_g_dens=None, HI_gas_dens=None, CO_gas_dens=None, epicycl=None, sound_vel=None, sound_vel_CO=6., sound_vel_HI=11., sigma_R_max=None, sigma_R_min=None,  
           star_density=None, alpha_max=None, alpha_min=None, scale=None, gas_approx=None, thin=True, show=False, color=None, **kwargs):    
            
    totgas = zip(r_g_dens, [He_coeff*(l[0]+l[1]) for l in zip(HI_gas_dens, CO_gas_dens)])

    romeo_min = []
    for ind, (r, g, co) in enumerate(zip(r_g_dens, HI_gas_dens, CO_gas_dens)):
        rom, _ = romeo_Qinv(r=r, epicycl=epicycl[ind], sound_vel_CO=sound_vel, sound_vel_HI=sound_vel, sigma_R=sigma_R_max[ind], 
               star_density=star_density[ind], HI_density=He_coeff*g, CO_density=He_coeff*co, alpha=alpha_min, thin=thin, He_corr=True)
        romeo_min.append(rom)

    
    romeo_max = []
    for ind, (r, g, co) in enumerate(zip(r_g_dens, HI_gas_dens, CO_gas_dens)):
        rom, _ = romeo_Qinv(r=r, epicycl=epicycl[ind], sound_vel_CO=sound_vel, sound_vel_HI=sound_vel, sigma_R=sigma_R_min[ind], 
               star_density=star_density[ind], HI_density=He_coeff*g, CO_density=He_coeff*co, alpha=alpha_max, thin=thin, He_corr=True)
        romeo_max.append(rom)
    
    return romeo_min, romeo_max

for ind, key in enumerate(models.keys()):
    model = models[key]
    model['sound_vel_CO'] = 6.
    model['sound_vel_HI'] = 11.
    romeo_min, romeo_max = calc_romeo_Q_(alpha_max=0.7, alpha_min=0.3, thin=True, **model)
    model['romeo_min_11'] = romeo_min
    model['romeo_max_11'] = romeo_max

In [33]:
fig, (ax, ax2) = plt.subplots(ncols=2, nrows=1, figsize=[20, 8], sharey=True)

ax.plot([0., 2.0], [0., 2.0], '--', alpha=0.9, color='gray', lw=5)
ax2.plot([0., 2.0], [0., 2.0], '--', alpha=0.9, color='gray', lw=5)

for ind, name in enumerate(['n338', 'n1167', 'n2985', 'n3898', 'n4258', 'n4725', 'n5533']):
# for ind, name in enumerate(['n338']):
    for key in models.keys():
        if name in key:
            print key
            model = models[key]
            color = model['color']
            romeo_min_h = model['romeo_min_h']
            romeo_max_h = model['romeo_max_h']
            
            romeo_min_11 = model['romeo_min_11']
            romeo_max_11 = model['romeo_max_11']
            
            invQeff_min = model['invQeff_min']
            invQeff_max = model['invQeff_max']
            
            alpha_ = 0.9
            
            ax.scatter(romeo_min_h, invQeff_min, map(lambda l: 4000./l[0], model['total_gas_data']), marker='s', color=color, alpha=alpha_)
            ax.scatter(romeo_max_h, invQeff_max, map(lambda l: 4000./l[0], model['total_gas_data']), marker='o', color=color, alpha=alpha_)
            ax2.scatter(romeo_min_11, invQeff_min, map(lambda l: 4000./l[0], model['total_gas_data']), marker='^', color=color, alpha=alpha_)
            ax2.scatter(romeo_max_11, invQeff_max, map(lambda l: 4000./l[0], model['total_gas_data']), marker='D', color=color, alpha=alpha_)
            
            ax.plot([-1, -2], [-1, -2], '-', color=color, label=r'$\mathrm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=9, alpha=alpha_)
            ax2.plot([-1, -2], [-1, -2], '-', color=color, label=r'$\mathrm{NGC\, '+name[1:]+'}\:\: ' + model['band'] + '$', lw=9, alpha=alpha_ )
            
# ax.legend(loc='lower right')
ax.set_xlim(0, 2.0)
ax.set_ylim(0, 1.6)
ax.set_ylabel(r'$Q_{2F}^{-1}$', fontsize=30)
ax.set_xlabel(r'$Q_{RW, thick}^{-1}$', fontsize=30)
ax.grid()

ax2.legend(loc='lower right', fontsize=17)
ax2.set_xlim(0, 2.0)
ax2.set_ylim(0, 1.6)
# ax2.set_ylabel(r'$Q_{eff}^{-1}$', fontsize=30)
ax2.set_xlabel(r'$Q_{RW}^{-1},c_{\rm{HI}}=11\,km\,s^{-1}$', fontsize=30)
ax2.grid()

for _ in np.linspace(1.5, 2., 2):
       
#     line, = ax.plot([0., _*2], [0., 2.0], '--', alpha=0.3, color='gray', lw=2.)
#     label_line(line, 'y={:2.2f}x'.format(1./_), 0.8*_, 0.8, color='black')
    
    line2, = ax2.plot([0., 2.0], [0., _*2], '--', alpha=0.3, color='gray', lw=2.)
    label_line(line2, 'y={:2.2f}x'.format(_), 1.2/_, 1.2, color='black')
    
    line1, = ax.plot([0., 2.0], [0., _*2], '--', alpha=0.3, color='gray', lw=2.)
    label_line(line1, 'y={:2.2f}x'.format(_), 1.2/_, 1.2, color='black')

line, = ax2.plot([0., 0.88*2], [0., 2.0], '--', alpha=0.5, color='gray', lw=2.)
label_line(line, 'y={:2.2f}x'.format(1./0.88), 1.2*0.88, 1.2, color='black')

T_07 = 1.05

line, = ax.plot([0., 1/T_07 * 0.88*2], [0., 2.0], '--', alpha=0.5, color='gray', lw=2.)
label_line(line, 'y={:2.2f}x'.format(T_07/0.88), 1.2*0.88/T_07, 1.2, color='black')


plt.setp(ax2.get_xticklabels()[0], visible=False)

plt.tight_layout(pad=0.1, w_pad=0.1, h_pad=0.1)
fig.subplots_adjust(wspace=0.01, hspace=0.02)

plt.savefig(paper_imgs_dir+'Qeff_vs_QRFh_vs_QRF11.eps', format='eps', bbox_inches='tight')
plt.savefig(paper_imgs_dir+'Qeff_vs_QRFh_vs_QRF11.png', format='png', bbox_inches='tight')
plt.savefig(paper_imgs_dir+'Qeff_vs_QRFh_vs_QRF11.pdf', format='pdf', dpi=150, bbox_inches='tight')

plt.show()


n338_modelB
n338_modelR
n1167_modelRsubmax
n1167_modelRmax
n2985_modelKmax
n2985_model36max
n3898_modelRmax
n3898_modelR2dmax
n4258_model36max
n4258_modelImax
n4725_model36max
n4725_modelHmax
n5533_modelRzeroH2
n5533_modelr
n5533_modelRmax

Fiducial model

Проверим вообще приближенно как у нас распределены параметры по пространству q-s как Romeo любит:


In [36]:
fig = plt.figure(figsize=[9,9])
ax = plt.gca()

for ind, name in enumerate(['n338', 'n1167', 'n2985', 'n3898', 'n4258', 'n4725', 'n5533']):
    for key in models.keys():
        if name in key:
#             print key
            model = models[key]
#             plt.plot([model['sound_vel']/l for l in model['sigma_R_min']], [l[0]/l[1] for l in zip(model['Qgs'], model['Qss_min'])], '.', color=model['color'])
            plt.plot([model['sound_vel']/l for l in model['sigma_R_max']], [l[0]/l[1] for l in zip(model['Qgs'], model['Qss_max'])], 's', color=model['color'])
#             print model.keys()

plt.plot([0.013, 0.21], [10., 0.88], '-')
plt.plot([0.017, 0.21], [0.1, 0.88], '-')

plt.ylim(0.1, 10.)
plt.xlim(0.01, 1.)
plt.xlabel('s')
plt.ylabel('q')
ax.set_xscale("log", nonposx='clip')
ax.set_yscale("log", nonposy='clip');


В качестве реперной модели возьмем RW с коррекцией за толщину, c $\sigma_{CO}=6$ km/s, $\sigma_{HI}=11$ km/s, $\alpha=0.5=(0.7+0.3)/2$ ну и $\sigma_R$ соответствующее принятому $\alpha$.

Наклоны только добавим сперва:


In [37]:
models['n338_modelB']['incl'] = 64.
models['n338_modelR']['incl'] = 64.
models['n1167_modelRsubmax']['incl'] = 38.
models['n1167_modelRmax']['incl'] = 38.
models['n2985_modelKmax']['incl'] = 36.
models['n2985_model36max']['incl'] = 36.
models['n3898_modelRmax']['incl'] = 61.
models['n3898_modelR2dmax']['incl'] = 61.
models['n4258_model36max']['incl'] = 65.
models['n4258_modelImax']['incl'] = 65.
models['n4725_model36max']['incl'] = 50.
models['n4725_modelHmax']['incl'] = 50.
models['n5533_modelRzeroH2']['incl'] = 52.
models['n5533_modelr']['incl'] = 52.
models['n5533_modelRmax']['incl'] = 52.

In [ ]:


In [38]:
def sig_R_min_(incl):
    sin_i, cos_i = np.sin(incl*np.pi/180.), np.cos(incl*np.pi/180.)
    return 1./sqrt(sin_i**2 + 0.49*cos_i**2)

def sig_R_max_(incl):
    sin_i, cos_i = np.sin(incl*np.pi/180.), np.cos(incl*np.pi/180.)
    return 1./sqrt(0.5*sin_i**2 + 0.09*cos_i**2)

In [94]:
for i in np.arange(15., 85.):
    plt.scatter(i, 1.15*(sig_R_min_(i)+sig_R_max_(i))/2.)
    plt.scatter(i, sig_R_max_(i))
    plt.scatter(i, sig_R_max_(i)-1.15*(sig_R_min_(i)+sig_R_max_(i))/2., marker='s', color='r')
    plt.scatter(i, (1.15*(sig_R_min_(i)+sig_R_max_(i))/2.)/sig_R_max_(i), marker='+', color='g')

for ind, key in enumerate(models.keys()):
    plt.scatter(models[key]['incl'], 0., marker='x', color='b')


plt.xlabel(r'$i$')
plt.axvline(x=35.)
plt.axvline(x=65.)
plt.axhline(y=0.95, alpha=0.3, color='m')
plt.ylim(0., 3.)
plt.grid()



In [39]:
factors=[]
for ind, key in enumerate(models.keys()):
    model = models[key]
    factors.append([sig_R_max_(model['incl']), sig_R_min_(model['incl'])])
    
plt.plot(range(len(factors)), zip(*factors)[0], 'o-')
plt.plot(range(len(factors)), zip(*factors)[1], 'o-')
plt.plot(range(len(factors)), [(l[0]+l[1])/2. for l in factors], 'o-')
plt.plot(range(len(factors)), [1.15*(l[0]+l[1])/2. for l in factors], 'o-')


Out[39]:
[<matplotlib.lines.Line2D at 0x11115b38>]

In [97]:
ratios = []
factors_ = []
borders = []
border = 0
for ind2, key in enumerate(models.keys()):
    model = models[key]
#     model['sound_vel_CO'] = 6.
#     model['sound_vel_HI'] = 11.
#     print '============='
#     print key
#     print '============='
    romeo_min = []
    fiducial = []
    mincomp = []
    for ind, (r, g, co) in enumerate(zip(model['r_g_dens'], model['HI_gas_dens'], model['CO_gas_dens'])):
#         print 'r={:5.3f}'.format(r)
        rom, _ = romeo_Qinv(r=r, epicycl=model['epicycl'][ind], sound_vel_CO=6., sound_vel_HI=11., 
                            sigma_R=(model['sigma_R_max'][ind]+model['sigma_R_min'][ind])/2., 
               star_density=model['star_density'][ind], HI_density=He_coeff*g, CO_density=He_coeff*co, 
                            alpha=0.5, thin=False, verbose=False, He_corr=True)
#         print 'QRW={:5.3f}'.format(1./rom)
        fiducial.append(rom)
        mincomp.append(_)
#         print 'Qs={:5.3f}//{:5.3f} Qg={:5.3f} Qeff={:5.3f}//{:5.3f}'.format(model['Qss_min'][ind], model['Qss_max'][ind], 
#                                                                             model['Qgs'][ind], 1./model['invQeff_min'][ind], 
#                                                                             1./model['invQeff_max'][ind])
#         print 'QRW < Qg : {}'.format(1./rom < model['Qgs'][ind])
#         print 'sR_max={:5.2f} sR_min={:5.2f} sR_RW={:5.2f}, sR_RW*1.15={:5.2f}'.format(model['sigma_R_max'][ind], 
#                                                                    model['sigma_R_min'][ind], 
#                                                                    (model['sigma_R_max'][ind]+model['sigma_R_min'][ind])/2.,
#                                                                   1.15*(model['sigma_R_max'][ind]+model['sigma_R_min'][ind])/2.)
#         print 'sR_max_factor={:4.2f} sR_min_factor={:4.2f}'.format(sig_R_max_(model['incl']), sig_R_min_(model['incl']))
#         if 1./rom < model['Qgs'][ind]:
#             ratios.append(rom/model['invQeff_min'][ind])
#             factors_.append([sig_R_max_(model['incl']), sig_R_min_(model['incl'])])
        ratios.append(rom/model['invQeff_min'][ind])
        factors_.append([sig_R_max_(model['incl']), sig_R_min_(model['incl'])])
        border+=1
    borders.append(border)
    model['fiducialQ'] = fiducial
    model['mincomp'] = mincomp

In [98]:
fig = plt.figure(figsize=[16, 7])
plt.plot(range(len(ratios)), ratios, 'd', label='Qeff/QRW')
plt.plot(range(len(factors_)), [l[0]/(1.15*(l[0]+l[1])/2.) for l in factors_], 'o-', label='sigRmax/sigR_RW')
plt.plot(range(len(factors_)), [l[0][0]/(1.15*(l[0][0]+l[0][1])/2.)-l[1] for l in zip(factors_, ratios)], 'o', label='diff')
for border in borders:
    plt.axvline(x=border, alpha=0.3)
plt.legend(loc='lower right')
plt.xticks(np.array(borders)-2, models.keys(), rotation=45)
plt.axhline(y=1.0, alpha=0.4, color='gray')
# plt.ylim(0, 1.1);
plt.show()



In [101]:
ratios = []
factors_ = []
for ind2, key in enumerate(models.keys()):
#     if key == 'n1167_modelRmax':
    model = models[key]
    plt.plot(model['r_g_dens'], [abs(1./l[0]-1./l[1]) if 1./l[0] < l[2] else 20 for l in zip(model['fiducialQ'], 
                                                                                        model['invQeff_min'], model['Qgs'])], '.', color=model['color'])
    i = model['incl']
    plt.plot(model['r_g_dens'], [(1.-(1.15*(sig_R_min_(i)+sig_R_max_(i))/2.)/sig_R_max_(i))* 1./l[1] if 1./l[0] < l[2] else 20 for l in zip(model['fiducialQ'], 
                                                                                        model['invQeff_min'], model['Qgs'])], '+', color=model['color'])
#     plt.plot(model['r_g_dens'], [1./l[0]-1./l[1] for l in zip(model['fiducialQ'], model['invQeff_min'], model['Qgs'])], '.', color=model['color'])
    
plt.ylim(0., 0.6)
plt.xlim(0, 130)


Out[101]:
(0, 130)

In [ ]:


In [ ]:


In [75]:
for ind, key in enumerate(models.keys()):
    model = models[key]
#     model['sound_vel_CO'] = 6.
#     model['sound_vel_HI'] = 11.
    print '============='
    print key
    print '============='
    romeo_min = []
    fiducial = []
    mincomp = []
    for ind, (r, g, co) in enumerate(zip(model['r_g_dens'], model['HI_gas_dens'], model['CO_gas_dens'])):
        print 'r={:5.3f}'.format(r)
        rom, _ = romeo_Qinv(r=r, epicycl=model['epicycl'][ind], sound_vel_CO=6., sound_vel_HI=11., 
                            sigma_R=(model['sigma_R_max'][ind]+model['sigma_R_min'][ind])/2., 
               star_density=model['star_density'][ind], HI_density=He_coeff*g, CO_density=He_coeff*co, 
                            alpha=0.5, thin=False, verbose=True, He_corr=True)
        print 'QRW={:5.3f}'.format(1./rom)
        fiducial.append(rom)
        mincomp.append(_)
        print 'Qs={:5.3f}//{:5.3f} Qg={:5.3f} Qeff={:5.3f}//{:5.3f}'.format(model['Qss_min'][ind], model['Qss_max'][ind], 
                                                                            model['Qgs'][ind], 1./model['invQeff_min'][ind], 
                                                                            1./model['invQeff_max'][ind])
        print 'QRW < Qg : {}'.format(1./rom < model['Qgs'][ind])
        print 'sR_max={:5.2f} sR_min={:5.2f} sR_RW={:5.2f}, sR_RW*1.15={:5.2f}'.format(model['sigma_R_max'][ind], 
                                                                   model['sigma_R_min'][ind], 
                                                                   (model['sigma_R_max'][ind]+model['sigma_R_min'][ind])/2.,
                                                                  1.15*(model['sigma_R_max'][ind]+model['sigma_R_min'][ind])/2.)
        print 'sR_max_factor={:4.2f} sR_min_factor={:4.2f}'.format(sig_R_max_(model['incl']), sig_R_min_(model['incl']))
    model['fiducialQ'] = fiducial
    model['mincomp'] = mincomp


=============
n5533_modelRzeroH2
=============
r=15.000
QTs: [3.648965835922529, 17.424462490584677, 4970.7239359504292]
min index: 0
min component: star
Ws/TQs=0.274 WHI/TQHI=0.008 WCO/TQCO=0.000
Ws=1.000 WHI=0.141 WCO=0.077
QRW=3.544
Qs=3.838//2.508 Qg=6.324 Qeff=3.466//2.265
QRW < Qg : True
sR_max=187.24 sR_min=122.38 sR_RW=154.81, sR_RW*1.15=178.03
sR_max_factor=1.70 sR_min_factor=1.11
r=30.000
QTs: [2.5482461966394112, 9.1549111765348847, 2506.7811330657341]
min index: 0
min component: star
Ws/TQs=0.392 WHI/TQHI=0.017 WCO/TQCO=0.000
Ws=1.000 WHI=0.158 WCO=0.086
QRW=2.441
Qs=2.680//1.752 Qg=3.322 Qeff=2.380//1.555
QRW < Qg : True
sR_max=167.65 sR_min=109.58 sR_RW=138.61, sR_RW*1.15=159.41
sR_max_factor=1.70 sR_min_factor=1.11
r=45.000
QTs: [2.1522447115686063, 6.8033034359482434, 1632.7928246275783]
min index: 0
min component: star
Ws/TQs=0.465 WHI/TQHI=0.028 WCO/TQCO=0.000
Ws=1.000 WHI=0.188 WCO=0.103
QRW=2.031
Qs=2.264//1.479 Qg=2.468 Qeff=1.973//1.290
QRW < Qg : True
sR_max=140.57 sR_min=91.87 sR_RW=116.22, sR_RW*1.15=133.65
sR_max_factor=1.70 sR_min_factor=1.11
r=60.000
QTs: [1.9306266238772409, 5.5653887296108282, 1168.7316332182741]
min index: 0
min component: star
Ws/TQs=0.518 WHI/TQHI=0.041 WCO/TQCO=0.000
Ws=1.000 WHI=0.230 WCO=0.127
QRW=1.787
Qs=2.031//1.327 Qg=2.019 Qeff=1.727//1.129
QRW < Qg : True
sR_max=113.90 sR_min=74.45 sR_RW=94.17, sR_RW*1.15=108.30
sR_max_factor=1.70 sR_min_factor=1.11
r=75.000
QTs: [1.9039694012804425, 4.4634686238724921, 878.89754902798347]
min index: 0
min component: star
Ws/TQs=0.525 WHI/TQHI=0.061 WCO/TQCO=0.000
Ws=1.000 WHI=0.270 WCO=0.149
QRW=1.707
Qs=2.002//1.309 Qg=1.619 Qeff=1.467//1.068
QRW < Qg : False
sR_max=96.59 sR_min=63.13 sR_RW=79.86, sR_RW*1.15=91.83
sR_max_factor=1.70 sR_min_factor=1.11
r=90.000
QTs: [2.2765840900370389, 3.8541797422478963, 685.34323416698953]
min index: 0
min component: star
Ws/TQs=0.439 WHI/TQHI=0.071 WCO/TQCO=0.000
Ws=1.000 WHI=0.273 WCO=0.151
QRW=1.960
Qs=2.394//1.565 Qg=1.397 Qeff=1.301//1.184
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
r=105.000
QTs: [2.8529121873381946, 3.976930742718559, 555.32414734688246]
min index: 0
min component: star
Ws/TQs=0.351 WHI/TQHI=0.069 WCO/TQCO=0.000
Ws=1.000 WHI=0.273 WCO=0.151
QRW=2.385
Qs=3.001//1.961 Qg=1.441 Qeff=1.358//1.258
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
r=120.000
QTs: [3.7557366938445509, 4.7356255760191921, 472.70153476991584]
min index: 0
min component: star
Ws/TQs=0.266 WHI/TQHI=0.058 WCO/TQCO=0.000
Ws=1.000 WHI=0.273 WCO=0.151
QRW=3.085
Qs=3.950//2.582 Qg=1.713 Qeff=1.624//1.515
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
r=135.000
QTs: [5.2559446116197011, 5.4081634465148971, 427.73656349708727]
min index: 0
min component: star
Ws/TQs=0.190 WHI/TQHI=0.050 WCO/TQCO=0.000
Ws=1.000 WHI=0.273 WCO=0.151
QRW=4.149
Qs=5.528//3.613 Qg=1.953 Qeff=1.871//1.768
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
=============
n4725_model36max
=============
r=15.555
QTs: [4.4364993413129907, 83.261065876276632, 2.6095455427154848]
min index: 2
min component: H2
Ws/TQs=0.012 WHI/TQHI=0.010 WCO/TQCO=0.383
Ws=0.055 WHI=0.841 WCO=1.000
QRW=2.464
Qs=4.684//3.032 Qg=1.645 Qeff=1.619//1.584
QRW < Qg : False
sR_max=263.07 sR_min=170.26 sR_RW=216.67, sR_RW*1.15=249.17
sR_max_factor=1.74 sR_min_factor=1.13
r=24.629
QTs: [3.8797814862274693, 245.23704056199156, 3.7948223332564965]
min index: 2
min component: H2
Ws/TQs=0.015 WHI/TQHI=0.003 WCO/TQCO=0.264
Ws=0.059 WHI=0.841 WCO=1.000
QRW=3.545
Qs=4.096//2.651 Qg=2.460 Qeff=2.390//2.297
QRW < Qg : False
sR_max=247.33 sR_min=160.07 sR_RW=203.70, sR_RW*1.15=234.26
sR_max_factor=1.74 sR_min_factor=1.13
r=36.943
QTs: [3.0437445416157658, 35.503219192977042, 12.228595918353859]
min index: 0
min component: star
Ws/TQs=0.329 WHI/TQHI=0.004 WCO/TQCO=0.006
Ws=1.000 WHI=0.126 WCO=0.069
QRW=2.961
Qs=3.214//2.080 Qg=4.997 Qeff=2.909//1.882
QRW < Qg : True
sR_max=211.83 sR_min=137.10 sR_RW=174.47, sR_RW*1.15=200.64
sR_max_factor=1.74 sR_min_factor=1.13
r=44.720
QTs: [2.480692271228901, 34.887286488548206, 17.602217752105748]
min index: 0
min component: star
Ws/TQs=0.403 WHI/TQHI=0.004 WCO/TQCO=0.005
Ws=1.000 WHI=0.147 WCO=0.081
QRW=2.428
Qs=2.619//1.695 Qg=6.096 Qeff=2.387//1.545
QRW < Qg : True
sR_max=180.44 sR_min=116.78 sR_RW=148.61, sR_RW*1.15=170.90
sR_max_factor=1.74 sR_min_factor=1.13
r=55.738
QTs: [2.2407448201601143, 12.549955840549309, 18.09567665450313]
min index: 0
min component: star
Ws/TQs=0.446 WHI/TQHI=0.013 WCO/TQCO=0.005
Ws=1.000 WHI=0.159 WCO=0.087
QRW=2.157
Qs=2.366//1.531 Qg=3.311 Qeff=2.113//1.368
QRW < Qg : True
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=64.812
QTs: [2.30264153519088, 11.197255054137589, 17.208143273364321]
min index: 0
min component: star
Ws/TQs=0.434 WHI/TQHI=0.014 WCO/TQCO=0.005
Ws=1.000 WHI=0.159 WCO=0.087
QRW=2.205
Qs=2.431//1.573 Qg=3.005 Qeff=2.158//1.397
QRW < Qg : True
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=75.182
QTs: [2.4349003548320609, 10.198353571159322, 12.049083275147055]
min index: 0
min component: star
Ws/TQs=0.411 WHI/TQHI=0.016 WCO/TQCO=0.007
Ws=1.000 WHI=0.159 WCO=0.087
QRW=2.307
Qs=2.571//1.664 Qg=2.537 Qeff=2.252//1.458
QRW < Qg : True
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=86.848
QTs: [2.6145564622575397, 7.9397326047656289, 9.2479286581460798]
min index: 0
min component: star
Ws/TQs=0.382 WHI/TQHI=0.020 WCO/TQCO=0.009
Ws=1.000 WHI=0.159 WCO=0.087
QRW=2.428
Qs=2.760//1.787 Qg=1.966 Qeff=1.870//1.527
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=95.922
QTs: [2.7613844589931018, 5.6410872289118794, 6.6971386133560271]
min index: 0
min component: star
Ws/TQs=0.362 WHI/TQHI=0.028 WCO/TQCO=0.013
Ws=1.000 WHI=0.159 WCO=0.087
QRW=2.480
Qs=2.916//1.887 Qg=1.406 Qeff=1.358//1.297
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=103.699
QTs: [2.8813831995358323, 3.9913560834980153, 4.9874341202937345]
min index: 0
min component: star
Ws/TQs=0.347 WHI/TQHI=0.040 WCO/TQCO=0.017
Ws=1.000 WHI=0.159 WCO=0.087
QRW=2.474
Qs=3.042//1.969 Qg=1.010 Qeff=0.987//0.956
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=115.366
QTs: [3.0464718557238295, 3.4566516437693307, 3.2682549056124168]
min index: 0
min component: star
Ws/TQs=0.328 WHI/TQHI=0.046 WCO/TQCO=0.027
Ws=1.000 WHI=0.159 WCO=0.087
QRW=2.496
Qs=3.217//2.082 Qg=0.797 Qeff=0.783//0.765
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=125.736
QTs: [3.2002175787292231, 3.0338910096495484, 3.3537824294562668]
min index: 1
min component: HI
Ws/TQs=0.050 WHI/TQHI=0.330 WCO/TQCO=0.251
Ws=0.159 WHI=1.000 WCO=0.841
QRW=1.588
Qs=3.379//2.187 Qg=0.739 Qeff=0.727//0.712
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=136.105
QTs: [3.3648534721753482, 2.6014126611000368, 4.2320420444291393]
min index: 1
min component: HI
Ws/TQs=0.047 WHI/TQHI=0.384 WCO/TQCO=0.199
Ws=0.159 WHI=1.000 WCO=0.841
QRW=1.587
Qs=3.553//2.299 Qg=0.708 Qeff=0.699//0.685
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=145.179
QTs: [3.5216559587636138, 2.2806375037205022, 6.0750725692802847]
min index: 1
min component: HI
Ws/TQs=0.045 WHI/TQHI=0.438 WCO/TQCO=0.138
Ws=0.159 WHI=1.000 WCO=0.841
QRW=1.608
Qs=3.718//2.406 Qg=0.688 Qeff=0.679//0.667
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
=============
n5533_modelr
=============
r=15.000
QTs: [3.1247532099099375, 17.391209699572105, 2.8297730513485839]
min index: 2
min component: H2
Ws/TQs=0.025 WHI/TQHI=0.048 WCO/TQCO=0.353
Ws=0.077 WHI=0.841 WCO=1.000
QRW=2.345
Qs=3.286//2.148 Qg=1.453 Qeff=1.413//1.362
QRW < Qg : False
sR_max=187.24 sR_min=122.38 sR_RW=154.81, sR_RW*1.15=178.03
sR_max_factor=1.70 sR_min_factor=1.11
r=30.000
QTs: [2.4105641685622667, 9.1367105578936645, 2.3569267014840403]
min index: 2
min component: H2
Ws/TQs=0.036 WHI/TQHI=0.092 WCO/TQCO=0.424
Ws=0.086 WHI=0.841 WCO=1.000
QRW=1.811
Qs=2.535//1.657 Qg=1.067 Qeff=1.036//0.996
QRW < Qg : False
sR_max=167.65 sR_min=109.58 sR_RW=138.61, sR_RW*1.15=159.41
sR_max_factor=1.70 sR_min_factor=1.11
r=45.000
QTs: [2.2490564074991104, 6.7878764440299939, 2.570848436636231]
min index: 0
min component: star
Ws/TQs=0.445 WHI/TQHI=0.028 WCO/TQCO=0.040
Ws=1.000 WHI=0.188 WCO=0.103
QRW=1.952
Qs=2.365//1.546 Qg=1.012 Qeff=0.976//0.931
QRW < Qg : False
sR_max=140.57 sR_min=91.87 sR_RW=116.22, sR_RW*1.15=133.65
sR_max_factor=1.70 sR_min_factor=1.11
r=60.000
QTs: [2.2286320711148044, 5.5509706240936989, 3.308894298750634]
min index: 0
min component: star
Ws/TQs=0.449 WHI/TQHI=0.042 WCO/TQCO=0.038
Ws=1.000 WHI=0.230 WCO=0.127
QRW=1.892
Qs=2.344//1.532 Qg=1.054 Qeff=1.006//0.947
QRW < Qg : False
sR_max=113.90 sR_min=74.45 sR_RW=94.17, sR_RW*1.15=108.30
sR_max_factor=1.70 sR_min_factor=1.11
r=75.000
QTs: [2.4279035829049205, 4.4511386000496405, 6.0289777723581484]
min index: 0
min component: star
Ws/TQs=0.412 WHI/TQHI=0.061 WCO/TQCO=0.025
Ws=1.000 WHI=0.270 WCO=0.149
QRW=2.010
Qs=2.554//1.669 Qg=1.154 Qeff=1.092//1.017
QRW < Qg : False
sR_max=96.59 sR_min=63.13 sR_RW=79.86, sR_RW*1.15=91.83
sR_max_factor=1.70 sR_min_factor=1.11
r=90.000
QTs: [3.2069083937524221, 3.8423932598557, 31.43144773113162]
min index: 0
min component: star
Ws/TQs=0.312 WHI/TQHI=0.071 WCO/TQCO=0.005
Ws=1.000 WHI=0.273 WCO=0.151
QRW=2.580
Qs=3.373//2.204 Qg=1.310 Qeff=1.249//1.174
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
r=105.000
QTs: [4.4393833476069249, 3.9614563040309383, inf]
min index: 1
min component: HI
Ws/TQs=0.061 WHI/TQHI=0.252 WCO/TQCO=0.000
Ws=0.273 WHI=1.000 WCO=0.841
QRW=3.186
Qs=4.669//3.052 Qg=1.441 Qeff=1.387//1.321
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
r=120.000
QTs: [6.4559590661247661, 4.7098884804973489, inf]
min index: 1
min component: HI
Ws/TQs=0.042 WHI/TQHI=0.212 WCO/TQCO=0.000
Ws=0.273 WHI=1.000 WCO=0.841
QRW=3.929
Qs=6.790//4.438 Qg=1.713 Qeff=1.661//1.595
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
r=135.000
QTs: [9.9803965443273341, 5.3711212311278089, inf]
min index: 1
min component: HI
Ws/TQs=0.027 WHI/TQHI=0.186 WCO/TQCO=0.000
Ws=0.273 WHI=1.000 WCO=0.841
QRW=4.684
Qs=10.497//6.860 Qg=1.953 Qeff=1.909//1.853
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
=============
n1167_modelRsubmax
=============
r=15.000
QTs: [8.1896513120439458, 120.17304712421897, 186.56205066149772]
min index: 0
min component: star
Ws/TQs=0.122 WHI/TQHI=0.001 WCO/TQCO=0.000
Ws=1.000 WHI=0.083 WCO=0.045
QRW=8.127
Qs=8.960//5.283 Qg=32.337 Qeff=8.305//4.898
QRW < Qg : True
sR_max=332.07 sR_min=195.82 sR_RW=263.95, sR_RW*1.15=303.54
sR_max_factor=2.02 sR_min_factor=1.21
r=30.000
QTs: [5.3429836642045503, 34.268227530997144, 174.40940254645056]
min index: 0
min component: star
Ws/TQs=0.187 WHI/TQHI=0.003 WCO/TQCO=0.000
Ws=1.000 WHI=0.119 WCO=0.065
QRW=5.235
Qs=5.845//3.447 Qg=11.255 Qeff=5.336//3.147
QRW < Qg : True
sR_max=231.75 sR_min=136.66 sR_RW=184.20, sR_RW*1.15=211.83
sR_max_factor=2.02 sR_min_factor=1.21
r=45.000
QTs: [4.0522394781916002, 15.643304212878347, 214.39351282227082]
min index: 0
min component: star
Ws/TQs=0.247 WHI/TQHI=0.012 WCO/TQCO=0.000
Ws=1.000 WHI=0.192 WCO=0.105
QRW=3.853
Qs=4.433//2.614 Qg=5.471 Qeff=3.900//2.300
QRW < Qg : True
sR_max=142.99 sR_min=84.32 sR_RW=113.65, sR_RW*1.15=130.70
sR_max_factor=2.02 sR_min_factor=1.21
r=60.000
QTs: [4.6787896700764176, 10.319078207429998, 307.13936680452809]
min index: 0
min component: star
Ws/TQs=0.214 WHI/TQHI=0.023 WCO/TQCO=0.000
Ws=1.000 WHI=0.237 WCO=0.130
QRW=4.218
Qs=5.119//3.018 Qg=3.685 Qeff=3.424//2.482
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=75.000
QTs: [7.6455176444117008, 9.8020709515110696, 501.9007371133506]
min index: 0
min component: star
Ws/TQs=0.131 WHI/TQHI=0.024 WCO/TQCO=0.000
Ws=1.000 WHI=0.237 WCO=0.130
QRW=6.443
Qs=8.364//4.932 Qg=3.527 Qeff=3.378//3.122
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=90.000
QTs: [12.81691852592925, 11.135474859972648, 841.4019972931012]
min index: 1
min component: HI
Ws/TQs=0.018 WHI/TQHI=0.090 WCO/TQCO=0.001
Ws=0.237 WHI=1.000 WCO=0.841
QRW=9.151
Qs=14.022//8.268 Qg=4.020 Qeff=3.904//3.701
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=105.000
QTs: [18.889865575022494, 11.626473558790336, 1240.1030017820049]
min index: 1
min component: HI
Ws/TQs=0.013 WHI/TQHI=0.086 WCO/TQCO=0.001
Ws=0.237 WHI=1.000 WCO=0.841
QRW=10.078
Qs=20.666//12.186 Qg=4.206 Qeff=4.120//3.966
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=120.000
QTs: [19.331411580872796, 7.6821385604359342, 1269.1163382927814]
min index: 1
min component: HI
Ws/TQs=0.012 WHI/TQHI=0.130 WCO/TQCO=0.001
Ws=0.237 WHI=1.000 WCO=0.841
QRW=6.989
Qs=21.149//12.471 Qg=2.784 Qeff=2.747//2.680
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=135.000
QTs: [32.810799967744316, 7.5434605100929772, 2154.0891007288847]
min index: 1
min component: HI
Ws/TQs=0.007 WHI/TQHI=0.133 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=7.134
Qs=35.895//21.167 Qg=2.738 Qeff=2.717//2.678
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=150.000
QTs: [65.400885775776672, 8.1780683395638381, 4293.7766593973902]
min index: 1
min component: HI
Ws/TQs=0.004 WHI/TQHI=0.122 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=7.931
Qs=71.549//42.191 Qg=2.971 Qeff=2.958//2.935
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=165.000
QTs: [115.21779046191106, 8.4901110460254383, 7564.5716258071534]
min index: 1
min component: HI
Ws/TQs=0.002 WHI/TQHI=0.118 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=8.337
Qs=126.050//74.329 Qg=3.085 Qeff=3.078//3.064
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=180.000
QTs: [196.76154496458702, 9.4969123382425575, 12918.556746903794]
min index: 1
min component: HI
Ws/TQs=0.001 WHI/TQHI=0.105 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=9.384
Qs=215.260//126.934 Qg=3.452 Qeff=3.446//3.436
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=195.000
QTs: [332.56223579539954, 11.918247631522823, 21835.124921838069]
min index: 1
min component: HI
Ws/TQs=0.001 WHI/TQHI=0.084 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=11.813
Qs=363.828//214.541 Qg=4.333 Qeff=4.327//4.318
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=210.000
QTs: [550.37923783284225, 16.079619301723639, 36137.139193720679]
min index: 1
min component: HI
Ws/TQs=0.000 WHI/TQHI=0.062 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=15.963
Qs=602.123//355.059 Qg=5.846 Qeff=5.840//5.829
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=225.000
QTs: [876.89896621465471, 22.743924441066685, 57577.16279629714]
min index: 1
min component: HI
Ws/TQs=0.000 WHI/TQHI=0.044 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=22.598
Qs=959.340//565.702 Qg=8.269 Qeff=8.261//8.248
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
=============
n338_modelB
=============
r=19.862
QTs: [3.4303056426395404, 5.0970653924819631, 3.4636899836583774]
min index: 0
min component: star
Ws/TQs=0.292 WHI/TQHI=0.047 WCO/TQCO=0.038
Ws=1.000 WHI=0.237 WCO=0.131
QRW=2.660
Qs=3.544//2.422 Qg=1.028 Qeff=0.996//0.962
QRW < Qg : False
sR_max=108.49 sR_min=74.13 sR_RW=91.31, sR_RW*1.15=105.01
sR_max_factor=1.54 sR_min_factor=1.05
r=29.931
QTs: [4.0936074554366497, 4.5308227779077344, 4.6976465726177299]
min index: 0
min component: star
Ws/TQs=0.244 WHI/TQHI=0.059 WCO/TQCO=0.032
Ws=1.000 WHI=0.269 WCO=0.149
QRW=2.983
Qs=4.229//2.890 Qg=1.080 Qeff=1.046//1.011
QRW < Qg : False
sR_max=95.46 sR_min=65.23 sR_RW=80.35, sR_RW*1.15=92.40
sR_max_factor=1.54 sR_min_factor=1.05
r=39.862
QTs: [5.3143115400477745, 3.9654204251435807, 5.8330282260515229]
min index: 1
min component: HI
Ws/TQs=0.048 WHI/TQHI=0.252 WCO/TQCO=0.144
Ws=0.257 WHI=1.000 WCO=0.841
QRW=2.248
Qs=5.490//3.752 Qg=1.052 Qeff=1.029//1.003
QRW < Qg : False
sR_max=99.80 sR_min=68.20 sR_RW=84.00, sR_RW*1.15=96.60
sR_max_factor=1.54 sR_min_factor=1.05
r=49.931
QTs: [6.4111375477334089, 3.9485098039976823, 7.4495569947765752]
min index: 1
min component: HI
Ws/TQs=0.042 WHI/TQHI=0.253 WCO/TQCO=0.113
Ws=0.272 WHI=1.000 WCO=0.841
QRW=2.448
Qs=6.624//4.526 Qg=1.114 Qeff=1.091//1.066
QRW < Qg : False
sR_max=94.28 sR_min=64.43 sR_RW=79.35, sR_RW*1.15=91.25
sR_max_factor=1.54 sR_min_factor=1.05
r=59.862
QTs: [9.3747079735114092, 4.6434562919840499, 10.89334419588759]
min index: 1
min component: HI
Ws/TQs=0.029 WHI/TQHI=0.215 WCO/TQCO=0.077
Ws=0.272 WHI=1.000 WCO=0.841
QRW=3.110
Qs=9.685//6.619 Qg=1.370 Qeff=1.346//1.320
QRW < Qg : False
sR_max=94.28 sR_min=64.43 sR_RW=79.35, sR_RW*1.15=91.25
sR_max_factor=1.54 sR_min_factor=1.05
r=69.931
QTs: [14.194814042928652, 5.2119142996938841, 16.494586161581754]
min index: 1
min component: HI
Ws/TQs=0.019 WHI/TQHI=0.192 WCO/TQCO=0.051
Ws=0.272 WHI=1.000 WCO=0.841
QRW=3.817
Qs=14.665//10.022 Qg=1.617 Qeff=1.595//1.571
QRW < Qg : False
sR_max=94.28 sR_min=64.43 sR_RW=79.35, sR_RW*1.15=91.25
sR_max_factor=1.54 sR_min_factor=1.05
r=80.000
QTs: [21.915819522062513, 6.8515566250907654, 25.466993062597052]
min index: 1
min component: HI
Ws/TQs=0.012 WHI/TQHI=0.146 WCO/TQCO=0.033
Ws=0.272 WHI=1.000 WCO=0.841
QRW=5.225
Qs=22.642//15.473 Qg=2.173 Qeff=2.147//2.119
QRW < Qg : False
sR_max=94.28 sR_min=64.43 sR_RW=79.35, sR_RW*1.15=91.25
sR_max_factor=1.54 sR_min_factor=1.05
r=89.931
QTs: [34.166613549517592, 10.483301977286125, 39.703611770276851]
min index: 1
min component: HI
Ws/TQs=0.008 WHI/TQHI=0.095 WCO/TQCO=0.021
Ws=0.272 WHI=1.000 WCO=0.841
QRW=8.030
Qs=35.299//24.122 Qg=3.332 Qeff=3.293//3.251
QRW < Qg : False
sR_max=94.28 sR_min=64.43 sR_RW=79.35, sR_RW*1.15=91.25
sR_max_factor=1.54 sR_min_factor=1.05
=============
n3898_modelRmax
=============
r=15.000
QTs: [6.1037124537137517, 162.98589747611604, 83.919052149868406]
min index: 0
min component: star
Ws/TQs=0.164 WHI/TQHI=0.001 WCO/TQCO=0.001
Ws=1.000 WHI=0.121 WCO=0.066
QRW=6.047
Qs=6.329//4.286 Qg=28.779 Qeff=5.855//3.965
QRW < Qg : True
sR_max=215.44 sR_min=145.90 sR_RW=180.67, sR_RW*1.15=207.77
sR_max_factor=1.57 sR_min_factor=1.07
r=30.000
QTs: [4.2893696394520555, 58.129367762796051, 53.900027976968587]
min index: 0
min component: star
Ws/TQs=0.233 WHI/TQHI=0.002 WCO/TQCO=0.001
Ws=1.000 WHI=0.111 WCO=0.061
QRW=4.234
Qs=4.448//3.012 Qg=13.309 Qeff=4.097//2.774
QRW < Qg : True
sR_max=235.72 sR_min=159.63 sR_RW=197.68, sR_RW*1.15=227.33
sR_max_factor=1.57 sR_min_factor=1.07
r=45.000
QTs: [3.0504996732752701, 25.10227688877865, 42.668058951617667]
min index: 0
min component: star
Ws/TQs=0.328 WHI/TQHI=0.005 WCO/TQCO=0.002
Ws=1.000 WHI=0.123 WCO=0.067
QRW=2.991
Qs=3.163//2.142 Qg=6.911 Qeff=2.890//1.957
QRW < Qg : True
sR_max=211.77 sR_min=143.41 sR_RW=177.59, sR_RW*1.15=204.23
sR_max_factor=1.57 sR_min_factor=1.07
r=60.000
QTs: [3.5997543927247024, 19.423914418165186, 57.326418358398179]
min index: 0
min component: star
Ws/TQs=0.278 WHI/TQHI=0.007 WCO/TQCO=0.001
Ws=1.000 WHI=0.140 WCO=0.077
QRW=3.492
Qs=3.733//2.528 Qg=5.961 Qeff=3.366//2.280
QRW < Qg : True
sR_max=186.01 sR_min=125.96 sR_RW=155.99, sR_RW*1.15=179.38
sR_max_factor=1.57 sR_min_factor=1.07
r=75.000
QTs: [4.8325853053724268, 16.807294466536881, 73.042043613294453]
min index: 0
min component: star
Ws/TQs=0.207 WHI/TQHI=0.008 WCO/TQCO=0.001
Ws=1.000 WHI=0.133 WCO=0.073
QRW=4.633
Qs=5.011//3.393 Qg=5.430 Qeff=4.454//3.016
QRW < Qg : True
sR_max=195.99 sR_min=132.72 sR_RW=164.35, sR_RW*1.15=189.01
sR_max_factor=1.57 sR_min_factor=1.07
r=90.000
QTs: [5.6573118229080119, 15.220730682446023, 85.5085426222889]
min index: 0
min component: star
Ws/TQs=0.177 WHI/TQHI=0.009 WCO/TQCO=0.001
Ws=1.000 WHI=0.133 WCO=0.073
QRW=5.366
Qs=5.866//3.973 Qg=5.045 Qeff=4.789//3.485
QRW < Qg : False
sR_max=195.99 sR_min=132.72 sR_RW=164.35, sR_RW*1.15=189.01
sR_max_factor=1.57 sR_min_factor=1.07
r=105.000
QTs: [6.5671159829170662, 14.288572554386, 99.261326511015767]
min index: 0
min component: star
Ws/TQs=0.152 WHI/TQHI=0.009 WCO/TQCO=0.001
Ws=1.000 WHI=0.133 WCO=0.073
QRW=6.160
Qs=6.810//4.611 Qg=4.818 Qeff=4.616//3.990
QRW < Qg : False
sR_max=195.99 sR_min=132.72 sR_RW=164.35, sR_RW*1.15=189.01
sR_max_factor=1.57 sR_min_factor=1.07
r=120.000
QTs: [7.9372702952802907, 13.57201729720574, 119.97273486329411]
min index: 0
min component: star
Ws/TQs=0.126 WHI/TQHI=0.010 WCO/TQCO=0.001
Ws=1.000 WHI=0.133 WCO=0.073
QRW=7.331
Qs=8.230//5.574 Qg=4.648 Qeff=4.492//4.317
QRW < Qg : False
sR_max=195.99 sR_min=132.72 sR_RW=164.35, sR_RW*1.15=189.01
sR_max_factor=1.57 sR_min_factor=1.07
r=135.000
QTs: [10.359562244821316, 12.680210660427155, 156.58811423205549]
min index: 0
min component: star
Ws/TQs=0.097 WHI/TQHI=0.011 WCO/TQCO=0.000
Ws=1.000 WHI=0.133 WCO=0.073
QRW=9.302
Qs=10.742//7.275 Qg=4.416 Qeff=4.308//4.184
QRW < Qg : False
sR_max=195.99 sR_min=132.72 sR_RW=164.35, sR_RW*1.15=189.01
sR_max_factor=1.57 sR_min_factor=1.07
=============
n4725_modelHmax
=============
r=15.555
QTs: [3.7321789366734119, 83.261065876276632, 2.6095455427154848]
min index: 2
min component: H2
Ws/TQs=0.015 WHI/TQHI=0.010 WCO/TQCO=0.383
Ws=0.055 WHI=0.841 WCO=1.000
QRW=2.450
Qs=3.940//2.550 Qg=1.645 Qeff=1.614//1.573
QRW < Qg : False
sR_max=263.07 sR_min=170.26 sR_RW=216.67, sR_RW*1.15=249.17
sR_max_factor=1.74 sR_min_factor=1.13
r=24.629
QTs: [3.4535727958256102, 245.23704056199156, 3.7948223332564965]
min index: 0
min component: star
Ws/TQs=0.290 WHI/TQHI=0.000 WCO/TQCO=0.016
Ws=1.000 WHI=0.108 WCO=0.059
QRW=3.273
Qs=3.646//2.360 Qg=2.460 Qeff=2.382//2.069
QRW < Qg : False
sR_max=247.33 sR_min=160.07 sR_RW=203.70, sR_RW*1.15=234.26
sR_max_factor=1.74 sR_min_factor=1.13
r=36.943
QTs: [2.9253167669153615, 35.503219192977042, 12.228595918353859]
min index: 0
min component: star
Ws/TQs=0.342 WHI/TQHI=0.004 WCO/TQCO=0.006
Ws=1.000 WHI=0.126 WCO=0.069
QRW=2.849
Qs=3.089//1.999 Qg=4.997 Qeff=2.799//1.812
QRW < Qg : True
sR_max=211.83 sR_min=137.10 sR_RW=174.47, sR_RW*1.15=200.64
sR_max_factor=1.74 sR_min_factor=1.13
r=44.720
QTs: [2.502483890457611, 34.887286488548206, 17.602217752105748]
min index: 0
min component: star
Ws/TQs=0.400 WHI/TQHI=0.004 WCO/TQCO=0.005
Ws=1.000 WHI=0.147 WCO=0.081
QRW=2.449
Qs=2.642//1.710 Qg=6.096 Qeff=2.408//1.558
QRW < Qg : True
sR_max=180.44 sR_min=116.78 sR_RW=148.61, sR_RW*1.15=170.90
sR_max_factor=1.74 sR_min_factor=1.13
r=55.738
QTs: [2.4209651304306408, 12.549955840549309, 18.09567665450313]
min index: 0
min component: star
Ws/TQs=0.413 WHI/TQHI=0.013 WCO/TQCO=0.005
Ws=1.000 WHI=0.159 WCO=0.087
QRW=2.323
Qs=2.556//1.654 Qg=3.311 Qeff=2.274//1.472
QRW < Qg : True
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=64.812
QTs: [2.6324599922525764, 11.197255054137589, 17.208143273364321]
min index: 0
min component: star
Ws/TQs=0.380 WHI/TQHI=0.014 WCO/TQCO=0.005
Ws=1.000 WHI=0.159 WCO=0.087
QRW=2.506
Qs=2.779//1.799 Qg=3.005 Qeff=2.449//1.585
QRW < Qg : True
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=75.182
QTs: [2.9693511982624479, 10.198353571159322, 12.049083275147055]
min index: 0
min component: star
Ws/TQs=0.337 WHI/TQHI=0.016 WCO/TQCO=0.007
Ws=1.000 WHI=0.159 WCO=0.087
QRW=2.781
Qs=3.135//2.029 Qg=2.537 Qeff=2.396//1.753
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=86.848
QTs: [3.4286957007917187, 7.9397326047656289, 9.2479286581460798]
min index: 0
min component: star
Ws/TQs=0.292 WHI/TQHI=0.020 WCO/TQCO=0.009
Ws=1.000 WHI=0.159 WCO=0.087
QRW=3.115
Qs=3.620//2.343 Qg=1.966 Qeff=1.892//1.795
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=95.922
QTs: [3.8317494736154671, 5.6410872289118794, 6.6971386133560271]
min index: 0
min component: star
Ws/TQs=0.261 WHI/TQHI=0.028 WCO/TQCO=0.013
Ws=1.000 WHI=0.159 WCO=0.087
QRW=3.311
Qs=4.046//2.618 Qg=1.406 Qeff=1.371//1.326
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=103.699
QTs: [4.1966712131617845, 3.9913560834980153, 4.9874341202937345]
min index: 1
min component: HI
Ws/TQs=0.038 WHI/TQHI=0.251 WCO/TQCO=0.169
Ws=0.159 WHI=1.000 WCO=0.841
QRW=2.189
Qs=4.431//2.868 Qg=1.010 Qeff=0.994//0.973
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=115.366
QTs: [4.7714638835857732, 3.4566516437693307, 3.2682549056124168]
min index: 2
min component: H2
Ws/TQs=0.018 WHI/TQHI=0.243 WCO/TQCO=0.306
Ws=0.087 WHI=0.841 WCO=1.000
QRW=1.762
Qs=5.038//3.260 Qg=0.797 Qeff=0.788//0.776
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=125.736
QTs: [5.3466149113118382, 3.0338910096495484, 3.3537824294562668]
min index: 1
min component: HI
Ws/TQs=0.030 WHI/TQHI=0.330 WCO/TQCO=0.251
Ws=0.159 WHI=1.000 WCO=0.841
QRW=1.639
Qs=5.645//3.653 Qg=0.739 Qeff=0.732//0.723
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=136.105
QTs: [5.9966746113851652, 2.6014126611000368, 4.2320420444291393]
min index: 1
min component: HI
Ws/TQs=0.026 WHI/TQHI=0.384 WCO/TQCO=0.199
Ws=0.159 WHI=1.000 WCO=0.841
QRW=1.641
Qs=6.331//4.098 Qg=0.708 Qeff=0.703//0.695
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
r=145.179
QTs: [6.6409554286985903, 2.2806375037205022, 6.0750725692802847]
min index: 1
min component: HI
Ws/TQs=0.024 WHI/TQHI=0.438 WCO/TQCO=0.138
Ws=0.159 WHI=1.000 WCO=0.841
QRW=1.665
Qs=7.012//4.538 Qg=0.688 Qeff=0.684//0.677
QRW < Qg : False
sR_max=167.44 sR_min=108.37 sR_RW=137.90, sR_RW*1.15=158.59
sR_max_factor=1.74 sR_min_factor=1.13
=============
n3898_modelR2dmax
=============
r=15.000
QTs: [5.2256660278133404, 162.98589747611615, 33.866642667821026]
min index: 0
min component: star
Ws/TQs=0.191 WHI/TQHI=0.001 WCO/TQCO=0.002
Ws=1.000 WHI=0.121 WCO=0.066
QRW=5.153
Qs=5.419//3.670 Qg=16.349 Qeff=4.985//3.376
QRW < Qg : True
sR_max=215.44 sR_min=145.90 sR_RW=180.67, sR_RW*1.15=207.77
sR_max_factor=1.57 sR_min_factor=1.07
r=30.000
QTs: [4.8246463544228408, 58.129367762796065, 31.514959254148142]
min index: 0
min component: star
Ws/TQs=0.207 WHI/TQHI=0.002 WCO/TQCO=0.002
Ws=1.000 WHI=0.111 WCO=0.061
QRW=4.737
Qs=5.003//3.388 Qg=10.537 Qeff=4.578//3.101
QRW < Qg : True
sR_max=235.72 sR_min=159.63 sR_RW=197.68, sR_RW*1.15=227.33
sR_max_factor=1.57 sR_min_factor=1.07
r=45.000
QTs: [4.2888593766703975, 25.10227688877865, 36.144883527244261]
min index: 0
min component: star
Ws/TQs=0.233 WHI/TQHI=0.005 WCO/TQCO=0.002
Ws=1.000 WHI=0.123 WCO=0.067
QRW=4.168
Qs=4.447//3.012 Qg=6.620 Qeff=4.019//2.722
QRW < Qg : True
sR_max=211.77 sR_min=143.41 sR_RW=177.59, sR_RW*1.15=204.23
sR_max_factor=1.57 sR_min_factor=1.07
r=60.000
QTs: [5.9408269765050647, 19.423914418165186, 70.358234916969849]
min index: 0
min component: star
Ws/TQs=0.168 WHI/TQHI=0.007 WCO/TQCO=0.001
Ws=1.000 WHI=0.140 WCO=0.077
QRW=5.661
Qs=6.160//4.172 Qg=6.139 Qeff=5.435//3.681
QRW < Qg : True
sR_max=186.01 sR_min=125.96 sR_RW=155.99, sR_RW*1.15=179.38
sR_max_factor=1.57 sR_min_factor=1.07
r=75.000
QTs: [8.7274242845946812, 16.807294466536881, 129.88207743019416]
min index: 0
min component: star
Ws/TQs=0.115 WHI/TQHI=0.008 WCO/TQCO=0.001
Ws=1.000 WHI=0.133 WCO=0.073
QRW=8.125
Qs=9.050//6.128 Qg=5.709 Qeff=5.495//5.253
QRW < Qg : False
sR_max=195.99 sR_min=132.72 sR_RW=164.35, sR_RW*1.15=189.01
sR_max_factor=1.57 sR_min_factor=1.07
r=90.000
QTs: [10.441220519502828, 15.220730682446023, 220.29366035785381]
min index: 0
min component: star
Ws/TQs=0.096 WHI/TQHI=0.009 WCO/TQCO=0.000
Ws=1.000 WHI=0.133 WCO=0.073
QRW=9.536
Qs=10.827//7.332 Qg=5.334 Qeff=5.177//5.000
QRW < Qg : False
sR_max=195.99 sR_min=132.72 sR_RW=164.35, sR_RW*1.15=189.01
sR_max_factor=1.57 sR_min_factor=1.07
r=105.000
QTs: [11.684234875583297, 14.288572554386, 370.50046139769682]
min index: 0
min component: star
Ws/TQs=0.086 WHI/TQHI=0.009 WCO/TQCO=0.000
Ws=1.000 WHI=0.133 WCO=0.073
QRW=10.514
Qs=12.116//8.205 Qg=5.089 Qeff=4.961//4.816
QRW < Qg : False
sR_max=195.99 sR_min=132.72 sR_RW=164.35, sR_RW*1.15=189.01
sR_max_factor=1.57 sR_min_factor=1.07
r=120.000
QTs: [13.022325141348912, 13.57201729720574, 648.7948908973392]
min index: 0
min component: star
Ws/TQs=0.077 WHI/TQHI=0.010 WCO/TQCO=0.000
Ws=1.000 WHI=0.133 WCO=0.073
QRW=11.531
Qs=13.503//9.144 Qg=4.880 Qeff=4.774//4.654
QRW < Qg : False
sR_max=195.99 sR_min=132.72 sR_RW=164.35, sR_RW*1.15=189.01
sR_max_factor=1.57 sR_min_factor=1.07
r=135.000
QTs: [15.19565381278835, 12.680210660427161, 1226.8736527771478]
min index: 1
min component: HI
Ws/TQs=0.009 WHI/TQHI=0.079 WCO/TQCO=0.001
Ws=0.133 WHI=1.000 WCO=0.841
QRW=11.323
Qs=15.757//10.671 Qg=4.585 Qeff=4.505//4.414
QRW < Qg : False
sR_max=195.99 sR_min=132.72 sR_RW=164.35, sR_RW*1.15=189.01
sR_max_factor=1.57 sR_min_factor=1.07
=============
n2985_modelKmax
=============
r=30.000
QTs: [2.3854156582245643, 24.164030271492258, 3.3275747740409369]
min index: 0
min component: star
Ws/TQs=0.419 WHI/TQHI=0.007 WCO/TQCO=0.029
Ws=1.000 WHI=0.179 WCO=0.098
QRW=2.193
Qs=2.610//1.539 Qg=1.771 Qeff=1.681//1.298
QRW < Qg : False
sR_max=153.63 sR_min=90.59 sR_RW=122.11, sR_RW*1.15=140.43
sR_max_factor=2.08 sR_min_factor=1.23
r=60.000
QTs: [2.616685282772818, 11.800908437335229, 4.1539801190929326]
min index: 0
min component: star
Ws/TQs=0.382 WHI/TQHI=0.018 WCO/TQCO=0.028
Ws=1.000 WHI=0.209 WCO=0.115
QRW=2.339
Qs=2.863//1.688 Qg=1.683 Qeff=1.596//1.374
QRW < Qg : False
sR_max=130.83 sR_min=77.15 sR_RW=103.99, sR_RW*1.15=119.59
sR_max_factor=2.08 sR_min_factor=1.23
r=90.000
QTs: [4.4171244759805512, 8.7234617412098423, 86.497464679494229]
min index: 0
min component: star
Ws/TQs=0.226 WHI/TQHI=0.025 WCO/TQCO=0.001
Ws=1.000 WHI=0.218 WCO=0.120
QRW=3.956
Qs=4.832//2.850 Qg=3.007 Qeff=2.836//2.323
QRW < Qg : False
sR_max=125.23 sR_min=73.85 sR_RW=99.54, sR_RW*1.15=114.47
sR_max_factor=2.08 sR_min_factor=1.23
r=120.000
QTs: [8.8183138713819549, 7.7409505236865748, inf]
min index: 1
min component: HI
Ws/TQs=0.024 WHI/TQHI=0.129 WCO/TQCO=0.000
Ws=0.214 WHI=1.000 WCO=0.841
QRW=6.519
Qs=9.647//5.689 Qg=2.815 Qeff=2.740//2.609
QRW < Qg : False
sR_max=128.12 sR_min=75.55 sR_RW=101.84, sR_RW*1.15=117.11
sR_max_factor=2.08 sR_min_factor=1.23
r=150.000
QTs: [18.44610052744558, 6.8647484938936536, inf]
min index: 1
min component: HI
Ws/TQs=0.012 WHI/TQHI=0.146 WCO/TQCO=0.000
Ws=0.214 WHI=1.000 WCO=0.841
QRW=6.359
Qs=20.180//11.900 Qg=2.496 Qeff=2.468//2.417
QRW < Qg : False
sR_max=128.12 sR_min=75.55 sR_RW=101.84, sR_RW*1.15=117.11
sR_max_factor=2.08 sR_min_factor=1.23
=============
n1167_modelRmax
=============
r=15.000
QTs: [4.076297033144046, 120.17304712421897, 186.56205066149772]
min index: 0
min component: star
Ws/TQs=0.245 WHI/TQHI=0.001 WCO/TQCO=0.000
Ws=1.000 WHI=0.083 WCO=0.045
QRW=4.061
Qs=4.460//2.630 Qg=32.337 Qeff=4.153//2.449
QRW < Qg : True
sR_max=332.07 sR_min=195.82 sR_RW=263.95, sR_RW*1.15=303.54
sR_max_factor=2.02 sR_min_factor=1.21
r=30.000
QTs: [2.6594036337669702, 34.268227530997144, 174.40940254645056]
min index: 0
min component: star
Ws/TQs=0.376 WHI/TQHI=0.003 WCO/TQCO=0.000
Ws=1.000 WHI=0.119 WCO=0.065
QRW=2.632
Qs=2.909//1.716 Qg=11.255 Qeff=2.689//1.586
QRW < Qg : True
sR_max=231.75 sR_min=136.66 sR_RW=184.20, sR_RW*1.15=211.83
sR_max_factor=2.02 sR_min_factor=1.21
r=45.000
QTs: [2.0169517764754565, 15.643304212878347, 214.39351282227082]
min index: 0
min component: star
Ws/TQs=0.496 WHI/TQHI=0.012 WCO/TQCO=0.000
Ws=1.000 WHI=0.192 WCO=0.105
QRW=1.966
Qs=2.207//1.301 Qg=5.471 Qeff=2.002//1.181
QRW < Qg : True
sR_max=142.99 sR_min=84.32 sR_RW=113.65, sR_RW*1.15=130.70
sR_max_factor=2.02 sR_min_factor=1.21
r=60.000
QTs: [2.3288093380470856, 10.319078207429998, 307.13936680452809]
min index: 0
min component: star
Ws/TQs=0.429 WHI/TQHI=0.023 WCO/TQCO=0.000
Ws=1.000 WHI=0.237 WCO=0.130
QRW=2.209
Qs=2.548//1.502 Qg=3.685 Qeff=2.233//1.317
QRW < Qg : True
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=75.000
QTs: [3.8054612709741504, 9.8020709515110696, 501.9007371133506]
min index: 0
min component: star
Ws/TQs=0.263 WHI/TQHI=0.024 WCO/TQCO=0.000
Ws=1.000 WHI=0.237 WCO=0.130
QRW=3.482
Qs=4.163//2.455 Qg=3.527 Qeff=3.235//2.058
QRW < Qg : True
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=90.000
QTs: [6.3794617097385409, 11.135474859972648, 841.4019972931012]
min index: 0
min component: star
Ws/TQs=0.157 WHI/TQHI=0.021 WCO/TQCO=0.000
Ws=1.000 WHI=0.237 WCO=0.130
QRW=5.613
Qs=6.979//4.115 Qg=4.020 Qeff=3.791//3.277
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=105.000
QTs: [9.4021955350790698, 11.626473558790336, 1240.1030017820049]
min index: 0
min component: star
Ws/TQs=0.106 WHI/TQHI=0.020 WCO/TQCO=0.000
Ws=1.000 WHI=0.237 WCO=0.130
QRW=7.885
Qs=10.286//6.066 Qg=4.206 Qeff=4.035//3.737
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=120.000
QTs: [9.6219695651403061, 7.6821385604359342, 1269.1163382927814]
min index: 1
min component: HI
Ws/TQs=0.025 WHI/TQHI=0.130 WCO/TQCO=0.001
Ws=0.237 WHI=1.000 WCO=0.841
QRW=6.433
Qs=10.527//6.207 Qg=2.784 Qeff=2.710//2.580
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=135.000
QTs: [16.331167404759615, 7.5434605100929772, 2154.0891007288847]
min index: 1
min component: HI
Ws/TQs=0.014 WHI/TQHI=0.133 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=6.782
Qs=17.867//10.536 Qg=2.738 Qeff=2.695//2.619
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=150.000
QTs: [32.552477082965765, 8.1780683395638381, 4293.7766593973902]
min index: 1
min component: HI
Ws/TQs=0.007 WHI/TQHI=0.122 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=7.707
Qs=35.613//21.000 Qg=2.971 Qeff=2.946//2.900
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=165.000
QTs: [57.348221496878814, 8.4901110460254383, 7564.5716258071534]
min index: 1
min component: HI
Ws/TQs=0.004 WHI/TQHI=0.118 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=8.195
Qs=62.740//36.996 Qg=3.085 Qeff=3.070//3.042
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=180.000
QTs: [97.935610615857783, 9.4969123382425575, 12918.556746903794]
min index: 1
min component: HI
Ws/TQs=0.002 WHI/TQHI=0.105 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=9.278
Qs=107.143//63.180 Qg=3.452 Qeff=3.441//3.420
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=195.000
QTs: [165.52871464929393, 11.918247631522823, 21835.124921838069]
min index: 1
min component: HI
Ws/TQs=0.001 WHI/TQHI=0.084 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=11.713
Qs=181.091//106.785 Qg=4.333 Qeff=4.322//4.303
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=210.000
QTs: [273.94441702087175, 16.079619301723639, 36137.139193720679]
min index: 1
min component: HI
Ws/TQs=0.001 WHI/TQHI=0.062 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=15.853
Qs=299.699//176.726 Qg=5.846 Qeff=5.834//5.813
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
r=225.000
QTs: [436.46554879462451, 22.743924441066685, 57577.16279629714]
min index: 1
min component: HI
Ws/TQs=0.001 WHI/TQHI=0.044 WCO/TQCO=0.000
Ws=0.237 WHI=1.000 WCO=0.841
QRW=22.459
Qs=477.499//281.571 Qg=8.269 Qeff=8.254//8.227
QRW < Qg : False
sR_max=115.24 sR_min=67.96 sR_RW=91.60, sR_RW*1.15=105.34
sR_max_factor=2.02 sR_min_factor=1.21
=============
n5533_modelRmax
=============
r=15.000
QTs: [3.648965835922529, 17.391209699572105, 2.8297730513485839]
min index: 2
min component: H2
Ws/TQs=0.021 WHI/TQHI=0.048 WCO/TQCO=0.353
Ws=0.077 WHI=0.841 WCO=1.000
QRW=2.364
Qs=3.838//2.508 Qg=1.453 Qeff=1.419//1.374
QRW < Qg : False
sR_max=187.24 sR_min=122.38 sR_RW=154.81, sR_RW*1.15=178.03
sR_max_factor=1.70 sR_min_factor=1.11
r=30.000
QTs: [2.5482461966394112, 9.1367105578936645, 2.3569267014840403]
min index: 2
min component: H2
Ws/TQs=0.034 WHI/TQHI=0.092 WCO/TQCO=0.424
Ws=0.086 WHI=0.841 WCO=1.000
QRW=1.817
Qs=2.680//1.752 Qg=1.067 Qeff=1.037//0.999
QRW < Qg : False
sR_max=167.65 sR_min=109.58 sR_RW=138.61, sR_RW*1.15=159.41
sR_max_factor=1.70 sR_min_factor=1.11
r=45.000
QTs: [2.1522447115686063, 6.7878764440299939, 2.570848436636231]
min index: 0
min component: star
Ws/TQs=0.465 WHI/TQHI=0.028 WCO/TQCO=0.040
Ws=1.000 WHI=0.188 WCO=0.103
QRW=1.879
Qs=2.264//1.479 Qg=1.012 Qeff=0.974//0.927
QRW < Qg : False
sR_max=140.57 sR_min=91.87 sR_RW=116.22, sR_RW*1.15=133.65
sR_max_factor=1.70 sR_min_factor=1.11
r=60.000
QTs: [1.9306266238772409, 5.5509706240936989, 3.308894298750634]
min index: 0
min component: star
Ws/TQs=0.518 WHI/TQHI=0.042 WCO/TQCO=0.038
Ws=1.000 WHI=0.230 WCO=0.127
QRW=1.673
Qs=2.031//1.327 Qg=1.054 Qeff=0.999//0.931
QRW < Qg : False
sR_max=113.90 sR_min=74.45 sR_RW=94.17, sR_RW*1.15=108.30
sR_max_factor=1.70 sR_min_factor=1.11
r=75.000
QTs: [1.9039694012804425, 4.4511386000496405, 6.0289777723581484]
min index: 0
min component: star
Ws/TQs=0.525 WHI/TQHI=0.061 WCO/TQCO=0.025
Ws=1.000 WHI=0.270 WCO=0.149
QRW=1.637
Qs=2.002//1.309 Qg=1.154 Qeff=1.076//0.982
QRW < Qg : False
sR_max=96.59 sR_min=63.13 sR_RW=79.86, sR_RW*1.15=91.83
sR_max_factor=1.70 sR_min_factor=1.11
r=90.000
QTs: [2.2765840900370389, 3.8423932598557, 31.43144773113162]
min index: 0
min component: star
Ws/TQs=0.439 WHI/TQHI=0.071 WCO/TQCO=0.005
Ws=1.000 WHI=0.273 WCO=0.151
QRW=1.942
Qs=2.394//1.565 Qg=1.310 Qeff=1.225//1.122
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
r=105.000
QTs: [2.8529121873381946, 3.9614563040309383, inf]
min index: 0
min component: star
Ws/TQs=0.351 WHI/TQHI=0.069 WCO/TQCO=0.000
Ws=1.000 WHI=0.273 WCO=0.151
QRW=2.385
Qs=3.001//1.961 Qg=1.441 Qeff=1.358//1.258
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
r=120.000
QTs: [3.7557366938445509, 4.7098884804973489, inf]
min index: 0
min component: star
Ws/TQs=0.266 WHI/TQHI=0.058 WCO/TQCO=0.000
Ws=1.000 WHI=0.273 WCO=0.151
QRW=3.085
Qs=3.950//2.582 Qg=1.713 Qeff=1.624//1.515
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
r=135.000
QTs: [5.2559446116197011, 5.3711212311278089, inf]
min index: 0
min component: star
Ws/TQs=0.190 WHI/TQHI=0.051 WCO/TQCO=0.000
Ws=1.000 WHI=0.273 WCO=0.151
QRW=4.149
Qs=5.528//3.613 Qg=1.953 Qeff=1.871//1.768
QRW < Qg : False
sR_max=95.76 sR_min=62.59 sR_RW=79.18, sR_RW*1.15=91.05
sR_max_factor=1.70 sR_min_factor=1.11
=============
n2985_model36max
=============
r=30.000
QTs: [2.7465310716775075, 24.164030271492258, 3.3275747740409369]
min index: 0
min component: star
Ws/TQs=0.364 WHI/TQHI=0.007 WCO/TQCO=0.029
Ws=1.000 WHI=0.179 WCO=0.098
QRW=2.494
Qs=3.005//1.772 Qg=1.771 Qeff=1.693//1.472
QRW < Qg : False
sR_max=153.63 sR_min=90.59 sR_RW=122.11, sR_RW*1.15=140.43
sR_max_factor=2.08 sR_min_factor=1.23
r=60.000
QTs: [4.1450061462722987, 11.800908437335229, 4.1539801190929326]
min index: 0
min component: star
Ws/TQs=0.241 WHI/TQHI=0.018 WCO/TQCO=0.028
Ws=1.000 WHI=0.209 WCO=0.115
QRW=3.488
Qs=4.535//2.674 Qg=1.683 Qeff=1.628//1.531
QRW < Qg : False
sR_max=130.83 sR_min=77.15 sR_RW=103.99, sR_RW*1.15=119.59
sR_max_factor=2.08 sR_min_factor=1.23
r=90.000
QTs: [5.9222078556282618, 8.7234617412098423, 86.497464679494229]
min index: 0
min component: star
Ws/TQs=0.169 WHI/TQHI=0.025 WCO/TQCO=0.001
Ws=1.000 WHI=0.218 WCO=0.120
QRW=5.121
Qs=6.479//3.821 Qg=3.007 Qeff=2.878//2.656
QRW < Qg : False
sR_max=125.23 sR_min=73.85 sR_RW=99.54, sR_RW*1.15=114.47
sR_max_factor=2.08 sR_min_factor=1.23
r=120.000
QTs: [8.6274790910055241, 7.7409505236865748, inf]
min index: 1
min component: HI
Ws/TQs=0.025 WHI/TQHI=0.129 WCO/TQCO=0.000
Ws=0.214 WHI=1.000 WCO=0.841
QRW=6.496
Qs=9.439//5.566 Qg=2.815 Qeff=2.739//2.604
QRW < Qg : False
sR_max=128.12 sR_min=75.55 sR_RW=101.84, sR_RW*1.15=117.11
sR_max_factor=2.08 sR_min_factor=1.23
r=150.000
QTs: [12.78085906342139, 6.8647484938936536, inf]
min index: 1
min component: HI
Ws/TQs=0.017 WHI/TQHI=0.146 WCO/TQCO=0.000
Ws=0.214 WHI=1.000 WCO=0.841
QRW=6.158
Qs=13.982//8.245 Qg=2.496 Qeff=2.456//2.383
QRW < Qg : False
sR_max=128.12 sR_min=75.55 sR_RW=101.84, sR_RW*1.15=117.11
sR_max_factor=2.08 sR_min_factor=1.23
=============
n338_modelR
=============
r=19.862
QTs: [3.3639755771953515, 5.097065392481964, 3.5687503819482203]
min index: 0
min component: star
Ws/TQs=0.297 WHI/TQHI=0.047 WCO/TQCO=0.037
Ws=1.000 WHI=0.237 WCO=0.131
QRW=2.628
Qs=3.475//2.375 Qg=1.042 Qeff=1.009//0.973
QRW < Qg : False
sR_max=108.49 sR_min=74.13 sR_RW=91.31, sR_RW*1.15=105.01
sR_max_factor=1.54 sR_min_factor=1.05
r=29.931
QTs: [3.9402726621016444, 4.5308227779077352, 4.7506965627215445]
min index: 0
min component: star
Ws/TQs=0.254 WHI/TQHI=0.059 WCO/TQCO=0.031
Ws=1.000 WHI=0.269 WCO=0.149
QRW=2.904
Qs=4.071//2.782 Qg=1.084 Qeff=1.049//1.012
QRW < Qg : False
sR_max=95.46 sR_min=65.23 sR_RW=80.35, sR_RW*1.15=92.40
sR_max_factor=1.54 sR_min_factor=1.05
r=39.862
QTs: [5.0220162449963945, 3.9654204251435798, 5.7913763228158999]
min index: 1
min component: HI
Ws/TQs=0.051 WHI/TQHI=0.252 WCO/TQCO=0.145
Ws=0.257 WHI=1.000 WCO=0.841
QRW=2.229
Qs=5.188//3.546 Qg=1.050 Qeff=1.025//0.998
QRW < Qg : False
sR_max=99.80 sR_min=68.20 sR_RW=84.00, sR_RW*1.15=96.60
sR_max_factor=1.54 sR_min_factor=1.05
r=49.931
QTs: [5.9465662485689235, 3.9485098039976818, 7.2596878850550786]
min index: 1
min component: HI
Ws/TQs=0.046 WHI/TQHI=0.253 WCO/TQCO=0.116
Ws=0.272 WHI=1.000 WCO=0.841
QRW=2.411
Qs=6.144//4.198 Qg=1.107 Qeff=1.083//1.056
QRW < Qg : False
sR_max=94.28 sR_min=64.43 sR_RW=79.35, sR_RW*1.15=91.25
sR_max_factor=1.54 sR_min_factor=1.05
r=59.862
QTs: [8.536894951674423, 4.6434562919840516, 10.422201954000855]
min index: 1
min component: HI
Ws/TQs=0.032 WHI/TQHI=0.215 WCO/TQCO=0.081
Ws=0.272 WHI=1.000 WCO=0.841
QRW=3.050
Qs=8.820//6.027 Qg=1.358 Qeff=1.333//1.305
QRW < Qg : False
sR_max=94.28 sR_min=64.43 sR_RW=79.35, sR_RW*1.15=91.25
sR_max_factor=1.54 sR_min_factor=1.05
r=69.931
QTs: [12.687380388205833, 5.2119142996938859, 15.489574081894327]
min index: 1
min component: HI
Ws/TQs=0.021 WHI/TQHI=0.192 WCO/TQCO=0.054
Ws=0.272 WHI=1.000 WCO=0.841
QRW=3.737
Qs=13.108//8.957 Qg=1.601 Qeff=1.577//1.551
QRW < Qg : False
sR_max=94.28 sR_min=64.43 sR_RW=79.35, sR_RW*1.15=91.25
sR_max_factor=1.54 sR_min_factor=1.05
r=80.000
QTs: [19.226491175615291, 6.8515566250907645, 23.473373886999031]
min index: 1
min component: HI
Ws/TQs=0.014 WHI/TQHI=0.146 WCO/TQCO=0.036
Ws=0.272 WHI=1.000 WCO=0.841
QRW=5.104
Qs=19.864//13.574 Qg=2.149 Qeff=2.121//2.089
QRW < Qg : False
sR_max=94.28 sR_min=64.43 sR_RW=79.35, sR_RW*1.15=91.25
sR_max_factor=1.54 sR_min_factor=1.05
r=89.931
QTs: [29.427629214589619, 10.483301977286125, 35.928461263374565]
min index: 1
min component: HI
Ws/TQs=0.009 WHI/TQHI=0.095 WCO/TQCO=0.023
Ws=0.272 WHI=1.000 WCO=0.841
QRW=7.810
Qs=30.403//20.776 Qg=3.289 Qeff=3.245//3.197
QRW < Qg : False
sR_max=94.28 sR_min=64.43 sR_RW=79.35, sR_RW*1.15=91.25
sR_max_factor=1.54 sR_min_factor=1.05
=============
n4258_model36max
=============
r=31.750
QTs: [4.9379205201208514, 12.668489831986385, 1.7461556297900807]
min index: 2
min component: H2
Ws/TQs=0.018 WHI/TQHI=0.066 WCO/TQCO=0.573
Ws=0.090 WHI=0.841 WCO=1.000
QRW=1.521
Qs=5.096//3.492 Qg=0.929 Qeff=0.917//0.903
QRW < Qg : False
sR_max=157.94 sR_min=108.23 sR_RW=133.08, sR_RW*1.15=153.04
sR_max_factor=1.53 sR_min_factor=1.05
r=50.362
QTs: [3.2150285408715331, 13.325282472204705, 3.3553003919951854]
min index: 0
min component: star
Ws/TQs=0.311 WHI/TQHI=0.015 WCO/TQCO=0.032
Ws=1.000 WHI=0.198 WCO=0.109
QRW=2.791
Qs=3.318//2.273 Qg=1.530 Qeff=1.468//1.402
QRW < Qg : False
sR_max=130.63 sR_min=89.51 sR_RW=110.07, sR_RW*1.15=126.58
sR_max_factor=1.53 sR_min_factor=1.05
r=70.069
QTs: [1.7680346131315645, 10.244573835773206, 3.8703857853315302]
min index: 0
min component: star
Ws/TQs=0.566 WHI/TQHI=0.021 WCO/TQCO=0.030
Ws=1.000 WHI=0.214 WCO=0.118
QRW=1.621
Qs=1.825//1.250 Qg=1.524 Qeff=1.405//1.051
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=89.775
QTs: [2.9731438259989083, 13.907769650553991, 6.8006378490774839]
min index: 0
min component: star
Ws/TQs=0.336 WHI/TQHI=0.015 WCO/TQCO=0.017
Ws=1.000 WHI=0.214 WCO=0.118
QRW=2.710
Qs=3.068//2.102 Qg=2.391 Qeff=2.216//1.754
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=109.482
QTs: [3.7457612876172894, 14.00542579916689, 15.525607326282447]
min index: 0
min component: star
Ws/TQs=0.267 WHI/TQHI=0.015 WCO/TQCO=0.008
Ws=1.000 WHI=0.214 WCO=0.118
QRW=3.451
Qs=3.866//2.649 Qg=3.413 Qeff=3.132//2.240
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=129.189
QTs: [3.6766195312664793, 10.457909246311072, 11.906871643690973]
min index: 0
min component: star
Ws/TQs=0.272 WHI/TQHI=0.020 WCO/TQCO=0.010
Ws=1.000 WHI=0.214 WCO=0.118
QRW=3.308
Qs=3.794//2.600 Qg=2.571 Qeff=2.407//2.133
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=148.896
QTs: [3.3234969697343488, 5.7700385192499812, inf]
min index: 0
min component: star
Ws/TQs=0.301 WHI/TQHI=0.037 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=2.959
Qs=3.430//2.350 Qg=2.098 Qeff=1.977//1.850
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=169.698
QTs: [3.0790826942833758, 5.3426202219181693, inf]
min index: 0
min component: star
Ws/TQs=0.325 WHI/TQHI=0.040 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=2.741
Qs=3.178//2.177 Qg=1.943 Qeff=1.830//1.713
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=190.499
QTs: [3.3232463978141107, 5.0606654651320007, inf]
min index: 0
min component: star
Ws/TQs=0.301 WHI/TQHI=0.042 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=2.914
Qs=3.430//2.350 Qg=1.840 Qeff=1.747//1.648
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=209.111
QTs: [3.6889156815737727, 6.7649221774519024, inf]
min index: 0
min component: star
Ws/TQs=0.271 WHI/TQHI=0.032 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=3.304
Qs=3.807//2.609 Qg=2.460 Qeff=2.310//2.126
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=228.818
QTs: [4.2187674692402242, 9.8237202372590886, inf]
min index: 0
min component: star
Ws/TQs=0.237 WHI/TQHI=0.022 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=3.864
Qs=4.354//2.983 Qg=3.572 Qeff=3.298//2.503
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=247.430
QTs: [4.8772238286897291, 10.719189986260178, inf]
min index: 0
min component: star
Ws/TQs=0.205 WHI/TQHI=0.020 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=4.445
Qs=5.033//3.449 Qg=3.898 Qeff=3.614//2.876
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=268.232
QTs: [5.8304336379392696, 11.807726766857261, inf]
min index: 0
min component: star
Ws/TQs=0.172 WHI/TQHI=0.018 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=5.274
Qs=6.017//4.123 Qg=4.294 Qeff=4.005//3.404
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=287.938
QTs: [6.9887243613288783, 7.9773011154006479, inf]
min index: 0
min component: star
Ws/TQs=0.143 WHI/TQHI=0.027 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=5.886
Qs=7.212//4.942 Qg=2.901 Qeff=2.789//2.671
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
=============
n4258_modelImax
=============
r=31.750
QTs: [3.830382689086631, 12.668489831986385, 1.7461556297900807]
min index: 2
min component: H2
Ws/TQs=0.023 WHI/TQHI=0.066 WCO/TQCO=0.573
Ws=0.090 WHI=0.841 WCO=1.000
QRW=1.509
Qs=3.953//2.709 Qg=0.929 Qeff=0.913//0.895
QRW < Qg : False
sR_max=157.94 sR_min=108.23 sR_RW=133.08, sR_RW*1.15=153.04
sR_max_factor=1.53 sR_min_factor=1.05
r=50.362
QTs: [2.6139130246491016, 13.325282472204705, 3.3553003919951854]
min index: 0
min component: star
Ws/TQs=0.383 WHI/TQHI=0.015 WCO/TQCO=0.032
Ws=1.000 WHI=0.198 WCO=0.109
QRW=2.327
Qs=2.698//1.848 Qg=1.530 Qeff=1.454//1.374
QRW < Qg : False
sR_max=130.63 sR_min=89.51 sR_RW=110.07, sR_RW*1.15=126.58
sR_max_factor=1.53 sR_min_factor=1.05
r=70.069
QTs: [1.5107958273043371, 10.244573835773206, 3.8703857853315302]
min index: 0
min component: star
Ws/TQs=0.662 WHI/TQHI=0.021 WCO/TQCO=0.030
Ws=1.000 WHI=0.214 WCO=0.118
QRW=1.402
Qs=1.559//1.068 Qg=1.524 Qeff=1.331//0.912
QRW < Qg : True
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=89.775
QTs: [2.6701745111503308, 13.907769650553991, 6.8006378490774839]
min index: 0
min component: star
Ws/TQs=0.375 WHI/TQHI=0.015 WCO/TQCO=0.017
Ws=1.000 WHI=0.214 WCO=0.118
QRW=2.456
Qs=2.756//1.888 Qg=2.391 Qeff=2.197//1.594
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=109.482
QTs: [3.5356766273789306, 14.00542579916689, 15.525607326282447]
min index: 0
min component: star
Ws/TQs=0.283 WHI/TQHI=0.015 WCO/TQCO=0.008
Ws=1.000 WHI=0.214 WCO=0.118
QRW=3.271
Qs=3.649//2.500 Qg=3.413 Qeff=3.102//2.126
QRW < Qg : True
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=129.189
QTs: [3.6474541741703836, 10.457909246311072, 11.906871643690973]
min index: 0
min component: star
Ws/TQs=0.274 WHI/TQHI=0.020 WCO/TQCO=0.010
Ws=1.000 WHI=0.214 WCO=0.118
QRW=3.284
Qs=3.764//2.579 Qg=2.571 Qeff=2.406//2.118
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=148.896
QTs: [3.4653344409197069, 5.7700385192499812, inf]
min index: 0
min component: star
Ws/TQs=0.289 WHI/TQHI=0.037 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=3.071
Qs=3.576//2.451 Qg=2.098 Qeff=1.982//1.859
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=169.698
QTs: [3.3836109225093001, 5.3426202219181693, inf]
min index: 0
min component: star
Ws/TQs=0.296 WHI/TQHI=0.040 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=2.980
Qs=3.492//2.393 Qg=1.943 Qeff=1.840//1.733
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=190.499
QTs: [3.848848403847474, 5.0606654651320007, inf]
min index: 0
min component: star
Ws/TQs=0.260 WHI/TQHI=0.042 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=3.311
Qs=3.972//2.722 Qg=1.840 Qeff=1.759//1.673
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=209.111
QTs: [4.4779085610900102, 6.7649221774519024, inf]
min index: 0
min component: star
Ws/TQs=0.223 WHI/TQHI=0.032 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=3.923
Qs=4.621//3.167 Qg=2.460 Qeff=2.336//2.205
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=228.818
QTs: [5.3823358612082046, 9.8237202372590886, inf]
min index: 0
min component: star
Ws/TQs=0.186 WHI/TQHI=0.022 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=4.818
Qs=5.554//3.806 Qg=3.572 Qeff=3.355//3.100
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=247.430
QTs: [6.5217796668526677, 10.719189986260178, inf]
min index: 0
min component: star
Ws/TQs=0.153 WHI/TQHI=0.020 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=5.771
Qs=6.730//4.612 Qg=3.898 Qeff=3.684//3.460
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=268.232
QTs: [8.2168146332405154, 11.807726766857261, inf]
min index: 0
min component: star
Ws/TQs=0.122 WHI/TQHI=0.018 WCO/TQCO=0.000
Ws=1.000 WHI=0.214 WCO=0.118
QRW=7.153
Qs=8.480//5.810 Qg=4.294 Qeff=4.087//3.869
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05
r=287.938
QTs: [10.351642348933433, 7.9773011154006479, inf]
min index: 1
min component: HI
Ws/TQs=0.021 WHI/TQHI=0.125 WCO/TQCO=0.000
Ws=0.214 WHI=1.000 WCO=0.841
QRW=6.849
Qs=10.683//7.320 Qg=2.901 Qeff=2.825//2.743
QRW < Qg : False
sR_max=120.70 sR_min=82.71 sR_RW=101.71, sR_RW*1.15=116.96
sR_max_factor=1.53 sR_min_factor=1.05

Посмотрим на нее и на грубо уменьшенные по толщине для 338, а также что где доминирует:


In [76]:
model = models['n338_modelR']
plt.plot(model['r_g_dens'], model['invQeff_min'], '-')

plt.plot(model['r_g_dens'], np.array(model['invQeff_min'])/1.15, '--')
plt.plot(model['r_g_dens'], np.array(model['invQeff_min'])/3., '--')

plt.plot(model['r_g_dens'], model['invQeff_max'], '-')
plt.plot(model['r_g_dens'], model['fiducialQ'], '--')
for ind, comp in enumerate(model['mincomp']):
    if comp == 'star':
        marker = '*'
    elif comp == 'HI':
        marker = 's'
    elif comp == 'H2':
        marker = 'd'
    plt.scatter(model['r_g_dens'][ind], model['fiducialQ'][ind], 30., marker=marker)


Видно, что почти в три раза уменьшилось - ибо газ делится на два, больше дисперсия у части и еще и толщина.

Проверим также на примере одной точки из работы Romeo что все правильно работает:


In [77]:
# https://arxiv.org/pdf/1602.03049v2.pdf, R=~1 kpc

rom, _ = romeo_Qinv(r=r, epicycl=290., sound_vel_CO=28., sound_vel_HI=11., sigma_R=112., 
               star_density=5426., HI_density=0.1, CO_density=730., alpha=0.6, thin=False, verbose=True, He_corr=True)
print(1./rom, _)


QTs: [0.538099318864436, 3525.724086549626, 1.2293932057707289]
min index: 0
min component: star
Ws/TQs=1.858 WHI/TQHI=0.000 WCO/TQCO=0.383
Ws=1.000 WHI=0.195 WCO=0.471
(0.4461837550258639, 'star')

Главная картинка

Масштабы


In [78]:
models['n338_modelB']['disk_scales'] = 17.7
models['n338_modelR']['disk_scales'] = 18.3
models['n1167_modelRsubmax']['disk_scales'] = -10.
models['n1167_modelRmax']['disk_scales'] = 24.2
models['n2985_modelKmax']['disk_scales'] = 31.1
models['n2985_model36max']['disk_scales'] = [12.8, 48.9]
models['n3898_modelRmax']['disk_scales'] = 36.2
models['n3898_modelR2dmax']['disk_scales'] = [19.11, 59.9]
models['n4258_model36max']['disk_scales'] = 80.7
models['n4258_modelImax']['disk_scales'] = 74.2
models['n4725_model36max']['disk_scales'] = 73.2
models['n4725_modelHmax']['disk_scales'] = 50.28
models['n5533_modelRzeroH2']['disk_scales'] = -10.
models['n5533_modelr']['disk_scales'] = 28.0
models['n5533_modelRmax']['disk_scales'] = 34.4

In [79]:
def plot_2f_vs_1f_(ax=None, total_gas_data=None, epicycl=None, gas_approx=None, sound_vel=None, scale=None, sigma_max=None, sigma_min=None, star_density_max=None, band=None,
                  star_density_min=None, data_lim=None, color=None, alpha=0.4, disk_scales=[], label=None, name=None, invQeff_min=None, 
                   invQeff_max = None, Qgs = None, hatch=None,**kwargs):    
    
    rr = zip(*total_gas_data)[0]
    
    invQg = [1/_ for _ in Qgs]
    
    ax.fill_between(rr, invQeff_min, invQeff_max, color=color, alpha=alpha, label=r'$' + band + '$', hatch=hatch, edgecolor='grey')
    ax.plot(rr, invQeff_min, 'd-', color=color, alpha=0.6, lw=2)
    ax.plot(rr, invQeff_max, 'd-', color=color, alpha=0.6, lw=2)
    ax.plot(rr, invQg, 'o-', color='b', lw=2)

    ax.set_ylim(0., 1.3)
    ax.set_xlim(0., data_lim+50.)
    ax.axvline(x=data_lim, ls=':', color='black', alpha=0.5, lw=4)
    if type(disk_scales) == list:
        for h in disk_scales:
            ax.fill_between([h-0.3, h+0.3], [0., 0.], [0.1, 0.1], color=color, alpha=0.6, hatch=hatch, edgecolor='grey')
    else:
        ax.fill_between([disk_scales-0.3, disk_scales+0.3], [0.,0.], [0.1, 0.1], color=color, alpha=0.6, hatch=hatch, edgecolor='grey')
    if name in ['NGC 5533', 'NGC 4725']:
        ax.legend(fontsize=30, loc='lower right')
    elif name == 'NGC 5533':
        ax.legend(fontsize=30, ncol=2)
    else:
        ax.legend(fontsize=30)
    ax.xaxis.grid(True)


fi, axes = plt.subplots(ncols=1, nrows=7, figsize=[20., 30.], sharex=True)
for ind, name in enumerate(['n338', 'n1167', 'n2985', 'n3898', 'n4258', 'n4725', 'n5533']):
    ax = axes[ind]
    count = 0
    hatch = None
    for key in models.keys():
        if name in key:
            model = models[key]
            if count > 0:
                hatch = [None, '.', 'o'][count]
            print 'plot {}'.format(key)
            plot_2f_vs_1f_(ax, hatch=hatch, **model)
            SF[name](ax)
            count+=1
    ax.text(5, 1.1, r'$\rm{NGC\:'+name[1:]+'}}$', fontsize=40)
    if name == 'n5533':
        ax.legend(fontsize=30, ncol=2, loc='lower right')
    
    if ind == 6:
        ax.set_xlabel(r'$R, arcsec$', fontsize=30)
    ax.set_ylabel(r'$Q_{eff}^{-1}$', fontsize=25)
    for q_ in [1., 1.5, 2., 3.]:
        ax.axhline(y=1./q_, lw=10, alpha=0.15, color='grey')
#     ax.set_yticks(['', '0.2', '0.4', '0.6', '0.8', '1.0', ''])
    plt.setp(ax.get_yticklabels()[0], visible=False)
    plt.setp(ax.get_yticklabels()[-1], visible=False)
    
plt.tight_layout(pad=0.1, w_pad=0.1, h_pad=0.0)
# fig.subplots_adjust(wspace=0.01, hspace=0.02)
    
plt.savefig(paper_imgs_dir+'allQeff.eps', format='eps', bbox_inches='tight')
plt.savefig(paper_imgs_dir+'allQeff.png', format='png', bbox_inches='tight')
plt.savefig(paper_imgs_dir+'allQeff.pdf', format='pdf', dpi=150, bbox_inches='tight')
    
plt.show();


plot n338_modelB
plot n338_modelR
plot n1167_modelRsubmax
plot n1167_modelRmax
plot n2985_modelKmax
plot n2985_model36max
plot n3898_modelRmax
plot n3898_modelR2dmax
plot n4258_model36max
plot n4258_modelImax
plot n4725_model36max
plot n4725_modelHmax
plot n5533_modelRzeroH2
plot n5533_modelr
plot n5533_modelRmax