Code Monkey home page Code Monkey logo

teslakit's Introduction

TESLA-kit Coastal risk assessment

Teslakit is a Python3 collection of libraries for numerical and statistical calculations and methodologies for handling global climate data.

The stochastic climate emulator proposed is built on the recognition that coastal conditions are the result of meteorological forcing, and that synoptic-scale meteorology is in turn a consequence of large-scale quasi-steady atmospheric and oceanic patterns (e.g., Anderson et al. 2019)

Main contents

teslakit modules:

  • alr AutoRegressive Logistic Model customized wrapper

  • climate_emulator DWTs-Waves Extremes Statistical Emulator (GEV, Gumbel, Weibull)

  • estela SLP ESTELA Predictor module

  • extremes Extremes Statistics library

  • intradaily Intradaily Hydrographs library

  • kma KMeans Classification library

  • mda MaxDiss Classification library

  • mjo Madden-Julian Oscilation data functions

  • pca Customized Principal Component Analysis library

  • rbf Radial Basis Function library

  • statistical statistical multipurpose module: KDE, GeneralizedPareto, Empirical Kernels for copula fit and simulation

  • storms storms and tropical cyclones library

  • tides tides functions library

  • waves waves functions library

  • plotting set of modules for teslakit data and output plotting

  • database custom database developed to ease the multiple files required for a teslakit site

databases:

Project Map

picture

Documentation

Anderson, D., Rueda, A., Cagigal, L., Antolinez, J. A. A., Mendez, F. J., & Ruggiero, P. (2019). Time‐varying emulator for short and long‐term analysis of coastal flood hazard potential. Journal of Geophysical Research: Oceans, 124. https://doi.org/10.1029/2019JC015312

Anderson, D., Ruggiero, P., Mendez, F. J., Rueda, A., Antolinez, J. A., Cagigal, L., Storlazzi, C., Barnard, P., & Marra, J. (2018). TIME-VARYING EMULATOR FOR SHORT- AND LONG-TERM ANALYSIS OF COASTAL FLOODING (TESLA-FLOOD). Coastal Engineering Proceedings, 1(36), currents.4. https://doi.org/10.9753/icce.v36.currents.4

Rueda, Hegermiller, Antolinez, Camus, Vitousek, Ruggiero, Barnard, Erikson, Tomas, Mendez (2017): Multi-scale climate emulator of multimodal wave spectra: MUSCLE-spectra, J. Geophy. Res. Oceans, vol. 122, pp 1400-1415.

Serafin, Ruggiero (2014): Simulating extreme total water levels using a time-dependent, extreme value approach. J. Geophys. Res. Oceans, vol. 119, pp. 6305-6329.

Install


Source code is currently privately hosted on GitLab at: https://gitlab.com/geoocean/bluemath/bluemath-projects/teslakit/tree/master

A public "push" mirror can be located on GitHub at: https://github.com/teslakit/teslakit/tree/master

Installing from sources

Navigate to the base root of teslakit

Using a Python virtual environment is recommended

# install virtualenv package 
python3 -m pip install virtualenv

# create a new virtual environment for teslakit installation
python3 -m virtualenv venv

# now activate the virtual environment
source venv/bin/activate

Now install teslakit requirements

pip install -r requirements/requirements.txt

Then install teslakit

python setup.py install

Installing SWAN numerical model

teslakit/numerical_models/swan/ is a custom developed python toolbox used to wrap SWAN numerical model

SWAN numerical model has to be compiled for serial execution and stored at teslakit swan binary resources folder

First download and compile SWAN serial executable

  # you may need to install a fortran compiler
  sudo apt install gfortran

  # download and unpack
  wget http://swanmodel.sourceforge.net/download/zip/swan4131.tar.gz
  tar -zxvf swan4131.tar.gz

  # compile numerical model
  cd swan4131/
  make config
  make ser

Now manually move executable file to resources/swan_bin/ and change file name to "swan_ser.exe"

Alternatively, set swan executable file using our swan python module

  # Launch a python interpreter
  $ python

  Python 3.6.9 (default, Apr 18 2020, 01:56:04) 
  [GCC 8.4.0] on linux
  Type "help", "copyright", "credits" or "license" for more information.
  
  >>> from teslakit.numerical_models import swan
  >>> swan.set_swan_binary_file('swan.exe')

Installing optional modules

Basemap module is used in some Teslakit figures.

It is not needed to run any calculation and installing it is optional

Follow Basemap installation instructions at https://github.com/matplotlib/basemap

pip install git+https://github.com/matplotlib/basemap.git

Handling a Teslakit Project


Jupyter notebook files can be found at notebooks

launch jupyter notebook

jupyter notebook

Current development test site notebooks can be found at ROI

Also, test site needed input files can be downloaded from OneDrive

(Input data adquisition is currently not integrated in teslakit)

Once ROI data is downloaded and unpacked, a input data check can be done at: 00_Set_Database.ipynb

Contributors

Nicolás Ripoll Cabarga ([email protected])
Ana Cristina Rueda Zamora ([email protected])
Laura Cagigal Gil ([email protected])
Alba Cid Carrera ([email protected])
Alba Ricondo Cueva ([email protected])
Sara Ortega Van Vloten ([email protected])
Israel Rubio Llarena ([email protected])
Fernando Mendez Incera ([email protected])

Thanks also to

License

This project is licensed under the MIT License - see the license file for details

teslakit's People

Contributors

acruedauc avatar albacidcarrera avatar irl167 avatar lauracagigal avatar lcag075 avatar ripolln 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.