예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
    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")
예제 #4
0
    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)