Commit 592d0cf7 authored by Lauren Adoram-Kershner's avatar Lauren Adoram-Kershner Committed by GitHub
Browse files

Merge pull request #138 from jessemapel/repeated_fields

Added check for repeated fields in protobuf
parents 162bc90f 3aba5dba
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -270,6 +270,9 @@ class IsisStore(object):
                            arr = arr.ravel().tolist()

                        point_spec.aprioriCovar.extend(arr)
                    # If field is repeated you must extend instead of assign
                    elif cnf._CONTROLPOINTFILEENTRYV0002.fields_by_name[attr].label == 3:
                        getattr(point_spec, attr).extend(g.iloc[0][df_attr])
                    else:
                        setattr(point_spec, attr, attrtype(g.iloc[0][df_attr]))

@@ -284,6 +287,10 @@ class IsisStore(object):
                    # Un-mangle common attribute names between points and measures
                    df_attr = self.measure_field_map.get(attr, attr)
                    if df_attr in g.columns:
                        # If field is repeated you must extend instead of assign
                        if cnf._CONTROLPOINTFILEENTRYV0002_MEASURE.fields_by_name[attr].label == 3:
                            getattr(measure_spec, attr).extend(m[df_attr])
                        else:
                            setattr(measure_spec, attr, attrtype(m[df_attr]))
                # ISIS pixels are centered on (0.5, 0.5). NDArrays are (0,0) based.
                measure_spec.sample = m['sample'] + 0.5
+3 −3
Original line number Diff line number Diff line
@@ -39,12 +39,12 @@ class TestWriteIsisControlNetwork(unittest.TestCase):
        serial_times = {295: '1971-07-31T01:24:11.754',
                        296: '1971-07-31T01:24:36.970'}
        cls.serials = {i:'APOLLO15/METRIC/{}'.format(j) for i, j in enumerate(serial_times.values())}
        columns = ['id', 'pointType', 'serialnumber', 'measureType', 'sample', 'line', 'image_index']
        columns = ['id', 'pointType', 'serialnumber', 'measureType', 'sample', 'line', 'image_index', 'pointLog', 'measureLog']

        data = []
        for i in range(cls.npts):
            data.append((i, 2, cls.serials[0], 2, 0, 0, 0))
            data.append((i, 2, cls.serials[1], 2, 0, 0, 1))
            data.append((i, 2, cls.serials[0], 2, 0, 0, 0, [], []))
            data.append((i, 2, cls.serials[1], 2, 0, 0, 1, [], []))

        df = pd.DataFrame(data, columns=columns)