Skip to main content

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"}'
```

Project details


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)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page