Passer la navigation

Chicago Safety Data

Chicago 311 Service Requests Public Safety Streets Pot Holes Lights Garbage Sanitation Complaints

Demandes de service 311 de la ville de Chicago, notamment des plaintes concernant le code d’assainissement, des nids-de-poule signalés et des problèmes d’éclairage public

Toutes les plaintes relatives au code d’assainissement ouvert ont été adressées au service 311 et toutes les demandes traitées depuis le 1er janvier 2011. Le Département Streets and Sanitation examine et corrige les violations du code de l’assainissement de Chicago. Les résidents peuvent effectuer une demande de service pour des infractions telles que des bennes à ordures qui débordent et des déchets dans la rue. Le 311 reçoit parfois des plaintes en double relatives au code d’assainissement. Les demandes étiquetées comme des doublons se trouvent dans la même zone géographique qu’une demande précédente et ont été entrées dans le système de demande de service clientèle (RSC) du service 311 à peu près au même moment. Les plaintes en double sont identifiées comme telles dans le champ d’état, sous la forme « Open-Dup » ou « Completed-Dup ».

Le département des transports de Chicago (CDOT) supervise la réparation des nids-de-poule sur plus de 4 000 miles de grandes artères et de rues résidentielles à Chicago. Le CDOT reçoit des rapports sur les nids-de-poule par l’intermédiaire du centre d’appels 311 et utilise un système de cartographie et de suivi informatisé pour identifier l’emplacement des nids-de-poule et planifier efficacement l’intervention des équipes. Un appel au 311 peut générer plusieurs réparations de nids-de-poule. Lorsqu’une équipe arrive pour réparer un nid-de-poule signalé au 311, elle s’occupe de tous les autres nids-de-poule du bloc. Les réparations des nids-de-poule sont généralement terminées dans les 7 jours suivant le premier signalement d’un nid-de-poule au service 311. Les conditions météorologiques, en particulier les températures glaciales et les précipitations, ont une influence sur la durée des réparations. Les jours où le temps est clément et où il n’y a pas de précipitations, les équipes peuvent réparer plusieurs milliers de nids-de-poule. Si une demande précédente est déjà ouverte pour un groupe de 4 adresses, elle reçoit le statut « Duplicate (Open) ». Par exemple, s’il existe une demande pour 6535 N Western et qu’une nouvelle demande est reçue pour 6531 N Western (qui se trouve à moins de quatre adresses de la demande d’origine), la nouvelle demande reçoit le statut « Duplicate (Open) ». Une fois la rue réparée, le statut de la demande indique « Completed » pour la demande d’origine et « Duplicate (Closed) » pour toutes les demandes en double. Une demande de service reçoit également le statut « Completed » lorsque l’adresse déclarée est inspectée mais qu’aucun nid-de-poule n’est trouvé ou que le nid-de-poule a déjà été comblé. Si un autre problème est détecté dans la rue, tel qu’un « effondrement » ou une « coupure de service », il est alors dirigé vers le service ou l’entrepreneur approprié.

Tous les rapports ouverts intitulés « Street Lights - All Out » (panne d’au moins 3 éclairages) envoyés à l’attention du service 311 et toutes les demandes traitées depuis le 1er janvier 2011. Le ministère des Transports de Chicago (CDOT) supervise environ 250 000 lampadaires qui éclairent les artères et rues résidentielles de Chicago. La CDOT effectue les réparations et le remplacement des ampoules en réponse aux rapports des résidents sur les pannes d’éclairage. À chaque fois que le CDOT reçoit un rapport indiquant que tous les éclairages sont hors service (« All Out »), l’électricien chargé de la réparation examine tous les éclairages de ce circuit (chaque circuit comporte 8 à 16 éclairages) pour s’assurer qu’ils fonctionnent tous correctement. Si une deuxième demande relative à un éclairage en panne dans le même circuit est soumise dans les quatre jours calendaires suivant la demande initiale, la demande la plus récente reçoit automatiquement le statut « Duplicate (Open) ». Étant donné que l’électricien du CDOT examine tous les éclairages d’un circuit pour vérifier qu’ils fonctionnent tous, toute adresse de type « Duplicate (Open) » fera automatiquement l’objet d’une observation et d’une réparation. Une fois les éclairages réparés, le statut de la demande indique « Completed » pour la demande d’origine et « Duplicate (Closed) » pour toutes les demandes en double. Une demande de service reçoit également le statut « Completed » lorsque les éclairages signalés sont inspectés mais s’avèrent en bon état de fonctionnement et de réparation. Lorsque la demande de service concerne une adresse inexistante ; ou lorsque les éclairages sont entretenus par une société privée. Les données sont mises à jour quotidiennement.

