Geometrical product specifications (GPS) — Surface texture: Areal — Part 72: XML file format x3p

ISO 25178-72:2017 defines the XML file format x3p for storage and exchange of topography and profile data.

Spécification géométrique des produits (GPS) — État de surface: Surfacique — Partie 72: Format de fichier XML x3p

ISO 25178-72:2017 définit le format de fichier XML x3p pour le stockage et l'échange des données de topographie et de profils.

General Information

Status
Published
Publication Date
09-May-2017
Current Stage
9093 - International Standard confirmed
Completion Date
10-Dec-2021
Ref Project

Relations

Buy Standard

Standard
ISO 25178-72:2017 - Geometrical product specifications (GPS) -- Surface texture: Areal
English language
23 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ISO 25178-72:2017 - Spécification géométrique des produits (GPS) -- État de surface: Surfacique
French language
25 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)

INTERNATIONAL ISO
STANDARD 25178-72
First edition
2017-05
Geometrical product specifications
(GPS) — Surface texture: Areal —
Part 72:
XML file format x3p
Spécification géométrique des produits (GPS) — État de surface:
Surfacique —
Partie 72: Format de fichier XML x3p
Reference number
ISO 25178-72:2017(E)
©
ISO 2017

---------------------- Page: 1 ----------------------
ISO 25178-72:2017(E)

COPYRIGHT PROTECTED DOCUMENT
© ISO 2017, Published in Switzerland
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form
or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior
written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of
the requester.
ISO copyright office
Ch. de Blandonnet 8 • CP 401
CH-1214 Vernier, Geneva, Switzerland
Tel. +41 22 749 01 11
Fax +41 22 749 09 47
copyright@iso.org
www.iso.org
ii © ISO 2017 – All rights reserved

---------------------- Page: 2 ----------------------
ISO 25178-72:2017(E)

Contents Page
Foreword .iv
Introduction .v
1 Scope . 1
2 Normative references . 1
3 Terms and definitions . 1
4 Requirements . 4
4.1 Units . 4
4.2 Recommended offset value . 4
5 x3p file format . 4
5.1 General . 4
5.2 File name extension . 4
5.3 Minimum contents of zip-container . 4
5.4 Optional contents of zip-container . 4
5.4.1 General. 4
5.4.2 Binary encoded coordinates . 5
5.4.3 Validity mask . 5
5.4.4 Vendor specific extensions . 5
5.5 Contents and format of main.xml. 5
5.5.1 General. 5
5.5.2 Main records . 5
5.5.3 Record1: Header, data types, and axes definitions . 5
5.5.4 Record2: Meta data . 8
5.5.5 Record3: 3D point data.10
5.5.6 Record4: Checksum information .14
5.5.7 Vendor specific extensions .14
Annex A (informative) XML file format .15
Annex B (informative) Sample main.xml .20
Annex C (informative) Relation with the GPS matrix .22
Bibliography .23
© ISO 2017 – All rights reserved iii

---------------------- Page: 3 ----------------------
ISO 25178-72:2017(E)

Foreword
ISO (the International Organization for Standardization) is a worldwide federation of national standards
bodies (ISO member bodies). The work of preparing International Standards is normally carried out
through ISO technical committees. Each member body interested in a subject for which a technical
committee has been established has the right to be represented on that committee. International
organizations, governmental and non-governmental, in liaison with ISO, also take part in the work.
ISO collaborates closely with the International Electrotechnical Commission (IEC) on all matters of
electrotechnical standardization.
The procedures used to develop this document and those intended for its further maintenance are
described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed for the
different types of ISO documents should be noted. This document was drafted in accordance with the
editorial rules of the ISO/IEC Directives, Part 2 (see www .iso .org/ directives).
Attention is drawn to the possibility that some of the elements of this document may be the subject of
patent rights. ISO shall not be held responsible for identifying any or all such patent rights. Details of
any patent rights identified during the development of the document will be in the Introduction and/or
on the ISO list of patent declarations received (see www .iso .org/ patents).
Any trade name used in this document is information given for the convenience of users and does not
constitute an endorsement.
For an explanation on the voluntary nature of standards, the meaning of ISO specific terms and
expressions related to conformity assessment, as well as information about ISO’s adherence to the
World Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT) see the following
URL: w w w . i s o .org/ iso/ foreword .html.
This document was prepared by Technical Committee ISO/TC 213, Dimensional and geometrical product
specifications and verification.
A list of all parts in the ISO 25178 series can be found on the ISO website.
iv © ISO 2017 – All rights reserved

---------------------- Page: 4 ----------------------
ISO 25178-72:2017(E)

Introduction
This document is a geometrical product specification (GPS) standard and is to be regarded as a general
GPS standard (see ISO 14638). It influences the chain link F of the chains of standards on profile and
areal surface texture.
The ISO/GPS matrix model given in ISO 14638 gives an overview of the ISO/GPS system of which this
document is a part. The fundamental rules of ISO/GPS given in ISO 8015 apply to this document and
the default decision rules given in ISO 14253-1 apply to the specifications made in accordance with this
document, unless otherwise indicated.
For more detailed information of the relation of this document to other standards and the GPS matrix
model, see Annex C.
The x3p format was in use in industry and academia before the creation of this document. The x3p file
format as defined in this document has been developed based on the definitions in ISO 5436-2. The
1)
®
openGPS consortium provides a free open source software implementation of this file format to
avoid the inevitable inconsistency of multiple proprietary implementations.
®
1) openGPS is an example of a suitable product available commercially. This information is given for the
convenience of users of this document and does not constitute an endorsement by ISO of this product.
© ISO 2017 – All rights reserved v

