Ejemplo n.º 1
0
def test_complete_file():

    with open(pyart.testing.UF_FILE, 'rb') as fh:
        ref_file = fh.read()

    radar = pyart.io.read_uf(pyart.testing.UF_FILE, file_field_names=True)
    radar.fields['PH']['_UF_scale_factor'] = 10
    field_write_order = [
        'DZ', 'VR', 'SW', 'CZ', 'ZT', 'DR', 'ZD', 'RH', 'PH', 'KD', 'SQ', 'HC'
    ]

    in_mem = StringIO()
    volume_start = netCDF4.num2date(radar.time['data'][0], radar.time['units'])
    volume_start -= datetime.timedelta(seconds=8)
    write_uf(in_mem,
             radar,
             uf_field_names=FIELD_MAPPING,
             field_write_order=field_write_order,
             volume_start=volume_start,
             templates_extra=TEMPLATES_EXTRA)
    in_mem.seek(0)
    tst_file = in_mem.read()
    tst_file = tst_file[:208] + b'\x00\x00' + tst_file[210:]  # DZ edit_code
    tst_file = tst_file[:5700] + b'\x00\x00' + tst_file[5702:]  # ZT edit_code

    assert ref_file == tst_file
Ejemplo n.º 2
0
def test_complete_file_standard_names():

    with open(pyart.testing.UF_FILE, 'rb') as fh:
        ref_file = fh.read()

    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    radar.fields['differential_phase']['_UF_scale_factor'] = 10

    field_write_order = [
        'reflectivity',
        'velocity',
        'spectrum_width',
        'corrected_reflectivity',
        'total_power',
        'corrected_differential_reflectivity',
        'differential_reflectivity',
        'cross_correlation_ratio',
        'differential_phase',
        'specific_differential_phase',
        'normalized_coherent_power',
        'radar_echo_classification',
    ]
    in_mem = StringIO()
    volume_start = netCDF4.num2date(radar.time['data'][0], radar.time['units'])
    volume_start -= datetime.timedelta(seconds=8)
    write_uf(in_mem, radar, field_write_order=field_write_order,
             volume_start=volume_start, templates_extra=TEMPLATES_EXTRA)
    in_mem.seek(0)
    tst_file = in_mem.read()
    tst_file = tst_file[:208] + b'\x00\x00' + tst_file[210:]    # DZ edit_code
    tst_file = tst_file[:5700] + b'\x00\x00' + tst_file[5702:]  # ZT edit_code

    assert ref_file == tst_file
Ejemplo n.º 3
0
def test_write_real_file():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    with pyart.testing.InTemporaryDirectory():
        write_uf('test.uf', radar)
        f = open('test.uf', 'rb')
        buf = f.read()
        f.close()
        assert len(buf) == 16648
Ejemplo n.º 4
0
def test_write_real_file():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    with pyart.testing.InTemporaryDirectory():
        write_uf('test.uf', radar)
        f = open('test.uf', 'rb')
        buf = f.read()
        f.close()
        assert len(buf) == 16648
Ejemplo n.º 5
0
def test_map_field_missing():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    in_mem = StringIO()
    uf_field_names = {
        'reflectivity': 'DZ',
        'velocity': 'VR',
        'spectrum_width': 'SW',
    }
    write_uf(in_mem, radar, uf_field_names=uf_field_names)
    assert in_mem.tell() == 4264  # 4264 = 16648 - (667+2+19) * 2 * 9
Ejemplo n.º 6
0
def test_map_field_missing():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    in_mem = StringIO()
    uf_field_names = {
        'reflectivity': 'DZ',
        'velocity': 'VR',
        'spectrum_width': 'SW',
    }
    write_uf(in_mem, radar, uf_field_names=uf_field_names)
    assert in_mem.tell() == 4264   # 4264 = 16648 - (667+2+19) * 2 * 9
Ejemplo n.º 7
0
def test_range_start():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    radar.range['meters_to_center_of_first_gate'] += 1500.
    in_mem = StringIO()
    write_uf(in_mem, radar)

    in_mem.seek(0)
    ufile = UFFile(in_mem)
    field_header = ufile.rays[0].field_headers[0]
    assert field_header['range_start_km'] == 1
    assert field_header['range_start_m'] == 500
Ejemplo n.º 8
0
def test_range_start():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    radar.range['meters_to_center_of_first_gate'] += 1500.
    in_mem = StringIO()
    write_uf(in_mem, radar)

    in_mem.seek(0)
    ufile = UFFile(in_mem)
    field_header = ufile.rays[0].field_headers[0]
    assert field_header['range_start_km'] == 1
    assert field_header['range_start_m'] == 500
Ejemplo n.º 9
0
def test_map_field_to_none():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    in_mem = StringIO()
    uf_field_names = {
        'reflectivity': None,
        'velocity': 'VR',
        'spectrum_width': 'SW',
        'corrected_reflectivity': 'CZ',
        'total_power': 'ZT',
        'corrected_differential_reflectivity': 'DR',
        'differential_reflectivity': 'ZD',
        'cross_correlation_ratio': 'RH',
        'differential_phase': 'PH',
        'specific_differential_phase': 'KD',
        'normalized_coherent_power': 'SQ',
        'radar_echo_classification': 'HC'
    }
    write_uf(in_mem, radar, uf_field_names=uf_field_names)
    assert in_mem.tell() == 15272   # 15727 = 16648 - (667+2+19) * 2
Ejemplo n.º 10
0
def test_map_field_to_none():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    in_mem = StringIO()
    uf_field_names = {
        'reflectivity': None,
        'velocity': 'VR',
        'spectrum_width': 'SW',
        'corrected_reflectivity': 'CZ',
        'total_power': 'ZT',
        'corrected_differential_reflectivity': 'DR',
        'differential_reflectivity': 'ZD',
        'cross_correlation_ratio': 'RH',
        'differential_phase': 'PH',
        'specific_differential_phase': 'KD',
        'normalized_coherent_power': 'SQ',
        'radar_echo_classification': 'HC'
    }
    write_uf(in_mem, radar, uf_field_names=uf_field_names)
    assert in_mem.tell() == 15272  # 15727 = 16648 - (667+2+19) * 2
Ejemplo n.º 11
0
def test_complete_file():

    with open(pyart.testing.UF_FILE, 'rb') as fh:
        ref_file = fh.read()

    radar = pyart.io.read_uf(pyart.testing.UF_FILE, file_field_names=True)
    radar.fields['PH']['_UF_scale_factor'] = 10
    field_write_order = ['DZ', 'VR', 'SW', 'CZ', 'ZT', 'DR', 'ZD', 'RH', 'PH',
                         'KD', 'SQ', 'HC']

    in_mem = StringIO()
    volume_start = netCDF4.num2date(radar.time['data'][0], radar.time['units'])
    volume_start -= datetime.timedelta(seconds=8)
    write_uf(in_mem, radar, uf_field_names=FIELD_MAPPING,
             field_write_order=field_write_order, volume_start=volume_start,
             templates_extra=TEMPLATES_EXTRA)
    in_mem.seek(0)
    tst_file = in_mem.read()
    tst_file = tst_file[:208] + b'\x00\x00' + tst_file[210:]    # DZ edit_code
    tst_file = tst_file[:5700] + b'\x00\x00' + tst_file[5702:]  # ZT edit_code

    assert ref_file == tst_file
Ejemplo n.º 12
0
def test_write_radar_field_names():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE, file_field_names=True)
    in_mem = StringIO()
    write_uf(in_mem, radar, radar_field_names=True)
    assert in_mem.tell() == 16648
Ejemplo n.º 13
0
def test_write_exclude():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    in_mem = StringIO()
    write_uf(in_mem, radar, exclude_fields=['reflectivity'])
    assert in_mem.tell() == 15272  # 15727 = 16648 - (667+2+19) * 2
Ejemplo n.º 14
0
def test_write_defaults():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    in_mem = StringIO()
    write_uf(in_mem, radar)
    assert in_mem.tell() == 16648
Ejemplo n.º 15
0
def test_write_defaults():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    in_mem = StringIO()
    write_uf(in_mem, radar)
    assert in_mem.tell() == 16648
Ejemplo n.º 16
0
def test_write_radar_field_names():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE, file_field_names=True)
    in_mem = StringIO()
    write_uf(in_mem, radar, radar_field_names=True)
    assert in_mem.tell() == 16648
Ejemplo n.º 17
0
def test_write_exclude():
    radar = pyart.io.read_uf(pyart.testing.UF_FILE)
    in_mem = StringIO()
    write_uf(in_mem, radar, exclude_fields=['reflectivity'])
    assert in_mem.tell() == 15272   # 15727 = 16648 - (667+2+19) * 2