AnsweredAssumed Answered

RuntimeError: ERROR 999998: Unexpected Error in Set null function

Question asked by HANIMANI1 on Jun 19, 2019
Latest reply on Jul 14, 2019 by HANIMANI1

I am trying to write one code where I use set null function for different images and also use a simple math function for scaling the images. But when I run this code after three processes it shows 

Traceback (most recent call last):
  File "F:\DB_test_data\python_script\FINAL_DB.py", line 192, in <module>
    arcpy.CopyRaster_management(toa_b2,OutRaster)
  File "C:\Program Files (x86)\ArcGIS\Desktop10.6\ArcPy\arcpy\management.py", line 14587, in CopyRaster
    raise e
RuntimeError: ERROR 999998: Unexpected Error.

here is my code 

outdir="F:\\DB_test_data\\TEST_RAY\\TEST1\\c\\"
for a,b,c,d,e,f,g,h,i,j,k,l in zip (CLDMASK,AOD,TOA_B1,TOA_B2,Height,SenZen,SenAzm,SolZen,SolAzm,Sur_B1,Sur_B2,Sur_B3):
    print ("processing_a:"+ a)
    print ("processing_b:"+ b)
    print ("processing_c:"+ c)
    print ("processing_d:"+ d)
    print ("processing_e:"+ e)
    print ("processing_f:"+ f)
    print ("processing_g:"+ g)
    print ("processing_h:"+ h)
    print ("processing_i:"+ i)
    print ("processing_j:"+ j)
    print ("processing_k:"+ k)
    print ("processing_l:"+ l)
    #######################################################################
    #Cloud Mask scalling
    Scale_factor1 = float(1.0)
    add_offset1 = float(0.0)
    setnull1 =arcpy.gp.SetNull_sa(a,a, "in_memory/dat1", "\"Value\" <= 0")
    ras1=arcpy.Raster(setnull1)
    cldmask=(ras1-add_offset1)*Scale_factor1
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("cldmask"))
    #print OutRaster
    arcpy.CopyRaster_management(cldmask,OutRaster)
    arcpy.Delete_management("in_memory/dat1")

    #AOD scalling and set lessthan 0.1 AOD
    Scale_factor2 = float(0.0010000000474974513)
    add_offset2 = float(0.0)
    setnull2 =arcpy.gp.SetNull_sa(b,b, "in_memory/dat2", "\"Value\" = -9999")
    ras2=arcpy.Raster(setnull2)
    aod=(ras2-add_offset2)*Scale_factor2
    aod_1 = Con((aod >= 0.0) & (aod <= 0.1),1)
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("aod_1"))
    #print OutRaster
    arcpy.CopyRaster_management(aod_1,OutRaster)
    arcpy.Delete_management("in_memory/dat2")

    #TOA_B1 scalling
    Scale_factor3 = float(0.000053811826)
    add_offset3 = float(-0.0)
    setnull3 =arcpy.gp.SetNull_sa(c,c, "in_memory/dat3", "\"Value\" = 65535")
    ras3=arcpy.Raster(setnull3)
    toa_b1=(ras3-(add_offset3))*Scale_factor3
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("toa_b1"))
    #print OutRaster
    arcpy.CopyRaster_management(toa_b1,OutRaster)
    arcpy.Delete_management("in_memory/dat3")

    #TOA_B2 Scalling
    Scale_factor4 = float(0.00003255546)
    add_offset4 = float(-0.0)
    setnull4 =arcpy.gp.SetNull_sa(d,d, "in_memory/dat4", "\"Value\" = 65535")
    ras4=arcpy.Raster(setnull4)
    toa_b2=(ras4-(add_offset4))*Scale_factor4
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("toa_b2"))
    #print OutRaster
    arcpy.CopyRaster_management(toa_b2,OutRaster)
    arcpy.Delete_management("in_memory/dat4")

    #Height
    setnull =arcpy.gp.SetNull_sa(e,e, "in_memory/dat5", "\"Value\" = -32767")
    ras=arcpy.Raster(setnull)
    height=ras
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("height"))
    #print OutRaster
    arcpy.CopyRaster_management(height,OutRaster)
    arcpy.Delete_management("in_memory/dat5")

    #Sensor Zenith angle
    Scale_factor6 = float(0.01)
    add_offset6 = float(0.0)
    setnull6 =arcpy.gp.SetNull_sa(f,f, "in_memory/dat6", "\"Value\" = -32767")
    ras6=arcpy.Raster(setnull6)
    senzen=(ras6-add_offset6)*Scale_factor6
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("senzen"))
    #print OutRaster
    arcpy.CopyRaster_management(senzen,OutRaster)
    arcpy.Delete_management("in_memory/dat6")

    #Sensor azimuth angle
    setnull7 =arcpy.gp.SetNull_sa(g,g, "in_memory/dat7", "\"Value\" = -32767")
    ras7=arcpy.Raster(setnull7)
    senazm=(ras7-add_offset6)*Scale_factor6
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("senazm"))
    #print OutRaster
    arcpy.CopyRaster_management(senazm,OutRaster)
    arcpy.Delete_management("in_memory/dat7")

    #solar zenithal angle
    setnull8 =arcpy.gp.SetNull_sa(h,h, "in_memory/dat8", "\"Value\" = -32767")
    ras8=arcpy.Raster(setnull8)
    solzen=(ras8-add_offset6)*Scale_factor6
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("solzen"))
    #print OutRaster
    arcpy.CopyRaster_management(solzen,OutRaster)
    arcpy.Delete_management("in_memory/dat8")

    #solar azimuth angle
    setnull9 =arcpy.gp.SetNull_sa(i,i, "in_memory/dat9", "\"Value\" = -32767")
    ras9=arcpy.Raster(setnull9)
    solazm=(ras9-add_offset6)*Scale_factor6
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("solazm"))
    #print OutRaster
    arcpy.CopyRaster_management(solazm,OutRaster)
    arcpy.Delete_management("in_memory/dat9")

    #(MODO9)surface reflectance band 1
    Scale_factor_10 = float(0.0001)
    add_offset_10 = float(0.0)
    setnull_10 =arcpy.gp.SetNull_sa(j,j, "in_memory/dat10", "\"Value\" = -28672")
    ras_10=arcpy.Raster(setnull_10)
    sur_b1=(ras_10-add_offset_10)*Scale_factor_10
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("sur_b1"))
    #print OutRaster
    arcpy.CopyRaster_management(sur_b1,OutRaster)
    arcpy.Delete_management("in_memory/dat10")

    #(MODO9)surface reflectance band 2
    setnull_11 =arcpy.gp.SetNull_sa(k,k, "in_memory/dat11", "\"Value\" = -28672")
    ras_11=arcpy.Raster(setnull_11)
    sur_b2=(ras_11-add_offset_10)*Scale_factor_10
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("sur_b2"))
    #print OutRaster
    arcpy.CopyRaster_management(sur_b2,OutRaster)
    arcpy.Delete_management("in_memory/dat11")
  

    #(MODO9)surface reflectance band 3
    setnull_12 =arcpy.gp.SetNull_sa(l,l, "in_memory/dat12", "\"Value\" = -28672")
    ras_12=arcpy.Raster(setnull_12)
    sur_b3=(ras_12- add_offset_10)*Scale_factor_10
    OutRaster = os.path.join(outdir,'MOd0.{0}.img'.format("sur_b3"))
    #print OutRaster
    arcpy.CopyRaster_management(sur_b3,OutRaster)
    arcpy.Delete_management("in_memory/dat12")