Volume et rétention

Ce jeu de données est stocké au format Parquet. Il est mis à jour quotidiennement et contient environ 1 million de lignes (80 Mo) en 2018.

Ce jeu de données contient les enregistrements historiques accumulés de 2011 à 2018. Vous pouvez utiliser les paramètres de paramétrage de notre SDK pour récupérer les données dans un intervalle de temps spécifique.

Emplacement de stockage

Ce jeu de données est stocké dans la région Azure USA Est. L’allocation de ressources de calcul dans la région USA Est est recommandée à des fins d’affinité.

Informations supplémentaires

Ce jeu de données est fourni par les services publiques de la ville de Chicago. Des informations supplémentaires sont disponibles en cliquant sur les liens suivants : Sanitation, Pot Holes, Street Lights.

Cliquez ici pour les termes utilisés dans ce jeu de données. Envoyez un e-mail à si vous avez des questions sur la source de données.

Remarques

MICROSOFT FOURNIT AZURE OPEN DATASETS “EN L’ÉTAT”. MICROSOFT N’OFFRE AUCUNE GARANTIE, EXPRESSE OU IMPLICITE, DE GARANTIE NI DE CONDITIONS RELATIVES À VOTRE UTILISATION DES JEUX DE DONNÉES. DANS LA MESURE AUTORISÉE PAR VOTRE DROIT LOCAL, MICROSOFT DÉCLINE TOUTE RESPONSABILITÉ POUR TOUT DOMMAGE OU PERTES, Y COMPRIS LES DIRECTIVES, CONSEQUENTIELLES, SPÉCIALES, INDIRECTES OU PUNITIVES, RÉSULTANT DE VOTRE UTILISATION DES JEUX DE DONNÉES.

Ce jeu de données est fourni selon les conditions initiales par lesquelles Microsoft a reçu les données sources. Le jeu de données peut inclure des données provenant de Microsoft.

Access

Available inWhen to use
Azure Notebooks

Quickly explore the dataset with Jupyter notebooks hosted on Azure or your local machine.

Azure Databricks

Use this when you need the scale of an Azure managed Spark cluster to process the dataset.

Azure Synapse

Use this when you need the scale of an Azure managed Spark cluster to process the dataset.

Preview

dataType dataSubtype dateTime category subcategory status address source extendedProperties latitude longitude
Safety 311_All 2/14/2021 11:54:57 PM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Safety 311_All 2/14/2021 11:54:42 PM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Safety 311_All 2/14/2021 11:54:01 PM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Safety 311_All 2/14/2021 11:52:56 PM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Safety 311_All 2/14/2021 11:52:39 PM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Safety 311_All 2/14/2021 11:51:37 PM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Safety 311_All 2/14/2021 11:51:37 PM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Safety 311_All 2/14/2021 11:51:34 PM Ice and Snow Removal Request null Open 5110 W LE MOYNE ST null 41.907864944 -87.753870618
Safety 311_All 2/14/2021 11:49:49 PM Ice and Snow Removal Request null Open 5620 W MELROSE ST null 41.939685468 -87.767459282
Safety 311_All 2/14/2021 11:49:23 PM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Name Data type Unique Values (sample) Description
address string 798,089 2111 W Lexington ST
10510 W ZEMKE RD

Adresse.

category string 99 311 INFORMATION ONLY CALL
Aircraft Noise Complaint

Type de la demande de service.

dataSubtype string 1 311_All

“311_Sanitation”, “311_Potholes” ou “311_Street_Lights”.

dataType string 1 Safety

“Safety”.

dateTime timestamp 3,777,852 2014-01-13 00:00:00
2014-03-10 00:00:00

Date de création de la demande de service.

latitude double 1,112,107 41.871831278
41.994896549

Latitude.

longitude double 1,218,998 -87.679846219
-87.887751654

