This example illustrates how to calculate and visualize isochrones using Data Services.
Note: You'll need CARTO Account credentials to reproduce this example.
from cartoframes.auth import set_default_credentials
set_default_credentials('creds.json')
from geopandas import GeoDataFrame, points_from_xy
gdf = GeoDataFrame([
['Calle Serrano 15', -3.68831, 40.42478],
['Calle de San Pedro 21', -3.69488, 40.41089],
['Calle Gran Vía 46', -3.70588, 40.42049],
['Paseo de la Castellana 200', -3.68898, 40.46239],
['Calle Ntra. Sra. del Carmen 7', -3.70221, 40.45840],
['Calle de San Germán 12', -3.69286, 40.45651],
['Calle de Bravo Murillo 377', -3.69093, 40.46575],
],
columns=['address', 'lng', 'lat']
)
gdf.set_geometry(points_from_xy(gdf['lng'], gdf['lat']), inplace=True)
from cartoframes.viz import Layer
Layer(gdf)
from cartoframes.data.services import Isolines
iso_service = Isolines()
isochrones_gdf, isochrones_metadata = iso_service.isochrones(gdf, [100, 200, 300], mode='walk', exclusive=True)
Success! Isolines created correctly
isochrones_gdf.head(5)
source_id | data_range | lower_data_range | the_geom | range_label | |
---|---|---|---|---|---|
0 | 0 | 100 | 0 | MULTIPOLYGON (((-3.68926 40.42557, -3.68797 40... | 2 min. |
1 | 0 | 200 | 100 | POLYGON ((-3.69012 40.42574, -3.68986 40.42608... | 3 min. |
2 | 0 | 300 | 200 | POLYGON ((-3.69081 40.42643, -3.69055 40.42677... | 5 min. |
3 | 1 | 100 | 0 | MULTIPOLYGON (((-3.69544 40.41183, -3.69484 40... | 2 min. |
4 | 1 | 200 | 100 | POLYGON ((-3.69630 40.41132, -3.69621 40.41183... | 3 min. |
isochrones_metadata
{'required_quota': 21}
from cartoframes.viz import Map, Layer, basic_style
Map([
Layer(isochrones_gdf, basic_style(color='green', opacity='0.3')),
Layer(gdf, basic_style(size=3))
])