2016-10-15 7 views
0

Мне нужно создать карту региона Млечный Путь; (данные, собранные с радиотелескопом).Карта области Млечный Путь (Ra, Dec) с температурой

У меня есть файлы .txt с координаты места дец и ра, а температура корреспондент заметил:

244.785416667;-13.5105555556;-2.96409416136 
246.039166667;-13.5086111111;4.7494842185 
247.292083333;-13.5066666667;4.85067698715 

каждый файл в формате .txt соответствует высоте (23,24,25, 26,27,30).

Я хочу что-то вроде этого:

enter image description here

но я cant't найти способ, в Python, чтобы построить его. Я думаю, что я должен использовать что-то вроде histo2D, но я не могу понять, как/где заданы данные температуры. Я судимый с этим кодом, но это неправильно, (может быть также логически):

pp.figure(1) 
pp.hist2d(ra,dec,bins=(20,5),range=((250,320),(-24,-16)), weights=temp) 
pp.colorbar() 
pp.show() 

Если вы знаете, даже и типа гисты или графический я должен использовать в этом случае, пожалуйста, дайте мне знать.

ответ

0

Для этого типа фигуры тепловой карты, я хотел бы использовать imshow от matplotlib.

Пример некоторого кода, используя это может выглядеть следующим образом:

import matplotlib.pyplot as plt 
from mpl_toolkits.axes_grid1 import make_axes_locatable 

fig = plt.figure() 
ax = plt.add_subplot(111) 

heat = ax.imshow(tempmat, 
       cmap=plt.cm.viridis, 
       interpolation='none') 

# include a colorbar to show the temperature corresponding to each colour 
curax = make_axes_locatable(plt..agca()) 
cbax = curax.append_axes('right', '5%', pad='3%') 
fig.colorbar(heat, cax=cbax) 

fig.savefig("temperature_heatmap.pdf") 
# or instead of saving, just use fig.show() 

Здесь мы прошли 2D массив tempmat к функции imshow. В вашем случае, для данного файла .txt, это будет содержать значение температуры при фиксированном наборе бункеров в РА и вы декабрь мог бы сделать histogram2d функцию это с помощью Numpy в:

import numpy as np 

# since your example shows semicomma-separated values 
dat = np.loadtxt("filename.txt", delimiter=';') 

# bin the data in a space of RA and Dec bins, with 
# - RAbins = number of bins you want in RA 
# - Decbins = number of bins you want in Dec 
# (alternatively, supply arrays of bin edges for uneven bin widths) 
# - [0, 360] and [-90, 90] or your preferred range 
# of RA and Dec to plot temperature bins for 
# - weight counts by the temperature of each data point 
tsums = np.histogram2d(dat[:, 1], dat[:, 0], 
         bins=[RAbins, Decbins], 
         range=[[0, 360], [-90, 90]], 
         weights=dat[:, 2]) 

# here we repeat as above without the weighting, 
# so that we can find the average temperature in each bin 
bincounts = np.histogram2d(dat[:, 1], dat[:, 0], 
          bins=[RAbins, Decbins], 
          range=[[0, 360], [-90, 90]], 
          weights=dat[:, 2]) 

# divide the resulting 2d arrays to get bin temperatures 
tempmat = tsums[0]/bincounts[0] 

Вот пример, который я сделал с некоторые случайные данные:

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^