clean, simple and fast access to public hydrology and climatology data
HTML ColdFusion Python Other
Latest commit 740035c Jul 18, 2016 @dharhas dharhas readme has incorrect install instructions, bump
version to



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 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.