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?

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
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
>>> 

Your Answer

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.