In [18]:
%matplotlib inline
import sys,os
sys.path.append('/home1/datahome/oarcher/sarwing_cluster/post_processing/common')
sys.path.append('/home1/datahome/oarcher/sarwing_cluster/tools')
import matplotlib.pyplot as plt
import numpy as np
import numpy.ma as ma
import swFilter
import owi
import colormap_ext
import pathurl
from glob import glob
from IPython.display import display, Markdown
import warnings
warnings.filterwarnings("ignore", category=RuntimeWarning)   # Nan


#float compare diff. Less is considered equal
maxDiffError=1e-9

# number of diff  that must raise an alert
nDiffAlert=1

# diff Nan that must raise an alert
nNanAlert=1

leftCompare ="/home/datawork-cersat-public/cache/public/ftp/project/sarwing/processings/2a2fc9d/default/reports/nesz_flat_test"
rightCompare="/home/datawork-cersat-public/cache/public/ftp/project/sarwing/processings/4cad967/nesz_flat/reports/nesz_flat_test"

leftCompare=pathurl.toPath(leftCompare)
rightCompare=pathurl.toPath(rightCompare)

try:
    with open("%s/outDir.txt" % leftCompare) as f: 
        leftOutDir = [line.rstrip('\n') for line in f]
except:
    leftOutDir = [leftCompare]
    
try:
    with open("%s/outDir.txt" % rightCompare) as f: 
        rightOutDir = [line.rstrip('\n') for line in f]
except:
    rightOutDir = [rightCompare]
    
    
safes=list(set([os.path.basename(p) for p in leftOutDir + rightOutDir]))

keepSafes=[]
#keepSafes=["S1A_EW_GRDM_1SDV_20180117T143557_20180117T143701_020195_022745_93C1.SAFE","S1A_EW_GRDM_1SDV_20160826T133953_20160826T134056_012772_0141F0_B87C.SAFE"]
#keepSafes=["S1A_EW_GRDM_1SDV_20160826T133953_20160826T134056_012772_0141F0_B87C.SAFE"]

if keepSafes:
    safes=[safe for safe in safes if safe in keepSafes]

print "%d SAFES to compare" % len(safes)
95 SAFES to compare
In [11]:
def getPath(safe,paths):
    __path=None
    for _path in paths:
        if safe in _path:
            __path=_path
            break
    return __path
In [ ]:
# optionnal : filter test

differSafes=[]
differKeys=[]

for safe in safes:
    leftSafeDir=getPath(safe,leftOutDir)
    rightSafeDir=getPath(safe,rightOutDir)
    
    display(Markdown('# %s' % safe))
    
    filterFiles=set([ os.path.basename(f) for f in glob("%s/*filter.nc" % leftSafeDir) + glob("%s/*filter.nc" % rightSafeDir)])
    for filterFile in filterFiles:
        leftFilterFile="%s/%s" % (leftSafeDir , filterFile)
        rightFilterFile="%s/%s" % (rightSafeDir , filterFile)
        
        if not os.path.exists(leftFilterFile):
            print "%s does not exists. skip" % leftFilterFile
            continue
        if not os.path.exists(rightFilterFile):
            print "%s does not exists. skip" % rightFilterFile
            continue
        
        leftFilterDS=swFilter.readFile(leftFilterFile)
        rightFilterDS=swFilter.readFile(rightFilterFile)
        
        
        keys=set(leftFilterDS.keys() + rightFilterDS.keys())
        for key in keys:
            plot=False
            leftNan=np.isnan(leftFilterDS[key])
            rightNan=np.isnan(rightFilterDS[key])
            leftNanCount=np.count_nonzero(leftNan)
            rightNanCount=np.count_nonzero(rightNan)
            if abs(leftNanCount - rightNanCount) > nNanAlert:
                #print "Nan count differ for key %s. left : %d ,  right : %d" % (key , leftNanCount , rightNanCount)
                plot=True
            diff=np.abs(np.nan_to_num(leftFilterDS[key]) - np.nan_to_num(rightFilterDS[key]))
            common_mask=np.logical_and(ma.getmaskarray(leftNan),ma.getmaskarray(rightNan))
            diff[common_mask]=0.0
            ndiff=np.count_nonzero(diff  > maxDiffError)
            if ndiff > nDiffAlert:
                maxDiff=np.nanmax(diff)
                #print "found %d differences on key %s. max diff is %e" % (ndiff, key, maxDiff)
                plot=True
                
            if plot:
                differSafes.append(safe)
                differKeys.append(key)
                fig=plt.figure(figsize=(25,15),edgecolor='blue')
                #fig.suptitle('%s/%s\n%s' % (safe , filterFile , key  ), fontsize=12)
                display(Markdown('---'))
                display(Markdown('### %s' % safe))
                display(Markdown('#### %s' % (filterFile)))
                display(Markdown('##### %s' % key))
                display(Markdown('Nan count. Left : %d  , Right : %d' % (leftNanCount , rightNanCount)))
                display(Markdown('Diff count: %d (max %e)' % (ndiff , maxDiff)))
                
                        
                        
                        
                        
                cmap=plt.get_cmap('gray')
                cmap.set_bad(color='red')

                
                #mini=np.min([np.min(leftFilterDS[key]),np.min(rightFilterDS[key])])
                #maxi=np.max([np.max(leftFilterDS[key]),np.max(rightFilterDS[key])])
                
                plt.subplot(1,3,1)
                plt.title('left')
                plt.pcolormesh(leftFilterDS[key],cmap=cmap)
                plt.colorbar(orientation='horizontal')
                #xyLeftNan= np.argwhere(leftNan)
                #plt.scatter(xyLeftNan[:,0],xyLeftNan[:,1],c='r')

                
                
                plt.subplot(1,3,2)
                plt.title('diff')
                plt.pcolormesh(diff,cmap=cmap)
                plt.colorbar(orientation='horizontal')
                
                
                plt.subplot(1,3,3)
                plt.title('right')
                plt.pcolormesh(rightFilterDS[key],cmap=cmap)
                plt.colorbar(orientation='horizontal')
                #xyRightNan= np.argwhere(rightNan)
                #plt.scatter(xyRightNan[:,0],xyRightNan[:,1],c='r')
                
                plt.show()
                plt.close()
            
            

