Engineering PapersSearch

SEARCH · Engineering Papers

Results for “Python”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

At least 37 records · Page 2

PCLAM: a Python Module for Computing Surface Lineloads and Moments

Lineloads serve a unique and important role in aerodynamic database development as well as configuration design and analysis. A new software suite was constructed which can compute lineloads rapidly enough that the calculations can run in tandem with high-fidelity fluid flow solvers. This enables the calculation of iteration- or time-dependent lineloads, which have thus far been too computationally costly to create for complicated systems like launch vehicles. The suite is organized into a standalone Python module named PCLAM (PCLAM Computes Lineloads And Moments) which can be imported into other software with minimal restructuring by the user or developer. The computed lineloads are integrated with a $C^0$ numerical quality and exhibit the expected sensitivity to underlying grid resolution. Even at low grid and lineload resolutions, the computed lineloads were found to be in strong agreement with several analytical test cases.

sectional loads

MLtool Python Code

Machine Learning (ML) is a subfield of Artificial Intelligence that gives computers the ability to learn from past data without being explicitly programmed. The predictive capabilities of ML models have already been used to facilitate several scientific breakthroughs. However, the practical application of ML is often limited due to the gaps in technical knowledge of its users. The common issue faced by many scientific researchers is the inability to choose the appropriate ML pipelines that are needed to treat real-world data, which is often sparse and noisy. To solve this problem, we have developed an automated Machine Learning tool (MLtool) that includes a set of ML algorithms and approaches to aid scientific researchers. The current version of MLtool is implemented as an object-oriented Python code that is easily extensible. It includes 44 different regression algorithms used to model data. MLtool helps users select the best model for their data, based on the scoring metrics used. Besides regression algorithms, MLtool also includes a suite of pre- and post-processing techniques such as missing value imputation, categorical variable encoding, input feature normalization, uncertainty quantification, exploratory data analysis (EDA), etc. MLtool was tested on several publicly available multi-dimensional data sets and was found capable of making accurate predictions.

Machine Learning

Combustion-chamber Performance Characteristics of a Python Turbine-propeller Engine Investigated in Altitude Wind Tunnel

Combustion-chamber performance characteristics of a Python turbine-propeller engine were determined from investigation of a complete engine over a range of engine speeds and shaft horsepowers at simulated altitudes. Results indicated the effect of engine operating conditions and altitude on combustion efficiency and combustion-chamber total pressure losses. Performance of this vaporizing type combustion chamber was also compared with several atomizing type combustion chambers. Over the range of test conditions investigated, combustion efficiency varied from approximately 0.95 to 0.99.

COMBUSTION - EFFECT OF ENGINE OPERATING CONDITIONS

Updates on SuZIE and Python

SuZIE and Python are two mature cosmic microwave background (CMB) anisotropy experiments. In this presentation we preview recent oberservations from both experiments.

Cosmology Cosmic Microwave Background: Observation

pyam: Python Implementation of YaM

pyam is a software development framework with tools for facilitating the rapid development of software in a concurrent software development environment. pyam provides solutions for development challenges associated with software reuse, managing multiple software configurations, developing software product lines, and multiple platform development and build management. pyam uses release-early, release-often development cycles to allow developers to integrate their changes incrementally into the system on a continual basis. It facilitates the creation and merging of branches to support the isolated development of immature software to avoid impacting the stability of the development effort. It uses modules and packages to organize and share software across multiple software products, and uses the concepts of link and work modules to reduce sandbox setup times even when the code-base is large. One sidebenefit is the enforcement of a strong module-level encapsulation of a module s functionality and interface. This increases design transparency, system stability, and software reuse. pyam is written in Python and is organized as a set of utilities on top of the open source SVN software version control package. All development software is organized into a collection of modules. pyam packages are defined as sub-collections of the available modules. Developers can set up private sandboxes for module/package development. All module/package development takes place on private SVN branches. High-level pyam commands support the setup, update, and release of modules and packages. Released and pre-built versions of modules are available to developers. Developers can tailor the source/link module mix for their sandboxes so that new sandboxes (even large ones) can be built up easily and quickly by pointing to pre-existing module releases. All inter-module interfaces are publicly exported via links. A minimal, but uniform, convention is used for building modules.

