ArcGIS使用python進行三規合一用地調整

1.流程圖

協調流程圖

2.在多個相關要素union疊加後的圖層字段進行python分類計算。
if-elif-else一條道走到黑的python代碼(未優化,感覺可重用代碼比較多,等OOP拯救)

SGHY( !TGCGCY! , !FKYD! , !GTYP! , !GTPC! , !TG_SKXJR! , !GXXM! , !GXXMQD! , !ZDXM! , !CG_SKXJR! , !CGYDDM!, !SKX!, !JBNT! )

def SGHY(TGCGCY,TGFK,GTYP,GTPC,TG_SKXJR,GXXM,GXXMQD,ZDXM,CG_SKXJR,CGYDDM,SKX,JBNT):
    if TGCGCY == "01":
        if TGFK == 1:
        return "三規有條件建設區"
    else:
        if GTYP == 1:
        if SKX == 1 and TG_SKXJR ==1:
            return "三規建設用地區"
        elif SKX == 1 and TG_SKXJR == 0:
            return "三規有條件建設區"
        else:
            return "三規有條件建設區"
        else:
        if GTPC == 1:
            if SKX == 1 and TG_SKXJR == 1:
                return "三規建設用地區"
            elif SKX == 1 and TG_SKXJR == 0:
                return "三規有條件建設區"
            else:
                return "三規建設用地區"
        else:
            return "三規有條件建設區"
    elif TGCGCY == "02":
        if GXXM == 1:
        if GXXMQD == 1:
        return "三規非建設用地區"
        else:
        if JBNT == 1:
            return "三規有條件建設區"
        else:
            if SKX == 1 and CG_SKXJR == 1:
            return "三規建設用地區"
            elif SKX == 1 and CG_SKXJR == 0:
            return "三規有條件建設區"
            else:
            return "三規建設用地區"
        else:
        if ZDXM == 1:
        if JBNT == 1:
            return "三規有條件建設區"
        else:
            if SKX == 1 and CG_SKXJR == 1:
            return "三規建設用地區"
            elif SKX == 1 and CG_SKXJR == 0:
                return "三規有條件建設區"
            else:
            return "三規建設用地區"
        else:
        if GTPC == 1:
            if JBNT == 1:
            return "三規有條件建設區"
            else:
            if SKX == 1 and CG_SKXJR == 1:
                return "三規建設用地區"
            elif SKX == 1 and CG_SKXJR == 0:
                return "三規有條件建設區"
            else:
                return "三規建設用地區"
        else:
            if CGYDDM in ['G1','G2']:
            return "三規非建設用地區"
            else:
            if JBNT == 1:
                return "三規有條件建設區"
                else:
                if SKX == 1 and CG_SKXJR == 1:
                return "三規建設用地區"
                elif SKX == 1 and CG_SKXJR == 0:
                return "三規有條件建設區"
                else:
                return "三規建設用地區"
    elif TGCGCY == "03":
    if SKX == 1:
        if CG_SKXJR == 1 or TG_SKXJR == 1:
            return "三規建設用地區"
        else:
            return "三規有條件建設區"
    else:
        return "三規建設用地區"
    else:
        if GTPC == 1:
            if JBNT == 1:
        return "三規有條件建設區"
        else:
         if SKX == 1 and CG_SKXJR == 1:
             return "三規建設用地區"
         elif SKX == 1 and CG_SKXJR == 0:
             return "三規有條件建設區"
         else:
             return "三規建設用地區"
        else:
            return "三規非建設用地區"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章