UDST / urbanaccess

A tool for GTFS transit and OSM pedestrian network accessibility analysis by UrbanSim
https://udst.github.io/urbanaccess/index.html
GNU Affero General Public License v3.0
236 stars 56 forks source link

Updates for Pandana 0.4 #46

Closed smmaurer closed 5 years ago

smmaurer commented 5 years ago

This PR contains updates to provide compatibility with Pandana 0.4, while also maintaining compatibility with older versions.

Changes

In osm/load.py, the initial call to pandana.network.reserve_num_graphs() is made conditional on the Pandana version number.

No changes are needed for POIs, because the UrbanAccess codebase doesn't use them directly. See the Pandana migration guide for more info.

Testing

I tested the changes locally using the demo notebook, in Python 2.7 and 3.6 with Pandana 0.3 and 0.4. This is what the notebook output looks like: py2.7, py3.6.

The Travis script is updated to use Pandana 0.4 only. I don't think there's much reason to run CI tests against v0.3 going forward, but we can do that if necessary..

Resolved issues

Upgrading to Pandana 0.4 fixes the problem I was having with network plots in the demo notebook (see PR #45).

But unfortunately, there's a temporary incompatibility between the latest versions of Matplotlib and Basemap that raises an error alongside the printed plot. This should resolve itself soon, but I'm leaving the last three cells of the demo notebook commented out so that the Travis tests pass.

Outstanding issues

With the combination of Python 3 and Pandana 0.4, Travis hangs when running the demo notebook. Apparently this happens while executing urbanaccess.gtfs.load.gtfsfeed_to_df(), but I suspect it's actually caused by something else.

We haven't had any success troubleshooting this, and we're not able to reproduce the problem outside of Travis, in either Ubuntu, Mac, or Windows. For now, I'm setting up Travis to allow this test to fail.

Versioning

This PR is labeled 0.2.dev2 in setup.py and the top-level __init__.py