[Geoserver-users] Failed to Add Raster Data Source

Hello all. This may have come up before but I did not see a solution. Thank in advance for your help!

I am struggling to add a GeoTiff raster file to Geoserver. After some transformations and adding color to the original GeoTiff (which would also not load) here are the details:

PERMISSIONS:

$ ls outputv2.tif -la

-rw-rw-rw- 1 nvidia nvidia 207210997 Aug 15 13:46 outputv2.tif

GDALINFO:

$ gdalinfo outputv2.tif

Driver: GTiff/GeoTIFF

Files: outputv2.tif

Size is 32410, 21019

Coordinate System is:

PROJCRS[“WGS 84 / Pseudo-Mercator”,

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[“Popular Visualisation Pseudo-Mercator”,

METHOD[“Popular Visualisation Pseudo Mercator”,

ID[“EPSG”,1024]],

PARAMETER[“Latitude of natural origin”,0,

ANGLEUNIT[“degree”,0.0174532925199433],

ID[“EPSG”,8801]],

PARAMETER[“Longitude of natural origin”,0,

ANGLEUNIT[“degree”,0.0174532925199433],

ID[“EPSG”,8802]],

PARAMETER[“False easting”,0,

LENGTHUNIT[“metre”,1],

ID[“EPSG”,8806]],

PARAMETER[“False northing”,0,

LENGTHUNIT[“metre”,1],

ID[“EPSG”,8807]]],

CS[Cartesian,2],

AXIS[“easting (X)”,east,

ORDER[1],

LENGTHUNIT[“metre”,1]],

AXIS[“northing (Y)”,north,

ORDER[2],

LENGTHUNIT[“metre”,1]],

USAGE[

SCOPE[“unknown”],

AREA[“World - 85°S to 85°N”],

BBOX[-85.06,-180,85.06,180]],

ID[“EPSG”,3857]]

Data axis to CRS axis mapping: 1,2

Origin = (-20037507.987483192235231,18434491.525901496410370)

Pixel Size = (1236.473576745130231,-1236.511728912020544)

Metadata:

AREA_OR_POINT=Area

Image Structure Metadata:

COMPRESSION=PACKBITS

INTERLEAVE=PIXEL

Corner Coordinates:

Upper Left (-20037507.987,18434491.526) (179d59’59.99"W, 83d38’22.73"N)

Lower Left (-20037507.987,-7555748.504) (179d59’59.99"W, 55d59’11.76"S)

Upper Right (20036600.635,18434491.526) (179d59’30.65"E, 83d38’22.73"N)

Lower Right (20036600.635,-7555748.504) (179d59’30.65"E, 55d59’11.76"S)

Center ( -453.676, 5439371.511) ( 0d 0’14.67"W, 43d49’52.66"N)

Band 1 Block=256x256 Type=Byte, ColorInterp=Red

Mask Flags: PER_DATASET ALPHA

Band 2 Block=256x256 Type=Byte, ColorInterp=Green

Mask Flags: PER_DATASET ALPHA

Band 3 Block=256x256 Type=Byte, ColorInterp=Blue

Mask Flags: PER_DATASET ALPHA

Band 4 Block=256x256 Type=Byte, ColorInterp=Alpha

GEOSERVER ERROR LOG:

Caused by: java.io.IOException: Failed to create reader from file:///home/nvidia/Projects/onr/map_layers/GHS_SMOD_POP2015_GLOBE_R2016A_54009_1k_v1_0/outputv2.tif and hints Hints:

REPOSITORY = org.geoserver.catalog.CatalogRepository@anonymised.com

EXECUTOR_SERVICE = java.util.concurrent.ThreadPoolExecutor@anonymised.com[Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]

System defaults:

FORCE_LONGITUDE_FIRST_AXIS_ORDER = true

FILTER_FACTORY = FilterFactoryImpl

FORCE_AXIS_ORDER_HONORING = http

LENIENT_DATUM_SHIFT = true

FEATURE_FACTORY = org.geotools.feature.LenientFeatureFactoryImpl@anonymised.com

