In ArcMap 10.2.1 I have three feature classes in geodatabase "MyGDB.gdb". Let's call the feature classes "A", "B", and "C" respectively. I am merging the feature classes using Geoprocess > merge. Here are the exact steps:
- Select feature classes "A", "B", and "C" as the input datasets
- Save the output dataset as "Merged" in "MyGDB.gdb"
After creating the merged dataset, I am running the following code in a python script to count the number of data points in each feature class and also in the merged data set:
lyrfile1 = 'C:\\ArcGIS\\Python\\MyGDB.gdb\\Merged' lyrfile2 = 'C:\\ArcGIS\\Python\\MyGDB.gdb\\A' lyrfile3 = 'C:\\ArcGIS\\Python\\MyGDB.gdb\\B' lyrfile4 = 'C:\\ArcGIS\\Python\\MyGDB.gdb\\C' result1 = int(arcpy.GetCount_management(lyrfile1).getOutput(0)) result2 = int(arcpy.GetCount_management(lyrfile2).getOutput(0)) result3 = int(arcpy.GetCount_management(lyrfile3).getOutput(0)) result4 = int(arcpy.GetCount_management(lyrfile4).getOutput(0)) print result1 print result2 print result3 print result4
The results are as follows: 151983 19394 75578 57011
This is good and expected. Since the three feature classes are merged, I would expect to see that the merged data set has the same number of data points as each individual feature class combined,, and it does (57011+75578+19394=151983).
Here is where the problem starts: when I try to merge the datasets using arcpy.Merge_management() and then use arcpy.GetCount to count the datapoints, only a fraction of the datapoints are returned (57011). Here is the code:
fClasses =  #initialize array to hold feature classes #Set counter for loop i=0 #Loop through MyGDB.gdb and add each feature class name to array try: # Get a list of the featureclasses in the gdb fcs = arcpy.ListFeatureClasses() #Iterate for fc in fcs: print fc fClasses.append(fc) i = i+1 except Exception as err: arcpy.AddError(err) print err #Now that we have a list of all feature classes, attempt to merge them into one class try: arcpy.Merge_management([fClasses], "Merged") print "merge: SUCCESS." #Count number of points in newly created merged dataset result1 = int(arcpy.GetCount_management("Merged").getOutput(0)) print result1 except Exception as err: arcpy.AddError(err) print "merge: FAIL." print err
This returns only 57011 points, versus the 151983 points in the merge file creating using Geoprocessing > Merge. What am I missing here?