2014-11-06 5 views
0

Это может показаться тривиальным, но я могу отследить ошибку, и я очень новичок в Python, хотя и не в программировании. Из немногочисленного чтения в Интернете я считаю, что моя проблема в том, что .dat файл изображения ENVI не читается как «описать объект». Но как я могу его читать как таковой? Возможно, мне тоже нужно прочитать информацию заголовка, какие-нибудь решения?Python Arcpy.describe проблема с чтением ENVI.dat

Вот мой код:

import arcpy #make sure you run the python associated with ArcGIS 
import os 

filepath = 'filepath' 
filename = 'filename' 
band_names = range(1,225) 

# Path creation 
in_folder = filepath + os.sep + 'ENVI' 
out_folder = filepath + os.sep + 'GeoTIFF' # preferably an empty folder 

# input multiband raster 
in_ENVI = in_folder + filename '.dat' 
in_raster = raster(in_ENVI) 
index = 0 

# get raster information specific to each band 
desc = arcpy.Describe(in_raster) 

################### THIS IS WHERE I GET THE ERROR ################## 
Runtime error 
Traceback (most recent call last): 
    File "<string>", line 23, in <module> 
NameError: name 'raster' is not defined 
################### SCRIPT TERMINATED ############################## 

for band in desc.children: 
    print band 
    bandName = band.name 
    band_path = os.path.join(in_raster, bandName) 
    dest_path = os.path.join(out_folder, filename '_' + band_names(index) + '.tif') 
    arcpy.CopyRaster_management(band_path, dest_path, "", "", "", "NONE", "NONE", "") 
    index = index + 1 

ответ

0

Хорошо, так что я на самом деле понял это сам. Вот код, который я использовал. Ошибка была на самом деле не в arcpy.Describe(), а в arcpy.CopyRaster_management, потому что я не преобразовал band_name [index] в строку.

dest_path = os.path.join(out_folder, filename + str(band_names[index]) + '.tif')