Suite

Utilisation d'Arcpy pour rechercher dans la géodatabase l'entité avec le plus petit nombre de lignes et exporter au format .SHP


J'ai créé un tas de grilles pour une zone limite de la ville. J'aimerais savoir comment utiliser le module Arcpy pour parcourir une géodatabase et trouver la grille avec le plus petit nombre de lignes (en supposant que ces grilles soient toutes de la même taille et que la plus petite soit la grille la plus efficace), puis n'exporter que cela figurer en tant que .SHP.


cela peut aider :

import arcpy arcpy.env.workspace=r"C:	empdata.gdb" fcs = arcpy.ListFeatureClasses() rc_old = int(999999999999999) export_fc = "" pour fc dans fcs: rc = int(arcpy.GetCount_management(fc )[0]) print fc print rc if rc < rc_old: export_fc = fc rc_old = rc arcpy.FeatureClassToShapefile_conversion(export_fc,r"C:	emp")

Essayez ci-dessous. Pourrait faire quelque chose avecarcpy.ListFeatureClassesaussi, mais en utilisantarcpy.da.Walkvous permettra d'accéder à tous les jeux de classes d'entités que vous pourriez avoir dans votre géodatabase.

import arcpy import os from collections import OrderedDict def find_smallest(gdb): d = {} walk = arcpy.da.Walk(gdb, datatype="FeatureClass") pour p, dirnames, fcs in walk: for fc in fcs: fcpath = os.path.join(p, fc) d[fcpath] = int(arcpy.GetCount_management(fcpath)[0]) return OrderedDict(sorted(d.items(), key=lambda t: t[1])). keys()[0] if __name__ == '__main__': gdb = 'your_gdb' out_shapefile = 'your_output' arcpy.CopyFeatures_management( find_smallest(gdb), out_shapefile)


Voir la vidéo: #ArcGIS#How to Merge Multiple Shape.shp File#Gepprocessing (Octobre 2021).