4

Is there a way to check if a feature class full path string is a path to a feature class within a file geodatabase feature dataset in arcpy?

For example:

C:\test\test.gdb\testdataset\featureclass

I'd like to return testdataset.

I can't find it in any of the applicable Describe objects. I can do it with string manipulation...

fullpath = r"C:\test\test.gdb\testdataset\featureclass"
pathlen = len(fullpath.split (".gdb")[0]) + 4
namelen = len(fullpath.split ("\\")[-1])
dataset = fullpath[pathlen:-namelen].replace ("\\", "")

This seems like too much code though.

Is there a better way?

PolyGeo
65.5k29 gold badges115 silver badges349 bronze badges
asked Mar 13, 2015 at 22:17
0

2 Answers 2

6

Use Describe on the feature class parent directory.

if arcpy.Describe(os.path.dirname(path_to_featureclass)).dataType == 'FeatureDataset': 
 do something...
else:
 do something else...

If you don't have the path already, you can get it with the catalogPath property:

arcpy.Describe(featureclass).catalogPath
answered Mar 14, 2015 at 2:16
5

Maybe this:

>>> #testfc is a fc within a fd, as shown with this catalogPath statement:
>>> desc = arcpy.Describe('testfc')
>>> desc.catalogPath
 u'C:\\Users\\whitley-wayne\\Desktop\\data.gdb\\dataset1\\testfc'
>>>
>>> #this shows how to essentially use the Describe method twice to get the fd name:
>>> desc = arcpy.Describe(fc)
>>> if hasattr(desc, 'path'):
... descPth = arcpy.Describe(desc.path)
... if hasattr(descPth, 'dataType'):
... if descPth.dataType == 'FeatureDataset': 
... print 'the feature dataset name: {0}'.format(descPth.name)
... 
 the feature dataset name: dataset1
>>> 
answered Mar 14, 2015 at 2:50

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.