Myint, Steven

Polarbrdf: A General Purpose Python Package for Visualization Quantitative Analysis of Multi-Angular Remote Sensing Measurements

The Bidirectional Reflectance Distribution Function (BRDF) is a fundamental concept for characterizing the reflectance property of a surface, and helps in the analysis of remote sensing data from satellite, airborne and surface platforms. Multi-angular remote sensing measurements are required for the development and evaluation of BRDF models for improved characterization of surface properties. However, multi-angular data and the associated BRDF models are typically multidimensional involving multi-angular and multi-wavelength information. Effective visualization of such complex multidimensional measurements for different wavelength combinations is presently somewhat lacking in the literature, and could serve as a potentially useful research and teaching tool in aiding both interpretation and analysis of BRDF measurements. This article describes a newly developed software package in Python (PolarBRDF) to help visualize and analyze multi-angular data in polar and False Color Composite (FCC) forms. PolarBRDF also includes functionalities for computing important multi-angular reflectance/albedo parameters including spectral albedo, principal plane reflectance and spectral reflectance slope. Application of PolarBRDF is demonstrated using various case studies obtained from airborne multi-angular remote sensing measurements using NASA's Cloud Absorption Radiometer (CAR). Our visualization program also provides functionalities for untangling complex surface/atmosphere features embedded in pixel-based remote sensing measurements, such as the FCC imagery generation of BRDF measurements of grasslands in the presence of wild fire smoke and clouds. Furthermore, PolarBRDF also provides quantitative information of the angular distribution of scattered surface/atmosphere radiation, in the form of relevant BRDF variables such as sunglint, hotspot and scattering statistics.

CAR

The Profile Envision and Splicing Tool (PRESTO): Developing an Atmospheric Wind Analysis Tool for Space Launch Vehicles Using Python

Launch vehicle programs require vertically complete atmospheric profiles. Many systems at the ER to make the necessary measurements, but all have different EVR, vertical coverage, and temporal coverage. MSFC Natural Environments Branch developed a tool to create a vertically complete profile from multiple inputs using Python. Forward work: Finish Formal Testing Acceptance Testing, End-to-End Testing. Formal Release

Orcutt, John M.

GMI-IPS: Python Processing Software for Aircraft Campaigns

