In [1]:
Copied!
import urban_mapper as um
# Initialise UrbanMapper
mapper = um.UrbanMapper()
# Step 1: Create urban layer for intersections
layer = (
mapper.urban_layer
.with_type("streets_intersections")
.from_place("Downtown Brooklyn, New York City, USA", network_type="drive")
.build()
)
import urban_mapper as um
# Initialise UrbanMapper
mapper = um.UrbanMapper()
# Step 1: Create urban layer for intersections
layer = (
mapper.urban_layer
.with_type("streets_intersections")
.from_place("Downtown Brooklyn, New York City, USA", network_type="drive")
.build()
)
--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) Cell In[1], line 1 ----> 1 import urban_mapper as um 3 # Initialise UrbanMapper 4 mapper = um.UrbanMapper() File ~/checkouts/readthedocs.org/user_builds/urbanmapper/checkouts/70/src/urban_mapper/__init__.py:3 1 from loguru import logger ----> 3 from .mixins import ( 4 LoaderMixin, 5 EnricherMixin, 6 VisualMixin, 7 TableVisMixin, 8 AuctusSearchMixin, 9 PipelineGeneratorMixin, 10 UrbanPipelineMixin, 11 ) 12 from .modules import ( 13 LoaderBase, 14 CSVLoader, (...) 30 PipelineGeneratorFactory, 31 ) 33 from .urban_mapper import UrbanMapper File ~/checkouts/readthedocs.org/user_builds/urbanmapper/checkouts/70/src/urban_mapper/mixins/__init__.py:1 ----> 1 from .loader import LoaderMixin 2 from .enricher import EnricherMixin 3 from .visual import VisualMixin File ~/checkouts/readthedocs.org/user_builds/urbanmapper/checkouts/70/src/urban_mapper/mixins/loader.py:1 ----> 1 from urban_mapper.modules.loader.loader_factory import LoaderFactory 4 class LoaderMixin(LoaderFactory): 5 def __init__(self): File ~/checkouts/readthedocs.org/user_builds/urbanmapper/checkouts/70/src/urban_mapper/modules/__init__.py:1 ----> 1 from .loader import LoaderBase, CSVLoader, ShapefileLoader, ParquetLoader 2 from .imputer import ( 3 GeoImputerBase, 4 SimpleGeoImputer, 5 AddressGeoImputer, 6 ) 7 from .filter import ( 8 GeoFilterBase, 9 BoundingBoxFilter, 10 ) File ~/checkouts/readthedocs.org/user_builds/urbanmapper/checkouts/70/src/urban_mapper/modules/loader/__init__.py:3 1 from .abc_loader import LoaderBase 2 from .loaders import CSVLoader, ShapefileLoader, ParquetLoader ----> 3 from .loader_factory import LoaderFactory 5 __all__ = [ 6 "LoaderBase", 7 "CSVLoader", (...) 10 "LoaderFactory", 11 ] File ~/checkouts/readthedocs.org/user_builds/urbanmapper/checkouts/70/src/urban_mapper/modules/loader/loader_factory.py:19 17 from urban_mapper.modules.loader.loaders.csv_loader import CSVLoader 18 from urban_mapper.modules.loader.loaders.parquet_loader import ParquetLoader ---> 19 from urban_mapper.modules.loader.loaders.raster_loader import RasterLoader # Importing RasterLoader of the new raster loader module 20 from urban_mapper.modules.loader.loaders.shapefile_loader import ShapefileLoader 21 from urban_mapper.utils import require_attributes File ~/checkouts/readthedocs.org/user_builds/urbanmapper/checkouts/70/src/urban_mapper/modules/loader/loaders/raster_loader.py:2 1 from ..abc_loader import LoaderBase ----> 2 import rasterio 3 from typing import Any 4 import numpy as np ModuleNotFoundError: No module named 'rasterio'
In [2]:
Copied!
# Step 2: Load collision data
# Note: For the documentation interactive mode, we only query 5000 records from the dataset. Feel free to remove for a more realistic analysis.
data = (
mapper.loader
.from_huggingface("oscur/NYC_vehicle_collisions", number_of_rows=5000, streaming=True)
.with_columns(longitude_column="LONGITUDE", latitude_column="LATITUDE")
.load()
)
data['LONGITUDE'] = data['LONGITUDE'].astype(float)
data['LATITUDE'] = data['LATITUDE'].astype(float)
# Step 2: Load collision data
# Note: For the documentation interactive mode, we only query 5000 records from the dataset. Feel free to remove for a more realistic analysis.
data = (
mapper.loader
.from_huggingface("oscur/NYC_vehicle_collisions", number_of_rows=5000, streaming=True)
.with_columns(longitude_column="LONGITUDE", latitude_column="LATITUDE")
.load()
)
data['LONGITUDE'] = data['LONGITUDE'].astype(float)
data['LATITUDE'] = data['LATITUDE'].astype(float)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[2], line 4 1 # Step 2: Load collision data 2 # Note: For the documentation interactive mode, we only query 5000 records from the dataset. Feel free to remove for a more realistic analysis. 3 data = ( ----> 4 mapper.loader 5 .from_huggingface("oscur/NYC_vehicle_collisions", number_of_rows=5000, streaming=True) 6 .with_columns(longitude_column="LONGITUDE", latitude_column="LATITUDE") 7 .load() 8 ) 10 data['LONGITUDE'] = data['LONGITUDE'].astype(float) 11 data['LATITUDE'] = data['LATITUDE'].astype(float) NameError: name 'mapper' is not defined
In [3]:
Copied!
# Step 3: Impute missing coordinates
imputer = (
mapper.imputer
.with_type("SimpleGeoImputer")
.on_columns(longitude_column="LONGITUDE", latitude_column="LATITUDE",)
.build()
)
data = imputer.transform(data, layer)
# Step 3: Impute missing coordinates
imputer = (
mapper.imputer
.with_type("SimpleGeoImputer")
.on_columns(longitude_column="LONGITUDE", latitude_column="LATITUDE",)
.build()
)
data = imputer.transform(data, layer)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[3], line 3 1 # Step 3: Impute missing coordinates 2 imputer = ( ----> 3 mapper.imputer 4 .with_type("SimpleGeoImputer") 5 .on_columns(longitude_column="LONGITUDE", latitude_column="LATITUDE",) 6 .build() 7 ) 8 data = imputer.transform(data, layer) NameError: name 'mapper' is not defined
In [4]:
Copied!
# Step 4: Filter to bounding box
filter_step = mapper.filter.with_type("BoundingBoxFilter").build()
data = filter_step.transform(data, layer)
# Step 4: Filter to bounding box
filter_step = mapper.filter.with_type("BoundingBoxFilter").build()
data = filter_step.transform(data, layer)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[4], line 2 1 # Step 4: Filter to bounding box ----> 2 filter_step = mapper.filter.with_type("BoundingBoxFilter").build() 3 data = filter_step.transform(data, layer) NameError: name 'mapper' is not defined
In [5]:
Copied!
# Step 5: Map to nearest intersections
_, mapped_data = layer.map_nearest_layer(
data,
longitude_column="LONGITUDE",
latitude_column="LATITUDE",
output_column="nearest_intersection"
)
# Step 5: Map to nearest intersections
_, mapped_data = layer.map_nearest_layer(
data,
longitude_column="LONGITUDE",
latitude_column="LATITUDE",
output_column="nearest_intersection"
)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[5], line 2 1 # Step 5: Map to nearest intersections ----> 2 _, mapped_data = layer.map_nearest_layer( 3 data, 4 longitude_column="LONGITUDE", 5 latitude_column="LATITUDE", 6 output_column="nearest_intersection" 7 ) NameError: name 'layer' is not defined
In [6]:
Copied!
# Step 6: Enrich with collision counts
enricher = (
mapper.enricher
.with_data(group_by="nearest_intersection")
.count_by(output_column="collision_count")
.build()
)
enriched_layer = enricher.enrich(mapped_data, layer)
# Step 6: Enrich with collision counts
enricher = (
mapper.enricher
.with_data(group_by="nearest_intersection")
.count_by(output_column="collision_count")
.build()
)
enriched_layer = enricher.enrich(mapped_data, layer)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 3 1 # Step 6: Enrich with collision counts 2 enricher = ( ----> 3 mapper.enricher 4 .with_data(group_by="nearest_intersection") 5 .count_by(output_column="collision_count") 6 .build() 7 ) 8 enriched_layer = enricher.enrich(mapped_data, layer) NameError: name 'mapper' is not defined
In [7]:
Copied!
# Step 7: Visualize interactively
visualiser = (
mapper.visual
.with_type("Interactive")
.with_style({"tiles": "CartoDB dark_matter", "colorbar_text_color": "white"})
.build()
)
fig_interactive = visualiser.render(enriched_layer.get_layer(), columns=["collision_count"])
fig_interactive
# Step 7: Visualize interactively
visualiser = (
mapper.visual
.with_type("Interactive")
.with_style({"tiles": "CartoDB dark_matter", "colorbar_text_color": "white"})
.build()
)
fig_interactive = visualiser.render(enriched_layer.get_layer(), columns=["collision_count"])
fig_interactive
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[7], line 3 1 # Step 7: Visualize interactively 2 visualiser = ( ----> 3 mapper.visual 4 .with_type("Interactive") 5 .with_style({"tiles": "CartoDB dark_matter", "colorbar_text_color": "white"}) 6 .build() 7 ) 8 fig_interactive = visualiser.render(enriched_layer.get_layer(), columns=["collision_count"]) 9 fig_interactive NameError: name 'mapper' is not defined
In [8]:
Copied!
# Step 8: Visualize statically
visualiser = mapper.visual.with_type("Static").build()
fig_static = visualiser.render(enriched_layer.get_layer(), columns=["collision_count"])
# Step 8: Visualize statically
visualiser = mapper.visual.with_type("Static").build()
fig_static = visualiser.render(enriched_layer.get_layer(), columns=["collision_count"])
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[8], line 2 1 # Step 8: Visualize statically ----> 2 visualiser = mapper.visual.with_type("Static").build() 3 fig_static = visualiser.render(enriched_layer.get_layer(), columns=["collision_count"]) NameError: name 'mapper' is not defined