You may have a BIP (Band Interleaved by Pixel) or BSQ (Band Sequential) format. The ESRI help has a reasonable page that illustrates the three interleave methods.
Right-click on the file in the "Available Bands List" window and select "Edit Header..." and switch the interleave from BIL to BIP (if that is what your data actually is, otherwise try BSQ) and it should display properly.
If you actually want to convert your image data to BIL, select "Basic Tools"->"Convert Data (BSQ,BIL,BIP) from the ENVI toolbar.
This is a problem that I've encountered many times, getting a disc full of tiles and needing to find the ones that are in/near an area to subset the rasters for building VRT, mosaic dataset or mosaicing (depending on requirements)...
I am not aware of any tool in Model Builder that will help with this, there is a limit to what can be done in model builder, however this kind of operation is very easy in python:
import os, sys, arcpy
AOI = sys.argv[1] # the area of interest to find the rasters for
rFolder = sys.argv[2] # the folder containing the rasters to search from
oFolder = sys.argv[3] # the folder to copy to
desc = arcpy.Describe(AOI) # get the extent of the AOI
sExt = desc.extent
arcpy.env.workspace = rFolder
for ThisRas in arcpy.ListRasters():
rDesc = arcpy.Describe(ThisRas)
rExt = rDesc.extent
# check if this extent is related spatially
# by using not disjoint
if sExt.disjoint(rExt):
arcpy.AddMessage("Raster %s is outside" % (ThisRas))
else:
arcpy.AddMessage("Raster %s overlaps" % (ThisRas))
outFile = os.path.join(oFolder,ThisRas)
arcpy.Copy_management(ThisRas,outFile)
This is a very cut-down tool that I use regularly; beware the AOI and the rasters must be in the same coordinate system.. You can use this in model builder after you have created your own toolbox and added a python script tool, the parameters are Feature Class, Folder and Folder (make them all input for simplicity).
I use sys.argv[] over arcpy.GetParameterAsText() - they both do the same thing but less typing.
This can be further refined using the geometries in the file (point, line or polygon - it doesn't matter):
import os, sys, arcpy
AOI = sys.argv[1] # the area of interest to find the rasters for
rFolder = sys.argv[2] # the folder containing the rasters to search from
oFolder = sys.argv[3] # the folder to copy to
desc = arcpy.Describe(AOI) # get the extent of the AOI
sExt = desc.extent
arcpy.env.workspace = rFolder
# could use walk here to do this folder and all subfolders
for ThisRas in arcpy.ListRasters():
rDesc = arcpy.Describe(ThisRas)
rExt = rDesc.extent
# check if this extent is related spatially
# by using not disjoint
if sExt.disjoint(rExt):
arcpy.AddMessage("Raster %s is outside" % (ThisRas))
else:
arcpy.AddMessage("Raster %s is a canditate" % (ThisRas))
outFile = os.path.join(oFolder,ThisRas)
# refine further with geometry
with arcpy.da.SearchCursor(AOI,"SHAPE@") as sCur:
IntersectsShape = False
for ft in sCur:
if not ft[0].disjoint(rExt):
IntersectsShape = True
break
if IntersectsShape:
arcpy.AddMessage("Copy Raster %s" % (ThisRas))
arcpy.Copy_management(ThisRas,outFile)
Best Answer
If I had posted the entire ENVI header file, the solution would likely have been clear to most. Turns out I missed the fact that the header file had no georeferencing information. The key line in the ENVI header file that allows ArcGIS to correctly georeference the image file is:
map info = {Geographic Lat/Lon, 1.0000, 1.0000, -139.00000000, 56.00000000, 1.3943160000e-002, 9.0090100000e-003, WGS-84, units=Degrees}
Without this block, ArcGIS understandably has no idea what to do with the image.
Mea culpa. Yet another sorry example of a user not posting enough information. Apologies.