예제 #1
0
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()
예제 #2
0
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))