日時検索 (Select Layer By Date and Time) (犯罪分析と安全)

概要

日付範囲か日付プロパティ (日付、時間範囲、期間、曜日、月、年など) に基づいてレコードを選択します。

使用法

  • 入力には、フィーチャ レイヤーまたはテーブル ビューのいずれかを指定する必要があります。

  • 入力には日付フィールドが含まれる必要があります。入力の日付フィールドが含まれない場合は、[時間フィールドの変換 (Convert Time Field)] ツールを使用し、テキスト フィールドでテキストとして書式設定された日付から日付フィールドを生成します。

  • このツールは、すべての選択基準を使用して選択を行います。入力された日付の中に選択基準を満たさない部分がある場合は、フィーチャは選択されません。

  • このツールをモデルまたはスクリプトで使用するには、このツールを実行する前に [テーブル ビューの作成 (Make Table View)] または [フィーチャ レイヤーの作成 (Make Feature Layer)] ツールを使用し、入力フィーチャクラスをそれぞれテーブルまたはフィーチャ レイヤーに変換します。

構文

SelectLayerByDateAndTime(in_layer_or_view, selection_type, time_type, {date_field}, {start_date_field}, {end_date_field}, {selection_options}, {date_selection_type}, {single_date}, {start_date}, {end_date}, {use_system_time}, {time_slice}, {start_time}, {end_time}, {days_of_week}, {months}, {years})
パラメーター説明データ タイプ
in_layer_or_view

適用を選択する、日付フィールドを含むデータ。

Table View
selection_type

どのように選択を適用するか、選択がすでに存在する場合にはそれをどうするかを指定します。

  • NEW_SELECTION 結果として得られる選択によって、現在の選択が置換されます。これがデフォルトです。
  • ADD_TO_SELECTION 選択が存在する場合、結果として得られる選択が現在の選択に追加されます。選択が存在しない場合は、新規選択セット オプションと同じです。
  • REMOVE_FROM_SELECTION 結果として得られる選択が、現在の選択から削除されます。選択が存在しない場合、このオプションは影響を与えません。新規選択セット オプションと同じです。
  • SUBSET_SELECTION 結果として得られる選択が、現在の選択に統合されます。両方に共通のレコードだけが選択された状態となります。
String
time_type

日付フィールドと時間フィールドを使用し、レコードを選択する方法を指定します。

  • SINGLE_TIME_FIELDレコードは、入力フィーチャの 1 つの時間フィールドに基づいて選択されます。
  • TIME_RANGE_FIELDSレコードは、入力フィーチャの開始時間フィールドと終了時間フィールドに基づいて選択されます。
String
date_field
(オプション)

選択のベースになる入力レイヤーの日付フィールド。[時間タイプ][単一時間フィールド] に設定されていない場合、このパラメーターは無効になります。

Field
start_date_field
(オプション)

選択のベースになる、時間範囲の開始日フィールド。[時間タイプ][時間範囲フィールド] に設定されていない場合、このパラメーターは無効になります。

Field
end_date_field
(オプション)

選択のベースになる、時間範囲の終了日フィールド。[時間タイプ][時間範囲フィールド] に設定されていない場合、このパラメーターは無効になります。

Field
selection_options
[selection_options,...]
(オプション)

日付と時刻の選択を行う方法を指定します。

  • DATE選択は日付で行われます。
  • TIME選択は時刻で行われます。
  • DAY_OF_WEEK選択は曜日で行われます。
  • MONTH選択は月で行われます。
  • YEAR選択は年で行われます。
String
date_selection_type
(オプション)

レコード選択のベースとして、日付範囲、1 つの日付、期間の新しさ、期間比較のいずれかを指定します。

