# Introduction ## What is URANIE? URANIE is a framework for: - **Sampling**: Uranie offers a number of solutions for generating experimental designs, depending on the issues (analysis goals) envisaged, the methodology chosen to achieve them, the size of the input space, the authorised calculation budget, etc. - **Sensitivity analysis**: Uranie offers various techniques for prioritising the inputs to a problem, either qualitatively or quantitatively, depending on the methods used and the calculation budget envisaged, and according to their impact on a defined quantity of interest. - **Calibration**: Uranie also offers several solutions for calibrating the "magic numbers" of physical models, using a defined data set with or without uncertainty, assuming that the model is verified upstream. - **Optimization**: Uranie offers several ways of looking at numerical optimisation, whether single or multi-criteria, with or without constraints, using codes alone or coupling with substitution models in a hybrid approach. - **Metamodeling**: If the code is very resource-intensive, Uranie offers several substitution techniques to generate a model that can replace the code as efficiently as possible to speed up the analyses envisaged. - **Reliability**: Uranie offers a number of algorithms for estimating rare events, often considered as probabilities of failure (hence the name reliability). For more information, see the [URANIE project page](https://uranie.cea.fr/). ## What does uratools provide? uratools simplifies two common workflows: **1. Data Conversion: NumPy to URANIE DataServer and vice versa** > > The `converter` module provides functions to: > > - Convert NumPy arrays into URANIE `DataServer.TDataServer` objects > - Extract URANIE DataServer data back into NumPy arrays for analysis > > This enables you to: > > - Use your favorite Python tools (pandas, scikit-learn, matplotlib) to prepare and visualize data > - Seamlessly pass data to URANIE workflows > - Extract results for further processing > > See [DataServer Conversion](../Dataserver_conversion/index.md) for detailed examples. **2. Model Wrappers: ML Models to URANIE Relauncher** > > The model wrapper modules (`pytorch_wrapper`, `sklearn_wrapper`, `tensorflow_wrapper`) convert trained machine learning models into callables compatible with URANIE's Relauncher module. > > This allows you to: > > - Train models using standard ML libraries > - Use them as surrogate or component models within URANIE workflows > - Perform sensitivity analysis, uncertainty quantification, calibration, optimization on model outputs > > See [Model Wrappers](../Model_wrapper/index.md) for integration approaches. ## When to use uratools? - You have data or models in NumPy/scikit-learn/PyTorch/TensorFlow and want to use URANIE for UQ - You need to prepare data for URANIE sampling or sensitivity analysis - You've trained an ML model and want to integrate it into a URANIE workflow