STYLE_FACTORY = StyleFactoryImpl

COMPARISON_TOLERANCE = 1.0E-8

GRID_COVERAGE_FACTORY = GridCoverageFactory

TILE_ENCODING = null

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1492)

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1436)

at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:53)

at jdk.internal.reflect.GeneratedMethodAccessor426.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)

at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:127)

at com.sun.proxy.$Proxy35.getGridCoverageReader(Unknown Source)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:86)

… 140 more

Constant Marks
Research Assistant | Computer Science and Engineering
University of North Texas

Office: Discovery Parks F216
e: constant.marks@anonymised.com
t: (303) 482 7292

I found that adding the prj file fixed this problem thanks to this python script written by Mersey Viking found below.

My question then is why does geoserver need this file for some tifs and not for others? Is there something about the header that is preventing geoserver from parsing the projection data? If so why not add these osgeo methods to the geoserver package?

Written by MerseyViking (mersey dot viking at gmail dot com), 2011.

Released into the public domain - May 8, 2011

I accept no responsibility for any errors or loss of data, revenue, or life this script may cause. Use at your own risk.

import osgeo.gdal as gdal

import osgeo.osr as osr

import os

import glob

import sys

def generate_tfw(path, gen_prj):

for infile in glob.glob(os.path.join(path, ‘*.tif’)):

src = gdal.Open(infile)

xform = src.GetGeoTransform()

if gen_prj == ‘prj’:

src_srs = osr.SpatialReference()

src_srs.ImportFromWkt(src.GetProjection())

src_srs.MorphToESRI()

src_wkt = src_srs.ExportToWkt()

prj = open(os.path.splitext(infile)[0] + ‘.prj’, ‘wt’)

prj.write(src_wkt)

prj.close()

src = None

edit1=xform[0]+xform[1]/2

edit2=xform[3]+xform[5]/2

tfw = open(os.path.splitext(infile)[0] + ‘.tfw’, ‘wt’)

tfw.write(“%0.8f\n” % xform[1])

tfw.write(“%0.8f\n” % xform[2])

tfw.write(“%0.8f\n” % xform[4])

tfw.write(“%0.8f\n” % xform[5])

tfw.write(“%0.8f\n” % edit1)

tfw.write(“%0.8f\n” % edit2)

tfw.close()

if name == ‘main’:

generate_tfw(sys.argv[1], sys.argv[2])

···

From: Marks, Constant
Sent: Thursday, August 15, 2019 2:03 PM
To: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Failed to Add Raster Data Source

Hello all. This may have come up before but I did not see a solution. Thank in advance for your help!

I am struggling to add a GeoTiff raster file to Geoserver. After some transformations and adding color to the original GeoTiff (which would also not load) here are the details:

PERMISSIONS:

$ ls outputv2.tif -la

-rw-rw-rw- 1 nvidia nvidia 207210997 Aug 15 13:46 outputv2.tif

GDALINFO:

$ gdalinfo outputv2.tif

Driver: GTiff/GeoTIFF

Files: outputv2.tif

Size is 32410, 21019

Coordinate System is:

PROJCRS[“WGS 84 / Pseudo-Mercator”,

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[“Popular Visualisation Pseudo-Mercator”,

METHOD[“Popular Visualisation Pseudo Mercator”,

ID[“EPSG”,1024]],

PARAMETER[“Latitude of natural origin”,0,

ANGLEUNIT[“degree”,0.0174532925199433],

ID[“EPSG”,8801]],

PARAMETER[“Longitude of natural origin”,0,

ANGLEUNIT[“degree”,0.0174532925199433],

ID[“EPSG”,8802]],

PARAMETER[“False easting”,0,

LENGTHUNIT[“metre”,1],

ID[“EPSG”,8806]],

PARAMETER[“False northing”,0,

LENGTHUNIT[“metre”,1],

ID[“EPSG”,8807]]],

CS[Cartesian,2],

AXIS[“easting (X)”,east,

ORDER[1],

LENGTHUNIT[“metre”,1]],

AXIS[“northing (Y)”,north,

ORDER[2],

LENGTHUNIT[“metre”,1]],

USAGE[

SCOPE[“unknown”],

AREA[“World - 85°S to 85°N”],

BBOX[-85.06,-180,85.06,180]],

ID[“EPSG”,3857]]

