ARM Data Integrator (ADI) Documentation¶
The ARM Data Integrator (ADI) is a suite of tools, C libraries, structures, and interfaces developed to simplify the development of algorithms to analyze time-series data and decrease the costs associated with such development. The architecture and functionality of ADI is designed to consolidate diverse time-series datasets into one or more new data products without the need to write any code.
Using ADI to develop an algorithm:
Enforces ARM standards, thereby enabling easy search and discovery of products and on-the-fly data integration
Documents dependencies, metrics, status, and logs
Automates reprocessing
Captures provenance
Significantly decreases the amount of resources needed to implement an algorithm
Produces more robust processes through the use of heavily used and well tested libraries and functions.
The core components of ADI include a graphical interface, a database that stores information, and a framework to automate tasks such as reading input, consolidating datasets, and writing output. An algorithm can be integrated with the ADI framework by following these steps:
- Design the desired output data product
datastream name(s), dimensions, variables, global attributes
- Enter process information
defining the location, processing interval, output data products
- Enter variable retriever information into ADI interface
variables to retrieve and data source from which to retrieve them
map retrieved variables to output data products as appropriate
retrieve companion QC as appropriate
- Setup coordinate transformation in interface
type of transformation to apply
parameters to apply to transformation
Run data consolidation application and review output
Implement and run user designed algorithm.
The following languages are supported through the ADI interface:
C (gcc 4.4.7+)
Python 2.7+
IDL, version 8.2+.
ADI is available to use on OS-X and can be downloaded at https://github.com/ARM-DOE/adi-macosx
For questions about ADI, please contact us at adisupport@arm.gov
***Draft Document***
This document is under construction. Some sections are incomplete, and some contain information that is in the process of being revised.
Table of Contents¶
- Overview
- PCM Data Object Design (DOD) Interface
- Process Control Manager (PCM) Interface
- PCM Description
- Process Definition
- Specifying Variables to Retrieve and Conversions and Transforms to Apply
- Retrieval Definition Table Overview
- Data Sources Definition Form Overview
- Output Field Mapping Form Overview
- Coordinate System Definition Form Overview
- Populating the Retrieval Definition Table
- Transforming or Regridding Retrieved Variables onto a New Coordinate System
- Saving the Retrieval Definition to DSDB
- Running Processes Defined in the PCM
- FAQ
- Setting up Data and Creating New Projects
- ADI Framework
- Algorithm Development
- Library Reference
- Cookbook
- Datasets
- Variables
- Get Pointer to an Output Variable Structure
- Get Pointer to an Output QC Variable Structure
- Creating a New Variable
- Getting an Attribute Value from the DOD
- Get Pointer to Variable Data
- Allocating Memory and Assigning Values to Variable Data
- Getting a Variable’s Name as Presented in DOD
- Setting a Static Variable in IDL
- Time
- Debugging
- Transformation Recipies
- How to Define Multiple DODs to a Single Datastream
- Error Handling
- Adjusting the Process Interval of Output Datastreams
- Setting Split Mode of Output Files
- Python CookBook
- Glossary
- ARM (Atmospheric Radiation Measurement)
- Bin Average
- Base_platform
- BOD
- CDI
- CDS (Common Data Structure)
- Dataset
- Datastream
- DOD
- DSDB
- DSPL
- IDL
- Interpolate
- netCDF
- PCM (Process Control Manager)
- QC
- Serial 1D Transformation
- Subsample
- Transformation
- Transform Driver Function
- Transform Interface Functions
- Transform Method Functions
- Transform Metrics
- Transform Parameters
- VAP