日時検索 (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 ~ 14 日に発生したレコードが選択されます。 このオプションを後続の [最新] (Python では RECENCY) 選択と組み合わせて使用することで、2 つの隣接する時間範囲 (たとえば、1 月 1 ~ 14 日と 1 月 15 ~ 28 日の 2 つの 14 日間の範囲) の間でレコード数を比較することができます。
String
(オプション)

選択される 1 つの日付と時間。

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

Date
開始日
(オプション)

日付範囲の開始日。

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

Date
終了日
(オプション)

日付範囲の終了日。

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

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

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

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

たとえば、タイム スライスが 14 日に指定されており、ツール実行時のローカル システム時間が 1 月 15 日午後 5 時である場合、最新期間には 14 日前の日付の午後 5 時からツール実行日の午後 5 時までのすべてのレコードが含まれ、このパラメーターがオンになります。 この例では、タイム スライスが 14 日の場合の選択は、2017 年 1 月 1 日 午後 5 時から 2017 年 1 月 15 日 午後 5 時までになります。 同じ例を使用してこのパラメーターをオフにすると、最新期間は現在の日付の開始時点を終了時間として使用します (ローカル システム時間に基づく)。 この場合、タイム スライスが 14 日の場合の選択は、2017 年 1 月 1 日 午前 0 時から 2017 年 1 月 15 日 午前 0 時までになります。

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

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
(オプション)

レコードの選択が、日付範囲、単一日、最新期間、期間比較のどれに基づいて行われるのか指定します。

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

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

選択される 1 つの日付と時間。

このパラメーターは、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 時である場合、最新期間には 14 日前の日付の午後 5 時からツール実行日の午後 5 時までのすべてのレコードが含まれ、SYSTEM_TIME が選択されます。 この例では、選択は 2017 年 1 月 1 日 午後 5 時から 2017 年 1 月 15 日 午後 5 時までになります。同じ例を使用して NO_SYSTEM_TIME を選択すると、最新期間は現在の日付の開始時点を終了時間として使用します (ローカル システム時間に基づく)。 この場合、タイム スライスが 14 日の場合の選択は、2017 年 1 月 1 日 午前 0 時から 2017 年 1 月 15 日 午前 0 時までになります。

このパラメーターは、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

関連トピック