Let's assume I have a geodatabase "database.gdb", and inside this database there is a feature class called "feature".
How can I load this feature in memory using arcpy? I have searched into the arcpy docs and couldn't find anything useful.
I tried to use Copy_management and CreateFeatureclass_management but its look like these methods expects files instead of variables.
Solved! Go to Solution.
Untested
inputFc = r"C:/database.gdb/inputFeatureClass"
outputFc = r"in_memory/inMemoryFeatureClass"
arcpy.CopyFeatures_management(inputFc, outputFc)
Untested
inputFc = r"C:/database.gdb/inputFeatureClass"
outputFc = r"in_memory/inMemoryFeatureClass"
arcpy.CopyFeatures_management(inputFc, outputFc)
I worked! Thanks a lot! I've lost a day trying to solve this.
Just be aware that in_memory doesn't always mean in memory. I know, why label something "in_memory" if it doesn't mean it will always be in memory? If you are running a script outside of ArcGIS Desktop (ArcMap or Pro), then it is actually in memory. If you run a script from the interactive Python window or a script tool within ArcGIS Desktop, sometimes the output is actually a temporary data set on disk.
For example, with some tools like Create Table and Create Feature Class, in_memory will output to disk if "Background Processing" is enabled:
>>> tbl = arcpy.CreateTable_management("in_memory","test_table")
>>> tbl
<Result 'C:\\Users\\jack\\AppData\\Local\\Temp\\1\\arc3BB1\\j078ec6ad6c664d989a5b08b638ae9acd.gdb\\test_table'>
>>>
Although a bit dated, most of the information from blogs posts I wrote a few years ago still applies to ArcMap today: