Python library for converting non-standard formats to WOUDC extended CSV format.
Project description
[![Build Status](https://travis-ci.org/woudc/woudc-formats.png?branch=master)](https://travis-ci.org/woudc/woudc-formats)
[![Build status](https://ci.appveyor.com/api/projects/status/02koln2pe4ap5kvd/branch/master?svg=true)](https://ci.appveyor.com/project/tomkralidis/woudc-formats)
[![Downloads this month on PyPI](https://img.shields.io/pypi/dm/woudc-formats.svg)](http://pypi.python.org/pypi/woudc-formats)
[![Latest release](https://img.shields.io/pypi/v/woudc-formats.svg)](http://pypi.python.org/pypi/woudc-formats)
[![License](https://img.shields.io/github/license/woudc/woudc-formats.svg)](https://github.com/woudc/woudc-formats)
# WOUDC Format Converter
woudc-formats is a Python package used to perform various transformations
from/to WOUDC supported formats.
Currently supported features include:
Readers: SHADOZ, BAS, NASA AMES files.
Writers: WOUDC totalozone [daily summary](http://woudc.org/archive/Summaries/TotalOzone/Daily_Summary/FileFormat_DV.txt) (master file).
### Installation Instructions
## Requirements
woudc-formats requires Python 2.7, [pywoudc](https://github.com/woudc/pywoudc) and [woudc-extcsv](https://github.com/woudc/woudc-extcsv)
## Dependencies
See `requirements.txt`
- [pywoudc](https://github.com/woudc/pywoudc)
- [woudc-extcsv](https://github.com/woudc/woudc-extcsv)
## Setup
```bash
git clone https://github.com/woudc/woudc-formats.git && cd woudc-formats
python setup.py install
```
## Usage
### Command Line Interface
```bash
usage: woudc-formats.py --format {SHADOZ, BAS, AMES-2160, AMES-2160-Boulder, totalozone-masterfile} --inpath PATH/FILENAME --outpath PATH/FILENAME --logfile PATH/LOGFILE --loglevel {DEBUG, CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET}
Required Arguments:
--format: indicate input file format
--inpath: import filename and path, for SHADOZ BAS and AMES
--outpath: indicate the the path to output file, including output filename
--logfile: path to log file, including file name
--loglevel: define log level for logging
Optional Arguments:
--metadata: a dictionary formatted string containing some specified station metadation information
ex: {"station": "XXX", "agency": "XXX", "inst type": "ECC", "inst number": "XXXXX", "SA": "XX" }
```
### API
```bash
usage:
import woudc_formats
ecsv = woudc_formats.load(In_Format, InPut_File_Path)
if ecsv is not None:
woudc_formats.dump(ecsv, Output_file_path)
OR
import woudc_formats
with open(input_file_path) as ff
ff.read()
ecsv = woudc_formats.loads(In_Format, s)
if ecsv is not None:
woudc_formats.dump(ecsv, Output_file_path)
Optional Method:
woudc_formats.load(In_Format, InPut_File_Path, metadata) : Take input file path and return ext-csv object, metadata is required for AMES file for most cases, see optional arguments for Command Line Interface for more detail.
woudc_formats.loads(In_Format,String_of_InPut_file, metadata) : Take string represenataion of input file and return ext-csv object. Metadata is required for AMES file for most cases, see optional arguments for Command Line Interface for more detail.
woudc_formats.dump(ecsv, Output_file_path) : Take ext-csv object and produce output file.
woudc_formats.dumps(ecsv) : Take ext-csv object and prints to screen.
```
### Example
```bash
woudc-formats.py --format SHADOZ --inpath ./bin/SAMPLE.dat --outpath ./bin/SAMPLE.csv --logfile ./bin/LOG.log --loglevel DEBUG
woudc-formats.py --format totalozone-masterfile --inpath <full local or web path to totalozone snapshot> --outpath <output path> --loglevel <log level> --logfile <log file>
woudc-formats.py --format AMES-2160 --inpath <full local path to AMES file> --outpath <output path> --loglevel <log level> --logfile <log file> --metadata '{"station": "Boulder", "agency": "ukmo", "SA": "XXX", "inst type": "ECC", "inst number": "6A3412"}'
```
[![Build status](https://ci.appveyor.com/api/projects/status/02koln2pe4ap5kvd/branch/master?svg=true)](https://ci.appveyor.com/project/tomkralidis/woudc-formats)
[![Downloads this month on PyPI](https://img.shields.io/pypi/dm/woudc-formats.svg)](http://pypi.python.org/pypi/woudc-formats)
[![Latest release](https://img.shields.io/pypi/v/woudc-formats.svg)](http://pypi.python.org/pypi/woudc-formats)
[![License](https://img.shields.io/github/license/woudc/woudc-formats.svg)](https://github.com/woudc/woudc-formats)
# WOUDC Format Converter
woudc-formats is a Python package used to perform various transformations
from/to WOUDC supported formats.
Currently supported features include:
Readers: SHADOZ, BAS, NASA AMES files.
Writers: WOUDC totalozone [daily summary](http://woudc.org/archive/Summaries/TotalOzone/Daily_Summary/FileFormat_DV.txt) (master file).
### Installation Instructions
## Requirements
woudc-formats requires Python 2.7, [pywoudc](https://github.com/woudc/pywoudc) and [woudc-extcsv](https://github.com/woudc/woudc-extcsv)
## Dependencies
See `requirements.txt`
- [pywoudc](https://github.com/woudc/pywoudc)
- [woudc-extcsv](https://github.com/woudc/woudc-extcsv)
## Setup
```bash
git clone https://github.com/woudc/woudc-formats.git && cd woudc-formats
python setup.py install
```
## Usage
### Command Line Interface
```bash
usage: woudc-formats.py --format {SHADOZ, BAS, AMES-2160, AMES-2160-Boulder, totalozone-masterfile} --inpath PATH/FILENAME --outpath PATH/FILENAME --logfile PATH/LOGFILE --loglevel {DEBUG, CRITICAL, ERROR, WARNING, INFO, DEBUG, NOTSET}
Required Arguments:
--format: indicate input file format
--inpath: import filename and path, for SHADOZ BAS and AMES
--outpath: indicate the the path to output file, including output filename
--logfile: path to log file, including file name
--loglevel: define log level for logging
Optional Arguments:
--metadata: a dictionary formatted string containing some specified station metadation information
ex: {"station": "XXX", "agency": "XXX", "inst type": "ECC", "inst number": "XXXXX", "SA": "XX" }
```
### API
```bash
usage:
import woudc_formats
ecsv = woudc_formats.load(In_Format, InPut_File_Path)
if ecsv is not None:
woudc_formats.dump(ecsv, Output_file_path)
OR
import woudc_formats
with open(input_file_path) as ff
ff.read()
ecsv = woudc_formats.loads(In_Format, s)
if ecsv is not None:
woudc_formats.dump(ecsv, Output_file_path)
Optional Method:
woudc_formats.load(In_Format, InPut_File_Path, metadata) : Take input file path and return ext-csv object, metadata is required for AMES file for most cases, see optional arguments for Command Line Interface for more detail.
woudc_formats.loads(In_Format,String_of_InPut_file, metadata) : Take string represenataion of input file and return ext-csv object. Metadata is required for AMES file for most cases, see optional arguments for Command Line Interface for more detail.
woudc_formats.dump(ecsv, Output_file_path) : Take ext-csv object and produce output file.
woudc_formats.dumps(ecsv) : Take ext-csv object and prints to screen.
```
### Example
```bash
woudc-formats.py --format SHADOZ --inpath ./bin/SAMPLE.dat --outpath ./bin/SAMPLE.csv --logfile ./bin/LOG.log --loglevel DEBUG
woudc-formats.py --format totalozone-masterfile --inpath <full local or web path to totalozone snapshot> --outpath <output path> --loglevel <log level> --logfile <log file>
woudc-formats.py --format AMES-2160 --inpath <full local path to AMES file> --outpath <output path> --loglevel <log level> --logfile <log file> --metadata '{"station": "Boulder", "agency": "ukmo", "SA": "XXX", "inst type": "ECC", "inst number": "6A3412"}'
```
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
woudc-formats-0.1.0.tar.gz
(22.6 kB
view hashes)