Ignorar Navegação

Chicago Safety Data

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

Pedidos de emergência de 311 de Chicago, entre os quais queixas históricas relativas ao código sanitário, buracos no chão comunicados e problemas com a iluminação pública

Todas as queixas relativas ao código sanitário abertas feitas para o 311 e todos os pedidos satisfeitos desde 1 de janeiro de 2011. O Departamento de Urbanismo e Obras investiga e resolve todas as infrações reportadas ao código sanitário de Chicago. Os residentes podem apresentar queixas por infrações relativas a caixotes do lixo a transbordar e lixo nas ruas. Por vezes, o 311 recebe queixas duplicadas relativas a infrações ao código sanitário. Os pedidos marcados como duplicados estão na mesma área geográfica dos pedidos anteriores e foram introduzidos no sistema Customer Service Request (CSR, Pedido de Serviço ao Cliente) do 311 por volta da mesma altura. As queixas duplicadas são etiquetadas como tal no campo de estado; podem aparecer como “Open - Dup” (“Aberta - Dup”) ou “Completed - Dup” (“Concluída - Dup”).

O Departamento de Gestão da Mobilidade de Chicago supervisiona o arranjo dos buracos no chão numa superfície com mais de 6500 quilómetros de artérias e zonas residenciais da cidade. O Departamento de Gestão de Mobilidade recebe as queixas da existência de buracos através do centro de atendimento do 311 e utiliza um sistema computorizado de mapeamento e monitorização para identificar as localizações e agendar as equipas de reparação de forma eficaz. Uma chamada para o 311 pode gerar múltiplas reparações de buracos. Quando uma equipa chega ao local de reparação de um buraco, tapa também todos os outros buracos nesse quarteirão. Geralmente, as reparações de buracos demoram sete dias a ser concluídas desde a primeira queixa de existência de um buraco feita para o 311. As condições meteorológicas, particularmente temperaturas muito frias e precipitação, têm influência na duração dos trabalhos de reparação. Nos dias em que as condições meteorológicas são favoráveis e não há chuva, as equipas podem tapar milhares de outros buracos. Se já estiver aberto um pedido anterior para uma zona de quatro moradas, esse pedido recebe o estado “Duplicate (Open)” [“Duplicado (Aberto)”]. Por exemplo, se já houver um CSR existente para 6535 N Western e for recebido um pedido novo para 6531 N Western (que dista de quatro moradas do CSR original), este recebe o estado “Duplicate (Open)”. Após a reparação do buraco, o estado no CSR passa para “Completed” (“Concluído”) no pedido original e para “Duplicate (Closed)” [“Duplicado (Fechar)”] em todos os duplicados. Os pedidos de reparação também recebem o estado “Completed” quando a morada em causa é inspecionada, mas não são encontrados buracos ou os que havia já foram preenchidos. Se forem encontrados outros problemas na rua, como “depressões” ou "buracos abertos pelas empresas de serviços públicos, esses problemas são encaminhados para o departamento ou para o empreiteiro adequado.

Todas as queixas abertas de “Street Lights - All Out” (“Iluminação Pública - Completamente Desligada”), ou seja, falha em três ou mais candeeiros, feitas para o 311 e todos os pedidos concluídos desde 1 de janeiro de 2011. O Departamento de Mobilidade de Chicago supervisiona aproximadamente 250 000 candeeiros de iluminação pública que iluminam as artérias e zonas residenciais da cidade. O Departamento de Mobilidade repara e substitui as lâmpadas em resposta às queixas de cortes de iluminação feitas pelos residentes. Sempre que o Departamento recebe uma queixa “All Out”, o eletricista encarregado de fazer a reparação inspeciona todas as luzes nesse circuito (cada circuito tem entre oito a 16 luzes) para confirmar que estão todas a funcionar corretamente. Se for feita outra queixa de corte de iluminação no mesmo circuito dentro de quatro dias após a queixa original, a segunda queixa recebe automaticamente o estado “Duplicate (Open)”. Uma vez que o eletricista da câmara vai ver todas as luzes do circuito para confirmar que estão a funcionar, todas as moradas com o estado “Duplicate (Open)” serão inspecionadas e reparadas automaticamente. Após a reparação das lâmpadas, o estado no CSR passa para “Completed” no pedido original e para “Duplicate (Closed)” em todos os duplicados. Os pedidos de reparação também recebem o estado “Completed” se as lâmpadas em causa forem inspecionadas, mas tiverem em bom estado e a funcionar, se o pedido disser respeito a uma morada que não existe ou se a manutenção das lâmpadas estiver a cargo de um empreiteiro. Os dados são atualizados diariamente.

