def serialize(file_name): """ This function serializes an EPC document """ epc_file = fesapi.EpcDocument(file_name + ".epc") repo = fesapi.DataObjectRepository() # CRS print(type(fesapi.eml20__LengthUom_m)) local_3d_crs = repo.createLocalDepth3dCrs( "798d47d8-0c7d-4f12-8c44-0f36b6d16c32", "Default CRS", 0.0, 0.0, 0.0, 0.0, fesapi.eml20__LengthUom_m, 5215, fesapi.eml20__LengthUom_m, "Unknown", False) repo.createLocalTime3dCrs("", "Default local time CRS", 1.0, 0.1, 15, .0, fesapi.eml20__LengthUom_m, 23031, fesapi.eml20__TimeUom_s, fesapi.eml20__LengthUom_m, "Unknown", False) repo.setDefaultCrs(local_3d_crs) # HdfProxy hdf_proxy = repo.createHdfProxy( "798d47d8-0c7d-4f12-8c44-0f36b6d16c33", "Hdf Proxy", ".", file_name + ".h5", fesapi.DataObjectRepository.openingMode_OVERWRITE) repo.setDefaultHdfProxy(hdf_proxy) serialize_grid(repo) epc_file.serializeFrom(repo) epc_file.close()
def deserialize(file_name): """ This function deserializes an EPC document """ epc_file = fesapi.EpcDocument(file_name + ".epc") print("Start deserialization of " + epc_file.getName()) repo = fesapi.DataObjectRepository() warnings = epc_file.deserializeInto(repo) if not warnings: print(warnings) repo.clearWarnings() epc_file.close() hdf_proxy_count = repo.getHdfProxyCount() print("There is/are " + str(hdf_proxy_count) + " hdf file(s) associated to this epc document.") for hdf_proxy_index in range(0, hdf_proxy_count): print("Hdf file relative path : " + repo.getHdfProxy(hdf_proxy_index).getRelativePath()) for warning in repo.getWarnings(): print("Warning : " + warning) enum_str_mapper = fesapi.EnumStringMapper() print("MAPPING ENUM VS STRING") print("rock permeability == " + enum_str_mapper.getEnergisticsPropertyKindName( enum_str_mapper.getEnergisticsPropertyKind("rock permeability"))) print("m (meter) == " + enum_str_mapper.getEnergisticsUnitOfMeasureName( enum_str_mapper.getEnergisticsUnitOfMeasure("m"))) print("CRS") for depth_crs_index in range(repo.getLocalDepth3dCrsCount()): depth_crs = repo.getLocalDepth3dCrs(depth_crs_index) print("Title is : " + depth_crs.getTitle()) if depth_crs.isProjectedCrsDefinedWithEpsg(): print("Projected : EPSG " + str(depth_crs.getProjectedCrsEpsgCode())) else: if depth_crs.isProjectedCrsUnknown(): print("Projected : Unknown. Reason is:" + depth_crs.getProjectedCrsUnknownReason()) for time_crs_index in range(repo.getLocalTime3dCrsCount()): time_crs = repo.getLocalTime3dCrs(time_crs_index) print("Title is : " + time_crs.getTitle()) if time_crs.isVerticalCrsDefinedWithEpsg(): print("Vertical : EPSG one") else: if time_crs.isVerticalCrsUnknown(): print("Vertical : Unknown. Reason is:" + time_crs.getVerticalCrsUnknownReason()) ijk_grid_count = repo.getIjkGridRepresentationCount() for ijk_grid_index in range(ijk_grid_count): show_ijk_grid(repo.getIjkGridRepresentation(ijk_grid_index))