---------------------- Page: 5 ----------------------
INTERNATIONAL STANDARD ISO 25178-72:2017(E)
Geometrical product specifications (GPS) — Surface
texture: Areal —
Part 72:
XML file format x3p
1 Scope
This document defines the XML file format x3p for storage and exchange of topography and profile data.
2 Normative references
The following document is referred to in the text in such a way that some or all of its content constitutes
requirements of this document. For dated references, only the edition cited applies. For undated
references, the latest edition of the referenced document (including any amendments) applies.
2)
ISO 25178-600 , Geometrical product specifications (GPS) —Surface texture: Areal — Part 600:
Metrological characteristics for areal-topography measuring methods
3 Terms and definitions
For the purposes of this document, the terms and definitions given in ISO 25178-600 and the
following apply.
ISO and IEC maintain terminological databases for use in standardization at the following addresses:
— ISO Online browsing platform: available at http:// www .iso .org/ obp
— IEC Electropedia: available at http:// www .electropedia .org/
3.1
zip-container
file format that can be used as a container for multiple files and folders that does also support a
compression of the stored content
[1]
Note 1 to entry: The file format description is in the public domain .
3.2
md5
method to calculate a unique 16-byte binary checksum used to check the integrity of files
Note 1 to entry: The binary value is typically represented by 32 hexadecimal digits.
Note 2 to entry: See Reference [2].
3.3
int16
2-byte representation of a signed integer
Note 1 to entry: The int16 type has a minimum value of –32 768 and a maximum value of 32 767.
2) Under preparation. Stage at the time of publication: ISO/DIS 25178-600.
© ISO 2017 – All rights reserved 1

---------------------- Page: 6 ----------------------
ISO 25178-72:2017(E)

Note 2 to entry: The less significant bytes are stored in memory addresses lower than those in which are stored
the more significant bytes.
3.4
int32
4-byte representation of a signed integer
Note 1 to entry: The int32 type has a minimum value of -2 147 483 648 and a maximum value of 2 147 483 647.
Note 2 to entry: The less significant bytes are stored in memory addresses lower than those in which are stored
the more significant bytes.
3.5
float32
4-byte representation of a floating point number according to IEEE 754
128 128
Note 1 to entry: The float32 type has a minimum value of – 2 and a maximum value of 2 . The smallest
-126
positive number representable is 2 .
Note 2 to entry: The ASCII representation is a signed floating point number with 8 digits and a signed two-digit
exponent in the range [-38. +38].
Note 3 to entry: The less significant bytes are stored in memory addresses lower than those in which are stored
the more significant bytes.
3.6
float64
8-byte representation of a floating point number according to IEEE 754
1 024 1 024
Note 1 to entry: The float64 type has a minimum value of –2 and a maximum value of 2 . The smallest
-1 022
positive number representable is 2 .
Note 2 to entry: The ASCII representation is a floating point number with 16 digits and a signed three-digit
exponent in the range [- 308. + 308].
Note 3 to entry: The less significant bytes are stored in memory addresses lower than those in which are stored
the more significant bytes.
3.7
not a number
NaN
special floating point value defined in IEEE 754 specifying a number that is not computable
Note 1 to entry: Some floating point implementations define more than one value for NaN to distinguish between
Quiet NaNs and Signaling NaNs. In this case the Quiet NaN is preferred.
Note 2 to entry: All mathematical operations incorporating a NaN value yield NaN as result. As a consequence, all
comparisons with a NaN value yield “unequal”. This is especially true for the equality comparison of two NaN values.
3.8
element
start tag followed by a data value followed by an end tag
EXAMPLE 1 An element with the name “example” comprising a start and an end tag would be implemented as
contents of element
EXAMPLE 2 An empty element with the name “example” would be implemented as

Note 1 to entry: An element begins with a start tag and ends with an end tag. Alternatively, an element may
consist of an empty tag solely. The content of the element is between the start and end tag and may contain
further elements.
2 © ISO 2017 – All rights reserved

---------------------- Page: 7 ----------------------
ISO 25178-72:2017(E)

3.9
extensible markup language
XML
language for encoding documents electronically
Note 1 to entry: XML is a subset of SGML (see Reference [7]).
3.10
uniform resource locator
URL
character string to locate a resource in a computer network or on a local computer
EXAMPLE A well-known use of a URL is the specification of a web site’s address like “http:// www .iso .org/ ”.
3.11
uniform resource identifier
URI
character string uniquely identifying a name or resource in a hierarchical style
EXAMPLE A URI for this document could be “ www . i s o .org/ ISO _25178 _Part _72”.
Note 1 to entry: A URL is the most common form of a URI.
Note 2 to entry: The relation between a URI and a URL is like the relation between a person’s name (the URI) and
a person’s address (the URL).
Note 3 to entry: To create a unique URI, it is good practice to start a URI with a domain name that has been
registered on the name of the owner.
3.12
offset
distance of the stored geometric data to the origin of the coordinate system along one axis of the
coordinate system
3.13
rotation matrix
3×3 matrix defining the rotation of the data set in 3D space
Note 1 to entry: It defines the orientation of the stored point cloud in 3D space.
3.14
global coordinate system
three-dimensional coordinate system in which the position and orientation of the original point cloud
is defined
3.15
view coordinate system
three-dimensional coordinate system in which the 3D points are defined
Note 1 to entry: In the view coordinate system, the represented surface or point cloud typically is projectable
along one spatial direction.
3.16
data matrix
one-, two- or three-dimensional array of 3D points with a defined neighbourhood relation
Note 1 to entry: Each 3D point has two neighbours along each matrix dimension. The data matrix contains point
coordinates in the view coordinate system.
Note 2 to entry: The index in the data matrix is described by the symbols u, v, and w.
Note 3 to entry: The array dimensions of the data matrix should not be confused with the spatial dimensions of
the global coordinate system or view coordinate system.
© ISO 2017 – All rights reserved 3

---------------------- Page: 8 ----------------------
ISO 25178-72:2017(E)

4 Requirements
4.1 Units
All coordinates shall be specified in metres. Other units shall not be used. SI Prefixes shall not be used.
4.2 Recommended offset value
The offset should be set to a value so that the stored point cloud is centred on the origin of the
coordinate system.
5 x3p file format
5.1 General
An x3p file is a zip-container for areal and profile data. It can be flexibly used for point clouds
without any topology as well as for projectable 2½D topography data and for multilayer topography
representations.
NOTE A general container format is described in Reference [5].
5.2 File name extension
The name of a file stored in x3p data format shall end with the string “.x3p”. On case sensitive file
systems the string shall be typed in lower case letters.
EXAMPLE 1 samplefile.x3p
EXAMPLE 2 longer_filename example123.x3p
5.3 Minimum contents of zip-container
The zip-container representing an x3p file shall contain as a minimum the files “main.xml” and
“md5checksum.hex” in its root directory as displayed in Figure 1 a).
EXAMPLE Figure 1 b) shows a more complex example of the contents of the zip-container.
a) example with minimum contents b) example with binary encoded coordinates
of an x3p file container, text only format “bindata.bin” and binary validity mask “valid.bin”
Figure 1 — x3p container examples
5.4 Optional contents of zip-container
5.4.1 General
The zip-container may contain more files depending on the type and encoding of the stored data.
4 © ISO 2017 – All rights reserved

