How to check value fields in different shapes files

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • flormarinkovic
    New Member
    • May 2010
    • 2

    #1

    How to check value fields in different shapes files

    Good morning all,

    I am new in Python and i need your help.

    I have already wrote a program that works for one of the shapes that i need to check, but now i need to do the same for the rest of the shapes that i have in different folders.

    How could i do it?

    I really appreciate your help!

    Flor
    Code:
    #Import standard library modules
    import arcgisscripting, sys, os, string
    
    #Create the Geoprocessor object
    gp= arcgisscripting.create(9.3)
    
    #Set the input workspace
    #gp.workspace=sys.argv[1]
    
    gp.workspace = 'F:\\fiorenza\MPRGC25M\\77_21_Figueres'
    
    
    #Set the output workspace
    outWorkspace = 'F:\\fiorenza\MPRGC25M\\77_21_Figueres'
    numfull = '77_21'
    
    #try:
    
    #Get a list of the featureclasses in the input folder
    #fcs = gp.listfeatureclasses()
    fcExisteix = []
    poligon= ['suproc_7721.shp', 'bloc_diposits_7721.shp', 'areabloclliscament_7721.shp', 'esllavissades_7721.shp', 'altres_dip_7721.shp', 'cons_7721.shp', 'dibuixcons_7721.shp', 'limit_esf_7721.shp', 'indicis_7721.shp']
    
    punts=['escpunt_772125M.shp', 'blc_ind_mes10_7721.shp', 'blc_ind_menys10_7721.shp', 'b_caiguts_ant_menys10_7721.shp', 'b_caiguts_ant_mes10_7721.shp', 'b_caiguts_rec_menys10_7721.shp', 'b_caiguts_rec_mes10_7721.shp', 'inven_dpr_7721.shp', 'bloclliscament_7721.shp', 'inventari_petits_7721.shp', 'ind_esf_7721.shp', 'antrExt_7721.shp','limit_esf_7721.shp', 'indicis_7721.shp']
    
    arc= ['escarpaments_7721.shp', 'direccio_esllavissades_7721.shp','ind_esf_7721.shp', 'altresindicis_7721.shp', 'antrESc_7721.shp', 'eros_soscic_7721.shp']
    
    ## Get a list of the fields in the feature classes
    
    escarpaments=['EscRoc11', 'EscRoc12', 'EscRoc13', 'EscRoc21', 'EscRoc22', 'EscRoc23', 'EscRoc31', 'EscRoc32', 'EscRoc33', 'EscSol11', 'EscSol12','EscSol13', 'EscSol21', 'EscSol22', 'EscSol23', 'EscSol31', 'EscSol32', 'EscSol33', 'LRtAnEsc', 'LRtRcEsc', 'LTrAnEsc', 'LTrRcEsc', 'MxtAnEsc', 'MxtRcEsc', 'FluxAnEsc', 'FluxRcEsc', 'ExpAnEsc', 'ExpRcEsc', 'CorrAnEsc', 'CorrRcEsc']
    
    direccio_esllavissades=['LRtAnDirec', 'LRtRcDirec', 'LTrAnDirec', 'LTrRcDirec', 'MxtAnDirec','MxtRcDirec ', 'FluxAnDirec', 'FluxRcDirec', 'ExpAnDirec', 'ExpRcDirec', 'CorrAnDirec', 'CorrRcDirec']
    
    ind_esf = ['EsfSubAnPt']
    
    altresindicis = ['ErosSoscavAn', 'ErosSoscavRc', 'ErosEsc', 'ErosSOlc']
    
    antrESc = ['AntrExtAbanEsc', 'AntrESc']
    
    eros_soscic =['ErosSosCic']
    
    suproc =['SupRoc1 ', 'SR1','SupRoc2 ', 'SR2', 'SupRoc3', 'SR3']
    
    bloc_diposits=['BlcDispGran','BlcDispMitj','BlcDisppetit','BlcDipRc1','DB1r','BlcDipRc2','DB2r','BlcDipRc3', 'DB3r','BlcDipAn1','DB1a','BlcDipAn2','DB2a','BlcDipAn3','DB3a']
    
    areabloclliscament=['AreaBlocllis']
    
    esllavissades=['LRtAnLimit','LRtRcLimit','LTrAnLimit','LTrRcLimit','MxtAnLimit','Mxa','MxtRcLimit','Mxr','FluxAnLimit','FluxRcLimit','ExpAnLimit','ExpRcLimit','CorrAnLimit','CorrRcLimit']
    
    altres_dip= ['ConDipIn','ConAltresAn','ConAltresRc']
    
    cons=['ConDejAn']
    
    limit_esf=['Doi','Doip','Kp','Ks']
    
    indicis=['ConDipln','ErosInt','Ein','ErosMOd','Emd']
    
    escpunt_codifull25M=['EscRocPetit','ERP']
    
    blc_ind_mes10= ['BlcInd1Roc1MG','BlcIndRoc2G','BlcInd1Sol1MG','BlcIndSol2G']
    
    blc_ind_menys10=['BlcIndRoc3M', 'BlcIndSol3M']
    
    b_caiguts_ant_menys10=['BlcAn3Mitja','BlcAn4Petit']
    
    b_caiguts_ant_mes10=['BlcAn1MGran','BlcAn2Gran']
    
    b_caiguts_rec_menys10=['BlcRC3Miitja','BlcRC4Petit']
    
    b_caiguts_rec_mes10=['BlcRC1MGran','BlcRC2Gran']
    
    inven_dpr=['DprAnPetit','DprRcPetit','DpsAnPetit','DpsRcPetit']
    
    bloclliscament=['Blocllis']
    
    inventari_petits=['LRtAnMitj','LRtRcMitj','LRtAnPet','LRtRcPet','LTrAnMitj','LTrRcMitj','LTrAnPet','LTrRcPet','MxtAnMitj','MxtRctMitj','MxtAnPet','MxtRctPet','FluxAnMitj','FluxRcMitj','FluxAnPet','FluxRcPet','ExpAnMitj','ExpRcMitj','CorrAnMitj','CorrRcMitj','CorrAnPet','CorrRcPet']
    
    ind_esf=['EsfCavAn','EsfCavRc']
    
    antrExt=['AntrExtAban']
    
    limit_esf=['Dsa','Dsp']
    
    indicis=['BlcIndDisc','BlcIndBalm','BlcIndSost','BlcIndDesp','IndDef','IndEsqTerr','IndArbres','IndSurgen','IndSurgenTerm','IndAiguam','IndEsqEdif']
    
    fclistpoly = gp.listfeatureclasses("*", "polygon")
    fclistpunts = gp.listfeatureclasses("*", "point")
    fclistarc = gp.listfeatureclasses("*", "arc")
    fcNoExisteix =[]
    fcExisteix =[]
    outFeatureClass = []
    
    nomarxiu = 'F:\\fiorenza\MPRGC25M\\workfile_' + numfull + '.txt'
    print nomarxiu
    f = open(nomarxiu,'w')
    
    f.write('arcs_comprobats:\n\n')
    for fc in arc:
        fc1 = 0
        arE=0
        for fc1 in fclistarc :
            outFeatureClass = outWorkspace + "\\" + fc
            #fc1.lower
            if str(fc) == str(fc1):
                arE = 1
                fcExisteix.append (fc1)
        if arE == 1:
            f.write(outFeatureClass + '......... existeix\n')
        else:
            fcNoExisteix.append(fc1)
            f.write(outFeatureClass + '......... no existeix\n')
        
    f.write('\npunts_comprobats:\n\n')
    for fc in punts:
        puE=0
        for fc1 in fclistpunts :
            outFeatureClass = outWorkspace + "\\" + fc
            #fc1.lower
            if str(fc) == str(fc1):
                puE = 1
                fcExisteix.append (fc1)
        if puE == 1:
            f.write(outFeatureClass + '......... existeix\n')
        else:
            fcNoExisteix.append(fc1)
            f.write(outFeatureClass + '......... no existeix\n')
    
    f.write('\npoligons_comprobats:\n\n')
    for fc in poligon:
        poE=0
        for fc1 in fclistpoly :
            outFeatureClass = outWorkspace + "\\" + fc
            #fc1.lower
            if str(fc) == str(fc1):
                poE = 1
                fcExisteix.append (fc1)
        if poE == 1:
            f.write(outFeatureClass + '......... existeix\n')
        else:
            fcNoExisteix.append(fc1)
            f.write(outFeatureClass + '......... no existeix\n')
    
    #Ara comencem a comprobar el camp codi_BD
    fcCampNE=[]
    f.write('\nComprobant el shape escarpaments.shp :\n\n')                
    for fc in fcExisteix:
        registres = []
        llista =[]
        fields = gp.ListFields(fc)
        #fields = gp.ListFields('escarpaments_7721.shp')
       
        for field in fields:
                    
                    if str(field.Name) == 'Codi_BD':        
                        cur = gp.SearchCursor (fc)
                        row = cur.Next()
                        nn = 0
                        while row <> None:
                            llista.append(row.Codi_BD)
                            row = cur.Next()
                        
                        for item in llista:
                            #Aqui crearem una nova llista eliminant duplicats
    
                            if item <>' ':                    
                                if item not in registres:
                                    registres.append(item)
                        for valor_camp in registres:
                            treure = '_' + numfull + '.shp'
                            llistaValor = fc.lstrip(treure)
                            print llistaValor
                            for valorFila in llistaValor:
                                correcte = 0
                                if str(valor_camp) == str(valorFila):
                                    correcte = 1
                            if correcte == 0:                        
                               # f.write(outFeatureClass+'-'+valor_camp + '......... existeix\n')
                            #else:
                                fcCampNE.append(valor_camp)
                                nn = nn + 1
                           
    
    for camp in fcCampNE:
        print camp
        f.write('\n'+ camp)
    
    #f.write("\nHi ha " + str(nn) + " registres erronis.\n")
    f.write('\nComprobats tots els fitxers')
    f.close()
    Last edited by Frinavale; May 13 '10, 02:22 PM. Reason: Please post code in [code] ... [/code] tags. Added code tags.
  • Glenton
    Recognized Expert Contributor
    • Nov 2008
    • 391

    #2
    It's hard to read your code (please use code tags), and I don't really understand your question. But are you trying to ask how you can apply your script to different folders?

    The os module docs are a good place to start. Look for the os.walk and path commands.

    Good luck, and let us know how it goes.

    Comment

    Working...