#Original Function Location: /themis/lib/dav_lib/library/aviris_science.dvrc Source Code for Function: "load_aviris()" in "aviris_science.dvrc" (Beta)

aviris_science_version=1.00
#This file contains all functions pertaining to AVIRIS science

#In order to use load_aviris() you must also have gdal installed

#load_aviris- c.edwards 4/25/13


define load_aviris() {

  if($ARGC==0) {
    printf("Load a calibrated L1B orthorectified AVIRIS Radiance image as a Geo-Struct\n")
    printf("This includes wavelength axis and other ancellary products.\n")
        printf("Note: this function does not currently work properly for AVIRIS reflectance data\n\n")
    printf("$1=filename\n")
    printf("c.edwards 10/17/13\n")
    return(null)
  }

  out=read_geo($1)
    out.data[where out.data==-50]=-32768
    out.ignore=-32768

    dir=dirname($1)
    base=strsplit($1,delim="_")
    base=base[,1]//"_"//base[,2]
    if(fexists(dir+"/"+base+".gain")) {
        gain=ascii(dir+"/"+base+".gain",format=float)[1]
        out.data=float(out.data)
        out.data[where out.data!=out.ignore]=out.data/translate(gain[1],y,z)
        out.anc.metadata.spectral_units="micro-watts/cm^2/nm/sr"
    } 

    if(fexists(dir+"/"+base+".spc")) {
        out.xaxis=translate(ascii(dir+"/"+base+".spc",format=float)[1],y,z)
        out.anc.metadata.xaxis=""

        for(i=1;i<=dim(out.xaxis)[3];i+=1) {
            out.anc.metadata.xaxis=cat(out.anc.metadata.xaxis,",",out.xaxis[,,i]+"",axis=x)
        } 
        out.anc.metadata.xaxis=out.anc.metadata.xaxis[2:]
    }

  return(out)
}