---------------------- Page: 9 ----------------------
ISO 25178-72:2017(E)

5.4.2 Binary encoded coordinates
When storing coordinates in a binary encoded file, it should be placed in a subdirectory named
“bindata” and the file should be named “bindata.bin”.
NOTE Specifying a different name does not result in a dysfunctional file, because the relative path name to
this file is stored in main.xml.
5.4.3 Validity mask
When storing a validity mask in a binary encoded file, it should be placed in a subdirectory named
“bindata” and the file should be named “valid.bin”.
NOTE Specifying a different name does not result in a dysfunctional file, because the relative path name to
this file is stored in main.xml.
5.4.4 Vendor specific extensions
Vendor specific extensions shall be used to extend x3p-format to a custom file format. Vendor specific
extensions can use any file type and any filename except the filenames defined in 5.3.
EXAMPLE A vendor specific extension could be an image file named “photography_of_sample.jpg”.
5.5 Contents and format of main.xml
5.5.1 General
The exact specification of the xml data structures used in main.xml is defined in Annex A. Here, only
the content of the elements and their usage are described.
5.5.2 Main records
The file main.xml contains a sequence of four main records and a vendor specific extension:
— Record1: header, data types and axes definitions (see 5.5.3)
— Record2: optional record containing the document’s meta data (see 5.5.4)
— Record3: the data (see 5.5.5)
— Record4: an md5 checksum of the XML-document (see 5.5.6)
— Vendor specific extensions (see 5.5.7)
5.5.3 Record1: Header, data types, and axes definitions
5.5.3.1 Revision
The Revision record shall contain the string “ISO 5436:2000”.
NOTE This is not a reference to ISO 5436, it is only an identification string.
5.5.3.2 FeatureType
5.5.3.2.1 General
The FeatureType element specifies the class of 3D data stored in the file. The contents of feature type
shall be one of the strings “PRF”, “SUR”, “PCL”. These names correspond to profile, surface and point
cloud feature types.
© ISO 2017 – All rights reserved 5

---------------------- Page: 10 ----------------------
ISO 25178-72:2017(E)

5.5.3.2.2 PRF – Profile
The 3D data in the x3p file represent a profile i.e. a linear sequence of 3D coordinates. Points are stored
in a one-dimensional array for single layer profiles or in a two-dimensional array for multilayer profiles.
Each point has up to two neighbours for a single layer profile or up to four neighbours in a multilayer
profile. See Figure 2.
It shall be assured that the neighbourhood relation of all points in 3D space is the same as in the array.
NOTE 1 A 3D points matrix index u, v, w should not be confused with its 3D coordinates x, y, z.
NOTE 2 The case of a two dimensional matrix is used for multilayer profile representations. The array index w
represents the index of the layer in this case.
NOTE 3 The 3D coordinates of all points in a profile do not need to be located on a straight line in 3D space.
Profile can follow any path in space.
Key
Z 3D coordinates of point at matrix location
u
NOTE Each point has up to two direct neighbours.
Figure 2 — Sample neighbourhood relation of a 3D point in a “PRF” type feature
5.5.3.2.3 SUR – Surface
The 3D data in the x3p file represent the topography of a projectable surface with a well-defined
topology, i.e. a neighbourhood relation for each 3D point. Points are stored in a two- or three-
dimensional array and each array element has a maximum of four or six direct neighbouring elements
respectively, see Figure 3.
It shall be assured that the neighbourhood relation of all points in 3D space is the same as in the array.
NOTE 1 A 3D points matrix position u, v, w should not be confused with its 3D coordinates x, y, z.
NOTE 2 The case of a three-dimensional matrix is used for multilayer surface representations. The array
index w represents the index of the layer in this case.
Key
Z 3D coordinates of point at matrix location u, v
u,v
NOTE Each point has up to four direct neighbours.
Figure 3 — Sample neighbourhood relation of a 3D point for a “SUR” type feature
6 © ISO 2017 – All rights reserved

---------------------- Page: 11 ----------------------
ISO 25178-72:2017(E)

5.5.3.2.4 PCL – Point cloud
The 3D data in the x3p file represent a cloud of non-related points in 3D space. Points are stored in an
unordered list and their neighbourhood relation is unknown.
NOTE The point cloud representation may be useful for 3D data from coordinate measurement machines
(CMM) or for data from unknown sensor types with an unknown point topology.
5.5.3.3 Axes
5.5.3.3.1 General
The Axes elements shall be used to store the description of the coordinate system. It shall contain a
description for each axis in its three elements named CX, CY, and CZ of type AxisType. The structure
of AxisType elements is described in the following clauses.
5.5.3.3.2 AxisType
5.5.3.3.2.1 General
The AxisType element shall be one of the letters “I” for incremental axis or “A” for absolute axis.
5.5.3.3.2.2 Incremental axis type
For x and y axes, an incremental type defines the calculation of x and y coordinates from the matrix
indices u and v where
x, y are the spatial coordinates of the point;
u, v are the matrix indices of the point;
O is the offset of the point from the coordinate origin in metres;
I is the increment in metres.
The z axis shall not be incremental.
5.5.3.3.2.3 Absolute axis type
An absolute axis type shall be used for the explicit storage of x, y, and z coordinates. The z axis shall be
of absolute type.
NOTE Compared to an incremental axis type, the absolute axis type causes a higher memory usage for x and
y coordinates. The amount of memory used is as large as for the z coordinate because for each 3D point the x and
y coordinate has to be stored separately. Therefore, it is recommended to use incremental x and y axes whenever
possible, i.e. when point spacing is regular and homogenous.
5.5.3.3.3 DataType
The DataType element shall contain one of the letters “I” for int16 data, “L” for int32 data, “F” for
float32 data and “D” for float64 data.
5.5.3.3.4 Increment
The Increment element shall contain a positive length value in metres specifying the increment of
the axis. Increment shall not be zero. The increment values for the x, y and z axes are named with the
symbols I , I , and, I .
x y z
© ISO 2017 – All rights reserved 7

