Skip to content

ECCC-MSC/pynumeric

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

pynumeric

Build Status Coverage Status

Overview

pynumeric is a Python package to read MSC Radar Numeric data.

Installation

The easiest way to install pynumeric is via the Python pip utility:

pip install pynumeric

Requirements

Dependencies

Dependencies are listed in requirements.txt. Dependencies are automatically installed during pynumeric installation.

Installing pynumeric

# setup virtualenv
virtualenv --system-site-packages -p python3 pynumeric
cd pynumeric
source bin/activate

# clone codebase and install
git clone https://github.com/ECCC-MSC/pynumeric.git
cd pynumeric
python setup.py build
python setup.py install

Running

# help
pynumeric --help

# get pynumeric version
pynumeric --version

# get pynumeric GDAL version
pynumeric --gdal-version

# report on a single numeric file
pynumeric report -f </path/to/numeric_file>

# add verbose mode (ERROR, WARNING, INFO, DEBUG)
pynumeric report -f </path/to/numeric_file> --verbosity=DEBUG

# export a numeric file to GeoTIFF
pynumeric export -f </path/to/numeric_file> -o foo.tif -of GTiff

# export a numeric file to NetCDF
pynumeric export -f </path/to/numeric_file> -o foo.tif -of NetCDF

Using the API

from pynumeric import Numeric

# read Numeric data
with open('/path/to/file') as ff:
    n = Numeric(ff)

    for key, value in n.metadata:
        print(key, value)

    print(n.metadata)

    print(n.data)

    print(len(n.data))

    # get the spatial extent
    print(n.get_spatial_extent())

    # get the data extent
    print(n.get_data_extent())


# read Numeric data using convenience functions
# parse file
s = load('/path/to/numeric_file.dat')  # returns Numeric object

# parse data string
with open('/path/to/numeric_file.dat') as ff:
    numeric_string = ff.read()
s = loads(numeric_string)  # returns Numeric object

# export to GeoTIFF
# Supported are any of the supported GDAL
# Raster Format Codes (http://www.gdal.org/formats_list.html)
s.to_grid('myfile.tif', 'GTiff')  # creates myfile.tif on disk

Development

pip install requirements-dev.txt

Running Tests

# install dev requirements
pip install -r requirements-dev.txt

# run tests like this:
python pynumeric/tests/run_tests.py

# or this:
python setup.py test

# measure code coverage like this
coverage run --source=pynumeric -m unittest pynumeric.tests.run_tests
coverage report -m

# or this:
python setup.py coverage

Releasing

python setup.py sdist bdist_wheel --universal
twine upload dist/*

Code Conventions

Checking Code for PEP8

find . -type f -name "*.py" | xargs flake8

Bugs and Issues

All bugs, enhancements and issues are managed on GitHub.

Contact