differSafes=list(set(differSafes))
differKeys=list(set())

display(Markdown('### Found %d/%d SAFES difference:' % (len(differSafes), len(safes)  )))
for safe in differSafes:
    display(Markdown('%s' % safe))

display(Markdown('### differences where found on:' ))
for key in differKeys:
    display(Markdown('%s' % key))
            

            

    
In [19]:
# optionnal : owi test

differSafes=[]
differKeys=[]

for safe in safes:
    leftSafeDir=getPath(safe,leftOutDir)
    rightSafeDir=getPath(safe,rightOutDir)
    
    #display(Markdown('# %s' % safe))
    
    owiFiles=set([ os.path.basename(f) for f in glob("%s/*owi*.nc" % leftSafeDir) + glob("%s/*owi*.nc" % rightSafeDir)])
    for owiFile in owiFiles:
        leftOwiFile="%s/%s" % (leftSafeDir , owiFile)
        rightOwiFile="%s/%s" % (rightSafeDir , owiFile)
        
        if not os.path.exists(leftOwiFile):
            print "%s does not exists. skip" % leftOwiFile
            continue
        if not os.path.exists(rightOwiFile):
            print "%s does not exists. skip" % rightOwiFile
            continue
        
        leftOwiDS=owi.readFile(leftOwiFile)
        rightOwiDS=owi.readFile(rightOwiFile)
        
        
        keys=set(leftOwiDS.keys() + rightOwiDS.keys())
        keys=['owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps']
        for key in keys:
            plot=False
            leftNan=np.isnan(leftOwiDS[key])
            rightNan=np.isnan(rightOwiDS[key])
            leftNanCount=np.count_nonzero(leftNan)
            rightNanCount=np.count_nonzero(rightNan)
            if abs(leftNanCount - rightNanCount) > nNanAlert:
                #print "Nan count differ for key %s. left : %d ,  right : %d" % (key , leftNanCount , rightNanCount)
                plot=True
            common_mask=np.logical_and(ma.getmaskarray(leftNan),ma.getmaskarray(rightNan))
            diff=np.abs(np.nan_to_num(leftOwiDS[key]) - np.nan_to_num(rightOwiDS[key]))
            diff[common_mask]=0.0
            ndiff=np.count_nonzero(diff  > maxDiffError)
            if ndiff >= nDiffAlert:
                maxDiff=np.nanmax(diff)
                #print "found %d differences on key %s. max diff is %e" % (ndiff, key, maxDiff)
                #print np.nan_to_num(leftOwiDS[key][-1,0]),diff[-1,0],rightOwiDS[key][-1,0]
                plot=True
                
            if plot:
                differSafes.append(safe)
                differKeys.append(key)
                fig=plt.figure(figsize=(25,15),edgecolor='blue')
                #fig.suptitle('%s/%s\n%s' % (safe , filterFile , key  ), fontsize=12)
                display(Markdown('---'))
                display(Markdown('### %s' % safe))
                display(Markdown('#### %s' % (owiFile)))
                display(Markdown('##### %s' % key))
                display(Markdown('Nan count. Left : %d  , Right : %d' % (leftNanCount , rightNanCount)))
                display(Markdown('Diff count: %d (max %e)' % (ndiff , maxDiff)))
                
                        
                        
                        
                        
                #cmap=plt.get_cmap('gray')
                #cmap=plt.get_cmap('jet')
                cmap = plt.get_cmap("high_wind_speed")
                cmap.set_bad(color='red')

                
                #mini=np.min([np.min(leftFilterDS[key]),np.min(rightFilterDS[key])])
                #maxi=np.max([np.max(leftFilterDS[key]),np.max(rightFilterDS[key])])
                
                vmin=None
                vmax=None
                if 'WindSpeed' in key:
                    vmin=0
                    vmax=80
                
                plt.subplot(1,3,1)
                plt.title('left')
                plt.pcolormesh(leftOwiDS[key],vmin=vmin,vmax=vmax,cmap=cmap)
                plt.colorbar(orientation='horizontal')
                #xyLeftNan= np.argwhere(leftNan)
                #plt.scatter(xyLeftNan[:,0],xyLeftNan[:,1],c='r')

                
                
                plt.subplot(1,3,2)
                #plt.title('diff')
                #plt.pcolormesh(diff,cmap=cmap)
                #plt.colorbar(orientation='horizontal')
                plt.title('scatter diff')
                plt.xlabel('left')
                plt.ylabel('right')
                plt.scatter(leftOwiDS[key],rightOwiDS[key])
                
                plt.subplot(1,3,3)
                plt.title('right')
                plt.pcolormesh(rightOwiDS[key],vmin=vmin,vmax=vmax,cmap=cmap)
                plt.colorbar(orientation='horizontal')
                #xyRightNan= np.argwhere(rightNan)
                #plt.scatter(xyRightNan[:,0],xyRightNan[:,1],c='r')
                
                plt.show()
                plt.close()
            
            

differSafes=list(set(differSafes))
differKeys=list(set())

display(Markdown('### Found %d/%d SAFES difference:' % (len(differSafes), len(safes)  )))
for safe in differSafes:
    display(Markdown('%s' % safe))

display(Markdown('### differences where found on:' ))
for key in differKeys:
    display(Markdown('%s' % key))
            