---------------------- Page: 12 ----------------------
ISO 25178-72:2017(E)

5.5.3.3.5 Offset
The Offset element shall specify the distance to the coordinate origin in metres. The offset may be
positive or negative. The offset values for the x, y and z axes are named with the symbols O , O , and, O .
x y z
5.5.3.4 Rotation
The Rotation element shall specify a 3×3 elements transformation matrix R with the elements in
Formula (1):
 rr r 
11 12 13
 
R = rr r (1)
 
21 22 23
 
rr r
31 32 33
 
The matrix R shall only contain a rotation transformation. It shall not contain other transformations
like mirroring, scaling or shearing.
5.5.3.5 Coordinate transformation
The calculation of the global coordinates from the view coordinates of the stored 3D points is done
using Formula (2):
X  rr r  I 00  x  O 
11 12 13 x x
         
Y = rr r ⋅ 0 I 0 ⋅ y + O (2)
 
  21 22 23  yy     y 
         
Z rr r 00 I z O
   31 32 33   z     z 
where
X, Y, Z global coordinates;
x, y, z view coordinates.
5.5.4 Record2: Meta data
5.5.4.1 General
Record2 contains the data set’s meta information. Record2 is optional but it is strongly recommended
to specify it as complete as possible to increase the traceability of the contained data set.
5.5.4.2 Date
The Date element shall contain date and time of data set creation in the format “YYYY-MM-DDThh: mm:
ss .sTZD” according to Reference [9].
EXAMPLE 2014-07-27T17:45:09.6+02:00
5.5.4.3 Creator
The Creator element should contain the name of the person and/or his/her institution or company
who created the data set.
National privacy protection or data protection regulations may limit the use of this field in some
countries.
EXAMPLE Tom Jones, Universal Metrology Institute
8 © ISO 2017 – All rights reserved

---------------------- Page: 13 ----------------------
ISO 25178-72:2017(E)

5.5.4.4 Instrument
5.5.4.4.1 General
The Instrument element shall contain a description of the measurement instrument or software used
to create the data set. The following elements shall be used for the description.
5.5.4.4.2 Manufacturer
The Manufacturer element shall contain the name of the instrument manufacturer.
EXAMPLE Examplebrand Precision Instruments
5.5.4.4.3 Model
The Model element shall contain the model name of the instrument or software used to create the data set.
EXAMPLE ExampleModel Superfluorescence Cosinus Trigonometre
5.5.4.4.4 Serial
The Serial element shall contain the serial number of the instrument used to measure the data set. In
case of a software created data set, this element may be empty.
EXAMPLE 1 S/N 1013
EXAMPLE 2 314ABC15/D
5.5.4.4.5 Version
The Version element shall contain the version number(s) of the instrument and/or software used to
create the data set.
5.5.4.5 CalibrationDate
The CalibrationDate element should contain the date and time when the last calibration of the
instrument was performed. Format of the string is “YYYY -MM -DDThh: mm: ss .sTZD” according to
Reference [9]. If the instrument has not been calibrated yet, this element shall be missing.
EXAMPLE 2014-04-30T13:58:02.6+02:00
5.5.4.6 ProbingSystem
5.5.4.6.1 General
The ProbingSystem element shall describe the type and identification of the probing system used.
For an optical instrument, this should be the lens specification; for a tactile system, this should be the
specification of the stylus.
5.5.4.6.2 Type
The Type element shall describe the kind of the probing system. This shall be one of “Contacting”
for stylus type instruments, “NonContacting” for optical or other non-contacting instruments or
“Software”. The last one shall be used for synthetic data sets, filtered data sets or soft-gauges.
EXAMPLE NonContacting
© ISO 2017 – All rights reserved 9

---------------------- Page: 14 ----------------------
ISO 25178-72:2017(E)

5.5.4.6.3 Identification
The Identification element shall provide a description of the probing system as specific as possible.
This could include information about the tip specification for a contacting instrument or the objective
specification for a non-contacting optical system. If a serial number of the probing system is available,
it should be specified here. For “Software” type instruments, it should describe the software used to
create the data as specific as possible.
5.5.4.7 Comment
The Comment element shall contain a string describing the data set as precise as possible.
EXAMPLE 1 First measurement from Tom Jones’ steel samples #4711, upper left corner
EXAMPLE 2 Areal sinusoidal softgauge with a period length of 1
...

NORME ISO
INTERNATIONALE 25178-72
Première édition
2017-05
Spécification géométrique des
produits (GPS) — État de surface:
Surfacique —
Partie 72:
Format de fichier XML x3p
Geometrical product specifications (GPS) — Surface texture: Areal —
Part 72: XML file format x3p
Numéro de référence
ISO 25178-72:2017(F)
©
ISO 2017

---------------------- Page: 1 ----------------------
ISO 25178-72:2017(F)

DOCUMENT PROTÉGÉ PAR COPYRIGHT
© ISO 2017, Publié en Suisse
Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne peut être reproduite ni utilisée
sous quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie, l’affichage sur
l’internet ou sur un Intranet, sans autorisation écrite préalable. Les demandes d’autorisation peuvent être adressées à l’ISO à
l’adresse ci-après ou au comité membre de l’ISO dans le pays du demandeur.
ISO copyright office
Ch. de Blandonnet 8 • CP 401
CH-1214 Vernier, Geneva, Switzerland
Tel. +41 22 749 01 11
Fax +41 22 749 09 47
copyright@iso.org
www.iso.org
ii © ISO 2017 – Tous droits réservés

---------------------- Page: 2 ----------------------
ISO 25178-72:2017(F)