NASA's Atmospheric Tomography Mission (ATom) seeks to understand the impact of anthropogenic air pollution on gases in the Earth's atmosphere. Four flight campaigns are being deployed on a seasonal basis to establish a continuous global-scale data set intended to improve the representation of chemically reactive gases in global atmospheric chemistry models. The Global Modeling Initiative (GMI), is creating chemical transport simulations on a global scale for each of the ATom flight campaigns. To meet the computational demands required to translate the GMI simulation data to grids associated with the flights from the ATom campaigns, the GMI ICARTT Processing Software (GMI-IPS) has been developed and is providing key functionality for data processing and analysis in this ongoing effort. The GMI-IPS is written in Python and provides computational kernels for data interpolation and visualization tasks on GMI simulation data. A key feature of the GMI-IPS, is its ability to read ICARTT files, a text-based file format for airborne instrument data, and extract the required flight information that defines regional and temporal grid parameters associated with an ATom flight. Perhaps most importantly, the GMI-IPS creates ICARTT files containing GMI simulated data, which are used in collaboration with ATom instrument teams and other modeling groups. The initial main task of the GMI-IPS is to interpolate GMI model data to the finer temporal resolution (1-10 seconds) of a given flight. The model data includes basic fields such as temperature and pressure, but the main focus of this effort is to provide species concentrations of chemical gases for ATom flights. The software, which uses parallel computation techniques for data intensive tasks, linearly interpolates each of the model fields to the time resolution of the flight. The temporally interpolated data is then saved to disk, and is used to create additional derived quantities. In order to translate the GMI model data to the spatial grid of the flight path as defined by the pressure, latitude, and longitude points at each flight time record, a weighted average is then calculated from the nearest neighbors in two dimensions (latitude, longitude). Using SciPya's Regular Grid Interpolator, interpolation functions are generated for the GMI model grid and the calculated weighted averages. The flight path points are then extracted from the ATom ICARTT instrument file, and are sent to the multi-dimensional interpolating functions to generate GMI field quantities along the spatial path of the flight. The interpolated field quantities are then written to a ICARTT data file, which is stored for further manipulation. The GMI-IPS is aware of a generic ATom ICARTT header format, containing basic information for all flight campaigns. The GMI-IPS includes logic to edit metadata for the derived field quantities, as well as modify the generic header data such as processing dates and associated instrument files. The ICARTT interpolated data is then appended to the modified header data, and the ICARTT processing is complete for the given flight and ready for collaboration. The output ICARTT data adheres to the ICARTT file format standards V1.1. The visualization component of the GMI-IPS uses Matplotlib extensively and has several functions ranging in complexity. First, it creates a model background curtain for the flight (time versus model eta levels) with the interpolated flight data superimposed on the curtain. Secondly, it creates a time-series plot of the interpolated flight data. Lastly, the visualization component creates averaged 2D model slices (longitude versus latitude) with overlaid flight track circles at key pressure levels. The GMI-IPS consists of a handful of classes and supporting functionality that have been generalized to be compatible with any ICARTT file that adheres to the base class definition. The base class represents a generic ICARTT entry, only defining a single time entry and 3D spatial positioning parameters. Other classes inherit from this base class; several classes for input ICARTT instrument files, which contain the necessary flight positioning information as a basis for data processing, as well as other classes for output ICARTT files, which contain the interpolated model data. Utility classes provide functionality for routine procedures such as: comparing field names among ICARTT files, reading ICARTT entries from a data file and storing them in data structures, and returning a reduced spatial grid based on a collection of ICARTT entries. Although the GMI-IPS is compatible with GMI model data, it can be adapted with reasonable effort for any simulation that creates Hierarchical Data Format (HDF) files. The same can be said of its adaptability to ICARTT files outside of the context of the ATom mission. The GMI-IPS contains just under 30,000 lines of code, eight classes, and a dozen drivers and utility programs. It is maintained with GIT source code management and has been used to deliver processed GMI model data for the ATom campaigns that have taken place to date.

Damon, M. R.

The Weather Analysis Display (WAND) Tool: Developing a Meteorological Data Display Tool for Situational Awareness During Day-Of-Launch of Space Launch Vehicles Using Python

Atmospheric conditions are an important driver in the design and operation of space launch vehicles. The Profile Envision and Splicing Tool (PRESTO) was developed by NASA’s Marshall Space Flight Center (MSFC) Natural Environments Branch (NE) to generate vertically complete atmospheric profiles from various data sources at NASA’s Kennedy Space Center (KSC), co-located on the United States Air Force (USAF) Eastern Range (ER), for NASA’s Space Launch System (SLS) day-of-launch (DOL) loads and trajectory analysis. PRESTO was designed solely to generate a vertically complete atmospheric profile (Orcutt et al., 2017). However, NE has also been tasked to provide a quality assessment of meteorological data examined on DOL, which goes beyond PRESTO’s utility. Thus, NE developed the Weather Analysis Display (WAND) to visualize data from all available observation systems in conjunction with climatological databases. WAND can display data from various sources in multiple ways, including Skew-T Log-P plots, time-height cross sections, and time series. WAND was developed in Python 3 taking advantage of common packages, such as NumPy for data handling, SciPy for mathematical functions, Matplotlib for data visualization, and Tkinter for the execution of the Graphical User Interface (GUI).