S1A_IW_GRDH_1SDV_20200227T205737_20200227T205802_031443_039EBF_D148.SAFE

s1a-iw-owi-xx-20200227t205737-20200227t205802-031443-039EBF.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 395 (max 3.599999e+00)


S1A_IW_GRDH_1SDV_20190920T222107_20190920T222132_029111_034DF5_8846.SAFE

s1a-iw-owi-xx-20190920t222107-20190920t222132-029111-034DF5.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 5377 (max 5.800001e+00)


S1A_IW_GRDH_1SDV_20191109T121256_20191109T121321_029834_0366F3_F7BB.SAFE

s1a-iw-owi-xx-20191109t121256-20191109t121321-029834-0366F3.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 96 (max 8.800000e+00)


S1A_EW_GRDM_1SDV_20190928T084309_20190928T084413_029219_0351A9_7130.SAFE

s1a-ew-owi-xx-20190928t084309-20190928t084413-029219-0351A9.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 74725 (max 4.900001e+00)


S1A_IW_GRDH_1SDV_20191018T002429_20191018T002454_029506_035B80_8A3D.SAFE

s1a-iw-owi-xx-20191018t002429-20191018t002454-029506-035B80.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 4430 (max 1.800000e+00)


S1A_IW_GRDH_1SDV_20191026T080555_20191026T080620_029627_035FAD_1D0A.SAFE

s1a-iw-owi-xx-20191026t080555-20191026t080620-029627-035FAD.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 10625 (max 2.299999e+00)


S1A_IW_GRDH_1SDV_20191109T121206_20191109T121231_029834_0366F3_EE38.SAFE

s1a-iw-owi-xx-20191109t121206-20191109t121231-029834-0366F3.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 24362 (max 6.300001e+00)


S1A_IW_GRDH_1SDV_20191002T080530_20191002T080555_029277_0353A1_7A66.SAFE

s1a-iw-owi-xx-20191002t080530-20191002t080555-029277-0353A1.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 24603 (max 5.100002e+00)


S1A_IW_GRDH_1SDV_20190831T105329_20190831T105358_028812_03439C_AA8D.SAFE

s1a-iw-owi-xx-20190831t105329-20190831t105358-028812-03439C.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 19900 (max 5.900001e+00)


S1A_EW_GRDM_1SDV_20191107T194046_20191107T194146_029809_036628_A8AE.SAFE

s1a-ew-owi-xx-20191107t194046-20191107t194146-029809-036628.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 61448 (max 6.800000e+00)


S1A_IW_GRDH_1SDV_20191018T002519_20191018T002544_029506_035B80_9E1E.SAFE

s1a-iw-owi-xx-20191018t002519-20191018t002544-029506-035B80.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 3069 (max 5.800000e+00)


S1A_IW_GRDH_1SDV_20190903T111746_20190903T111811_028856_03451E_1715.SAFE

s1a-iw-owi-xx-20190903t111746-20190903t111811-028856-03451E.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 24068 (max 1.010000e+01)


S1A_EW_GRDM_1SDV_20190930T210103_20190930T210142_029256_0352F9_D0D6.SAFE

s1a-ew-owi-xx-20190930t210103-20190930t210142-029256-0352F9.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 28328 (max 4.099999e+00)


S1A_IW_GRDH_1SDV_20191201T212303_20191201T212332_030160_037255_B37A.SAFE

s1a-iw-owi-xx-20191201t212303-20191201t212332-030160-037255.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 38402 (max 6.700001e+00)


S1A_IW_GRDH_1SDV_20190809T100201_20190809T100226_028491_033873_567E.SAFE

s1a-iw-owi-xx-20190809t100201-20190809t100226-028491-033873.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 9926 (max 7.500001e+00)


S1A_EW_GRDM_1SDV_20200316T020222_20200316T020322_031694_03A788_5E71.SAFE

s1a-ew-owi-xx-20200316t020222-20200316t020322-031694-03A788.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 79431 (max 8.799999e+00)


S1A_IW_GRDH_1SDV_20190920T130638_20190920T130703_029105_034DBE_AE23.SAFE

s1a-iw-owi-xx-20190920t130638-20190920t130703-029105-034DBE.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 2950 (max 6.900000e+00)


S1A_IW_GRDH_1SDV_20190906T224121_20190906T224146_028907_0346EC_7B60.SAFE

s1a-iw-owi-xx-20190906t224121-20190906t224146-028907-0346EC.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 26546 (max 5.500000e+00)


S1A_EW_GRDM_1SDV_20191207T023226_20191207T023330_030236_0374DF_2EDC.SAFE

s1a-ew-owi-xx-20191207t023226-20191207t023330-030236-0374DF.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 77127 (max 1.350000e+01)


S1A_IW_GRDH_1SDV_20200214T021137_20200214T021202_031242_0397D1_EE31.SAFE

s1a-iw-owi-xx-20200214t021137-20200214t021202-031242-0397D1.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 1952 (max 6.600000e+00)


S1A_EW_GRDM_1SDV_20191107T193942_20191107T194046_029809_036628_0BD5.SAFE

s1a-ew-owi-xx-20191107t193942-20191107t194046-029809-036628.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 68020 (max 1.240000e+01)


S1A_IW_GRDH_1SDV_20190903T111721_20190903T111746_028856_03451E_CFC1.SAFE

s1a-iw-owi-xx-20190903t111721-20190903t111746-028856-03451E.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 27449 (max 7.900001e+00)


S1A_IW_GRDH_1SDV_20190914T231126_20190914T231151_029024_034AF8_F791.SAFE

s1a-iw-owi-xx-20190914t231126-20190914t231151-029024-034AF8.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 2057 (max 5.700001e+00)