Sommaire Page
Avant-propos .iv
Introduction .v
1 Domaine d’application .1
2 Références normatives .1
3 Termes et définitions .1
4 Exigences .4
4.1 Unités . 4
4.2 Valeur de décalage recommandée . 4
5 Format de fichier x3p .4
5.1 Généralités . 4
5.2 Extension du nom de fichier . 4
5.3 Contenu minimal d’un conteneur zip . 4
5.4 Contenu facultatif d’un conteneur zip . 5
5.4.1 Généralités . 5
5.4.2 Coordonnées codées binaires . 5
5.4.3 Masque de validité . 5
5.4.4 Extensions spécifiques du fournisseur . 5
5.5 Contenu et format de main.xml . 5
5.5.1 Généralités . 5
5.5.2 Enregistrements principaux . 6
5.5.3 Enregistrement1: Définitions des entêtes, types de données, et axes . 6
5.5.4 Enregistrement2: Métadonnées . 9
5.5.5 Enregistrement3: Données des points en 3D .11
5.5.6 Enregistrement4: informations de somme pour la vérification .15
5.5.7 Extensions spécifiques du fournisseur .15
Annexe A (informative) Format de fichier XML .16
Annexe B (informative) Exemple de fichier main.xml .21
Annexe C (informative) Relation avec la matrice GPS .23
Bibliographie .25
© ISO 2017 – Tous droits réservés iii

---------------------- Page: 3 ----------------------
ISO 25178-72:2017(F)

Avant-propos
L’ISO (Organisation internationale de normalisation) est une fédération mondiale d’organismes
nationaux de normalisation (comités membres de l’ISO). L’élaboration des Normes internationales est
en général confiée aux comités techniques de l’ISO. Chaque comité membre intéressé par une étude
a le droit de faire partie du comité technique créé à cet effet. Les organisations internationales,
gouvernementales et non gouvernementales, en liaison avec l’ISO participent également aux travaux.
L’ISO collabore étroitement avec la Commission électrotechnique internationale (IEC) en ce qui
concerne la normalisation électrotechnique.
Les procédures utilisées pour élaborer le présent document et celles destinées à sa mise à jour sont
décrites dans les Directives ISO/IEC, Partie 1. Il convient, en particulier de prendre note des différents
critères d’approbation requis pour les différents types de documents ISO. Le présent document a été
rédigé conformément aux règles de rédaction données dans les Directives ISO/IEC, Partie 2 (voir www
.iso .org/ directives).
L’attention est appelée sur le fait que certains des éléments du présent document peuvent faire l’objet de
droits de propriété intellectuelle ou de droits analogues. L’ISO ne saurait être tenue pour responsable
de ne pas avoir identifié de tels droits de propriété et averti de leur existence. Les détails concernant
les références aux droits de propriété intellectuelle ou autres droits analogues identifiés lors de
l’élaboration du document sont indiqués dans l’Introduction et/ou dans la liste des déclarations de
brevets reçues par l’ISO (voir www .iso .org/ brevets).
Les appellations commerciales éventuellement mentionnées dans le présent document sont données
pour information, par souci de commodité à l’intention des utilisateurs et ne sauraient constituer un
engagement.
Pour une explication de la nature volontaire des normes, la signification des termes et expressions
spécifiques de l’ISO liés à l’évaluation de la conformité, ou pour toute information au sujet de l’adhésion
de l’ISO aux principes de l’Organisation mondiale du commerce (OMC) concernant les obstacles
techniques au commerce (OTC) voir le lien suivant: w w w . i s o .org/ iso/ fr/ foreword .html.
Le présent document a été élaboré par le comité technique ISO/TC 213, Spécifications et vérification
dimensionnelles et géométriques des produits.
Une liste de toutes les parties de la série ISO 25178 se trouve sur le site internet de l’ISO.
iv © ISO 2017 – Tous droits réservés

---------------------- Page: 4 ----------------------
ISO 25178-72:2017(F)

Introduction
Le présent document traite de la spécification géométrique des produits (GPS) et est à considérer
comme une norme GPS générale (voir l’ISO 14638). Elle influence le maillon 6 de la chaîne de normes
concernant l’état de surface.
Le modèle de matrice ISO/GPS donné dans l’ISO 14638 donne une vue d’ensemble du système ISO/GPS
dont le présent document fait partie. Les principes fondamentaux du système ISO/GPS donnés dans
l’ISO 8015 s’appliquent au présent document et les règles de décision par défaut données dans
l’ISO 14253-1 s’appliquent aux spécifications faites conformément au présent document, sauf indication
contraire.
Pour de plus amples informations sur la relation du présent document avec les autres normes et le
modèle de matrice GPS, voir l’Annexe C.
Le format x3p était utilisé dans l’industrie et le milieu universitaire avant la création du présent
document. Le format de fichier x3p tel que défini dans le présent document a été élaboré d’après les
1)
®
définitions données dans l’ISO 5436-2. Le consortium openGPS propose la mise en œuvre logicielle
gratuite et en code source ouvert de ce format de fichier afin d’éviter les incohérences inévitables en cas
de mises en œuvre multi-propriétaires.

1) openGPS® est un exemple de produit approprié disponible sur le marché. Cette information est donnée
à l’intention des utilisateurs du présent document et ne signifie nullement que l’ISO approuve ou recommande
l’emploi exclusif du produit ainsi désigné.
© ISO 2017 – Tous droits réservés v

---------------------- Page: 5 ----------------------
NORME INTERNATIONALE ISO 25178-72:2017(F)
Spécification géométrique des produits (GPS) — État de
surface: Surfacique —
Partie 72:
Format de fichier XML x3p
1 Domaine d’application
Le présent document définit le format de fichier XML x3p pour le stockage et l’échange des données de
topographie et de profils.
2 Références normatives
Les documents suivants cités dans le texte constituent, pour tout ou partie de leur contenu, des
exigences du présent document. Pour les références datées, seule l’édition citée s’applique. Pour les
références non datées, la dernière édition du document de référence s’applique (y compris les éventuels
amendements).
2)
ISO 25178-600 , Spécification géométrique des produits (GPS) — État de surface: surfacique — Partie 600:
Caractéristiques métrologiques pour les méthodes de mesure par topographie surfacique
3 Termes et définitions
Pour les besoins du présent document, les termes et définitions donnés dans l’ISO 25178-600 ainsi que
les suivants s’appliquent.
L’ISO et l’IEC tiennent à jour des bases de données terminologiques destinées à être utilisées en
normalisation, consultables aux adresses suivantes:
— ISO Online browsing platform: disponible à l’adresse http:// www .iso .org/ obp
— IEC Electropedia: disponible à l’adresse http:// www .electropedia .org/
3.1
conteneur zip
format de fichier pouvant être utilisé comme conteneur de plusieurs fichiers et dossiers, supportant
également la compression du contenu stocké
[1]
Note 1 à l’article: La description du format de fichier est dans le domaine public .
3.2
md5
méthode permettant de calculer une somme pour la vérification binaire unique de 16 octets afin de
contrôler l’intégrité des fichiers
Note 1 à l’article: La valeur binaire est généralement représentée par 32 chiffres hexadécimaux.
Note 2 à l’article: Voir la Référence [2].

