Hallo
I am trying to run a code to use C2RCC in python. The code is:
inFolder=‘F:/seo_dwarf/validation/platforms/HuvudskarOst/images/TOA/’
outFolder=‘F:/seo_dwarf/validation/platforms/HuvudskarOst/images/C2RCC/’
wkt_s2=‘POLYGON ((18.79065927419176 59.05366211591765, 19.41228265954375 59.062765294778245, 19.428031833297695 58.71754730947824, 18.812564217653698 58.708566602732276, 18.79065927419176 59.05366211591765))’
wkt_s3_reproject=‘POLYGON((22.437983 40.776053, 23.603894 40.578657, 23.394009 39.877896, 22.245684999999998 40.073698, 22.437983 40.776053))’
wkt_s3_polygon=‘POLYGON ((22.580090079401838 40.59127050285319, 23.040973831558286 40.58404437062604, 23.032681010654454 40.309447248077305, 22.57366774333196 40.3166040183802, 22.580090079401838 40.59127050285319))’
sal=35.0
temp=15.0
ozo=330.0
pres=1000.0
el=0.0
TSMfakBpart=1.72
TSMfakBwit=3.1
CHLexp=1.04
CHLfak=21.0
thresholdRtosaOOS=0.005
thresholdAcReflecOos=0.1
thresholdCloudTDown865=0.955
outputAsRrs=True
deriveRwFromPathAndTransmittance=False
useEcmwfAuxData=True
outputRtoa=False
outputRtosaGc=False
outputRtosaGcAann=False
outputRpath=False
outputTdown=False
outputTup=False
outputAcReflectance=True
outputRhown=True
outputOos=False
outputKd=False
outputUncertainties=True
for file in os.listdir(inFolder):
path=str(inFolder+file)
if path.find(‘S2’)!=-1:
end=path.find('.SAFE')
start=path.find('S2')
name=path[start:end]
satelite=name[0:2]
date=name[11:19]
print 'Image processed:'+ str(satelite)+','+str(date)
product=ProductIO.readProduct(path+'/MTD_MSIL1C.xml')
print 'Resampling to 60m'
HashMap = jpy.get_type('java.util.HashMap')
parameters = HashMap()
parameters.put('targetResolution',60)
parameters.put('upsampling','Nearest')
parameters.put('downsampling','First')
parameters.put('resampleOnPyramidLevels',True)
result = GPF.createProduct('Resample', parameters, product)
ProductIO.writeProduct(result,outFolder+date+'_'+satelite+'_'+'resample.dim','BEAM-DIMAP')
print ('Masking with Polygon')
product=ProductIO.readProduct(outFolder+date+'_'+satelite+'_'+'resample.dim')
HashMap = jpy.get_type('java.util.HashMap')
parameters = HashMap()
SubsetOp = snappy.jpy.get_type('org.esa.snap.core.gpf.common.SubsetOp')
WKTReader = snappy.jpy.get_type('com.vividsolutions.jts.io.WKTReader')
geometry = WKTReader().read(wkt_s2)
op = SubsetOp()
op.setSourceProduct(product)
op.setGeoRegion(geometry)
sub_product = op.getTargetProduct()
ProductIO.writeProduct(sub_product,outFolder+date+'_'+satelite+'_'+'mask.dim','BEAM-DIMAP')
product=ProductIO.readProduct(outFolder+date+'_'+satelite+'_'+'mask.dim')
print 'Land masking'
HashMap = jpy.get_type('java.util.HashMap')
parameters = HashMap()
parameters.put('landMask','True')
parameters.put('useSRTM','True')
parameters.put('invertGeometry','False')
parameters.put('shorelineExtension','0')
result = GPF.createProduct('Land-Sea-Mask', parameters, product)
ProductIO.writeProduct(result,outFolder+date+'_'+satelite+'_'+'masked_sea.dim','BEAM-DIMAP')
product=ProductIO.readProduct(outFolder+date+'_'+satelite+'_'+'masked_sea.dim')
print 'C2RCC'
HashMap = jpy.get_type('java.util.HashMap')
parameters = HashMap()
parameters.put('validPixelExpression','B8 > 0 && B8 < 0.1')
parameters.put('temperature',temp)
parameters.put('salinity',sal)
parameters.put('ozone',ozo)
parameters.put('press',pres)
parameters.put('elevation',el)
parameters.put('TSMfakBpart',TSMfakBpart)
parameters.put('TSMfakBwit',TSMfakBwit)
parameters.put('CHLexp',CHLexp)
parameters.put('CHLfak',CHLfak)
parameters.put('thresholdRtosaOOS',thresholdRtosaOOS)
parameters.put('thresholdAcReflecOos',thresholdAcReflecOos)
parameters.put('thresholdCloudTDown865',thresholdCloudTDown865)
parameters.put('netSet','C2RCC-Nets')
parameters.put('outputAsRrs',outputAsRrs)
parameters.put('deriveRwFromPathAndTransmittance',deriveRwFromPathAndTransmittance)
parameters.put('useEcmwfAuxData',useEcmwfAuxData)
parameters.put('outputRtoa',outputRtoa)
parameters.put('outputRtosaGc',outputRtosaGc)
parameters.put('outputRtosaGcAann',outputRtosaGcAann)
parameters.put('outputRpath',outputRpath)
parameters.put('outputTdown',outputTdown)
parameters.put('outputTup',outputTup)
parameters.put('outputAcReflectance',outputAcReflectance)
parameters.put('outputRhown',outputRhown)
parameters.put('outputOos',outputOos)
parameters.put('outputKd',outputKd)
parameters.put('outputUncertainties',outputUncertainties)
result = GPF.createProduct('c2rcc.msi', parameters, product)
ProductIO.writeProduct(result,outFolder+date+'_'+satelite+'_'+'C2RCC.dim','BEAM-DIMAP')
When i run the process get the following error
Image processed:S2,20170521
Resampling to 60m
Traceback (most recent call last):
File “F:\seo_dwarf\validation\platforms\HuvudskarOst\C2RCC.py”, line 107, in
ProductIO.writeProduct(result,outFolder+date+’’+satelite+’’+‘resample.dim’,‘BEAM-DIMAP’)
RuntimeError: java.lang.NullPointerException
Yesterday when i tried to run the same code i didn t have any problems.
Any ideas?