S1A_IW_GRDH_1SDV_20191201T212332_20191201T212357_030160_037255_CF42.SAFE

s1a-iw-owi-xx-20191201t212332-20191201t212357-030160-037255.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 8319 (max 6.000000e+00)


S1A_IW_GRDH_1SDV_20190830T224548_20190830T224613_028805_03435D_D5D9.SAFE

s1a-iw-owi-xx-20190830t224548-20190830t224613-028805-03435D.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 23 (max 3.000000e+00)

None/s1a-iw-owi-xx-20190809t100111-20190809t100136-028491-033873.nc does not exists. skip

S1A_IW_GRDH_1SDV_20190902T231101_20190902T231126_028849_0344E3_ECBD.SAFE

s1a-iw-owi-xx-20190902t231101-20190902t231126-028849-0344E3.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 910 (max 5.900001e+00)


S1A_EW_GRDM_1SDV_20191231T144520_20191231T144620_030593_03813D_6EF0.SAFE

s1a-ew-owi-xx-20191231t144520-20191231t144620-030593-03813D.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 63229 (max 8.500000e+00)


S1A_EW_GRDM_1SDV_20191011T205334_20191011T205434_029416_03587A_2C49.SAFE

s1a-ew-owi-xx-20191011t205334-20191011t205434-029416-03587A.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 48707 (max 9.599998e+00)


S1A_IW_GRDH_1SDV_20191208T152820_20191208T152844_030258_03759D_5C8A.SAFE

s1a-iw-owi-xx-20191208t152820-20191208t152844-030258-03759D.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 3151 (max 4.600000e+00)


S1A_IW_GRDH_1SDV_20191121T220435_20191121T220500_030015_036D35_1798.SAFE

s1a-iw-owi-xx-20191121t220435-20191121t220500-030015-036D35.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 14433 (max 8.699999e+00)


S1A_EW_GRDM_1SDV_20191207T023330_20191207T023357_030236_0374DF_2C83.SAFE

s1a-ew-owi-xx-20191207t023330-20191207t023357-030236-0374DF.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 25510 (max 8.799999e+00)


S1A_IW_GRDH_1SDV_20191126T071356_20191126T071421_030078_036F6F_8026.SAFE

s1a-iw-owi-xx-20191126t071356-20191126t071421-030078-036F6F.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 16950 (max 8.400000e+00)


S1A_EW_GRDM_1SDV_20200124T144415_20200124T144519_030943_038D72_E978.SAFE

s1a-ew-owi-xx-20200124t144415-20200124t144519-030943-038D72.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 37033 (max 7.200000e+00)


S1A_IW_GRDH_1SDV_20190827T221951_20190827T222016_028761_0341DA_AB8C.SAFE

s1a-iw-owi-xx-20190827t221951-20190827t222016-028761-0341DA.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 4239 (max 2.000000e+00)


S1A_IW_GRDH_1SDV_20190920T130613_20190920T130638_029105_034DBE_CF6F.SAFE

s1a-iw-owi-xx-20190920t130613-20190920t130638-029105-034DBE.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 24613 (max 8.400000e+00)


S1A_IW_GRDH_1SDV_20191126T071446_20191126T071511_030078_036F6F_7847.SAFE

s1a-iw-owi-xx-20191126t071446-20191126t071511-030078-036F6F.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 47 (max 4.299999e+00)


S1A_IW_GRDH_1SDV_20190902T231216_20190902T231241_028849_0344E3_FF27.SAFE

s1a-iw-owi-xx-20190902t231216-20190902t231241-028849-0344E3.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 32993 (max 6.900000e+00)


S1A_IW_GRDH_1SDV_20191018T002454_20191018T002519_029506_035B80_35C9.SAFE

s1a-iw-owi-xx-20191018t002454-20191018t002519-029506-035B80.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 460 (max 1.900000e+00)


S1A_EW_GRDM_1SDV_20191022T201542_20191022T201648_029576_035DF5_6977.SAFE

s1a-ew-owi-xx-20191022t201542-20191022t201648-029576-035DF5.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 7467 (max 7.900000e+00)


S1A_IW_GRDH_1SDV_20200214T021112_20200214T021137_031242_0397D1_9AC2.SAFE

s1a-iw-owi-xx-20200214t021112-20200214t021137-031242-0397D1.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 5300 (max 6.200001e+00)


S1A_IW_GRDH_1SDV_20190809T100251_20190809T100316_028491_033873_6FCD.SAFE

s1a-iw-owi-xx-20190809t100251-20190809t100316-028491-033873.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 771 (max 8.200001e+00)


S1A_EW_GRDM_1SDV_20191008T203144_20191008T203250_029372_0356ED_B6FA.SAFE

s1a-ew-owi-xx-20191008t203144-20191008t203250-029372-0356ED.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 40268 (max 1.080000e+01)


S1A_IW_GRDH_1SDV_20191026T080620_20191026T080645_029627_035FAD_5709.SAFE

s1a-iw-owi-xx-20191026t080620-20191026t080645-029627-035FAD.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 6429 (max 5.100000e+00)


S1A_IW_GRDH_1SDV_20190929T124248_20190929T124315_029236_03524A_8F3E.SAFE

s1a-iw-owi-xx-20190929t124248-20190929t124315-029236-03524A.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 1859 (max 1.020000e+01)


S1A_IW_GRDH_1SDV_20190831T105358_20190831T105423_028812_03439C_2C98.SAFE

s1a-iw-owi-xx-20190831t105358-20190831t105423-028812-03439C.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 1782 (max 5.400000e+00)


S1A_IW_GRDH_1SDV_20191002T080415_20191002T080440_029277_0353A1_4C50.SAFE

s1a-iw-owi-xx-20191002t080415-20191002t080440-029277-0353A1.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 33516 (max 9.500001e+00)


