示例#1
0
def qr_block_with_missing_physobs():
    return vso.VSOClient().search(
        net_attrs.Time('20130805T120000', '20130805T121000'),
        net_attrs.Instrument('SWAVES'), net_attrs.Source('STEREO_A'),
        net_attrs.Provider('SSC'), net_attrs.Wavelength(
            10 * u.kHz, 160 * u.kHz),
        response_format="legacy")[0]
示例#2
0
def test_old_data_access(timerange, url_old, url_new):
    # test first for old data
    qr = Fido.search(timerange, a.Instrument("XRS"), a.Provider("SDAC"))
    urls = qr[0]['url']
    assert urls[0] == url_old

    # now test for new data
    qr = Fido.search(timerange, a.Instrument("XRS"))
    urls = qr[0]['url']
    assert urls[0] == url_new
示例#3
0
def test_split_database(split_function_database, database):
    # Send all entries with instrument='EIA' to destination_database
    split_function_database, database = split_database(
        split_function_database, database, net_attrs.Instrument('EIA'))

    observed_source_entries = split_function_database.search(
        net_attrs.Provider('xyz'), sortby='id')
    observed_destination_entries = database.search(net_attrs.Provider('xyz'))

    assert observed_source_entries == [
        DatabaseEntry(id=1, instrument='RHESSI', provider='xyz'),
        DatabaseEntry(id=2, instrument='RHESSI', provider='xyz'),
        DatabaseEntry(id=3, instrument='RHESSI', provider='xyz'),
        DatabaseEntry(id=5, instrument='AIA_3', provider='xyz'),
        DatabaseEntry(id=6, instrument='RHESSI', provider='xyz'),
        DatabaseEntry(id=7, instrument='RHESSI', provider='xyz'),
        DatabaseEntry(id=9, instrument='RHESSI', provider='xyz'),
        DatabaseEntry(id=10, instrument='AIA_3', provider='xyz'),
    ]
    assert observed_destination_entries == [
        DatabaseEntry(id=4, instrument='EIA', provider='xyz'),
        DatabaseEntry(id=8, instrument='EIA', provider='xyz'),
    ]
示例#4
0
def vso_search(trange=None,
               instrument=None,
               wavelength=None,
               sample=None,
               provider=None,
               source=None):
    try:
        from sunpy.net import Fido, attrs as a
    except:
        print('VSO_SEARCH: Error, requires sunpy. Sunpy not installed?')
        return None
    import astropy.units as u
    if not trange or not instrument:
        print(
            'VSO_SEARCH: Error, must specify a valid time range and instrument'
        )
        return None

    try:
        times = a.Time(Time(trange[0]).iso, Time(trange[1]).iso)
    except:
        print('VSO_SEARCH: Error, invalid time range')
        return None
    inst = a.Instrument(instrument)
    paras = [times, inst]
    if wavelength:
        wave = a.Wavelength(wavelength * u.angstrom)
        paras = paras + [wave]
    if sample is not None:
        sample = a.Sample(sample * u.second)  # in units of seconds
        paras = paras + [sample]
    if provider is not None:
        provider = a.Provider(provider)
        paras = paras + [provider]
    if source is not None:
        source = a.Source(source)
        paras = paras + [source]

    qr = Fido.search(*paras)

    return qr
示例#5
0
                                            '2011/1/1 01:02'),
                            core_attrs.Instrument('mdi'),
                            response_format="table")
    files = client.fetch(results[0:1])

    assert len(files) == 1
    assert files[0].endswith("mdi_vw_v_9466622_9466622.tar")
    assert "Content" not in files[0]


@pytest.mark.parametrize("query, handle", [
    ((a.Time("2011/01/01", "2011/01/02"), ), True),
    ((a.Physobs.los_magnetic_field, ), False),
    ((
        a.Time("2011/01/01", "2011/01/02"),
        a.Provider("SDAC"),
    ), True),
    ((
        a.jsoc.Series("wibble"),
        a.Physobs.los_magnetic_field,
    ), False),
])
def test_can_handle_query(query, handle):
    assert VSOClient._can_handle_query(*query) is handle


@pytest.mark.remote_data
def test_vso_attrs(client):
    """
    Check that the dict is correctly filled.
    """
示例#6
0
def qr_with_none_waves():
    return vso.VSOClient().search(net_attrs.Time('20121224T120049.8',
                                                 '20121224T120049.8'),
                                  net_attrs.Provider('SDAC'),
                                  net_attrs.Instrument('VIRGO'),
                                  response_format="legacy")
示例#7
0
@pytest.mark.remote_data
def test_incorrect_content_disposition(client):
    results = client.search(
        core_attrs.Time('2011/1/1 01:00', '2011/1/1 01:02'),
        core_attrs.Instrument('mdi'))
    files = client.fetch(results[0:1])

    assert len(files) == 1
    assert files[0].endswith("mdi_vw_v_9466622_9466622.tar")
    assert "Content" not in files[0]


@pytest.mark.parametrize("query, handle", [
    ((a.Time("2011/01/01", "2011/01/02"),), True),
    ((a.Physobs.los_magnetic_field,), False),
    ((a.Time("2011/01/01", "2011/01/02"), a.Provider("SDAC"),), True),
    ((a.jsoc.Series("wibble"), a.Physobs.los_magnetic_field,), False),
])
def test_can_handle_query(query, handle):
    assert VSOClient._can_handle_query(*query) is handle


@pytest.mark.remote_data
def test_vso_attrs(client):
    """
    Check that the dict is correctly filled.
    """
    adict = client.load_vso_values()
    assert isinstance(adict, dict)
    assert len(adict.keys()) == 6
    for key, value in adict.items():