Gezintiyi Atla

Chicago Safety Data

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

Geçmiş temizlik işleri yönetmeliği şikayetleri, bildirilen derin çukurlar ve sokak lambası sorunları dahil olmak üzere Chicago şehrinden gelen 311 hizmet istekleri

311’e yapılan tüm açık temizlik işleri şikayetleri ve 1 Ocak 2011’den sonra tamamlanan tüm istekler. Sokaklar ve Temizlik İşleri Dairesi, bildirilen Chicago temizlik işleri yönetmeliği ihlallerini araştırır ve giderir. Vatandaşlar taşan çöp kutuları ve sokak aralarındaki çöpler gibi ihlaller için hizmet isteğinde bulunabilirler. 311 bazen aynı temizlik işleri yönetmeliği şikayetini birden çok kez alır. Yinelenen olarak etiketlenmiş istekler önceki bir istekle aynı coğrafi bölgededir ve 311 Müşteri Hizmetleri İsteği (CSR) sistemine yaklaşık olarak aynı zamanda girilmiştir. Yinelenen şikayetler durum alanında “Açık - Yinelenen” veya “Tamamlandı - Yinelenen” olarak etiketlenir.

Chicago Taşımacılık Dairesi (CDOT) ana cadde ve yerleşim bölgelerindeki caddelerde 4.000 milden derin çukurların kapatılmasıyla ilgilenir. CDOT, 311 çağrı merkezi aracılığıyla çukur bildirimleri alıp bilgisayarlı eşleme ve izleme sistemi kullanarak çukur konumlarını tanımlar ve ekipleri etkili bir şekilde planlar. 311’e yapılan bir çağrı birden fazla çukur onarımı oluşturabilir. Bir 311 çukurunu onarmak üzere bir ekip ulaştığında caddedeki diğer tüm çukurları doldurur. Çukur onarımları genellikle 311’e çukurun ilk bildirilmesinden sonraki 7 gün içinde tamamlanır. Başta düşük sıcaklıklar ve yağış olmak üzere hava durumu koşulları onarımın süresini etkiler. Hava durumunun uygun olduğu ve yağışın olmadığı günlerde ekipler birkaç bin çukuru doldurabilir. 4 adres için önceki bir istek zaten açıkça isteğe “Yinelenen (Açık)” statüsü verilir. Örneğin, 6535 N Batı için mevcut bir CSR varken 6531 N Batı (özgün CSR’nin dört adresi içindedir) için yeni bir istek alınırsa yeni isteğe “Yinelenen (Açık)” statüsü verilir. Sokak onarıldıktan sonra CSR’deki statü özgün istek için “Tamamlandı”, yinelenen istekler için “Yinelenen (Kapatıldı)” olarak gösterilir. Bildirilen adresin araştırılmasına karşın bir çukur bulunamazsa veya çukur zaten doldurulmuşsa hizmet isteği “Tamamlandı” statüsünü alır. Sokakla ilgili “çökme” veya “kamu hizmeti kesintisi” gibi başka bir sorun bulunursa uygun daireye ya da yükleniciye yönlendirilir.

311’e “Sokak Lambaları - Tümü Arızalı” (3 veya daha fazla lamba kesintisi) ile ilgili gönderilen tüm açık bildirimler ve 1 Ocak 2011’den sonra tamamlanan tüm istekler. Chicago Taşımacılık Dairesi (CDOT), Chicago’daki ana cadde ve yerleşim alanlarını aydınlatan yaklaşık 250.000 sokak lambası ile ilgilenir. CDOT, vatandaşların sokak lambası kesintileriyle ilgili bildirimlerine yanıt olarak lambaları onarır ve değiştirir. CDOT “Tümü Arızalı” bildirimi aldığında onarımı yapmak için atanan elektrikçi, hepsinin düzgün çalıştığından emin olmak için devredeki tüm lambalara bakar (her devrede 8-16 lamba bulunur). İlk istekten sonraki dört takvim günü içinde aynı devrede lamba arızasına ilişkin ikinci bir istek alınırsa, en yeni isteğe otomatik olarak “Yinelenen (Açık)” statüsü verilir. CDOT elektrikçisi hepsinin çalıştığını doğrulamak için devredeki tüm lambalara bakacağı için, tüm “Yinelenen (Açık)” adresler otomatik olarak incelenip onarılacaktır. Sokak lambaları onarıldıktan sonra CSR’deki statü özgün istek için “Tamamlandı”, yinelenen istekler için “Yinelenen (Kapatıldı)” olarak gösterilir. Ayrıca, bildirilen lambalar incelenmesine rağmen iyi ve çalışır durumda olduğu bulunduğunda, hizmet isteği mevcut olmayan bir adrese ait olduğunda veya lambaların bakımı bir yüklenicinin sorumluluğunda olduğunda hizmet isteği “Tamamlandı” statüsünü alır. Veriler her gün güncelleştirilir.

Hacim ve Saklama

Bu veri kümesi Parquet biçiminde depolanır. Günlük olarak güncelleştirilir ve 2018 itibarıyla toplamda yaklaşık 1 milyon satır (80 MB) içermektedir.

Bu veri kümesi 2011 ile 2018 arasında birikmiş geçmiş kayıtları içermektedir. Belirli bir zaman aralığı içindeki verileri getirmek için SDK’mızdaki parametre ayarlarını kullanabilirsiniz.

Depolama Konumu

Bu veri kümesi Doğu ABD Azure bölgesinde depolanır. Benzeşim için Doğu ABD’deki işlem kaynaklarının ayrılması önerilir.

Ek Bilgiler

Bu veri kümesi Chicago şehir yönetiminden alınır. Aşağıdaki bağlantılarda daha fazla ayrıntı bulunabilir: Temizlik İşleri, Çukurlar, Sokak Lambaları.

Bu veri kümesini kullanma koşulları için buraya bakın. Veri kaynağı hakkında sorularınız olursa adresine e-posta gönderin.

Bildirimler

MICROSOFT, AZURE AÇIK VERİ KÜMELERİNİ “OLDUĞU GİBİ” SAĞLAR. MICROSOFT, VERİ KÜMELERİNİ KULLANMANIZLA İLGİLİ AÇIK VEYA ÖRTÜLÜ HİÇBİR GARANTİ VEYA TAAHHÜTTE BULUNMAZ. YEREL KANUNLARINIZIN İZİN VERDİĞİ ÖLÇÜDE, MICROSOFT DOĞRUDAN, BAĞLI, ÖZEL, DOLAYLI, TESADÜFİ VEYA CEZA GEREKTİRENLER DE DAHİL OLMAK ÜZERE HERHANGİ BİR HASAR YA DA KAYIPLA İLGİLİ HİÇBİR SORUMLULUK KABUL ETMEZ.

Bu veri kümesi Microsoft’un kaynak verileri aldığı orijinal hükümler kapsamında sağlanır. Veri kümesi Microsoft’tan alınan verileri içerebilir.

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

Açık Adres.

category string 99 311 INFORMATION ONLY CALL
Aircraft Noise Complaint

Hizmet İsteğinin türü.

dataSubtype string 1 311_All

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

dataType string 1 Safety

“Güvenlik”.

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

Hizmet İsteğini oluşturma tarihi.

latitude double 1,103,993 41.871831278
41.994896549

Enlem.

longitude double 1,199,976 -87.679846219
-87.887751654

Boylam.

status string 5 Completed
Completed - Dup

Hizmet İsteğinin tamamlanıp tamamlanmadığını belirten durumu.

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.