Orcutt, John M.

PyDDA: A New Pythonic Wind Retrieval Package

PyDDA (Pythonic Direct Data Assimilation) is a new community framework aimed at wind retrievals that depends only upon utilities in the SciPy ecosystem such as scipy, numpy, and dask. It can support retrievals of winds using information from weather radar networks constrained by high resolution forecast models over grids that cover thousands of kilometers at kilometer-scale resolution. Unlike past wind retrieval packages, this package can be installed using anaconda for easy installation and, with a focus on ease of use can retrieve winds from gridded radar and model data with just a few lines of code. The package is currently available for download at https://github.com/openradar/PyDDA.

Radar

Multi Model Monte Carlo with Python (MXMCPy)

Multi Model Monte Carlo with Python (\mxmc {}) is a software package developed as a general capability for computing the statistics of outputs from an expensive, high-fidelity model by leveraging faster, low-fidelity models for speedup. Motivated by uncertainty propagation problems where classical Monte Carlo (MC) simulation is computationally intractable, various multi-model MC approaches have recently emerged that yield unbiased estimators with significantly reduced variance relative to MC for the same cost. These existing methods include multi-level Monte Carlo (MLMC), multi-fidelity Monte Carlo (MFMC), and approximate control variates (ACV). Given a fixed computational budget and a collection of models with varying cost/accuracy, each method seeks a sample allocation strategy across the models that results in an estimator with optimal variance reduction. \mxmc {} is a versatile tool that enables convenient access to many existing multi-model MC approaches within one modular and extensible package. With \mxmc {}, users can easily compare existing methods to determine the best choice for their particular problem, while developers have a basis for implementing and sharing new variance reduction approaches. This report introduces the \mxmc {} software, providing a summary of the problem-solving workflow for users as well as a brief overview of the code layout for developers.

Geoffrey F Bomarito

Trajectory Simulation Using Multi Model Monte Carlo with Python (MXMCPy)

EDL (Entry, Descent and Landing) is the process from a vehicle approaching a surface to landing on it, such as a Mars rover approaching the planet before landing. POST2 (Program to Optimize Simulated Trajectories 2) is Langley’s primary EDL simulation tool and is used NASA-wide for simulations. POST2 can generate highly accurate results by running a precise, but time consuming, Monte Carlo (MC) simulation hundreds or thousands of times. Though POST2 can produce highly accurate results, it can take unrealistic time spans to generate these results, which has created a need to speed up the simulations. The new NASA software MXMCPy offers various ways to speed up the simulations while getting just as precise results. Instead of running high-precision POST2 simulations many times for traditional MC, MXMCPy can run fewer high-precision POST2 simulations and many less precise POST2 simulations and merge the results. MXMCPy contains 30+ different methods which will each suggest different allocations between model precision levels, which result in results of varying precision based on the POST2 simulation. I created Python and Bash code to automate the 5 steps of MXMCPy’s application to POST2. I also tested the precision of traditional Monte Carlo simulations to MXMCPy aided simulations and found that MXMCPy can achieve substantially more precise solutions at the same computer runtime. I learned Test Driven Development (TDD), a software programming workflow which involves writing computer-automated tests before writing the code which is being tested. These tests are ran every time the code is changed and they can find glitches in the code much quicker than a human can. This programming workflow saved me a lot of time because the automated tests could tell me exactly where the code had stopped working. I plan on using this software development method for future academic and professional software projects. I have greatly enjoyed my work at NASA, so I have been applying to NASA internships and Pathways positions. In addition, I plan on applying what I have learned about Test Driven Development to my computer science courses next semester

James Warner

Leveraging STARE for Co-aligned Data Locality with netCDF and Python MPI