Data axis to CRS axis mapping: 1,2

Origin = (-20037507.987483192235231,18434491.525901496410370)

Pixel Size = (1236.473576745130231,-1236.511728912020544)

Metadata:

AREA_OR_POINT=Area

Image Structure Metadata:

COMPRESSION=PACKBITS

INTERLEAVE=PIXEL

Corner Coordinates:

Upper Left (-20037507.987,18434491.526) (179d59’59.99"W, 83d38’22.73"N)

Lower Left (-20037507.987,-7555748.504) (179d59’59.99"W, 55d59’11.76"S)

Upper Right (20036600.635,18434491.526) (179d59’30.65"E, 83d38’22.73"N)

Lower Right (20036600.635,-7555748.504) (179d59’30.65"E, 55d59’11.76"S)

Center ( -453.676, 5439371.511) ( 0d 0’14.67"W, 43d49’52.66"N)

Band 1 Block=256x256 Type=Byte, ColorInterp=Red

Mask Flags: PER_DATASET ALPHA

Band 2 Block=256x256 Type=Byte, ColorInterp=Green

Mask Flags: PER_DATASET ALPHA

Band 3 Block=256x256 Type=Byte, ColorInterp=Blue

Mask Flags: PER_DATASET ALPHA

Band 4 Block=256x256 Type=Byte, ColorInterp=Alpha

GEOSERVER ERROR LOG:

Caused by: java.io.IOException: Failed to create reader from file:///home/nvidia/Projects/onr/map_layers/GHS_SMOD_POP2015_GLOBE_R2016A_54009_1k_v1_0/outputv2.tif and hints Hints:

REPOSITORY = org.geoserver.catalog.CatalogRepository@anonymised.com

EXECUTOR_SERVICE = [java.util.concurrent.ThreadPoolExecutor@anonymised.comRunning, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]

System defaults:

FORCE_LONGITUDE_FIRST_AXIS_ORDER = true

FILTER_FACTORY = FilterFactoryImpl

FORCE_AXIS_ORDER_HONORING = http

LENIENT_DATUM_SHIFT = true

FEATURE_FACTORY = org.geotools.feature.LenientFeatureFactoryImpl@anonymised.com

STYLE_FACTORY = StyleFactoryImpl

COMPARISON_TOLERANCE = 1.0E-8

GRID_COVERAGE_FACTORY = GridCoverageFactory

TILE_ENCODING = null

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1492)

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1436)

at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:53)

at jdk.internal.reflect.GeneratedMethodAccessor426.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)

at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:127)

at com.sun.proxy.$Proxy35.getGridCoverageReader(Unknown Source)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:86)

… 140 more

Constant Marks
Research Assistant | Computer Science and Engineering
University of North Texas

Office: Discovery Parks F216
e: constant.marks@anonymised.com
t: (303) 482 7292

In general we read spatial reference details out of the GeoTiff header (that is what makes it a GeoTIFF…). There must be a gap between what we implement and the tags in the header you are using. The log cuts off before I can see some kind of “caused by” detail in the stack trace …

More detail/information would be required to determine if this is a bug in GeoServer or the provided file.

···


Jody Garnett

I found that adding the prj file fixed this problem thanks to this python script written by Mersey Viking found below.

My question then is why does geoserver need this file for some tifs and not for others? Is there something about the header that is preventing geoserver from parsing the projection data?

May be, do you have a small sample file that can be shared? If so can you open a ticket on the issue tracker and attach the sample to it?

If so why not add these osgeo methods to the geoserver package?

For the simplest of the reasons normally, because it takes work, which besides some exceptions, in turn requires funding.

Cheers
Andrea

···

GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.

