Máté Ádámkovics


navigate to the right to change topics and down for additional depth & detail.
(last updated: May 2015)

I am a Researcher in the Astronomy Department at UC Berkeley.

You can find short summaries of my work here and perhaps some relevant information about me.

Here's a CV and a photo of me observing at Keck

Planetary Atmospheres

The Sunlight that we can observe illuminating a planet carries information about the distant atmosphere. We know that a diverse range of exotic physical environments exist among the planets and their moons. I study these places with telescopes on Earth and instruments on spacecraft. Using infrared spectroscopy, we can study the atmospheric physics of clouds, precipation, and circulation in a wide variety circumstances. A few specific examples what I've worked on are described below:


The weather is a daily reminder of the changes in our environment, and can inspire the search for a deeper understanding of our physical world. From the local weekly weather forecast, to knowledge of regional and seasonal conditions, to predicting the global climate response of our atmosphere in the coming decades due to significant anthropogenic changes, there are intriguing challenges in understanding our atmosphere.

An example of how I made measurements using two of the largest optical/IR telescopes in the world, together with data from the Cassini spacecraft, to measure the methane humidity variation on Titan is described in the preprint below.

From the literature:

Ádámkovics et al. (2015, preprint)

Mitchell et al. (2011)

Ádámkovics et al. (2010)

Since the Cassini mission to the Saturn system, it has become possible to evaluate the physics and models that we use to address these challenges on Earth by applying our understanding to exotic environments with fascinating meteorology. Saturn’s largest moon, Titan, is the one place in the Solar System beyond our planet where fluids on a rocky surface interact with a dense atmosphere forming clouds, fog, and rain, in a strangely familiar hydrological cycle that operates at 290 degrees below zero. In these frigid conditions, the role of water is played by methane, the dominant component of natural gas. I use measurements from telescopes on Earth and the Cassini spacecraft to inform our knowledge of weather in the Saturn system.

Giant Planets

Clouds are a visual diagnostic of horizontal motions on the giant planets, and spectroscopy can be used to determine the altitude structure. Measurements of both images and spectra — sometimes referred to as hyper-spectral data, integral-field spectral cubes, or spatially-resolved spectra — can provide a 3-dimensional picture of the fluid motions in the atmospheres of giant planets.

From the literature:

Luszcz-Cook et al. (2010)

de Pater et al. (2011)

Radiative Transfer Models

At near-infrared wavelengths, in the cold outer solar system, the dominant processes for altering the rays of Sunlight as they travel through an atmosphere are absorption by gas molecules and scattering by particles, such as clouds (big droplets or crystals) and aerosols (small hydrocarbons, usually). The physics can be written down in a straightfoward way, and models of the atmosphere can be created. The azimuthally-averaged radiative transfer equation for discrete layers, $i$, along the path $\mu$ is

