Giter Club home page Giter Club logo

obsidian-nicta's Introduction

Obsidian

WARNING: This repository is no longer being maintained.

Obsidian is a set of tools designed to perform probabilistic inference with geophysical sensor data to produce models of the sub-surface. It is written primarily in C++ and runs on GNU/Linux and Unix operating systems.

Description

The software is designed to perform geophysical inversions in regions relevant to the geothermal industry: specifically sedimentary basins overlying a basement into which granites may or may not be intruding. This flexibility allows us to model both Enhanced Geothermal Systems (EGS) such as the Cooper Basin, and (Hot Sedimentary Acquifier) HSA systems such as the Otway basin.

Probabilistic inversions are generally computationally expensive, but Obsidian can parallelise the workload over a cluster by delegating expensive sensor simulations to workers to significantly improve performance. Obsidian has been successfully used to perform large scale inversions on cluster architectures such as Amazon EC2.

Contact Us

Please feel free to contact the developers at NICTA if you have questions about building, running or interpreting results from Obsidian. Best to email [email protected].

System Support

Currently, Obsidian runs on Linux-based operating systems only.

Compiler Support

Obsidian successfully compiles under GCC 4.9.

Prerequisites

Obsidian requires the following libraries as prerequisites:

  • Boost 1.55
  • Eigen 3.2.0
  • google-log (glog) 0.3.3
  • google-test (gtest) 1.7.0
  • zeromq 4.0.3
  • cppzeromq 2358037407 (commit hash)
  • Protocol-buffers (protobuf) 2.5.0
  • leveldb 1.15.0

Please note that the actual source of google-test is required, so don't attempt to use a pre-compiled version from a package manager. Obsidian compiles libraries from google-test as part of the build process. The prereqs folder contains some instructions for building each of the above libraries from source code. There is also a script for downloading and building prerequisites in the prereqs folder.

Building

There is a build.sh script included with Obsidian in that can be used to easily build the project using CMake, by specifying environment variables corresponding to the locations of the prerequisite libraries. If you have installed them all into /usr/local, you can probably ignore them and just run CMake. Once you have run CMake in your build directory, a simple make command will suffice to build the project.

Documentation

There is doxygen documentaion available here. To compile the documentation locally, just run make doc

Current Limitations

  • The ground surface is currently assumed to be flat.
  • Only a very basic visulation script is included.
  • Rock properties are assumed to be multivariate Gaussians.

Licence

Obsidian is released under the GNU Affero General Public License Version 3 or later. Please see COPYRIGHT.

Obsidian incorporates a modifed version of cnpy, which is copyright (c) Carl Rogers, 2011 and distributed under the MIT license. The modified copy of cnpy can be found along with the license in the src/io directory.

Bug Reports

If you find a bug, please open an issue.

Contributing

Contributions and comments are welcome. Please read our style guide before submitting a pull request.

obsidian-nicta's People

Contributors

lmccalman avatar bsimyo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.