{"id":32176355,"url":"https://github.com/softwareunderground/subsurface","last_synced_at":"2026-03-06T16:03:08.270Z","repository":{"id":38682697,"uuid":"185793558","full_name":"softwareunderground/subsurface","owner":"softwareunderground","description":"Core data exchange library for subsurface science and engineering","archived":false,"fork":false,"pushed_at":"2024-06-14T07:58:46.000Z","size":63576,"stargazers_count":62,"open_issues_count":18,"forks_count":17,"subscribers_count":21,"default_branch":"main","last_synced_at":"2025-10-28T20:49:42.658Z","etag":null,"topics":["geoscientific-data","subsurface","subsurface-datahub","swung-t19","swung-t20","swung-t21"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/softwareunderground.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-09T12:21:12.000Z","updated_at":"2025-09-10T17:56:54.000Z","dependencies_parsed_at":"2023-09-23T05:08:33.329Z","dependency_job_id":"baef34ff-4398-4f5c-9c60-b84e19e41524","html_url":"https://github.com/softwareunderground/subsurface","commit_stats":{"total_commits":374,"total_committers":13,"mean_commits":28.76923076923077,"dds":0.5962566844919786,"last_synced_commit":"916f346b181c1b2f107375c92623f70a0d85ac01"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/softwareunderground/subsurface","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwareunderground%2Fsubsurface","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwareunderground%2Fsubsurface/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwareunderground%2Fsubsurface/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwareunderground%2Fsubsurface/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softwareunderground","download_url":"https://codeload.github.com/softwareunderground/subsurface/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwareunderground%2Fsubsurface/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30184884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T14:42:24.748Z","status":"ssl_error","status_checked_at":"2026-03-06T14:42:14.925Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geoscientific-data","subsurface","subsurface-datahub","swung-t19","swung-t20","swung-t21"],"created_at":"2025-10-21T19:58:53.896Z","updated_at":"2026-03-06T16:03:08.266Z","avatar_url":"https://github.com/softwareunderground.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":".. image:: https://raw.githubusercontent.com/softwareunderground/subsurface/main/docs/source/_static/logos/subsurface.png\n   :target: https://softwareunderground.github.io/subsurface\n   :alt: subsurface logo\n\n|\n\n.. image:: https://img.shields.io/pypi/v/subsurface.svg\n   :target: https://pypi.python.org/pypi/subsurface/\n   :alt: PyPI\n.. image:: https://img.shields.io/conda/v/conda-forge/subsurface.svg\n   :target: https://anaconda.org/conda-forge/subsurface/\n   :alt: conda-forge\n.. image:: https://img.shields.io/badge/python-3.8+-blue.svg\n   :target: https://www.python.org/downloads/\n   :alt: Supported Python Versions\n.. image:: https://img.shields.io/badge/platform-linux,win,osx-blue.svg\n   :target: https://anaconda.org/conda-forge/emg3d/\n   :alt: Linux, Windows, OSX\n.. image:: https://img.shields.io/badge/slack-swung-1DB6ED.svg?logo=slack\n   :target: http://swu.ng/slack\n   :alt: SWUNG Slack\n\n|\n\n\n.. sphinx-inclusion-marker\n\n\nsubsurface\n==========\n\n\nDataHub for geoscientific data in Python. Two main purposes:\n\n+ Unify geometric data into data objects (using numpy arrays as memory representation) that all the packages of the stack understand\n\n+ Basic interactions with those data objects:\n    + Write/Read\n    + Categorized/Meta data\n    + Visualization\n\n\nData Levels\n-----------\n\nThe difference between data levels is **not** which data they store but which data they **parse and understand**. The rationale for this is to be able to pass along any object while keeping the I/O in subsurface::\n\n                HUMAN\n\n   \\‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾/\\\n    \\= = = = = = = = = = = = = = /. \\     -\u003e Additional context/meta information about the data\n     \\= = = = geo_format= = = = /. . \\\n      \\= = = = = = = = = = = = /. . . \\   -\u003e Elements that represent some\n       \\= = = geo_object= = = /. . . . \\     geological concept. E.g: faults, seismic\n        \\= = = = = = = = = = /. . . . ./\n         \\= = element = = = /. . . . /    -\u003e type of geometric object: PointSet,\n          \\= = = = = = = = /. . . ./         TriSurf, LineSet, Tetramesh\n           \\primary_struct/. . . /        -\u003e Set of arrays that define a geometric object:\n            \\= = = = = = /. . ./             e.g. *StructuredData*, *UnstructuredData*\n             \\DF/Xarray /. . /            -\u003e Label numpy.arrays\n              \\= = = = /. ./\n               \\array /. /                -\u003e Memory allocation\n                \\= = /./\n                 \\= //\n                  \\/\n\n               COMPUTER\n\n\nDocumentation (WIP)\n-------------------\n\n**Disclaimer: The documentation is currently obsolete and has been unpublished. The best way to learn to use this library at this stage is by looking into the tests.**\n\n\nNote that ``subsurface`` is still in early days; do expect things to change. We\nwelcome contributions very much, please get in touch if you would like to add\nsupport for subsurface in your package.\n\nAn early version of the documentation can be found here:\n\nhttps://softwareunderground.github.io/subsurface/\n\nDirect links:\n\n- `Developers-guide \u003chttps://softwareunderground.github.io/subsurface/maintenance.html\u003e`_\n- `Changelog \u003chttps://softwareunderground.github.io/subsurface/changelog.html\u003e`_\n\n\nInstallation\n------------\n\n.. code-block:: console\n\n    pip install subsurface\n\nor\n\n.. code-block:: console\n\n    conda install -c conda-forge subsurface\n\nBe aware that to read different formats you will need to manually install the\nspecific dependency (e.g. ``welly`` to read well data).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftwareunderground%2Fsubsurface","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftwareunderground%2Fsubsurface","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftwareunderground%2Fsubsurface/lists"}