Значение истинности массива с более чем одним элементом неоднозначно.Используйте a.any () или a.all () в aplpy - PullRequest
0 голосов
/ 28 февраля 2019

У меня проблемы со словарем в python.

Мой код:

import aplpy
import numpy as np
from astropy.io import fits
from astropy.coordinates import Angle
from astropy import units as u
import pandas as pd

##### Star parameters defined by user  #####                                                                                                                                                     

#Input FITS file                                                                                                          
inpim1 = '/home/juan/Escritorio/pg/LMC_D2.fits'

Data_Cluster='/home/juan/Escritorio/pg/DataCluster.dat'

region = '/home/juan/Escritorio/pg/trin.reg'

im_halfsize = 17. # half size of plotted image in arcsec                                                                                                                                         

outfig='/home/juan/Escritorio/pg/ensayo'
df = pd.read_csv(Data_Cluster,sep='\t')

#Obtaining the coordinates                                                                                                                                                                       
AR   = (Angle(df["AS"].values*u.arcsec).deg + Angle(df["AH"].values*u.arcmin).deg + Angle(df["AH"].values*u.hour).deg)
DE   = (Angle(df["DS"].values*u.arcsec).deg - Angle(df["DM"].values*u.arcmin).deg - Angle(df["DH"].values*u.deg).deg)

#Specify coordinates of markers                                                                                                                                                                  
markers1 = {'source':np.linspace(1, len(AR), len(AR) ) ,'RA': AR ,'Dec': DE ,'Vel-Hel':np.linspace(1,2,len(DE)) }
# Only uncomments if need to read in the data itself                                                                                                                                             
im1 = fits.open(inpim1)
headerdata=im1[0].header
mapdata=im1[0].data


# Create image object                                                                                                                                                                            
fig = aplpy.FITSFigure(inpim1)

#Color scale                                                                                                                                                                                     
    fig.show_colorscale(cmap='gist_heat_r',vmax=np.nanmax(mapdata),vmid=np.nanmin(mapdata),vmin=0.08,stretch='log')

#Markers                                                                                                                                                                                         
fig.show_regions(region)
fig.show_markers(markers1['RA'],  markers1['Dec'],markers1['Vel-Hel'])    

Проблема со строкой:

---> 72 fig.show_markers(markers1['RA'],  markers1['Dec'],markers1['Vel-Hel'])

Изначально,если я удалю значение markers1 ['Vel-Hel'], python покажет мне проблему с:

ValueError: Second dimension of input values should match number of WCS coordinates

Я думаю, что эта последняя проблема связана с тем, что изображение имеет 3 измерения, поэтому ядобавил маркеры1 ['Vel-Hel'] (На самом деле, мне это не нужно, но я должен поставить его там).После этого появляется сообщение об ошибке:

РЕДАКТИРОВАТЬ: я решил эту проблему, установив предыдущую версию aplpy.Я не знаю, почему более поздняя версия этой библиотеки имеет эту проблему

...