當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python ArcGIS Table.query用法及代碼示例


本文簡要介紹 python 語言中 arcgis.features.Table.query 的用法。

用法:

query(where='1=1', out_fields='*', time_filter=None, return_count_only=False, return_ids_only=False, return_distinct_values=False, group_by_fields_for_statistics=None, statistic_filter=None, result_offset=None, result_record_count=None, object_ids=None, gdb_version=None, order_by_fields=None, out_statistics=None, return_all_records=True, historic_moment=None, sql_format=None, return_exceeded_limit_features=None, as_df=False, having=None, **kwargs)

返回:

FeatureSet 對象,或者如果 `as_df=True` 則為 Panda 的 DataFrame,包含與查詢匹配的特征,除非指定了其他返回類型,例如 return_count_only

query 方法根據一組條件查詢 Table 層。

Parameter

Description

where

可選字符串。默認值為 1=1。選擇sql語句。

out_fields

可選的要返回的字段名稱列表。字段名稱可以指定為字段名稱列表或逗號分隔的字符串。默認值為“*”,它返回所有字段。

object_ids

可選字符串。要查詢的該圖層或表的對象ID。對象 ID 值應該是逗號分隔的字符串。

time_filter

可選列表。格式為 [<startTime>, <endTime>],使用 datetime.date、datetime.datetime 或時間戳(以毫秒為單位)。語法:time_filter=[<開始時間>, <結束時間>] ;指定為

datetime.date, datetime.datetime or timestamp in milliseconds

gdb_version

可選字符串。要查詢的地理數據庫版本。僅當圖層的 isDataVersioned 屬性為 true 時,此參數才適用。如果未指定,則查詢將應用於已發布Map的版本。

return_geometry

可選的布爾值。如果為真,幾何圖形將隨查詢返回。默認為真。

return_distinct_values

可選的布爾值。如果為真,它會根據out_fields 中指定的字段返回不同的值。僅當圖層的 supportsAdvancedQueries 屬性為 true 時,此參數才適用。

return_ids_only

可選的布爾值。默認為假。如果為 true,則響應僅包含對象 ID 數組。否則,響應是一個特征集。

return_count_only

可選的布爾值。如果為真,則響應僅包括查詢將返回的計數(特征/記錄的數量)。否則,響應是一個特征集。默認值為假。此選項取代 returnIdsOnly 參數。如果 returnCountOnly = true,則響應將返回計數和範圍。

order_by_fields

可選字符串。需要對其特征/記錄進行排序的一個或多個字段名稱。分別使用 ASC 或 DESC 進行升序或降序,跟隨每個字段來控製排序。例如:STATE_NAME ASC、種族 DESC、性別

group_by_fields_for_statistics

可選字符串。一個或多個字段名稱,需要對其值進行分組以計算統計信息。示例:STATE_NAME,性別

out_statistics

可選字符串。要計算的一個或多個基於字段的統計數據的定義。

用法:

[
{

“statisticType”:“<count |總和 |分鍾 |最大 |平均 |標準開發 | var>”,“onStatisticField”:“Field1”,“outStatisticFieldName”:“Out_Field_Name1”

}, {

“statisticType”: “<count | sum | min | max | avg | stddev | var>”, “onStatisticField”: “Field2”, “outStatisticFieldName”: “Out_Field_Name2”

}

]

result_offset

可選整數。該選項可用於通過跳過指定數量的記錄並從下一條記錄開始(即resultOffset + 1th)來獲取查詢結果。如果 return_all_records 為 True(即默認情況下),則忽略此選項。

result_record_count

可選整數。此選項可用於獲取最多指定result_record_count 的查詢結果。當指定result_offset 但未指定此參數時,Map服務默認為max_record_count。此參數的最大值是圖層的max_record_count 屬性的值。如果 return_all_records 為 True(即默認情況下),則忽略此選項。

return_all_records

可選的布爾值。當為 True 時,查詢操作將調用服務,直到返回所有滿足 where_clause 的記錄。注意:如果 return_all_records 為 True,則 result_offset 和 result_record_count 將被忽略。此外,如果 return_count_only、return_ids_only 或 return_extent_only 為 True,則此參數將被忽略。

historic_moment

可選整數。曆史性時刻查詢。此參數僅適用於圖層啟用歸檔且 supportsQueryWithHistoricMoment 屬性設置為 true 的情況。此屬性在圖層資源中提供。

如果未指定historic_moment,則查詢將應用於當前要素。

sql_format

可選字符串。 sql_format 參數可以是標準 SQL92 標準,也可以使用底層數據存儲本機的本機 SQL。默認值為 none,這意味著 sql_format 取決於 useStandardizedQuery 參數。值:無 |標準 |本國的

return_exceeded_limit_features

可選的布爾值。可選參數,默認為 true。設置為 true 時,即使結果包含“exceededTransferLimit”,也會返回特征:True。

當設置為 false 並且使用 resultType = 切片函數進行查詢時,當結果包括“exceededTransferLimit”時,不返回:True。這允許客戶端在不進行多次調用的情況下找到不再超過傳輸限製的分辨率。

as_df

可選布爾值。如果為 True,結果將作為 DataFrame 而不是函數集返回。

kwargs

可選字典。可以傳遞給查詢函數的可選參數。這將允許用戶傳遞未在函數上明確實現的附加參數。查詢 REST API 中記錄了可用函數的完整列表。

示例 1:

# Usage Example with only a "where" sql statement

>>> feat_set = feature_layer.query(where = "OBJECTID1")
>>> type(feat_set)
<arcgis.Features.FeatureSet>
>>> feat_set[0]
<Feature 1>

示例 2:

# Usage Example of an advanced query returning the object IDs instead of Features

>>> id_set = feature_layer.query(where = "OBJECTID1",
                                   out_fields = ["FieldName1, FieldName2"],
                                   distance = 100,
                                   units = 'esriSRUnit_Meter',
                                   return_ids_only = True)

>>> type(id_set)
<Array>
>>> id_set[0]
<"Item_id1">

示例 3:

# Usage Example of an advanced query returning the number of features in the query

>>> search_count = feature_layer.query(where = "OBJECTID1",
                                   out_fields = ["FieldName1, FieldName2"],
                                   distance = 100,
                                   units = 'esriSRUnit_Meter',
                                   return_count_only = True)

>>> type(search_count)
<Integer>
>>> search_count
<149>

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 arcgis.features.Table.query。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。