탐색 건너뛰기

San Francisco Safety Data

San Francisco 911 Fire 311 Public Safety

샌프란시스코 소방서에서 서비스 및 311 사례를 요청합니다.

Fire Calls-For-Service에는 통화에 대한 모든 소방대원 응답이 포함됩니다. 각 레코드에는 전화번호, 사건 번호, 주소, 대원 식별자, 통화 유형 및 처리 상태가 포함됩니다. 모든 관련 시간 간격도 포함됩니다. 이 데이터 세트는 응답을 기반으로 하고 대부분의 통화가 여러 대원과 관련되므로 각 전화번호에 대한 레코드가 여러 개 있습니다. 주소는 특정 주소가 아닌 블록 번호, 교차로 또는 공중전화 박스와 관련이 있습니다.

311 사례에는 일반적으로 장소 또는 사물(예: 공원, 거리 또는 건물)과 관련되고 2008년 7월 1일 이후에 생성된 사례가 포함됩니다. 일반적으로 사용자가 자신의 요구와 관련하여 로깅한 사례(예: 재산 또는 영업세 질문, 주차증 요청)는 포함되지 않습니다. 자세한 내용은 프로그램 링크를 참조하세요.

볼륨 및 보존

이 데이터 세트는 Parquet 형식으로 저장됩니다. 이 데이터 세트는 매일 업데이트되며 2019년 기준 약 600만 개의 행(400MB)을 포함합니다.

이 데이터 세트는 2015년부터 현재까지 누적된 기록 레코드를 포함합니다. SDK의 매개 변수 설정을 사용하여 특정 시간 범위의 데이터를 가져올 수 있습니다.

스토리지 위치

이 데이터 세트는 미국 동부 Azure 지역에 저장됩니다. 선호도를 위해 미국 동부에 컴퓨팅 리소스를 할당하는 것이 좋습니다.

추가 정보

이 데이터 세트는 샌프란시스코시 정부에서 제공됩니다. 자세한 내용은 다음 링크에서 확인할 수 있습니다. 소방서 신고 전화, 311건.

이 데이터 세트 사용과 관련된 사용 약관은 여기를 참조하세요.

고지 사항

Microsoft는 Azure Open Datasets를 “있는 그대로” 제공합니다. Microsoft는 귀하의 데이터 세트 사용과 관련하여 어떠한 명시적이거나 묵시적인 보증, 보장 또는 조건을 제공하지 않습니다. 귀하가 거주하는 지역의 법규가 허용하는 범위 내에서 Microsoft는 귀하의 데이터 세트 사용으로 인해 발생하는 일체의 직접적, 결과적, 특별, 간접적, 부수적 또는 징벌적 손해 또는 손실을 비롯한 모든 손해 또는 손실에 대한 모든 책임을 부인합니다.

이 데이터 세트는 Microsoft가 원본 데이터를 받은 원래 사용 약관에 따라 제공됩니다. 데이터 세트에는 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 5/27/2020 1:18:00 AM General Request - MTA customer_callback Open 1220 42ND AVE, SAN FRANCISCO, CA, 94122 37.763931274414 -122.50171661377 Phone
Safety 311_All 5/27/2020 1:09:00 AM Street and Sidewalk Cleaning General Cleaning Open Intersection of 12TH ST and SOUTH VAN NESS AVE 37.772220611572 -122.418350219727 Phone
Safety 311_All 5/27/2020 12:57:00 AM Residential Building Request Building - Hot_Water_Lack_of_Hot_Water Open 1300 BUCHANAN ST, SAN FRANCISCO, CA, 94115 37.782196044922 -122.428359985352 Phone
Safety 311_All 5/27/2020 12:54:00 AM Street and Sidewalk Cleaning Medical Waste Open 1238 VERMONT ST, SAN FRANCISCO, CA, 94110 37.7538893 -122.40354382 Mobile/Open311
Safety 311_All 5/27/2020 12:53:17 AM Street and Sidewalk Cleaning Bulky Items Open 2401 24TH ST, SAN FRANCISCO, CA, 94110 37.75303863 -122.40351968 Mobile/Open311
Safety 311_All 5/27/2020 12:50:00 AM Parking Enforcement Other_Illegal_Parking Open 1243 44TH AVE, SAN FRANCISCO, CA, 94122 37.76341085 -122.50412761 Phone
Safety 311_All 5/27/2020 12:43:00 AM Noise Report construction_private_property Open 830 EDDY ST, SAN FRANCISCO, CA, 94109 37.782901763916 -122.421615600586 Phone
Safety 311_All 5/27/2020 12:39:55 AM Noise Report construction_private_property Open 850 EDDY ST, SAN FRANCISCO, CA, 94109 37.782811953086 -122.421641184656 Web
Safety 311_All 5/27/2020 12:22:49 AM Encampments Encampment Reports Open 355 OCTAVIA ST, SAN FRANCISCO, CA, 94102 37.77545367296 -122.424433398952 Mobile/Open311
Safety 311_All 5/27/2020 12:20:00 AM Parking Enforcement Other_Illegal_Parking Closed 230 EDDY ST, SAN FRANCISCO, CA, 94102 37.78419288 -122.41145428 Phone
Name Data type Unique Values (sample) Description
address string 255,878 Not associated with a specific address
0 Block of 6TH ST

