def test_concatenate_prohibit_key_mismatch(self): eop1 = EOPatch() bands1 = np.arange(2 * 3 * 3 * 2).reshape(2, 3, 3, 2) eop1.add_feature(attr_type=FeatureType.DATA, field='bands', value=bands1) eop2 = EOPatch() bands2 = np.arange(3 * 3 * 3 * 2).reshape(3, 3, 3, 2) eop2.add_feature(attr_type=FeatureType.DATA, field='measurements', value=bands2) with self.assertRaises(ValueError): EOPatch.concatenate(eop1, eop2)
def test_concatenate_leave_out_timeless_mismatched_keys(self): eop1 = EOPatch() mask1 = np.arange(3 * 3 * 2).reshape(3, 3, 2) eop1.add_feature(attr_type=FeatureType.DATA_TIMELESS, field='mask1', value=mask1) eop1.add_feature(attr_type=FeatureType.DATA_TIMELESS, field='mask', value=5 * mask1) eop2 = EOPatch() mask2 = np.arange(3 * 3 * 2).reshape(3, 3, 2) eop2.add_feature(attr_type=FeatureType.DATA_TIMELESS, field='mask2', value=mask2) eop2.add_feature(attr_type=FeatureType.DATA_TIMELESS, field='mask', value=5 * mask1) # add mask1 to eop2 eop = EOPatch.concatenate(eop1, eop2) self.assertTrue('mask1' not in eop.data_timeless) self.assertTrue('mask2' not in eop.data_timeless) self.assertTrue('mask' in eop.data_timeless)
def test_concatenate(self): eop1 = EOPatch() bands1 = np.arange(2 * 3 * 3 * 2).reshape(2, 3, 3, 2) eop1.add_feature(attr_type=FeatureType.DATA, field='bands', value=bands1) eop2 = EOPatch() bands2 = np.arange(3 * 3 * 3 * 2).reshape(3, 3, 3, 2) eop2.add_feature(attr_type=FeatureType.DATA, field='bands', value=bands2) eop = EOPatch.concatenate(eop1, eop2) self.assertTrue(np.array_equal( eop.data['bands'], np.concatenate((bands1, bands2), axis=0)), msg="Array mismatch")
def test_concatenate_leave_out_keys_with_mismatched_value(self): mask = np.arange(3 * 3 * 2).reshape(3, 3, 2) eop1 = EOPatch() eop1.add_feature(attr_type=FeatureType.DATA_TIMELESS, field='mask', value=mask) eop1.add_feature(attr_type=FeatureType.DATA_TIMELESS, field='nask', value=3 * mask) eop2 = EOPatch() eop2.add_feature(attr_type=FeatureType.DATA_TIMELESS, field='mask', value=mask) eop2.add_feature(attr_type=FeatureType.DATA_TIMELESS, field='nask', value=5 * mask) eop = EOPatch.concatenate(eop1, eop2) self.assertTrue('mask' in eop.data_timeless) self.assertFalse('nask' in eop.data_timeless)