Skip to main content

Pythonic access to the British Columbia[, Canada,] Transmission Corporation (BCTC) public electric data.

Project description

pybctc is a python package that makes access to British Columbia[, Canada,] Transmission Corporation (BCTC) electric data easier.

The British Columbia [Canada] Transmission Corporation <> is a crown corporation with a mandate to plan, build, and operate the province of British Columbia’s electricity transmission system. It publishes valuable information on electicity generation, transmission, and consumption to its website. This information is useful for many purposes including economic analysis, power trading, electric system study, and forecasting. The first step in using such information is to download it an parse it into useful data structures - a task performed by this library. The processed data normally will feed statistical methods, heuristics, and system models to provide a useful analysis of the British Columbia electric system.

The pybctc project is hosted at <> and releases are made via the Python Package Index at <>. Online documentation is available at <>.



Extract the archive, enter the recovered directory and type:

python install

Alternatively, the library can be installed via easy_install, or pip via the “pybctc” package name.


Some code samples that use pybctc are availble in the examples directory. One sample is listed here:

>>> '''List BCTC Control Area Load Points for 2010'''
>>> # Standard library imports
>>> import sys
>>> from datetime import datetime
>>> # 3rd Party Libraries
>>> import pytz
>>> from bctc import BC_TZ
>>> from bctc.load import yield_load_points
>>> start_dt = pytz.utc.localize(datetime(2010, 1, 1))
>>> end_dt = pytz.utc.localize(datetime(2011, 1, 1))
>>> print '''2010 BCTC Control Area Load Points'''
>>> print 'Date, Load'
>>> for p in yield_load_points(start_dt, end_dt):
>>>     # Time calculations are easier when done in UTC so that no timezone
>>>     # conversions or daylist-savings time conversions need to be made.  For
>>>     # this reason all times yielded by pyaeso are UTC.
>>>     #
>>>     # UTC times are converted to local times when they are displayed to the
>>>     # user.
>>>     print p.t.astimezone(BC_TZ), str(p.load) +'MW'
>>> return(0)

Known Incompatibilities

  • Python <= 2.3 - Fails because of requirement for decimal module introduced in Python 2.4.
  • Python 3 - pybctc uses two underlying libraries, pytz and xlrd, that have no Python 3 version available (2010-02-20). When these underlying libraries support Python 3 the pybctc library can quickly be made to work.

Bugs and Enhancements

If you would like to file a bug report or feature request then you can do so at <>.


As the maintainer of this library I, Keegan Callin, would welcome your polite, constructive comments and criticisms of this library. I can be reached by email using the address kc (at) If you need to talk to me on the telephone or send me something by snail mail, send me an email and I’ll gladly mail you instructions on how to reach me.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for pybctc, version 0.1.2
Filename, size File type Python version Upload date Hashes
Filename, size pybctc-0.1.2.tar.bz2 (53.7 kB) File type Source Python version None Upload date Hashes View
Filename, size pybctc-0.1.2.tar.gz (55.6 kB) File type Source Python version None Upload date Hashes View
Filename, size (63.7 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page