このパラメーターは、[日付][選択オプション] パラメーターで指定される場合にのみ有効になります。

  • DATE_RANGEレコードは、開始日と終了日の日付範囲に基づいて選択されます。
  • SINGLE_DATEレコードは、指定した日付に基づいて選択されます。
  • RECENCYレコードは、現在の日付 (システム日時) を基準にした期間に基づいて選択されます (例: 過去 14 日間など)。
  • COMPARATIVEレコードは、現在の日付 (システム日時) を基準に、最近の期間の直前の期間に基づいて選択されます。たとえば、現在の日付が 1 月 29 日でタイム スライスが 14 日である場合、1 月 1 日から 1 月 14 日の間のレコードが選択されます。このオプションを、後述する [最新] オプションと併用することで、2 つの隣接する期間のレコード数を比較できます (たとえば、1 月 1 日から 14 日までと、1 月 15 日から 28 日までの 2 つの 14 日間など)。
String
single_date
(オプション)

選択される単一の日時。

このパラメーターは、[単一日][日付選択タイプ] パラメーターで指定される場合にのみ有効になります。

Date
start_date
(オプション)

日付範囲の開始日。

このパラメーターは、[日付範囲][日付選択タイプ] パラメーターで指定される場合にのみ有効になります。

Date
end_date
(オプション)

日付範囲の終了日。

このパラメーターは、[日付範囲][日付選択タイプ] パラメーターで指定される場合にのみ有効になります。

Date
use_system_time
(オプション)

現在の日付 (ローカル システムの時間) のレコードが最近の期間に存在する場合、選択に含めるかどうかを指定します。

  • SYSTEM_TIME現在の日付のレコードが選択に含まれます。
  • NO_SYSTEM_TIME現在の日付のレコードは選択に含まれません。これがデフォルトです。

たとえば、指定されたタイム スライスが 14 日間であり、ツールを実行したときのローカル システム時間が 1 月 15 日の 5:00 p.m. である場合、最近の期間には 14 日前の 5:00 p.m. からツール実行日の 5:00 p.m. までのすべてのレコードが選択されます。また、SYSTEM_TIME がオンになっている必要があります。この例では、2017 年 1 月 1 日 5:00:00 PM から 2017 年 1 月 15 日 5:00:00 PM が選択されます。NO_SYSTEM_TIME がオンの場合は、最近の期間の終了時間は現在の日付の午前 0 時を使用します (ローカル システム時間に基づく)。この例では、14 日間のタイム スライスの場合、2017 年 1 月 1 日 12:00:00 AM から 1 月 15 日 12:00:00 AM が選択されます。

Boolean
time_slice
(オプション)

選択のベースとなる最近の期間を定める時間単位 (分、時間、日、週、月、年) の数。たとえば、過去 14 日間など。

このパラメーターは、[期間比較][新しさ][日付選択タイプ] パラメーターで指定される場合にのみ有効になります。

Time Unit
start_time
(オプション)

時間範囲の開始時間。

Date
end_time
(オプション)

時間範囲の終了時間。

Date
days_of_week
[days_of_week,...]
(オプション)

レコードの選択に使用される曜日を指定します。

  • MONDAY月曜日に発生するレコードが選択されます。
  • TUESDAY火曜日に発生するレコードが選択されます。
  • WEDNESDAY水曜日に発生するレコードが選択されます。
  • THURSDAY木曜日に発生するレコードが選択されます。
  • FRIDAY金曜日に発生するレコードが選択されます。
  • SATURDAY土曜日に発生するレコードが選択されます。
  • SUNDAY日曜日に発生するレコードが選択されます。
String
months
[months,...]
(オプション)

レコードの選択に使用される月を指定します。

  • JANUARY1 月に発生するレコードが選択されます。
  • FEBRUARY2 月に発生するレコードが選択されます。
  • MARCH3 月に発生するレコードが選択されます。
  • APRIL4 月に発生するレコードが選択されます。
  • MAY5 月に発生するレコードが選択されます。
  • JUNE6 月に発生するレコードが選択されます。
  • JULY7 月に発生するレコードが選択されます。
  • AUGUST8 月に発生するレコードが選択されます。
  • SEPTEMBER9 月に発生するレコードが選択されます。
  • OCTOBER10 月に発生するレコードが選択されます。
  • NOVEMBER11 月に発生するレコードが選択されます。
  • DECEMBER12 月に発生するレコードが選択されます。
String
years
[years,...]
(オプション)

レコードの選択に使用される年を指定します。