We have leveraged STARE indexing to package partitioned data chunks from diverse datasets into netCDF files, distributed them on a cluster of 16 lightweight nodes with their placements spatiotemporally co-aligned, and demonstrated a few integrative analyses using netCDF parallel I/O and Python MPI, with single-user performance and scalability comparable to, or even better than, that of a parallel array database management system (ADBMS) such as SciDB. However, records of the node location and STARE index ranges for each data chunk, similar to the chunk maps of SciDB, must be maintained and consulted by the I/O and analysis code for coordinating the analytic operations in parallel, in order to achieve the good performance and scalability.

Kwo-Sen Kuo

WET Water Resources: A Google Earth Engine Python API Tool to Automate Wetland Extent Mapping Using Radar Satellite Sensors for Wetland Management and Monitoring

Wetland ecosystems are annually or seasonally wet transition zones between land and water. They provide a range of ecosystem services such as water filtration, flood mitigation, and carbon sequestration, as well as hosting biodiversity hotspots. Although they fulfill fundamental physical and natural processes, wetland extent and health are threatened by anthropogenic influences related to urbanization, population increase, pollution, and climate change. Recognizing the need to quantitatively monitor changes in these recently threatened ecosystems in a timely and cost-effective way, we developed a Google Earth Engine (GEE) Python API tool for automated wetland extent mapping using optical and radar satellite sensors that can be applied globally. The tool will significantly improve wetland change analysis and monitoring as the optical and SAR data proves high resolution (5-10 m) imagery, and SAR data is unaffected by cloud cover and light availability (day vs. night), which are common limitations for other remotely sensed sensors. The tool utilizes Copernicus Sentinel-1 C-band and NISAR L-band synthetic aperture radar (SAR) imagery. During image preprocessing, we applied a MODIS snow mask product to mask global snow coverage, which would affect land classification sensitivity. Calibration and validation were conducted through a historical change and sensitivity analysis of the Sudd watershed located in central Sudan. The tool was the first of its kind, as it enables NISAR data processing through an open-source GEE repository, further expanding and improving the utility of NASA Earth observations and contributing to NASA Open Science initiatives. We anticipate the tool will be used by researchers and practitioners interested in wetland monitoring and management..

Lori Berberian

WET Water Resources: A Google Earth Engine Python API Tool to Automate Wetland Extent Mapping Using Radar Satellite Sensors for Wetland Management and Monitoring

Wetland ecosystems are annually or seasonally wet transition zones between land and water. They provide a range of ecosystem services such as water filtration, flood mitigation, and carbon sequestration, as well as hosting biodiversity hotspots. Although they fulfill fundamental physical and natural processes, wetland extent and health are threatened by anthropogenic influences related to urbanization, population increase, pollution, and climate change. Recognizing the need to quantitatively monitor changes in these recently threatened ecosystems in a timely and cost-effective way, we developed a Google Earth Engine (GEE) Python API tool for automated wetland extent mapping using optical and radar satellite sensors that can be applied globally. The tool will significantly improve wetland change analysis and monitoring as SAR data provides high resolution (5-10 m) imagery, unaffected by cloud cover and light availability (day vs. night), common limitations for other remotely sensed sensors. The tool utilizes Copernicus Sentinel-1 C-band and NISAR L-band (once operational and available on the GEE repository) synthetic aperture radar (SAR) imagery. During image preprocessing, we applied a Terra Moderate Resolution Imaging Spectroradiometer (MODIS) snow product to determine regional snow coverage, which affects land classification sensitivity. Calibration and validation were conducted through a historical change and sensitivity analysis of the Sudd wetland located in central Sudan. The tool was the first of its kind, as it enables NISAR data processing through an open-source GEE repository, further expanding and improving the utility of NASA Earth observations and contributing to NASA Open Science initiatives. We anticipate the tool will be used by researchers and practitioners interested in wetland monitoring and management.

Inundation