Are there any news regarding sen2like plugin?
In SNAP github the page seems empty. https://github.com/senbox-org/sen2like
Is there any deadline in the pipeline? Or is it already integrated in SNAP 8?
Are there any news regarding sen2like plugin?
In SNAP github the page seems empty. https://github.com/senbox-org/sen2like
Is there any deadline in the pipeline? Or is it already integrated in SNAP 8?
Hello,
No, sen2like plugin itβs not already integrated in SNAP 8.
But the corresponding SNAP github page is no longer empty:
Hello
I am using sen2like processor v 3.1
I am trying to run it (for some tests) for a single tile only (31TCJ). The inputs are three L8 L1C products from path 198 and rows 29, 30 and 31, and one S2 L1C product (of the same 31TCJ tile of course). I am using a S2 L2A product as reference ( in my tests I also used a S2 L1C product, itβs the same behavior)
I am having some issues with the first block doStitching (and all the others which are using mgrs_framing.reframe function). It does exit with the following error:
user@pc:/usr/local/sen2like# python sen2like.py single-tile-mode 31TCJ --conf β/data/config.iniβ --start-date 2020-09-01 --end-date 2020-10-28 --wd β/data/workingdirβ --refImage β/data/References/S2A_MSIL2A_20201017T105041_N0214_R051_T31TCJ_20201017T134105.SAFE/GRANULE/L2A_T31TCJ_A027790_20201017T105446/IMG_DATA/R10m/T31TCJ_20201017T105041_B04_10m.jp2β
[INFO ] 2021-02-04 15:23:55 - reader - LandsatMTL Class
[INFO ] 2021-02-04 15:23:55 - reader - Product: /data/PRODUCTS_light/Landsat8/198/30/LC08_L1TP_198030_20200917_20201006_01_T1
[INFO ] 2021-02-04 15:23:55 - landsat - β Landsat_id : LC81980302020261LGN00
[INFO ] 2021-02-04 15:23:55 - landsat - β DN configuration
[INFO ] 2021-02-04 15:23:55 - landsat - DN Images found
[INFO ] 2021-02-04 15:23:55 - landsat - β RADIANCE configuration
[WARNING ] 2021-02-04 15:23:55 - landsat - WARNING No Radiance Images
[INFO ] 2021-02-04 15:23:55 - landsat - β RHO TOA configuration
[WARNING ] 2021-02-04 15:23:55 - landsat - WARNING No TOA Images
[INFO ] 2021-02-04 15:23:55 - landsat - SAT_AZ , SAT_ZENITH, SUN_AZ, SUN_ZENITH
[INFO ] 2021-02-04 15:23:55 - landsat - UNIT = DEGREES (scale: x100) :
[INFO ] 2021-02-04 15:23:55 - landsat - /data/workingdir/20134/LC08_L1TP_198030_20200917_20201006_01_T1/tie_points.tif
[INFO ] 2021-02-04 15:23:55 - landsat - Generating validity and nodata masks from BQA band
[INFO ] 2021-02-04 15:23:55 - image_file - Written: /data/workingdir/20134/LC08_L1TP_198030_20200917_20201006_01_T1/valid_pixel_mask.tif
[INFO ] 2021-02-04 15:23:57 - image_file - Written: /data/workingdir/20134/LC08_L1TP_198030_20200917_20201006_01_T1/nodata_pixel_mask.tif
[INFO ] 2021-02-04 15:23:57 - S2L_Stitching - Product found for stitching /data/PRODUCTS_light/Landsat8/198/29/LC08_L1TP_198029_20200917_20201006_01_T1:
[INFO ] 2021-02-04 15:23:57 - reader - LandsatMTL Class
[INFO ] 2021-02-04 15:23:57 - reader - Product: /data/PRODUCTS_light/Landsat8/198/29/LC08_L1TP_198029_20200917_20201006_01_T1
[INFO ] 2021-02-04 15:23:57 - landsat - β Landsat_id : LC81980292020261LGN00
[INFO ] 2021-02-04 15:23:57 - landsat - β DN configuration
[INFO ] 2021-02-04 15:23:57 - landsat - DN Images found
[INFO ] 2021-02-04 15:23:57 - landsat - β RADIANCE configuration
[WARNING ] 2021-02-04 15:23:57 - landsat - WARNING No Radiance Images
[INFO ] 2021-02-04 15:23:57 - landsat - β RHO TOA configuration
[WARNING ] 2021-02-04 15:23:57 - landsat - WARNING No TOA Images
_product.mtl.mask_filename = /data/workingdir/20134/LC08_L1TP_198030_20200917_20201006_01_T1/valid_pixel_mask.tif
Stitching reframe, margin = 50
image = <core.image_file.S2L_ImageFile object at 0x7f11ff23c518>
tilecode = 31TCJ
roi = index TILE_ID EPSG UTM_WKT MGRS_REF LL_WKT
0 29231 31TCJ 32631 MULTIPOLYGON(((300000 4900020,300000 4790220,4β¦ 44.225784263 0.49593622377 44.246370915 1.7475β¦ MULTIPOLYGON(((0.495928592915159 44.2259641542β¦
target_epsg = 32631
target_srs = PROJCS[βWGS 84 / UTM zone 31Nβ,
GEOGCS[βWGS 84β,
DATUM[βWGS_1984β,
SPHEROID[βWGS 84β,6378137,298.257223563,
AUTHORITY[βEPSGβ,β7030β]],
AUTHORITY[βEPSGβ,β6326β]],
PRIMEM[βGreenwichβ,0,
AUTHORITY[βEPSGβ,β8901β]],
UNIT[βdegreeβ,0.0174532925199433,
AUTHORITY[βEPSGβ,β9122β]],
AUTHORITY[βEPSGβ,β4326β]],
PROJECTION[βTransverse_Mercatorβ],
PARAMETER[βlatitude_of_originβ,0],
PARAMETER[βcentral_meridianβ,3],
PARAMETER[βscale_factorβ,0.9996],
PARAMETER[βfalse_eastingβ,500000],
PARAMETER[βfalse_northingβ,0],
UNIT[βmetreβ,1,
AUTHORITY[βEPSGβ,β9001β]],
AXIS[βEastingβ,EAST],
AXIS[βNorthingβ,NORTH],
AUTHORITY[βEPSGβ,β32631β]]
image.projection =
image_srs =
image_srs.GetUTMZone() = 0 | target_srs.GetUTMZone() = 31
Traceback (most recent call last):
File βsen2like.pyβ, line 430, in
sys.exit(main(with_multiprocess_support=True))
File βsen2like.pyβ, line 425, in main
start_process(tile, _products, args, start_date, end_date)
File βsen2like.pyβ, line 252, in start_process
process(_product, args.bands)
File βsen2like.pyβ, line 292, in process
generic_process_step(block_name, product, βpreprocessβ)
File βsen2like.pyβ, line 78, in generic_process_step
return processus(pd)
File β/usr/local/sen2like/s2l_processes/S2L_Stitching.pyβ, line 166, in preprocess
product_validity_masks.append(self.reframe(S2L_ImageFile(_product.mtl.mask_filename), _product))
File β/usr/local/sen2like/s2l_processes/S2L_Stitching.pyβ, line 105, in reframe
order=0, margin=margin, dtype=dtype, compute_offsets=True)
File β/usr/local/sen2like/grids/mgrs_framing.pyβ, line 91, in reframe
raise BaseException(msg)
BaseException: image epsg and target epsg differ: None / 32631. Impossible to reframe input image.
I added some debug messages in the source code, just to try to understand whatβs happening. What I noticed is that in the file
/data/workingdir/20134/LC08_L1TP_198030_20200917_20201006_01_T1/valid_pixel_mask.tif
there is no βCoordinate Systemβ (UTM is 31N) added at the file time creation, thus later , in mgrs_framing.reframe function, line:
image_srs = osr.SpatialReference(wkt=image.projection)
the image_srs is not well created, because the UTM is missing from the βvalid_pixel_mask.tifβ file. I was able to check this by using gdalinfo over this file, here is the result:
user@pc:/usr/local/sen2like# gdalinfo /data/workingdir/19805/LC08_L1TP_198030_20200917_20201006_01_T1/valid_pixel_mask.tif
Driver: GTiff/GeoTIFF
Files: /data/workingdir/19805/LC08_L1TP_198030_20200917_20201006_01_T1/valid_pixel_mask.tif
Size is 2621, 2657
Origin = (0.000000000000000,0.000000000000000)
Pixel Size = (1.000000000000000,1.000000000000000)
Image Structure Metadata:
COMPRESSION=LZW
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 0.0000000, 0.0000000)
Lower Left ( 0.000, 2657.000)
Upper Right ( 2621.000, 0.000)
Lower Right ( 2621.000, 2657.000)
Center ( 1310.500, 1328.500)
Band 1 Block=2621x3 Type=Byte, ColorInterp=Gray
I am lost⦠Do you know what I am doing wrong?
Thank you !
Dear agrosu1978,
we should be able to provide you a more detailed answer by next week. Meanwhile you may try to look a the geoinformation of your BQA file within your Landsat-8 product in input. Try to check it with gdalinfo.
Cheers
Sen2like team
Hello
Thank you for your fast answer.
I am aware about the BQA file, at first I also thought that this file is not containing the UTM zone, but after I performed a gdalinfo over it, I saw that the file looks pretty ok. Here is the output:
(sen2like) root@65938ac08bde:/usr/local/sen2like# gdalinfo /data/PRODUCTS_light/Landsat8/198/30/LC08_L1TP_198030_20200917_20201006_01_T1/LC08_L1TP_198030_20200917_20201006_01_T1_BQA.TIF
Driver: GTiff/GeoTIFF
Files: /data/PRODUCTS_light/Landsat8/198/30/LC08_L1TP_198030_20200917_20201006_01_T1/LC08_L1TP_198030_20200917_20201006_01_T1_BQA.TIF
/data/PRODUCTS_light/Landsat8/198/30/LC08_L1TP_198030_20200917_20201006_01_T1/LC08_L1TP_198030_20200917_20201006_01_T1_BQA.TIF.ovr
/data/PRODUCTS_light/Landsat8/198/30/LC08_L1TP_198030_20200917_20201006_01_T1/LC08_L1TP_198030_20200917_20201006_01_T1_MTL.txt
Size is 7861, 7971
Coordinate System is:
PROJCRS[βWGS 84 / UTM zone 31Nβ,
BASEGEOGCRS[βWGS 84β,
DATUM[βWorld Geodetic System 1984β,
ELLIPSOID[βWGS 84β,6378137,298.257223563,
LENGTHUNIT[βmetreβ,1]]],
PRIMEM[βGreenwichβ,0,
ANGLEUNIT[βdegreeβ,0.0174532925199433]],
ID[βEPSGβ,4326]],
CONVERSION[βUTM zone 31Nβ,
METHOD[βTransverse Mercatorβ,
ID[βEPSGβ,9807]],
PARAMETER[βLatitude of natural originβ,0,
ANGLEUNIT[βdegreeβ,0.0174532925199433],
ID[βEPSGβ,8801]],
PARAMETER[βLongitude of natural originβ,3,
ANGLEUNIT[βdegreeβ,0.0174532925199433],
ID[βEPSGβ,8802]],
PARAMETER[βScale factor at natural originβ,0.9996,
SCALEUNIT[βunityβ,1],
ID[βEPSGβ,8805]],
PARAMETER[βFalse eastingβ,500000,
LENGTHUNIT[βmetreβ,1],
ID[βEPSGβ,8806]],
PARAMETER[βFalse northingβ,0,
LENGTHUNIT[βmetreβ,1],
ID[βEPSGβ,8807]]],
CS[Cartesian,2],
AXIS["(E)",east,
ORDER[1],
LENGTHUNIT[βmetreβ,1]],
AXIS["(N)",north,
ORDER[2],
LENGTHUNIT[βmetreβ,1]],
USAGE[
SCOPE[βunknownβ],
AREA[βWorld - N hemisphere - 0Β°E to 6Β°E - by countryβ],
BBOX[0,0,84,6]],
ID[βEPSGβ,32631]]
Data axis to CRS axis mapping: 1,2
Origin = (282885.000000000000000,4901115.000000000000000)
Pixel Size = (30.000000000000000,-30.000000000000000)
Metadata:
AREA_OR_POINT=Point
METADATATYPE=ODL
Image Structure Metadata:
COMPRESSION=DEFLATE
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 282885.000, 4901115.000) ( 0d16β53.11"E, 44d13β51.30"N)
Lower Left ( 282885.000, 4661985.000) ( 0d22β30.73"E, 42d 4β47.75"N)
Upper Right ( 518715.000, 4901115.000) ( 3d14β 4.08"E, 44d15β46.93"N)
Lower Right ( 518715.000, 4661985.000) ( 3d13β34.92"E, 42d 6β35.05"N)
Center ( 400800.000, 4781550.000) ( 1d46β45.77"E, 43d10β48.75"N)
Band 1 Block=512x512 Type=UInt16, ColorInterp=Gray
Overviews: 2621x2657, 874x886, 292x296, 98x99
Until our technical team can look into more details next week, could you please provide the details of your configuration? Operating system, python, anaconda, gdal versions? Origin of your inputs files? Filesystem Permissions?
Cheers
Sen2Like team
Dear agrosu1978,
Can you try to move the BQA β.ovrβ file from your input product to another place and rerun ? I think the Sen2like processor is being misled by it.
If confirmed, we will add a fix for that in the next version (first time we meet this case!).
Best regards
Hello
I can confirm that after I removed the βextraβ files, sen2like created well that valid_pixel_mask.tif file (with UTM zone info). And the process runs well now. I was able to run over a time series (2019). When I say βextraβ files I mean all the βovrβ, βIMDβ and βjpgβ files I found in Landsat products. But, these products were downloaded directly from the usgs site, so I canβt say these βextraβ files were in fact β¦βextraβ but they have some plus information.
So, as I understand from you, only the β* BQA *.ovrβ file should be deleted, but I did this in weekend already (as I said, I deleted all the ovrs, IMDs and jpgs files). Sorry I didnβt have time to add this info here meanwhile. Thanks for your support, so yes, it confirms, the βovrβ file misled sen2like. I donβt know about the other files (IMD, jpg)
Kind regards
Hello
I have launched sen2like over a time series (the whole 2019 year, with Landsat 8 L1 level and S2 L1C, products) for a single tile only. The size of the output is ~194GB. I set all the modules to True in config.ini:
[Processing]
doStitching = True
doGeometryKLT = True
doToa = True
doAtmcor = True
doNbar = True
doSbaf = True
doFusion = True
doPackager = True
doPackagerL2H = True
doPackagerL2F = True
As I said, the output looks ok, ndvi may be computed using the raster files from it.
But after that, I tried the following config.ini, using the same input time series:
[Processing]
doStitching = False
doGeometryKLT = False
doToa = False
doAtmcor = True
doNbar = False
doSbaf = True
doFusion = False
doPackager = True
doPackagerL2H = True
doPackagerL2F = True
The output is somewhere around ~11 GB, but all the raster files are ~870 KB . So actually, the output is a collection of empty rasters:
ββ"
Band 1 Block=1024x1024 Type=UInt16, ColorInterp=Gray
Minimum=0.000, Maximum=0.000, Mean=0.000, StdDev=0.000
Overviews: 3926x3986, 1963x1993, 1309x1329, 655x665
Offset: 0, Scale:0.0001
Metadata:
STATISTICS_MAXIMUM=0
STATISTICS_MEAN=0
STATISTICS_MINIMUM=0
STATISTICS_STDDEV=0
STATISTICS_VALID_PERCENT=100`
ββ"
I just want to ask if this is normal, and if the config.ini with True set only for doAtmcor and doSbaf does make any sense?
If you need any other information regarding the scenario I used for launching sen2like, please just let me know.
Thank you so much for any information regarding the second config.ini.
Dear agrosu1978,
I think that the doToa = True is mandatory in your case, as it is the step necessary to convert digital counts to Top Of Atmosphere (TOA) reflectance, required for the atmospheric correction step. I would also recommend at least to set the doGeometryKLT = True, as it is always better to have coregistered pixels when working with time series.
If doFusion = False, then the doPackagerL2F = True is not necessary as the doPackagerL2F is for Landsat-8 fused products (at Sentinel-2 spatial resolution). doPackagerL2H is for harmonised products at native resolution.
Please also have a look to the section 5.2.3 of User Manual and the updated readme on https://github.com/senbox-org/sen2like, concerning the importance of meteorological data when working with this sen2like version:
β(β¦) It is worth noting that the overall accuracy of your final ARD product strongly depends on the accuracy of sen2like auxiliary data. Two categories of auxiliary data are important: the raster reference for geometric corrections and the meteorological data for atmospheric corrections. Regarding atmospheric corrections, one possibility is to use data from the Copernicus Atmosphere Monitoring Service [9]. The Sen2Like team prepared a dedicated CAMS monthly dataset for the Year 2020, available from here [hyperlink available on github]. Please refer to this short description [hyperlink available on github] for additional information. (β¦)β
Have a good day working with sen2like!
Sen2Like team
Thank you a lot, your response has been very helpful.
Hello Sen2Like team
We encountered some problems with sen2like. I will try to be as brief as possible
sen2like version is: sen2like.py 3.1.2
We are launching sen2like like this:
#:python sen2like.py single-tile-mode 36NXF --conf "/data/config.ini" --start-date 2019-01-01 --end-date 2019-12-31 --wd "/data/workingdir"
The config.ini:
[Processing]
doStitching = True
doGeometryKLT = True
doToa = True
doAtmcor = True
doNbar = True
doSbaf = True
doFusion = True
doPackager = True
doPackagerL2H = True
doPackagerL2F = True
The input data:
Problems noticed:
[INFO ] 2021-02-18 15:16:55 - reader - Sentinel2MTL Class
[INFO ] 2021-02-18 15:16:55 - reader - Product: /data/PRODUCTS/Sentinel2/36NXF/S2A_MSIL1C_20190102T075321_N0207_R135_T36NXF_20190102T092351.SAFE
/usr/local/sen2like_312/sen2like/sen2like/sen2like/atmcor/get_s2_angles.py:55: RuntimeWarning: invalid value encountered in true_divide
N = M / CPT
[INFO ] 2021-02-18 15:17:07 - sentinel2 - SAT_AZ , SAT_ZENITH, SUN_AZ, SUN_ZENITH
[INFO ] 2021-02-18 15:17:07 - sentinel2 - UNIT = DEGREES (scale: x100) :
[INFO ] 2021-02-18 15:17:07 - sentinel2 - /data/workingdir/47220/S2A_MSIL1C_20190102T075321_N0207_R135_T36NXF_20190102T092351.SAFE/tie_points.tif
[INFO ] 2021-02-18 15:17:07 - sentinel2 - Generating nodata mask from band B01
[INFO ] 2021-02-18 15:17:08 - image_file - Written: /data/workingdir/47220/S2A_MSIL1C_20190102T075321_N0207_R135_T36NXF_20190102T092351.SAFE/nodata_pixel_mask_B01.\
tif
[INFO ] 2021-02-18 15:17:08 - sentinel2 - Generating validity mask from cloud mask
[INFO ] 2021-02-18 15:17:08 - sentinel2 - Written: /data/workingdir/47220/S2A_MSIL1C_20190102T075321_N0207_R135_T36NXF_20190102T092351.SAFE/valid_pixel_mask.tif
Looking inside the source code, inside the sen2like/atmcor/get_s2_angles.py file, I noticed that there is no protection against division by 0 or NaN for line 55 (matrix division)
N = M / CPT
At line 48 there is a test if value is not nan for A matrix. If for a [i][j] postion is not fulfilled, that CPT[i][j] will remain 0, thus a later division by 0. I put a debug message for CPT when the RuntimeWarning appears:
# (time python sen2like.py single-tile-mode 36NXF --conf "/data/config.ini" --start-date 2019-01-01 --end-date 2019-12-31 --wd "/data/workingdir" ) |& tee /data/logs/36NXF_debug.log
[INFO ] 2021-02-19 08:51:06 - reader - Sentinel2MTL Class
[INFO ] 2021-02-19 08:51:06 - reader - Product: /data/PRODUCTS/Sentinel2/36NXF/S2A_MSIL1C_20190102T075321_N0207_R135_T36NXF_20190102T092351.SAFE
[ERROR ] 2021-02-19 08:51:18 - get_s2_angles - FOUND 0 in CPT: [[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 2. 1. 1. 1. 1. 1. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1.]
[1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 2. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 2. 1. 1. 1. 1. 1. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2.]
[1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 2. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 2. 1.]
[1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[2. 1. 1. 1. 1. 1. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1.]
[2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 2. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]]
/usr/local/sen2like_312/sen2like/sen2like/sen2like/atmcor/get_s2_angles.py:64: RuntimeWarning: invalid value encountered in true_divide
N = M / CPT
As you can see, there is a value of 0 inside the CPT, thus the runtime warning. I donβt know if this will impact things later
Also, maybe you should have a look at
M = np.zeros([x_size, y_size], np.float)
# print('input M :' + str(M[2][6]))
CPT = np.zeros([x_size, y_size], np.float)
for k, u in list(a_dict.items()):
for i in range(0, x_size, 1):
for j in range(0, x_size, 1):
A = u["Values"]
if A[i][j] == A[i][j]: # test if value is not nan
M[i][j] = A[i][j] + M[i][j]
CPT[i][j] += 1
M and CPT are [x_size, y_size] matrices , but later the parsing for y axis is done after x_size. I understand that this matrices are in fact squares, but one may be misled when following the code:
for i in range(0, x_size, 1):
for j in range(0, x_size, 1):
S2L_Fusion.py:309: RuntimeWarning: invalid value encountered in true_divide
Line 309 is :
A = (array2 - array1) / (doy_2 - doy_1)
I didnβt go deeper, but I will if needed, just let me know.
[INFO ] 2021-02-18 15:39:31 - S2L_GeometryKLT - Start
[INFO ] 2021-02-18 15:39:31 - S2L_GeometryKLT - MGRS Framing: Start...
[INFO ] 2021-02-18 15:39:32 - S2L_GeometryKLT - MGRS Framing: End
[INFO ] 2021-02-18 15:39:32 - S2L_GeometryKLT - Change reference image to:/data/References/S2B_MSIL2A_20191004T074749_N0213_R135_T36NXF_20191004T114035.SAFE/GRANULE/L2A\
_T36NXF_A013460_20191004T080733/IMG_DATA/R10m/T36NXF_20191004T074749_B04_30m.TIF
[INFO ] 2021-02-18 15:39:32 - S2L_GeometryKLT - End
[ERROR ] 2021-02-18 15:39:00 - hls_product - Error: Product band B02 with res 30 not found in /data/HLS_ts_scenario_1_36XNF/36NXF/S2A_MSIL2F_20190112T075301_N9999_R1\
35_T36NXF_20190112T092302.SAFE
gdalinfo -stats /data/HLS_ts_scenario_1_36XNF/36NXF/LS8_OLIL2F_20190114T075459_N9999_R170_T36NXF_20190131T145256.SAFE/GRANULE/L2F_T36NXF_A000000_20190131T145256_LS8_R170/IMG_DATA/L2F_T36NXF_20190114T075459_LS8_R170_B02_10m.TIF
Driver: GTiff/GeoTIFF
Files: /data/HLS_ts_scenario_1_36XNF/36NXF/LS8_OLIL2F_20190114T075459_N9999_R170_T36NXF_20190131T145256.SAFE/GRANULE/L2F_T36NXF_A000000_20190131T145256_LS8_R170/IMG_DATA/L2F_T36NXF_20190114T075459_LS8_R170_B02_10m.TIF
/data/HLS_ts_scenario_1_36XNF/36NXF/LS8_OLIL2F_20190114T075459_N9999_R170_T36NXF_20190131T145256.SAFE/GRANULE/L2F_T36NXF_A000000_20190131T145256_LS8_R170/IMG_DATA/L2F_T36NXF_20190114T075459_LS8_R170_B02_10m.TIF.aux.xml
Size is 10980, 10980
Coordinate System is:
PROJCRS["WGS 84 / UTM zone 36N",
......
Metadata:
AREA_OR_POINT=Area
Image Structure Metadata:
COMPRESSION=LZW
INTERLEAVE=BAND
Corner Coordinates:
Upper Left ( 600000.000, 100020.000) ( 33d53'55.50"E, 0d54'17.28"N)
Lower Left ( 600000.000, -9780.000) ( 33d53'55.10"E, 0d 5'18.50"S)
Upper Right ( 709800.000, 100020.000) ( 34d53' 7.12"E, 0d54'15.91"N)
Lower Right ( 709800.000, -9780.000) ( 34d53' 6.29"E, 0d 5'18.36"S)
Center ( 654900.000, 45120.000) ( 34d23'31.00"E, 0d24'29.14"N)
Band 1 Block=1024x1024 Type=UInt16, ColorInterp=Gray
Min=0.000 Max=0.000
Minimum=0.000, Maximum=0.000, Mean=0.000, StdDev=0.000
Overviews: 5490x5490
Offset: 0, Scale:0.0001
Metadata:
STATISTICS_MAXIMUM=0
STATISTICS_MEAN=0
STATISTICS_MINIMUM=0
STATISTICS_STDDEV=0
STATISTICS_VALID_PERCENT=100
As you can see, the STATISTICS_ are 0.
Here is the sen2like log for this output product:
[INFO ] 2021-02-18 15:38:52 - S2L_Fusion - Start
[WARNING ] 2021-02-18 15:38:54 - hls_product - Product mask not found at /data/HLS_ts_scenario_1_36XNF/36NXF/S2A_MSIL2F_20190112T075301_N9999_R135_T36NXF_20190112T0923\
02.SAFE/S2A_MSIL2F_20190112T075301_N9999_R135_T36NXF_20190112T092302.SAFE_MSK.TIF
[INFO ] 2021-02-18 15:38:54 - hls_product - Searching it with S2Like format
[INFO ] 2021-02-18 15:38:54 - hls_product - Product mask finally found
[INFO ] 2021-02-18 15:38:56 - S2L_Fusion - prediction
[ERROR ] 2021-02-18 15:39:00 - hls_product - Error: Product band B02 with res 30 not found in /data/HLS_ts_scenario_1_36XNF/36NXF/S2A_MSIL2F_20190112T075301_N9999_R1\
35_T36NXF_20190112T092302.SAFE
[ERROR ] 2021-02-18 15:39:00 - hls_product -
[INFO ] 2021-02-18 15:39:00 - S2L_Fusion - Resampling to 30m: Start...
[INFO ] 2021-02-18 15:39:04 - S2L_Fusion - Resampling to 30m: End
/usr/local/sen2like_312/sen2like/sen2like/sen2like/s2l_processes/S2L_Fusion.py:309: RuntimeWarning: invalid value encountered in true_divide
A = (array2 - array1) / (doy_2 - doy_1)
[INFO ] 2021-02-18 15:39:17 - S2L_Fusion - fusion
[INFO ] 2021-02-18 15:39:23 - S2L_Fusion - End
[INFO ] 2021-02-18 15:39:25 - image_file - Written: /data/HLS_ts_scenario_1_36XNF/36NXF/L2F_36NXF_20190114_LS8_R170/L2F_36NXF_20190114_LS8_R170_B02_10m.TIF
[INFO ] 2021-02-18 15:39:25 - image_file - Written: /data/HLS_ts_scenario_1_36XNF/36NXF/L2F_36NXF_20190114_LS8_R170/L2F_36NXF_20190114_LS8_R170_B02_30m.TIF
[INFO ] 2021-02-18 15:39:27 - image_file - Written: /data/HLS_ts_scenario_1_36XNF/36NXF/LS8_OLIL2F_20190114T075459_N9999_R170_T36NXF_20190131T145256.SAFE/GRANULE/L\
2F_T36NXF_A000000_20190131T145256_LS8_R170/IMG_DATA/L2F_T36NXF_20190114T075459_LS8_R170_B02_10m.TIF
I can see in the log there are some links to the problems I described before: 2 and 4
I know itβs a lot of info here, but maybe you can have some hints, thank you so much for all your help you can provide !
Dear agrosu1978,
Thank you for your email.
Our technical team will look into the details next week and come back to you through the forum.
Best regards,
Sen2Like team
Thanks again for your information and sorry for our late reply. The sen2like warning messages do not explain your raised issue . Besides, the information you are sharing with us is unfortunately not sufficient to investigate more and fully support you.
For this reason, please could you share the sen2like processing log (per product), and the configuration file you are using.
Many thanks
Sincerely yours,
Sen2Like Team.
Hello sen2like
I made a lot of tests, and the problem seemed to be from point 2 of my previous post. Thus, I modified line 309 from S2_Fusion.py file from
A = (array2 - array1) / (doy_2 - doy_1)
to
A = (array2 - array1) / (doy_2 - doy_1) if (doy_2 - doy_1) != 0 else 0
The L2F output products have now meaningful rasters, example:
STATISTICS_MAXIMUM=6077
STATISTICS_MEAN=240.39048293635
STATISTICS_MINIMUM=0
STATISTICS_STDDEV=144.89214481527
STATISTICS_VALID_PERCENT=100
I re-made the tests, with the S2_Fusion.py original source code (git version 3.1.2) and with the modified S2_Fusion.py. I compared the logs, the difference is that in the log from the original source code, this RuntimeWarning appears a lot:
/usr/local/sen2like_312/sen2like/sen2like/sen2like/s2l_processes/S2L_Fusion.py:318: RuntimeWarning: invalid value encountered in true_divide
Setting up the protection against division by 0, eliminates this warning and the rasters from the L2F products are ok. If you want, I can send you both log files somehow (here I canβt see a way to attach files).
Following are some information for the launching process (for the latest tests comparison, I used a different end-date as I first used, to process only the first two months of the 2019 year, instead of the whole year):
#:python sen2like.py single-tile-mode 36NXF --conf "/data/config.ini" --start-date 2019-01-01 --end-date 2019-02-27 --wd "/data/workingdir"
The used config.ini file:
[Processing]
doStitching = True
doGeometryKLT = True
doToa = True
doAtmcor = True
doNbar = True
doSbaf = True
doFusion = True
doPackager = True
doPackagerL2H = True
doPackagerL2F = True
[Directories]
#output dir
archive_dir = /data/HLS_ts_scenario_1
#additional data
cams_dir = /data/CAMS/monthly
cams_hourly_dir = /data/CAMS/hourly
cams_climatology_dir = /data/CAMS/climatology/v1
[InputProductArchive]
coverage = 0.5
# Local
base_url = /data/PRODUCTS
url_parameters_pattern_Sentinel2 = {base_url}/{mission}/{tile}
url_parameters_pattern_Landsat8 = {base_url}/{mission}/{path}/{row}
# Creodias
;base_url = https://finder.creodias.eu/resto/api/collections
;cloud_cover = 11
;location_Landsat8 = path={path}&row={row}
;location_Sentinel2 = processingLevel={s2_processing_level}&productIdentifier=%25{tile}%25
;url_parameters_pattern = {base_url}/{mission}/search.json?maxRecords=1000&_pretty=true&cloudCover=%5B0%2C{cloud_cover}%5D&startDate={start_date}&completionDate={end_date}&sortP
aram=startDate&sortOrder=ascending&status=all&{location}&dataset=ESA-DATASET
;thumbnail_property = properties/productIdentifier
;cloud_cover_property = properties/cloudCover
;gml_geometry_property = properties/gmlgeometry
[Geometry]
reference_band = B04
doMatchingCorrection = True
doAssessGeometry = B04
references_map = /data/References/references_map.json
[Atmcor]
use_sen2cor = False
sen2cor_path = ../sen2cor/process.py
[fusion]
# predict_method: predict or composite (most recent valid pixels)
predict_method = predict
predict_nb_products = 2
[Stitching]
reframe_margin = 50
[OutputFormat]
gain = 10000
offset = 0
COG = True
[COGoptions]
interleave = PIXEL
internal_tiling = 1024
internal_overviews = 128
downsampling_levels_10 = 2
downsampling_levels_15 = 2
downsampling_levels_20 = 2 3 6
downsampling_levels_30 = 2 4 6 12
downsampling_levels_60 = 6 12 18 36
resampling_algo_MASK = MODE
resampling_algo = AVERAGE
compression = LZW
predictor = 1
[Multiprocessing]
number_of_process = 5
[Packager]
quicklook_jpeg_quality = 75
[RunTime]
dx = 0
dy = 0
freeze_dx_dy = True
The ./References/references_map.json file:
{ "31TCJ": "/data/References/S2A_MSIL2A_20201017T105041_N0214_R051_T31TCJ_20201017T134105.SAFE/GRANULE/L2A_T31TCJ_A027790_20201017T105446/IMG_DATA/R10m/T31TCJ_20201017T105041_B04_10m.jp2",
"31UFS": "/data/References/S2A_MSIL2A_20201017T105041_N0214_R051_T31UFS_20201017T134105.SAFE/GRANULE/L2A_T31UFS_A027790_20201017T105446/IMG_DATA/R10m/T31UFS_20201017T105041_B04_10m.jp2",
"31TCG": "/data/References/S2B_MSIL2A_20190730T105039_N0213_R051_T31TCG_20190730T140936.SAFE/GRANULE/L2A_T31TCG_A012518_20190730T105502/IMG_DATA/R10m/T31TCG_20190730T105039_B04_10m.jp2",
"36NXF": "/data/References/S2B_MSIL2A_20191004T074749_N0213_R135_T36NXF_20191004T114035.SAFE/GRANULE/L2A_T36NXF_A013460_20191004T080733/IMG_DATA/R10m/T36NXF_20191004T074749_B04_10m.jp2"
}
The input products:
#:~/sen2like/data/PRODUCTS/Landsat8$ tree . -L 3
.
βββ 170
β βββ 58
β β βββ LC08_L1TP_170058_20190114_20190131_01_T1
β β βββ LC08_L1TP_170058_20190130_20190206_01_T1
β β βββ LC08_L1TP_170058_20190215_20190222_01_T1
β β βββ LC08_L1TP_170058_20190303_20190309_01_T1
β β βββ LC08_L1TP_170058_20190319_20190325_01_T1
β β βββ LC08_L1TP_170058_20190404_20190422_01_T1
β β βββ LC08_L1TP_170058_20190420_20190507_01_T1
β β βββ LC08_L1TP_170058_20190506_20190521_01_T1
β β βββ LC08_L1TP_170058_20190522_20190604_01_T1
β β βββ LC08_L1TP_170058_20190607_20190619_01_T1
β β βββ LC08_L1TP_170058_20190623_20190704_01_T1
β β βββ LC08_L1TP_170058_20190709_20190719_01_T1
β β βββ LC08_L1TP_170058_20190826_20190903_01_T1
β β βββ LC08_L1TP_170058_20190911_20190917_01_T1
β β βββ LC08_L1TP_170058_20191114_20191202_01_T1
β β βββ LC08_L1TP_170058_20191130_20191216_01_T1
β β βββ LC08_L1TP_170058_20191216_20191226_01_T1
β β βββ LC08_L1TP_170058_20191216_20201023_01_T1
β βββ 59
β β βββ LC08_L1TP_170059_20190114_20190131_01_T1
β β βββ LC08_L1TP_170059_20190130_20190206_01_T1
β β βββ LC08_L1TP_170059_20190215_20190222_01_T1
β β βββ LC08_L1TP_170059_20190303_20190309_01_T1
β β βββ LC08_L1TP_170059_20190319_20190325_01_T1
β β βββ LC08_L1TP_170059_20190404_20190421_01_T1
β β βββ LC08_L1TP_170059_20190420_20190507_01_T1
β β βββ LC08_L1TP_170059_20190506_20190521_01_T1
β β βββ LC08_L1TP_170059_20190522_20190604_01_T1
β β βββ LC08_L1TP_170059_20190607_20190619_01_T1
β β βββ LC08_L1TP_170059_20190623_20190704_01_T1
β β βββ LC08_L1TP_170059_20190709_20190719_01_T1
β β βββ LC08_L1TP_170059_20190826_20190903_01_T1
β β βββ LC08_L1TP_170059_20190911_20190917_01_T1
β β βββ LC08_L1TP_170059_20191013_20191018_01_T1
β β βββ LC08_L1TP_170059_20191029_20191114_01_T1
β β βββ LC08_L1TP_170059_20191114_20191202_01_T1
β β βββ LC08_L1TP_170059_20191130_20191216_01_T1
β β βββ LC08_L1TP_170059_20191216_20191226_01_T1
β β βββ LC08_L1TP_170059_20191216_20201023_01_T1
β βββ 60
β β βββ LC08_L1TP_170060_20190114_20190131_01_T1
β β βββ LC08_L1TP_170060_20190130_20190206_01_T1
β β βββ LC08_L1TP_170060_20190215_20190222_01_T1
β β βββ LC08_L1TP_170060_20190303_20190309_01_T1
β β βββ LC08_L1TP_170060_20190319_20190325_01_T1
β β βββ LC08_L1TP_170060_20190404_20190421_01_T1
β β βββ LC08_L1TP_170060_20190420_20190507_01_T1
β β βββ LC08_L1TP_170060_20190506_20190521_01_T1
β β βββ LC08_L1TP_170060_20190522_20190604_01_T1
β β βββ LC08_L1TP_170060_20190623_20190704_01_T1
β β βββ LC08_L1TP_170060_20190709_20190719_01_T1
β β βββ LC08_L1TP_170060_20190725_20190801_01_T1
β β βββ LC08_L1TP_170060_20190826_20190903_01_T1
β β βββ LC08_L1TP_170060_20190911_20190917_01_T1
β β βββ LC08_L1TP_170060_20190927_20191017_01_T1
β β βββ LC08_L1TP_170060_20191013_20191018_01_T1
β β βββ LC08_L1TP_170060_20191114_20191202_01_T1
β β βββ LC08_L1TP_170060_20191130_20191216_01_T1
β β βββ LC08_L1TP_170060_20191216_20191226_01_T1
β β βββ LC08_L1TP_170060_20191216_20201023_01_T1
β βββ 61
β βββ LC08_L1TP_170061_20190114_20190131_01_T1
β βββ LC08_L1TP_170061_20190130_20190206_01_T1
β βββ LC08_L1TP_170061_20190215_20190222_01_T1
β βββ LC08_L1TP_170061_20190303_20190309_01_T1
β βββ LC08_L1TP_170061_20190319_20190325_01_T1
β βββ LC08_L1TP_170061_20190404_20190422_01_T1
β βββ LC08_L1TP_170061_20190420_20190507_01_T1
β βββ LC08_L1TP_170061_20190506_20190521_01_T1
β βββ LC08_L1TP_170061_20190522_20190604_01_T1
β βββ LC08_L1TP_170061_20190623_20190704_01_T1
β βββ LC08_L1TP_170061_20190709_20190719_01_T1
β βββ LC08_L1TP_170061_20190725_20190801_01_T1
β βββ LC08_L1TP_170061_20190826_20190903_01_T1
β βββ LC08_L1TP_170061_20190911_20190917_01_T1
β βββ LC08_L1TP_170061_20191013_20191018_01_T1
β βββ LC08_L1TP_170061_20191130_20191216_01_T1
β βββ LC08_L1TP_170061_20191216_20191226_01_T1
β βββ LC08_L1TP_170061_20191216_20201023_01_T1
Products from S2:
(base) ubuntu@ip-172-31-11-29:~/sen2like/data/PRODUCTS/Sentinel2$ tree . -L 2
.
βββ 36NXF
βββ S2A_MSIL1C_20190102T075321_N0207_R135_T36NXF_20190102T092351.SAFE
βββ S2A_MSIL1C_20190112T075301_N0207_R135_T36NXF_20190112T092302.SAFE
βββ S2A_MSIL1C_20190122T075221_N0207_R135_T36NXF_20190122T091707.SAFE
βββ S2A_MSIL1C_20190201T075141_N0207_R135_T36NXF_20190201T100613.SAFE
βββ S2A_MSIL1C_20190221T074931_N0207_R135_T36NXF_20190221T091816.SAFE
βββ S2A_MSIL1C_20190303T074821_N0207_R135_T36NXF_20190303T100446.SAFE
βββ S2A_MSIL1C_20190313T074711_N0207_R135_T36NXF_20190313T131618.SAFE
βββ S2A_MSIL1C_20190323T074611_N0207_R135_T36NXF_20190323T105832.SAFE
βββ S2A_MSIL1C_20190402T074611_N0207_R135_T36NXF_20190402T100441.SAFE
βββ S2A_MSIL1C_20190412T074611_N0207_R135_T36NXF_20190412T095139.SAFE
βββ S2A_MSIL1C_20190502T074621_N0207_R135_T36NXF_20190502T095023.SAFE
βββ S2A_MSIL1C_20190512T074621_N0207_R135_T36NXF_20190512T095136.SAFE
βββ S2A_MSIL1C_20190522T074621_N0207_R135_T36NXF_20190522T113500.SAFE
βββ S2A_MSIL1C_20190601T074611_N0207_R135_T36NXF_20190601T100720.SAFE
βββ S2A_MSIL1C_20190621T074621_N0207_R135_T36NXF_20190621T100700.SAFE
βββ S2A_MSIL1C_20190701T074621_N0207_R135_T36NXF_20190701T100623.SAFE
βββ S2A_MSIL1C_20190711T074621_N0208_R135_T36NXF_20190711T100442.SAFE
βββ S2A_MSIL1C_20190721T074621_N0208_R135_T36NXF_20190721T105932.SAFE
βββ S2A_MSIL1C_20190820T074611_N0208_R135_T36NXF_20190820T100557.SAFE
βββ S2A_MSIL1C_20190830T074611_N0208_R135_T36NXF_20190830T100724.SAFE
βββ S2A_MSIL1C_20190909T074611_N0208_R135_T36NXF_20190909T105924.SAFE
βββ S2A_MSIL1C_20190919T074611_N0208_R135_T36NXF_20190919T100524.SAFE
βββ S2A_MSIL1C_20190929T074711_N0208_R135_T36NXF_20190929T100745.SAFE
βββ S2A_MSIL1C_20191009T074821_N0208_R135_T36NXF_20191009T110112.SAFE
βββ S2A_MSIL1C_20191019T074931_N0208_R135_T36NXF_20191019T095207.SAFE
βββ S2A_MSIL1C_20191029T075031_N0208_R135_T36NXF_20191029T092618.SAFE
βββ S2A_MSIL1C_20191118T075211_N0208_R135_T36NXF_20191118T094946.SAFE
βββ S2A_MSIL1C_20191128T075251_N0208_R135_T36NXF_20191128T092555.SAFE
βββ S2A_MSIL1C_20191208T075311_N0208_R135_T36NXF_20191208T091451.SAFE
βββ S2A_MSIL1C_20191218T075331_N0208_R135_T36NXF_20191218T091909.SAFE
βββ S2A_MSIL1C_20191228T075331_N0208_R135_T36NXF_20191228T092808.SAFE
βββ S2B_MSIL1C_20190107T075319_N0207_R135_T36NXF_20190107T095014.SAFE
βββ S2B_MSIL1C_20190117T075249_N0207_R135_T36NXF_20190117T095013.SAFE
βββ S2B_MSIL1C_20190127T075209_N0207_R135_T36NXF_20190127T100617.SAFE
βββ S2B_MSIL1C_20190206T075109_N0207_R135_T36NXF_20190206T095604.SAFE
βββ S2B_MSIL1C_20190226T074859_N0207_R135_T36NXF_20190226T113406.SAFE
βββ S2B_MSIL1C_20190308T074749_N0207_R135_T36NXF_20190308T113336.SAFE
βββ S2B_MSIL1C_20190318T074639_N0207_R135_T36NXF_20190318T113212.SAFE
βββ S2B_MSIL1C_20190328T074839_N0207_R135_T36NXF_20190328T113153.SAFE
βββ S2B_MSIL1C_20190507T074619_N0207_R135_T36NXF_20190507T100634.SAFE
βββ S2B_MSIL1C_20190517T074619_N0207_R135_T36NXF_20190517T100609.SAFE
βββ S2B_MSIL1C_20190527T074619_N0207_R135_T36NXF_20190527T100808.SAFE
βββ S2B_MSIL1C_20190606T074619_N0207_R135_T36NXF_20190606T100750.SAFE
βββ S2B_MSIL1C_20190616T074619_N0207_R135_T36NXF_20190616T112603.SAFE
βββ S2B_MSIL1C_20190626T074619_N0207_R135_T36NXF_20190626T100731.SAFE
βββ S2B_MSIL1C_20190706T074619_N0207_R135_T36NXF_20190706T100612.SAFE
βββ S2B_MSIL1C_20190716T074619_N0208_R135_T36NXF_20190716T104338.SAFE
βββ S2B_MSIL1C_20190726T074619_N0208_R135_T36NXF_20190726T100712.SAFE
βββ S2B_MSIL1C_20190805T074619_N0208_R135_T36NXF_20190805T100613.SAFE
βββ S2B_MSIL1C_20190815T074619_N0208_R135_T36NXF_20190815T114606.SAFE
βββ S2B_MSIL1C_20190825T074619_N0208_R135_T36NXF_20190825T100539.SAFE
βββ S2B_MSIL1C_20190914T074609_N0208_R135_T36NXF_20190914T104445.SAFE
βββ S2B_MSIL1C_20190924T074639_N0208_R135_T36NXF_20190924T104034.SAFE
βββ S2B_MSIL1C_20191004T074749_N0208_R135_T36NXF_20191004T104853.SAFE
βββ S2B_MSIL1C_20191103T075009_N0208_R135_T36NXF_20191103T095158.SAFE
βββ S2B_MSIL1C_20191113T075059_N0208_R135_T36NXF_20191113T100704.SAFE
βββ S2B_MSIL1C_20191213T075229_N0208_R135_T36NXF_20191213T094808.SAFE
Once again, I will keep the logs from the two different runs (original vs modified code) if you want them, just tell me a way to send them. The files are small, but I canβt see here in this forum how can I attach them.
-rw-r--r-- 1 alex alex 503K mar 3 17:24 36NXF_short_test_modified_source_code.log
-rw-r--r-- 1 alex alex 503K mar 3 17:24 36NXF_short_test_original_source_code.log
Kind regards