2) En préparation. Stade au moment de la publication: ISO/DIS 25178-600.
© ISO 2017 – Tous droits réservés 1

---------------------- Page: 6 ----------------------
ISO 25178-72:2017(F)

3.3
int16
représentation sur 2 octets d’un entier signé
Note 1 à l’article: Le type int16 a une valeur minimale de –32 768 et une valeur maximale de 32 767.
Note 2 à l’article: Les octets les moins significatifs sont stockés dans des adresses mémoire inférieures à celles
dans lesquelles sont stockés les octets les plus significatifs.
3.4
int32
représentation sur 4 octets d’un entier signé
Note 1 à l’article: Le type int32 a une valeur minimale de −2 147 483 648 et une valeur maximale de 2 147 483 647.
Note 2 à l’article: Les octets les moins significatifs sont stockés dans des adresses mémoire inférieures à celles
dans lesquelles sont stockés les octets les plus significatifs.
3.5
flottant32
représentation sur 4 octets d’un nombre à virgule flottante conformément à l’IEEE 754
128 128
Note 1 à l’article: Le type flottant32 a une valeur minimale de −2 et une valeur maximale de 2 . Le plus petit
−126
nombre positif qui peut être représenté est 2 .
Note 2 à l’article: La représentation ASCII est un nombre à virgule flottante signé composé de 8 chiffres et un
exposant signé à deux chiffres situé dans la plage [-38. +38].
Note 3 à l’article: Les octets les moins significatifs sont stockés dans des adresses mémoire inférieures à celles
dans lesquelles sont stockés les octets les plus significatifs.
3.6
flottant64
représentation sur 8 octets d’un nombre à virgule flottante conformément à l’IEEE 754
1 024 1 024
Note 1 à l’article: Le type flottant64 a une valeur minimale de −2 et une valeur maximale de +2 . Le plus
-1 022
petit nombre positif qui peut être représenté est 2 .
Note 2 à l’article: La représentation ASCII est un nombre à virgule flottante composé de 16 chiffres et un exposant
signé à trois chiffres situé dans la plage [- 308. + 308].
Note 3 à l’article: Les octets les moins significatifs sont stockés dans des adresses mémoire inférieures à celles
dans lesquelles sont stockés les octets les plus significatifs.
3.7
pas un nombre
NaN
valeur spéciale à virgule flottante définie dans l’IEEE 754 spécifiant un nombre qui n’est pas calculable
Note 1 à l’article: Certaines mises en œuvre en virgule flottante définissent plus d’une valeur pour NaN afin de
faire la distinction entre les Quiet NaN et les Signaling NaN. Dans ce cas, le Quiet NaN est privilégié.
Note 2 à l’article: Toutes les opérations mathématiques incorporant une valeur NaN ont pour résultat NaN. Par
conséquent, toutes les comparaisons avec une valeur NaN conduisent à une “inégalité”. Cela est particulièrement
vrai pour la comparaison d’égalité de deux valeurs NaN.
3.8
élément
balise de début suivie d’une valeur de donnée suivie d’une balise de fin
EXEMPLE 1 Un élément nommé «exemple» comprenant une balise de début et une balise de fin serait mis en
œuvre comme suit:
contenu de l’élément
2 © ISO 2017 – Tous droits réservés

---------------------- Page: 7 ----------------------
ISO 25178-72:2017(F)

EXEMPLE 2 Un élément vide nommé «exemple» serait mis en œuvre comme suit:

Note 1 à l’article: Un élément commence par une balise de début et se termine par une balise de fin. Autrement,
un élément peut être constitué d’une balise vide unique. Le contenu de l’élément est compris entre les balises de
début et de fin et peut contenir d’autres éléments.
3.9
langage de balisage extensible
XML
langage de codage électronique des documents
Note 1 à l’article: Le langage XML est une subdivision du langage SGML (voir la Référence [7]).
3.10
localisateur uniforme de ressource
URL
chaîne de caractères permettant de localiser une ressource sur un réseau informatique ou sur un
ordinateur local
EXEMPLE La spécification de l’adresse d’un site web sous la forme «http:// www .iso .org/ » est l’une des
utilisations très connues de l’URL.
3.11
identifiant uniforme de ressource
URI
chaîne de caractères permettant d’identifier de manière unique un nom ou une ressource de manière
hiérarchique
EXEMPLE Un URI pour le présent document pourrait être « www . i s o .org/ ISO _25178 _Part _72».
Note 1 à l’article: L’URL est la forme la plus courante d’URI.
Note 2 à l’article: La relation entre une URI et une URL est similaire à la relation entre le nom d’une personne
(URI) et son adresse (URL).
Note 3 à l’article: Pour créer une URI unique, la bonne pratique consiste à faire commencer l’URI par un nom de
domaine qui a été enregistré au nom du propriétaire.
3.12
décalage
distance des données géométriques stockées par rapport à l’origine du système de coordonnées le long
d’un axe de ce système
3.13
matrice de rotation
matrice 3×3 définissant la rotation de l’ensemble de données dans l’espace en 3D
Note 1 à l’article: Elle définit l’orientation du nuage de points stocké dans l’espace en 3D.
3.14
système de coordonnées global
système de coordonnées tridimensionnel dans lequel la position et l’orientation du nuage de points
d’origine sont définies
3.15
système de coordonnées de visualisation
système de coordonnées tridimensionnel dans lequel les points en 3D sont définis
Note 1 à l’article: Dans le système de coordonnées de visualisation, la surface ou le nuage de points représenté(e)
est généralement projetable le long d’une direction spatiale.
© ISO 2017 – Tous droits réservés 3

---------------------- Page: 8 ----------------------
ISO 25178-72:2017(F)

