clean, simple and fast access to public hydrology and climatology data
HTML ColdFusion Python Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.



clean, simple and fast access to public hydrology and climatology data

Project Status


  • retrieves and parses datasets from the web
  • returns simple python data structures that can be easily pulled into more sophisticated tools for analysis
  • caches datasets locally and harvests updates as needed


Currently, ulmo supports the following datasets / services:

  • California Department of Water Resources Historical Data
  • Climate Prediction Center Weekly Drought
  • CUAHSI WaterOneFlow
  • Lower Colorado River Authority Hydromet and Water Quality Data
  • NASA Daymet weather data
  • National Climatic Data Center Climate Index Reference Sequential (CIRS)
  • National Climatic Data Center Global Historical Climate Network Daily
  • National Climatic Data Center Global Summary of the Day
  • Texas Weather Connection Daily Keetch-Byram Drought Index (KBDI)
  • US Army Corps of Engineers - Tulsa District Water Control
  • USGS National Water Information System
  • USGS Emergency Data Distribution Network services
  • USGS Earth Resources Observation Systems (EROS) services
  • USGS National Elevation Dataset (NED) services


Ulmo depends on a lot of libraries from the scientific python stack (namely: numpy, pytables and pandas) and lxml. There are a couple of ways to get these dependencies installed but it can be tricky if doing it by hand. The simplest way to get things up and running is to use a scientific python distribution that will install everything together. A full list is available on the scipy website but Anaconda / Miniconda is recommended as it is the easiest to set up.

If you are using Anaconda/Miniconda then you can install ulmo from the `conda_forge`_ channel with the following command:

conda install -c conda-forge ulmo

Otherwise, follow the instructions below:

Once the requisite scientific python libraries are installed, the most recent release of ulmo can be installed from pypi. Pip is a good way to do that:

pip install ulmo

To install the bleeding edge development version, grab a copy of the source code and run from the root directory:

To setup a development environment using conda:

conda env create -n myenv --file py2_conda_environment.yml (or py3_conda_environment.yml if you want to work with python 3)

source activate myenv (use 'activate test_environment' on windows)

python develop


A list of future datasets is kept in on the issue tracker. If there's a dataset you'd like to see added, please open an issue about it.