#############################################################################
    # # Process: Extract by Cloud_Mask
    # tempEnvironment0 = arcpy.env.cellSize
    # arcpy.env.cellSize = "MAXOF"
    # toa_bb1=arcpy.gp.ExtractByMask_sa(toa_b1, cldmask)
    # toa_b22=arcpy.gp.ExtractByMask_sa(toa_b2, cldmask)
    # heightt=arcpy.gp.ExtractByMask_sa(height, cldmask)
    # senzenn=arcpy.gp.ExtractByMask_sa(senzen, cldmask)
    # senazmm=arcpy.gp.ExtractByMask_sa(senazm, cldmask)
    # solzenn=arcpy.gp.ExtractByMask_sa(solzen, cldmask)
    # solazmm=arcpy.gp.ExtractByMask_sa(solazm, cldmask)
    # sur_b11=arcpy.gp.ExtractByMask_sa(sur_b1, cldmask)
    # sur_b22=arcpy.gp.ExtractByMask_sa(sur_b2, cldmask)
    # sur_b33=arcpy.gp.ExtractByMask_sa(sur_b3, cldmask)
    # arcpy.env.cellSize = tempEnvironment0
    # # Process: Extract by Mask using AOD less than 0.1 value
    # tempEnvironment0 = arcpy.env.cellSize
    # arcpy.env.cellSize = cellsize
    # toa_b1=arcpy.gp.ExtractByMask_sa(toa_bb1, aod_1)
    # toa_b2=arcpy.gp.ExtractByMask_sa(toa_bb2, aod_1)
    # height=arcpy.gp.ExtractByMask_sa(heightt, aod_1)
    # senzen=arcpy.gp.ExtractByMask_sa(senzenn, aod_1)
    # senazm=arcpy.gp.ExtractByMask_sa(senazmm, aod_1)
    # solzen=arcpy.gp.ExtractByMask_sa(solzenn, aod_1)
    # solazm=arcpy.gp.ExtractByMask_sa(solazmm, aod_1)
    # sur_b1=arcpy.gp.ExtractByMask_sa(sur_b11, aod_1)
    # sur_b2=arcpy.gp.ExtractByMask_sa(sur_b22, aod_1)
    # sur_b3=arcpy.gp.ExtractByMask_sa(sur_b33, aod_1)
    # arcpy.env.cellSize = tempEnvironment0



    #############################################################################
    #Calculate the scattering angle from Resample MOD03 products
      #Css = Cos(S2 * !pi / 180.D) IDL
      #Css = np.cos(S2 * np.pi / 180) Python
    # CosSenZ = np.Cos(senzen * np.pi / 180)
    # CosSolZ = np.Cos(solzen * np.pi / 180)
    # SinSenZ = np.Sin(senzen * np.pi / 180)
    # SinSolZ = np.Sin(solzen * np.pi / 180)

    # RelAzm = np.abs((senazm ) - (solazm))
    # index = np.where(RelAzm > 180.0)
    # RelAzm[index] = 360.0- RelAzm[index]
    # index = np.where(RelAzm <= 180.0)
    # RelAzm[index] = 180.0- RelAzm[index]
    # CosRe = np.Cos(np.radians(RelAzm))

    # SctAgl =  np.acos((-CosSolZ * CosSenZ) + ((SinSolZ * SinSenZ) * CosRelA))

    # #Ray_correction for TOA_BAND_1 and TOA_BAND_2
    # #TOA_BAND_1
    # B1_ROD = (0.00864 + (0.0000065)) * (0.67)**(-(3.916 + (0.074 * 0.67)+ (0.05/0.67)))#for RED band, please change 0.67 for other bands wavelength
    # Pr1 =  (3./16.*np.pi) * (1 + (np.cos(SctAgl) * np.cos(SctAgl)))
    # wr1 = 1.0
    # RayRef_B1 = (wr1 * B1_ROD * Pr1 ) / (4.0 * (CosSolZ * CosSenZ))
    # RCR_B1 = toa_b1 - RayRef_B1
    # #TOA_BAND_2
    # B2_ROD = (0.00864 + (0.0000065)) * (0.86)**(-(3.916 + (0.074 * 0.86)+ (0.05/0.86)))#for Near Infrared (NIR) band, please change 0.86 for other bands wavelength
    # Pr2 =  (3./16.*np.pi) * (1 + (np.cos(SctAgl) * np.cos(SctAgl)))
    # wr2 = 1.0
    # RayRef_B2 = (wr2 * B2_ROD * Pr2 ) / (4.0 * (CosSolZ * CosSenZ))
    # RCR_B2 = toa_b2 - RayRef_B2

    #Calculating NDVI float raster
    # ndvi_raster = Divide(Float(Raster(toa_b2) - Raster(toa_b1)), Float(Raster(toa_b2) + Raster(toa_b1)))

    # ndvi = (Float(toa_b2) - toa_b1) / (Float(toa_b2) + toa_b1)


print arcpy.GetMessages()
print 'finished run: %s\n\n' % (datetime.datetime.now() - start)

I can't understand why it shows this error.

please help me, anyone, to resolve this matter.

And have any way to use a "foor loop" for set null function of different images?

Xander Bakker

Luke Webb,

Joshua Bixby

Joe Borgione

Dan Patterson

Attachments

Outcomes