Question

HEIC-photos to point layer?

  • 10 September 2021
  • 1 reply
  • 41 views

Badge

Hello!

I'm trying to create a point layer from a set of photos in .heic format. I can see in the photo metadata via Windows 10 file explorer that the photos were taken with GPS on and the coordinates are stored in the EXIF data.

I'm wondering how I can use FME in order to create a point layer (and save as a .shp for example) using the coordinates found in the photos, and then attach the photo to each point in the point layer.

From what I can see, there is a transformer that can create such a point layer from .jpeg photos but there doesn't seem to be a similar one for .heic.

Does anyone have any advice?

Thanks!


1 reply

Userlevel 1
Badge +11

Hi @corrag_oslo​,

I'm not an HEIC file expert, but I had a few thoughts that you could maybe try. When you read the HEIC file in, can you check the feature information window for those GPS coordinates? I'm expecting you'll find it under heif_exif_gpslongitude and heif_exif_gpslatitude. If they're not already exposed in your table in the Visual Preview, you can use an AttributeExposer. According to the Feature Representation doc, this should come in as degrees minutes seconds, so you could use something like a DecimalDegreesCalculator to convert it and then create points using the VertexCreator. From there you could see how you want to 'attach' the photo. I don't think the shapefile writer supports rasters, so it might be that you could add an attribute with the heic file path perhaps?

 

Alternatively, to create the points, you could try to make use of the PhotoCoordinateExtractor. It's a linked transformer, but you could right-click it and hit Embed, which will turn the transformer green. Next you can right click it to edit and it'll open up in a new tab. If you wanted to try to get it working for HEIC, you could go through and replace the jpeg attributes with the corresponding heic attributes from the linked Feautre Representation doc and see if that works for you. I'm not 100% sure on this as I haven't tried it on my end, but might be worth exploring!

Reply