Skip to content
Fetch NCDC ISD, TMY3, or CZ2010 weather data that corresponds to ZIP Code Tabulation Areas or Latitude/Longitude.
Python Other
  1. Python 98.5%
  2. Other 1.5%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Fix typo Sep 28, 2018
docs Blacken code Sep 28, 2018
eeweather Bump version Jul 1, 2019
scripts bumped version and updated tutorial Aug 20, 2018
tests Blackened and added dev requirements Jun 12, 2019
.coveragerc Initial commit Jan 30, 2018
.gitattributes Add gitattributes Feb 1, 2018
.gitignore Add github PR and issue hints Sep 28, 2018
.travis.yml Update Travis to use an image that has Python 3.7 support Jun 24, 2019 Bump version Jul 1, 2019 Create Sep 28, 2018 Add script Jan 3, 2019
Dockerfile Blackened and added dev requirements Jun 12, 2019
LICENSE Initial commit Jan 30, 2018 Bump version May 4, 2018
Pipfile Revert to python 2 compatible matplotlib Sep 28, 2018
README.rst added disclaimer about re-distributing CSV2010 data May 11, 2018 Blackened and added dev requirements Jun 12, 2019
dev-requirements.txt Moved snapshottest over as well Jun 12, 2019
pytest.ini Initial commit Jan 30, 2018
requirements.txt Merge branch 'master' of Jun 24, 2019 Updates Pyproj to allow for Python 3.7 support. Updates Tox / require… Jun 24, 2019
tox.ini Updates Pyproj to allow for Python 3.7 support. Updates Tox / require… Jun 24, 2019


EEweather: Weather station wrangling for EEmeter

EEweather — tools for matching to and fetching data from NCDC ISD, TMY3, or CZ2010 weather stations.

EEweather comes with a database of weather station metadata, ZCTA metadata, and GIS data that makes it easier to find the right weather station to use for a particular ZIP code or lat/long coordinate.

Read the docs.


EEweather is a python package and can be installed with pip.

$ pip install eeweather

Supported Sources of Weather Data

  • NCDC Integrated Surface Database (ISD)
  • Global Summary of the Day (GSOD)
  • NREL Typical Meteorological Year 3 (TMY3)
  • California Energy Commission 1998-2009 Weather Normals (CZ2010)


  • Match by ZIP code (ZCTA) or by lat/long coordinates
  • Use user-supplied weather station mappings
  • Match within climate zones
    • IECC Climate Zones
    • IECC Moisture Regimes
    • Building America Climate Zones
    • California Building Climate Zone Areas
  • User-friendly SQLite database of metadata compiled from primary sources
    • US Census Bureau (ZCTAs, county shapefiles)
    • Building America climate zone county lists
    • NOAA NCDC Integrated Surface Database Station History
    • NREL TMY3 site
  • Plot maps of outputs


Dev installation:

$ pipenv --python 3.6.4  # create virtualenv with python 3.6.4
$ pipenv install --dev   # install dev requirements with pipenv
$ pipenv install -e .    # install package in editable mode
$ pipenv shell           # activate pipenv virtual environment

Build docs:

$ make -C docs html

Autobuild docs:

$ make -C docs livehtml

Check spelling in docs:

$ make -C docs spelling

Run tests:

$ pytest

Run tests on multiple python versions:

$ tox

Upload to pypi (using twine):

$ python upload

Use with Docker

To use with docker-compose, use the following:

Run a tutorial notebook (copy link w/ token, open tutorial.ipynb):

$ docker-compose up jupyter

Live-edit docs:

$ docker-compose up docs

Open a shell:

$ docker-compose run --rm shell

Run tests:

$ docker-compose run --rm test

Run the CLI:

$ docker-compose run --rm eeweather --help

Notice Regarding CZ2010 Data

There may be conditions placed on their international commercial use. They can be used within the U.S. or for non-commercial international activities without restriction. The non-U.S. data cannot be redistributed for commercial purposes. Re-distribution of these data by others must provide this same notification.

See further explanation here.

You can’t perform that action at this time.