Calculate Isodistances

This example illustrates how to calculate and visualize isodistances using Location Data Services.

Note: You'll need CARTO Account credentials to reproduce this example.


In [1]:
from cartoframes.auth import set_default_credentials

set_default_credentials('creds.json')

In [2]:
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)

In [3]:
from cartoframes.viz import Layer

Layer(gdf)


Out[3]:
:
StackTrace
    ">
    
    
    In [4]:
    from cartoframes.data.services import Isolines
    
    iso_service = Isolines()
    isodistances_gdf, isodistances_metadata = iso_service.isodistances(gdf, [600, 1200, 2400], exclusive=True)
    
    
    
    
    Success! Isolines created correctly
    
    
    
    In [5]:
    isodistances_gdf.head(5)
    
    
    
    
    Out[5]:
    source_id data_range lower_data_range the_geom range_label
    0 6 2400 1200 POLYGON ((-3.71329 40.45853, -3.71269 40.45853... 40 min.
    1 3 2400 1200 POLYGON ((-3.70797 40.46659, -3.70771 40.46625... 40 min.
    2 0 2400 1200 POLYGON ((-3.71003 40.42917, -3.70977 40.42952... 40 min.
    3 5 2400 1200 POLYGON ((-3.71947 40.46059, -3.71750 40.46059... 40 min.
    4 1 2400 1200 POLYGON ((-3.72085 40.41458, -3.71819 40.41458... 40 min.
    
    
    In [6]:
    isodistances_metadata
    
    
    
    
    Out[6]:
    {'required_quota': 21}
    
    
    In [8]:
    from cartoframes.viz import Map, Layer, basic_style
    
    Map([
        Layer(isodistances_gdf, basic_style(color='green', opacity='0.3', stroke_width=0)),
        Layer(gdf)
    ])
    
    
    
    
    Out[8]:
    :
    StackTrace
      ">