How do I pull down the whole log? Every time it gets an error I just see that “ … 140 more”.

···

In general we read spatial reference details out of the GeoTiff header (that is what makes it a GeoTIFF…). There must be a gap between what we implement and the tags in the header you are using. The log cuts off before I can see some kind of “caused by” detail in the stack trace …

More detail/information would be required to determine if this is a bug in GeoServer or the provided file.

Jody Garnett

On Thu, 15 Aug 2019 at 16:03, Marks, Constant <Constant.Marks@…10052…> wrote:

I found that adding the prj file fixed this problem thanks to this python script written by Mersey Viking found below.

My question then is why does geoserver need this file for some tifs and not for others? Is there something about the header that is preventing geoserver from parsing the projection data? If so why not add these osgeo methods to the geoserver package?

Written by MerseyViking (mersey dot viking at gmail dot com), 2011.

Released into the public domain - May 8, 2011

I accept no responsibility for any errors or loss of data, revenue, or life this script may cause. Use at your own risk.

import osgeo.gdal as gdal

import osgeo.osr as osr

import os

import glob

import sys

def generate_tfw(path, gen_prj):

for infile in glob.glob(os.path.join(path, ‘*.tif’)):

src = gdal.Open(infile)

xform = src.GetGeoTransform()

if gen_prj == ‘prj’:

src_srs = osr.SpatialReference()

src_srs.ImportFromWkt(src.GetProjection())

src_srs.MorphToESRI()

src_wkt = src_srs.ExportToWkt()

prj = open(os.path.splitext(infile)[0] + ‘.prj’, ‘wt’)

prj.write(src_wkt)

prj.close()

src = None

edit1=xform[0]+xform[1]/2

edit2=xform[3]+xform[5]/2

tfw = open(os.path.splitext(infile)[0] + ‘.tfw’, ‘wt’)

tfw.write(“%0.8f\n” % xform[1])

tfw.write(“%0.8f\n” % xform[2])

tfw.write(“%0.8f\n” % xform[4])

tfw.write(“%0.8f\n” % xform[5])

tfw.write(“%0.8f\n” % edit1)

tfw.write(“%0.8f\n” % edit2)

tfw.close()

if name == ‘main’:

generate_tfw(sys.argv[1], sys.argv[2])

From: Marks, Constant
Sent: Thursday, August 15, 2019 2:03 PM
To: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] Failed to Add Raster Data Source

Hello all. This may have come up before but I did not see a solution. Thank in advance for your help!

I am struggling to add a GeoTiff raster file to Geoserver. After some transformations and adding color to the original GeoTiff (which would also not load) here are the details:

PERMISSIONS:

$ ls outputv2.tif -la

-rw-rw-rw- 1 nvidia nvidia 207210997 Aug 15 13:46 outputv2.tif

GDALINFO:

$ gdalinfo outputv2.tif

Driver: GTiff/GeoTIFF

Files: outputv2.tif

Size is 32410, 21019

Coordinate System is:

PROJCRS[“WGS 84 / Pseudo-Mercator”,

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[“Popular Visualisation Pseudo-Mercator”,

METHOD[“Popular Visualisation Pseudo Mercator”,

ID[“EPSG”,1024]],

PARAMETER[“Latitude of natural origin”,0,

ANGLEUNIT[“degree”,0.0174532925199433],

ID[“EPSG”,8801]],

PARAMETER[“Longitude of natural origin”,0,

ANGLEUNIT[“degree”,0.0174532925199433],

ID[“EPSG”,8802]],

PARAMETER[“False easting”,0,

LENGTHUNIT[“metre”,1],

ID[“EPSG”,8806]],

PARAMETER[“False northing”,0,

LENGTHUNIT[“metre”,1],

ID[“EPSG”,8807]]],

CS[Cartesian,2],

AXIS[“easting (X)”,east,

ORDER[1],

LENGTHUNIT[“metre”,1]],

AXIS[“northing (Y)”,north,

ORDER[2],

LENGTHUNIT[“metre”,1]],

USAGE[

SCOPE[“unknown”],

AREA[“World - 85°S to 85°N”],

BBOX[-85.06,-180,85.06,180]],

ID[“EPSG”,3857]]

