# remplissage du dictionnaire esenciales x = 0 for i in chps_E: dico[i] = provis[x], code[x] x = x+1 # sélection des champs selon présence/absence et maj du champ print "Sélection et mise à jour des champs selon les thèmes" sel_attr(lyr,"CLEAR_SELECTION") j = 1 for chp in dico: j = j+1 expression = chp + "=1" expression2 = "'" + dico[chp][1] + "'" sel = sel_attr(lyr, "NEW_SELECTION", expression) nbr = count_obj(sel) feuy2.write(j, 0, chp) feuy2.write(j, 1, dico[chp][1]) feuy2.write(j, 2, str(nbr)) print "Nbr de mailles du champ " + expression + " : OK." calc_champ(sel, dico[chp][0] ,expression2, "PYTHON") concac = concac + "+" + "!" + dico[chp][0] + "!" sel_attr(lyr,"CLEAR_SELECTION") # concaténation dans le champ code print "Concaténation des champs provisoires codes" concac = concac[1:] tipo = dico[chp][1] + "_code" new_champ(mailles, tipo , 'TEXT', 6)
c = 0 x = 0 while x < 6: j = 1 if x == 0: expr = "Tot_E >" + str(x) else: expr = "Tot_E = " + str(x) sel1 = sel_attr(lyr, "NEW_SELECTION", expr) for chp in dico: j = j + 1 expression = chp + "=1" expression2 = "'" + dico[chp][1] + "'" expression3 = chp + "=1 And Tot_E = " + str(j) sel = sel_attr(lyr, "NEW_SELECTION", expression) nbr = count_obj(sel) sel2 = sel_attr(lyr, "NEW_SELECTION", expression3) nbr2 = count_obj(sel2) feuy2.write(j, 0, chp) feuy2.write(j, 1, dico[chp][1]) feuy2.write(j, x + 2, str(nbr2)) calc_champ(sel, dico[chp][0], expression2, "PYTHON") concac = concac + "+" + "!" + dico[chp][0] + "!" x = x + 1 '''j = 1 for chp in dico: j = j+1 expression = chp + "=1" expression2 = "'" + dico[chp][1] + "'"
desc = get_info(shape) # objet de description d'arcpy feuy1.write(lig, 0, desc.basename) # nom du shape (sans l'extension) lien = 'HYPERLINK("' + desc.path + '"; "Atteindre le dossier")' # chemin du dossier contenant formaté pour être un lien feuy1.write(lig, 1, Formula(lien), hyperlien) feuy1.write(lig, 2, desc.shapeType) # type de la géométrie feuy1.write(lig, 3, desc.hasSpatialIndex) # indique si le shape possède un index spatial emprise = "Xmin : " + unicode(desc.extent.XMin) + ", Xmax : " + unicode(desc.extent.XMax) + ", Ymin : " + unicode(desc.extent.YMin) + ", Ymax : " + unicode(desc.extent.YMax) # Extrait les bornes de l'emprise feuy1.write(lig, 4, emprise) feuy1.write(lig, 5, desc.spatialReference.name) # Nom de la projection feuy1.write(lig, 6, desc.spatialReference.factoryCode) # Code EPSG de la projection for chp in desc.fields: # parcourt les champs du shape champs = champs + chp.name + " (" + chp.type + ", Lg. = " + unicode(chp.length) + ", Pr. = " + unicode(chp.precision) + "), " # extrait quelques données sur chaque champ nbr_chps = nbr_chps +1 # compte le nombre de champs feuy1.write(lig, 7, nbr_chps) feuy1.write(lig, 11, champs) feuy1.write(lig, 8, int(str(count_obj(shape)))) # compte le nombre d'objets feuy1.write(lig, 9, desc.hasM) # indique si le shape possède un feuy1.write(lig, 10, desc.hasZ) # indique si le shape possède des données d'altitude except: # gestion des erreurs l_err.append(shape) # liste des shapes qui renvoient des erreurs feuy1.write(lig, 0, desc.basename) lien = 'HYPERLINK("' + desc.path + '"; "Atteindre le dossier")' # chemin du dossier contenant formaté pour être un lien feuy1.write(lig, 1, Formula(lien), hyperlien) feuy1.write(lig, 2, "ERREUR", entete) lig = lig +1 ## Sauvegarde du fichier excel saved = savefic(initialdir= cible, filetypes=[("Classeurs Excel","*.xls")]) if path.splitext(saved)[1] != ".xls": saved = saved + ".xls"