Long distance isochrones

Hi,

is it possible to create isochrones for travel times above 60 minutes? Would it be possible to find out, what destinations are reachable within, say, 6 hours, from a given location? I am using the web service, in case it is relevant.

Thank you
Ferdinand

1 Like

I just found this: https://openrouteservice.org/restrictions/
Maximum range time is 60 minutes.
No way to overcome this limitation, I assume?

Hi @ffichtner,

currently not but we are working on an improvement to allow up to 360 minutes - we might be able to release this within the next 2 months, so please stay a little tuned :slight_smile:

Cheers, Tim

Hey Tim,

thank you for the information. Sounds promising. I will definitely keep an eye on your project!

Best
Ferdinand

Hola, se encuentra disponible la mejora de la opción?

Hi @Ariel,

Please post in English so most people understand your post.

Sadly the implementation for long distance isochrones still needs major refactoring until it can be released and it keeps being pushed back because of higher priority issues.

We currently can’t say when it will be implemented.

Best regards

Hi timothy,
Could you please tell us if there are any news about the expected improvement of isochrones for travel times up to 360 minutes?
It would be very useful for many users!!! Also a beta version, not fully tested would be really ok (I could give you feedback, of course)…
I would be also willing to contribute, if needed and welcome, of course!
Best Regards
Daniele

Hi,

new isochrones are in a late stage of dev already. We have tested them for car and hgv and they work well, giving sub 30s request times for isochrones with 3+ h of reach.
We are planning on releasing them before July.

Hi Hendrick,

When you release the new isochrone feature, will there be are hard limit at 360 minutes? Or, can you go longer if you are willing to wait for the computations to finish?

Thanks,

Erik

There’ll still be a hard limit. Whether it’ll be at 6 hours or less we can’t tell yet. It’s all about server resources. If you install ORS yourself, you can try 6 hours right now.

Nils,

Thanks for the idea. With 6.1, we’re seeing 3-5 min for a 6 hour isochrone. If I wanted to try your faster version before it is published, which branch would you recommend: fastisochrones-remove-contraction or fastisochrones-rebase?

Thanks,

Erik

Not sure… @HendrikLeuschner is there a out-of-the-box workable branch?

Then it’d be hard to offer support @eeilerts , so you’d be on your own for a while, until it’s fully tested and production-ready.

And thanks for the info, never tried that myself!

Nils,

Thanks. Happy to work unsupported trying it out. Just curious about @HendrikLeuschner two fastisochrone branches.

Erik

Hi,

fastisochrones-remove-contraction if you want to try it out yourself. You do need to specify additional parameters in the ors config file, though. It is mainly adding a weighting parameter to the isochrones field, e.g.

isochrones: {
        enabled: true,
        weightings: "fastest",
        # possible values for maximum_range_distance and maximum_range_time are an integer or a list of values specifically defined for each profile
        maximum_range_distance:
          [
            {profiles: "any", value: 1000000}
            {profiles: "driving-car, driving-hgv", value: 1000000}
          ],
        maximum_range_time:
          [
            {profiles: "any", value: 360000}
            {profiles: "driving-car, driving-hgv", value: 360000}
          ],
        maximum_intervals: 10,
        maximum_locations: 2,
        allow_compute_area: true
        }

Let me know whether it works. Should create some additional files in your graphs folder.
If you really want to dig into the workings, there is a file calles FastIsochroneParameters.java where you can set some parameters. But that is generally not necessary.

Hendrik,

Thanks! I’ll give it a try.

Erik

Hi,

I successfully hosted ors on my local machine using docker. I am also able to access the isochrones API. However when I try to apply the above mentioned changes to the app.config and rerun my docker container, the API limit is still at 3600:

ApiError: 400 ({‘error’: {‘code’: 3004, ‘message’: “Parameter ‘range=3601.0’ is out of range. Maximum possible value is 3600.”}, ‘info’: {‘engine’: {‘version’: ‘6.3.1’, ‘build_date’: ‘2020-11-04T11:03:30Z’}, ‘timestamp’: 1604488638692}})

The server status shows the following:

{"engine":{"version":"6.3.1","build_date":"2020-11-04T11:03:30Z"},"services":["routing","isochrones","matrix","mapmatching"],"languages":["de","de-de","en","en-us","es","es-es","fr","fr-fr","gr","gr-gr","he","he-il","hu","hu-hu","id","id-id","it","it-it","ja","ja-jp","ne","ne-np","nl","nl-nl","pl","pl-pl","pt","pt-pt","ru","ru-ru","zh","zh-cn"],"profiles":{"profile 1":{"profiles":"driving-car","creation_date":"","storages":{"WayCategory":{},"HeavyVehicle":{},"WaySurfaceType":{},"RoadAccessRestrictions":{"use_for_warnings":"true"}},"limits":{"maximum_distance":100000,"maximum_distance_dynamic_weights":100000,"maximum_distance_avoid_areas":100000,"maximum_waypoints":50}}}}

My app.config is as follows (extract):

{
“ors”: {
“info”: {
“base_url”: “”, #Link removed due to new user post restriction
“support_mail”: “support@openrouteservice.org”,
“author_tag”: “openrouteservice”,
“content_licence”: “LGPL 3.0”
},
“services”: {
“matrix”: {
“enabled”: true,
“maximum_routes”: 100,
“maximum_routes_flexible”: 25,
“maximum_search_radius”: 5000,
“maximum_visited_nodes”: 100000,
“allow_resolve_locations”: true,
“attribution”: “openrouteservice.org, OpenStreetMap contributors”
},
“isochrones”: {
“enabled”: true,
“maximum_range_distance”: [
{ “profiles”: “any”, “value”: 50000 },
{ “profiles”: “driving-car, driving-hgv”, “value”: 100000 }
],
“maximum_range_time”: [
{ “profiles”: “any”, “value”: 18000 },
{ “profiles”: “driving-car, driving-hgv”, “value”: 3600 }
],
“fastisochrones”: {
“maximum_range_distance”: [
{ “profiles”: “any”, “value”: 50000 },
{ “profiles”: “driving-car, driving-hgv”, “value”: 500000 }
],
“maximum_range_time”: [
{ “profiles”: “any”, “value”: 18000 },
{ “profiles”: “driving-car, driving-hgv”, “value”: 10800 }
],
“profiles”: {
“default_params”: {
“enabled”: false,
“threads”: 12,
“weightings”: “recommended”,
“maxcellnodes”: 5000
},
“profile-vehicles-hgv”: {
“enabled”: true,
“threads”: 12,
“weightings”: “recommended, shortest”,
“maxcellnodes”: 5000
}
}
},
“maximum_intervals”: 10,
“maximum_locations”: 2,
“allow_compute_area”: true
}, …

and I am starting the container as follows:

docker run -dt
–name ors-app
-p 8080:8080
-v $PWD/docker/graphs:/ors-core/data/graphs
-v $PWD/docker/elevation_cache:/ors-core/data/elevation_cache
-v $PWD/docker/conf:/ors-conf
-v $PWD/docker/germany-latest.osm.pbf:/ors-core/data/osm_file.pbf
-e “JAVA_OPTS=-Djava.awt.headless=true -server -XX:TargetSurvivorRatio=75 -XX:SurvivorRatio=64 -XX:MaxTenuringThreshold=3 -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:ParallelGCThreads=4 -Xms1g -Xmx11g”
-e “CATALINA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9001 -Dcom.sun.management.jmxremote.rmi.port=9001 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=localhost”
openrouteservice/openrouteservice:latest
-e BUILD_GRAPHS=False

The mentioned app.config is in the folder ./docker/conf/app.config

I also checked the app.config in the running container using docker exec:

“ors”: {
“info”: {
“base_url”: “https://openrouteservice.org/”,
“support_mail”: “support@openrouteservice.org”,
“author_tag”: “openrouteservice”,
“content_licence”: “LGPL 3.0”
},
“services”: {
“matrix”: {
“enabled”: true,
“maximum_routes”: 100,
“maximum_routes_flexible”: 25,
“maximum_search_radius”: 5000,
“maximum_visited_nodes”: 100000,
“allow_resolve_locations”: true,
“attribution”: “openrouteservice.org, OpenStreetMap contributors”
},
“isochrones”: {
“enabled”: true,
“maximum_range_distance”: [
{
“profiles”: “any”,
“value”: 50000
},
{
“profiles”: “driving-car, driving-hgv”,
“value”: 100000
}
],
“maximum_range_time”: [
{
“profiles”: “any”,
“value”: 18000
},
{
“profiles”: “driving-car, driving-hgv”,
“value”: 3600
}
],
It seems like the app.config I provide is not being used.

Any suggestions?

Thanks

Boind

Dear developer team,

do we have any news when the new feature will be available. Would be really appreciated to have more than 60 min distance. Great and very useful tool, congrats!

The functionality for the fast generation of large scale isochrones was added in version 6.3, but we cannot use them in the global API as they require more resources than we currently have. If you want to use them, you need to set it up locally.

Looking at the config, it seems you are only setting the maximum search radius in the matrix endpoint and not in isochrones. Maybe @HendrikLeuschner knows if the parameter is the same for isochrones…