Skip to content

oceanzus/coverage-model

 
 

Repository files navigation

OOICI Coverage Model

Initial coverage model implementation

Reference Information: https://confluence.oceanobservatories.org/display/CIDev/R2+Construction+Data+Model+Implementation

#Prerequisites

This assumes basic development environment setup (git, directory structure). Please follow the "New Developers Tutorial" for basic steps.

Install the following if not yet present:

Install git 1.7.7: Download the Mac or Linux installer and run it

OS Packages and package management: For Mac, use homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
  • python 2.7
  • hdf5
  • netcdf

Install python, hdf5 and netcdf with Homebrew

brew install python hdf5 netcdf

You'll also need the various dependencies of the pyon project:

brew install libevent libyaml zeromq couchdb rabbitmq pkg-config

You can even reinstall git using brew to clean up your /usr/local directory Be sure to read the pyon README for platform specific guidance to installing dependent libraries and packages. Linux: Note that many installs have much older versions installed by default. You will need to upgrade couchdb to at least 1.1.0.

Python packages and environment management:

Install pip

easy_install pip

Install virtualenv and virtualenvwrapper modules for your python 2.7 installation Note: This may require Mac's XCode (use XCode 3.3 free version

easy_install --upgrade virtualenv
easy_install --upgrade virtualenvwrapper

Setup a virtualenv to run coverage-model (use any name you like):

mkvirtualenv --python=python2.7 coverage_model

Optional: To run any of the example functions that result in graphical output, you must also install matplotlib

pip install matplotlib

#Source The coverage model requires that the pyon project be available locally in the same directory as coverage-model. If you don't already have the project:

git clone git@github.com:ooici/pyon.git

Obtain the coverage-model project by running:

git clone git@github.com:ooici/coverage-model.git
cd coverage-model

#Installation Ensure you are in a virtualenv prior to running the steps below

From the coverage-model directory, run the following commands:

git submodule init
git submodule update
python bootstrap.py
bin/buildout
bin/generate_interfaces

Once those steps complete, you should be able to import the coverage model from the python shell:

bin/pycc # or bin/ipython
from coverage_model.coverage import SimplexCoverage

#Running the example functions

The coverage_model/test/examples.py module contains 2 functions that can be used to generate 'exemplar' coverages from sample netcdf files (in the test_data directory).

Start an ipython shell session from the root coverage-model directory:

cd your/code/path/coverage-model
ipython

From the ipython prompt, run:

from coverage_model.test.examples import *
stn_cov, _ = ncstation2cov() # Generates a coverage from the test_data/usgs.nc file
print stn_cov

grid_cov, _ = ncgrid2cov() # Generates a coverage from the test_data/ncom.nc file
print grid_cov

Coverages can be saved and loaded using the respective classmethods of SimplexCoverage:

from coverage_model.coverage import SimplexCoverage

# Load a saved coverage
scov = SimplexCoverage.load('test_data/usgs.cov')

# Make some changes, like adding 10 additional timesteps
scov.insert_timesteps(10)

# Then save the coverage again
SimplexCoverage.save(scov, 'test_data/usgs.cov')

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 99.9%
  • Shell 0.1%