sdata 1.5.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. sdata/__init__.py +140 -0
  2. sdata/base.py +684 -0
  3. sdata/contrib/__init__.py +0 -0
  4. sdata/contrib/piexif/__init__.py +12 -0
  5. sdata/contrib/piexif/_common.py +94 -0
  6. sdata/contrib/piexif/_dump.py +346 -0
  7. sdata/contrib/piexif/_exceptions.py +2 -0
  8. sdata/contrib/piexif/_exif.py +638 -0
  9. sdata/contrib/piexif/_insert.py +60 -0
  10. sdata/contrib/piexif/_load.py +270 -0
  11. sdata/contrib/piexif/_remove.py +56 -0
  12. sdata/contrib/piexif/_transplant.py +45 -0
  13. sdata/contrib/piexif/_webp.py +240 -0
  14. sdata/contrib/piexif/helper.py +66 -0
  15. sdata/contrib/ranger/__init__.py +8 -0
  16. sdata/contrib/ranger/collections/__init__.py +0 -0
  17. sdata/contrib/ranger/collections/rangebucketmap.py +346 -0
  18. sdata/contrib/ranger/collections/rangemap.py +396 -0
  19. sdata/contrib/ranger/collections/rangeset.py +483 -0
  20. sdata/contrib/ranger/range/__init__.py +0 -0
  21. sdata/contrib/ranger/range/cut.py +285 -0
  22. sdata/contrib/ranger/range/range.py +644 -0
  23. sdata/contrib/sobol_seq.py +394 -0
  24. sdata/contrib/sortedcontainers/LICENSE +13 -0
  25. sdata/contrib/sortedcontainers/__init__.py +74 -0
  26. sdata/contrib/sortedcontainers/sorteddict.py +789 -0
  27. sdata/contrib/sortedcontainers/sortedlist.py +2646 -0
  28. sdata/contrib/sortedcontainers/sortedset.py +733 -0
  29. sdata/contrib/sqlitedict.py +598 -0
  30. sdata/contrib/timeflake/__init__.py +40 -0
  31. sdata/contrib/timeflake/flake.py +69 -0
  32. sdata/contrib/timeflake/utils.py +47 -0
  33. sdata/deprecated/__init__.py +10 -0
  34. sdata/deprecated/data.py +1503 -0
  35. sdata/did/__init__.py +129 -0
  36. sdata/did/_http.py +67 -0
  37. sdata/did/base58btc.py +49 -0
  38. sdata/did/did_github.py +152 -0
  39. sdata/did/did_peer4.py +155 -0
  40. sdata/did/did_web.py +222 -0
  41. sdata/did/diddoc.py +75 -0
  42. sdata/did/ed25519.py +225 -0
  43. sdata/did/eddsa.py +107 -0
  44. sdata/did/errors.py +40 -0
  45. sdata/did/issue_vc.py +193 -0
  46. sdata/did/jose.py +126 -0
  47. sdata/did/keys.py +104 -0
  48. sdata/did/utils_didkey.py +161 -0
  49. sdata/did/verify_vp.py +158 -0
  50. sdata/doe.py +101 -0
  51. sdata/dtypes.py +510 -0
  52. sdata/experiments/__init__.py +331 -0
  53. sdata/experiments/blob0.py +131 -0
  54. sdata/experiments/file.py +42 -0
  55. sdata/experiments/filegroup.py +144 -0
  56. sdata/experiments/image_old.py +313 -0
  57. sdata/experiments/ks2.py +15 -0
  58. sdata/experiments/lapshear.py +8 -0
  59. sdata/experiments/material.py +7 -0
  60. sdata/experiments/parameters_deprecated.py +394 -0
  61. sdata/experiments/workbook.py +226 -0
  62. sdata/format.py +125 -0
  63. sdata/imagemeta.py +533 -0
  64. sdata/interactive.py +118 -0
  65. sdata/iolib/__init__.py +51 -0
  66. sdata/iolib/hashtree.py +264 -0
  67. sdata/iolib/json1sqlitestore.py +554 -0
  68. sdata/iolib/jsonsqlitestore.py +704 -0
  69. sdata/iolib/pud.py +242 -0
  70. sdata/iolib/reader.py +262 -0
  71. sdata/iolib/writer.py +419 -0
  72. sdata/metadata.py +882 -0
  73. sdata/parameter.py +414 -0
  74. sdata/schema.py +273 -0
  75. sdata/sclass/__init__.py +111 -0
  76. sdata/sclass/bfo_classes.py +362 -0
  77. sdata/sclass/blob.py +362 -0
  78. sdata/sclass/content.py +87 -0
  79. sdata/sclass/dataframe.py +1251 -0
  80. sdata/sclass/dataframegroup.py +187 -0
  81. sdata/sclass/dependency_graph.py +85 -0
  82. sdata/sclass/filereference.py +124 -0
  83. sdata/sclass/image.py +218 -0
  84. sdata/sclass/lazy_namespace.py +155 -0
  85. sdata/sclass/process.py +383 -0
  86. sdata/sclass/process_graph.py +221 -0
  87. sdata/sclass/zipfile.py +135 -0
  88. sdata/semantic.py +346 -0
  89. sdata/suuid.py +136 -0
  90. sdata/timestamp.py +336 -0
  91. sdata/tools.py +14 -0
  92. sdata/units.py +602 -0
  93. sdata/vocab.py +149 -0
  94. sdata-1.5.0.dist-info/METADATA +264 -0
  95. sdata-1.5.0.dist-info/RECORD +98 -0
  96. sdata-1.5.0.dist-info/WHEEL +5 -0
  97. sdata-1.5.0.dist-info/licenses/LICENSE-MIT +21 -0
  98. sdata-1.5.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,638 @@
