def joinMetaDatas(log,InputFile,UntiltedMetadata,TiltedMetadata):    
    mDInput=MetaData(InputFile)
    mDstack = MetaData(UntiltedMetadata)
    mDstack.removeLabel(MDL_MICROGRAPH)
    mDstack.removeLabel(MDL_XCOOR)
    mDstack.removeLabel(MDL_YCOOR)
    mdPart1=MetaData()
    mdPart1.join2(mDstack,mDInput,MDL_IMAGE_ORIGINAL,MDL_IMAGE,INNER_JOIN)
    mdPart1.removeLabel(MDL_IMAGE_ORIGINAL)

    mDstack = MetaData(TiltedMetadata)
    mDstack.removeLabel(MDL_MICROGRAPH)
    mDstack.removeLabel(MDL_XCOOR)
    mDstack.removeLabel(MDL_YCOOR)
    mDstack.renameColumn(MDL_IMAGE,MDL_IMAGE_TILTED)
    mdJoined=MetaData()
    mdJoined.join2(mDstack,mdPart1,MDL_IMAGE_ORIGINAL,MDL_IMAGE_TILTED,INNER_JOIN)
    mdJoined.removeLabel(MDL_IMAGE_ORIGINAL)
    mdJoined.write(InputFile)
def copyImages(log,InputFile,OutputStack):
    fnOutputMetadata=OutputStack.replace(".stk",".xmd")
    runJob(log,"xmipp_image_convert","-i %(InputFile)s -o %(OutputStack)s --track_origin --save_metadata_stack %(fnOutputMetadata)s --keep_input_columns" % locals())
    mDstack = MetaData(fnOutputMetadata)
    mDstack.removeLabel(MDL_ZSCORE)
    mDstack.write(fnOutputMetadata)