コード例 #1
0
def test_get_image_list():
    def get(*args, **kwargs):
        class CapsResponse(object):
            def __init__(self):
                self.status_code = 200
                self.content = b''

            def raise_for_status(self):
                pass

        return CapsResponse()

    class Params(object):
        def __init__(self, **param_dict):
            self.__dict__.update(param_dict)

    coords = '08h45m07.5s +54d18m00s'
    coords_ra = parse_coordinates(coords).fk5.ra.degree
    coords_dec = parse_coordinates(coords).fk5.dec.degree
    radius = 0.1*u.deg

    uri = 'im_an_ID'
    run_id = 'im_a_RUNID'
    pos = 'CIRCLE {} {} {}'.format(coords_ra, coords_dec, radius.value)

    service_def1 = Mock()
    service_def1.access_url = \
        b'https://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/caom2ops/sync'
    service_def1.input_params = [Params(name='ID', value=uri),
                                 Params(name='RUNID', value=run_id)]

    service_def2 = Mock()
    service_def2.access_url = \
        b'https://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/caom2ops/async'
    service_def2.input_params = [Params(name='ID', value=uri),
                                 Params(name='RUNID', value=run_id)]

    result = Mock()
    service_def_list = [service_def1, service_def2]
    result.bysemantics.return_value = service_def_list

    with patch('pyvo.dal.adhoc.DatalinkResults.from_result_url') as dl_results_mock:
        dl_results_mock.return_value = result
        cadc = Cadc()
        cadc._request = get  # Mock the request
        url_list = cadc.get_image_list(
            {'publisherID': ['ivo://cadc.nrc.ca/foo']}, coords, radius)

        assert len(url_list) == 1

        params = parse_qs(urlsplit(url_list[0]).query)

        assert params['ID'][0] == uri
        assert params['RUNID'][0] == run_id
        assert params['POS'][0] == pos

    with pytest.raises(TypeError):
        cadc.get_image_list(None)
    with pytest.raises(AttributeError):
        cadc.get_image_list(None, coords, radius)
    with pytest.raises(TypeError):
        cadc.get_image_list({'publisherID': [
            'ivo://cadc.nrc.ca/foo']}, coords, 0.1)
コード例 #2
0
ファイル: query_vlass.py プロジェクト: arvindb95/Query_VLASS
                    help="DEC of the source in +00d00m00.00s format",
                    type=str)
parser.add_argument("radius",
                    help="radius around ra dec center",
                    type=str,
                    default="3 arcmin")
args = parser.parse_args()

ra = args.ra
dec = args.dec
radius = args.radius

cadc = Cadc()
coords = ra + " " + dec
results = cadc.query_region(coords, radius, collection='VLASS')
image_list = cadc.get_image_list(results, coords, radius)

if (len(image_list) > 1):
    print("The coordinates entered are present in more than one field!")
    for i in range(len(image_list)):
        print(i, " : ", image_list[i])
    field_id = input("Enter field you would like to download : ")
    field_id = int(field_id)
    sel_image = image_list[field_id]
    filename = sel_image.split("/")[-1].split("&")[0][21:]
    print(filename)
    print("Downloading VLASS image : ", filename)
    urlretrieve(sel_image, filename)
else:
    sel_image = image_list[0]
    filename = sel_image.split("/")[-1].split("&")[0][21:]