Python data converters for XYZ files to Evo geoscience objects
Project description
Seequent Developer Portal • Seequent Community • Seequent website
Evo
Evo is a unified platform for geoscience teams. It enables access, connection, computation, and management of subsurface data. This empowers better decision-making, simplified collaboration, and accelerated innovation. Evo is built on open APIs, allowing developers to build custom integrations and applications. Our open schemas, code examples, and SDK are available for the community to use and extend.
Evo is powered by Seequent, a Bentley organisation.
Pre-requisites
- Python virtual environment with Python 3.10, 3.11, or 3.12
- Git
Installation
pip install evo-data-converters-xyz
XYZ
XYZ (.xyz) is a simple ASCII file format where each line contains space- or comma-separated coordinate values. The converter automatically detects the file variant from the first data line. Header lines (any line not starting with a digit, ., +, or -) are automatically skipped. Sentinel values (*) are replaced with -1.0e32.
Supported file types
| Type | Delimiter | Columns | Example |
|---|---|---|---|
| Points | comma | 3 numeric (x, y, z) | 10.2,10.2,10.3 |
| Binary | comma | 2 numeric (x, y) | 12.2,12.3 |
| Geochemistry (comma) | comma | label + 3 numeric (x, y, z) | C,10.1,10.2,10.3 |
| Geochemistry (space) | space | label + 3 numeric (x, y, z) | C 10.1 10.2 10.3 |
| Geosoft Binary XYZ | space | 2 numeric (x, y); z set to 0.0 |
-0.69 -1.40 |
| Geosoft Binary XYZ + Data | space | ≥3 columns; x, y + data value; z set to 0.0 |
-0.69 -1.40 5.2 |
| Geosoft XYZ Triplet | space | 3 numeric (x, y, z) | -0.69 -1.40 0.20 |
| Geosoft XYZ Triplet + Data | space | ≥4 columns; x, y, z + data value | -0.69 -1.40 0.20 5.2 |
Type disambiguation for multi-column Geosoft files: when the file has ≥3 space-separated columns, the detected type depends on the
z_indexanddata_indexparameters passed toconvert_xyz:
data_indexset,z_index = -1→ Geosoft Binary XYZ + Data (z forced to0.0)data_indexset,z_indexset → Geosoft XYZ Triplet + Data- neither set → Geosoft XYZ Triplet
Column index parameters
All index parameters default to -1, which means "use the natural column order". Pass explicit zero-based column indices to select different columns from the file. These are only used in the Geosoft types, being ignored for all the others.
| Parameter | Default (-1) |
Custom (≥ 0) |
|---|---|---|
x_index |
column 0 | picks the specified column |
y_index |
column 1 | picks the specified column |
z_index |
column 2 (or 0.0 for binary types) |
picks the specified column; also promotes the type to Triplet + Data when data_index is also set |
data_index |
no attribute created | picks the specified column as a per-point data attribute on the pointset |
Implementations
The XYZ converter currently supports:
- Reading – Parse a
.xyzfile into a NumPyfloat64array of shape(N, 3)plus an optionallist[float]of per-point data values. - Type detection – Automatically identify the XYZ variant from the first data line, refined by the
z_index/data_indexparameters. - Parquet export – Save the parsed coordinates to a Parquet file with three
float64columns (x,y,z). Per-point data values are saved to a separate Parquet file. - Publishing – Import the XYZ file as a
Pointset(schemapointset/1.3.0) into an Evo workspace. When data values are present they are attached as aContinuousAttributenameddataon the pointset locations.
Publish geoscience objects from an XYZ file(s)
The evo-sdk-common Python library can be used to sign in. After successfully signing in, the user can select an organisation, an Evo hub, and a workspace. Use evo-objects to get an ObjectAPIClient, and evo-data-converters-xyz to convert your file.
Have a look at the code-samples/convert-xyz.ipynb notebook for an example of how to publish XYZ files.
Code of conduct
We rely on an open, friendly, inclusive environment. To help us ensure this remains possible, please familiarise yourself with our code of conduct.
License
Evo data converters are open source and licensed under the Apache 2.0 license.
Copyright © 2026 Bentley Systems, Incorporated.
Licensed under the Apache License, Version 2.0 (the "License"). You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file evo_data_converters_xyz-0.0.2.tar.gz.
File metadata
- Download URL: evo_data_converters_xyz-0.0.2.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03ee6a8a73cd3240a95b3a6ef3e4b933482200876fe4bb5692a43662a0207b7a
|
|
| MD5 |
9e4c2d7121c8222e7847f55fc4e510ce
|
|
| BLAKE2b-256 |
08c3c4dbdf0849325ee0d8ba23fa55c94d07e8fb41e099f7dbd1763e079f5450
|
Provenance
The following attestation bundles were made for evo_data_converters_xyz-0.0.2.tar.gz:
Publisher:
publish-xyz.yaml on SeequentEvo/evo-data-converters
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evo_data_converters_xyz-0.0.2.tar.gz -
Subject digest:
03ee6a8a73cd3240a95b3a6ef3e4b933482200876fe4bb5692a43662a0207b7a - Sigstore transparency entry: 1606563625
- Sigstore integration time:
-
Permalink:
SeequentEvo/evo-data-converters@e3e9d4ba98dd7e3065195b1a278d43bc745b5fa3 -
Branch / Tag:
refs/tags/evo-data-converters-xyz@v0.1.2 - Owner: https://github.com/SeequentEvo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-xyz.yaml@e3e9d4ba98dd7e3065195b1a278d43bc745b5fa3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file evo_data_converters_xyz-0.0.2-py3-none-any.whl.
File metadata
- Download URL: evo_data_converters_xyz-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5cb60b6dbaa1abef28973916681cc810e71a2c7bd22dc8500c4f872d759bbd3
|
|
| MD5 |
5c14a90ae50ae01c5a39a4743216e17b
|
|
| BLAKE2b-256 |
c735f3ccb4f320c81f15ae73ef1f4ff91c960051aa87be62222258ecd906e7e9
|
Provenance
The following attestation bundles were made for evo_data_converters_xyz-0.0.2-py3-none-any.whl:
Publisher:
publish-xyz.yaml on SeequentEvo/evo-data-converters
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
evo_data_converters_xyz-0.0.2-py3-none-any.whl -
Subject digest:
c5cb60b6dbaa1abef28973916681cc810e71a2c7bd22dc8500c4f872d759bbd3 - Sigstore transparency entry: 1606563713
- Sigstore integration time:
-
Permalink:
SeequentEvo/evo-data-converters@e3e9d4ba98dd7e3065195b1a278d43bc745b5fa3 -
Branch / Tag:
refs/tags/evo-data-converters-xyz@v0.1.2 - Owner: https://github.com/SeequentEvo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-xyz.yaml@e3e9d4ba98dd7e3065195b1a278d43bc745b5fa3 -
Trigger Event:
release
-
Statement type: