Skip to main content

CI Status PyPI version

To install:

$ pip install zmapio

Basic usage of zmapio

import matplotlib.pyplot as plt
import numpy as np
from zmapio import ZMAPGrid
%matplotlib inline

Reading a ZMAP file:

z_file = ZMAPGrid('./examples/NSLCU.dat')

Accessing the comments header:

for c in z_file.comments:
    print(c)
Landmark Zmap grid file name:   .DATANSLCU.dat
Created/converted by Oasis Montaj, Geosoft Inc.

Plotting the grid data:

z_file.plot()
https://raw.githubusercontent.com/abduhbm/zmapio/master/_static/output_9_1.png

Counts for rows and columns:

z_file.no_cols, z_file.no_rows
(435, 208)

Shape for z-values:

z_file.z_values.shape
(208, 435)

Exporting to CSV file:

z_file.to_csv('./output/output.csv')
head ./output/output.csv
-630000.0,2621000.0,-16481.9570313
-630000.0,2618000.0,-16283.9033203
-630000.0,2615000.0,-16081.5751953
-630000.0,2612000.0,-15856.7861328
-630000.0,2609000.0,-15583.7167969
-630000.0,2606000.0,-15255.734375
-630000.0,2603000.0,-14869.3769531
-630000.0,2600000.0,-14426.1513672
-630000.0,2597000.0,-13915.8769531
-630000.0,2594000.0,-13340.4677734

Exporting to WKT file:

z_file.to_wkt('./output/output.wkt', precision=2)

Exporting to GeoJSON file:

z_file.to_geojson('./output/output.json')

Exporting to Pandas Dataframe:

df = z_file.to_dataframe()
df.Z.describe()
count    90480.000000
mean     -5244.434235
std       4692.845490
min     -16691.371094
25%     -10250.590088
50%      -4003.433105
75%      -1320.896881
max       2084.417969
Name: Z, dtype: float64

Write a new ZMAP file as 3 nodes per line format:

z_file.write('./output/test.zmap', nodes_per_line=3)
head ./output/test.zmap
! Landmark Zmap grid file name:   .DATANSLCU.dat
! Created/converted by Oasis Montaj, Geosoft Inc.
@.DATANSLCU.dat, GRID, 3
20, 1e+30, , 7, 1
208, 435, -630000.0, 672000.0, 2000000.0, 2621000.0
0.0, 0.0, 0.0
@
      -16481.9570313      -16283.9033203      -16081.5751953
      -15856.7861328      -15583.7167969      -15255.7343750
      -14869.3769531      -14426.1513672      -13915.8769531

Creating a ZMAP object from string:

z_text = """
!
! File created by DMBTools2.GridFileFormats.ZmapPlusFile
!
@GRID FILE, GRID, 4
20, -9999.0000000, , 7, 1
6, 4, 0, 200, 0, 300
0.0, 0.0, 0.0
@
       -9999.0000000       -9999.0000000           3.0000000          32.0000000
          88.0000000          13.0000000
       -9999.0000000          20.0000000           8.0000000          42.0000000
          75.0000000           5.0000000
           5.0000000         100.0000000          35.0000000          50.0000000
          27.0000000           1.0000000
           2.0000000          36.0000000          10.0000000           6.0000000
           9.0000000       -9999.0000000
"""
z_t = ZMAPGrid(z_text)
z_t.plot()
https://raw.githubusercontent.com/abduhbm/zmapio/master/_static/output_28_1.png

Adding colorbar and colormap using matplotlib:

z_obj = ZMAPGrid('./examples/NStopo.dat')
fig=plt.figure(figsize=(12, 6))
z_obj.plot(cmap='jet')
plt.colorbar()
https://raw.githubusercontent.com/abduhbm/zmapio/master/_static/output_30_1.png

Creating a new ZMAP object from 2D-Numpy array with shape (no_cols, no_rows):

z_val = z_obj.z_values
print('Z-values shape: ', z_val.shape)
new_zgrid = ZMAPGrid(z_values=z_val, min_x=-630000.0000, max_x=672000.0000,
                     min_y=2000000.0000,  max_y=2621000.0000)
Z-values shape:  (435, 208)
new_zgrid.plot(cmap='gist_earth')
https://raw.githubusercontent.com/abduhbm/zmapio/master/_static/output_33_1.png

Customize writing a ZMAP file:

new_zgrid.comments = ['this is', 'a test']
new_zgrid.nodes_per_line = 4
new_zgrid.field_width = 15
new_zgrid.decimal_places = 3
new_zgrid.name = 'test'
new_zgrid.write('./output/new_z.dat')
head ./output/new_z.dat
!this is
!a test
@test, GRID, 4
15, 1e+30, , 3, 1
208, 435, -630000.0, 672000.0, 2000000.0, 2621000.0
0.0, 0.0, 0.0
@
        -67.214        -67.570        -67.147        -69.081
        -73.181        -74.308        -72.766        -72.034
        -70.514        -68.555        -66.195        -62.776

References

Metadata

Release files for zmapio 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zmapio 0.8.1
File Size Uploaded Provenance Actions
zmapio-0.8.1.tar.gz 9.5 kB Without provenance Details for zmapio-0.8.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for zmapio 0.8.1
File Interpreter ABI Platform Actions
zmapio-0.8.1-py3-none-any.whl Python 3 none any Details for zmapio-0.8.1-py3-none-any.whl

Total release size: 17.2 kB

Release files / zmapio-0.8.1.tar.gz

Download URL zmapio-0.8.1.tar.gz
Size 9.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5e760761757830343b7d4bf53beb17478e23ae3f42c92dd6f745fe43756b1bca
BLAKE2b-256 checksum
How to use checksums
122bd6d63141a96210f0d6c88379f4ffa64dfa505b20629e17f8d8893781d9b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.13

Release files / zmapio-0.8.1-py3-none-any.whl

Download URL zmapio-0.8.1-py3-none-any.whl
Size 7.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b539a50749be06891753f52389ccd605eff5de470ffa0bc877cb6148f87d51c5
BLAKE2b-256 checksum
How to use checksums
6b38d606ecc55068b5fd85a28643f7291a860db5de7a77ec7927f5577b24e18c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.13

Security for zmapio 0.8.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page