conveyal / r5

Developed to power Conveyal's web-based interface for scenario planning and land-use/transport accessibility analysis, R5 is our routing engine for multimodal (transit/bike/walk/car) networks with a particular focus on public transit
https://conveyal.com/learn
MIT License
272 stars 71 forks source link

Check number of opportunities in destination layers used for regional analysis #928

Open ansoncfit opened 5 months ago

ansoncfit commented 5 months ago

We should add assertions that destination layers used in regional analysis have fewer than 2 billion opportunities.

With more than 2^31 opportunities, access results run the risk of overflow. We recently caught this with an assertion building the grids to display regional analysis results:

java.lang.IllegalStateException: Opportunity density should never be negative.
at com.google.common.base.Preconditions.checkState(Preconditions.java:512)
at com.conveyal.r5.analyst.Grid.write(Grid.java:303)

But we should fail faster, rather than waiting to violate an assertion after the analysis is complete.