I have a script which scans a directory and outputs basic raster data information such as the file name, format, number of bands, and etc. I need a way to make it so if the directory does not contain raster data (i.e., anything other than raster data), a message is displayed stating that the directory doesn't have the correct data type.
I know ArcPy has a Describe()
function that I could use to determine the type of data in a folder, but am not sure how to implement it. This is what I have so far:
rasterList = arcpy.ListRasters("*", "ALL")
filesType = arcpy.DataType('RasterDataset') # Can use `DatasetType` as well.
# I've tested this function to describe
# raster data and ArcPy prints out
# 'RasterDataset', that is why I have it
# there in the brackets.
for name in rasterList:
if rasterList == filesType:
print ("\nFilename:"), name
else:
print ("This directory does not contain any raster data.")
Any suggestions?
1 Answer 1
How about something simple like:
if len(rasterList) == 0:
print ("This directory does not contain any raster data.")
else:
# Your raster processing code
The len()
function calculates the length of the returned string/list, so if it returns 0
then you know nothing in the folder matched the criterion (in this case, being a raster). This way, if the folder contains any rasters (even if not every file is a raster) they will be processed.
-
Thanks nmpeterson! That was it. I knew I was missing something simple. Can't believe I didn't think of the
len()
function.kaoscify– kaoscify2011年11月19日 23:53:07 +00:00Commented Nov 19, 2011 at 23:53