사건의 주소(참고: 발신자 프라이버시를 보호하기 위해 주소 및 위치는 거리의 중간 블록, 교차로 또는 가장 가까운 공중전화 박스 위치로 일반화됨)입니다.

category string 108 Street and Sidewalk Cleaning
Potentially Life-Threatening

911 화재 신고 전화의 통화 유형 그룹 또는 311 서비스 요청 유형의 사람이 읽을 수 있는 이름입니다.

dataSubtype string 2 911_Fire
311_All

“911_Fire” 또는 “311_All”입니다.

dataType string 1 Safety

“안전”

dateTime timestamp 6,003,807 2016-06-18 14:19:13
2014-03-11 16:55:27

서비스 요청이 수행되고 화재 신고 전화를 받은 날짜 및 시간입니다.

latitude double 1,318,748 37.777624238929
37.786117211838

위치의 위도로, WGS84 프로젝션을 사용합니다.

longitude double 1,267,688 -122.39998111124
-122.419854245692

위치의 경도로, WGS84 프로젝션을 사용합니다.

source string 9 Phone
Mobile/Open311

서비스 요청을 받은 메커니즘 또는 경로(일반적으로 “전화”, “문자/SMS”, “웹 사이트”, “모바일 앱”, “Twitter” 등)이지만 용어는 시스템에 따라 달라질 수 있습니다.

status string 3 Closed
Open

서비스 요청의 현재 상태에 대한 단일 단어 표시입니다. (참고: GeoReport V2는 “미해결”과 “종결됨”만 허용합니다.)

subcategory string 1,269 Medical Incident
Structure Fire

911 화재 신고 전화의 통화 유형 또는 311 사례에 대한 서비스 요청 하위 유형의 사람이 읽을 수 있는 이름입니다.

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 SanFranciscoSafety

from datetime import datetime
from dateutil import parser


end_date = parser.parse('2016-01-01')
start_date = parser.parse('2015-05-01')
safety = SanFranciscoSafety(start_date=start_date, end_date=end_date)
safety = safety.to_pandas_dataframe()
ActivityStarted, to_pandas_dataframe Looking for parquet files... Reading them into Pandas dataframe... Reading Safety/Release/city=SanFrancisco/part-00125-tid-8598556649077331715-e7875271-3301-48fe-88c1-a6ce35841072-136781.c000.snappy.parquet under container citydatacontainer Done. ActivityCompleted: Activity=to_pandas_dataframe, HowEnded=Success, Duration=58673.14 [ms]
In [2]:
safety.info()
<class 'pandas.core.frame.DataFrame'> Int64Index: 361411 entries, 10 to 5821034 Data columns (total 11 columns): dataType 361411 non-null object dataSubtype 361411 non-null object dateTime 361411 non-null datetime64[ns] category 361409 non-null object subcategory 361411 non-null object status 231935 non-null object address 361411 non-null object latitude 361411 non-null float64 longitude 361411 non-null float64 source 231935 non-null object extendedProperties 117871 non-null object dtypes: datetime64[ns](1), float64(2), object(8) memory usage: 33.1+ MB
In [1]:
# Pip install packages
import os, sys

!{sys.executable} -m pip install azure-storage
!{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=SanFrancisco"
In [3]:
from azure.storage.blob import BlockBlobService

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 + '"...')
blob_service = BlockBlobService(account_name = azure_storage_account_name, sas_token = azure_storage_sas_token,)
blobs = blob_service.list_blobs(container_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)
parquet_file=blob_service.get_blob_to_path(container_name, targetBlobName, filename)
In [4]:
# Read the local parquet file into Pandas data frame
import pyarrow.parquet as pq
import pandas as pd

appended_df = []
print('Reading the local parquet file into Pandas data frame')
df = pq.read_table(filename).to_pandas()
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 SanFranciscoSafety

from datetime import datetime
from dateutil import parser


end_date = parser.parse('2016-01-01')
start_date = parser.parse('2015-05-01')
safety = SanFranciscoSafety(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=3754.51 [ms] ActivityCompleted: Activity=to_spark_dataframe, HowEnded=Success, Duration=3757.76 [ms]
In [2]:
display(safety.limit(5))
dataTypedataSubtypedateTimecategorysubcategorystatusaddresslatitudelongitudesourceextendedProperties
Safety911_Fire2015-11-07T19:49:04.000+0000Potentially Life-ThreateningMedical IncidentnullMISSION ST/23RD ST37.753836588542-122.418593946321nullnull
Safety911_Fire2015-08-06T05:23:02.000+0000AlarmAlarmsnull200 Block of 10TH ST37.773466489733-122.413546904215nullnull
Safety911_Fire2015-07-28T13:34:52.000+0000Potentially Life-ThreateningMedical IncidentnullHOWARD ST/MAIN ST37.790612669554-122.393407939021nullnull
Safety911_Fire2015-06-24T10:39:57.000+0000Non Life-threateningMedical Incidentnull200 Block of BRIDGEVIEW DR37.734209339882-122.397590096788nullnull
Safety911_Fire2015-06-22T15:58:28.000+0000AlarmAlarmsnull100 Block of POST ST37.788796325286-122.403991276137nullnull
In [1]:
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "citydatacontainer"
blob_relative_path = "Safety/Release/city=SanFrancisco"
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
In [1]:
# Azure storage access info
blob_account_name = "azureopendatastorage"
blob_container_name = "citydatacontainer"
blob_relative_path = "Safety/Release/city=SanFrancisco"
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.