Data axis to CRS axis mapping: 1,2

Origin = (-20037507.987483192235231,18434491.525901496410370)

Pixel Size = (1236.473576745130231,-1236.511728912020544)

Metadata:

AREA_OR_POINT=Area

Image Structure Metadata:

COMPRESSION=PACKBITS

INTERLEAVE=PIXEL

Corner Coordinates:

Upper Left (-20037507.987,18434491.526) (179d59’59.99"W, 83d38’22.73"N)

Lower Left (-20037507.987,-7555748.504) (179d59’59.99"W, 55d59’11.76"S)

Upper Right (20036600.635,18434491.526) (179d59’30.65"E, 83d38’22.73"N)

Lower Right (20036600.635,-7555748.504) (179d59’30.65"E, 55d59’11.76"S)

Center ( -453.676, 5439371.511) ( 0d 0’14.67"W, 43d49’52.66"N)

Band 1 Block=256x256 Type=Byte, ColorInterp=Red

Mask Flags: PER_DATASET ALPHA

Band 2 Block=256x256 Type=Byte, ColorInterp=Green

Mask Flags: PER_DATASET ALPHA

Band 3 Block=256x256 Type=Byte, ColorInterp=Blue

Mask Flags: PER_DATASET ALPHA

Band 4 Block=256x256 Type=Byte, ColorInterp=Alpha

GEOSERVER ERROR LOG:

Caused by: java.io.IOException: Failed to create reader from file:///home/nvidia/Projects/onr/map_layers/GHS_SMOD_POP2015_GLOBE_R2016A_54009_1k_v1_0/outputv2.tif and hints Hints:

REPOSITORY = org.geoserver.catalog.CatalogRepository@…10053…

EXECUTOR_SERVICE = [java.util.concurrent.ThreadPoolExecutor@…10054…Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]

System defaults:

FORCE_LONGITUDE_FIRST_AXIS_ORDER = true

FILTER_FACTORY = FilterFactoryImpl

FORCE_AXIS_ORDER_HONORING = http

LENIENT_DATUM_SHIFT = true

FEATURE_FACTORY = org.geotools.feature.LenientFeatureFactoryImpl@…10055…

STYLE_FACTORY = StyleFactoryImpl

COMPARISON_TOLERANCE = 1.0E-8

GRID_COVERAGE_FACTORY = GridCoverageFactory

TILE_ENCODING = null

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1492)

at org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1436)

at org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:53)

at jdk.internal.reflect.GeneratedMethodAccessor426.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)

at org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:127)

at com.sun.proxy.$Proxy35.getGridCoverageReader(Unknown Source)

at org.geoserver.web.data.layer.NewLayerPageProvider.getItemsInternal(NewLayerPageProvider.java:86)

… 140 more

Constant Marks
Research Assistant | Computer Science and Engineering
University of North Texas

Office: Discovery Parks F216
e: constant.marks@…10052…
t: (303) 482 7292


Geoserver-users mailing list

Please make sure you read the following two resources before posting to this list:

If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer

Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

I created https://osgeo-org.atlassian.net/browse/GEOS-9305

The original tiff and associated files are attached.

Thanks for supporting this awesome map server project!

-C

···

On Fri, Aug 16, 2019 at 1:10 AM Marks, Constant <Constant.Marks@…10052…> wrote:

I found that adding the prj file fixed this problem thanks to this python script written by Mersey Viking found below.

My question then is why does geoserver need this file for some tifs and not for others? Is there something about the header that is preventing geoserver from parsing the projection data?

May be, do you have a small sample file that can be shared? If so can you open a ticket on the issue tracker and attach the sample to it?

If so why not add these osgeo methods to the geoserver package?

For the simplest of the reasons normally, because it takes work, which besides some exceptions, in turn requires funding.

Cheers

Andrea

==

GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia. This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.