Longitude.

status string 5 Completed
Completed - Dup

Statut de la demande de service, indiquant si elle est terminée ou non.

Select your preferred service:

Azure Notebooks

Azure Databricks

Azure Synapse

Azure Notebooks

Package: Language: Python Python
In [1]:
# This is a package in preview.
from azureml.opendatasets import ChicagoSafety

from datetime import datetime
from dateutil import parser


end_date = parser.parse('2016-01-01')
start_date = parser.parse('2015-05-01')
safety = ChicagoSafety(start_date=start_date, end_date=end_date)
safety = safety.to_pandas_dataframe()
ActivityStarted, to_pandas_dataframe ActivityStarted, to_pandas_dataframe_in_worker Looking for parquet files... Reading them into Pandas dataframe... Reading Safety/Release/city=Chicago/part-00080-tid-845600952581210110-a4f62588-4996-42d1-bc79-23a9b4635c63-446923.c000.snappy.parquet under container citydatacontainer Done. ActivityCompleted: Activity=to_pandas_dataframe_in_worker, HowEnded=Success, Duration=11294.27 [ms] ActivityCompleted: Activity=to_pandas_dataframe, HowEnded=Success, Duration=11295.76 [ms]
In [2]:
safety.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 56431 entries, 3751 to 2291417 Data columns (total 11 columns): dataType 56431 non-null object dataSubtype 56431 non-null object dateTime 56431 non-null datetime64[ns] category 56431 non-null object subcategory 0 non-null object status 56431 non-null object address 56431 non-null object latitude 56358 non-null float64 longitude 56358 non-null float64 source 0 non-null object extendedProperties 29124 non-null object dtypes: datetime64[ns](1), float64(2), object(8) memory usage: 5.2+ MB
In [1]:
# Pip install packages
import os, sys

!{sys.executable} -m pip install azure-storage-blob
!{sys.executable} -m pip install pyarrow
!{sys.executable} -m pip install pandas
In [2]:
# Azure storage access info
azure_storage_account_name = "azureopendatastorage"
azure_storage_sas_token = r""
container_name = "citydatacontainer"
folder_name = "Safety/Release/city=Chicago"
In [3]:
from azure.storage.blob import BlockBlobServicefrom azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

if azure_storage_account_name is None or azure_storage_sas_token is None:
    raise Exception(
        "Provide your specific name and key for your Azure Storage account--see the Prerequisites section earlier.")

print('Looking for the first parquet under the folder ' +
      folder_name + ' in container "' + container_name + '"...')
container_url = f"https://{azure_storage_account_name}.blob.core.windows.net/"
blob_service_client = BlobServiceClient(
    container_url, azure_storage_sas_token if azure_storage_sas_token else None)

container_client = blob_service_client.get_container_client(container_name)
blobs = container_client.list_blobs(folder_name)
sorted_blobs = sorted(list(blobs), key=lambda e: e.name, reverse=True)
targetBlobName = ''
for blob in sorted_blobs:
    if blob.name.startswith(folder_name) and blob.name.endswith('.parquet'):
        targetBlobName = blob.name
        break

print('Target blob to download: ' + targetBlobName)
_, filename = os.path.split(targetBlobName)
blob_client = container_client.get_blob_client(targetBlobName)
with open(filename, 'wb') as local_file:
    blob_client.download_blob().download_to_stream(local_file)
In [4]:
# Read the parquet file into Pandas data frame
import pandas as pd

print('Reading the parquet file into Pandas data frame')
df = pd.read_parquet(filename)
In [5]:
# you can add your filter at below
print('Loaded as a Pandas data frame: ')
df
In [6]:
 

Azure Databricks

Package: Language: Python Python
In [1]:
# This is a package in preview.
# You need to pip install azureml-opendatasets in Databricks cluster. https://docs.microsoft.com/en-us/azure/data-explorer/connect-from-databricks#install-the-python-library-on-your-azure-databricks-cluster
from azureml.opendatasets import ChicagoSafety

from datetime import datetime
from dateutil import parser


