diff --git a/plio/examples/ControlNetworks/apollo_out_v5.net b/plio/examples/ControlNetworks/apollo_out_v5.net new file mode 100644 index 0000000000000000000000000000000000000000..e831141ed5e1e9b2f58783cc28af2bc81f8f7a43 Binary files /dev/null and b/plio/examples/ControlNetworks/apollo_out_v5.net differ diff --git a/plio/io/ControlNetFileHeaderV0005_pb2.py b/plio/io/ControlNetFileHeaderV0005_pb2.py new file mode 100644 index 0000000000000000000000000000000000000000..26201ce1ad92e5b128e16ff8e8d36715d3834fb8 --- /dev/null +++ b/plio/io/ControlNetFileHeaderV0005_pb2.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: ControlNetFileHeaderV0005.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='ControlNetFileHeaderV0005.proto', + package='Isis', + syntax='proto2', + serialized_options=None, + serialized_pb=_b('\n\x1f\x43ontrolNetFileHeaderV0005.proto\x12\x04Isis\"\xb8\x01\n\x19\x43ontrolNetFileHeaderV0005\x12\x11\n\tnetworkId\x18\x01 \x02(\t\x12\x12\n\ntargetName\x18\x02 \x02(\t\x12\x0f\n\x07\x63reated\x18\x03 \x01(\t\x12\x14\n\x0clastModified\x18\x04 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x10\n\x08userName\x18\x06 \x01(\t\x12\x11\n\tnumPoints\x18\x07 \x01(\x05\x12\x13\n\x0btargetRadii\x18\n \x03(\x01') +) + + + + +_CONTROLNETFILEHEADERV0005 = _descriptor.Descriptor( + name='ControlNetFileHeaderV0005', + full_name='Isis.ControlNetFileHeaderV0005', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='networkId', full_name='Isis.ControlNetFileHeaderV0005.networkId', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='targetName', full_name='Isis.ControlNetFileHeaderV0005.targetName', index=1, + number=2, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='created', full_name='Isis.ControlNetFileHeaderV0005.created', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lastModified', full_name='Isis.ControlNetFileHeaderV0005.lastModified', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='description', full_name='Isis.ControlNetFileHeaderV0005.description', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='userName', full_name='Isis.ControlNetFileHeaderV0005.userName', index=5, + number=6, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='numPoints', full_name='Isis.ControlNetFileHeaderV0005.numPoints', index=6, + number=7, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='targetRadii', full_name='Isis.ControlNetFileHeaderV0005.targetRadii', index=7, + number=10, type=1, cpp_type=5, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=42, + serialized_end=226, +) + +DESCRIPTOR.message_types_by_name['ControlNetFileHeaderV0005'] = _CONTROLNETFILEHEADERV0005 +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ControlNetFileHeaderV0005 = _reflection.GeneratedProtocolMessageType('ControlNetFileHeaderV0005', (_message.Message,), dict( + DESCRIPTOR = _CONTROLNETFILEHEADERV0005, + __module__ = 'ControlNetFileHeaderV0005_pb2' + # @@protoc_insertion_point(class_scope:Isis.ControlNetFileHeaderV0005) + )) +_sym_db.RegisterMessage(ControlNetFileHeaderV0005) + + +# @@protoc_insertion_point(module_scope) diff --git a/plio/io/ControlPointFileEntryV0005_pb2.py b/plio/io/ControlPointFileEntryV0005_pb2.py new file mode 100644 index 0000000000000000000000000000000000000000..6b845df7b588d845ade6c72563ab8258804438ce --- /dev/null +++ b/plio/io/ControlPointFileEntryV0005_pb2.py @@ -0,0 +1,634 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: ControlPointFileEntryV0005.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='ControlPointFileEntryV0005.proto', + package='Isis', + syntax='proto2', + serialized_options=None, + serialized_pb=_b('\n ControlPointFileEntryV0005.proto\x12\x04Isis\"\x82\x0e\n\x1a\x43ontrolPointFileEntryV0005\x12\n\n\x02id\x18\x01 \x02(\t\x12\x38\n\x04type\x18\x02 \x02(\x0e\x32*.Isis.ControlPointFileEntryV0005.PointType\x12\x13\n\x0b\x63hooserName\x18\x03 \x01(\t\x12\x10\n\x08\x64\x61tetime\x18\x04 \x01(\t\x12\x10\n\x08\x65\x64itLock\x18\x05 \x01(\x08\x12\x0e\n\x06ignore\x18\x06 \x01(\x08\x12\x16\n\x0ejigsawRejected\x18\x07 \x01(\x08\x12\x16\n\x0ereferenceIndex\x18\x08 \x01(\x05\x12N\n\x16\x61prioriSurfPointSource\x18\t \x01(\x0e\x32..Isis.ControlPointFileEntryV0005.AprioriSource\x12\"\n\x1a\x61prioriSurfPointSourceFile\x18\n \x01(\t\x12K\n\x13\x61prioriRadiusSource\x18\x0b \x01(\x0e\x32..Isis.ControlPointFileEntryV0005.AprioriSource\x12\x1f\n\x17\x61prioriRadiusSourceFile\x18\x0c \x01(\t\x12\x1b\n\x13latitudeConstrained\x18\r \x01(\x08\x12\x1c\n\x14longitudeConstrained\x18\x0e \x01(\x08\x12\x19\n\x11radiusConstrained\x18\x0f \x01(\x08\x12\x10\n\x08\x61prioriX\x18\x10 \x01(\x01\x12\x10\n\x08\x61prioriY\x18\x11 \x01(\x01\x12\x10\n\x08\x61prioriZ\x18\x12 \x01(\x01\x12\x18\n\x0c\x61prioriCovar\x18\x13 \x03(\x01\x42\x02\x10\x01\x12\x11\n\tadjustedX\x18\x14 \x01(\x01\x12\x11\n\tadjustedY\x18\x15 \x01(\x01\x12\x11\n\tadjustedZ\x18\x16 \x01(\x01\x12\x19\n\radjustedCovar\x18\x17 \x03(\x01\x42\x02\x10\x01\x12:\n\x03log\x18\x18 \x03(\x0b\x32-.Isis.ControlPointFileEntryV0005.PointLogData\x12:\n\x08measures\x18\x19 \x03(\x0b\x32(.Isis.ControlPointFileEntryV0005.Measure\x1al\n\x0cPointLogData\x12\x16\n\x0e\x64oubleDataType\x18\x01 \x01(\x05\x12\x17\n\x0f\x64oubleDataValue\x18\x02 \x01(\x01\x12\x14\n\x0c\x62oolDataType\x18\x03 \x01(\x05\x12\x15\n\rboolDataValue\x18\x04 \x01(\x08\x1a\x83\x05\n\x07Measure\x12\x14\n\x0cserialnumber\x18\x01 \x02(\t\x12\x42\n\x04type\x18\x02 \x02(\x0e\x32\x34.Isis.ControlPointFileEntryV0005.Measure.MeasureType\x12\x0e\n\x06sample\x18\x03 \x01(\x01\x12\x0c\n\x04line\x18\x04 \x01(\x01\x12\x16\n\x0esampleResidual\x18\x05 \x01(\x01\x12\x14\n\x0clineResidual\x18\x06 \x01(\x01\x12\x13\n\x0b\x63hoosername\x18\x07 \x01(\t\x12\x10\n\x08\x64\x61tetime\x18\x08 \x01(\t\x12\x10\n\x08\x65\x64itLock\x18\t \x01(\x08\x12\x0e\n\x06ignore\x18\n \x01(\x08\x12\x16\n\x0ejigsawRejected\x18\x0b \x01(\x08\x12\x10\n\x08\x64iameter\x18\x0c \x01(\x01\x12\x15\n\rapriorisample\x18\r \x01(\x01\x12\x13\n\x0b\x61prioriline\x18\x0e \x01(\x01\x12\x13\n\x0bsamplesigma\x18\x0f \x01(\x01\x12\x11\n\tlinesigma\x18\x10 \x01(\x01\x12\x44\n\x03log\x18\x11 \x03(\x0b\x32\x37.Isis.ControlPointFileEntryV0005.Measure.MeasureLogData\x1an\n\x0eMeasureLogData\x12\x16\n\x0e\x64oubleDataType\x18\x01 \x01(\x05\x12\x17\n\x0f\x64oubleDataValue\x18\x02 \x01(\x01\x12\x14\n\x0c\x62oolDataType\x18\x03 \x01(\x05\x12\x15\n\rboolDataValue\x18\x04 \x01(\x08\"U\n\x0bMeasureType\x12\r\n\tCandidate\x10\x00\x12\n\n\x06Manual\x10\x01\x12\x13\n\x0fRegisteredPixel\x10\x02\x12\x16\n\x12RegisteredSubPixel\x10\x03\"X\n\tPointType\x12\x08\n\x04\x46ree\x10\x02\x12\x0f\n\x0b\x43onstrained\x10\x03\x12\t\n\x05\x46ixed\x10\x04\x12\x10\n\x0cobsolete_Tie\x10\x00\x12\x13\n\x0fobsolete_Ground\x10\x01\"\x82\x01\n\rAprioriSource\x12\x08\n\x04None\x10\x00\x12\x08\n\x04User\x10\x01\x12\x15\n\x11\x41verageOfMeasures\x10\x02\x12\r\n\tReference\x10\x03\x12\r\n\tEllipsoid\x10\x04\x12\x07\n\x03\x44\x45M\x10\x05\x12\x0b\n\x07\x42\x61semap\x10\x06\x12\x12\n\x0e\x42undleSolution\x10\x07') +) + + + +_CONTROLPOINTFILEENTRYV0005_MEASURE_MEASURETYPE = _descriptor.EnumDescriptor( + name='MeasureType', + full_name='Isis.ControlPointFileEntryV0005.Measure.MeasureType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='Candidate', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='Manual', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='RegisteredPixel', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='RegisteredSubPixel', index=3, number=3, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=1529, + serialized_end=1614, +) +_sym_db.RegisterEnumDescriptor(_CONTROLPOINTFILEENTRYV0005_MEASURE_MEASURETYPE) + +_CONTROLPOINTFILEENTRYV0005_POINTTYPE = _descriptor.EnumDescriptor( + name='PointType', + full_name='Isis.ControlPointFileEntryV0005.PointType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='Free', index=0, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='Constrained', index=1, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='Fixed', index=2, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='obsolete_Tie', index=3, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='obsolete_Ground', index=4, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=1616, + serialized_end=1704, +) +_sym_db.RegisterEnumDescriptor(_CONTROLPOINTFILEENTRYV0005_POINTTYPE) + +_CONTROLPOINTFILEENTRYV0005_APRIORISOURCE = _descriptor.EnumDescriptor( + name='AprioriSource', + full_name='Isis.ControlPointFileEntryV0005.AprioriSource', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='None', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='User', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AverageOfMeasures', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='Reference', index=3, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='Ellipsoid', index=4, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DEM', index=5, number=5, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='Basemap', index=6, number=6, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BundleSolution', index=7, number=7, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=1707, + serialized_end=1837, +) +_sym_db.RegisterEnumDescriptor(_CONTROLPOINTFILEENTRYV0005_APRIORISOURCE) + + +_CONTROLPOINTFILEENTRYV0005_POINTLOGDATA = _descriptor.Descriptor( + name='PointLogData', + full_name='Isis.ControlPointFileEntryV0005.PointLogData', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='doubleDataType', full_name='Isis.ControlPointFileEntryV0005.PointLogData.doubleDataType', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='doubleDataValue', full_name='Isis.ControlPointFileEntryV0005.PointLogData.doubleDataValue', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='boolDataType', full_name='Isis.ControlPointFileEntryV0005.PointLogData.boolDataType', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='boolDataValue', full_name='Isis.ControlPointFileEntryV0005.PointLogData.boolDataValue', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=860, + serialized_end=968, +) + +_CONTROLPOINTFILEENTRYV0005_MEASURE_MEASURELOGDATA = _descriptor.Descriptor( + name='MeasureLogData', + full_name='Isis.ControlPointFileEntryV0005.Measure.MeasureLogData', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='doubleDataType', full_name='Isis.ControlPointFileEntryV0005.Measure.MeasureLogData.doubleDataType', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='doubleDataValue', full_name='Isis.ControlPointFileEntryV0005.Measure.MeasureLogData.doubleDataValue', index=1, + number=2, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='boolDataType', full_name='Isis.ControlPointFileEntryV0005.Measure.MeasureLogData.boolDataType', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='boolDataValue', full_name='Isis.ControlPointFileEntryV0005.Measure.MeasureLogData.boolDataValue', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1417, + serialized_end=1527, +) + +_CONTROLPOINTFILEENTRYV0005_MEASURE = _descriptor.Descriptor( + name='Measure', + full_name='Isis.ControlPointFileEntryV0005.Measure', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='serialnumber', full_name='Isis.ControlPointFileEntryV0005.Measure.serialnumber', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='Isis.ControlPointFileEntryV0005.Measure.type', index=1, + number=2, type=14, cpp_type=8, label=2, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sample', full_name='Isis.ControlPointFileEntryV0005.Measure.sample', index=2, + number=3, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='line', full_name='Isis.ControlPointFileEntryV0005.Measure.line', index=3, + number=4, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sampleResidual', full_name='Isis.ControlPointFileEntryV0005.Measure.sampleResidual', index=4, + number=5, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lineResidual', full_name='Isis.ControlPointFileEntryV0005.Measure.lineResidual', index=5, + number=6, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='choosername', full_name='Isis.ControlPointFileEntryV0005.Measure.choosername', index=6, + number=7, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='datetime', full_name='Isis.ControlPointFileEntryV0005.Measure.datetime', index=7, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='editLock', full_name='Isis.ControlPointFileEntryV0005.Measure.editLock', index=8, + number=9, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore', full_name='Isis.ControlPointFileEntryV0005.Measure.ignore', index=9, + number=10, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='jigsawRejected', full_name='Isis.ControlPointFileEntryV0005.Measure.jigsawRejected', index=10, + number=11, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='diameter', full_name='Isis.ControlPointFileEntryV0005.Measure.diameter', index=11, + number=12, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='apriorisample', full_name='Isis.ControlPointFileEntryV0005.Measure.apriorisample', index=12, + number=13, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='aprioriline', full_name='Isis.ControlPointFileEntryV0005.Measure.aprioriline', index=13, + number=14, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='samplesigma', full_name='Isis.ControlPointFileEntryV0005.Measure.samplesigma', index=14, + number=15, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='linesigma', full_name='Isis.ControlPointFileEntryV0005.Measure.linesigma', index=15, + number=16, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='log', full_name='Isis.ControlPointFileEntryV0005.Measure.log', index=16, + number=17, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_CONTROLPOINTFILEENTRYV0005_MEASURE_MEASURELOGDATA, ], + enum_types=[ + _CONTROLPOINTFILEENTRYV0005_MEASURE_MEASURETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=971, + serialized_end=1614, +) + +_CONTROLPOINTFILEENTRYV0005 = _descriptor.Descriptor( + name='ControlPointFileEntryV0005', + full_name='Isis.ControlPointFileEntryV0005', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='Isis.ControlPointFileEntryV0005.id', index=0, + number=1, type=9, cpp_type=9, label=2, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='Isis.ControlPointFileEntryV0005.type', index=1, + number=2, type=14, cpp_type=8, label=2, + has_default_value=False, default_value=2, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='chooserName', full_name='Isis.ControlPointFileEntryV0005.chooserName', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='datetime', full_name='Isis.ControlPointFileEntryV0005.datetime', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='editLock', full_name='Isis.ControlPointFileEntryV0005.editLock', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore', full_name='Isis.ControlPointFileEntryV0005.ignore', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='jigsawRejected', full_name='Isis.ControlPointFileEntryV0005.jigsawRejected', index=6, + number=7, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='referenceIndex', full_name='Isis.ControlPointFileEntryV0005.referenceIndex', index=7, + number=8, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='aprioriSurfPointSource', full_name='Isis.ControlPointFileEntryV0005.aprioriSurfPointSource', index=8, + number=9, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='aprioriSurfPointSourceFile', full_name='Isis.ControlPointFileEntryV0005.aprioriSurfPointSourceFile', index=9, + number=10, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='aprioriRadiusSource', full_name='Isis.ControlPointFileEntryV0005.aprioriRadiusSource', index=10, + number=11, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='aprioriRadiusSourceFile', full_name='Isis.ControlPointFileEntryV0005.aprioriRadiusSourceFile', index=11, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='latitudeConstrained', full_name='Isis.ControlPointFileEntryV0005.latitudeConstrained', index=12, + number=13, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='longitudeConstrained', full_name='Isis.ControlPointFileEntryV0005.longitudeConstrained', index=13, + number=14, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='radiusConstrained', full_name='Isis.ControlPointFileEntryV0005.radiusConstrained', index=14, + number=15, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='aprioriX', full_name='Isis.ControlPointFileEntryV0005.aprioriX', index=15, + number=16, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='aprioriY', full_name='Isis.ControlPointFileEntryV0005.aprioriY', index=16, + number=17, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='aprioriZ', full_name='Isis.ControlPointFileEntryV0005.aprioriZ', index=17, + number=18, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='aprioriCovar', full_name='Isis.ControlPointFileEntryV0005.aprioriCovar', index=18, + number=19, type=1, cpp_type=5, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=_b('\020\001'), file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='adjustedX', full_name='Isis.ControlPointFileEntryV0005.adjustedX', index=19, + number=20, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='adjustedY', full_name='Isis.ControlPointFileEntryV0005.adjustedY', index=20, + number=21, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='adjustedZ', full_name='Isis.ControlPointFileEntryV0005.adjustedZ', index=21, + number=22, type=1, cpp_type=5, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='adjustedCovar', full_name='Isis.ControlPointFileEntryV0005.adjustedCovar', index=22, + number=23, type=1, cpp_type=5, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=_b('\020\001'), file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='log', full_name='Isis.ControlPointFileEntryV0005.log', index=23, + number=24, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='measures', full_name='Isis.ControlPointFileEntryV0005.measures', index=24, + number=25, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[_CONTROLPOINTFILEENTRYV0005_POINTLOGDATA, _CONTROLPOINTFILEENTRYV0005_MEASURE, ], + enum_types=[ + _CONTROLPOINTFILEENTRYV0005_POINTTYPE, + _CONTROLPOINTFILEENTRYV0005_APRIORISOURCE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=43, + serialized_end=1837, +) + +_CONTROLPOINTFILEENTRYV0005_POINTLOGDATA.containing_type = _CONTROLPOINTFILEENTRYV0005 +_CONTROLPOINTFILEENTRYV0005_MEASURE_MEASURELOGDATA.containing_type = _CONTROLPOINTFILEENTRYV0005_MEASURE +_CONTROLPOINTFILEENTRYV0005_MEASURE.fields_by_name['type'].enum_type = _CONTROLPOINTFILEENTRYV0005_MEASURE_MEASURETYPE +_CONTROLPOINTFILEENTRYV0005_MEASURE.fields_by_name['log'].message_type = _CONTROLPOINTFILEENTRYV0005_MEASURE_MEASURELOGDATA +_CONTROLPOINTFILEENTRYV0005_MEASURE.containing_type = _CONTROLPOINTFILEENTRYV0005 +_CONTROLPOINTFILEENTRYV0005_MEASURE_MEASURETYPE.containing_type = _CONTROLPOINTFILEENTRYV0005_MEASURE +_CONTROLPOINTFILEENTRYV0005.fields_by_name['type'].enum_type = _CONTROLPOINTFILEENTRYV0005_POINTTYPE +_CONTROLPOINTFILEENTRYV0005.fields_by_name['aprioriSurfPointSource'].enum_type = _CONTROLPOINTFILEENTRYV0005_APRIORISOURCE +_CONTROLPOINTFILEENTRYV0005.fields_by_name['aprioriRadiusSource'].enum_type = _CONTROLPOINTFILEENTRYV0005_APRIORISOURCE +_CONTROLPOINTFILEENTRYV0005.fields_by_name['log'].message_type = _CONTROLPOINTFILEENTRYV0005_POINTLOGDATA +_CONTROLPOINTFILEENTRYV0005.fields_by_name['measures'].message_type = _CONTROLPOINTFILEENTRYV0005_MEASURE +_CONTROLPOINTFILEENTRYV0005_POINTTYPE.containing_type = _CONTROLPOINTFILEENTRYV0005 +_CONTROLPOINTFILEENTRYV0005_APRIORISOURCE.containing_type = _CONTROLPOINTFILEENTRYV0005 +DESCRIPTOR.message_types_by_name['ControlPointFileEntryV0005'] = _CONTROLPOINTFILEENTRYV0005 +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +ControlPointFileEntryV0005 = _reflection.GeneratedProtocolMessageType('ControlPointFileEntryV0005', (_message.Message,), dict( + + PointLogData = _reflection.GeneratedProtocolMessageType('PointLogData', (_message.Message,), dict( + DESCRIPTOR = _CONTROLPOINTFILEENTRYV0005_POINTLOGDATA, + __module__ = 'ControlPointFileEntryV0005_pb2' + # @@protoc_insertion_point(class_scope:Isis.ControlPointFileEntryV0005.PointLogData) + )) + , + + Measure = _reflection.GeneratedProtocolMessageType('Measure', (_message.Message,), dict( + + MeasureLogData = _reflection.GeneratedProtocolMessageType('MeasureLogData', (_message.Message,), dict( + DESCRIPTOR = _CONTROLPOINTFILEENTRYV0005_MEASURE_MEASURELOGDATA, + __module__ = 'ControlPointFileEntryV0005_pb2' + # @@protoc_insertion_point(class_scope:Isis.ControlPointFileEntryV0005.Measure.MeasureLogData) + )) + , + DESCRIPTOR = _CONTROLPOINTFILEENTRYV0005_MEASURE, + __module__ = 'ControlPointFileEntryV0005_pb2' + # @@protoc_insertion_point(class_scope:Isis.ControlPointFileEntryV0005.Measure) + )) + , + DESCRIPTOR = _CONTROLPOINTFILEENTRYV0005, + __module__ = 'ControlPointFileEntryV0005_pb2' + # @@protoc_insertion_point(class_scope:Isis.ControlPointFileEntryV0005) + )) +_sym_db.RegisterMessage(ControlPointFileEntryV0005) +_sym_db.RegisterMessage(ControlPointFileEntryV0005.PointLogData) +_sym_db.RegisterMessage(ControlPointFileEntryV0005.Measure) +_sym_db.RegisterMessage(ControlPointFileEntryV0005.Measure.MeasureLogData) + + +_CONTROLPOINTFILEENTRYV0005.fields_by_name['aprioriCovar']._options = None +_CONTROLPOINTFILEENTRYV0005.fields_by_name['adjustedCovar']._options = None +# @@protoc_insertion_point(module_scope) diff --git a/plio/io/io_controlnetwork.py b/plio/io/io_controlnetwork.py index b9c6fefe72b453bdb151d22397d23ba14ccf73d3..24a0d05e54c5f9be2b45cbad059af9a9f20af814 100644 --- a/plio/io/io_controlnetwork.py +++ b/plio/io/io_controlnetwork.py @@ -3,8 +3,11 @@ from time import gmtime, strftime import pandas as pd import numpy as np import pvl +import struct from plio.io import ControlNetFileV0002_pb2 as cnf +from plio.io import ControlNetFileHeaderV0005_pb2 as cnh5 +from plio.io import ControlPointFileEntryV0005_pb2 as cnp5 from plio.utils.utils import xstr, find_in_dict HEADERSTARTBYTE = 65536 @@ -192,23 +195,47 @@ class IsisStore(object): self.point_attrs = [i for i in cnf._CONTROLPOINTFILEENTRYV0002.fields_by_name if i != 'measures'] self.measure_attrs = [i for i in cnf._CONTROLPOINTFILEENTRYV0002_MEASURE.fields_by_name] - cols = self.point_attrs + self.measure_attrs + cp = cnf.ControlPointFileEntryV0002() + self._handle.seek(header_start_byte) + pbuf_header = cnf.ControlNetFileHeaderV0002() + pbuf_header.ParseFromString(self._handle.read(header_bytes)) + + self._handle.seek(point_start_byte) + cp = cnf.ControlPointFileEntryV0002() + pts = [] + for s in pbuf_header.pointMessageSizes: + cp.ParseFromString(self._handle.read(s)) + pt = [getattr(cp, i) for i in self.point_attrs if i != 'measures'] + + for measure in cp.measures: + meas = pt + [getattr(measure, j) for j in self.measure_attrs] + pts.append(meas) + + elif version == 5: + self.point_attrs = [i for i in cnp5._CONTROLPOINTFILEENTRYV0005.fields_by_name if i != 'measures'] + self.measure_attrs = [i for i in cnp5._CONTROLPOINTFILEENTRYV0005_MEASURE.fields_by_name] + + cp = cnp5.ControlPointFileEntryV0005() + self._handle.seek(header_start_byte) + pbuf_header = cnh5.ControlNetFileHeaderV0005() + pbuf_header.ParseFromString(self._handle.read(header_bytes)) + + self._handle.seek(point_start_byte) + cp = cnp5.ControlPointFileEntryV0005() + pts = [] + byte_count = 0; + while byte_count < find_in_dict(pvl_header, 'PointsBytes'): + message_size = struct.unpack('I', self._handle.read(4))[0] + cp.ParseFromString(self._handle.read(message_size)) + pt = [getattr(cp, i) for i in self.point_attrs if i != 'measures'] + + for measure in cp.measures: + meas = pt + [getattr(measure, j) for j in self.measure_attrs] + pts.append(meas) + + byte_count += 4 + message_size - cp = cnf.ControlPointFileEntryV0002() - self._handle.seek(header_start_byte) - pbuf_header = cnf.ControlNetFileHeaderV0002() - pbuf_header.ParseFromString(self._handle.read(header_bytes)) - - self._handle.seek(point_start_byte) - cp = cnf.ControlPointFileEntryV0002() - pts = [] - for s in pbuf_header.pointMessageSizes: - cp.ParseFromString(self._handle.read(s)) - pt = [getattr(cp, i) for i in self.point_attrs if i != 'measures'] - - for measure in cp.measures: - meas = pt + [getattr(measure, j) for j in self.measure_attrs] - pts.append(meas) + cols = self.point_attrs + self.measure_attrs df = IsisControlNetwork(pts, columns=cols) df.header = pvl_header return df diff --git a/plio/io/tests/test_io_controlnetwork.py b/plio/io/tests/test_io_controlnetwork.py index fc3d05d5080296246398c00f5532537dca3b1680..1ff1da297d507eca4eca408e63c5d4bdfe770848 100644 --- a/plio/io/tests/test_io_controlnetwork.py +++ b/plio/io/tests/test_io_controlnetwork.py @@ -14,15 +14,13 @@ from plio.examples import get_path import pytest -@pytest.fixture -def apollo_cnet(): - return get_path('apollo_out.net') - sys.path.insert(0, os.path.abspath('..')) - -def test_cnet_read(apollo_cnet): - df = io_controlnetwork.from_isis(apollo_cnet) +@pytest.mark.parametrize('cnet_file', + (get_path('apollo_out.net'), get_path('apollo_out_v5.net')) +) +def test_cnet_read(cnet_file): + df = io_controlnetwork.from_isis(cnet_file) assert len(df) == find_in_dict(df.header, 'NumberOfMeasures') assert isinstance(df, io_controlnetwork.IsisControlNetwork) assert len(df.groupby('id')) == find_in_dict(df.header, 'NumberOfPoints')