Hi all, I am new to using snappy and am running into a null pointer error. I am trying to pre-process many images within a folder, and all of the code functions when the SARSim-Terrain-Correction is removed from the process.
What I want to know is: did I code something incorrectly for this error to occur? When I run the same process in the graph GUI it produces an output. The error I am receiving is for the line that is supposed to write the SARSim-Terrain-Correction. The error is as follows :
Here is my script:
import gc
import os
import snappy
from snappy import ProductIO
from snappy import GPF
GPF.getDefaultInstance().getOperatorSpiRegistry().loadOperatorSpis()
HashMap = snappy.jpy.get_type(‘java.util.HashMap’)
path = “E:\snappy test\”
for folder in os.listdir(path):
output = path + folder + “\”
timestamp = folder.split("")[4]
date = timestamp[:8]
sentinel_1 = snappy.ProductIO.readProduct(output + “\manifest.safe”)
print sentinel_1
pols = [‘VH’, ‘VV’]
for p in pols:
polarization = p
loop_number =+ 1
print “Loop number:” , loop_number
#
#SAR-SIMULATION
#
print “Initiating SAR-Simulation…”
parameters = HashMap()
parameters.put(‘sourceBands’, "Intensity" + polarization)
parameters.put(‘demName’, “External DEM”)
parameters.put(‘externalDEMFile’, ‘E:\RemovedForPrivacy’)
parameters.put(‘demResamplingMethod’, “BICUBIC_INTERPOLATION”)
print “Parameters defined…”
SARsim = output + date + “SS” + polarization
target_0 = GPF.createProduct(“SAR-Simulation”, parameters, sentinel_1)
ProductIO.writeProduct(target_0, SARsim, ‘BEAM-DIMAP’)
print "SAR-Simulation complete for " + folder + " " + p
#
#CROSS-CORRELATION
#
print “Initiating Cross-Correlation”
SARsimulation = ProductIO.readProduct(SARsim + “.dim”)
parameters = HashMap()
parameters.put(‘sourceBands’, “Simulated_Intensity” and “Intensity_” + polarization)
parameters.put(‘numGCPtoGenerate’, 2000)
print “Parameters defined…”
CrossCor = output + date + “SS_CC” + polarization
target_1 = GPF.createProduct(“Cross-Correlation”, parameters, SARsimulation)
ProductIO.writeProduct(target_1, CrossCor, ‘BEAM-DIMAP’)
print "Cross-Correlation complete for " + folder + " " + p
#
#SARSim-TERRAIN-CORRECTION
#
print “Initiating SARSim-Terrain-Correction…”
CrossCorrelation = ProductIO.readProduct(CrossCor + “.dim”)
parameters = HashMap()
parameters.put(‘sourceBands’, “Simulated_Intensity” and “Intensity_” + polarization)
parameters.put(‘alignToStandardGrid’, False)
parameters.put(‘applyRadiometricNormalization’, True)
parameters.put(‘imgResamplingMethod’, “BILINEAR_INTERPOLATION”)
parameters.put(‘incidenceAngleForSigma0’, “Use local incidence angle from DEM”)
parameters.put(‘mapProjection’, “AUTO:42001”)
parameters.put(‘openResidualsFile’, True)
parameters.put(‘saveLocalIncidenceAngle’, True)
parameters.put(‘saveProjectedLocalIncidenceAngle’, True)
parameters.put(‘saveSelectedSourceBand’, False)
parameters.put(‘saveSigmaNought’, True)
print “Parameters defined…”
SSTerrainCor = output + date + “SS_CC_TC” + polarization
target_2 = GPF.createProduct(“SARSim-Terrain-Correction”, parameters, CrossCorrelation)
ProductIO.writeProduct(target_2, SSTerrainCor, ‘BEAM-DIMAP’) #this is where the error is traced to
print "SARSim-Terrain-Correction complete for " + folder + " " + p
#
#SUBSET
#
print “Initiating Subset…”
WKTReader = snappy.jpy.get_type(‘com.vividsolutions.jts.io.WKTReader’)
wkt = “POLYGON (())” #removed for privacy reasons
geom = WKTReader().read(wkt)
parameters = HashMap()
parameters.put(‘copyMetadata’, True)
parameters.put(‘sourceBands’, “Sigma0_{polarization}_ use_local_inci_angle_from_dem”)
parameters.put(‘geoRegion’, geom)
print “Parameters defined…”
subset = output + date + “SS_CC_TC_subset” + polarization
target_3 = GPF.createProduct(“Subset”, parameters, SSTerrainCor)
snappy.ProductIO.writeProduct(target_3, subset, ‘BEAM-DIMAP’)
print "Subset complete for " + folder + " " + p
#
#SPECKLE-FILTER
#
print “Initiating Speckle-Filter…”
subs = ProductIO.readProduct(subset + “.dim”)
parameters = HashMap()
parameters.put(‘sourceBands’, “Sigma0_{polarization}_ use_local_inci_angle_from_dem” and
“Sigma0_” + polarization and “localIncidenceAngle” and
“projectedLocalIncidenceAngle”)
parameters.put(‘filter’, “Gamma Map”)
parameters.put(‘windowSize’, “7x7”)
print “Parameters defined…”
SpecFil = output + date + “SS_CC_TC_subset_SF” + polarization
target_4 = GPF.createProduct(“Speckle-Filter”, parameters, subs)
print "Speckle-filter complete for " + folder + " " + p
print “Image " + folder + " " + polarization + " complete.”
Thank you!