Long

派生した出力

名前説明データ タイプ
out_layer_or_view

選択が適用された状態の更新された入力。

テーブル ビュー
count

選択したレコードの数。

Long

コードのサンプル

SelectLayerByDateAndTime (日時検索) の例 1 (Python ウィンドウ)

次のスクリプトは、イミディエイト モードで SelectLayerByDateAndTime 関数を使用する方法を示しています。

import arcpy
arcpy.env.workspace = r"C:/data/city_pd.gdb"
arcpy.ca.SelectLayerByDateAndTime("Crimes",
                                "NEW_SELECTION",
                                "SINGLE_TIME_FIELD",
                                "offendate",
                                None,
                                None,
                                "DATE",
                                "DATE_RANGE",
                                None,
                                "8/1/2018",
                                "8/31/2018")
SelectLayerByDateAndTime (日時検索) の例 2 (スタンドアロン ウィンドウ)

次のスタンドアロン スクリプトは、SelectLayerByDateAndTime 関数をスクリプトで使用する方法の例を示しています。

# Name: SelectLayerByDateAndTime.py
# Description: Select crimes that occurred in the past 28 days, from 9 PM to 1 PM, on the weekend, from the month of October to December, #              in the year 2018, and show the selection count. Finally, make a selection based on all the queries above.
# Import script modules import arcpy
# Set the workspace arcpy.env.workspace = r"C:\data\city_pd.gdb"
# Convert Feature class to table view arcpy.management.MakeTableView("Crimes", "Crimes_View")
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",                                                selection_type="NEW_SELECTION",                                                time_type="SINGLE_TIME_FIELD",                                                date_field="offendate",                                                selection_options="DATE",                                                date_selection_type="RECENCY",                                                time_slice="28 Days")
arcpy.AddMessage("Crimes that occurred in past 28 days: {}".format(str(count))) arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",                                                selection_type="NEW_SELECTION",                                                time_type="SINGLE_TIME_FIELD",                                                date_field="offendate",                                                selection_options="TIME",                                                start_time="9:00 PM",                                                end_time="1:00 AM")
arcpy.AddMessage("All crimes that occurred between 9PM and 1AM: {}".format(count)) arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",                                                selection_type="NEW_SELECTION",                                                time_type="SINGLE_TIME_FIELD",                                                date_field="offendate",                                                selection_options="DAY_OF_WEEK",                                                days_of_week=["SATURDAY", "SUNDAY"])
arcpy.AddMessage("All crimes that occurred on the weekend: {}".format(count)) arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",                                                selection_type="NEW_SELECTION",                                                time_type="SINGLE_TIME_FIELD",                                                date_field="offendate",                                                selection_options="MONTH",                                                months=["OCTOBER", "NOVEMBER", "DECEMBER"])
arcpy.AddMessage("All crimes that occurred October through December: {}".format(count)) arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",                                                selection_type="NEW_SELECTION",                                                time_type="SINGLE_TIME_FIELD",                                                date_field="offendate",                                                selection_options="YEAR",                                                years=[2018])
arcpy.AddMessage("All crimes that occurred in the year 2018: {}".format(count)) arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")
# Combine selection options for more detailed time queries lyr, count = arcpy.ca.SelectLayerByDateAndTime(in_layer_or_view="Crimes_View",                                                selection_type="NEW_SELECTION",                                                time_type="SINGLE_TIME_FIELD",                                                date_field="offendate",                                                selection_options=["TIME", "DAY_OF_WEEK", "MONTH","YEAR"],                                                start_time="9:00 PM",                                                end_time="1:00 AM",                                                days_of_week=["SATURDAY", "SUNDAY"],                                                months=["OCTOBER", "NOVEMBER", "DECEMBER"],                                                years=[2018])
message = """All crimes that occurred in the year 2018 during the months of October through November on the weekends from 9PM to 1AM: {}
""".format(count)
arcpy.AddMessage(message)
arcpy.management.SelectLayerByAttribute("Crimes_View","CLEAR_SELECTION")

環境

このツールは、ジオプロセシング環境を使用しません。

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック