Metadata-Version: 2.1
Name: mpilot
Version: 1.0.0b17
Summary: MPilot is a plugin-based, environmental modeling framework
Home-page: https://consbio.github.io/mpilot/
License: MIT
Author: Conservation Biology Institute
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Provides-Extra: netcdf
Requires-Dist: click (<8.0)
Requires-Dist: netCDF4 (<1.5.6); extra == "netcdf"
Requires-Dist: numpy (<=1.16.6); python_version >= "2.7" and python_version < "2.8"
Requires-Dist: numpy (>=1.19.4,<2.0.0); python_version >= "3.6"
Requires-Dist: packaging
Requires-Dist: ply (>=3.11,<4.0)
Requires-Dist: six
Project-URL: Repository, https://github.com/consbio/mpilot
Description-Content-Type: text/markdown

# MPilot (beta)
MPilot is a plugin-based, environmental modeling framework based on a bottom-up, many-to-many workflow that can be 
represented by a directed (not iterating) graph. MPilot is descended from the Environmental Evaluation Modeling System 
(EEMS), which was initially a fuzzy logic modeling package based on EMDS.

[MPilot Documentation](https://consbio.github.io/mpilot/)

# Installing

MPilot with EEMS can be installed with `pip`:

```bash
$ pip install mpilot
```

In order to run MPilot with NetCDF datasets, you'll need to install the NetCDF variant:

```bash
$ pip install mpilot[netcdf]
```

# Creating models
MPilot models are contained in "command files", using a simple scripting language. Here is an example model, which 
loads two columns of integer data from a CSV file, sums them, and writes the result to a second CSV file.

```text
A = EEMSRead(
    InFileName = "input.csv",
    InFieldName = "A",
    DataType = "Integer"
)
B = EEMSRead(
    InFileName = "input.csv",
    InFieldName = "B",
    DataType = "Integer"
)
APlusB = Sum(
    InFieldNames = [A, B]
)
Out = EEMSWrite(
    OutFileName = "output.csv",
    OutFieldNames = [A, B, APlusB]
)
```

# Running models

Models are run using the included `mpilot` program. The following commands will run a model using the EEMS CSV library 
and using the EEMS NetCDF library respectively:

```bash
$ mpilot eems-csv model.mpt
$ mpilot eems-netcdf model.mpt
```

