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

サマリー

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

使用法

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

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

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

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

パラメーター

ラベル説明データ タイプ
入力テーブル

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

Table View; Feature Layer
選択するタイプ

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

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

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

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

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

Field
開始日フィールド:
(オプション)

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

Field
終了日フィールド:
(オプション)

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

Field
選択オプション
(オプション)

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

  • 選択は日付で行われます。
  • 時間選択は時刻で行われます。
  • 曜日選択は曜日で行われます。
  • 選択は月で行われます。
  • 選択は年で行われます。
String
日付選択タイプ
(オプション)

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

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

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

選択される単一の日時。

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

Date
開始日
(オプション)

日付範囲の開始日。

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

Date
終了日
(オプション)

日付範囲の終了日。

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

Date
現在のシステム時間を終了時間として使用
(オプション)

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

  • オン - 現在の日付のレコードが選択に含まれます。
  • オフ - 現在の日付のレコードは選択に含まれません。

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

このパラメーターは、[日付選択タイプ] パラメーターが [期間比較] または [最新] に設定されている場合にのみ有効です。

Boolean
タイム スライス
(オプション)

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

このパラメーターは、[日付選択タイプ] パラメーターが [期間比較] または [最新] に設定されている場合にのみ有効です。

Time Unit
開始時間
(オプション)

時間範囲の開始時間。

このパラメーターは、[選択オプション] パラメーターが [時間] に設定されている場合のみ有効です。

Date
終了日時
(オプション)

時間範囲の終了時間。

このパラメーターは、[選択オプション] パラメーターが [時間] に設定されている場合のみ有効です。

Date
曜日
(オプション)

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

このパラメーターは、[選択オプション] パラメーターが [曜日] に設定されている場合のみ有効です。

  • 月曜日月曜日に発生するレコードが選択されます。
  • 火曜日火曜日に発生するレコードが選択されます。
  • 水曜日水曜日に発生するレコードが選択されます。
  • 木曜日木曜日に発生するレコードが選択されます。
  • 金曜日金曜日に発生するレコードが選択されます。
  • 土曜日土曜日に発生するレコードが選択されます。
  • 日曜日日曜日に発生するレコードが選択されます。
String
(オプション)

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

このパラメーターは、[選択オプション] パラメーターが [月] に設定されている場合のみ有効です。

  • 1 月1 月に発生するレコードが選択されます。
  • 2 月2 月に発生するレコードが選択されます。
  • 3 月3 月に発生するレコードが選択されます。
  • 4 月4 月に発生するレコードが選択されます。
  • 5 月5 月に発生するレコードが選択されます。
  • 6 月6 月に発生するレコードが選択されます。
  • 7 月7 月に発生するレコードが選択されます。
  • 8 月8 月に発生するレコードが選択されます。
  • 9 月9 月に発生するレコードが選択されます。
  • 10 月10 月に発生するレコードが選択されます。
  • 11 月11 月に発生するレコードが選択されます。
  • 12 月12 月に発生するレコードが選択されます。
String
(オプション)

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

このパラメーターは、[選択オプション] パラメーターが [年] に設定されている場合のみ有効です。

Long

派生した出力

ラベル説明データ タイプ
更新されたレイヤーまたはテーブル ビュー

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

Table View; Feature Layer
行数

選択したレコードの数。

Long

arcpy.ca.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; Feature Layer
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
(オプション)

選択のベースになる入力レイヤーの日付フィールド。 このパラメーターは、[time_type] パラメーターが [SINGLE_TIME_FIELD] に設定されている場合にのみ有効です。

Field
start_date_field
(オプション)

選択のベースになる、時間範囲の開始日フィールド。 このパラメーターは、[time_type] パラメーターが [TIME_RANGE_FIELDS] に設定されている場合にのみ有効です。

Field
end_date_field
(オプション)

選択のベースになる、時間範囲の終了日フィールド。 このパラメーターは、[time_type] パラメーターが [TIME_RANGE_FIELDS] に設定されている場合にのみ有効です。

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

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

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

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

このパラメーターは、[selection_options] パラメーターが [DATE] に設定されている場合にのみ有効です。

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

選択される単一の日時。

このパラメーターは、[date_selection_type] パラメーターが [SINGLE_DATE] に設定されている場合にのみ有効です。

Date
start_date
(オプション)

日付範囲の開始日。

このパラメーターは、[date_selection_type] パラメーターが [DATE_RANGE] に設定されている場合にのみ有効です。

Date
end_date
(オプション)

日付範囲の終了日。

このパラメーターは、[date_selection_type] パラメーターが [DATE_RANGE] に設定されている場合にのみ有効です。

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 が選択されます。

このパラメーターは、[date_selection_type] パラメーターが [COMPARATIVE] または [RECENCY] に設定されている場合にのみ有効です。

Boolean
time_slice
(オプション)

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

このパラメーターは、[date_selection_type] パラメーターが [COMPARATIVE] または [RECENCY] に設定されている場合にのみ有効です。

Time Unit
start_time
(オプション)

時間範囲の開始時間。

このパラメーターは、[selection_options] パラメーターが [TIME] に設定されている場合にのみ有効です。

Date
end_time
(オプション)

時間範囲の終了時間。

このパラメーターは、[selection_options] パラメーターが [TIME] に設定されている場合にのみ有効です。

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

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

  • MONDAY月曜日に発生するレコードが選択されます。
  • TUESDAY火曜日に発生するレコードが選択されます。
  • WEDNESDAY水曜日に発生するレコードが選択されます。
  • THURSDAY木曜日に発生するレコードが選択されます。
  • FRIDAY金曜日に発生するレコードが選択されます。
  • SATURDAY土曜日に発生するレコードが選択されます。
  • SUNDAY日曜日に発生するレコードが選択されます。

このパラメーターは、[selection_options] パラメーターが [DAY_OF_WEEK] に設定されている場合にのみ有効です。

String
months
[months,...]
(オプション)

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

  • JANUARY1 月に発生するレコードが選択されます。
  • FEBRUARY2 月に発生するレコードが選択されます。
  • MARCH3 月に発生するレコードが選択されます。
  • APRIL4 月に発生するレコードが選択されます。
  • MAY5 月に発生するレコードが選択されます。
  • JUNE6 月に発生するレコードが選択されます。
  • JULY7 月に発生するレコードが選択されます。
  • AUGUST8 月に発生するレコードが選択されます。
  • SEPTEMBER9 月に発生するレコードが選択されます。
  • OCTOBER10 月に発生するレコードが選択されます。
  • NOVEMBER11 月に発生するレコードが選択されます。
  • DECEMBER12 月に発生するレコードが選択されます。

このパラメーターは、[selection_options] パラメーターが [MONTH] に設定されている場合にのみ有効です。

String
years
[years,...]
(オプション)

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

このパラメーターは、[selection_options] パラメーターが [YEAR] に設定されている場合にのみ有効です。

Long

派生した出力

名前説明データ タイプ
out_layer_or_view

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

Table View; Feature Layer
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: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック