Skip to main content

Hi folks

We at Safe Software know that sometimes users upgrade their FME to the latest from a much older version, and we also know that Shapefile is an important format for many users.

 

Because your FME upgrade might include a newer Shapefile format, it was suggested that I cover the history of Shapefile support in FME, what changed, and when.

 

Shapefile Format Names

In the history of FME we've had three different Shapefile readers and writers. Each time we create a new reader/writer, it gets a different identifying shortname, even when it's replacing an existing version. So, for Shapefile we have:

 

  • SHAPE (FME2014 and earlier)
  • ESRISHAPE (FME 2015-2017)
  • SHAPEFILE (FME2018 onwards)

 

You can tell the shortname for a format because it appears in the FME Workbench Navigator window:

 

ShapefileVersion

 

Above I have a SHAPEFILE format, telling me this reader was added to the workspace in FME2018 or newer. If it just said SHAPE I would know it was added in 2014 or earlier.

 

Interestingly, I don't know when the workspace was created. The workspace might have been created in 2012, but the Shape reader added in 2018 using SHAPEFILE. So that's just something to be aware of.

 

Changes to Shapefile

The first time the Shapefile format changed (from SHAPE to ESRISHAPE) it was because attribute types were changed. We made the new format better match ArcGIS data types, decoupled dimension from the geometry type, and fixed a few other issues.

 

The next time the Shapefile format changed (from ESRISHAPE to SHAPEFILE) was a full rewrite to modernize the code and improve performance. The user interface was updated too and other bugs fixed.

 

Updating a Reader/Writer

If you upgrade from (for example) FME 2012 to FME 2020, what happens? Does the format also update automatically? Not exactly. New workspaces that you create will use the new SHAPEFILE format, but older workspaces will continue to use the old SHAPE format. So what should you do?

 

As I've mentioned before, to a large extent you don't have to do anything. Your workspace and SHAPE reader/writer should function exactly the same as in 2012, just maybe a little bit more reliably. You don't necessarily have to update it.

 

But, if you wanted to access the newer capabilities - like data type matching and performance improvements - then you could also update your Shapefile reader/writer. In FME 2020 you could either delete the SHAPE reader and re-add it as a SHAPEFILE reader, or you could right-click the reader and choose the Update Reader option. That should also change it to SHAPEFILE.

 

Summary

If you're upgrading FME from an older version, and you're using a Shapefile format in your workspaces, take a look at the exact reader/writer used. You might be able to update it to a newer version. But maybe do a test run before putting the updated workspace into production, to ensure it's producing exactly the results that you need.

Hi @mark2atsafe​ very thanks this interesting note about shapefile :)


When is FME going to be upgraded to use the "StopUsingShapePlease" Reader?

It would be simple to program, just make it so all SHP features go to the Rejected Port :)


When is FME going to be upgraded to use the "StopUsingShapePlease" Reader?

It would be simple to program, just make it so all SHP features go to the Rejected Port :)

Maybe whenever anyone adds a Shapefile writer, we just secretly write Geopackage instead?! 💁


Maybe whenever anyone adds a Shapefile writer, we just secretly write Geopackage instead?! 💁

Haha, I like it! Or maybe the Workbench GUI add a "Nag" Dialog whenever someone tries to add a SHP Writer: "Health Warning: Writing to this antiquated format can cause innumerable migraines and/or permanent hair loss for downstream system integrators being forced to use this format. Are You Really, Really Sure? (Y/N) "


Reply