Can you please figure out what is the problem…why the output is not showing in .tif or dimap format when overall the code is running 100 percent with no errors. however am attaching the full code
import sys
sys.path.append(‘/home/siddharth/trambak/snappy’)
import datetime
import time
import snappy
import os, gc
from snappy import GPF
def do_apply_orbit_file(source):
print(‘\tApply orbit file…’)
parameters = snappy.HashMap()
parameters.put(‘Apply-Orbit-File’, True)
output = GPF.createProduct(‘Apply-Orbit-File’, parameters, source)
parameters.put(‘orbitType’, ‘Sentinel Precise (Auto Download)’)
return output
def do_thermal_noise_removal(source):
print(‘\tThermal noise removal…’)
parameters = snappy.HashMap()
parameters.put(‘removeThermalNoise’, True)
output = GPF.createProduct(‘ThermalNoiseRemoval’, parameters, source)
return output
def do_calibration(source, polarization, pols):
print(‘\tCalibration…’)
parameters = snappy.HashMap()
parameters.put(‘outputSigmaBand’, True)
if polarization == ‘DH’:
parameters.put(‘sourceBands’, ‘Intensity_HH,Intensity_HV’)
elif polarization == ‘DV’:
parameters.put(‘sourceBands’, ‘Intensity_VH,Intensity_VV’)
elif polarization == ‘SH’ or polarization == ‘HH’:
parameters.put(‘sourceBands’, ‘Intensity_HH’)
elif polarization == ‘SV’:
parameters.put(‘sourceBands’, ‘Intensity_VV’)
else:
print(“different polarization!”)
parameters.put(‘selectedPolarisations’, pols)
parameters.put(‘outputImageScaleInDb’, False)
output = GPF.createProduct(“Calibration”, parameters, source)
return output
def do_speckle_filtering(source):
print(‘\tSpeckle filtering…’)
parameters = snappy.HashMap()
parameters.put(‘filter’, ‘Lee’)
parameters.put(‘filterSizeX’, 5)
parameters.put(‘filterSizeY’, 5)
output = GPF.createProduct(‘Speckle-Filter’, parameters, source)
return output
def do_terrain_correction(source, proj, downsample):
print(‘\tTerrain correction…’)
parameters = snappy.HashMap()
parameters.put(‘demName’, ‘GETASSE30’)
parameters.put(‘imgResamplingMethod’, ‘BILINEAR_INTERPOLATION’)
parameters.put(‘mapProjection’, proj) # comment this line if no need to convert to UTM/WGS84, default is WGS84
parameters.put(‘saveProjectedLocalIncidenceAngle’, True)
parameters.put(‘saveSelectedSourceBand’, True)
while downsample == 1: # downsample: 1 – need downsample to 40m, 0 – no need to downsample
parameters.put(‘pixelSpacingInMeter’, 40.0)
break
output = GPF.createProduct(‘Terrain-Correction’, parameters, source)
return output
def do_subset(source, wkt):
print(‘\tSubsetting…’)
parameters = snappy.HashMap()
parameters.put(‘geoRegion’, wkt)
output = GPF.createProduct(‘Subset’, parameters, source)
return output
def main():
## All Sentinel-1 data sub folders are located within a super folder (make sure the data is already unzipped and each sub folder name ends with ‘.SAFE’):
path = “data/s1_images”
outpath = “data/s1_preprocessed”
if not os.path.exists(outpath):
os.makedirs(outpath)
## well-known-text (WKT) file for subsetting (can be obtained from SNAP by drawing a polygon)
wkt = ‘POLYGON((85.2786340943649 19.98143168402237,86.11037335501074 20.025747032929132,86.31187754046424 19.618385502024594,84.86705195938421 19.128997288585452,85.2786340943649 19.98143168402237))’
## UTM projection parameters
proj = ‘’‘PROJCS[“UTM Zone 4 / World Geodetic System 1984”,GEOGCS[“World Geodetic System 1984”,DATUM[“World Geodetic System 1984”,SPHEROID[“WGS 84”, 6378137.0, 298.257223563, AUTHORITY[“EPSG”,“7030”]],AUTHORITY[“EPSG”,“6326”]],PRIMEM[“Greenwich”, 0.0, AUTHORITY[“EPSG”,“8901”]],UNIT[“degree”, 0.017453292519943295],AXIS[“Geodetic longitude”, EAST],AXIS[“Geodetic latitude”, NORTH]],PROJECTION[“Transverse_Mercator”],PARAMETER[“central_meridian”, -159.0],PARAMETER[“latitude_of_origin”, 0.0],PARAMETER[“scale_factor”, 0.9996],PARAMETER[“false_easting”, 500000.0],PARAMETER[“false_northing”, 0.0],UNIT[“m”, 1.0],AXIS[“Easting”, EAST],AXIS[“Northing”, NORTH]]’‘’
print(os.listdir('data/s1_images'))
for folder in os.listdir(path):
gc.enable()
gc.collect()
print(path + "/" + folder + "/manifest.safe")
sentinel_1 = snappy.ProductIO.readProduct(path + "/" + folder + "/manifest.safe")
snappy.ProductIO.writeProduct(sentinel_1, outpath + "/" + folder[:-5] + "_401.jp2", 'JPEG2000')
print(sentinel_1)
loopstarttime=str(datetime.datetime.now())
print('Start time:', loopstarttime)
start_time = time.time()
## Extract mode, product type, and polarizations from filename
modestamp = folder.split("_")[1]
productstamp = folder.split("_")[2]
polstamp = folder.split("_")[3]
polarization = polstamp[2:4]
if polarization == 'DV':
pols = 'VH,VV'
elif polarization == 'DH':
pols = 'HH,HV'
elif polarization == 'SH' or polarization == 'HH':
pols = 'HH'
elif polarization == 'SV':
pols = 'VV'
else:
print("Polarization error!")
## Start preprocessing:
applyorbit = do_apply_orbit_file(sentinel_1)
thermaremoved = do_thermal_noise_removal(applyorbit)
calibrated = do_calibration(thermaremoved, polarization, pols)
down_filtered = do_speckle_filtering(calibrated)
del applyorbit
del thermaremoved
del calibrated
## IW images are downsampled from 10m to 40m (the same resolution as EW images).
if (modestamp == 'IW' and productstamp == 'GRDH') or (modestamp == 'EW' and productstamp == 'GRDH'):
down_tercorrected = do_terrain_correction(down_filtered, proj, 1)
#snappy.ProductIO.writeProduct(down_tercorrected, outpath + "/" + folder[:-5] + "_40.csv", 'CSV')
print(outpath + "/" + folder[:-5] + "_40.jp2")
down_subset = do_subset(down_tercorrected, wkt)
snappy.ProductIO.writeProduct(down_subset, outpath + "/" + folder[:-5] + "_40.jp2", 'JPEG2000')
del down_filtered
del down_tercorrected
elif modestamp == 'EW' and productstamp == 'GRDM':
tercorrected = do_terrain_correction(down_filtered, proj, 0)
snappy.ProductIO.writeProduct(tercorrected, outpath + "/" + folder[:-5] + "_40.jp2", 'JPEG2000')
subset = do_subset(tercorrected, wkt)
del down_filtered
del tercorrected
else:
print("Different spatial resolution is found.")
down = 1
try: down_subset
except NameError:
down = None
if down is None:
print("Writing...")
snappy.ProductIO.writeProduct(subset, outpath + "/" + folder[:-5], 'JPEG2000')
del subset
elif down == 1:
print("Writing undersampled image...")
snappy.ProductIO.writeProduct(down_subset, outpath + “/” + folder[:-5] + “_40.csv”, ‘CSV’)
del down_subset
else:
print("Error.")
print('Done.')
sentinel_1.dispose()
sentinel_1.closeIO()
print("--- %s seconds ---" % (time.time() - start_time))
if name== “main”:
main()