S1A_IW_GRDH_1SDV_20191109T121231_20191109T121256_029834_0366F3_FE29.SAFE

s1a-iw-owi-xx-20191109t121231-20191109t121256-029834-0366F3.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 54 (max 3.500000e+00)


S1A_IW_GRDH_1SDV_20190809T100226_20190809T100251_028491_033873_1218.SAFE

s1a-iw-owi-xx-20190809t100226-20190809t100251-028491-033873.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 282 (max 5.500000e+00)


S1A_IW_GRDH_1SDV_20190920T130548_20190920T130613_029105_034DBE_1CE5.SAFE

s1a-iw-owi-xx-20190920t130548-20190920t130613-029105-034DBE.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 15158 (max 9.900000e+00)


S1A_IW_GRDH_1SDV_20190914T231241_20190914T231306_029024_034AF8_A7B8.SAFE

s1a-iw-owi-xx-20190914t231241-20190914t231306-029024-034AF8.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 15631 (max 5.100000e+00)


S1A_IW_GRDH_1SDV_20190903T111811_20190903T111836_028856_03451E_0EDA.SAFE

s1a-iw-owi-xx-20190903t111811-20190903t111836-028856-03451E.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 13325 (max 8.400001e+00)


S1A_IW_GRDH_1SDV_20190906T224146_20190906T224211_028907_0346EC_ED4A.SAFE

s1a-iw-owi-xx-20190906t224146-20190906t224211-028907-0346EC.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 24941 (max 7.200001e+00)


S1A_IW_GRDH_1SDV_20190906T224236_20190906T224301_028907_0346EC_AD47.SAFE

s1a-iw-owi-xx-20190906t224236-20190906t224301-028907-0346EC.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 34018 (max 5.000000e+00)


S1A_IW_GRDH_1SDV_20190902T231241_20190902T231306_028849_0344E3_5A2D.SAFE

s1a-iw-owi-xx-20190902t231241-20190902t231306-028849-0344E3.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 6762 (max 7.900000e+00)


S1A_IW_GRDH_1SDV_20190914T231151_20190914T231216_029024_034AF8_0FBA.SAFE

s1a-iw-owi-xx-20190914t231151-20190914t231216-029024-034AF8.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 12553 (max 3.900000e+00)


S1A_IW_GRDH_1SDV_20190929T124223_20190929T124248_029236_03524A_D3F6.SAFE

s1a-iw-owi-xx-20190929t124223-20190929t124248-029236-03524A.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 62 (max 1.130000e+01)


S1A_IW_GRDH_1SDV_20190827T221901_20190827T221926_028761_0341DA_6545.SAFE

s1a-iw-owi-xx-20190827t221901-20190827t221926-028761-0341DA.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 275 (max 7.800001e+00)


S1A_IW_GRDH_1SDV_20190827T221926_20190827T221951_028761_0341DA_887D.SAFE

s1a-iw-owi-xx-20190827t221926-20190827t221951-028761-0341DA.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 6642 (max 5.900001e+00)


S1A_IW_GRDH_1SDV_20190902T231151_20190902T231216_028849_0344E3_1356.SAFE

s1a-iw-owi-xx-20190902t231151-20190902t231216-028849-0344E3.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 33126 (max 5.400000e+00)


S1A_IW_GRDH_1SDV_20190920T222017_20190920T222042_029111_034DF5_E344.SAFE

s1a-iw-owi-xx-20190920t222017-20190920t222042-029111-034DF5.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 2201 (max 5.299999e+00)


S1A_IW_GRDH_1SDV_20190831T105423_20190831T105448_028812_03439C_69F0.SAFE

s1a-iw-owi-xx-20190831t105423-20190831t105448-028812-03439C.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 46 (max 3.100000e+00)


S1A_IW_GRDH_1SDV_20190906T224211_20190906T224236_028907_0346EC_F512.SAFE

s1a-iw-owi-xx-20190906t224211-20190906t224236-028907-0346EC.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 33668 (max 7.699999e+00)


S1A_IW_GRDH_1SDV_20190827T095139_20190827T095204_028753_03418D_CC8F.SAFE

s1a-iw-owi-xx-20190827t095139-20190827t095204-028753-03418D.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 25 (max 2.000000e+00)


S1A_EW_GRDM_1SDV_20191008T203040_20191008T203144_029372_0356ED_5217.SAFE

s1a-ew-owi-xx-20191008t203040-20191008t203144-029372-0356ED.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 33858 (max 1.230000e+01)


S1A_IW_GRDH_1SDV_20190902T231126_20190902T231151_028849_0344E3_16DB.SAFE

s1a-iw-owi-xx-20190902t231126-20190902t231151-028849-0344E3.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 15139 (max 5.799999e+00)


S1A_EW_GRDM_1SDV_20190930T210003_20190930T210103_029256_0352F9_A49C.SAFE

s1a-ew-owi-xx-20190930t210003-20190930t210103-029256-0352F9.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 47519 (max 8.400001e+00)


S1A_IW_GRDH_1SDV_20191026T080645_20191026T080712_029627_035FAD_7091.SAFE

s1a-iw-owi-xx-20191026t080645-20191026t080712-029627-035FAD.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 13463 (max 4.900002e+00)


S1A_EW_GRDM_1SDV_20191022T201438_20191022T201542_029576_035DF5_5D08.SAFE

s1a-ew-owi-xx-20191022t201438-20191022t201542-029576-035DF5.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 50647 (max 3.599999e+00)


S1A_EW_GRDM_1SDV_20190904T133932_20190904T134036_028872_0345B8_103C.SAFE

s1a-ew-owi-xx-20190904t133932-20190904t134036-028872-0345B8.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 51345 (max 5.299999e+00)