Volume e Retenção

Este conjunto de dados é armazenado no formato Parquet. É atualizado diariamente e contém cerca de um milhão de linhas (80 MB) no total à data de 2018.

Este conjunto de dados contém registos históricos acumulados de 2011 a 2018. Pode utilizar as definições de parâmetros no nosso SDK para obter os dados num intervalo de tempo específico.

Localização do Armazenamento

Este conjunto de dados é armazenado na região do Azure E.U.A. Leste. A alocação de recursos de computação nos E.U.A. Leste é recomendada por questões de afinidade.

Informações adicionais

Este conjunto de dados foi obtido junto da câmara de Chicago. Estão disponíveis mais detalhes nas ligações seguintes: Sanitation (Higiene), Pot Holes (Buracos), Street Lights (Iluminação Pública).

Veja os termos de utilização deste conjunto de dados aqui. Se tiver dúvidas sobre a origem de dados, envie um e-mail para .

Avisos

A MICROSOFT DISPONIBILIZA OS CONJUNTOS DE DADOS ABERTOS DO AZURE TAL COMO ESTÃO. A MICROSOFT NÃO FAZ GARANTIAS, EXPRESSAS OU IMPLÍCITAS, NEM CONDIÇÕES RELATIVAMENTE À SUA UTILIZAÇÃO DOS CONJUNTOS DE DADOS. ATÉ AO LIMITE MÁXIMO PERMITIDO PELA LEGISLAÇÃO LOCAL, A MICROSOFT REJEITA QUALQUER RESPONSABILIDADE POR DANOS OU PERDAS, INCLUINDO DIRETOS, CONSEQUENCIAIS, ESPECIAIS, INDIRETOS, INCIDENTAIS OU PUNITIVOS, QUE RESULTEM DA SUA UTILIZAÇÃO DOS CONJUNTOS DE DADOS.

Este conjunto de dados é disponibilizado de acordo com os termos originais em que a Microsoft recebeu os dados de origem. O conjunto de dados pode incluir dados obtidos junto da 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 latitude longitude source extendedProperties
Safety 311_All 6/10/2021 3:13:46 AM Yard Waste Pick-Up Request null Open 9033 S MAY ST 41.729524431 -87.651652886 null
Safety 311_All 6/10/2021 3:12:22 AM Clean Vacant Lot Request null Open 8404 S MUSKEGON AVE 41.742566813 -87.555420789 null
Safety 311_All 6/10/2021 3:12:12 AM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Safety 311_All 6/10/2021 3:10:28 AM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Safety 311_All 6/10/2021 3:10:04 AM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST null
Safety 311_All 6/10/2021 3:09:11 AM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST 41.764413985 -87.591188006 null
Safety 311_All 6/10/2021 3:08:59 AM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST 41.764413985 -87.591188006 null
Safety 311_All 6/10/2021 3:08:49 AM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST 41.764413985 -87.591188006 null
Safety 311_All 6/10/2021 3:08:40 AM 311 INFORMATION ONLY CALL null Completed 2111 W Lexington ST 41.764413985 -87.591188006 null
Safety 311_All 6/10/2021 3:03:43 AM Clean Vacant Lot Request null Open 9033 S MAY ST 41.729524431 -87.651652886 null
Name Data type Unique Values (sample) Description
address string 807,613 2111 W Lexington ST
10510 W ZEMKE RD

Morada.

category string 99 311 INFORMATION ONLY CALL
Aircraft Noise Complaint

Tipo de pedido de emergência.

dataSubtype string 1 311_All

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

dataType string 1 Safety

“Segurança”.

dateTime timestamp 4,023,056 2014-01-13 00:00:00
2014-03-10 00:00:00

Data de criação do Pedido de Serviço.

latitude double 1,103,993 41.871831278
41.994896549

Latitude

longitude double 1,199,976 -87.679846219
-87.887751654

Longitude.

status string 5 Completed
Completed - Dup

Estado do Pedido de Serviço, que indica se está ou não concluído.

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.