GithubHelp home page GithubHelp logo

gbhattacharjee / sobol Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 1.0 59.71 MB

This repository includes all files (both scripts and results) necessary to reproduce the figures in the paper 'Using global variance-based sensitivity analysis to prioritise bridge retrofits in a regional road network subject to seismic hazard' by G. Bhattacharjee and J. W. Baker, forthcoming in Structure and Infrastructure Engineering (2021). Many of these figures have already been reproduced and stored in the directory figs. The scripts can be modified to estimate the Sobol' indices of bridges in other regional road networks, too.

License: GNU General Public License v3.0

Python 100.00%
sensitivity-analysis sobol-indices road-network risk-analysis traffic-simulation infrastructure-management bridge-retrofit

sobol's Introduction

Identify important components in complex networks

What is sobol?

Which bridges are the most important to retrofit if we want to reduce the expected cost of the road network performance given a regional seismic hazard?

sobol is a repository that contains a set of methods and a sample data set with which to answer that and similar questions. Specifically, sobol comprises:

  • A set of methods for quantifying the importance of individual components in complex networks by computing their
    first- and total-order Sobol' indices
  • A sample data set on which to use those methods, comprising vector inputs (bridge fragility function
    parameters) and scalar outputs (the expected cost of road network performance over a set of earthquake rupture
    scenarios).

Retrofitting bridges based on their total-order Sobol' indices can be more cost efficient than selecting bridges according to other criteria (Bhattacharjee and Baker TBD).

figs/sf_fullr_exp_total_cost_vs_n_bridges_positive.png

These methods should be applicable to other networks and performance metrics of interest, provided they meet the criteria outlined in the paper associated with this repository (Bhattacharjee and Baker TBD).

What are Sobol' indices?

A Sobol' index approximates an exact sensitivity index that results from a global variance-based sensitivity analysis . The magnitude of a (normalized) Sobol' index indicates how much of the variance in an output quantity of interest can be attributed to variance in a particular input. The larger the Sobol' index, the more influential the input.

  • For an basic introduction to Sobol' indices, head to the example.
  • For a more detailed treatment, see Global Sensitivity Analysis: The Primer by Andrea Saltelli et al.
  • For a detailed treatment of Sobol' indices for bridge retrofit (or component upgrade) prioritisation, see the paper
    associated with this repository (Bhattacharjee and Baker TBD).

How is sobol organized?

This repository includes all files (both scripts and results) necessary to reproduce the figures in Bhattacharjee and Baker TBD. Many of these figures have already been reproduced and stored in the directory figs.

  • CONTENTS details the contents of each directory as well as the purpose of each script.
  • CONFIG specifies which version of Python you should use to run the scripts included in this repository, as well as
    the packages you need to install.
  • BENCHMARKS includes detailed outputs against which to verify the results you get when running certain scripts on
    your own machine.

How can I use sobol?

Try:

  • Exploring the sample data set to better understand global variance-based sensitivity analysis or Sobol' indices.
  • Replacing the sample data set with your own data, whether for bridges in road networks or for components in another
    system, and prioritising component-level interventions in your system of interest.
  • Using the methods implemented for computing first- and total-order Sobol' indices for any function of your
    choosing -- it can be a simple polynomial or not expressible in closed form.

How can I install sobol?

In Terminal (on Mac), use the following, replacing [myDirectory] with your preferred directory, e.g. cd Desktop.

cd [myDirectory]
git clone https://github.com/gbhattacharjee/sobol.git

Before running any scripts in sobol, make sure you have all the required Python packages in config. Some

packages require specific (earlier) versions, so I recommend creating a virtual environment (e.g., venv) in which to install them. For example:

cd sobol
python2 -m venv sobol-venv
source sobol-venv/bin/activate
pip install networkx==1.8.1
pip install pp==1.6.5
pip install scipy
pip install numpy
pip install matplotlib
pip install plotly

To verify installation has worked, please compare the results of the specified function calls to those given in the benchmarks document.

How can I cite this repository?

Gitanjali Bhattacharjee. (2020, November 28). Sobol' index-based bridge retrofit prioritisation code (Version v1.0.0). Zenodo. http://doi.org/10.5281/zenodo.4294322

References

Gitanjali Bhattacharjee and Jack W. Baker. (2021) Using global variance-based sensitivity analysis to prioritise bridge retrofits in a regional road network subject to seismic hazard. Structure and Infrastructure Engineering (in press).

Andrea Saltelli, Stefano Tarantola, Francesca Campolongo, and Marco Ratto. (2004) Sensitivity Analysis in Practice: A Guide to Assessing Scientific Models. John Wiley & Sons, Ltd.

Andrea Saltelli, Marco Ratto, Terry Andres, Francesca Campolongo, Jessica Cariboni, Debora Gatelli, Michaela Saisana, Stefano Tarantola. (2008) Global Sensitivity Analysis: The Primer. John Wiley & Sons, Ltd.

Contact

Gitanjali Bhattacharjee, Blume Earthquake Engineering Center Stanford University, [email protected]

sobol's People

Contributors

gbhattacharjee avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

ai4disaster

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.