Skip to content

USNavalResearchLaboratory/nepc

Repository files navigation

NEPC

workflow status Documentation Status GitHub DOI

The goals of the nepc project are to provide tools to:

  1. parse, evaluate, and populate metadata for electron scattering cross sections;
  2. build a NEPC MySQL database of cross sections;
  3. curate, access, visualize, and use cross section data from a NEPC database; and
  4. support verification and validation of electron scattering cross section data.

The database schema and Python module are designed for anyone interested in plasma chemistry with a background in physics at the graduate level.

Documentation for the nepc project: https://nepc.readthedocs.io.

Organization

The project is organized in the following directories:

  • tests - unit and integration testing
  • tests/data - data directory for the nepc_test database--an example NEPC database containing fictitious electron scattering cross section data used in unit and integration testing
  • tests/data/eda - example exploratory data analysis (EDA) of a NEPC database that is possible with the nepc Python module
  • tests/data/curate - code used to curate fictitious cross section data in LXCat format and create various NEPC Models for the nepc_test database
  • docs - files used by Sphinx to generate the NEPC documentation
  • nepc - the Python code for the nepc package and building a NEPC database
  • nepc/mysql - the Python code for creating a NEPC database from data in NEPC_CS_HOME environment variable; also creates the nepc_test database from data in NEPC_HOME/tests/data (must have the NEPC_HOME environment variable set)

Getting Started

To install nepc with pip, run:

$ pip install nepc

Establish a connection to the database named nepc running on a production server (you must set an environment variable NEPC_PRODUCTION that points to the production server):

>>> cnx, cursor = nepc.connect()

If you've built the nepc_test database on your local machine (see instructions here), establish a connection to it:

>>> cnx, cursor = nepc.connect(local=True, test=True)

Access the pre-defined plasma chemistry model, fict_min2, in the nepc_test database:

>>> fict_min2 = nepc.Model(cursor, "fict_min2")

Print a summary of the fict_min2 model, including a stylized Pandas dataframe:

>>> fict_min2.summary()

Plot the cross sections in fict_min2.

>>> fict_min2.plot(ylog=True, xlog=True, width=8, height=4) 

Additional examples of EDA using nepc are in tests/data/eda. Examples of scripts for curating raw data for the nepc_test database, including parsing LXCat formatted data, are in tests/data/curate.

Built With

Pronunciation

NEPC rhymes with the loser of the Cola War. If NEPC were in the CMU Pronouncing Dictionary, its entry would be N EH P S IY ..

Approved for public release, distribution is unlimited.