Astroquery python: запрос NED со списком объектов

Я извлек список имен Simbad из каталога VizieR и хотел бы найти отношение осей объектов из таблицы диаметров в NED. Код ниже.

import numpy as np
from astropy.table import Table,Column
from astroquery.vizier import Vizier
from astroquery.ned import Ned

v = Vizier(columns = ['SimbadName','W50max'])
catalist = v.find_catalogs('VIII/73')
v.ROW_LIMIT = -1
a = v.get_catalogs(catalist.keys())

filter = a[0]['W50max'] > 500
targets = a[0][filter]
print targets
simName = targets['SimbadName']
W50max = targets['W50max']

counter  = 1
for objects in simName:

    result_table = Ned.get_table(objects, table='diameters')
    ## find where  Axis Ratio results are not masked
    notMasked = (np.where(result_table['NED Axis Ratio'].mask == False)) 
    ## calculate average value of Axis Ratio
    print counter, np.sum(result_table['NED Axis Ratio'])/np.size(notMasked)
    counter += 1

Четвертый объект в simNames не имеет таблицы диаметров, поэтому создает ошибку:

   File "/home/tom/VizRauto.py", line 40, in <module>
    result_table = Ned.get_table(objects, table='diameters')
  File "/usr/local/lib/python2.7/dist-packages/astroquery/ned/core.py", line 505, in get_table
    result = self._parse_result(response, verbose=verbose)
  File "/usr/local/lib/python2.7/dist-packages/astroquery/ned/core.py", line 631, in _parse_result
    raise RemoteServiceError("The remote service returned the following error message.\nERROR: {err_msg}".format(err_msg=err_msg))
RemoteServiceError: The remote service returned the following error message.
ERROR:  Unknown error 

Итак, я попробовал:

counter  = 1
for objects in simName:

try:
        result_table = Ned.get_table(objects, table='diameters')
        ## find where  Axis Ratio results are not masked
        notMasked = (np.where(result_table['NED Axis Ratio'].mask == False)) 

        ## calculate average value of Axis Ratio
        print counter, np.sum(result_table['NED Axis Ratio'])/np.size(notMasked)

except RemoteServiceError:
        continue


counter += 1

который производит:

Traceback (most recent call last):
  File "/home/tom/Dropbox/AST03CosmoLarge/Project/scripts/VizRauto.py", line 57, in <module>
    except RemoteServiceError:
NameError: name 'RemoteServiceError' is not defined

Очевидно, что RemoteServiceError из core.py не распознается. Каков наилучший способ справиться с этим или есть лучший метод для запроса NED со списком объектов?

0 ответов

Другие вопросы по тегам