Question

How does FME tread pixel values of GeoTIFF?

  • 2 February 2023
  • 1 reply
  • 8 views

Userlevel 1
Badge +8

I am working with Copernicus WorldCover data and I wonder how FME is reading pixel values. I read the data with a FeatureReader, to intersec t the input with my AOI, and looking at the cached results of the FeatureReader I get 'NoData' in the Data Inspector, when selecting an area where the color map is interpreted correctly and according to the product description from ESA the color indicates a map code of 90.

FeatureReader outputThe subsequent applied RasterMosaicker shows the following result, at the same location.

RasterMosaicker resultNow the value changed from '0 NoData' to '10'.

As described, the color indicates a value of 90!

 

The problem is basically present in any of the mapped classes, and values are altered from

10 -> 2

20 -> 3

30 -> 4

etc.

90 -> 10

 

I am adding a link to the coding of the map layer and definition of the classes and two Copernicus images so you can try to read a single GeoTIFF and reading all GeoTIFF files in a folder -> https://drive.google.com/drive/folders/1jusyArd5ugYSJtk3auGcu60Ogd_gTWlE?usp=sharing

 

When the FeatureReader is set to read a single GeoTIFF, the values are correct interpreted, but setting the source for the FeatureReader to C:\\Projects\\*.tif leads to '0 (NoData)' when reading GeoTIFF and subsequently the values are wrong in the workflow.

 

Am I doing something wrong or is the imagery misinterpreted?

 

I am working with FME Desktop Data Interoperability FME(R) 2022.0.0.2 (20220518 - Build 22343 - WIN64) and FeatureReader is in version 13.


1 reply

Userlevel 1
Badge +6

Hi @Thomas Becker​, the RasterMosaicker might be removing duplicate entries when merging palettes. You can try disabling Merge Palettes in the transformer parameters which will keep your input palettes intact. After this you'll end up with multiple input palettes (one for each input raster), so if you only want to remove the extra ones then you can put a RasterSelector followed by a RasterPaletteRemover. DoNotMergePalettesLet me know if you have any issues with this!

Reply