S1A_EW_GRDM_1SDV_20191011T205230_20191011T205334_029416_03587A_64BF.SAFE

s1a-ew-owi-xx-20191011t205230-20191011t205334-029416-03587A.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 30757 (max 1.240000e+01)


S1A_EW_GRDM_1SDV_20191105T195834_20191105T195916_029780_03651B_4A35.SAFE

s1a-ew-owi-xx-20191105t195834-20191105t195916-029780-03651B.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 52023 (max 7.300000e+00)


S1A_EW_GRDM_1SDV_20200124T144619_20200124T144720_030943_038D72_99BF.SAFE

s1a-ew-owi-xx-20200124t144619-20200124t144720-030943-038D72.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 59060 (max 7.799999e+00)


S1A_IW_GRDH_1SDV_20190920T221952_20190920T222017_029111_034DF5_52D2.SAFE

s1a-iw-owi-xx-20190920t221952-20190920t222017-029111-034DF5.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 18 (max 3.900000e+00)


S1A_IW_GRDH_1SDV_20190827T095110_20190827T095139_028753_03418D_8A8C.SAFE

s1a-iw-owi-xx-20190827t095110-20190827t095139-028753-03418D.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 8941 (max 9.200000e+00)


S1A_EW_GRDM_1SDV_20191105T195730_20191105T195834_029780_03651B_A6F0.SAFE

s1a-ew-owi-xx-20191105t195730-20191105t195834-029780-03651B.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 78027 (max 1.420000e+01)


S1A_IW_GRDH_1SDV_20190914T231216_20190914T231241_029024_034AF8_A800.SAFE

s1a-iw-owi-xx-20190914t231216-20190914t231241-029024-034AF8.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 25771 (max 5.400000e+00)


S1A_EW_GRDM_1SDV_20200124T144519_20200124T144619_030943_038D72_4882.SAFE

s1a-ew-owi-xx-20200124t144519-20200124t144619-030943-038D72.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 81096 (max 8.100000e+00)


S1A_IW_GRDH_1SDV_20191121T220500_20191121T220530_030015_036D35_4A53.SAFE

s1a-iw-owi-xx-20191121t220500-20191121t220530-030015-036D35.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 32446 (max 7.300000e+00)


S1A_IW_GRDH_1SDV_20190920T130703_20190920T130734_029105_034DBE_1EDB.SAFE

s1a-iw-owi-xx-20190920t130703-20190920t130734-029105-034DBE.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 62 (max 4.999999e+00)


S1A_EW_GRDM_1SDV_20200316T020118_20200316T020222_031694_03A788_8E90.SAFE

s1a-ew-owi-xx-20200316t020118-20200316t020222-031694-03A788.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 70724 (max 1.010000e+01)


S1A_IW_GRDH_1SDV_20200227T205712_20200227T205737_031443_039EBF_2CBD.SAFE

s1a-iw-owi-xx-20200227t205712-20200227t205737-031443-039EBF.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 10268 (max 5.500000e+00)


S1A_IW_GRDH_1SDV_20190809T100136_20190809T100201_028491_033873_6EE4.SAFE

s1a-iw-owi-xx-20190809t100136-20190809t100201-028491-033873.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 16937 (max 6.500000e+00)


S1A_IW_GRDH_1SDV_20190903T111836_20190903T111901_028856_03451E_9D46.SAFE

s1a-iw-owi-xx-20190903t111836-20190903t111901-028856-03451E.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 725 (max 5.200001e+00)


S1A_IW_GRDH_1SDV_20200214T021047_20200214T021112_031242_0397D1_F4B3.SAFE

s1a-iw-owi-xx-20200214t021047-20200214t021112-031242-0397D1.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 654 (max 3.700001e+00)


S1A_IW_GRDH_1SDV_20191109T121137_20191109T121206_029834_0366F3_DC40.SAFE

s1a-iw-owi-xx-20191109t121137-20191109t121206-029834-0366F3.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 24321 (max 4.300001e+00)


S1A_IW_GRDH_1SDV_20191126T071421_20191126T071446_030078_036F6F_DBB5.SAFE

s1a-iw-owi-xx-20191126t071421-20191126t071446-030078-036F6F.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 5545 (max 7.100000e+00)


S1A_EW_GRDM_1SDV_20191231T144416_20191231T144520_030593_03813D_8483.SAFE

s1a-ew-owi-xx-20191231t144416-20191231t144520-030593-03813D.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 41570 (max 9.500000e+00)


S1A_IW_GRDH_1SDV_20190920T222042_20190920T222107_029111_034DF5_854E.SAFE

s1a-iw-owi-xx-20190920t222042-20190920t222107-029111-034DF5.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 9838 (max 5.900000e+00)


S1A_EW_GRDM_1SDV_20190904T134036_20190904T134121_028872_0345B8_CA9D.SAFE

s1a-ew-owi-xx-20190904t134036-20190904t134121-028872-0345B8.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 33864 (max 7.699999e+00)


S1A_IW_GRDH_1SDV_20191002T080505_20191002T080530_029277_0353A1_6965.SAFE

s1a-iw-owi-xx-20191002t080505-20191002t080530-029277-0353A1.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 29106 (max 5.600000e+00)


S1A_IW_GRDH_1SDV_20191002T080440_20191002T080505_029277_0353A1_E866.SAFE

s1a-iw-owi-xx-20191002t080440-20191002t080505-029277-0353A1.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 39181 (max 7.300001e+00)


S1A_IW_GRDH_1SDV_20190830T224613_20190830T224638_028805_03435D_D6F7.SAFE

s1a-iw-owi-xx-20190830t224613-20190830t224638-028805-03435D.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 41 (max 3.700001e+00)