end_date = parser.parse('2016-01-01')
start_date = parser.parse('2015-05-01')
safety = ChicagoSafety(start_date=start_date, end_date=end_date)
safety = safety.to_spark_dataframe()
ActivityStarted, to_spark_dataframe ActivityStarted, to_spark_dataframe_in_worker ActivityCompleted: Activity=to_spark_dataframe_in_worker, HowEnded=Success, Duration=3396.42 [ms] ActivityCompleted: Activity=to_spark_dataframe, HowEnded=Success, Duration=3398.23 [ms]
In [2]:
display(safety.limit(5))
dataTypedataSubtypedateTimecategorysubcategorystatusaddresslatitudelongitudesourceextendedProperties
Safety311_All2015-08-14T00:00:00.000+0000Street Lights - All/OutnullCompleted3742 W 59TH ST41.78603578433899-87.71664452773216nullcommunity_area:62,completion_date:2015-08-20T00:00:00.000,police_district:8,service_request_number:15-04081104,type_of_service_request:Street Lights - All/Out,zip_code:60629,y_coordinate:1865225.18787483,x_coordinate:1152434.60798184,ward:23
Safety311_All2015-06-22T00:00:00.000+0000Street Lights - All/OutnullCompleted3719 W 53RD ST41.79697833262681-87.71666270664977nullcommunity_area:62,completion_date:2015-06-23T00:00:00.000,police_district:8,service_request_number:15-02890103,type_of_service_request:Street Lights - All/Out,zip_code:60632,y_coordinate:1869212.53972903,x_coordinate:1152401.04890436,ward:23
Safety311_All2015-12-11T00:00:00.000+0000Street Lights - All/OutnullCompleted2010 N SAWYER AVE41.9177056604285-87.70893291956332nullcommunity_area:22,completion_date:2015-12-14T00:00:00.000,police_district:14,service_request_number:15-06669629,type_of_service_request:Street Lights - All/Out,zip_code:60647,y_coordinate:1913220.44877936,x_coordinate:1154188.85999445,ward:26
Safety311_All2015-09-14T00:00:00.000+0000Street Lights - All/OutnullCompleted4800 N CENTRAL PARK AVE41.96834840769826-87.7182549592663nullcommunity_area:14,completion_date:2015-09-15T00:00:00.000,police_district:17,service_request_number:15-04793248,type_of_service_request:Street Lights - All/Out,zip_code:60625,y_coordinate:1931656.45677884,x_coordinate:1151519.31229956,ward:35
Safety311_All2015-12-17T00:00:00.000+0000Street Lights - All/OutnullCompleted7100 S YATES BLVDnullnullnullnull
In [1]:
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "citydatacontainer"
blob_relative_path = "Safety/Release/city=Chicago"
blob_sas_token = r""
In [2]:
# Allow SPARK to read from Blob remotely
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set(
  'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name),
  blob_sas_token)
print('Remote blob path: ' + wasbs_path)
In [3]:
# SPARK read parquet, note that it won't load any data yet by now
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')
In [4]:
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))

Azure Synapse

Package: Language: Python Python
In [12]:
# This is a package in preview.
from azureml.opendatasets import ChicagoSafety

from datetime import datetime
from dateutil import parser


end_date = parser.parse('2016-01-01')
start_date = parser.parse('2015-05-01')
safety = ChicagoSafety(start_date=start_date, end_date=end_date)
safety = safety.to_spark_dataframe()
In [13]:
# Display top 5 rows
display(safety.limit(5))
Out[13]:
In [14]:
# Display data statistic information
display(safety, summary = True)
Out[14]:
In [1]:
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "citydatacontainer"
blob_relative_path = "Safety/Release/city=Chicago"
blob_sas_token = r""
In [2]:
# Allow SPARK to read from Blob remotely
wasbs_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set(
  'fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name),
  blob_sas_token)
print('Remote blob path: ' + wasbs_path)
In [3]:
# SPARK read parquet, note that it won't load any data yet by now
df = spark.read.parquet(wasbs_path)
print('Register the DataFrame as a SQL temporary view: source')
df.createOrReplaceTempView('source')
In [4]:
# Display top 10 rows
print('Displaying top 10 rows: ')
display(spark.sql('SELECT * FROM source LIMIT 10'))

City Safety

From the Urban Innovation Initiative at Microsoft Research, databricks notebook for analytics with safety data (311 and 911 call data) from major U.S. cities. Analyses show frequency distributions and geographic clustering of safety issues within cities.