3.16
matrice de données
matrice uni-, bi- ou tridimensionnelle de points en 3D ayant une relation de voisinage définie
Note 1 à l’article: Chaque point en 3D a deux voisins le long de chaque dimension de la matrice. La matrice de
données contient les coordonnées des points dans le système de coordonnées de visualisation
Note 2 à l’article: Dans la matrice de données, l’indice est décrit par les symboles u, v et w.
Note 3 à l’article: Il convient de ne pas confondre les dimensions de la matrice de données avec les dimensions
spatiales du système de coordonnées global ou du système de coordonnées de visualisation.
4 Exigences
4.1 Unités
Toutes les coordonnées doivent être spécifiées en mètres. Il est interdit d’utiliser d’autres unités. Les
préfixes du SI ne doivent pas non plus être utilisés.
4.2 Valeur de décalage recommandée
Il convient de fixer le décalage sur une valeur faisant en sorte que le nuage de points stocké soit centré
sur l’origine du système de coordonnées.
5 Format de fichier x3p
5.1 Généralités
Un fichier x3p est un conteneur zip contenant des données surfaciques et des données de profils. Il
peut aussi bien être utilisé pour des nuages de points sans aucune topologie que pour des données de
topographie projetables en 2½-D et pour des représentations topographiques multi-couches
NOTE Un format de conteneur général est décrit dans la Référence [5].
5.2 Extension du nom de fichier
Le nom d’un fichier stocké au format de données x3p doit se terminer par la chaîne «.x3p». Dans les
systèmes de fichiers sensibles à la casse, la chaîne doit être saisie en lettres minuscules.
EXEMPLE 1 samplefile.x3p
EXEMPLE 2 longer_filename example123.x3p
5.3 Contenu minimal d’un conteneur zip
Le conteneur zip représentant un fichier x3p doit contenir au minimum les fichiers «main.xml» et
«md5checksum.hex» dans son répertoire racine, comme illustré à la Figure 1 a).
EXEMPLE La Figure 1 b) illustre un exemple plus complexe de contenu du conteneur zip.
4 © ISO 2017 – Tous droits réservés

---------------------- Page: 9 ----------------------
ISO 25178-72:2017(F)

a) exemple avec des contenus minimaux d’un conte- b) exemple avec des coordonnées codées binaires
neur de fichier x3p, au format texte seul «bindata.bin» et une matrice de validité binaire
«valid.bin»
Figure 1 — Exemples de conteneur x3p
5.4 Contenu facultatif d’un conteneur zip
5.4.1 Généralités
Le conteneur zip peut contenir davantage de fichiers en fonction du type et du codage des données
stockées.
5.4.2 Coordonnées codées binaires
Pour stocker des coordonnées dans un fichier codé binaire, il convient de les placer dans un sous-
répertoire nommé «bindata» et de nommer le fichier «bindata.bin».
NOTE La spécification d’un nom différent ne conduit pas à un fichier dysfonctionnel car le nom du chemin
relatif menant à ce fichier est stocké dans main.xml.
5.4.3 Masque de validité
Pour stocker un masque de validité dans un fichier codé binaire, il convient de le placer dans un sous-
répertoire nommé «bindata» et de nommer le fichier «valid.bin».
NOTE La spécification d’un nom différent ne conduit pas à un fichier dysfonctionnel car le nom du chemin
relatif menant à ce fichier est stocké dans main.xml.
5.4.4 Extensions spécifiques du fournisseur
Des extensions spécifiques du fournisseur doivent être utilisées pour étendre le format x3p à un format
de fichier personnalisé. Les extensions spécifiques du fournisseur peuvent utiliser tout type de fichier
et tout nom de fichier, à l’exception des noms de fichiers définis en 5.3.
EXEMPLE Une extension spécifique du fournisseur pourrait être un fichier image nommé «photography_of_
sample.jpg».
5.5 Contenu et format de main.xml
5.5.1 Généralités
La spécification exacte des structures de données XML utilisées dans main.xml est définie dans
l’Annexe A. Ici, seuls le contenu des éléments et leur usage sont décrits.
© ISO 2017 – Tous droits réservés 5

---------------------- Page: 10 ----------------------
ISO 25178-72:2017(F)

5.5.2 Enregistrements principaux
Le fichier main.xml contient une séquence de quatre enregistrements principaux et une extension
spécifique du fournisseur:
— Enregistrement1: en-tête, définitions des types de données et des axes (voir 5.5.3);
— Enregistrement2: enregistrement facultatif contenant les métadonnées du document (voir 5.5.4);
— Enregistrement3: les données (voir 5.5.5);
— Enregistrement4: somme pour la vérification md5 du document XML (voir 5.5.6);
— Extensions spécifiques du fournisseur (voir 5.5.7).
5.5.3 Enregistrement1: Définitions des entêtes, types de données, et axes
5.5.3.1 Révision
L’enregistrement Revision (Révision) doit contenir la chaîne «ISO 5436:2000».
NOTE Il ne s’agit pas d’une référence à l’ISO 5436. Il s’agit seulement d’une chaîne d’identification.
5.5.3.2 ÉlémentType
5.5.3.2.1 Généralités
L’élément FeatureType (TypeÉlément) spécifie la classe des données en 3D stockées dans le fichier.
Le contenu du type d’élément doit être l’une des chaînes suivantes: «PRF», «SUR», «PCL». Ces noms
correspondent aux types d’éléments profil, surface et nuage de points.
5.5.3.2.2 PRF – Profil
Les données en 3D dans le fichier x3p représentent un profil, c’est-à-dire une séquence linéaire de
coordonnées en 3D. Les points sont stockés dans une matrice unidimensionnelle pour les profils à couche
simple ou dans une matrice bidimensionnelle pour les profils multicouches. Chaque point a jusqu’à deux
voisins pour un profil à couche simple ou jusqu’à quatre voisins pour un profil multicouches. Voir la
Figure 2.
Il faut s’assurer que la relation de voisinage de tous les points dans l’espace en 3D est la même que dans
la matrice.
NOTE 1 Il convient de ne pas confondre l’indice u, v, w de la matrice de points en 3D avec les coordonnées en
3D x, y, z.
NOTE 2 Une matrice bidimensionnelle est utilisée pour les représentations de profils multicouches. Dans ce
cas, l’indice de matrice w représente l’indice de la couche.
NOTE 3 Les coordonnées en 3D de tous les points d’un profil n’ont pas besoin de se trouver sur une droite dans
l’espace en 3D. Le profil peut suivre une courbe quelconque dans l’espace.
Légende
Z 3D coordinates of point at matrix location coordonnées en 3D du point situé à l’emplacement de la matrice
u
NOTE Chaque point a jusqu’à deux voisins directs.
Figure 2 — Exemple de relation de voisinage d’un point en 3D dans un élément de type «PRF»
6 © ISO 2017 – Tous droits réservés

