def set_and_save_salina_proceed_1x1_data(): dataset = HSI.HSIDataSet('salina') dataset.get_data() dataset.get_labels() print('data shape is: ', dataset.data.shape) # 145,145,200 print('label shape is: ', dataset.labels.shape) # 145, 145 data, labels = np.array(dataset.data), np.array(dataset.labels) process = HSI_preprocess(name='salina', dst_shape=(512, 217, 224)) data_add_channel = process.add_channel(data) data_1x1 = process.scale_to1(data_add_channel) sio.savemat(dataset.dir + '/salina_1x1_mean.mat', { 'data': data_1x1, 'labels': labels })
def set_and_save_salina_proceed_data(): dataset = HSI.HSIDataSet('salina') dataset.get_data() dataset.get_labels() print('data shape is: ', dataset.data.shape) # 145,145,200 print('label shape is: ', dataset.labels.shape) # 145, 145 data, labels = np.array(dataset.data), np.array(dataset.labels) process = HSI_preprocess(name='salina', dst_shape=(512, 217, 224)) data_add_channel = process.add_channel(data) data_3x3_mean = process.get_mean_data(data=data_add_channel, patch_size=3, var=False) data_3x3_mean = process.scale_to1(data_3x3_mean) sio.savemat(dataset.dir + '/salina_3x3_mean.mat', { 'data': data_3x3_mean, 'labels': labels }) data_5x5_mean = process.get_mean_data(data=data_add_channel, patch_size=5, var=False) data_5x5_mean = process.scale_to1(data_5x5_mean) sio.savemat(dataset.dir + '/salina_5x5_mean.mat', { 'data': data_5x5_mean, 'labels': labels }) data_3x3_mean_std = process.get_mean_data(data=data_add_channel, patch_size=3, var=True) data_3x3_mean_std = process.scale_to1(data_3x3_mean_std) sio.savemat(dataset.dir + '/salina_3x3_mean_std.mat', { 'data': data_3x3_mean_std, 'labels': labels }) data_5x5_mean_std = process.get_mean_data(data=data_add_channel, patch_size=5, var=True) data_5x5_mean_std = process.scale_to1(data_5x5_mean_std) sio.savemat(dataset.dir + '/salina_5x5_mean_std.mat', { 'data': data_5x5_mean_std, 'labels': labels })
def test_train_test_split(): import time import hyperspectral_datasets as HSI time1 = time.time() ip = HSI.HSIDataSet('indian_pines') ip.get_data() ip.get_labels() label_unique = [2, 3, 5, 6, 8, 10, 11, 12, 14] (train_label, train_index, train_data), (test_label, test_index, test_data) = train_test_split(ip.data, ip.labels, label_unique=label_unique, train=200) print('train_label.shape : ', train_label.shape) print('train_index.shape : ', train_index.shape) print('train_data.shape : ', train_data.shape) print('test_label.shape : ', test_label.shape) print('test_index.shape : ', test_index.shape) print('test_data.shape : ', test_data.shape) time2 = time.time() print('use time : ', time2 - time1)
def test_split_by_ratio(): import time import hyperspectral_datasets as HSI time1 = time.time() ip = HSI.HSIDataSet('indian_pines') ip.get_data() ip.get_labels() ip.pos = get_lables_pos(ip.labels, label_unique=list(range(1, 17))) train_label_pos, test_label_pos = divide_labels_by_ratio(ip.pos, 0.5) (train_label, train_index, train_data), (test_label, test_index, test_data) = get_data_divided( train_label_pos, test_label_pos, ip.data) print('train_label.shape : ', train_label.shape) print('train_index.shape : ', train_index.shape) print('train_data.shape : ', train_data.shape) print('test_label.shape : ', test_label.shape) print('test_index.shape : ', test_index.shape) print('test_data.shape : ', test_data.shape) time2 = time.time() print('use time : ', time2 - time1)
def test_split_by_nums(): import time import hyperspectral_datasets as HSI time1 = time.time() ip = HSI.HSIDataSet('indian_pines') ip.get_data() ip.get_labels() ip.pos = get_lables_pos(ip.labels, label_unique=[ 2, 3, 5, 8, 10, 11, 12, 14]) train_label_pos, test_label_pos = divide_labels_by_nums(ip.pos, 200) (train_label, train_index, traizn_data), (test_label, test_index, test_data) = get_data_divided( train_label_pos, test_label_pos, ip.data) print('train_label.shape : ', train_label.shape) print('train_index.shape : ', train_index.shape) print('train_data.shape : ', train_data.shape) print('test_label.shape : ', test_label.shape) print('test_index.shape : ', test_index.shape) print('test_data.shape : ', test_data.shape) time2 = time.time() print('use time : ', time2 - time1)
def test_train_test_split(): time1 = time.time() dataset = HSI.HSIDataSet('indian_pines') dataset.get_data() dataset.get_labels() label_unique = [2, 3, 5, 6, 8, 10, 11, 12, 14] (train_label, train_index, train_data), (test_label, test_index, test_data) = train_test_split(dataset.data, dataset.labels, label_unique=label_unique, train=200) print('train_label.shape : ', train_label.shape) print('train_index.shape : ', train_index.shape) print('train_data.shape : ', train_data.shape) print('test_label.shape : ', test_label.shape) print('test_index.shape : ', test_index.shape) print('test_data.shape : ', test_data.shape) time2 = time.time() print('use time : ', time2 - time1)
def test_split_by_ratio(): time1 = time.time() dataset = HSI.HSIDataSet('indian_pines') dataset.get_data() dataset.get_labels() dataset.pos = get_lables_pos(dataset.labels, label_unique=[2, 3, 5, 6, 8, 10, 11, 12, 14]) train_label_pos, test_label_pos = divide_labels_by_ratio(dataset.pos, 0.5) (train_label, train_index, train_data), (test_label, test_index, test_data) = get_data_divided(train_label_pos, test_label_pos, dataset.data) print('train_label.shape : ', train_label.shape) print('train_index.shape : ', train_index.shape) print('train_data.shape : ', train_data.shape) print('test_label.shape : ', test_label.shape) print('test_index.shape : ', test_index.shape) print('test_data.shape : ', test_data.shape) time2 = time.time() print('use time : ', time2 - time1)
def set_and_save_indian_pines_5d_data(patch_size=5, is_rotate=True): dataset = HSI.HSIDataSet('indian_pines') dataset.get_data() dataset.get_labels() print('data shape is: ', dataset.data.shape) # 145,145,200 print('label shape is: ', dataset.labels.shape) # 145, 145 data, labels = np.array(dataset.data), np.array(dataset.labels) dataset_process = HSI_preprocess( name='indian_pines', dst_shape=(145, 145, 224)) data = dataset_process.add_channel(data) data = dataset_process.data_add_zero(data) data_scale_to1 = data / np.max(data) data_5d = dataset_process.get_patch_data( data_scale_to1, patch_size=patch_size, is_rotate=is_rotate) [h, w, n_channels] = data_scale_to1.shape n_samples = h*w*4 if is_rotate else h*w if is_rotate: h5file_name = dataset.dir + \ '/indian_5d_patch_{}_with_rotate.h5'.format(patch_size) else: h5file_name = dataset.dir + '/indian_5d_patch_{}.h5'.format(patch_size) file = h5py.File(h5file_name, 'w') file.create_dataset('data', shape=(n_samples, n_channels, patch_size, patch_size, 1), chunks=(1024, n_channels, patch_size, patch_size, 1), dtype=np.float32, maxshape=(None, n_channels, patch_size, patch_size, 1)) file.create_dataset('labels', data=labels) file.close() with h5py.File(h5file_name, 'a') as h5f: for i, (x, y, patch) in enumerate(data_5d): if is_rotate: h5f['data'][4*i:4*(i+1)] = patch[:, :, :, :, None] else: h5f['data'][i] = patch[None, :, :, :, None]