1
+ class TYPES:
2
+ Byte = 1
3
+ Ascii = 2
4
+ Short = 3
5
+ Long = 4
6
+ Rational = 5
7
+ SByte = 6
8
+ Undefined = 7
9
+ SShort = 8
10
+ SLong = 9
11
+ SRational = 10
12
+ Float = 11
13
+ DFloat = 12
14
+
15
+
16
+ TAGS = {
17
+ 'Image': {11: {'name': 'ProcessingSoftware', 'type': TYPES.Ascii},
18
+ 254: {'name': 'NewSubfileType', 'type': TYPES.Long},
19
+ 255: {'name': 'SubfileType', 'type': TYPES.Short},
20
+ 256: {'name': 'ImageWidth', 'type': TYPES.Long},
21
+ 257: {'name': 'ImageLength', 'type': TYPES.Long},
22
+ 258: {'name': 'BitsPerSample', 'type': TYPES.Short},
23
+ 259: {'name': 'Compression', 'type': TYPES.Short},
24
+ 262: {'name': 'PhotometricInterpretation', 'type': TYPES.Short},
25
+ 263: {'name': 'Threshholding', 'type': TYPES.Short},
26
+ 264: {'name': 'CellWidth', 'type': TYPES.Short},
27
+ 265: {'name': 'CellLength', 'type': TYPES.Short},
28
+ 266: {'name': 'FillOrder', 'type': TYPES.Short},
29
+ 269: {'name': 'DocumentName', 'type': TYPES.Ascii},
30
+ 270: {'name': 'ImageDescription', 'type': TYPES.Ascii},
31
+ 271: {'name': 'Make', 'type': TYPES.Ascii},
32
+ 272: {'name': 'Model', 'type': TYPES.Ascii},
33
+ 273: {'name': 'StripOffsets', 'type': TYPES.Long},
34
+ 274: {'name': 'Orientation', 'type': TYPES.Short},
35
+ 277: {'name': 'SamplesPerPixel', 'type': TYPES.Short},
36
+ 278: {'name': 'RowsPerStrip', 'type': TYPES.Long},
37
+ 279: {'name': 'StripByteCounts', 'type': TYPES.Long},
38
+ 282: {'name': 'XResolution', 'type': TYPES.Rational},
39
+ 283: {'name': 'YResolution', 'type': TYPES.Rational},
40
+ 284: {'name': 'PlanarConfiguration', 'type': TYPES.Short},
41
+ 290: {'name': 'GrayResponseUnit', 'type': TYPES.Short},
42
+ 291: {'name': 'GrayResponseCurve', 'type': TYPES.Short},
43
+ 292: {'name': 'T4Options', 'type': TYPES.Long},
44
+ 293: {'name': 'T6Options', 'type': TYPES.Long},
45
+ 296: {'name': 'ResolutionUnit', 'type': TYPES.Short},
46
+ 301: {'name': 'TransferFunction', 'type': TYPES.Short},
47
+ 305: {'name': 'Software', 'type': TYPES.Ascii},
48
+ 306: {'name': 'DateTime', 'type': TYPES.Ascii},
49
+ 315: {'name': 'Artist', 'type': TYPES.Ascii},
50
+ 316: {'name': 'HostComputer', 'type': TYPES.Ascii},
51
+ 317: {'name': 'Predictor', 'type': TYPES.Short},
52
+ 318: {'name': 'WhitePoint', 'type': TYPES.Rational},
53
+ 319: {'name': 'PrimaryChromaticities', 'type': TYPES.Rational},
54
+ 320: {'name': 'ColorMap', 'type': TYPES.Short},
55
+ 321: {'name': 'HalftoneHints', 'type': TYPES.Short},
56
+ 322: {'name': 'TileWidth', 'type': TYPES.Short},
57
+ 323: {'name': 'TileLength', 'type': TYPES.Short},
58
+ 324: {'name': 'TileOffsets', 'type': TYPES.Short},
59
+ 325: {'name': 'TileByteCounts', 'type': TYPES.Short},
60
+ 330: {'name': 'SubIFDs', 'type': TYPES.Long},
61
+ 332: {'name': 'InkSet', 'type': TYPES.Short},
62
+ 333: {'name': 'InkNames', 'type': TYPES.Ascii},
63
+ 334: {'name': 'NumberOfInks', 'type': TYPES.Short},
64
+ 336: {'name': 'DotRange', 'type': TYPES.Byte},
65
+ 337: {'name': 'TargetPrinter', 'type': TYPES.Ascii},
66
+ 338: {'name': 'ExtraSamples', 'type': TYPES.Short},
67
+ 339: {'name': 'SampleFormat', 'type': TYPES.Short},
68
+ 340: {'name': 'SMinSampleValue', 'type': TYPES.Short},
69
+ 341: {'name': 'SMaxSampleValue', 'type': TYPES.Short},
70
+ 342: {'name': 'TransferRange', 'type': TYPES.Short},
71
+ 343: {'name': 'ClipPath', 'type': TYPES.Byte},
72
+ 344: {'name': 'XClipPathUnits', 'type': TYPES.Long},
73
+ 345: {'name': 'YClipPathUnits', 'type': TYPES.Long},
74
+ 346: {'name': 'Indexed', 'type': TYPES.Short},
75
+ 347: {'name': 'JPEGTables', 'type': TYPES.Undefined},
76
+ 351: {'name': 'OPIProxy', 'type': TYPES.Short},
77
+ 512: {'name': 'JPEGProc', 'type': TYPES.Long},
78
+ 513: {'name': 'JPEGInterchangeFormat', 'type': TYPES.Long},
79
+ 514: {'name': 'JPEGInterchangeFormatLength', 'type': TYPES.Long},
80
+ 515: {'name': 'JPEGRestartInterval', 'type': TYPES.Short},
81
+ 517: {'name': 'JPEGLosslessPredictors', 'type': TYPES.Short},
82
+ 518: {'name': 'JPEGPointTransforms', 'type': TYPES.Short},
83
+ 519: {'name': 'JPEGQTables', 'type': TYPES.Long},
84
+ 520: {'name': 'JPEGDCTables', 'type': TYPES.Long},
85
+ 521: {'name': 'JPEGACTables', 'type': TYPES.Long},
86
+ 529: {'name': 'YCbCrCoefficients', 'type': TYPES.Rational},
87
+ 530: {'name': 'YCbCrSubSampling', 'type': TYPES.Short},
88
+ 531: {'name': 'YCbCrPositioning', 'type': TYPES.Short},
89
+ 532: {'name': 'ReferenceBlackWhite', 'type': TYPES.Rational},
90
+ 700: {'name': 'XMLPacket', 'type': TYPES.Byte},
91
+ 18246: {'name': 'Rating', 'type': TYPES.Short},
92
+ 18249: {'name': 'RatingPercent', 'type': TYPES.Short},
93
+ 32781: {'name': 'ImageID', 'type': TYPES.Ascii},
94
+ 33421: {'name': 'CFARepeatPatternDim', 'type': TYPES.Short},
95
+ 33422: {'name': 'CFAPattern', 'type': TYPES.Byte},
96
+ 33423: {'name': 'BatteryLevel', 'type': TYPES.Rational},
97
+ 33432: {'name': 'Copyright', 'type': TYPES.Ascii},
98
+ 33434: {'name': 'ExposureTime', 'type': TYPES.Rational},
99
+ 34377: {'name': 'ImageResources', 'type': TYPES.Byte},
100
+ 34665: {'name': 'ExifTag', 'type': TYPES.Long},
101
+ 34675: {'name': 'InterColorProfile', 'type': TYPES.Undefined},
102
+ 34853: {'name': 'GPSTag', 'type': TYPES.Long},
103
+ 34857: {'name': 'Interlace', 'type': TYPES.Short},
104
+ 34858: {'name': 'TimeZoneOffset', 'type': TYPES.Long},
105
+ 34859: {'name': 'SelfTimerMode', 'type': TYPES.Short},
106
+ 37387: {'name': 'FlashEnergy', 'type': TYPES.Rational},
107
+ 37388: {'name': 'SpatialFrequencyResponse', 'type': TYPES.Undefined},
108
+ 37389: {'name': 'Noise', 'type': TYPES.Undefined},
109
+ 37390: {'name': 'FocalPlaneXResolution', 'type': TYPES.Rational},
110
+ 37391: {'name': 'FocalPlaneYResolution', 'type': TYPES.Rational},
111
+ 37392: {'name': 'FocalPlaneResolutionUnit', 'type': TYPES.Short},
112
+ 37393: {'name': 'ImageNumber', 'type': TYPES.Long},
113
+ 37394: {'name': 'SecurityClassification', 'type': TYPES.Ascii},
114
+ 37395: {'name': 'ImageHistory', 'type': TYPES.Ascii},
115
+ 37397: {'name': 'ExposureIndex', 'type': TYPES.Rational},
116
+ 37398: {'name': 'TIFFEPStandardID', 'type': TYPES.Byte},
117
+ 37399: {'name': 'SensingMethod', 'type': TYPES.Short},
118
+ 40091: {'name': 'XPTitle', 'type': TYPES.Byte},
119
+ 40092: {'name': 'XPComment', 'type': TYPES.Byte},
120
+ 40093: {'name': 'XPAuthor', 'type': TYPES.Byte},
121
+ 40094: {'name': 'XPKeywords', 'type': TYPES.Byte},
122
+ 40095: {'name': 'XPSubject', 'type': TYPES.Byte},
123
+ 50341: {'name': 'PrintImageMatching', 'type': TYPES.Undefined},
124
+ 50706: {'name': 'DNGVersion', 'type': TYPES.Byte},
125
+ 50707: {'name': 'DNGBackwardVersion', 'type': TYPES.Byte},
126
+ 50708: {'name': 'UniqueCameraModel', 'type': TYPES.Ascii},
127
+ 50709: {'name': 'LocalizedCameraModel', 'type': TYPES.Byte},
128
+ 50710: {'name': 'CFAPlaneColor', 'type': TYPES.Byte},
129
+ 50711: {'name': 'CFALayout', 'type': TYPES.Short},
130
+ 50712: {'name': 'LinearizationTable', 'type': TYPES.Short},
131
+ 50713: {'name': 'BlackLevelRepeatDim', 'type': TYPES.Short},
132
+ 50714: {'name': 'BlackLevel', 'type': TYPES.Rational},
133
+ 50715: {'name': 'BlackLevelDeltaH', 'type': TYPES.SRational},
134
+ 50716: {'name': 'BlackLevelDeltaV', 'type': TYPES.SRational},
135
+ 50717: {'name': 'WhiteLevel', 'type': TYPES.Short},
136
+ 50718: {'name': 'DefaultScale', 'type': TYPES.Rational},
137
+ 50719: {'name': 'DefaultCropOrigin', 'type': TYPES.Short},
138
+ 50720: {'name': 'DefaultCropSize', 'type': TYPES.Short},
139
+ 50721: {'name': 'ColorMatrix1', 'type': TYPES.SRational},
140
+ 50722: {'name': 'ColorMatrix2', 'type': TYPES.SRational},
141
+ 50723: {'name': 'CameraCalibration1', 'type': TYPES.SRational},
142
+ 50724: {'name': 'CameraCalibration2', 'type': TYPES.SRational},
143
+ 50725: {'name': 'ReductionMatrix1', 'type': TYPES.SRational},
144
+ 50726: {'name': 'ReductionMatrix2', 'type': TYPES.SRational},
145
+ 50727: {'name': 'AnalogBalance', 'type': TYPES.Rational},
146
+ 50728: {'name': 'AsShotNeutral', 'type': TYPES.Short},
147
+ 50729: {'name': 'AsShotWhiteXY', 'type': TYPES.Rational},
148
+ 50730: {'name': 'BaselineExposure', 'type': TYPES.SRational},
149
+ 50731: {'name': 'BaselineNoise', 'type': TYPES.Rational},
150
+ 50732: {'name': 'BaselineSharpness', 'type': TYPES.Rational},
151
+ 50733: {'name': 'BayerGreenSplit', 'type': TYPES.Long},
152
+ 50734: {'name': 'LinearResponseLimit', 'type': TYPES.Rational},
153
+ 50735: {'name': 'CameraSerialNumber', 'type': TYPES.Ascii},
154
+ 50736: {'name': 'LensInfo', 'type': TYPES.Rational},
155
+ 50737: {'name': 'ChromaBlurRadius', 'type': TYPES.Rational},
156
+ 50738: {'name': 'AntiAliasStrength', 'type': TYPES.Rational},
157
+ 50739: {'name': 'ShadowScale', 'type': TYPES.SRational},
158
+ 50740: {'name': 'DNGPrivateData', 'type': TYPES.Byte},
159
+ 50741: {'name': 'MakerNoteSafety', 'type': TYPES.Short},
160
+ 50778: {'name': 'CalibrationIlluminant1', 'type': TYPES.Short},
161
+ 50779: {'name': 'CalibrationIlluminant2', 'type': TYPES.Short},
162
+ 50780: {'name': 'BestQualityScale', 'type': TYPES.Rational},
163
+ 50781: {'name': 'RawDataUniqueID', 'type': TYPES.Byte},
164
+ 50827: {'name': 'OriginalRawFileName', 'type': TYPES.Byte},
165
+ 50828: {'name': 'OriginalRawFileData', 'type': TYPES.Undefined},
166
+ 50829: {'name': 'ActiveArea', 'type': TYPES.Short},
167
+ 50830: {'name': 'MaskedAreas', 'type': TYPES.Short},
168
+ 50831: {'name': 'AsShotICCProfile', 'type': TYPES.Undefined},
169
+ 50832: {'name': 'AsShotPreProfileMatrix', 'type': TYPES.SRational},
170
+ 50833: {'name': 'CurrentICCProfile', 'type': TYPES.Undefined},
171
+ 50834: {'name': 'CurrentPreProfileMatrix', 'type': TYPES.SRational},
172
+ 50879: {'name': 'ColorimetricReference', 'type': TYPES.Short},
173
+ 50931: {'name': 'CameraCalibrationSignature', 'type': TYPES.Byte},
174
+ 50932: {'name': 'ProfileCalibrationSignature', 'type': TYPES.Byte},
175
+ 50934: {'name': 'AsShotProfileName', 'type': TYPES.Byte},
176
+ 50935: {'name': 'NoiseReductionApplied', 'type': TYPES.Rational},
177
+ 50936: {'name': 'ProfileName', 'type': TYPES.Byte},
178
+ 50937: {'name': 'ProfileHueSatMapDims', 'type': TYPES.Long},
179
+ 50938: {'name': 'ProfileHueSatMapData1', 'type': TYPES.Float},
180
+ 50939: {'name': 'ProfileHueSatMapData2', 'type': TYPES.Float},
181
+ 50940: {'name': 'ProfileToneCurve', 'type': TYPES.Float},
182
+ 50941: {'name': 'ProfileEmbedPolicy', 'type': TYPES.Long},
183
+ 50942: {'name': 'ProfileCopyright', 'type': TYPES.Byte},
184
+ 50964: {'name': 'ForwardMatrix1', 'type': TYPES.SRational},
185
+ 50965: {'name': 'ForwardMatrix2', 'type': TYPES.SRational},
186
+ 50966: {'name': 'PreviewApplicationName', 'type': TYPES.Byte},
187
+ 50967: {'name': 'PreviewApplicationVersion', 'type': TYPES.Byte},
188
+ 50968: {'name': 'PreviewSettingsName', 'type': TYPES.Byte},
189
+ 50969: {'name': 'PreviewSettingsDigest', 'type': TYPES.Byte},
190
+ 50970: {'name': 'PreviewColorSpace', 'type': TYPES.Long},
191
+ 50971: {'name': 'PreviewDateTime', 'type': TYPES.Ascii},
192
+ 50972: {'name': 'RawImageDigest', 'type': TYPES.Undefined},
193
+ 50973: {'name': 'OriginalRawFileDigest', 'type': TYPES.Undefined},
194
+ 50974: {'name': 'SubTileBlockSize', 'type': TYPES.Long},
195
+ 50975: {'name': 'RowInterleaveFactor', 'type': TYPES.Long},
196
+ 50981: {'name': 'ProfileLookTableDims', 'type': TYPES.Long},
197
+ 50982: {'name': 'ProfileLookTableData', 'type': TYPES.Float},
198
+ 51008: {'name': 'OpcodeList1', 'type': TYPES.Undefined},
199
+ 51009: {'name': 'OpcodeList2', 'type': TYPES.Undefined},
200
+ 51022: {'name': 'OpcodeList3', 'type': TYPES.Undefined},
201
+ 60606: {'name': 'ZZZTestSlong1', 'type': TYPES.SLong},
202
+ 60607: {'name': 'ZZZTestSlong2', 'type': TYPES.SLong},
203
+ 60608: {'name': 'ZZZTestSByte', 'type': TYPES.SByte},
204
+ 60609: {'name': 'ZZZTestSShort', 'type': TYPES.SShort},
205
+ 60610: {'name': 'ZZZTestDFloat', 'type': TYPES.DFloat},},
206
+ 'Exif': {33434: {'name': 'ExposureTime', 'type': TYPES.Rational},
207
+ 33437: {'name': 'FNumber', 'type': TYPES.Rational},
208
+ 34850: {'name': 'ExposureProgram', 'type': TYPES.Short},
209
+ 34852: {'name': 'SpectralSensitivity', 'type': TYPES.Ascii},
210
+ 34855: {'name': 'ISOSpeedRatings', 'type': TYPES.Short},
211
+ 34856: {'name': 'OECF', 'type': TYPES.Undefined},
212
+ 34864: {'name': 'SensitivityType', 'type': TYPES.Short},
213
+ 34865: {'name': 'StandardOutputSensitivity', 'type': TYPES.Long},
214
+ 34866: {'name': 'RecommendedExposureIndex', 'type': TYPES.Long},
215
+ 34867: {'name': 'ISOSpeed', 'type': TYPES.Long},
216
+ 34868: {'name': 'ISOSpeedLatitudeyyy', 'type': TYPES.Long},
217
+ 34869: {'name': 'ISOSpeedLatitudezzz', 'type': TYPES.Long},
218
+ 36864: {'name': 'ExifVersion', 'type': TYPES.Undefined},
219
+ 36867: {'name': 'DateTimeOriginal', 'type': TYPES.Ascii},
220
+ 36868: {'name': 'DateTimeDigitized', 'type': TYPES.Ascii},
221
+ 36880: {'name': 'OffsetTime', 'type': TYPES.Ascii},
222
+ 36881: {'name': 'OffsetTimeOriginal', 'type': TYPES.Ascii},
223
+ 36882: {'name': 'OffsetTimeDigitized', 'type': TYPES.Ascii},
224
+ 37121: {'name': 'ComponentsConfiguration', 'type': TYPES.Undefined},
225
+ 37122: {'name': 'CompressedBitsPerPixel', 'type': TYPES.Rational},
226
+ 37377: {'name': 'ShutterSpeedValue', 'type': TYPES.SRational},
227
+ 37378: {'name': 'ApertureValue', 'type': TYPES.Rational},
228
+ 37379: {'name': 'BrightnessValue', 'type': TYPES.SRational},
229
+ 37380: {'name': 'ExposureBiasValue', 'type': TYPES.SRational},
230
+ 37381: {'name': 'MaxApertureValue', 'type': TYPES.Rational},
231
+ 37382: {'name': 'SubjectDistance', 'type': TYPES.Rational},
232
+ 37383: {'name': 'MeteringMode', 'type': TYPES.Short},
233
+ 37384: {'name': 'LightSource', 'type': TYPES.Short},
234
+ 37385: {'name': 'Flash', 'type': TYPES.Short},
235
+ 37386: {'name': 'FocalLength', 'type': TYPES.Rational},
236
+ 37396: {'name': 'SubjectArea', 'type': TYPES.Short},
237
+ 37500: {'name': 'MakerNote', 'type': TYPES.Undefined},
238
+ 37510: {'name': 'UserComment', 'type': TYPES.Undefined},
239
+ 37520: {'name': 'SubSecTime', 'type': TYPES.Ascii},
240
+ 37521: {'name': 'SubSecTimeOriginal', 'type': TYPES.Ascii},
241
+ 37522: {'name': 'SubSecTimeDigitized', 'type': TYPES.Ascii},
242
+ 37888: {'name': 'Temperature', 'type': TYPES.SRational},
243
+ 37889: {'name': 'Humidity', 'type': TYPES.Rational},
244
+ 37890: {'name': 'Pressure', 'type': TYPES.Rational},
245
+ 37891: {'name': 'WaterDepth', 'type': TYPES.SRational},
246
+ 37892: {'name': 'Acceleration', 'type': TYPES.Rational},
247
+ 37893: {'name': 'CameraElevationAngle', 'type': TYPES.SRational},
248
+ 40960: {'name': 'FlashpixVersion', 'type': TYPES.Undefined},
249
+ 40961: {'name': 'ColorSpace', 'type': TYPES.Short},
250
+ 40962: {'name': 'PixelXDimension', 'type': TYPES.Long},
251
+ 40963: {'name': 'PixelYDimension', 'type': TYPES.Long},
252
+ 40964: {'name': 'RelatedSoundFile', 'type': TYPES.Ascii},
253
+ 40965: {'name': 'InteroperabilityTag', 'type': TYPES.Long},
254
+ 41483: {'name': 'FlashEnergy', 'type': TYPES.Rational},
255
+ 41484: {'name': 'SpatialFrequencyResponse', 'type': TYPES.Undefined},
256
+ 41486: {'name': 'FocalPlaneXResolution', 'type': TYPES.Rational},
257
+ 41487: {'name': 'FocalPlaneYResolution', 'type': TYPES.Rational},
258
+ 41488: {'name': 'FocalPlaneResolutionUnit', 'type': TYPES.Short},
259
+ 41492: {'name': 'SubjectLocation', 'type': TYPES.Short},
260
+ 41493: {'name': 'ExposureIndex', 'type': TYPES.Rational},
261
+ 41495: {'name': 'SensingMethod', 'type': TYPES.Short},
262
+ 41728: {'name': 'FileSource', 'type': TYPES.Undefined},
263
+ 41729: {'name': 'SceneType', 'type': TYPES.Undefined},
264
+ 41730: {'name': 'CFAPattern', 'type': TYPES.Undefined},
265
+ 41985: {'name': 'CustomRendered', 'type': TYPES.Short},
266
+ 41986: {'name': 'ExposureMode', 'type': TYPES.Short},
267
+ 41987: {'name': 'WhiteBalance', 'type': TYPES.Short},
268
+ 41988: {'name': 'DigitalZoomRatio', 'type': TYPES.Rational},
269
+ 41989: {'name': 'FocalLengthIn35mmFilm', 'type': TYPES.Short},
270
+ 41990: {'name': 'SceneCaptureType', 'type': TYPES.Short},
271
+ 41991: {'name': 'GainControl', 'type': TYPES.Short},
272
+ 41992: {'name': 'Contrast', 'type': TYPES.Short},
273
+ 41993: {'name': 'Saturation', 'type': TYPES.Short},
274
+ 41994: {'name': 'Sharpness', 'type': TYPES.Short},
275
+ 41995: {'name': 'DeviceSettingDescription', 'type': TYPES.Undefined},
276
+ 41996: {'name': 'SubjectDistanceRange', 'type': TYPES.Short},
277
+ 42016: {'name': 'ImageUniqueID', 'type': TYPES.Ascii},
278
+ 42032: {'name': 'CameraOwnerName', 'type': TYPES.Ascii},
279
+ 42033: {'name': 'BodySerialNumber', 'type': TYPES.Ascii},
280
+ 42034: {'name': 'LensSpecification', 'type': TYPES.Rational},
281
+ 42035: {'name': 'LensMake', 'type': TYPES.Ascii},
282
+ 42036: {'name': 'LensModel', 'type': TYPES.Ascii},
283
+ 42037: {'name': 'LensSerialNumber', 'type': TYPES.Ascii},
284
+ 42240: {'name': 'Gamma', 'type': TYPES.Rational}},
285
+ 'GPS': {0: {'name': 'GPSVersionID', 'type': TYPES.Byte},
286
+ 1: {'name': 'GPSLatitudeRef', 'type': TYPES.Ascii},
287
+ 2: {'name': 'GPSLatitude', 'type': TYPES.Rational},
288
+ 3: {'name': 'GPSLongitudeRef', 'type': TYPES.Ascii},
289
+ 4: {'name': 'GPSLongitude', 'type': TYPES.Rational},
290
+ 5: {'name': 'GPSAltitudeRef', 'type': TYPES.Byte},
291
+ 6: {'name': 'GPSAltitude', 'type': TYPES.Rational},
292
+ 7: {'name': 'GPSTimeStamp', 'type': TYPES.Rational},
293
+ 8: {'name': 'GPSSatellites', 'type': TYPES.Ascii},
294
+ 9: {'name': 'GPSStatus', 'type': TYPES.Ascii},
295
+ 10: {'name': 'GPSMeasureMode', 'type': TYPES.Ascii},
296
+ 11: {'name': 'GPSDOP', 'type': TYPES.Rational},
297
+ 12: {'name': 'GPSSpeedRef', 'type': TYPES.Ascii},
298
+ 13: {'name': 'GPSSpeed', 'type': TYPES.Rational},
299
+ 14: {'name': 'GPSTrackRef', 'type': TYPES.Ascii},
300
+ 15: {'name': 'GPSTrack', 'type': TYPES.Rational},
301
+ 16: {'name': 'GPSImgDirectionRef', 'type': TYPES.Ascii},
302
+ 17: {'name': 'GPSImgDirection', 'type': TYPES.Rational},
303
+ 18: {'name': 'GPSMapDatum', 'type': TYPES.Ascii},
304
+ 19: {'name': 'GPSDestLatitudeRef', 'type': TYPES.Ascii},
305
+ 20: {'name': 'GPSDestLatitude', 'type': TYPES.Rational},
306
+ 21: {'name': 'GPSDestLongitudeRef', 'type': TYPES.Ascii},
307
+ 22: {'name': 'GPSDestLongitude', 'type': TYPES.Rational},
308
+ 23: {'name': 'GPSDestBearingRef', 'type': TYPES.Ascii},
309
+ 24: {'name': 'GPSDestBearing', 'type': TYPES.Rational},
310
+ 25: {'name': 'GPSDestDistanceRef', 'type': TYPES.Ascii},
311
+ 26: {'name': 'GPSDestDistance', 'type': TYPES.Rational},
312
+ 27: {'name': 'GPSProcessingMethod', 'type': TYPES.Undefined},
313
+ 28: {'name': 'GPSAreaInformation', 'type': TYPES.Undefined},
314
+ 29: {'name': 'GPSDateStamp', 'type': TYPES.Ascii},
315
+ 30: {'name': 'GPSDifferential', 'type': TYPES.Short},
316
+ 31: {'name': 'GPSHPositioningError', 'type': TYPES.Rational}},
317
+ 'Interop': {1: {'name': 'InteroperabilityIndex', 'type': TYPES.Ascii}},
318
+ }
319
+
320
+ TAGS["0th"] = TAGS["Image"]
321
+ TAGS["1st"] = TAGS["Image"]
322
+
323
+ class ImageIFD:
324
+ """Exif tag number reference - 0th IFD"""
325
+ ProcessingSoftware = 11
326
+ NewSubfileType = 254
327
+ SubfileType = 255
328
+ ImageWidth = 256
329
+ ImageLength = 257
330
+ BitsPerSample = 258
331
+ Compression = 259
332
+ PhotometricInterpretation = 262
333
+ Threshholding = 263
334
+ CellWidth = 264
335
+ CellLength = 265
336
+ FillOrder = 266
337
+ DocumentName = 269
338
+ ImageDescription = 270
339
+ Make = 271
340
+ Model = 272
341
+ StripOffsets = 273
342
+ Orientation = 274
343
+ SamplesPerPixel = 277
344
+ RowsPerStrip = 278
345
+ StripByteCounts = 279
346
+ XResolution = 282
347
+ YResolution = 283
348
+ PlanarConfiguration = 284
349
+ GrayResponseUnit = 290
350
+ GrayResponseCurve = 291
351
+ T4Options = 292
352
+ T6Options = 293
353
+ ResolutionUnit = 296
354
+ TransferFunction = 301
355
+ Software = 305
356
+ DateTime = 306
357
+ Artist = 315
358
+ HostComputer = 316
359
+ Predictor = 317
360
+ WhitePoint = 318
361
+ PrimaryChromaticities = 319
362
+ ColorMap = 320
363
+ HalftoneHints = 321
364
+ TileWidth = 322
365
+ TileLength = 323
366
+ TileOffsets = 324
367
+ TileByteCounts = 325
368
+ SubIFDs = 330
369
+ InkSet = 332
370
+ InkNames = 333
371
+ NumberOfInks = 334
372
+ DotRange = 336
373
+ TargetPrinter = 337
374
+ ExtraSamples = 338
375
+ SampleFormat = 339
376
+ SMinSampleValue = 340
377
+ SMaxSampleValue = 341
378
+ TransferRange = 342
379
+ ClipPath = 343
380
+ XClipPathUnits = 344
381
+ YClipPathUnits = 345
382
+ Indexed = 346
383
+ JPEGTables = 347
384
+ OPIProxy = 351
385
+ JPEGProc = 512
386
+ JPEGInterchangeFormat = 513
387
+ JPEGInterchangeFormatLength = 514
388
+ JPEGRestartInterval = 515
389
+ JPEGLosslessPredictors = 517
390
+ JPEGPointTransforms = 518
391
+ JPEGQTables = 519
392
+ JPEGDCTables = 520
393
+ JPEGACTables = 521
394
+ YCbCrCoefficients = 529
395
+ YCbCrSubSampling = 530
396
+ YCbCrPositioning = 531
397
+ ReferenceBlackWhite = 532
398
+ XMLPacket = 700
399
+ Rating = 18246
400
+ RatingPercent = 18249
401
+ ImageID = 32781
402
+ CFARepeatPatternDim = 33421
403
+ CFAPattern = 33422
404
+ BatteryLevel = 33423
405
+ Copyright = 33432
406
+ ExposureTime = 33434
407
+ ImageResources = 34377
408
+ ExifTag = 34665
409
+ InterColorProfile = 34675
410
+ GPSTag = 34853
411
+ Interlace = 34857
412
+ TimeZoneOffset = 34858
413
+ SelfTimerMode = 34859
414
+ FlashEnergy = 37387
415
+ SpatialFrequencyResponse = 37388
416
+ Noise = 37389
417
+ FocalPlaneXResolution = 37390
418
+ FocalPlaneYResolution = 37391
419
+ FocalPlaneResolutionUnit = 37392
420
+ ImageNumber = 37393
421
+ SecurityClassification = 37394
422
+ ImageHistory = 37395
423
+ ExposureIndex = 37397
424
+ TIFFEPStandardID = 37398
425
+ SensingMethod = 37399
426
+ XPTitle = 40091
427
+ XPComment = 40092
428
+ XPAuthor = 40093
429
+ XPKeywords = 40094
430
+ XPSubject = 40095
431
+ PrintImageMatching = 50341
432
+ DNGVersion = 50706
433
+ DNGBackwardVersion = 50707
434
+ UniqueCameraModel = 50708
435
+ LocalizedCameraModel = 50709
436
+ CFAPlaneColor = 50710
437
+ CFALayout = 50711
438
+ LinearizationTable = 50712
439
+ BlackLevelRepeatDim = 50713
440
+ BlackLevel = 50714
441
+ BlackLevelDeltaH = 50715
442
+ BlackLevelDeltaV = 50716
443
+ WhiteLevel = 50717
444
+ DefaultScale = 50718
445
+ DefaultCropOrigin = 50719
446
+ DefaultCropSize = 50720
447
+ ColorMatrix1 = 50721
448
+ ColorMatrix2 = 50722
449
+ CameraCalibration1 = 50723
450
+ CameraCalibration2 = 50724
451
+ ReductionMatrix1 = 50725
452
+ ReductionMatrix2 = 50726
453
+ AnalogBalance = 50727
454
+ AsShotNeutral = 50728
455
+ AsShotWhiteXY = 50729
456
+ BaselineExposure = 50730
457
+ BaselineNoise = 50731
458
+ BaselineSharpness = 50732
459
+ BayerGreenSplit = 50733
460
+ LinearResponseLimit = 50734
461
+ CameraSerialNumber = 50735
462
+ LensInfo = 50736
463
+ ChromaBlurRadius = 50737
464
+ AntiAliasStrength = 50738
465
+ ShadowScale = 50739
466
+ DNGPrivateData = 50740
467
+ MakerNoteSafety = 50741
468
+ CalibrationIlluminant1 = 50778
469
+ CalibrationIlluminant2 = 50779
470
+ BestQualityScale = 50780
471
+ RawDataUniqueID = 50781
472
+ OriginalRawFileName = 50827
473
+ OriginalRawFileData = 50828
474
+ ActiveArea = 50829
475
+ MaskedAreas = 50830
476
+ AsShotICCProfile = 50831
477
+ AsShotPreProfileMatrix = 50832
478
+ CurrentICCProfile = 50833
479
+ CurrentPreProfileMatrix = 50834
480
+ ColorimetricReference = 50879
481
+ CameraCalibrationSignature = 50931
482
+ ProfileCalibrationSignature = 50932
483
+ AsShotProfileName = 50934
484
+ NoiseReductionApplied = 50935
485
+ ProfileName = 50936
486
+ ProfileHueSatMapDims = 50937
487
+ ProfileHueSatMapData1 = 50938
488
+ ProfileHueSatMapData2 = 50939
489
+ ProfileToneCurve = 50940
490
+ ProfileEmbedPolicy = 50941
491
+ ProfileCopyright = 50942
492
+ ForwardMatrix1 = 50964
493
+ ForwardMatrix2 = 50965
494
+ PreviewApplicationName = 50966
495
+ PreviewApplicationVersion = 50967
496
+ PreviewSettingsName = 50968
497
+ PreviewSettingsDigest = 50969
498
+ PreviewColorSpace = 50970
499
+ PreviewDateTime = 50971
500
+ RawImageDigest = 50972
501
+ OriginalRawFileDigest = 50973
502
+ SubTileBlockSize = 50974
503
+ RowInterleaveFactor = 50975
504
+ ProfileLookTableDims = 50981
505
+ ProfileLookTableData = 50982
506
+ OpcodeList1 = 51008
507
+ OpcodeList2 = 51009
508
+ OpcodeList3 = 51022
509
+ NoiseProfile = 51041
510
+ ZZZTestSlong1 = 60606
511
+ ZZZTestSlong2 = 60607
512
+ ZZZTestSByte = 60608
513
+ ZZZTestSShort = 60609
514
+ ZZZTestDFloat = 60610
515
+
516
+
517
+ class ExifIFD:
518
+ """Exif tag number reference - Exif IFD"""
519
+ ExposureTime = 33434
520
+ FNumber = 33437
521
+ ExposureProgram = 34850
522
+ SpectralSensitivity = 34852
523
+ ISOSpeedRatings = 34855
524
+ OECF = 34856
525
+ SensitivityType = 34864
526
+ StandardOutputSensitivity = 34865
527
+ RecommendedExposureIndex = 34866
528
+ ISOSpeed = 34867
529
+ ISOSpeedLatitudeyyy = 34868
530
+ ISOSpeedLatitudezzz = 34869
531
+ ExifVersion = 36864
532
+ DateTimeOriginal = 36867
533
+ DateTimeDigitized = 36868
534
+ OffsetTime = 36880
535
+ OffsetTimeOriginal = 36881
536
+ OffsetTimeDigitized = 36882
537
+ ComponentsConfiguration = 37121
538
+ CompressedBitsPerPixel = 37122
539
+ ShutterSpeedValue = 37377
540
+ ApertureValue = 37378
541
+ BrightnessValue = 37379
542
+ ExposureBiasValue = 37380
543
+ MaxApertureValue = 37381
544
+ SubjectDistance = 37382
545
+ MeteringMode = 37383
546
+ LightSource = 37384
547
+ Flash = 37385
548
+ FocalLength = 37386
549
+ Temperature = 37888
550
+ Humidity = 37889
551
+ Pressure = 37890
552
+ WaterDepth = 37891
553
+ Acceleration = 37892
554
+ CameraElevationAngle = 37893
555
+ SubjectArea = 37396
556
+ MakerNote = 37500
557
+ UserComment = 37510
558
+ SubSecTime = 37520
559
+ SubSecTimeOriginal = 37521
560
+ SubSecTimeDigitized = 37522
561
+ FlashpixVersion = 40960
562
+ ColorSpace = 40961
563
+ PixelXDimension = 40962
564
+ PixelYDimension = 40963
565
+ RelatedSoundFile = 40964
566
+ InteroperabilityTag = 40965
567
+ FlashEnergy = 41483
568
+ SpatialFrequencyResponse = 41484
569
+ FocalPlaneXResolution = 41486
570
+ FocalPlaneYResolution = 41487
571
+ FocalPlaneResolutionUnit = 41488
572
+ SubjectLocation = 41492
573
+ ExposureIndex = 41493
574
+ SensingMethod = 41495
575
+ FileSource = 41728
576
+ SceneType = 41729
577
+ CFAPattern = 41730
578
+ CustomRendered = 41985
579
+ ExposureMode = 41986
580
+ WhiteBalance = 41987
581
+ DigitalZoomRatio = 41988
582
+ FocalLengthIn35mmFilm = 41989
583
+ SceneCaptureType = 41990
584
+ GainControl = 41991
585
+ Contrast = 41992
586
+ Saturation = 41993
587
+ Sharpness = 41994
588
+ DeviceSettingDescription = 41995
589
+ SubjectDistanceRange = 41996
590
+ ImageUniqueID = 42016
591
+ CameraOwnerName = 42032
592
+ BodySerialNumber = 42033
593
+ LensSpecification = 42034
594
+ LensMake = 42035
595
+ LensModel = 42036
596
+ LensSerialNumber = 42037
597
+ Gamma = 42240
598
+
599
+
600
+ class GPSIFD:
601
+ """Exif tag number reference - GPS IFD"""
602
+ GPSVersionID = 0
603
+ GPSLatitudeRef = 1
604
+ GPSLatitude = 2
605
+ GPSLongitudeRef = 3
606
+ GPSLongitude = 4
607
+ GPSAltitudeRef = 5
608
+ GPSAltitude = 6
609
+ GPSTimeStamp = 7
610
+ GPSSatellites = 8
611
+ GPSStatus = 9
612
+ GPSMeasureMode = 10
613
+ GPSDOP = 11
614
+ GPSSpeedRef = 12
615
+ GPSSpeed = 13
616
+ GPSTrackRef = 14
617
+ GPSTrack = 15
618
+ GPSImgDirectionRef = 16
619
+ GPSImgDirection = 17
620
+ GPSMapDatum = 18
621
+ GPSDestLatitudeRef = 19
622
+ GPSDestLatitude = 20
623
+ GPSDestLongitudeRef = 21
624
+ GPSDestLongitude = 22
625
+ GPSDestBearingRef = 23
626
+ GPSDestBearing = 24
627
+ GPSDestDistanceRef = 25
628
+ GPSDestDistance = 26
629
+ GPSProcessingMethod = 27
630
+ GPSAreaInformation = 28
631
+ GPSDateStamp = 29
632
+ GPSDifferential = 30
633
+ GPSHPositioningError = 31
634
+
635
+
636
+ class InteropIFD:
637
+ """Exif tag number reference - Interoperability IFD"""
638
+ InteroperabilityIndex = 1