gpml.xsd 1.5.0232 (GPGIM 1.5) Wed Feb 13 15:05:23 2008
Copyright (C) 2007 The GPlates Consortium
See http://www.gplates.org for more information.
No longer imitating the content model from gml/3.1.1/base/measures.xsd gml:AngleType now; this approach seems simpler. Note: A lot of the angle types in GML 3.1.1 are deprecated.
Value of an angle quantity recorded as a single number, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for an angle, such as degrees or radians.
GPlates enforces a mandatory unique Id for each Feature. See gpml:featureId for more information.
gml:name with a specific codespace was considered, but in this case we want to ensure specific Features have such an Id.
All GPlates Features also have a revision Id. When a feature is modified by a user, it gets a new revision Id, and its list of superseded revisions is updated. This way we can do some important book-keeping to help us in situations where multiple feature collections are loaded/modified/saved/unloaded.
This lists all revisions of this feature that were superseded by this one. This is a more accurate way of keeping track of the past, older revisions of a feature.
It will be purged on occasion to ensure files do not get bloated from many small changes. Newly superseded revisionId s get unshifted onto the front/head of the list, older ones are at the end/tail of the list.
a simple linear 'version number' would fail if a feature collection was concurrently modified by multiple users and then merged.
Since a Feature in GPML will often correspond to a PLATES polyline (if a PLATES file was the original source of data), we include an optional reference to a Plates-compatible header object. This is used to keep metadata around if we import from a PLATES data file.
Every gpml:Feature can optionally have one or more subcategories assigned to it. These are free-form text strings, and behave very similarly to the gml:name property; they also possess a 'codeSpace=' attribute to indicate what convention was used when assigning this subcategory to this Feature.
Use of the .subcategory property is entirely optional, however it is useful in several situations. There are many possible subcategories of real-world:Features, and these are highly subjective, depending on scientist, dataset, and area of research. Permitting arbitrary subcategorisation in the GPGIM has two benefits. One, GPlates can to continue to treat those real-world:Features as the appropriate gpml:Feature since any subcategory must have the same properties as the parent gpml:Feature. Two, it allows the scientist to have a finer grain of control over the categorisation of those real-world:Features without messing around with XML trying to extend the GPGIM.
An example: Seamount s and Guyot s. A Guyot is a special case of Seamount with a flat top. Functionally, they are identical. A problem arises; do we create a GPGIM feature for both of them, or just use Seamount for both cases? Some scientists and datasets may not care about the distinction, and wish to treat everything as a gpml:Seamount without being forced to go over the data and classify everything. On the other hand, a "Guyot Expert" would be very interested in the distinction between the two. The .subcategory property allows you to do this, without forcing you to.
TimeVariantFeature is one of the parents to the majority of commonly used gpml:Features.
Most, but not all, features will ultimately inherit from our gpml:TimeVariantFeature in order to have the .validTime property. In contrast, features deriving from InstantaneousFeature require a TimeInstant rather than a TimePeriod, and they obtain this via the .reconstructedTime property.
The validTime parameter defines the position of this feature on the geological timescale.
Some Features may only exist between (say) 120Ma and 100Ma, others will be represented as a series of distinct Features, i.e. a MidOceanRidge at (lat,long) between 200Ma-160Ma and another MidOceanRidge (which happens to model the same physical thing) at (lat,long) between 160Ma-0Ma, perhaps due to it having radically different properties. Generally, it is preferable to use GPML's time-dependent properties where applicable, but since we will be importing PLATES data, this 'slicing' of features will be commonplace in real datasets.
Note that if a gpml:Feature is a ReconstructableFeature, it might potentially have more gml:TimePeriod s recorded in its .reconstructionPlateId property, as it is a time-dependent property. The validTime that we specify here should still be used as the master indication of the Feature's lifetime.
Most of the ReconstructableFeature tree is copied here. Instantaneous versions of gpml:Features are designed for export to other programs, which would have difficulty doing reconstructions themselves.
These features have different properties to their Reconstructable counterparts. Aside from the "big one" of not being rotatable via the action of Finite Rotations, their geometry is defined in terms of a specific time (.reconstructedTime) rather than being defined in present-day terms. This distinction also becomes more important with time-variant property values.
In comparison to ReconstructableFeature:-
- must be defined for only an instant.
- must have its geometry specified in its time-of-definition position (the time-of-definition may or may not be the present-day)
- will not have a gpml:reconstructionPlateId
Note, No properties of an InstantaneousFeature will be time-dependent!
Like ReconstructableFeature, InstantaneousFeatures should have at least one geometric presence.
As InstantaneousFeatures do not have a reconstruction plate ID property, they will be given a default reconstruction plate ID of 0 for display purposes.
an optional link to the ReconstructableFeature this Instantaneous snapshot was taken from, for historical interest.
the TimeInstant corresponding to the moment this InstantaneousFeature was converted from its Reconstructable original.
Normal GPlates Features store their geometry in present-day coordinates, and store reconstruction information to rotate them into paleo-coordinates. However, for exporting data into other GPML aware programs, i.e. GMT, it is necessary to do the rotations on behalf of the external application. The .reconstructedTime property of the Instantaneous feature records what time this Feature was reconstructed to by GPlates, (in Ma or whatever 'uom' and 'frame' you want in the TimePeriod).
Instantaneous features only really exist for a single instant, the TimeInstant in the reconstructedTime property, set when a snapshot is made of a ReconstructableFeature. The 'TimePeriod validTime' property of the ReconstructableFeature is no longer applicable.
However, the original information about the features' lifespan is still useful information. Isochrons in particular measure their age as their time-of-appearance. This information would be lost in InstantaneousIsochron snapshots unless the information is copied to this .validTime property.
This property may at first glance appear to be identical to TimeVariantFeature.validTime, and it is true that the value of this property should be the same; however it serves a different purpose (useful record of original data) and is in fact an entirely different .validTime property with a TimePeriod value.
in the spirit of not throwing away information, the plateId at time of conversion to an InstantaneousFeature type is recorded here. Unlike ReconstructableFeature.reconstructionPlateId, this is not a time-dependent property, and will only ever refer to one gpml:plateId.
A ReconstructableFeature may be rotated relative to another ReconstructableFeature by the action of Finite Rotations (Inside a TotalReconstructionSequence)
In comparison to InstantaneousFeature:-
- might be defined for only an instant
- must have its geometry specified in its present-day position
- must have a gpml:reconstructionPlateId
ReconstructableFeatures should have at least one geometric presence.
The plateId to use for reconstruction purposes. This property is a time-dependent one, but presently only supports a ConstantValue gpml:plateId.
In future releases, this is expected to be expanded to use a PiecewiseAggregation of multiple ConstantValues rather than a single ConstantValue, allowing different gpml:plateIds to be used varying through time.
Any feature which does not have a reconstruction plate ID property will be given a default reconstruction plate ID of 0. This will affect InstantaneousFeatures, and any other features, which don't have reconstruction plate IDs, whose geometries should be displayed.
Time-Dependency: Will later become a PiecewiseAggregation<gpml:plateId>.
Optional references to other Features that the user has indicated are supposed to be the same feature. While GPlates will treat each individual gpml:Feature separately, it is intended as a reminder that this Feature is part of a larger whole.
A common problem in PLATES datasets is the lack of any deformable geometry. This is often hacked around by creating multiple 'features' for the same real-world thing, for example, an Isochron getting subducted might have have been 'cut up' into multiple PLATES 'IS' features, to simulate the Isochron slowly disappearing. One day, this property will be used by a magical algorithm to undo all the 'cutting up' of features done in data sets for the purpose of hacking deformable geometry into PLATES.
Another example of this property in use is FractureZone.
An 'Instantaneous' copy of this class exists, InstantaneousTangibleFeature.
In contrast to TangibleFeature, this deals with geometry that has been arbitrarily created, or possibly derived from a TangibleFeature. For example, InferredPaleoBoundary is a plate boundary that is assumed to have existed, even though it has long since been subducted under the surface. OldPlatesGridMark is a sequence of lines defined in PLATES data files for annotation.
An 'Instantaneous' copy of this class exists, InstantaneousArtificialFeature.
A GPML-specific way to refer to a LineString property inside a Feature. In later versions of PropertyDelegate, this could be an XPath (or the various other X.. technologies) to the LineString itself, or some way to refer to the (Feature + appropriate property name). Most likely, the property we will be interested in referring to is "centerLineOf", but there could be others.
This is a single tag, and has special properties to point to the feature and property we are interested in.
This is so we don't paint ourselves into a corner later on. It's completely opaque to GML, and doesn't have quite the same potential for chaos as xlink:href does.
The stringified type of geometry, structural type etc that this PropertyDelegate can dereference to, as expressed through the template-like "T" parameter. This template parameter passed to PropertyDelegate from another property is a hint as to what types are expected when dereferencing.
The gpml:featureId that uniquely identifies the gpml:Feature containing the desired property.
Accessing a single property that is the direct child of the .targetFeature is accomplished by setting .targetProperty to the name of the property, such as "centerLineOf"
Accessing a nested property inside some complex Structural Type is a little more difficult. PropertyDelegates 1.0 will support a simple XPath-like syntax using "/*/" as a separator to specify the path. Example: "gpml:someProperty/*/gpml:someOtherProperty"
In PropertyDelegate 1.0, .targetProperty will start off being supported as a limited subset of an XPath expression.
The stringified type of Feature that this FeatureReference can dereference to, as expressed through the template-like "T" parameter. This template parameter passed to FeatureReference from another property is a hint as to what types are expected when dereferencing.
The gpml:featureId that uniquely identifies the desired gpml:Feature.
Used by InstantaneousFeature to supply a potentially-useful reference to the TimeVariantFeature that the Instantaneous snapshot was taken from.
The stringified type of Feature that this FeatureSnapshotReference can dereference to, as expressed through the template-like "T" parameter. This template parameter passed to FeatureSnapshotReference from another property is a hint as to what types are expected when dereferencing.
The gpml:featureId that uniquely identifies the desired gpml:Feature.
The gpml:revisionId that uniquely identifies the specific revision of the gpml:Feature this FeatureSnapshotReference should resolve to.
If the specific revision can not be obtained, this FeatureSnapshotReference will be unresolvable.
For preserving backwards compatibility and not "throwing away" information, if the original files came with PLATES header info, we can include them here and reference them in each AbstractFeature that is associated with that original PLATES file.
see http://gplates.fn.com.au/trac/wiki/PlatesLineFormat for the full description.
Rather than use the traditional gml:.metaDataProperty path, I'm making this a seperate entity, if we want to do the full blown GML meta data thing later, there's nothing stopping us, but a simple solution for now is just to have it as an optional property in every AbstractFeature.
It isn't immediately obvious if this structure should inherit from anything, I'm just making a stand alone structural type, it inherits from nothing in particular and is only used in AbstractFeature. This should make things reasonably simple when GPlates is looking for any PLATES fields.
2-digit integer
2-digit integer
4-digit integer
ASCII string, no specified character length
3-digit integer
6 char, 1 d.p float number, in Ma
6 char, 1 d.p float number, in Ma
ASCII string, 2 characters
4-digit integer
ASCII string, 1 character
3-digit integer
3-digit integer
5-digit integer, number of points (not counting the final "terminator" point (99.0000,99.0000))
The stringified version of the template-like "T" parameter. The template parameter passed to a TimeDependentPropertyValue will be stringified and put in the valueType property, to record what type this TimeDependentPropertyValue will store.
The ConstantValue time-dependent value needs to be very flexible regarding what it can hold. So we use "T" like a 'C++ template' or 'generic' type.
Annotation property; as the other time-dependent-property terminator, ConstantValue deserves a description field as much as TimeSample does.
The values and associated time instants that are to be used, and interpolated as necessary.
The method to use to interpolate between TimeSlices.
Used in IrregularSampling time dependent property values, e.g. SlerpInterpolation, to provide the data points to interpolate between.
The TimeSample time-dependent value needs to be very flexible regarding what it can hold. So we use a 'C++ template' or 'generic' type, T.
The time instant associated with this sample value.
Annotation property; this will be most useful to annotate the IrregularSampling of FiniteRotations used in TotalReconstructionSequence, mirroring comments commonly found in PLATES rotation files.
The stringified version of the template-like "T" parameter. The template parameter passed to a TimeSample will be stringified and put in the valueType property, to record what type this TimeDependentPropertyValue will store.
in PLATES rotation files, a common technique is to use a moving plate ID of 999 to "comment out" a line (a single total reconstruction pole within the total reconstruction sequence)
However, it *should still remain within the sequence* when the sequence is loaded, it should just be disabled/deactivated/whatever. This boolean allows for this behaviour.
These TimeWindows will contain a TimePeriod, plus another TimeDependentPropertyValue - this way we can join several different methods of time-dependency together, such as a ConstantValue followed by a IrregularSampling followed by another ConstantValue.
Used in PiecewiseAggregation time dependent property values to join different methods of time-dependency together with TimeWindows.
The TimeSample time-dependent value needs to be very flexible regarding what it can hold. So we use a 'C++ template' or 'generic' type, T.
The stringified version of the template-like "T" parameter. The template parameter passed to a TimeWindow will be stringified and put in the valueType property, to record what type this TimeDependentPropertyValue will store.
used in IrregularSampling to interpolate between TimeSlices.
This is an interpolation function designed to interpolate between FiniteRotations.
Referring to it as an empty standalone xml element, instead of some predefined text string, has the advantage that we can add parameters to it later if necessary.
This will appear in the XML as a simple <gpml:FiniteRotationSlerp /> element, to indicate the type of interpolation desired in the IrregularSampling TimeDependentPropertyValue.
The "Instantaneous" view of a PlateSlab's closed boundary at an instant in time. It is only valid for a specific time, not reconstructable, and the geometry of this boundary is a simple polygon. The coordinates used are paleo-coordinates. Instantaneous features are designed for export to programs that are not able to reconstruct features themselves. This InstantaneousClosedPlateBoundary would most likely have been derived from a ClosedPlateBoundary.
An instantaneous snapshot of the plate boundary, represented as a polygon using paleo-coordinates.
a simple geometric view of a PlateSlab's closed boundary, possibly derived from a TopologicalClosedPlateBoundary. It is reconstructable, and so the polygon is encoded using present-day coordinates. This type of plate boundary might be most useful as a "Grid Mask" for gridded data relating to the plate.
Some standard properties are very useful for a ClosedPlateBoundary. The .reconstructionPlateId property inherited from ReconstructableFeature will allow us to associate one (or more, potentially) gpml:plateId s with the plate boundary, gml:name can be used to name the plate, and validTime indicates the lifetime of this plate polygon.
A stand-alone, reconstructable image of the plate boundary, represented as a polygon using present-day-coordinates.
Similar (but not identical) to InstantaneousClosedPlateBoundary, but for crust type differences (oceanic-continental). It is only valid for a specific time, not reconstructable, and the geometry of this boundary is represented in paleo-coordinates.
See also: ClosedContinentalBoundary, TopologicalClosedContinentalBoundary, and PassiveContinentalBoundary.
type of the crust contained within this boundary: enumeration.
= "Continental" : the interior of this boundary is a region of continental crust.
= "Oceanic" : the interior of this boundary is a region of oceanic crust.
= "Unknown" : the value of this property is officially unknown; there is no information about which type of crust this boundary is defining.
<not present> : This property is optional. If not present, it indicates that there is no information about which side of the boundary is continental crust and which is oceanic, only that the boundary exists. The property is unspecified or indeterminate.
.edge is an enumeration:
= "InnerContinentalBoundary" : This Closed Continental Boundary defines the Inner edge of the continental boundary (closest to centre of continental crust - note that in the less common case of defining a closed boundary of type=oceanic crust, the "Inner" enumeration still refers to the innermost edge of -Continental- crust.)
= "OuterContinentalBoundary" : This Closed Continental Boundary defines the Outer edge of the continental boundary (furthest away from centre of continental crust, closest to oceanic crust - note that in the less common case of defining a closed boundary of type=oceanic crust, the "Outer" enumeration still refers to the outermost edge of -Continental- crust.)
= "Unknown" : This Closed Continental Boundary was digitised or imported without any data telling us how the boundary was chosen with regard to inner and outer edges of the continental crust. The value of this property is officially unknown.
<not present> : This property is optional. If not present, it indicates that there is no information about which edge of the boundary polygon is represented by this line. The property is unspecified or indeterminate.
an instantaneous snapshot of the crust boundary, represented as a polygon using paleo-coordinates.
Similar (but not identical) to ClosedPlateBoundary, but for crust type differences (oceanic-continental). It can be rotated via the usual reconstruction mechanisms, and the geometry of this boundary is represented in present-day-coordinates.
See also: InstantaneousClosedContinentalBoundary, TopologicalClosedContinentalBoundary, and PassiveContinentalBoundary.
type of the crust contained within this boundary: enumeration.
= "Continental" : the interior of this boundary is a region of continental crust.
= "Oceanic" : the interior of this boundary is a region of oceanic crust.
= "Unknown" : the value of this property is officially unknown; there is no information about which type of crust this boundary is defining.
<not present> : This property is optional. If not present, it indicates that there is no information about which side of the boundary is continental crust and which is oceanic, only that the boundary exists. The property is unspecified or indeterminate.
.edge is an enumeration:
= "InnerContinentalBoundary" : This Closed Continental Boundary defines the Inner edge of the continental boundary (closest to centre of continental crust - note that in the less common case of defining a closed boundary of type=oceanic crust, the "Inner" enumeration still refers to the innermost edge of the -Continental- crust.)
= "OuterContinentalBoundary" : This Closed Continental Boundary defines the Outer edge of the continental boundary (furthest away from centre of continental crust, closest to oceanic crust - note that in the less common case of defining a closed boundary of type=oceanic crust, the "Outer" enumeration still refers to the outermost edge of the -Continental- crust.)
= "Unknown" : This Closed Continental Boundary was digitised or imported without any data telling us how the boundary was chosen with regard to inner and outer edges of the continental crust. The value of this property is officially unknown.
<not present> : This property is optional. If not present, it indicates that there is no information about which edge of the boundary polygon is represented by this line. The property is unspecified or indeterminate.
a stand-alone, reconstructable snapshot of the plate boundary, represented as a polygon using present-day-coordinates.
e.g. the InferredPaleoBoundary between India and Asia that has since been subducted under the Himalaya.
An 'Instantaneous' copy of this class exists, InstantaneousInferredPaleoBoundary.
All geometry defined for the feature where the purpose is not given or unclear.
The inferred boundary. This is the default location for imported geometry.
An optional error boundary for the feature. Note that we can use LineStrings or Polygons or a combination of both - anything substitutable for gml:_Geometry.
When a specific depth/height/z-value is associated with this geometry via the 'level' property, it can be called a Contour. Otherwise the term 'Extent' is more suitable, but the two share many properties.
Contours can also have information about the origin of their geometry:
The most common use for this class will be Bathymetric Contours. These are 'picked' from a Bathymetry grid, and are conours because they follow a particular depth, for example, the "2000m" contour.
When the 'level' property is omitted, this geometric type can be used for defining the extents of features based on some gridded data, such as a Gravity map, but without implying that all points of the extent share the same elevation.
There are some standard, commonly used types of Contour, such as Bathymetry or Topography. However, practically any field or gridded data might be used to create contours.
For example, picking the extent of an extinct IslandArc might be done from looking at a Gravity grid and choosing the outline by hand. There is no specific criteria used, unlike when defining a Contour.
As this class derives from gml:AbstractGeometryType in order to be substitutable for gml:_Geometry, it cannot inherit the standard gpml:subcategory property. As it is highly useful for contour types, it is defined directly.
Suggested Subcategories:
= "Bathymetry" : A contour measuring depth of the ocean floor beneath sea level.
= "Topography" : A contour measuring height of land above sea level.
= "Gravity" : chosen from a Gravity grid.
= "Magnetic" : chosen from a Magnetic grid.
'description' is for specific notes relating to this particular Contour.
since Contour is neither a gpml:Feature nor a gml:Feature, we need to explicitly include support for a free-form text description field.
The geometry of the Contour specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon.
As this is a geometry type, it makes little sense to define "This is the default location of imported geometry"; this -is- geometry, any importing or default semantics is left up to the parent gpml:Feature.
Note on Time-Dependency: Contours will themselves be wrapped up in TimeDependentPropertyValue as appropriate for the containing gpml:Feature's property.
The value or criteria or level that the contour was chosen for. For marine science, which mostly deals with Bathymetric contours, this criteria would be depth : for instance, a depth of 2000m. Above sea level, this would be a Topographic contour, which might still measure the contour level in metres but measures the height as opposed to the depth. It is even conceivable that someone may want to pick out a "Gravity" contour from a gravity grid; the 'level' of the contour might now be measured in mGals, and words like 'height' and 'depth' have little meaning. Hence the rather general name of this property.
When this property is absent, it implies missing data for a Contour, or a Contour chosen with no regard to following a specific level (an "Extent")
Then why not give it a more abstract name? Because 'Contour' has special meaning to geoscientists and is a favourite 'go-to' word.
Assorted contour-like data and (in future releases) gridded data share AbstractField as a parent class.
Types of contour (and later, gridded) data include: Bathymetry, Topography, Gravimetry, Magnetics, GlobalElevation, OceanicAge, CrustalThickness, DynamicTopography, MantleDensity, HeatFlow, SedimentThickness, Roughness, SpreadingRate, SpreadingAsymmetry, Stress
This is because all contoured data is picked from a gridded source, and similarly with most stand-alone outline data. In addition, there are many, many types of gridded data that we may wish to use in the future. With most of these types, it still makes sense to be able to pick outlines and contours from the grid - they are useful in many cases.
The following list derived from some of the actual data files on Maria's filesystem.
An 'Instantaneous' copy of this class exists, InstantaneousAbstractField.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry along with gpml:Contour (which will in turn use more gml:_Geometry - gml:LineString and gml:Polygon in particular). This is the default location for imported geometry.
Time-dependent, because although rotatable shifting deforming contours through time sounds like a mouthful, Simula has an interest in this and we should leave the door open.
Usually measured in m (depth)
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousBathymetry.
Usually measured in m (height)
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousTopography.
Usually measured in mGal
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousGravimetry.
Usually measured in mT
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousMagnetics.
Though it is probably a good idea to keep Bathymetry and Topography seperate due to their differences, there are plenty of instances of merged data sets combining ocean depth with land height fields. This Feature supports those cases.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousGlobalElevation.
While oceanic age is most frequently represented with grids, it is still useful to pick out contours of specific ages.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousOceanicAge.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousCrustalThickness.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
Seismic Tomography (MantleDensity) is used as a source of data to create DynamicTopography.
An 'Instantaneous' copy of this class exists, InstantaneousDynamicTopography.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
MantleDensity data can be applied to the creation of DynamicTopography grids.
An 'Instantaneous' copy of this class exists, InstantaneousMantleDensity.
Heat flow is typically measured by placing devices on the ocean floor to measure temperature. For example, heat will emanate from a MidOceanRidge.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousHeatFlow.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
e.g. http://www.usawaterquality.org/conferences/2005/Posters/Negrini.pdf
An 'Instantaneous' copy of this class exists, InstantaneousSedimentThickness.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This feature is an example of one which would use gridded data almost exclusively, with little need for Contours and outlines. However, in any case of gridded data, there is the possibility that such contours may be desirable, and should be available as an option.
An 'Instantaneous' copy of this class exists, InstantaneousRoughness.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousSpreadingRate.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousSpreadingAsymmetry.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
An 'Instantaneous' copy of this class exists, InstantaneousStress.
Plate-tectonic features that can form boundaries between plates fall under this class.
An 'Instantaneous' copy of this class exists, InstantaneousTectonicSection.
All geometry defined for the feature where the purpose is not given or unclear.
The central line defining the tectonic feature, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this tectonic section.
Annotation property describing the plates on the "left" side of this tectonic section. Not to be used for reconstruction purposes, as these properties would be an imprecise representation of the crust on each side in many cases. Primarily of interest to the MidOceanRidge feature, where it is used for the purpose of a richer description.
Not a time-dependent property because, for MidOceanRidge at any rate, that's insanity. A MidOceanRidge -generates- crust. For other boundary features, like SubductionZone, this property is only really used as annotation, (i.e. "this SZ is mostly consuming plate 541") and doesn't need to be over-complex.
This property doesn't support multiple plateIds per side for similar reasons to the ones above; in the case of MidOceanRidge, the usefuless of this property hinges on the potential to e.g. interpolate between both sides of the MOR and determine velocity. If more than one plateId per side were supported, topology would have to be taken into consideration, and pieces would have to move at different rates - and so the MOR would have to be broken up into segments, PLATES style. Perhaps when we get segmented MORs in the next release GPGIM, we can consider these extra possibilities. Until then, there's really no point in making this more complex than it needs to be.
Annotation property describing the plates on the "left" side of this tectonic section. Not to be used for reconstruction purposes, as these properties would be an imprecise representation of the crust on each side in many cases. Primarily of interest to the MidOceanRidge feature, where it is used for the purpose of a richer description.
Not a time-dependent property because, for MidOceanRidge at any rate, that's insanity. A MidOceanRidge -generates- crust. For other boundary features, like SubductionZone, this property is only really used as annotation, (i.e. "this SZ is mostly consuming plate 541") and doesn't need to be over-complex.
This property doesn't support multiple plateIds per side for similar reasons to the ones above; in the case of MidOceanRidge, the usefuless of this property hinges on the potential to e.g. interpolate between both sides of the MOR and determine velocity. If more than one plateId per side were supported, topology would have to be taken into consideration, and pieces would have to move at different rates - and so the MOR would have to be broken up into segments, PLATES style. Perhaps when we get segmented MORs in the next release GPGIM, we can consider these extra possibilities. Until then, there's really no point in making this more complex than it needs to be.
The MidOceanRidge class needs to be pretty flexible. In the PLATES methodology, MOR lines are typically used to represent both the 'spreading' and 'transform' sections of the ridge - and so a lot of older data sets will have rigid MidOceanRidges once they are imported. Ideally, they would use an explicit Transform to join up MidOceanRidge and SubductionZone pieces.
The other area that MidOceanRidge needs to encompass is those ridges that have become an "Extinct Ridge" through a process of ridge propagation. This is handled via the .isActive time-dependent property below.
It is possible that later releases of the GPGIM will support a single MidOceanRidge Feature with heterogenous 'segments'.
An 'Instantaneous' copy of this class exists, InstantaneousMidOceanRidge.
'true' while this MidOceanRidge is still active, 'false' if it has since become an "Extinct Ridge" due to ridge propagation in the area. Optional - if not present for a given time period, it is safe to assume the ridge is still actively generating crust.
Due to ridge jump / propagation, and various plate-tec forces in the region, a midoceanridge-transformfault-midoceanridge area may start ignoring the extra midoceanridge and transform, and instead start 'propagating' one ridge to take over the job of the other.
An "Extinct Ridge" is a MidOceanRidge that has 'died' by this process, and no longer creates oceanic crust.
#Time-Dependency: This property can be time-dependent - in most data, it would likely be a simple ConstantValue<boolean>, but if the user wishes to model the activity over time, the data could use PiecewiseAggregation<boolean>, supporting separate TimeWindows to describe the active period and inactive period of this MidOceanRidge.
Functionally, this behaves similarly to MidOceanRidge, but a ContinentalRift is defined for continental crust only.
An 'Instantaneous' copy of this class exists, InstantaneousContinentalRift.
The standard model of a subduction zone is a linear tectonic region which consumes plate material on one side, while being largely 'attached' to a plate on the other side. Similarly to MidOceanRidge, the leftPlate and rightPlate properties are often set to advise approximately which plate is being consumed. The SubductionZone is always 'attached' to the overriding plate, as far as the gpml:plateIds are concerned.
Not necessarily a 'Zone', could be a linelike feature or have an additional polygon geometry.. The gml property .centerLineOf is used to indicate where the subducting plate meets the overriding plate.
An 'Instantaneous' copy of this class exists, InstantaneousSubductionZone.
Indicates the side of the line that the subducting slab is on. The overriding slab will be on the opposite side.
.subductingSlab is an enumeration: Assuming there is a suitable centerLineOf supplied, and understanding that the order of points in the line matters, we can establish a "left" side and a "right" side to the .centerLineOf. this property indicates which of those "left" and "right" sides the subducting slab is on. The overriding plate will be on the opposite side.
= "Left" : The subducting slab is on the left of this SubductionZone, according to the directed gml:LineString .centerLineOf
= "Right" : The subducting slab is on the right of this SubductionZone, according to the directed gml:LineString .centerLineOf
= "Unknown" : the value of this property is officially unknown; there is no information about which side of the SubductionZone is which.
<not present> : This property is optional. If not present, it indicates that there is no information about which side the subducting slab is on. The property is unspecified or indeterminate.
#Time-Dependency: Most common use-case would be a ConstantValue<enumeration>, but there is the --possibility-- that a single SubductionZone may change polarity, and that someone may want to model that in GPML, in which case the data would be a PiecewiseAggregation<enumeration>
Since there could be multiple small island arcs that are part of a large subduction zone, we will let the subduction zone keep track of its associated IslandArc(s), if any.
The standard model of an orogenic belt is a linear tectonic region in a mountainous region where two plates have collided. Similar to a subduction zone, one plate has often overridden the other, so we use a similar model to that of gpml:SubductionZone. As with MidOceanRidge, the leftPlate and rightPlate properties are set to advise approximately which plate is overriding which.
While certainly OrogenicBelt can be treated similarly to SubductionZone, as there was presumably a SubductionZone that pulled the OrogenicBelt into existence (eg India & Asia), there exists potential for there to be no clearly defined overriding & overridden plate. Similar to SubductionZone, we have a .subductingSlab property which is optional.
An 'Instantaneous' copy of this class exists, InstantaneousOrogenicBelt.
Indicates the side of the line that the subducting slab is on (if applicable). The overriding slab will be on the opposite side.
.subductingSlab is an enumeration: Assuming there is a suitable centerLineOf supplied, and understanding that the order of points in the line matters, we can establish a "left" side and a "right" side to the .centerLineOf. this property indicates which of those "left" and "right" sides the subducting slab is on. The overriding plate will be on the opposite side.
= "Left" : The subducting slab is on the left of this OrogenicBelt, according to the directed gml:LineString .centerLineOf
= "Right" : The subducting slab is on the right of this OrogenicBelt, according to the directed gml:LineString .centerLineOf
= "Unknown" : the value of this property is officially unknown; there is no information about which side of the OrogenicBelt is which.
<not present> : This property is optional. If not present, it indicates that there is no information about which side the subducting slab is on. The property is unspecified or indeterminate.
#Time-Dependency: Most common use-case would be a ConstantValue<enumeration>, but there is the --possibility-- that a single SubductionZone (or OrogenicBelt in this case) may change polarity, and that someone may want to model that in GPML, in which case the data would be a PiecewiseAggregation<enumeration>
Used to link MidOceanRidge s and SubductionZone s together to form a closed plate boundary.
This may not see as much use as MidOceanRidge; the current methodology employed in PLATES data files typically ignores Transforms altogether, and uses 'MOR' lines for both the spreading ridge and the transform 'kink's. In addition, the parts of simple PLATES-style Isochron lines that are perpendicular to the ridge can also be considered 'transforms' or 'fracture zones', because they indicate the paleo-offset between two ridge sections.
An 'Instantaneous' copy of this class exists, InstantaneousTransform.
.motion is an enumeration: types are:
= "LeftLateral" : also called Sinistral motion. When viewed from one side of the Transform boundary, the opposite side appears to be moving to the observer's left.
= "RightLateral" : also called Dextral motion. When viewed from one side of the Transform boundary, the opposite side appears to be moving to the observer's right.
= "Unknown" : the value of this property is officially unknown; there is no information about the transform's motion.
= "None" : There is no motion along the this Transform. Unlikely in this case but included for consistency with Fault.strikeSlip
<not present> : This property is optional. If not present, it indicates that there is no information about the motion of this Transform boundary. The property is unspecified or indeterminate.
#Time-Dependency: Most common use-case would be a ConstantValue<enumeration>, but there are surely instances of Transforms' motion changing direction, and that means someone may want to model that in GPML, in which case the data would be a PiecewiseAggregation<enumeration>
In PLATES, small fracture-zone lines are used in a segmented fashion- each segment of the line has an appropriate time of appearance and time of disappearance, to simulate the growth of the fracture zone.
For GPlates and GPML, a more ideal solution would treat the entire FractureZone as one complete gml:Feature, with its geometry being time-dependent (possibly using locus geometry). For the present, it is better to follow the older PLATES method, since that is how much of the data is structured and it would require a human to reconstitute the segments.
gpml:FractureZone has an advantage over the old PLATES format; all gpml:ReconstructableFeatures have an optional property called .truncatedSection, which allows for one or more FractureZone pieces to be semantically linked.
Interestingly, a FractureZone's geometry is a SmallCircleArc, roughly indicating the rotation pole when the Transform that created it was active.
An 'Instantaneous' copy of this class exists, InstantaneousFractureZone.
A quite simple, linelike boundary indicating the change between continental and oceanic crust. Since this change is broad and hard to pin down, we expect two main types of continental boundary, an "Inner" ContinentalBoundary and "Outer" ContinentalBoundary. Naturally, which of these labels gets used to describe a gpml:PassiveContinentalBoundary depends largely on the source of the data, who digitized the line, and whether that aspect of the data was recorded in the original source.
Does not have to be closed, can be a simple line segment. For closed polygons, you want InstantaneousClosedContinentalBoundary and ClosedContinentalBoundary.
An 'Instantaneous' copy of this class exists, InstantaneousPassiveContinentalBoundary.
.edge is an enumeration:
= "InnerContinentalBoundary" : This PassiveContinentalBoundary defines the Inner edge of the continental boundary (closest to centre of continental crust)
= "OuterContinentalBoundary" : This PassiveContinentalBoundary defines the Outer edge of the continental boundary (furthest away from centre of continental crust, closest to oceanic crust)
= "Unknown" : This PassiveContinentalBoundary was digitised or imported without any data telling us how the boundary was chosen with regard to inner and outer edges of the continental crust. The value of this property is officially unknown.
<not present> : This property is optional. If not present, it indicates that there is no information about which edge of the boundary is represented by this line. The property is unspecified or indeterminate.
.continentalSide is an enumeration: Assuming there is a suitable centerLineOf supplied, and understanding that the order of points in the line matters, we can establish a "Left" side and a "Right" side to the .centerLineOf. this property indicates which direction leads to the continental crust.
= "Left" : The continental crust for this PassiveContinentalBoundary can be found to the left, oceanic crust can be found on the right. Depending on the .edge of this PassiveContinentalBoundary, this may also imply some transitional "grey area" crust is on one side or the other.
= "Right" : The continental crust for this PassiveContinentalBoundary can be found to the right, oceanic crust can be found on the left. Depending on the .edge of this PassiveContinentalBoundary, this may also imply some transitional "grey area" crust is on one side or the other.
= "Unknown" : No information is known about which {continental,oceanic} side is which for this PassiveContinentalBoundary. This property is officially unknown.
<not present> : This property is optional. If not present, it indicates that there is no information about which side of the boundary is continental crust and which side is oceanic. The property is unspecified or indeterminate.
For the GPGIM1.5, we just want a simple, rigid Isochron replacement for the PLATES model. It includes Paleo-Ridge and Paleo-Transform sections.
A common property associated with an Isochron is its "age". It defines the point in time that this Isochron is believed to originate at, in Ma. However, we already have a .validTime property inherited from TimeVariantFeature, so to work out the 'age' of the Isochron, one can look at .validTime(a TimePeriod).begin(a TimeInstant)
An 'Instantaneous' copy of this class exists, InstantaneousIsochron.
A reference to the 'pair' or 'twin' of this isochron. Due to Isochrons getting split into pieces in PLATES data, it must support more than one conjugate on the other side of the MOR.
A reference to the plate Id (general-purpose plate Id or specific plate Id for motion of a cluster of Features) that has the 'pair' or 'twin' of this isochron. Due to Isochrons getting split into pieces in PLATES data, it must support more than one conjugate on the other side of the MOR. This property is intended to support transition from PLATES style information to the feature-centric GPlates model.
All geometry defined for the feature where the purpose is not given or unclear.
The central line defining the Isochron, using gml:LineString for the digitization, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
The 'pick' is taken from the magnetic anomaly reading and the ship path.
An 'Instantaneous' copy of this class exists, InstantaneousMagneticAnomalyIdentification.
lat/long point indicating the physical location of the pick.
not time dependent because it is just a point, points don't deform.
text code indicating which Polarity Chron this pick is linked to: other picks on different ship-tracks will share this Id if they belong to the same Chron. e.g. "C34"
note that we want this to be unique for each Chron, so the tradition of packing extra info like the 'young/old' value onto the end of the Id ("C34o0.2") is discouraged; polarityChronOffset can be used to store the young/old offset, and any miscellaneous extra information can go in metadata, gml:name, gml:description, or gpml:subcategory as appropriate.
it is called "polarity chron" because it is the 'chron' of all positions sharing the same polarity.
A number from 0.0 to 1.0, indicating the proportion from 'young' to 'old'; 0.0 = young, 1.0 = old; This property stores the offset of this pick's chron position compared to the synthetic chron.
Optional reference to the MagneticAnomalyShipTrack that this pick originates from.
For now, this allows us to define the map-view path taken by a particular ship for magnetic anomaly data. You can give it a 'ship track Id' if you want, via gml:name. The MagneticAnomalyIdentification s or 'picks' have a reference to this Feature to indicate the particular ship track that the pick originated from.
in future releases, this Feature may also be used to contain the magnetic "wiggle" recorded along the ship track.
An 'Instantaneous' copy of this class exists, InstantaneousMagneticAnomalyShipTrack.
All geometry defined for the feature where the purpose is not given or unclear.
The central line defining the path the ship took, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
An (optional) reference to the MagneticAnomalyIdentification s recorded from this ship track data. A reference because these data sometimes exist independently of each other, so they should both be gpml:Features, Optional because you may get a bunch of picks all in close proximity and things stop being clear, odd datasets, etc.
The 'pick' can be taken from a magnetic anomaly reading and a ship track - or it can be taken from some other gridded data source, or chosen without any justification at all.
These picks are useful to create Isochrons and align them.
As a FractureZoneIdentification can be picked from a wide variety of sources, it is recommended to use the standard gpml:subcategory property if you want to indicate where this pick comes from.
Suggested Subcategories:
= "Bathymetry" : chosen based on a Bathymetry grid.
= "Topography" : chosen based on a Topography grid.
= "Gravity" : chosen based on a Gravity grid.
= "Magnetic" : chosen based on a Magnetic grid.
An 'Instantaneous' copy of this class exists, InstantaneousFractureZoneIdentification.
lat/long point indicating the physical location of the pick.
not time dependent because it is just a point, points don't deform.
text code indicating which Polarity Chron this pick is linked to: other picks on different ship-tracks will share this Id if they belong to the same Chron. e.g. "C34"
it is called "polarity chron" because it is the 'chron' of all positions sharing the same polarity.
We want this to be unique for each Chron, so packing extra info like the 'young/old' value onto the end of the Id ("C34o0.2") is discouraged; polarityChronOffset can be used to store the young/old offset, and any miscellaneous extra information can go in metadata, gml:name, gml:description, or gpml:subcategory as appropriate.
A number from 0.0 to 1.0, indicating the proportion from 'young' to 'old'; 0.0 = young, 1.0 = old; This property stores the offset of this pick's chron position compared to the synthetic chron.
Optional reference to the MagneticAnomalyShipTrack that this pick originates from.
an AbstractGeologicalPlane by itself will not be instantiated; You want a subcategory of GeologicalPlane(BeddingPlane, CleavagePlane), or perhaps a FoldPlane, or one of the various specialisations of GeologicalContact.
An 'Instantaneous' copy of this class exists, InstantaneousAbstractGeologicalPlane.
All geometry defined for the feature where the purpose is not given or unclear.
The central line defining the tectonic feature, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
As with many LineStrings in GPML, the ideal situation would enforce a single line where the order of points is kept constant, in order to establish that the line is directed and create a situation where we can describe the "left" and "right" sides of the line. But the ideal situation may not always be available, especially with data imported from other sources.
Naturally, this is the map-view or 'strike' of the surface or plane for GPlates to use, not a cross-section. Cross-sections may come later.
The side of the line that the 'dip' is on, giving a hint at what the plane of the surface looks like.
= "Left" : The Plane (e.g. Fault) dips to the 'Left' of this line (relative to the order of points defining the Strike)
= "Right" : The Plane (e.g. Fault) dips to the 'Right' of this line (relative to the order of points defining the Strike)
= "Undefined" : If the Dip angle of the Plane is 90 degrees (straight down), this property is not clearly defined regardless of its value. For new data, it may be convenient to assign it this "Undefined" value, but bear in mind that when .dipAngle == 90, any value the .dipSide property takes should be considered arbitrary.
= "Unknown" : the value of this property is officially unknown; there is no information about the dip of the GeologicalPlane (for example, the plane of a Fault's surface.).
<not present> : This property is optional. If not present, it indicates that there is no information about dip of this Plane. The property is unspecified or indeterminate.
Important note: it is unlikely, but possible, for the 'dipAngle' of a Fault(or any other Plane) to be 90 degrees, in other words, straight down. In this case, the 'dipSide' is not clearly defined, and any value this property takes should be considered arbitrary. The value "Undefined" can be used if desired, but bear in mind that data imported from other sources may come with a specific direction which is nevertheless irrelevant.
The angle of the 'Dip' of the Plane (BeddingSurface, Unconformity, Fault etc). It is the acute angle measured from the horizontal at the top of the Dip.
<not present> : This property is optional. If not present, it indicates that there is no information about the dip of this GeologicalPlane available. The property is unspecified or indeterminate.
While there are a few common clear-cut types of GeologicalPlane, such as a "BeddingPlane" or "CleavagePlane", field geologists may desire many other subcategories of GeologicalPlane, or subcategories of CleavagePlane etc, and this can get very subjective. Therefore, spplication of the .subcategory property (present in all gpml:Features) is advised.
Suggested Subcategories:
= "BeddingPlane" : Surface plane indicator based on the stratum from the same rock unit.
= "CleavagePlane" : Surface plane indicator based on the cleavage within the rock unit.
An 'Instantaneous' copy of this class exists, InstantaneousGeologicalPlane.
Unlike GeologicalPlane(BeddingPlane) and GeologicalPlane(CleavagePlane), which are direct field observations, a FoldPlane is inferred based on many different observations. However, it still shares the same basic properties of a surface indicator, a strike, dip side, and dip angle.
An 'Instantaneous' copy of this class exists, InstantaneousFoldPlane.
Type of annotation for this FoldPlane. Appears as symbols along the line of the fold;
= "Syncline" : Arrows pointing inward
= "Anticline" : Arrows pointing outward
= "None" : No annotation
= "Unknown" : There is no data about the type of this FoldPlane.
<not present> : This property is optional; if not present, it indicates that the annotation is unspecified or indeterminate.
An AbstractGeologicalContact is simply the surface along which two different rock types are juxtaposed.
An 'Instantaneous' copy of this class exists, InstantaneousAbstractGeologicalContact.
AbstractGeologicalContact by itself will not be instantiated; You want a type of Unconformity or Fault or UnknownContact for that.
This property defines what is on the "Left" side of the contact, using an AbstractRockUnit. Particular implementations of AbstractRockUnit can include BasicRockUnit for simple free-text descriptions plus an extent, or more complex rock unit definitions.
Assuming there is a suitable centerLineOf supplied, and understanding that the order of points in the line matters, we can establish a "Left" and "Right" side of the centerLine.
This property defines what is on the "Right" side of the contact, using an AbstractRockUnit. Particular implementations of AbstractRockUnit can include BasicRockUnit for simple free-text descriptions plus an extent, or more complex rock unit definitions.
Assuming there is a suitable centerLineOf supplied, and understanding that the order of points in the line matters, we can establish a "Left" and "Right" side of the centerLine.
an Unconformity is a type of AbstractGeologicalContact. As such, it inherits GeologicalContact's properties '.leftUnit' and '.rightUnit', which allow you to specify what AbstractRockUnits are separated by this Unconformity.
an Unconformity is not the same as a Fault.
An 'Instantaneous' copy of this class exists, InstantaneousUnconformity.
Unlike Unconformity and Fault, which deal with fine-grained map views, UnknownContact is for regional scale map views which don't necessarily correspond to physical Faults and Unconformities.
An 'Instantaneous' copy of this class exists, InstantaneousUnknownContact.
Map-view of Faults. Fault now inherits from AbstractGeologicalContact, so we gain the ability to specify what geological rock units lie on either side of the Fault.
Note in the description that a Fault has "observable relative displacement": A Fault is defined by displacement. This is what distinguishes a Fault from an Unconformity. A Detachment is a subcategory of Fault; generally a Detatchment implies massive displacement involved.
We already inherit a centerLineOf via AbstractGeologicalContact and AbstractGeologicalPlane. This line is the 'Strike' of the Fault. This should ideally be a directed line where the order of points matters because we need to define what lies on either side.
We also inherit the description of the 'Dip' of this Fault via AbstractGeologicalContact and AbstractGeologicalPlane. There are two properties, .dipSide and .dipAngle.
There are many different ways to classify a Fault, and they are highly subjective, so remember that we have the 'subcategory' property available.
Suggested Subcategories:
= "Thrust" : A Thrust fault is a term often given to a special case of reverse or compression fault where the hanging wall has thrusted completely over the foot wall. Additional information about e.g. Folding (which might warrant additional subcategories), or perhaps describing specific patterns of the Thrust e.g. "Snake Head", make this an ideal candidate for the .subcategory property.
= "Detachment" : Often used to describe massive movements of rock created from e.g. detachment of rock from a subducting plate which has moved onto the overriding plate.
here's what Dictionary of Earth Sciences p201 has to say:
Approximately plane surface of fracture in a rock body, caused by brittle failure, and along which observable relative displacement has occurred between adjacent blocks. Most faults may be broadly classified according to the direction of slip of adjacent blocks into dip-slip, strike-slip, and oblique-slip varieties. The term 'dip-slip fault' comprises both normal and reverse slip faults, and the special cases of low-angle lag and thrust faults. Strike-slip faults {wrench, transform, transcurrent} result from horizontal displacement {dextral or sinistral movements} and on a regional scale may involve transpression and transtension.
An 'Instantaneous' copy of this class exists, InstantaneousFault.
The motion along the 'strike', or map-view line of the Fault.
= "LeftLateral" : also called Sinistral motion. When viewed from one side of the Fault, the opposite side appears to be moving to the observer's left.
= "RightLateral" : also called Dextral motion. When viewed from one side of the Fault, the opposite side appears to be moving to the observer's right.
= "Unknown" : the value of this property is officially unknown; there is no information about the strike motion.
= "None" : There is no motion along the strike of this Fault.
<not present> : This property is optional. If not present, it indicates that there is no information about the strike motion of this Fault. The property is unspecified or indeterminate.
The motion along the 'dip', or cross-section line of the Fault.
= "Extension" : also called a 'normal' fault. The two sides of the Fault are sliding away from each other.
= "Compression" : also called a 'reverse' fault. The two sides of the Fault are sliding towards each other.
= "None" : There is no motion along the dip of this Fault.
= "Unknown" : the value of this property is officially unknown; there is no information about the dip motion.
<not present> : This property is optional. If not present, it indicates that there is no information about the dip-slip of this Fault. The property is unspecified or indeterminate.
For Faults with both Dip-Slip and Strike-Slip motion (sometimes termed "Oblique Slip"), this property indicates which of Dip-Slip or Strike-Slip is the primary component of the motion, if any.
= "StrikeSlip" : The strike motion is the stronger component.
= "DipSlip" : The dip motion is the stronger component.
= "None" : There is no dominant component.
= "Unknown" : the value of this property is officially unknown; there is no information about which of Strike-Slip or Dip-Slip is the primary slip component.
<not present> : This property is optional. If not present, it indicates that there is no information about which slip component is the primary component of this Fault's motion. The property is unspecified or indeterminate.
Use BasicRockUnit for free-form text descriptions or simple extents of the geological rock units on each side of a GeologicalContact (such as Fault, Unconformity)
Specifying an abstract base allows for possible extension later on, e.g. GeoSciML interoperability.
An 'Instantaneous' copy of this class exists, InstantaneousAbstractRockUnit.
This is the simplest way to define a basic rock unit type while allowing for future extension.
BasicRockUnit allows you to describe one side of a GeologicalContact using the standard free-form text properties, plus a polygon extent.
gml:name and gml:description can be used for this specific rock unit.
gpml:subcategory can be used to specify which general categories this BasicRockUnit belongs to, for example, a "Basalt" BasicRockUnit.
An 'Instantaneous' copy of this class exists, InstantaneousBasicRockUnit.
All geometry defined for the feature where the purpose is not given or unclear.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this BasicRockUnit. This is the default location for imported geometry.
The outline defines boundaries of the BasicRockUnit from a map-view. It is possible that this boundary is not closed, for many reasons - political boundaries, missing data, or simply the lack of a clear transition between rock units.
An 'Instantaneous' copy of this class exists, InstantaneousSuture.
All geometry defined for the feature where the purpose is not given or unclear.
The central line defining the Suture, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this Suture.
Due to ridge jump / propagation, and various plate-tec forces in the region, a midoceanridge-transformfault-midoceanridge area may start ignoring the extra midoceanridge and transform, and instead start 'propagating' one ridge to take over the job of the other.
the PsuedoFault is the result of the MidOceanRidge that is 'propagating' into the area previously handled by the Extinct Ridge. The contrast between the newly generated young crust and the old crust made by the Extinct Ridge causes a fault-like appearance- although it is not a true Fault.
An 'Instantaneous' copy of this class exists, InstantaneousPseudoFault.
All geometry defined for the feature where the purpose is not given or unclear.
The central line defining the PseudoFault, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
An 'Instantaneous' copy of this class exists, InstantaneousIslandArc.
All geometry defined for the feature where the purpose is not given or unclear.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this IslandArc. This is the default location for imported geometry.
The outline of an IslandArc is typically picked from a gravity grid.
'true' while this IslandArc is still active, 'false' if it has since become an "island arc remnant". Optional.
Time-Dependency: This property can be time-dependent - in most data, it would likely be a simple ConstantValue<boolean>, but if the user wishes to model the activity over time, the data could use PiecewiseAggregation<boolean>, supporting separate TimeWindows to describe the active period and inactive period of this IslandArc.
HotSpotTrails are used to track the paleo-movement of HotSpots. They are gpml:Features in their own right, because for the case of a HotSpot with multiple HotSpotTrail s (one disjoint trail), they can be rotated independently of each other.
Being reconstructable and also describing an inferred sequence of paleo-positions looks like it will get confusing. But presumably, geoscientists are OK with that.
An 'Instantaneous' copy of this class exists, InstantaneousHotSpotTrail.
forms a table of hotspot position and age, using HotSpotTrailMark to represent each row.
All geometry defined for the feature where the purpose is not given or unclear.
Of course, the individual gpml:Features that make up the trail (Volcanoes, Seamounts etc) might have geometry associated with them as well- or they may have stand alone contours, wrapped up in a ReconstructableExtent. We have to be flexible. This is the default location for imported geometry.
An optional error boundary for the feature. Note that we can use LineStrings or Polygons or a combination of both - anything substitutable for gml:_Geometry.
As a convenience, you may also include references to other gpml:Features here, as the 'evidence' of the HotSpotTrail. These can be the physical features that indicate the path the HotSpot took- Volcanoes, Seamounts, maybe even AseismicRidges - we have to be pretty forgiving with what features the user wants to associate with the HotSpotTrail.
the marks that define the HotSpotTrail; you can draw the line through them, but it is more accurate to store the individual points and their positions in space & time.
in the Rotation hierachy, will depend on a Platelike AbsoluteReferenceFrame
this is an optional property to specify the spatial uncertainty, in terms of the width of the hotspot track at this point. the 'uom=' attribute will likely be in metres.
Indicates the approximated age of the HotSpotTrailMark.
.age used to be a single TimeInstant, but has been changed to a combination of TimeInstant and TimePeriod to allow the 'young' and 'old' ages to be entered, to indicate both the measured age and its uncertainty (measuredAgeRange).
Can be used to specify the uncertainty of the measured age.
.age used to be a single TimeInstant, but has been changed to a combination of TimeInstant and TimePeriod to allow the 'young' and 'old' ages to be entered, to indicate both the measured age and its uncertainty (measuredAgeRange).
in the Rotation hierachy, these features will depend on a Hotspot AbsoluteReferenceFrame
An 'Instantaneous' copy of this class exists, InstantaneousHotSpot.
While the geometry of a HotSpot is generally best represented as a point, it should be noted that in PLATES files, they are often drawn as a small circle using line segments - simply because this structure is easier to see and click on when zoomed out.
HotSpots are a little unique as they don't move with the plates, but under them (if they move at all).
HotSpots can be associated with zero, one, or more HotSpotTrail s. Zero because there might not be any data about the movement of the HotSpot; One will be the most common case; and Two or more for disjoint HotSpotTrail s. It is a reference to a HotSpotTrail, because HotSpotTrail s may be rotated independently, and should be gpml:Features in their own right.
Includes all variations of Seamounts, such as Guyots; set the .subcategory property (defined in AbstractFeature) to "Guyot" if you're interested in the distinction.
Suggested Subcategories:
= "Guyot" : A special sub-category of Seamount with a flat top.
An 'Instantaneous' copy of this class exists, InstantaneousSeamount.
All geometry defined for the feature where the purpose is not given or unclear.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this Seamount.
Single Active Volcano with point geometry. Might be referenced from other igneous Features, e.g. HotSpotTrail or IslandArc.
An 'Instantaneous' copy of this class exists, InstantaneousVolcano.
All geometry defined for the feature where the purpose is not given or unclear.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this Volcano.
The term "Aseismic Ridge" is a very general term used by geoscientists that can apply to almost any nonspecific ridge, with the only defining quality being the inactivity of the feature.
For example, sections of a HotSpotTrail might be a chain of Seamounts which are contiguous enough to form a ridge. As well as being Seamounts, the structure can also be termed an "Asesimic Ridge". However, the term can also be easily applied to an Extinct Ridge, or now-inactive remnant spreading ridge (see MidOceanRidge).
As far as the GPGIM is concerned, this might make AseismicRidge into an abstract parent of some sort- however, that would imply that all features inheriting from AseismicRidge would be inactive, throughout their entire lifespan. This is unacceptable, especially considering planned improvements to MidOceanRidge to allow for partial segments of a MOR to become inactive, and also considering that a HotSpot's trail is formed of Volcanoes as well as Seamounts that may be active for some time and later become inactive.
However, there still exist some situations where the term "AseismicRidge" may be the only term applicable, where a ridge is not known to be any other specific type of ridge. AseismicRidge exists in the GPGIM for this purpose.
An 'Instantaneous' copy of this class exists, InstantaneousAseismicRidge.
All geometry defined for the feature where the purpose is not given or unclear. This is the default location for imported geometry.
The central line defining the aseismic ridge, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this aseismic ridge.
Present day coastline, but can still be reconstructed with the rest of them as a visual aid.
An 'Instantaneous' copy of this class exists, InstantaneousCoastline.
All geometry defined for the feature where the purpose is not given or unclear.
The central line defining the coastline, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
Non-deformable, for visual reference. There is potential for a future version of GPlates to support a dynamic topography coastline, perhaps drawing from gridded data, but that isn't a high priority right now.
see Dictionary of Earth Science p132. Includes Shield regions.
An 'Instantaneous' copy of this class exists, InstantaneousCraton.
All geometry defined for the feature where the purpose is not given or unclear.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this craton. This is the default location for imported geometry.
An 'Instantaneous' copy of this class exists, InstantaneousLargeIgneousProvince.
a LargeIgneousProvince might contain many related igneous features. It may be best (for now) to handle that via an "is this gpml:Feature's Geometry contained inside this LargeIgneousProvince.extent" test, rather than constructing some additional links to gpml:Features and forcing people to use those links.
All geometry defined for the feature where the purpose is not given or unclear.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this large igneous province. This is the default location for imported geometry.
Basins can be categorised into many types, and some of these types overlap or are subjective. Rather than attempting to define a fixed subset of these types, it is recommended to use the .subcategory property defined in AbstractFeature
Suggested Subcategories:
= "Extensional" :
= "Convergent" :
= "IntraCratonic" :
= "Compressional" :
= "Sag" :
= "Thermal" :
= "Erosional" :
= "Unknown" :
An 'Instantaneous' copy of this class exists, InstantaneousBasin.
All geometry defined for the feature where the purpose is not given or unclear.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this Basin. This is the default location for imported geometry.
An 'Instantaneous' copy of this class exists, InstantaneousOldPlatesGridMark.
Many PLATES data files contain lines using the GR type code that construct small cross-shaped grid marks. The cross itself will be formed with two GR lines- hardly ideal from a feature-centric perspective, but it is important that GPlates be able to render these.
All geometry defined for the feature where the purpose is not given or unclear.
The polylines defining the gridmark. Due to the way gridmarks are generally defined in PLATES datafiles, this will probably be using gml:MultiCurve. This is the default location for imported geometry.
PLATES data files are a treasure-trove of previously undiscovered two-letter type codes. Most of these are known and have an appropriate GPML mapping; Some are typographical errors ('C0') unknown codes ('EC', 'FB', 'FT') or not handled yet ('OP' for Ophiolite Belt).
This feature allows for the unclassified data to be handled by GPlates properly, without silently throwing away data, and without bugging the user with a million dialog boxes or forcing them to fix their files.
This feature has access to the oldPlatesHeader property, which can be used to store the appropriate metadata.
An 'Instantaneous' copy of this class exists, InstantaneousUnclassifiedFeature.
All geometry defined for the feature where the purpose is not given or unclear. This is the default location for imported geometry.
The central line defining the feature, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this feature.
Top-level abstract element that all rotations inherit from. Exactly the same way we use AbstractFeature, except for the rotations data set.
This feature represents a sequence of total reconstruction poles for the same (fixed plate Id, moving plate Id) pair which are temporally adjacent -- and thus, which may be interpolated.
Quoting JB: "How can a snapshot be captured of a feature which is an ephemoral result of an interpolation? Should this snapshot instead refer to the two features between which the interpolation occurred? What if a new feature is added "between" these two features, meaning that the two features are no longer temporally adjacent and hence no longer valid for interpolation? Does this then imply we need to capture a snapshot of the *whole feature collection*, which itself will change whenever any another unrelated feature is added or removed?"
the gpml:plateId for which motion is treated as 'fixed'.
the 'conjugate' or 'moving' gpml:plateId.
This property is time-dependent property: In it, we store objects of the FiniteRotation class, but in a time-dependent fashion using the IrregularSampling structural type - this way we store several FiniteRotations plus associated gml:TimeInstants, and use the FiniteRotationSlerp function between them.
We derive from TotalReconstructionSequence because that's what an AbsoluteReferenceFrame is - a set of FiniteRotations plus associated gml:TimeInstants. The difference is that an AbsoluteReferenceFrame has a name associated with it (gml:name) and a type, like the "WesselMuller2006 HotSpot reference frame".
There is no feature called 'RelativeReferenceFrame': relative reference frames are implicit.
The description of how this absolute reference frame was created/derived will be in meta data. meta data will be very complex and we'll get into it later.
.type is an enumeration of values:
= "Paleomag" : Paleo-magnetic absolute reference frame,
= "HotSpot" : HotSpot-derived absolute reference frame,
= "Mantle" : Mantle-derived absolute reference frame,
= "NoNetTorque" : No-Net-Torque absolute reference frame (new),
= "Other" : the 'Other' type is not the "option #4" which Trond was talking about, ie "relative to any other plate in the hierachy", but rather a way out in case there actually -is- a fourth type which we don't know about.
Abstract base for AxisAngleFiniteRotation and ZeroFiniteRotation.
Why "FiniteRotation" and not merely "Rotation"? Refer to the Boyden Dictionary of Reconstruction Terminology; a rotation is "the turning of an object or coordinate system by an angle about a fixed point", while a Finite Rotation is "a rotation which maps a position on the surface of the globe to another position on the surface of the globe". The fixed point of a Finite Rotation coincides with the centre of the globe.
Represented as a gml:Point. An Euler pole is the intersection of the semi-axis of rotation with the surface of the Earth.
May end up needing to make some sort of gml-compat.xsd Angle version, because in the GML schemas I have, angle stuff is all over the place and half of it is commented out / deprecated. Pretty sure you need to specify the 'uom' attribute for this one, degrees would be nice please.
Special identity AxisAngleFiniteRotation. In the XML serialisation of the GPGIM, this will appear as a single empty element, <gpml:ZeroFiniteRotation /> - this allows for the most flexibility.
This class is copied from TangibleFeature. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
In contrast to TangibleFeature, this deals with geometry that has been arbitrarily created, or possibly derived from a TangibleFeature. For example, InferredPaleoBoundary is a plate boundary that is assumed to have existed, even though it has long since been subducted under the surface. OldPlatesGridMark is a sequence of lines defined in PLATES data files for annotation.
This class is copied from ArtificialFeature. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
e.g. the InferredPaleoBoundary between India and Asia that has since been subducted under the Himalaya.
This class is copied from InferredPaleoBoundary. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
In InferredPaleoBoundary this property is time-dependent, but here in InstantaneousInferredPaleoBoundary this property must be converted to a non-time-dependent one.
The inferred boundary. This is the default location for imported geometry.
In InferredPaleoBoundary this property is time-dependent, but here in InstantaneousInferredPaleoBoundary this property must be converted to a non-time-dependent one.
An optional error boundary for the feature. Note that we can use LineStrings or Polygons or a combination of both - anything substitutable for gml:_Geometry.
In InferredPaleoBoundary this property is time-dependent, but here in InstantaneousInferredPaleoBoundary this property must be converted to a non-time-dependent one.
Assorted contour-like data and (in future releases) gridded data share AbstractField as a parent class.
Types of contour (and later, gridded) data include: Bathymetry, Topography, Gravimetry, Magnetics, GlobalElevation, OceanicAge, CrustalThickness, DynamicTopography, MantleDensity, HeatFlow, SedimentThickness, Roughness, SpreadingRate, SpreadingAsymmetry, Stress
This is because all contoured data is picked from a gridded source, and similarly with most stand-alone outline data. In addition, there are many, many types of gridded data that we may wish to use in the future. With most of these types, it still makes sense to be able to pick outlines and contours from the grid - they are useful in many cases.
The following list derived from some of the actual data files on Maria's filesystem.
This class is copied from AbstractField. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry along with gpml:Contour (which will in turn use more gml:_Geometry - gml:LineString and gml:Polygon in particular). This is the default location for imported geometry.
In AbstractField this property is time-dependent, but here in InstantaneousAbstractField this property must be converted to a non-time-dependent one.
Time-dependent, because although rotatable shifting deforming contours through time sounds like a mouthful, Simula has an interest in this and we should leave the door open.
Usually measured in m (depth)
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from Bathymetry. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Usually measured in m (height)
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from Topography. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Usually measured in mGal
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from Gravimetry. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Usually measured in mT
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from Magnetics. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Though it is probably a good idea to keep Bathymetry and Topography seperate due to their differences, there are plenty of instances of merged data sets combining ocean depth with land height fields. This Feature supports those cases.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from GlobalElevation. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
While oceanic age is most frequently represented with grids, it is still useful to pick out contours of specific ages.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from OceanicAge. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from CrustalThickness. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
Seismic Tomography (MantleDensity) is used as a source of data to create DynamicTopography.
This class is copied from DynamicTopography. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
MantleDensity data can be applied to the creation of DynamicTopography grids.
This class is copied from MantleDensity. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Heat flow is typically measured by placing devices on the ocean floor to measure temperature. For example, heat will emanate from a MidOceanRidge.
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from HeatFlow. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
e.g. http://www.usawaterquality.org/conferences/2005/Posters/Negrini.pdf
This class is copied from SedimentThickness. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This feature is an example of one which would use gridded data almost exclusively, with little need for Contours and outlines. However, in any case of gridded data, there is the possibility that such contours may be desirable, and should be available as an option.
This class is copied from Roughness. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from SpreadingRate. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from SpreadingAsymmetry. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Currently, this feature provides for contour and outline data. This feature is intended to support gridded data in a future release.
This class is copied from Stress. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Plate-tectonic features that can form boundaries between plates fall under this class.
This class is copied from TectonicSection. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
In TectonicSection this property is time-dependent, but here in InstantaneousTectonicSection this property must be converted to a non-time-dependent one.
The central line defining the tectonic feature, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
In TectonicSection this property is time-dependent, but here in InstantaneousTectonicSection this property must be converted to a non-time-dependent one.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this tectonic section.
In TectonicSection this property is time-dependent, but here in InstantaneousTectonicSection this property must be converted to a non-time-dependent one.
Annotation property describing the plates on the "left" side of this tectonic section. Not to be used for reconstruction purposes, as these properties would be an imprecise representation of the crust on each side in many cases. Primarily of interest to the MidOceanRidge feature, where it is used for the purpose of a richer description.
Not a time-dependent property because, for MidOceanRidge at any rate, that's insanity. A MidOceanRidge -generates- crust. For other boundary features, like SubductionZone, this property is only really used as annotation, (i.e. "this SZ is mostly consuming plate 541") and doesn't need to be over-complex.
This property doesn't support multiple plateIds per side for similar reasons to the ones above; in the case of MidOceanRidge, the usefuless of this property hinges on the potential to e.g. interpolate between both sides of the MOR and determine velocity. If more than one plateId per side were supported, topology would have to be taken into consideration, and pieces would have to move at different rates - and so the MOR would have to be broken up into segments, PLATES style. Perhaps when we get segmented MORs in the next release GPGIM, we can consider these extra possibilities. Until then, there's really no point in making this more complex than it needs to be.
Annotation property describing the plates on the "left" side of this tectonic section. Not to be used for reconstruction purposes, as these properties would be an imprecise representation of the crust on each side in many cases. Primarily of interest to the MidOceanRidge feature, where it is used for the purpose of a richer description.
Not a time-dependent property because, for MidOceanRidge at any rate, that's insanity. A MidOceanRidge -generates- crust. For other boundary features, like SubductionZone, this property is only really used as annotation, (i.e. "this SZ is mostly consuming plate 541") and doesn't need to be over-complex.
This property doesn't support multiple plateIds per side for similar reasons to the ones above; in the case of MidOceanRidge, the usefuless of this property hinges on the potential to e.g. interpolate between both sides of the MOR and determine velocity. If more than one plateId per side were supported, topology would have to be taken into consideration, and pieces would have to move at different rates - and so the MOR would have to be broken up into segments, PLATES style. Perhaps when we get segmented MORs in the next release GPGIM, we can consider these extra possibilities. Until then, there's really no point in making this more complex than it needs to be.
The MidOceanRidge class needs to be pretty flexible. In the PLATES methodology, MOR lines are typically used to represent both the 'spreading' and 'transform' sections of the ridge - and so a lot of older data sets will have rigid MidOceanRidges once they are imported. Ideally, they would use an explicit Transform to join up MidOceanRidge and SubductionZone pieces.
The other area that MidOceanRidge needs to encompass is those ridges that have become an "Extinct Ridge" through a process of ridge propagation. This is handled via the .isActive time-dependent property below.
It is possible that later releases of the GPGIM will support a single MidOceanRidge Feature with heterogenous 'segments'.
This class is copied from MidOceanRidge. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
'true' while this MidOceanRidge is still active, 'false' if it has since become an "Extinct Ridge" due to ridge propagation in the area. Optional - if not present for a given time period, it is safe to assume the ridge is still actively generating crust.
Due to ridge jump / propagation, and various plate-tec forces in the region, a midoceanridge-transformfault-midoceanridge area may start ignoring the extra midoceanridge and transform, and instead start 'propagating' one ridge to take over the job of the other.
An "Extinct Ridge" is a MidOceanRidge that has 'died' by this process, and no longer creates oceanic crust.
In MidOceanRidge this property is time-dependent, but here in InstantaneousMidOceanRidge this property must be converted to a non-time-dependent one.
#Time-Dependency: This property can be time-dependent - in most data, it would likely be a simple ConstantValue<boolean>, but if the user wishes to model the activity over time, the data could use PiecewiseAggregation<boolean>, supporting separate TimeWindows to describe the active period and inactive period of this MidOceanRidge.
Functionally, this behaves similarly to MidOceanRidge, but a ContinentalRift is defined for continental crust only.
This class is copied from ContinentalRift. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
The standard model of a subduction zone is a linear tectonic region which consumes plate material on one side, while being largely 'attached' to a plate on the other side. Similarly to MidOceanRidge, the leftPlate and rightPlate properties are often set to advise approximately which plate is being consumed. The SubductionZone is always 'attached' to the overriding plate, as far as the gpml:plateIds are concerned.
Not necessarily a 'Zone', could be a linelike feature or have an additional polygon geometry.. The gml property .centerLineOf is used to indicate where the subducting plate meets the overriding plate.
This class is copied from SubductionZone. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Indicates the side of the line that the subducting slab is on. The overriding slab will be on the opposite side.
.subductingSlab is an enumeration: Assuming there is a suitable centerLineOf supplied, and understanding that the order of points in the line matters, we can establish a "left" side and a "right" side to the .centerLineOf. this property indicates which of those "left" and "right" sides the subducting slab is on. The overriding plate will be on the opposite side.
= "Left" : The subducting slab is on the left of this SubductionZone, according to the directed gml:LineString .centerLineOf
= "Right" : The subducting slab is on the right of this SubductionZone, according to the directed gml:LineString .centerLineOf
= "Unknown" : the value of this property is officially unknown; there is no information about which side of the SubductionZone is which.
<not present> : This property is optional. If not present, it indicates that there is no information about which side the subducting slab is on. The property is unspecified or indeterminate.
In SubductionZone this property is time-dependent, but here in InstantaneousSubductionZone this property must be converted to a non-time-dependent one.
#Time-Dependency: Most common use-case would be a ConstantValue<enumeration>, but there is the --possibility-- that a single SubductionZone may change polarity, and that someone may want to model that in GPML, in which case the data would be a PiecewiseAggregation<enumeration>
Since there could be multiple small island arcs that are part of a large subduction zone, we will let the subduction zone keep track of its associated IslandArc(s), if any.
The standard model of an orogenic belt is a linear tectonic region in a mountainous region where two plates have collided. Similar to a subduction zone, one plate has often overridden the other, so we use a similar model to that of gpml:SubductionZone. As with MidOceanRidge, the leftPlate and rightPlate properties are set to advise approximately which plate is overriding which.
While certainly OrogenicBelt can be treated similarly to SubductionZone, as there was presumably a SubductionZone that pulled the OrogenicBelt into existence (eg India & Asia), there exists potential for there to be no clearly defined overriding & overridden plate. Similar to SubductionZone, we have a .subductingSlab property which is optional.
This class is copied from OrogenicBelt. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Indicates the side of the line that the subducting slab is on (if applicable). The overriding slab will be on the opposite side.
.subductingSlab is an enumeration: Assuming there is a suitable centerLineOf supplied, and understanding that the order of points in the line matters, we can establish a "left" side and a "right" side to the .centerLineOf. this property indicates which of those "left" and "right" sides the subducting slab is on. The overriding plate will be on the opposite side.
= "Left" : The subducting slab is on the left of this OrogenicBelt, according to the directed gml:LineString .centerLineOf
= "Right" : The subducting slab is on the right of this OrogenicBelt, according to the directed gml:LineString .centerLineOf
= "Unknown" : the value of this property is officially unknown; there is no information about which side of the OrogenicBelt is which.
<not present> : This property is optional. If not present, it indicates that there is no information about which side the subducting slab is on. The property is unspecified or indeterminate.
In OrogenicBelt this property is time-dependent, but here in InstantaneousOrogenicBelt this property must be converted to a non-time-dependent one.
#Time-Dependency: Most common use-case would be a ConstantValue<enumeration>, but there is the --possibility-- that a single SubductionZone (or OrogenicBelt in this case) may change polarity, and that someone may want to model that in GPML, in which case the data would be a PiecewiseAggregation<enumeration>
Used to link MidOceanRidge s and SubductionZone s together to form a closed plate boundary.
This may not see as much use as MidOceanRidge; the current methodology employed in PLATES data files typically ignores Transforms altogether, and uses 'MOR' lines for both the spreading ridge and the transform 'kink's. In addition, the parts of simple PLATES-style Isochron lines that are perpendicular to the ridge can also be considered 'transforms' or 'fracture zones', because they indicate the paleo-offset between two ridge sections.
This class is copied from Transform. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
.motion is an enumeration: types are:
= "LeftLateral" : also called Sinistral motion. When viewed from one side of the Transform boundary, the opposite side appears to be moving to the observer's left.
= "RightLateral" : also called Dextral motion. When viewed from one side of the Transform boundary, the opposite side appears to be moving to the observer's right.
= "Unknown" : the value of this property is officially unknown; there is no information about the transform's motion.
= "None" : There is no motion along the this Transform. Unlikely in this case but included for consistency with Fault.strikeSlip
<not present> : This property is optional. If not present, it indicates that there is no information about the motion of this Transform boundary. The property is unspecified or indeterminate.
In Transform this property is time-dependent, but here in InstantaneousTransform this property must be converted to a non-time-dependent one.
#Time-Dependency: Most common use-case would be a ConstantValue<enumeration>, but there are surely instances of Transforms' motion changing direction, and that means someone may want to model that in GPML, in which case the data would be a PiecewiseAggregation<enumeration>
In PLATES, small fracture-zone lines are used in a segmented fashion- each segment of the line has an appropriate time of appearance and time of disappearance, to simulate the growth of the fracture zone.
For GPlates and GPML, a more ideal solution would treat the entire FractureZone as one complete gml:Feature, with its geometry being time-dependent (possibly using locus geometry). For the present, it is better to follow the older PLATES method, since that is how much of the data is structured and it would require a human to reconstitute the segments.
gpml:FractureZone has an advantage over the old PLATES format; all gpml:ReconstructableFeatures have an optional property called .truncatedSection, which allows for one or more FractureZone pieces to be semantically linked.
Interestingly, a FractureZone's geometry is a SmallCircleArc, roughly indicating the rotation pole when the Transform that created it was active.
This class is copied from FractureZone. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
A quite simple, linelike boundary indicating the change between continental and oceanic crust. Since this change is broad and hard to pin down, we expect two main types of continental boundary, an "Inner" ContinentalBoundary and "Outer" ContinentalBoundary. Naturally, which of these labels gets used to describe a gpml:PassiveContinentalBoundary depends largely on the source of the data, who digitized the line, and whether that aspect of the data was recorded in the original source.
Does not have to be closed, can be a simple line segment. For closed polygons, you want InstantaneousClosedContinentalBoundary and ClosedContinentalBoundary.
This class is copied from PassiveContinentalBoundary. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
.edge is an enumeration:
= "InnerContinentalBoundary" : This PassiveContinentalBoundary defines the Inner edge of the continental boundary (closest to centre of continental crust)
= "OuterContinentalBoundary" : This PassiveContinentalBoundary defines the Outer edge of the continental boundary (furthest away from centre of continental crust, closest to oceanic crust)
= "Unknown" : This PassiveContinentalBoundary was digitised or imported without any data telling us how the boundary was chosen with regard to inner and outer edges of the continental crust. The value of this property is officially unknown.
<not present> : This property is optional. If not present, it indicates that there is no information about which edge of the boundary is represented by this line. The property is unspecified or indeterminate.
.continentalSide is an enumeration: Assuming there is a suitable centerLineOf supplied, and understanding that the order of points in the line matters, we can establish a "Left" side and a "Right" side to the .centerLineOf. this property indicates which direction leads to the continental crust.
= "Left" : The continental crust for this PassiveContinentalBoundary can be found to the left, oceanic crust can be found on the right. Depending on the .edge of this PassiveContinentalBoundary, this may also imply some transitional "grey area" crust is on one side or the other.
= "Right" : The continental crust for this PassiveContinentalBoundary can be found to the right, oceanic crust can be found on the left. Depending on the .edge of this PassiveContinentalBoundary, this may also imply some transitional "grey area" crust is on one side or the other.
= "Unknown" : No information is known about which {continental,oceanic} side is which for this PassiveContinentalBoundary. This property is officially unknown.
<not present> : This property is optional. If not present, it indicates that there is no information about which side of the boundary is continental crust and which side is oceanic. The property is unspecified or indeterminate.
For the GPGIM1.5, we just want a simple, rigid Isochron replacement for the PLATES model. It includes Paleo-Ridge and Paleo-Transform sections.
A common property associated with an Isochron is its "age". It defines the point in time that this Isochron is believed to originate at, in Ma. However, we already have a .validTime property inherited from TimeVariantFeature, so to work out the 'age' of the Isochron, one can look at .validTime(a TimePeriod).begin(a TimeInstant)
This class is copied from Isochron. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
A reference to the 'pair' or 'twin' of this isochron. Due to Isochrons getting split into pieces in PLATES data, it must support more than one conjugate on the other side of the MOR.
A reference to the plate Id (general-purpose plate Id or specific plate Id for motion of a cluster of Features) that has the 'pair' or 'twin' of this isochron. Due to Isochrons getting split into pieces in PLATES data, it must support more than one conjugate on the other side of the MOR. This property is intended to support transition from PLATES style information to the feature-centric GPlates model.
All geometry defined for the feature where the purpose is not given or unclear.
In Isochron this property is time-dependent, but here in InstantaneousIsochron this property must be converted to a non-time-dependent one.
The central line defining the Isochron, using gml:LineString for the digitization, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
In Isochron this property is time-dependent, but here in InstantaneousIsochron this property must be converted to a non-time-dependent one.
The 'pick' is taken from the magnetic anomaly reading and the ship path.
This class is copied from MagneticAnomalyIdentification. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
lat/long point indicating the physical location of the pick.
not time dependent because it is just a point, points don't deform.
text code indicating which Polarity Chron this pick is linked to: other picks on different ship-tracks will share this Id if they belong to the same Chron. e.g. "C34"
note that we want this to be unique for each Chron, so the tradition of packing extra info like the 'young/old' value onto the end of the Id ("C34o0.2") is discouraged; polarityChronOffset can be used to store the young/old offset, and any miscellaneous extra information can go in metadata, gml:name, gml:description, or gpml:subcategory as appropriate.
it is called "polarity chron" because it is the 'chron' of all positions sharing the same polarity.
A number from 0.0 to 1.0, indicating the proportion from 'young' to 'old'; 0.0 = young, 1.0 = old; This property stores the offset of this pick's chron position compared to the synthetic chron.
Optional reference to the MagneticAnomalyShipTrack that this pick originates from.
For now, this allows us to define the map-view path taken by a particular ship for magnetic anomaly data. You can give it a 'ship track Id' if you want, via gml:name. The MagneticAnomalyIdentification s or 'picks' have a reference to this Feature to indicate the particular ship track that the pick originated from.
in future releases, this Feature may also be used to contain the magnetic "wiggle" recorded along the ship track.
This class is copied from MagneticAnomalyShipTrack. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
The central line defining the path the ship took, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
An (optional) reference to the MagneticAnomalyIdentification s recorded from this ship track data. A reference because these data sometimes exist independently of each other, so they should both be gpml:Features, Optional because you may get a bunch of picks all in close proximity and things stop being clear, odd datasets, etc.
The 'pick' can be taken from a magnetic anomaly reading and a ship track - or it can be taken from some other gridded data source, or chosen without any justification at all.
These picks are useful to create Isochrons and align them.
As a FractureZoneIdentification can be picked from a wide variety of sources, it is recommended to use the standard gpml:subcategory property if you want to indicate where this pick comes from.
Suggested Subcategories:
= "Bathymetry" : chosen based on a Bathymetry grid.
= "Topography" : chosen based on a Topography grid.
= "Gravity" : chosen based on a Gravity grid.
= "Magnetic" : chosen based on a Magnetic grid.
This class is copied from FractureZoneIdentification. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
lat/long point indicating the physical location of the pick.
not time dependent because it is just a point, points don't deform.
text code indicating which Polarity Chron this pick is linked to: other picks on different ship-tracks will share this Id if they belong to the same Chron. e.g. "C34"
it is called "polarity chron" because it is the 'chron' of all positions sharing the same polarity.
We want this to be unique for each Chron, so packing extra info like the 'young/old' value onto the end of the Id ("C34o0.2") is discouraged; polarityChronOffset can be used to store the young/old offset, and any miscellaneous extra information can go in metadata, gml:name, gml:description, or gpml:subcategory as appropriate.
A number from 0.0 to 1.0, indicating the proportion from 'young' to 'old'; 0.0 = young, 1.0 = old; This property stores the offset of this pick's chron position compared to the synthetic chron.
Optional reference to the MagneticAnomalyShipTrack that this pick originates from.
an AbstractGeologicalPlane by itself will not be instantiated; You want a subcategory of GeologicalPlane(BeddingPlane, CleavagePlane), or perhaps a FoldPlane, or one of the various specialisations of GeologicalContact.
This class is copied from AbstractGeologicalPlane. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
The central line defining the tectonic feature, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
As with many LineStrings in GPML, the ideal situation would enforce a single line where the order of points is kept constant, in order to establish that the line is directed and create a situation where we can describe the "left" and "right" sides of the line. But the ideal situation may not always be available, especially with data imported from other sources.
Naturally, this is the map-view or 'strike' of the surface or plane for GPlates to use, not a cross-section. Cross-sections may come later.
The side of the line that the 'dip' is on, giving a hint at what the plane of the surface looks like.
= "Left" : The Plane (e.g. Fault) dips to the 'Left' of this line (relative to the order of points defining the Strike)
= "Right" : The Plane (e.g. Fault) dips to the 'Right' of this line (relative to the order of points defining the Strike)
= "Undefined" : If the Dip angle of the Plane is 90 degrees (straight down), this property is not clearly defined regardless of its value. For new data, it may be convenient to assign it this "Undefined" value, but bear in mind that when .dipAngle == 90, any value the .dipSide property takes should be considered arbitrary.
= "Unknown" : the value of this property is officially unknown; there is no information about the dip of the GeologicalPlane (for example, the plane of a Fault's surface.).
<not present> : This property is optional. If not present, it indicates that there is no information about dip of this Plane. The property is unspecified or indeterminate.
Important note: it is unlikely, but possible, for the 'dipAngle' of a Fault(or any other Plane) to be 90 degrees, in other words, straight down. In this case, the 'dipSide' is not clearly defined, and any value this property takes should be considered arbitrary. The value "Undefined" can be used if desired, but bear in mind that data imported from other sources may come with a specific direction which is nevertheless irrelevant.
The angle of the 'Dip' of the Plane (BeddingSurface, Unconformity, Fault etc). It is the acute angle measured from the horizontal at the top of the Dip.
<not present> : This property is optional. If not present, it indicates that there is no information about the dip of this GeologicalPlane available. The property is unspecified or indeterminate.
While there are a few common clear-cut types of GeologicalPlane, such as a "BeddingPlane" or "CleavagePlane", field geologists may desire many other subcategories of GeologicalPlane, or subcategories of CleavagePlane etc, and this can get very subjective. Therefore, spplication of the .subcategory property (present in all gpml:Features) is advised.
Suggested Subcategories:
= "BeddingPlane" : Surface plane indicator based on the stratum from the same rock unit.
= "CleavagePlane" : Surface plane indicator based on the cleavage within the rock unit.
This class is copied from GeologicalPlane. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Unlike GeologicalPlane(BeddingPlane) and GeologicalPlane(CleavagePlane), which are direct field observations, a FoldPlane is inferred based on many different observations. However, it still shares the same basic properties of a surface indicator, a strike, dip side, and dip angle.
This class is copied from FoldPlane. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Type of annotation for this FoldPlane. Appears as symbols along the line of the fold;
= "Syncline" : Arrows pointing inward
= "Anticline" : Arrows pointing outward
= "None" : No annotation
= "Unknown" : There is no data about the type of this FoldPlane.
<not present> : This property is optional; if not present, it indicates that the annotation is unspecified or indeterminate.
An AbstractGeologicalContact is simply the surface along which two different rock types are juxtaposed.
This class is copied from AbstractGeologicalContact. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
AbstractGeologicalContact by itself will not be instantiated; You want a type of Unconformity or Fault or UnknownContact for that.
This property defines what is on the "Left" side of the contact, using an AbstractRockUnit. Particular implementations of AbstractRockUnit can include BasicRockUnit for simple free-text descriptions plus an extent, or more complex rock unit definitions.
Assuming there is a suitable centerLineOf supplied, and understanding that the order of points in the line matters, we can establish a "Left" and "Right" side of the centerLine.
This property defines what is on the "Right" side of the contact, using an AbstractRockUnit. Particular implementations of AbstractRockUnit can include BasicRockUnit for simple free-text descriptions plus an extent, or more complex rock unit definitions.
Assuming there is a suitable centerLineOf supplied, and understanding that the order of points in the line matters, we can establish a "Left" and "Right" side of the centerLine.
an Unconformity is a type of AbstractGeologicalContact. As such, it inherits GeologicalContact's properties '.leftUnit' and '.rightUnit', which allow you to specify what AbstractRockUnits are separated by this Unconformity.
an Unconformity is not the same as a Fault.
This class is copied from Unconformity. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Unlike Unconformity and Fault, which deal with fine-grained map views, UnknownContact is for regional scale map views which don't necessarily correspond to physical Faults and Unconformities.
This class is copied from UnknownContact. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Map-view of Faults. Fault now inherits from AbstractGeologicalContact, so we gain the ability to specify what geological rock units lie on either side of the Fault.
Note in the description that a Fault has "observable relative displacement": A Fault is defined by displacement. This is what distinguishes a Fault from an Unconformity. A Detachment is a subcategory of Fault; generally a Detatchment implies massive displacement involved.
We already inherit a centerLineOf via AbstractGeologicalContact and AbstractGeologicalPlane. This line is the 'Strike' of the Fault. This should ideally be a directed line where the order of points matters because we need to define what lies on either side.
We also inherit the description of the 'Dip' of this Fault via AbstractGeologicalContact and AbstractGeologicalPlane. There are two properties, .dipSide and .dipAngle.
There are many different ways to classify a Fault, and they are highly subjective, so remember that we have the 'subcategory' property available.
Suggested Subcategories:
= "Thrust" : A Thrust fault is a term often given to a special case of reverse or compression fault where the hanging wall has thrusted completely over the foot wall. Additional information about e.g. Folding (which might warrant additional subcategories), or perhaps describing specific patterns of the Thrust e.g. "Snake Head", make this an ideal candidate for the .subcategory property.
= "Detachment" : Often used to describe massive movements of rock created from e.g. detachment of rock from a subducting plate which has moved onto the overriding plate.
here's what Dictionary of Earth Sciences p201 has to say:
Approximately plane surface of fracture in a rock body, caused by brittle failure, and along which observable relative displacement has occurred between adjacent blocks. Most faults may be broadly classified according to the direction of slip of adjacent blocks into dip-slip, strike-slip, and oblique-slip varieties. The term 'dip-slip fault' comprises both normal and reverse slip faults, and the special cases of low-angle lag and thrust faults. Strike-slip faults {wrench, transform, transcurrent} result from horizontal displacement {dextral or sinistral movements} and on a regional scale may involve transpression and transtension.
This class is copied from Fault. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
The motion along the 'strike', or map-view line of the Fault.
= "LeftLateral" : also called Sinistral motion. When viewed from one side of the Fault, the opposite side appears to be moving to the observer's left.
= "RightLateral" : also called Dextral motion. When viewed from one side of the Fault, the opposite side appears to be moving to the observer's right.
= "Unknown" : the value of this property is officially unknown; there is no information about the strike motion.
= "None" : There is no motion along the strike of this Fault.
<not present> : This property is optional. If not present, it indicates that there is no information about the strike motion of this Fault. The property is unspecified or indeterminate.
The motion along the 'dip', or cross-section line of the Fault.
= "Extension" : also called a 'normal' fault. The two sides of the Fault are sliding away from each other.
= "Compression" : also called a 'reverse' fault. The two sides of the Fault are sliding towards each other.
= "None" : There is no motion along the dip of this Fault.
= "Unknown" : the value of this property is officially unknown; there is no information about the dip motion.
<not present> : This property is optional. If not present, it indicates that there is no information about the dip-slip of this Fault. The property is unspecified or indeterminate.
For Faults with both Dip-Slip and Strike-Slip motion (sometimes termed "Oblique Slip"), this property indicates which of Dip-Slip or Strike-Slip is the primary component of the motion, if any.
= "StrikeSlip" : The strike motion is the stronger component.
= "DipSlip" : The dip motion is the stronger component.
= "None" : There is no dominant component.
= "Unknown" : the value of this property is officially unknown; there is no information about which of Strike-Slip or Dip-Slip is the primary slip component.
<not present> : This property is optional. If not present, it indicates that there is no information about which slip component is the primary component of this Fault's motion. The property is unspecified or indeterminate.
Use BasicRockUnit for free-form text descriptions or simple extents of the geological rock units on each side of a GeologicalContact (such as Fault, Unconformity)
Specifying an abstract base allows for possible extension later on, e.g. GeoSciML interoperability.
This class is copied from AbstractRockUnit. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
This is the simplest way to define a basic rock unit type while allowing for future extension.
BasicRockUnit allows you to describe one side of a GeologicalContact using the standard free-form text properties, plus a polygon extent.
gml:name and gml:description can be used for this specific rock unit.
gpml:subcategory can be used to specify which general categories this BasicRockUnit belongs to, for example, a "Basalt" BasicRockUnit.
This class is copied from BasicRockUnit. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this BasicRockUnit. This is the default location for imported geometry.
The outline defines boundaries of the BasicRockUnit from a map-view. It is possible that this boundary is not closed, for many reasons - political boundaries, missing data, or simply the lack of a clear transition between rock units.
This class is copied from Suture. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
In Suture this property is time-dependent, but here in InstantaneousSuture this property must be converted to a non-time-dependent one.
The central line defining the Suture, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
In Suture this property is time-dependent, but here in InstantaneousSuture this property must be converted to a non-time-dependent one.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this Suture.
In Suture this property is time-dependent, but here in InstantaneousSuture this property must be converted to a non-time-dependent one.
Due to ridge jump / propagation, and various plate-tec forces in the region, a midoceanridge-transformfault-midoceanridge area may start ignoring the extra midoceanridge and transform, and instead start 'propagating' one ridge to take over the job of the other.
the PsuedoFault is the result of the MidOceanRidge that is 'propagating' into the area previously handled by the Extinct Ridge. The contrast between the newly generated young crust and the old crust made by the Extinct Ridge causes a fault-like appearance- although it is not a true Fault.
This class is copied from PseudoFault. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
In PseudoFault this property is time-dependent, but here in InstantaneousPseudoFault this property must be converted to a non-time-dependent one.
The central line defining the PseudoFault, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
In PseudoFault this property is time-dependent, but here in InstantaneousPseudoFault this property must be converted to a non-time-dependent one.
This class is copied from IslandArc. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
In IslandArc this property is time-dependent, but here in InstantaneousIslandArc this property must be converted to a non-time-dependent one.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this IslandArc. This is the default location for imported geometry.
The outline of an IslandArc is typically picked from a gravity grid.
In IslandArc this property is time-dependent, but here in InstantaneousIslandArc this property must be converted to a non-time-dependent one.
'true' while this IslandArc is still active, 'false' if it has since become an "island arc remnant". Optional.
In IslandArc this property is time-dependent, but here in InstantaneousIslandArc this property must be converted to a non-time-dependent one.
Time-Dependency: This property can be time-dependent - in most data, it would likely be a simple ConstantValue<boolean>, but if the user wishes to model the activity over time, the data could use PiecewiseAggregation<boolean>, supporting separate TimeWindows to describe the active period and inactive period of this IslandArc.
HotSpotTrails are used to track the paleo-movement of HotSpots. They are gpml:Features in their own right, because for the case of a HotSpot with multiple HotSpotTrail s (one disjoint trail), they can be rotated independently of each other.
Being reconstructable and also describing an inferred sequence of paleo-positions looks like it will get confusing. But presumably, geoscientists are OK with that.
This class is copied from HotSpotTrail. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
forms a table of hotspot position and age, using HotSpotTrailMark to represent each row.
All geometry defined for the feature where the purpose is not given or unclear.
Of course, the individual gpml:Features that make up the trail (Volcanoes, Seamounts etc) might have geometry associated with them as well- or they may have stand alone contours, wrapped up in a ReconstructableExtent. We have to be flexible. This is the default location for imported geometry.
In HotSpotTrail this property is time-dependent, but here in InstantaneousHotSpotTrail this property must be converted to a non-time-dependent one.
An optional error boundary for the feature. Note that we can use LineStrings or Polygons or a combination of both - anything substitutable for gml:_Geometry.
In HotSpotTrail this property is time-dependent, but here in InstantaneousHotSpotTrail this property must be converted to a non-time-dependent one.
As a convenience, you may also include references to other gpml:Features here, as the 'evidence' of the HotSpotTrail. These can be the physical features that indicate the path the HotSpot took- Volcanoes, Seamounts, maybe even AseismicRidges - we have to be pretty forgiving with what features the user wants to associate with the HotSpotTrail.
in the Rotation hierachy, these features will depend on a Hotspot AbsoluteReferenceFrame
This class is copied from HotSpot. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
While the geometry of a HotSpot is generally best represented as a point, it should be noted that in PLATES files, they are often drawn as a small circle using line segments - simply because this structure is easier to see and click on when zoomed out.
HotSpots are a little unique as they don't move with the plates, but under them (if they move at all).
HotSpots can be associated with zero, one, or more HotSpotTrail s. Zero because there might not be any data about the movement of the HotSpot; One will be the most common case; and Two or more for disjoint HotSpotTrail s. It is a reference to a HotSpotTrail, because HotSpotTrail s may be rotated independently, and should be gpml:Features in their own right.
Includes all variations of Seamounts, such as Guyots; set the .subcategory property (defined in AbstractFeature) to "Guyot" if you're interested in the distinction.
Suggested Subcategories:
= "Guyot" : A special sub-category of Seamount with a flat top.
This class is copied from Seamount. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this Seamount.
Single Active Volcano with point geometry. Might be referenced from other igneous Features, e.g. HotSpotTrail or IslandArc.
This class is copied from Volcano. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this Volcano.
The term "Aseismic Ridge" is a very general term used by geoscientists that can apply to almost any nonspecific ridge, with the only defining quality being the inactivity of the feature.
For example, sections of a HotSpotTrail might be a chain of Seamounts which are contiguous enough to form a ridge. As well as being Seamounts, the structure can also be termed an "Asesimic Ridge". However, the term can also be easily applied to an Extinct Ridge, or now-inactive remnant spreading ridge (see MidOceanRidge).
As far as the GPGIM is concerned, this might make AseismicRidge into an abstract parent of some sort- however, that would imply that all features inheriting from AseismicRidge would be inactive, throughout their entire lifespan. This is unacceptable, especially considering planned improvements to MidOceanRidge to allow for partial segments of a MOR to become inactive, and also considering that a HotSpot's trail is formed of Volcanoes as well as Seamounts that may be active for some time and later become inactive.
However, there still exist some situations where the term "AseismicRidge" may be the only term applicable, where a ridge is not known to be any other specific type of ridge. AseismicRidge exists in the GPGIM for this purpose.
This class is copied from AseismicRidge. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear. This is the default location for imported geometry.
In AseismicRidge this property is time-dependent, but here in InstantaneousAseismicRidge this property must be converted to a non-time-dependent one.
The central line defining the aseismic ridge, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve.
In AseismicRidge this property is time-dependent, but here in InstantaneousAseismicRidge this property must be converted to a non-time-dependent one.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this aseismic ridge.
In AseismicRidge this property is time-dependent, but here in InstantaneousAseismicRidge this property must be converted to a non-time-dependent one.
Present day coastline, but can still be reconstructed with the rest of them as a visual aid.
This class is copied from Coastline. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
The central line defining the coastline, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve. This is the default location for imported geometry.
Non-deformable, for visual reference. There is potential for a future version of GPlates to support a dynamic topography coastline, perhaps drawing from gridded data, but that isn't a high priority right now.
see Dictionary of Earth Science p132. Includes Shield regions.
This class is copied from Craton. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
In Craton this property is time-dependent, but here in InstantaneousCraton this property must be converted to a non-time-dependent one.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this craton. This is the default location for imported geometry.
In Craton this property is time-dependent, but here in InstantaneousCraton this property must be converted to a non-time-dependent one.
This class is copied from LargeIgneousProvince. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
a LargeIgneousProvince might contain many related igneous features. It may be best (for now) to handle that via an "is this gpml:Feature's Geometry contained inside this LargeIgneousProvince.extent" test, rather than constructing some additional links to gpml:Features and forcing people to use those links.
All geometry defined for the feature where the purpose is not given or unclear.
In LargeIgneousProvince this property is time-dependent, but here in InstantaneousLargeIgneousProvince this property must be converted to a non-time-dependent one.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this large igneous province. This is the default location for imported geometry.
In LargeIgneousProvince this property is time-dependent, but here in InstantaneousLargeIgneousProvince this property must be converted to a non-time-dependent one.
Basins can be categorised into many types, and some of these types overlap or are subjective. Rather than attempting to define a fixed subset of these types, it is recommended to use the .subcategory property defined in AbstractFeature
Suggested Subcategories:
= "Extensional" :
= "Convergent" :
= "IntraCratonic" :
= "Compressional" :
= "Sag" :
= "Thermal" :
= "Erosional" :
= "Unknown" :
This class is copied from Basin. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear.
In Basin this property is time-dependent, but here in InstantaneousBasin this property must be converted to a non-time-dependent one.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this Basin. This is the default location for imported geometry.
In Basin this property is time-dependent, but here in InstantaneousBasin this property must be converted to a non-time-dependent one.
This class is copied from OldPlatesGridMark. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
Many PLATES data files contain lines using the GR type code that construct small cross-shaped grid marks. The cross itself will be formed with two GR lines- hardly ideal from a feature-centric perspective, but it is important that GPlates be able to render these.
All geometry defined for the feature where the purpose is not given or unclear.
The polylines defining the gridmark. Due to the way gridmarks are generally defined in PLATES datafiles, this will probably be using gml:MultiCurve. This is the default location for imported geometry.
PLATES data files are a treasure-trove of previously undiscovered two-letter type codes. Most of these are known and have an appropriate GPML mapping; Some are typographical errors ('C0') unknown codes ('EC', 'FB', 'FT') or not handled yet ('OP' for Ophiolite Belt).
This feature allows for the unclassified data to be handled by GPlates properly, without silently throwing away data, and without bugging the user with a million dialog boxes or forcing them to fix their files.
This feature has access to the oldPlatesHeader property, which can be used to store the appropriate metadata.
This class is copied from UnclassifiedFeature. It is 'Instantaneous' because it is considered pre-reconstructed (all coordinates are paleo-coordinates).
All geometry defined for the feature where the purpose is not given or unclear. This is the default location for imported geometry.
The central line defining the feature, generally using gml:LineString, with the possibility of gml:MultiGeometry or gml:MultiCurve.
Geometry specifying a closed or partial outline - expected to potentially use gml:MultiGeometry, gml:LineString and gml:Polygon. This may include Contours (or extents) associated with this feature.