S1A_IW_GRDH_1SDV_20190830T224638_20190830T224705_028805_03435D_B3DE.SAFE

s1a-iw-owi-xx-20190830t224638-20190830t224705-028805-03435D.nc

owiInversionTables_UV/owiWindSpeed_Tab_dualpol_2steps

Nan count. Left : 0 , Right : 0

Diff count: 27822 (max 6.500000e+00)

Found 93/95 SAFES difference:

S1A_IW_GRDH_1SDV_20200227T205737_20200227T205802_031443_039EBF_D148.SAFE

S1A_IW_GRDH_1SDV_20190920T222107_20190920T222132_029111_034DF5_8846.SAFE

S1A_IW_GRDH_1SDV_20191109T121256_20191109T121321_029834_0366F3_F7BB.SAFE

S1A_EW_GRDM_1SDV_20190928T084309_20190928T084413_029219_0351A9_7130.SAFE

S1A_IW_GRDH_1SDV_20191018T002429_20191018T002454_029506_035B80_8A3D.SAFE

S1A_IW_GRDH_1SDV_20191026T080555_20191026T080620_029627_035FAD_1D0A.SAFE

S1A_IW_GRDH_1SDV_20191109T121206_20191109T121231_029834_0366F3_EE38.SAFE

S1A_IW_GRDH_1SDV_20191002T080530_20191002T080555_029277_0353A1_7A66.SAFE

S1A_IW_GRDH_1SDV_20190831T105329_20190831T105358_028812_03439C_AA8D.SAFE

S1A_EW_GRDM_1SDV_20191107T194046_20191107T194146_029809_036628_A8AE.SAFE

S1A_IW_GRDH_1SDV_20191018T002519_20191018T002544_029506_035B80_9E1E.SAFE

S1A_IW_GRDH_1SDV_20190903T111746_20190903T111811_028856_03451E_1715.SAFE

S1A_EW_GRDM_1SDV_20190930T210103_20190930T210142_029256_0352F9_D0D6.SAFE

S1A_IW_GRDH_1SDV_20191201T212303_20191201T212332_030160_037255_B37A.SAFE

S1A_IW_GRDH_1SDV_20190809T100201_20190809T100226_028491_033873_567E.SAFE

S1A_EW_GRDM_1SDV_20200316T020222_20200316T020322_031694_03A788_5E71.SAFE

S1A_IW_GRDH_1SDV_20190920T130638_20190920T130703_029105_034DBE_AE23.SAFE

S1A_IW_GRDH_1SDV_20190906T224121_20190906T224146_028907_0346EC_7B60.SAFE

S1A_EW_GRDM_1SDV_20191207T023226_20191207T023330_030236_0374DF_2EDC.SAFE

S1A_IW_GRDH_1SDV_20200214T021137_20200214T021202_031242_0397D1_EE31.SAFE

S1A_EW_GRDM_1SDV_20191107T193942_20191107T194046_029809_036628_0BD5.SAFE

S1A_IW_GRDH_1SDV_20190903T111721_20190903T111746_028856_03451E_CFC1.SAFE

S1A_IW_GRDH_1SDV_20190914T231126_20190914T231151_029024_034AF8_F791.SAFE

S1A_IW_GRDH_1SDV_20191201T212332_20191201T212357_030160_037255_CF42.SAFE

S1A_IW_GRDH_1SDV_20190902T231151_20190902T231216_028849_0344E3_1356.SAFE

S1A_IW_GRDH_1SDV_20190902T231101_20190902T231126_028849_0344E3_ECBD.SAFE

S1A_EW_GRDM_1SDV_20191231T144520_20191231T144620_030593_03813D_6EF0.SAFE

S1A_EW_GRDM_1SDV_20191011T205334_20191011T205434_029416_03587A_2C49.SAFE

S1A_IW_GRDH_1SDV_20191208T152820_20191208T152844_030258_03759D_5C8A.SAFE

S1A_IW_GRDH_1SDV_20191121T220435_20191121T220500_030015_036D35_1798.SAFE

S1A_EW_GRDM_1SDV_20191207T023330_20191207T023357_030236_0374DF_2C83.SAFE

S1A_IW_GRDH_1SDV_20191126T071356_20191126T071421_030078_036F6F_8026.SAFE

S1A_EW_GRDM_1SDV_20200124T144415_20200124T144519_030943_038D72_E978.SAFE

S1A_IW_GRDH_1SDV_20190827T221951_20190827T222016_028761_0341DA_AB8C.SAFE

S1A_IW_GRDH_1SDV_20190920T130613_20190920T130638_029105_034DBE_CF6F.SAFE

S1A_IW_GRDH_1SDV_20191126T071446_20191126T071511_030078_036F6F_7847.SAFE

S1A_IW_GRDH_1SDV_20190902T231216_20190902T231241_028849_0344E3_FF27.SAFE

S1A_IW_GRDH_1SDV_20191018T002454_20191018T002519_029506_035B80_35C9.SAFE

S1A_EW_GRDM_1SDV_20191022T201542_20191022T201648_029576_035DF5_6977.SAFE

S1A_IW_GRDH_1SDV_20200214T021112_20200214T021137_031242_0397D1_9AC2.SAFE

S1A_IW_GRDH_1SDV_20190809T100251_20190809T100316_028491_033873_6FCD.SAFE

S1A_EW_GRDM_1SDV_20191008T203144_20191008T203250_029372_0356ED_B6FA.SAFE

S1A_IW_GRDH_1SDV_20191026T080620_20191026T080645_029627_035FAD_5709.SAFE

S1A_IW_GRDH_1SDV_20190929T124248_20190929T124315_029236_03524A_8F3E.SAFE

S1A_IW_GRDH_1SDV_20190831T105358_20190831T105423_028812_03439C_2C98.SAFE

