cAppli_MPI2Mnt::cAppli_MPI2Mnt(int argc,char ** argv) :
    mDS       (1.0),
    mDeZoom   (2),
    mDirMTD   ("PIMs-TmpMnt/"),
    mDirBasc   ("PIMs-TmpBasc/"),
    mNameMerge ("PIMs-Merged.xml"),
    mNameOriMerge ("PIMs-ZNUM-Merged.xml"),
    mNameOriMasq ("PIMs-Merged_Masq.xml"),
    mRepIsAnam   (false),
    mDoMnt       (true),
    mDoOrtho     (false),
    mMasqImGlob (""),
    mDebug       (false)
{
    ElInitArgMain
    (
        argc,argv,
        LArgMain()  << EAMC(mName,"Dir or PMI-Type (QuickMac ....)",eSAM_None,ListOfVal(eNbTypeMMByP)),  //pas gerable par les vCommandes...
        LArgMain()
        << EAM(mDS,"DS",true,"Downscale, Def=1.0")
        << EAM(mRep,"Repere",true,"Repair (Euclid or Cyl)",eSAM_IsExistFileRP)
        << EAM(mPat,"Pat",true,"Pattern, def = all existing clouds", eSAM_IsPatFile)
        << EAM(mDoMnt,"DoMnt",true," Compute DTM , def=true (use false to return only ortho)")
        << EAM(mDoOrtho,"DoOrtho",true,"Generate ortho photo,  def=false")
        << EAM(mMasqImGlob,"MasqImGlob",true,"Global Masq for ortho: if used, give full name of masq (e.g. MasqGlob.tif) ",eSAM_IsExistFileRP)
        << EAM(mDebug,"Debug",true,"Debug !!!",eSAM_InternalUse)
    );

    if (mDoOrtho && (!EAMIsInit(&mDoMnt))) mDoMnt = mDoOrtho;

    if (MMVisualMode) return;

    mCFPI = new cChantierFromMPI(mName,mDS,mPat);
    mDirApp = mCFPI->mFullDirChantier;
    mICNM = cInterfChantierNameManipulateur::BasicAlloc(mDirApp);
    mSetIm = mICNM->Get(mCFPI->mStrPat);

    if (EAMIsInit(&mRep))
    {
        bool IsOrthoXCSte=false;
        bool IsAnamXCsteOfCart=false;
        mRepIsAnam = RepereIsAnam(mDirApp+mRep,IsOrthoXCSte,IsAnamXCsteOfCart);
    }

    ELISE_fp::MkDirSvp(mDirApp+mDirBasc);


    if (EAMIsInit(&mRep))
        mStrRep = " Repere=" + mRep;
    // cMMByImNM *    mMMI;


    mTargetGeom = mDirApp+mDirMTD+ TheStringLastNuageMM ;

}
Beispiel #2
0
cAppliTarama::cAppliTarama(int argc,char ** argv) :
    cAppliWithSetImage(argc-1,argv+1,0)
{
    NoInit = "XXXXXXXXXX";

    // MemoArg(argc,argv);
    MMD_InitArgcArgv(argc,argv);
    std::string  aDir,aPat,aFullDir;
    std::string Aero;
    int  Zoom = 8;
    std::string  NOREP = "NO-REPERE";
    std::string Repere = NOREP;
    std::string DirOut = "TA";
    double   aZMoy = 0;
    int    aKNadir = -1;
    double aIncidMax = 1e5;
    bool   UnUseAXC = false;


    ElInitArgMain
    (
    argc,argv,
    LArgMain()  << EAMC(aFullDir,"Full Image (Dir+Pat)", eSAM_IsPatFile)
                    << EAMC(Aero,"Orientation", eSAM_IsExistDirOri),
    LArgMain()
                    << EAM(Zoom,"Zoom",true,"Resolution, (Def=8, must be pow of 2)",eSAM_IsPowerOf2)
                    << EAM(Repere,"Repere",true,"Local coordinate system as created with RepLocBascule",eSAM_IsExistFile)
                    << EAM(DirOut,"Out",true,"Directory for output (Deg=TA)")
                    << EAM(aZMoy,"ZMoy",true,"Average value of Z")
                    << EAM(aKNadir,"KNadir",true,"KBest image or Nadir (when exist)")
                    << EAM(aIncidMax,"IncMax",true,"Maximum incidence of image", eSAM_NoInit)
                    << EAM(UnUseAXC,"UnUseAXC",true,"Internal use for unanamorphosed ortho",eSAM_InternalUse)
    );

    if (!MMVisualMode)
    {
#if (ELISE_windows)
        replace( aFullDir.begin(), aFullDir.end(), '\\', '/' );
#endif
        SplitDirAndFile(aDir,aPat,aFullDir);

        StdCorrecNameOrient(Aero,aDir);


        MMD_InitArgcArgv(argc,argv);

        std::string aCom =  MM3dBinFile( "MICMAC" )
                + MMDir() + std::string("include/XML_MicMac/MM-TA.xml ")
                + std::string(" WorkDir=") +aDir +  std::string(" ")
                + std::string(" +PatternAllIm=") + QUOTE(aPat) + std::string(" ")
                + std::string(" +Zoom=") + ToString(Zoom)
                + std::string(" +Aero=") + Aero
                + std::string(" +DirMEC=") + DirOut
                ;

        if (EAMIsInit(&aIncidMax))
        {
            aCom = aCom + " +DoIncid=true +IncidMax=" + ToString(aIncidMax) + " " + " +ZMoy=" + ToString(AltiMoy()) + " " ;
;
        }

        if (EAMIsInit(&aKNadir))
            aCom = aCom + " +KBestMasqNadir=" + ToString(aKNadir);

        if (EAMIsInit(&aZMoy))
        {
            aCom = aCom + " +FileZMoy=File-ZMoy.xml"
                    + " +ZMoy=" + ToString(aZMoy);
        }
        if (EAMIsInit(&UnUseAXC)) aCom = aCom + " +UnUseAXC=" + ToString(UnUseAXC);

        if (Repere!=NOREP)
        {
            bool IsOrthoXCste;
            bool IsAnamXsteOfCart;
            if (RepereIsAnam(aDir+Repere,IsOrthoXCste,IsAnamXsteOfCart))
            {
                aCom =    aCom
                        +  std::string(" +DoAnam=true ")
                        +  std::string(" +DoIncid=true ")
                        +  std::string(" +ParamAnam=") + Repere;
            }
            else
            {
                aCom =     aCom    + std::string(" +Repere=") + Repere ;
            }
        }

#if (ELISE_windows)
		aCom = "\"" + aCom + "\"";
#endif		
        std::cout << "Com = " << aCom << "\n";
        mResult = system_call(aCom.c_str());

    }
    else
    {
       mResult = EXIT_SUCCESS;
    }
}