---------------------- Page: 11 ----------------------
ISO 25178-72:2017(F)

5.5.3.2.3 SUR – Surface
Les données en 3D dans le fichier x3p représentent la topographie d’une surface projetable ayant une
topologie bien définie, c’est-à-dire une relation de voisinage pour chaque point en 3D. Les points sont
stockés dans une matrice bi- ou tridimensionnelle et chaque élément de la matrice a au maximum
quatre ou six éléments voisins directs respectivement, voir la Figure 3.
Il faut s’assurer que la relation de voisinage de tous les points dans l’espace en 3D est la même que dans
la matrice.
NOTE 1 Il convient de ne pas confondre la position u, v, w de la matrice de points en 3D avec les coordonnées
en 3D x, y, z.
NOTE 2 Une matrice tridimensionnelle est utilisée pour les représentations de surfaces multi-couches. Dans
ce cas, l’indice de matrice w représente l’indice de la couche.
Légende
Z coordonnées en 3D du point situé à l’emplacement de matrice u, v
u,v
NOTE Chaque point a jusqu’à quatre voisins directs.
Figure 3 — Exemple de relation de voisinage d’un point en 3D dans un élément de type «SUR»
5.5.3.2.4 PCL – Nuage de points
Les données en 3D dans le fichier x3p représentent un nuage de points indépendants dans l’espace en
3D. Les points sont stockés dans une liste non ordonnée et leur relation de voisinage est inconnue.
NOTE La représentation du nuage de points peut être utile pour les données en 3D issues de machines à
mesurer tridimensionnelles (MMT) ou pour les données issues de types de capteurs inconnus ayant une topologie
de points inconnue.
5.5.3.3 Axes
5.5.3.3.1 Généralités
L’élément Axes doit être utilisé pour stocker la description du système de coordonnées. Il doit contenir
une description de chaque axe dans les trois éléments appelés CX, CY et CZ du type AxisType
(TypeAxe). La structure des éléments AxisType (TypeAxe) est décrite dans les articles suivants.
5.5.3.3.2 TypeAxe
5.5.3.3.2.1 Généralités
L’élément AxisType (TypeAxe) doit correspondre à la lettre «I» pour un axe incrémentiel et à la lettre
«A» pour un axe absolu.
© ISO 2017 – Tous droits réservés 7

---------------------- Page: 12 ----------------------
ISO 25178-72:2017(F)

5.5.3.3.2.2 Type d’axe incrémentiel
Pour les axes x et y, un type incrémentiel définit le calcul des coordonnées x et y à partir des indices de
matrice u et v, où:
x, y sont les coordonnées spatiales du point;
u, v sont les indices de matrice du point;
O est le décalage du point par rapport à l’origine des coordonnées, en mètres;
I est l’incrément, en mètres.
L’axe z ne doit pas être incrémentiel.
5.5.3.3.2.3 Type d’axe absolu
Un type d’axe absolu doit être utilisé pour le stockage explicite des coordonnées x, y et z. L’axe z doit être
de type absolu.
NOTE Comparé au type d’axe incrémentiel, le type d’axe absolu consomme davantage de mémoire pour les
coordonnées x et y. La quantité de mémoire utilisée est aussi élevée que pour la coordonnée z car, pour chaque
point en 3D, les coordonnées x et y doivent être stockées séparément. Il est donc recommandé d’utiliser des
axes incrémentiels x et y à chaque fois que possible, c’est-à-dire lorsque l’espacement des points est régulier et
homogène.
5.5.3.3.3 TypeDonnée
L’élément DataType (TypeDonnée) doit contenir la lettre «I» pour les données int16, «L» pour les
données int32, «F» pour les données flottant32 et «D» pour les données flottant64.
5.5.3.3.4 Incrémentation
L’élément Increment (Incrémentation) doit contenir une valeur de longueur positive, en mètres,
spécifiant l’incrément de l’axe. L’incrément ne doit pas être nul. Les valeurs d’incrément pour les axes x,
y et z sont nommées avec les symboles I , I et I .
x y z
5.5.3.3.5 Décalage
L’élément Offset (Décalage) doit spécifier la distance par rapport à l’origine des coordonnées, en
mètres. Le décalage peut être positif ou négatif. Les valeurs de décalage pour les axes x, y et z sont
nommées avec les symboles O , O et O .
x y z
5.5.3.4 Rotation
L’élément Rotation doit spécifier une matrice R 3×3 de transformation des éléments contenant les
éléments dans la Formule (1):
rr r 
11 12 13
 
R = rr r (1)
 21 22 23 
 
rr r
31 32 33
 
La matrice R ne doit contenir qu’une transformation par rotation. Elle ne doit pas contenir d’autres
transformations telles que l’image miroir, la mise à l’échelle ou le cisaillement.
8 © ISO 2017 – Tous droits réservés

---------------------- Page: 13 ----------------------
ISO 25178-72:2017(F)

5.5.3.5 Transformation des coordonnées
Le calcul des coordonnées globales à partir des coordonnées de visualisation des points en 3D stockés
est effectué en utilisant la Formule (2):
X  rr r  I 00  x  O 
11 12 13 x x
         
Y = rr r ⋅ 0 I 0 ⋅ y + O (2)
         
21 22 23 yy y
         
Z rr r 00 I z O
31 32 33 z z
         

X, Y, Z coordonnées globales;
x, y, z coordonnées de visualisation.
5.5.4 Enregistrement2: Métadonnées
5.5.4.1 Généralités
Record2 contient les métadonnées relatives à l’ensemble de données. Record2 est facultatif mais il
est vivement recommandé de le spécifier de manière aussi complète que possible afin d’augmenter la
traçabilité de l’ensemble de données contenu.
5.5.4
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.