Created
February 23, 2012 19:43
-
-
Save lukecampbell/1894654 to your computer and use it in GitHub Desktop.
Mangling science data
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
granule = { | |
"_id": "1B7D0B452E77DA9AF02C6DA2CD099CBE60AD1D4F", | |
"_rev": "1-bab10c0be95cd2f771b0413918d668b6", | |
"identifiables": { | |
"pressure_bounds": { | |
"definition": "", | |
"reference_frame": "", | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"updatable": True, | |
"type_": "QuantityRangeElement", | |
"value_pair": [ | |
0.12627243954352793, | |
40.402941145170885 | |
], | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"pressure_data": { | |
"definition": "", | |
"reference_frame": "", | |
"nil_values_ids": [ | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axis": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"label": "", | |
"type_": "CoordinateAxis", | |
"bounds_id": "pressure_bounds", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "/east/pressure" | |
}, | |
"record_count": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"value": 20, | |
"updatable": True, | |
"type_": "CountElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"longitude_bounds": { | |
"definition": "", | |
"reference_frame": "", | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"updatable": True, | |
"type_": "QuantityRangeElement", | |
"value_pair": [ | |
8.782779521540416, | |
341.48867353583273 | |
], | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"stream_encoding": { | |
"sha1": "928C0F21E0798A3DED431722F36ADD59D5CDABF4", | |
"compression": None, | |
"encoding_type": "hdf5", | |
"type_": "Encoding", | |
"record_dimension": "", | |
"label": "", | |
"id": "", | |
"description": "" | |
}, | |
"temp_bounds": { | |
"definition": "", | |
"reference_frame": "", | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"updatable": True, | |
"type_": "QuantityRangeElement", | |
"value_pair": [ | |
3.020883696759623, | |
17.08421557904047 | |
], | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"time_bounds": { | |
"definition": "", | |
"reference_frame": "", | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"updatable": True, | |
"type_": "QuantityRangeElement", | |
"value_pair": [ | |
1, | |
20 | |
], | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"longitude": { | |
"definition": "", | |
"reference_frame": "", | |
"nil_values_ids": [ | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axis": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"label": "", | |
"type_": "CoordinateAxis", | |
"bounds_id": "longitude_bounds", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "/east/longitude" | |
}, | |
"latitude": { | |
"definition": "", | |
"reference_frame": "", | |
"nil_values_ids": [ | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axis": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"label": "", | |
"type_": "CoordinateAxis", | |
"bounds_id": "latitude_bounds", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "/east/latitude" | |
}, | |
"time": { | |
"definition": "", | |
"reference_frame": "", | |
"nil_values_ids": [ | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axis": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"label": "", | |
"type_": "CoordinateAxis", | |
"bounds_id": "time_bounds", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "/east/time" | |
}, | |
"temp_data": { | |
"definition": "", | |
"reference_frame": "", | |
"nil_values_ids": [ | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"label": "", | |
"type_": "RangeSet", | |
"bounds_id": [ | |
"temp_bounds" | |
], | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "/east/temperature" | |
}, | |
"cndr_bounds": { | |
"definition": "", | |
"reference_frame": "", | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"updatable": True, | |
"type_": "QuantityRangeElement", | |
"value_pair": [ | |
10.000763005717497, | |
66.50700633030706 | |
], | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"cndr_data": { | |
"definition": "", | |
"reference_frame": "", | |
"nil_values_ids": [ | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"label": "", | |
"type_": "RangeSet", | |
"bounds_id": "cndr_bounds", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "/east/cndr" | |
}, | |
"ctd_data": { | |
"description": "", | |
"element_type_id": "", | |
"element_count_id": "", | |
"type_": "DataStream", | |
"label": "", | |
"encoding_id": "", | |
"values": "", | |
"id": "954645148399444d8ec5b702374cf611" | |
}, | |
"latitude_bounds": { | |
"definition": "", | |
"reference_frame": "", | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"updatable": True, | |
"type_": "QuantityRangeElement", | |
"value_pair": [ | |
-84.78246112453071, | |
85.60904083751265 | |
], | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
} | |
}, | |
"stream_resource_id": "954645148399444d8ec5b702374cf611", | |
"type_": "StreamGranuleContainer", | |
"data_stream_id": "ctd_data" | |
} | |
definition = { | |
"_id": "091feb6a873a486b99a2fecae604dd7c", | |
"_rev": "1-595b66fed068c82579fb55048c446fc3", | |
"identifiables": { | |
"pressure_data": { | |
"definition": "http://sweet.jpl.nasa.gov/2.0/physThermo.owl#Pressure", | |
"reference_frame": "Atmospheric pressure ?", | |
"nil_values_ids": [ | |
"nan_value" | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "dbar", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axis": "Pressure", | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "vertex", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
[ | |
0, | |
10000 | |
] | |
] | |
}, | |
"label": "", | |
"type_": "CoordinateAxis", | |
"bounds_id": "", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "/east/pressure_data" | |
}, | |
"record_count": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"value": 0, | |
"updatable": True, | |
"type_": "CountElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"nan_value": { | |
"reason": "No value recorded", | |
"type_": "NilValue", | |
"value": -999.99 | |
}, | |
"temperature": { | |
"definition": "http://sweet.jpl.nasa.gov/2.0/physThermo.owl#Temperature", | |
"description": "", | |
"domain_id": "time_domain", | |
"label": "", | |
"type_": "Coverage", | |
"range_id": "temp_data", | |
"updatable": False, | |
"optional": True, | |
"id": "" | |
}, | |
"stream_encoding": { | |
"sha1": None, | |
"compression": None, | |
"encoding_type": "hdf5", | |
"type_": "Encoding", | |
"record_dimension": "", | |
"label": "", | |
"id": "", | |
"description": "" | |
}, | |
"point_timeseries": { | |
"definition": "", | |
"description": "", | |
"number_of_verticies": 1, | |
"updatable": True, | |
"type_": "Mesh", | |
"mesh_type": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "Point Time Series", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"number_of_elements": 1, | |
"label": "", | |
"optional": False, | |
"id": "", | |
"index_offset": 0, | |
"values_path": "topology/mesh" | |
}, | |
"longitude": { | |
"definition": "http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Longitude", | |
"reference_frame": "", | |
"nil_values_ids": [ | |
"nan_value" | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "deg", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axis": "Longitude", | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "vertex", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
[ | |
0, | |
360 | |
] | |
] | |
}, | |
"label": "", | |
"type_": "CoordinateAxis", | |
"bounds_id": "", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "coordinates/longitude" | |
}, | |
"data_record": { | |
"definition": "Definition of a data record for a CTD", | |
"description": "", | |
"updatable": False, | |
"type_": "DataRecord", | |
"field_ids": [ | |
"temperature", | |
"conductivity", | |
"pressure" | |
], | |
"label": "", | |
"optional": False, | |
"id": "", | |
"domain_ids": [ | |
"time_domain" | |
] | |
}, | |
"coordinate_vector": { | |
"definition": "http://sweet.jpl.nasa.gov/2.0/space.owl#Location", | |
"reference_frame": "http://www.opengis.net/def/crs/EPSG/0/4326", | |
"description": "", | |
"coordinate_ids": [ | |
"longitude", | |
"latitude", | |
"pressure_data", | |
"time" | |
], | |
"updatable": True, | |
"type_": "Vector", | |
"local_frame": "", | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"pressure": { | |
"definition": "http://sweet.jpl.nasa.gov/2.0/physThermo.owl#Pressure", | |
"description": "", | |
"domain_id": "time_domain", | |
"label": "", | |
"type_": "Coverage", | |
"range_id": "pressure_data", | |
"updatable": False, | |
"optional": True, | |
"id": "" | |
}, | |
"element_type": { | |
"definition": "Ref to SeaBird data?", | |
"description": "", | |
"updatable": False, | |
"type_": "ElementType", | |
"data_record_id": "data_record", | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"time": { | |
"definition": "http://www.opengis.net/def/property/OGC/0/SamplingTime", | |
"reference_frame": "http://www.opengis.net/def/trs/OGC/0/GPS", | |
"nil_values_ids": [ | |
"nan_value" | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "s", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axis": "time", | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "vertex", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
] | |
}, | |
"label": "", | |
"type_": "CoordinateAxis", | |
"bounds_id": "", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "coordinates/time" | |
}, | |
"temp_data": { | |
"definition": "http://sweet.jpl.nasa.gov/2.0/physThermo.owl#Temperature", | |
"reference_frame": "", | |
"nil_values_ids": [ | |
"nan_value" | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "Cel", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "vertex", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
[ | |
-10, | |
50 | |
] | |
] | |
}, | |
"label": "", | |
"type_": "RangeSet", | |
"bounds_id": "", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "fields/temp_data" | |
}, | |
"time_domain": { | |
"definition": "Spec for ctd data time domain", | |
"coordinate_vector_id": "coordinate_vector", | |
"description": "", | |
"label": "", | |
"type_": "Domain", | |
"mesh_id": "point_timeseries", | |
"updatable": "False", | |
"optional": "False", | |
"id": "" | |
}, | |
"latitude": { | |
"definition": "http://sweet.jpl.nasa.gov/2.0/spaceCoordinates.owl#Latitude", | |
"reference_frame": "", | |
"nil_values_ids": [ | |
"nan_value" | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "deg", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"axis": "Latitude", | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "vertex", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
[ | |
-90, | |
90 | |
] | |
] | |
}, | |
"label": "", | |
"type_": "CoordinateAxis", | |
"bounds_id": "", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "coordinates/latitude" | |
}, | |
"cndr_data": { | |
"definition": "http://sweet.jpl.nasa.gov/2.0/physThermo.owl#Conductivity", | |
"reference_frame": "", | |
"nil_values_ids": [ | |
"nan_value" | |
], | |
"unit_of_measure": { | |
"type_": "UnitReferenceProperty", | |
"code": "mS/cm", | |
"reference": "" | |
}, | |
"description": "", | |
"quality_id": "", | |
"mesh_location": { | |
"definition": "", | |
"reference_frame": "", | |
"description": "", | |
"quality_id": "", | |
"axisID": "", | |
"constraint": { | |
"pattern": "", | |
"type_": "AllowedTokens", | |
"values": [ | |
] | |
}, | |
"code_space": "", | |
"value": "vertex", | |
"updatable": True, | |
"type_": "CategoryElement", | |
"nil_value_ids": [ | |
], | |
"label": "", | |
"optional": False, | |
"id": "" | |
}, | |
"constraint": { | |
"significant_figures": -1, | |
"type_": "AllowedValues", | |
"intervals": [ | |
], | |
"values": [ | |
[ | |
0, | |
85 | |
] | |
] | |
}, | |
"label": "", | |
"type_": "RangeSet", | |
"bounds_id": "", | |
"updatable": True, | |
"optional": False, | |
"id": "", | |
"values_path": "fields/cndr_data" | |
}, | |
"ctd_data": { | |
"description": "Conductivity temperature and depth observations from a Seabird CTD", | |
"element_type_id": "element_type", | |
"element_count_id": "record_count", | |
"type_": "DataStream", | |
"label": "Seabird CTD Data", | |
"encoding_id": "stream_encoding", | |
"values": None, | |
"id": None | |
}, | |
"conductivity": { | |
"definition": "http://sweet.jpl.nasa.gov/2.0/physThermo.owl#Conductivity", | |
"description": "", | |
"domain_id": "time_domain", | |
"label": "", | |
"type_": "Coverage", | |
"range_id": "cndr_data", | |
"updatable": False, | |
"optional": True, | |
"id": "" | |
} | |
}, | |
"stream_resource_id": "55cf756bb3cc4245bf90f727cc27e984", | |
"type_": "StreamDefinitionContainer", | |
"data_stream_id": "ctd_data" | |
} | |
def get_hdf_data(path): | |
hdf = { | |
'/east/conductivity':[1,2,3,4,5], | |
'/west/conductivity':[1,2,3,4,5], | |
'/east/temperature':[48,48,48,48,48], | |
'/west/temperature':[46,46,46,46,46], | |
'/east/pressure':[0,20,40,60], | |
'/west/pressure':[0,20,40,60] | |
} | |
return hdf[path] | |
def records(n, sub): | |
while True: | |
yval = [] | |
try: | |
for i in xrange(sub): | |
yval = yval + [n.pop(0)] | |
yield yval | |
except IndexError: | |
if yval: | |
yield yval | |
break | |
class tree(dict): | |
def __init__(self, **kwargs): | |
for k,v in kwargs.iteritems(): | |
if isinstance(v, dict): | |
self[k] = tree(**v) | |
else: | |
self[k] = v | |
def __getattr__(self, key): | |
if not hasattr(self, key): | |
return None | |
return self[key] | |
def __setattr__(self, key,val): | |
self[key] = val | |
def __dir__(self): | |
v = dir(super(tree,self)) | |
return v + self.keys() | |
def key(definition, key): | |
return definition['identifiables'][key] | |
root_node = None | |
''' | |
For every | |
''' | |
def traverse(definition, node_id): | |
tmp = key(definition,node_id) | |
root = tree(**tmp) | |
for k,v in tmp.iteritems(): | |
if k.endswith('_id'): | |
if v: | |
root[v] = traverse(definition,v) | |
elif k.endswith('_ids'): | |
for value in v: | |
if value: | |
root[value] = traverse(definition,value) | |
return root | |
def to_tree(definition): | |
identifiables = tree(**definition['identifiables']) | |
data_stream_id = definition['data_stream_id'] | |
data_stream = tree(**identifiables[definition['data_stream_id']]) | |
data_stream.encoding = tree(**identifiables[data_stream.encoding_id]) | |
data_stream.element_type = tree(**identifiables[data_stream.element_type_id]) | |
data_stream.element_count = tree(**identifiables[data_stream.element_count_id]) | |
data_stream.element_type.data_record = tree(**identifiables[data_stream.element_type.data_record_id]) | |
data_record = data_stream.element_type.data_record | |
data_record.fields = tree() | |
for field_id in data_record.field_ids: | |
data_record.fields[field_id] = tree(**identifiables[field_id]) | |
for k,field in data_record.fields.iteritems(): | |
data_record.fields[k].domain = tree(**identifiables[field.domain_id]) | |
data_record.fields[k].range = tree(**identifiables[field.range_id]) | |
return data_stream | |
if __name__ == '__main__': | |
from pprint import pprint | |
root = traverse(definition,definition['data_stream_id']) | |
pprint(root) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
because granule is a dictionary not a dotdict
in this script