S1A_IW_GRDH_1SDV_20191002T080415_20191002T080440_029277_0353A1_4C50.SAFE

S1A_IW_GRDH_1SDV_20191109T121231_20191109T121256_029834_0366F3_FE29.SAFE

S1A_IW_GRDH_1SDV_20190809T100226_20190809T100251_028491_033873_1218.SAFE

S1A_IW_GRDH_1SDV_20190920T130548_20190920T130613_029105_034DBE_1CE5.SAFE

S1A_IW_GRDH_1SDV_20190830T224638_20190830T224705_028805_03435D_B3DE.SAFE

S1A_IW_GRDH_1SDV_20190914T231241_20190914T231306_029024_034AF8_A7B8.SAFE

S1A_IW_GRDH_1SDV_20190903T111811_20190903T111836_028856_03451E_0EDA.SAFE

S1A_IW_GRDH_1SDV_20190906T224146_20190906T224211_028907_0346EC_ED4A.SAFE

S1A_IW_GRDH_1SDV_20190906T224236_20190906T224301_028907_0346EC_AD47.SAFE

S1A_IW_GRDH_1SDV_20190902T231241_20190902T231306_028849_0344E3_5A2D.SAFE

S1A_IW_GRDH_1SDV_20190920T222042_20190920T222107_029111_034DF5_854E.SAFE

S1A_IW_GRDH_1SDV_20190929T124223_20190929T124248_029236_03524A_D3F6.SAFE

S1A_IW_GRDH_1SDV_20190827T221901_20190827T221926_028761_0341DA_6545.SAFE

S1A_EW_GRDM_1SDV_20190904T134036_20190904T134121_028872_0345B8_CA9D.SAFE

S1A_IW_GRDH_1SDV_20190830T224548_20190830T224613_028805_03435D_D5D9.SAFE

S1A_IW_GRDH_1SDV_20190920T222017_20190920T222042_029111_034DF5_E344.SAFE

S1A_IW_GRDH_1SDV_20190831T105423_20190831T105448_028812_03439C_69F0.SAFE

S1A_IW_GRDH_1SDV_20190906T224211_20190906T224236_028907_0346EC_F512.SAFE

S1A_IW_GRDH_1SDV_20190827T095139_20190827T095204_028753_03418D_CC8F.SAFE

S1A_EW_GRDM_1SDV_20191008T203040_20191008T203144_029372_0356ED_5217.SAFE

S1A_IW_GRDH_1SDV_20190902T231126_20190902T231151_028849_0344E3_16DB.SAFE

S1A_EW_GRDM_1SDV_20190930T210003_20190930T210103_029256_0352F9_A49C.SAFE

S1A_IW_GRDH_1SDV_20191126T071421_20191126T071446_030078_036F6F_DBB5.SAFE

S1A_EW_GRDM_1SDV_20190904T133932_20190904T134036_028872_0345B8_103C.SAFE

S1A_EW_GRDM_1SDV_20191011T205230_20191011T205334_029416_03587A_64BF.SAFE

S1A_EW_GRDM_1SDV_20191105T195834_20191105T195916_029780_03651B_4A35.SAFE

S1A_EW_GRDM_1SDV_20200124T144619_20200124T144720_030943_038D72_99BF.SAFE

S1A_IW_GRDH_1SDV_20190920T221952_20190920T222017_029111_034DF5_52D2.SAFE

S1A_IW_GRDH_1SDV_20190827T095110_20190827T095139_028753_03418D_8A8C.SAFE

S1A_EW_GRDM_1SDV_20191105T195730_20191105T195834_029780_03651B_A6F0.SAFE

S1A_IW_GRDH_1SDV_20190914T231216_20190914T231241_029024_034AF8_A800.SAFE

S1A_EW_GRDM_1SDV_20200124T144519_20200124T144619_030943_038D72_4882.SAFE

S1A_IW_GRDH_1SDV_20191121T220500_20191121T220530_030015_036D35_4A53.SAFE

S1A_IW_GRDH_1SDV_20190920T130703_20190920T130734_029105_034DBE_1EDB.SAFE

S1A_EW_GRDM_1SDV_20200316T020118_20200316T020222_031694_03A788_8E90.SAFE

S1A_IW_GRDH_1SDV_20200227T205712_20200227T205737_031443_039EBF_2CBD.SAFE

S1A_IW_GRDH_1SDV_20190809T100136_20190809T100201_028491_033873_6EE4.SAFE

S1A_IW_GRDH_1SDV_20190903T111836_20190903T111901_028856_03451E_9D46.SAFE

S1A_IW_GRDH_1SDV_20200214T021047_20200214T021112_031242_0397D1_F4B3.SAFE

S1A_IW_GRDH_1SDV_20191109T121137_20191109T121206_029834_0366F3_DC40.SAFE

S1A_IW_GRDH_1SDV_20191026T080645_20191026T080712_029627_035FAD_7091.SAFE

S1A_EW_GRDM_1SDV_20191231T144416_20191231T144520_030593_03813D_8483.SAFE

S1A_IW_GRDH_1SDV_20190914T231151_20190914T231216_029024_034AF8_0FBA.SAFE

S1A_IW_GRDH_1SDV_20190827T221926_20190827T221951_028761_0341DA_887D.SAFE

S1A_IW_GRDH_1SDV_20191002T080505_20191002T080530_029277_0353A1_6965.SAFE

S1A_IW_GRDH_1SDV_20191002T080440_20191002T080505_029277_0353A1_E866.SAFE

S1A_IW_GRDH_1SDV_20190830T224613_20190830T224638_028805_03435D_D6F7.SAFE

S1A_EW_GRDM_1SDV_20191022T201438_20191022T201542_029576_035DF5_5D08.SAFE

differences where found on: