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
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
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
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
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
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
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
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
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
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