Work with opologies

Hi GPlates community,

The answer would be probably simple.

I’m trying to put a plate which boundaries fit with limits other three neighbour plates.
I managed to create plate topology and associated it to my plate layer.
I see it (pink layer) in table of content windows and everything runs well.
I saved plate layer (gpml) and I saved project.

But in a new session after opening project or after importing gpml file, Topology has disappeared.
Pink layer is present but topology feature doesn’t appeared in plate layer.

Please help me to identify what I make wrong ?

Thanks

Fabrice

Hi Fabrice,

Do you think it might be something like this ?

Feel free to PM me your GPML and project files and I’ll take a look.

Regards,
John

Hi Fabrice,

Thanks for sending your test files.

The problem may be that your Feature_Line.shp, which you are using to build your topological polygon, has a Shapefile mapping that does not map feature IDs. As a result, when you load your Shapefile back in again, the original feature IDs are not retained and so the topological polygon cannot find any of its boundary references (and hence the topology is not visible).

In other words, if I open the Feature_Lines.shp.gplates.xml file I see:

<GPlatesShapefileMap version="1">
    <Begin>APPEARANCE</Begin>
    <End>DISAPPEARA</End>
    <Name>NAME</Name>
    <ReconstructionPlateId>PLATE_CODE</ReconstructionPlateId>
</GPlatesShapefileMap>

…which is missing a <FeatureId>FEATURE_ID</FeatureId> line. For example, the standard default mapping looks like:

<GPlatesShapefileMap version="1">
    <Begin>FROMAGE</Begin>
    <ConjugatePlateId>PLATEID2</ConjugatePlateId>
    <Description>DESCR</Description>
    <End>TOAGE</End>
    <FeatureId>FEATURE_ID</FeatureId>
    <FeatureType>GPGIM_TYPE</FeatureType>
    <GeometryImportTime>IMPORT_AGE</GeometryImportTime>
    <LeftPlate>L_PLATE</LeftPlate>
    <Name>NAME</Name>
    <ReconstructionMethod>RECON_METH</ReconstructionMethod>
    <ReconstructionPlateId>PLATEID1</ReconstructionPlateId>
    <RightPlate>R_PLATE</RightPlate>
    <SpreadingAsymmetry>SPREAD_ASY</SpreadingAsymmetry>
</GPlatesShapefileMap>

What you can do is simply save your Shapefile from within GPlates (see image below) before building any topologies that reference features in that Shapfile. In other words, load your Shapefile into GPlates (which has presumably never been loaded into GPlates before) and immediately save it. This will add the missing mapping fields above, ensuring that feature IDs will get saved as extra attributes into the Shapefile. Alternatively click the configure button to the left of the save button (in image below) and click OK, then save Shapefile.

Unfortunately it does mean you’ll need to re-build your topologies. This is because, unless you save your Shapefile using GPlates as mentioned above, every time you load the Shapefile (into GPlates) its features will get assigned new feature IDs (and your existing topologies will be referencing old feature IDs that are now lost).

In general I’d recommend working with GPML(Z) files exclusively when dealing with topologies and their referenced features (although I realize this can be difficult) to avoid issues like this - which includes things like potentially losing the feature ID attribute when manipulating the Shapefile outside GPlates. This is another area we hope to improve on a little bit when we re-structure the GPlates information model to Shapefile mapping (well, not just mapping to Shapefiles, but also other non-native formats).

Regards,
John

Thank you very much John

Excuse me for delay of my reply.

Your explanation were very clear and your solution right.
I understand limits and constraints.
So I modified my workflow to include it in.

Thanks again and I wish you the best

Fabrice