$I(\tau_i,\mu) = I(\tau_{i+1},\mu) \, e^{-\delta\tau_i/\mu} + \int\limits\limits_{0}^{\delta\tau_i} S(\tau',\mu) e^{-\tau'/\mu} \frac{d\tau'}{\mu}$

where the source function is

$S(\tau',\mu) = \overbrace{ \frac{\tilde{\omega}}{4\pi} \, (\pi F_0) \, P(\mu,-\mu_0) \, e^{-\tau/\mu_0} }^{\mathrm{single \; scattering}} + \overbrace{ \int\limits\limits_{-1}^1 \frac{\tilde\omega}{2} \, I(\tau,\mu') \, P(\mu,\mu')\, d\mu' }^{\mathrm{multiple \; scattering}}$

In the top expression, the first term in the is the direct contribution of gas and particle absorption, and the second (integral) term is the diffuse contribution from scattering. Solving this problem numerically is used to calculate spectra from atmospheric models that are compared to observations.

The code for my models is available on github.

If you find the code useful, please cite my 2015 paper where this particular code is first described, and if you encounter problems, email me mate@berkeley.edu.

Protoplanetary Disk Atmospheres

The flared disk of material around young stars is observed to have a gaseous atmosphere evidenced by atomic ion and molecular emission lines. Temperatures of a few thousand Kelvin are indicated by CO, as well as temperatures of several hundred by the observations of water and small organic molecules. These gas temperatures can be much hotter than the dust continuum emission. One guess about the mechanism that is responsbile for producing such high temperatures is represented by an equation for accretion heating,

$\hspace{2cm}\Lambda_{\rm acc} = 9\alpha_{h} \rho c^2 \Omega/4.$

However, a problem exists in that $\alpha_h$ is not directly constrained by observations, nor is it unambiguously determined by theory. In fact, it's not all that clear that this equation correctly represents all of the most relevant physics. Recently, we been exploring the relative roles of FUV and accretion heating in disks.

In [1]:
%pylab inline

import sys
import diskdataproc as ddp

d   = ddp.loadfromzip('/Users/mate/g/public_html/disk/data/0.9.4/v/29/v0.9.4.29_r00.95AU.zip')

label = {'NH' : r'$N_{\mathrm{H}} \; {\mathrm{(cm^{-2})}}$',
         'logNH' : r'$\log\, N_{\mathrm{\, H}} \; {\mathrm{(cm^{-2})}}$',
         'logx' : r'${\mathrm{abundance}}, \; \log\, x$',
         'T' : r'$T \; {\mathrm{(K)}}$',
         'nH' : r'$n_{\mathrm H}',

matplotlib.rc('mathtext', fontset='stixsans')
font = {'family' : 'sans-serif',
        'weight' : 'normal',
        'size'   : 14}

matplotlib.rc('font', **font)
mpl.rcParams['lines.linewidth']  = 3
mpl.rcParams['xtick.major.size'] = 6 ; mpl.rcParams['xtick.minor.size'] = 3    
mpl.rcParams['ytick.major.size'] = 6 ; mpl.rcParams['ytick.minor.size'] = 3
Populating the interactive namespace from numpy and matplotlib
In [6]:
def figure_abundances_horiz(d, filename=False, T_crit=800, ylim=[-13,1], xlim=[22.4, 19.6], dref=None):
    """d - one dataset from dictioary."""

    fig = plt.figure(figsize=(9,6.25))
    fig.subplots_adjust(left=0.15, right=0.98, top=0.98, bottom=0.089, hspace=0.03, wspace=0.03)
    n = 4 ;
    font = {'size' : 15}
    matplotlib.rc('font', **font)

    ax1 = plt.subplot2grid((1,n),(0,0),colspan=n-1)

    N_H = log10(d['N_H'])
    T = d['n']['T'][:,-1]    
    T_d = d['n']['T_d'][:,-1] ; T_freeze=125

    T_min, T_max = 250, T_crit 
    warm = where([(T>T_min) & (T<T_max) & (T_d>T_freeze)])[1] 
    T_min, T_max = T_crit, 3000 
    hot = where([(T>T_min) & (T<T_max) & (T_d>T_freeze)])[1]     

    from operator import itemgetter
    from itertools import groupby

    warm_regions, hot_regions = [], []
    for k, g in groupby(enumerate(warm), lambda (i,x):i-x):
        warm_regions.append(map(itemgetter(1), g))

    for k, g in groupby(enumerate(hot), lambda (i,x):i-x):
        hot_regions.append(map(itemgetter(1), g))

    orange = (1.0,0.7,0.2)
    for region in warm_regions:   
        ax1.fill_betweenx(N_H[region], ylim[0], ylim[1],
                         facecolor=orange, edgecolor=orange, alpha=0.2)
    for region in hot_regions:   
        ax1.fill_betweenx(N_H[region], ylim[0], ylim[1],
                     facecolor='r', edgecolor='r', alpha=0.2)
    ax1.plot(log10(d['n']['H2'][:,-1]/d['nH']), N_H, 'r-', label=r'$\mathrm{H_2}$')
    ax1.plot(log10(d['n']['H2O'][:,-1]/d['nH']),N_H,  'b-', label=r'$\mathrm{H_2O}$')
    ax1.plot(log10(d['n']['OH'][:,-1]/d['nH']), N_H, 'g-', label=r'$\mathrm{OH}$')
    ax1.plot(log10(d['n']['CO'][:,-1]/d['nH']), N_H, 'k-', alpha=0.4, label=r'$\mathrm{OH}$')

    ax1.text(0.83, 0.10, r'$\mathrm{H_2}$', fontsize=16, color='r', transform=ax1.transAxes)
    ax1.text(0.41, 0.10, r'$\mathrm{H_2O}$', fontsize=16, color='b', transform=ax1.transAxes)
    ax1.text(0.24, 0.10, r'$\mathrm{OH}$', fontsize=16, color='g', transform=ax1.transAxes)
    ax1.text(0.58, 0.10, r'$\mathrm{CO}$', fontsize=16, color='k', transform=ax1.transAxes)

    dy = 0.5  ; n_yticks = round(((ylim[1]-ylim[0])/dy)+1)
    dx = 0.1  ; n_xticks = round(((xlim[1]-xlim[0])/dx)+1)

    ax2 = plt.subplot2grid((1,n),(0,n-1))  
    ax2.set_xlabel(label['T'], fontsize=14)
    ax2.semilogx(d['n']['T'][:,-1], N_H, 'k-', label=r'$T_{\mathrm{g}}$')

    ax2.fill_betweenx(N_H[warm], ax2.get_ylim()[0], T[warm], 
                             facecolor=orange, edgecolor=orange, alpha=0.2)
    ax2.fill_betweenx(N_H[hot], ax2.get_ylim()[0], T[hot], 
                             facecolor='r', edgecolor='r', alpha=0.2)
    ax2.semilogx(d['n']['T_d'][:,-1], N_H, 'k--', label=r'$T_{\mathrm{d}}$')
    ax2.text(0.7, 0.37, r'$T_{\mathrm{g}}$', fontsize=18, transform=ax2.transAxes)
    ax2.text(0.4, 0.8, r'$T_{\mathrm{d}}$', fontsize=18, transform=ax2.transAxes)
    ax2.xaxis.label.set_size(18) ; ax2.yaxis.label.set_size(15)

    axT = ax2.twinx()  
    tick_locations = [20.0,20.5,21.0,21.5,22.0]
    def top_tick(Z):
        """Tick mark altitude, z, in AU."""
        fi = lambda array, value : (np.abs(array-value)).argmin()
        R = [d['z'][fi(log10(d['N_H']), z)] for z in Z]
        return ["%.3f" % r for r in R]

    axT.set_yticklabels(top_tick(tick_locations), fontsize=14)
    axT.set_ylabel(r"z (AU)", fontsize=18)  
    if filename: savefig(filename, bbox_inches='tight')
figure_abundances_horiz(d, xlim=[19.6,22.4], T_crit=650, 

Thermal-chemical models & disk structure

We explore the various heating (and cooling) mechanisms in disks that together with the relevent chemistry determines the vertical structure of temperatures and molecular abundances, shown in the figure below.

The layered structure of the disk is illustrated by the shaded regions that highlight layers with different temperatures. The molecular emission from these layers is a characteristic diagnostic of the inner planet-forming regions of diks.

From the literature:

Ádámkovics, Glassgold & Najita (2014)

Ádámkovics, Glassgold & Meijerink (2011)

Najita, Ádámkovics & Glassgold (2011)


Refereed papers from the literature.

Conference abstracts that were submitted on time and various other references.


This slide show and figures where created using the IPython notebook. This powerful and flexible resource is open and free. I am enthusiastic about this platform as a tool for data analysis, collaboration, and the communication of science.

Here's a link to the slides from this notebook. Which are compiled from within the notebook in the next cell. Following the link mean the ipython notebook server can serve up the slides that were just created. The ipython notebook itsef

In [7]:
!ipython nbconvert homepage.ipynb --to='slides'
[NbConvertApp] Using existing profile dir: '/Users/mate/.ipython/profile_default'
[NbConvertApp] Converting notebook homepage.ipynb to slides
[NbConvertApp] Support files will be in homepage_files/
[NbConvertApp] Loaded template slides_reveal.tpl
[NbConvertApp] Writing 295939 bytes to homepage.slides.html
In [ ]:
In [ ]: