Skip to main content

A package for developing knowledge informed inverse or forward mapping using ensemble learning

Project description

Knowledge-Informed Mapping (KIM) Toolkit

Table of Contents

Overview

KIM is a Knowledge-Informed Mapping toolkit in Python to optimize the development of the mapping $ƒ$ from a vector of inputs $\mathbf{X}$ to a vector of outputs $\mathbf{Y}$. KIM mainly builds on the methodology development of deep learning-based inverse mapping in Jiang et al. 2023 and Wang et al. 2025. It involves two key procedures: (1) an exploratory data analysis using information theory to identify the dependency between $\mathbf{X}$ and $\mathbf{Y}$ and filter out both insignificant and redundant inputs through global sensitivity analysis and conditional independence testing; and (2) ensemble learning of $ƒ$ using neural networks to account for its structural uncertainty. KIM is mostly rewritten in JAX and also supports basic parallel computing on CPU cores for statistical significance test and ensemble learning by using Joblib.

Installation

  1. Install Miniconda if you don't have it already.

  2. Open a terminal and create a new virtual environment named kim with Python 3.11:

    conda create --name kim python=3.11
    
  3. Activate the newly created virtual environment:

    conda activate kim
    
  4. Install the package using pip within the activated virtual environment:

    pip install kim-jax
    
  5. (Optional) Download the git repo to get the example jupyter notebooks:

    git clone https://github.com/PeishiJiang/KIM.git
    

Documentation

The official documentation is hosted on the package website. Please refer to Math behind KIM for a complete description of the theory behind the package.

Examples

We provide one tutorial case and two real cases of applying KIM to performing inverse modeling by using Jupyter notebook to illustrate the package usage.

Case 0: Emulating a multivariate nonlinear system. We develop forward mappings to emulate three predictand driven by four predictors via a nonlinear system.

Case 1: Calibrating a cloud chamber model. We develop inverse mappings to estimate two key parameters, i.e., wall fluxes ($\lambda_w$) and collision processes ($\lambda_c$) of a cloud chamber model from synthetic observations.

Case 2: Calibrating an integrated hydrological model. We develop inverse mappings to estimate eight parameters of the Advanced Terrestrial Simulator (ATS) from the streamflow observations at the outlet of Coal Creek watershed, CO, USA.

License

Distributed under the Simplified BSD License. See LICENSE for more information.

Acknowledgements

This work was funded by the Laboratory Directed Research and Development Program at Pacific Northwest National Laboratory and the IDEAS-Watersheds project.

How to Cite

The repository is under review. We will provide a complete citation upon the acceptance of the repo/paper.

Contacts

Peishi Jiang (shixijps@gmail.com)


Go to Top

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kim_jax-1.3.0.tar.gz (31.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kim_jax-1.3.0-py3-none-any.whl (34.9 kB view details)

Uploaded Python 3

File details

Details for the file kim_jax-1.3.0.tar.gz.

File metadata

  • Download URL: kim_jax-1.3.0.tar.gz
  • Upload date:
  • Size: 31.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.14.2 HTTPX/0.28.1

File hashes

Hashes for kim_jax-1.3.0.tar.gz
Algorithm Hash digest
SHA256 95d1d610e86479e2c5d49bc303a7467305b1cde964bad2d4395b70c405be74a5
MD5 4e62f44792cfe3e91be2727e46109171
BLAKE2b-256 0695bc2618e17985546c9c2f0c83f29ac0288ee7c69fb84053b4f5f4952a289d

See more details on using hashes here.

File details

Details for the file kim_jax-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: kim_jax-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 34.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.3 cpython/3.14.2 HTTPX/0.28.1

File hashes

Hashes for kim_jax-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3f22783508a5c516c94bbedc09da4567f4245b00c555fe651de60e788b2f7a50
MD5 2aa3d27fb1996a39fafc2b52e132da5d
BLAKE2b-256 5990ceecd4b0574a3ffe54063726bbf8ed44f62ac67bbfa6577a2cdce8ed1aa9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page